Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void DiceMenuComponent::doRoll(CreatureObject* player, DiceTemplate* diceTemplate, int sides, const String& sidesText, int numRoll) const {
- StringIdChatParameter self("dice/dice", diceTemplate->getSelfSingleResult());
- StringIdChatParameter others("dice/dice", diceTemplate->getOthersSingleResult());
- others.setTU(player->getFirstName());
- if (diceTemplate->isChanceCube()) {
- if (System::random(1) == 1) {
- self.setTO("red");
- others.setTO("red");
- } else {
- self.setTO("blue");
- others.setTO("blue");
- }
- others.setTT(player->getFirstName());
- } else if (diceTemplate->isAbilityDie()) {
- int rand = System::random(7); -- Roll 8 numbers, 0-7. based on FFG dice chart
- if (rand == 0) {
- self.setTO("blank");
- others.setTO("blank"); -- String: Playername's Ability dice rolled Blank
- } else if (rand < 2) {
- self.setTO("Success");
- self.setTO("Success"); -- Rolled 1 success
- } else if (rand == 3){
- self.setTO("2_Sucess");
- others.setTO("2_Sucess"); -- Rolled 2 successes
- } else if (rand < 5){
- self.setTO("advantage");
- others.setTO("advantage"); -- rolled 1 advantage
- } else if (rand == 6){
- self.setTO("Sucess_Advantage");
- others.setTO("Sucess_Advantage"); -- rolled 1 success and 1 Advantage
- } else {
- self.setTO("2_Advantage");
- others.setTO("2_Advantage"); -- rolled 2 advantage
- }
- } else {
- StringBuffer rolled;
- for(int i = 0; i < numRoll; ++i) {
- if(i != 0)
- rolled << ",";
- rolled << " " << System::random(sides - 1) + 1;
- }
- self.setDI(sides);
- others.setDI(sides);
- self.setTT(sidesText);
- others.setTT(sidesText);
- self.setTO(rolled.toString());
- others.setTO(rolled.toString());
- }
- ChatSystemMessage* msg = new ChatSystemMessage(others,
- ChatSystemMessage::DISPLAY_CHATANDSCREEN);
- player->broadcastMessage(msg, false);
- player->sendSystemMessage(self);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement