Development Postbot with Dice Rolling Features

Discussion in 'Support' started by Bloodcinder, Jun 12, 2015.

  1. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    Daniel, Bob, Adam, Erica, Carol

    Bob, Daniel

    For: Bloodcinder Re: #45
     
  2. chefTENGU

    chefTENGU Does not approve Administrator

    Likes Received:
    375
    Local Time:
    7:32 PM
    That's awesome. I suddenly realize I could use that for conducting MVP draws in Blood Bowl.

    !shuffle 1 Pigfoot, Hambone, Police Cop, Puerco Pelon, Fatback, Uncle Oink, Jimmy Dean, Francis Bacon, The Glazed One, McRib, I be Throwing Hams
     
  3. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    Francis Bacon

    For: chefTENGU Re: #46
     
  4. chefTENGU

    chefTENGU Does not approve Administrator

    Likes Received:
    375
    Local Time:
    7:32 PM
    Excellent choice, robot. Excellent choice.
     
    Bloodcinder likes this.
  5. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    Okay, in addition to having !rolz available now, I created !roll which uses my own system instead of Rolz.org. The syntax is different.

    Each !roll is followed by a semicolon-separated list of all the rolls you want to do on the same line. If any roll is followed by *N, it will be repeated N times. If any roll is followed by ?, it will have verbose output (details on each roll). If any roll is followed by a #Label, the output will label it accordingly. Those option features (repetitions, verbose, and label) must be in that order to work.

    In rolls, you can use normal NdX syntax, where N is the number of dice and X is the number of sides. You can keep only the E highest values by adding an HE. Likewise, you can keep the lowest with LE. This is all case-insensitive, so it doesn't matter if you use capitals or lowercase. If instead of finding the sum of the dice you just want to know how many were above or below a threshold T, you can use >T, >=T, =T, <=T, or <T.

    Finally you can add and subtract arbitrary constants between rolls.

    Below are several examples of the new syntax. Tell me if there's anything you don't particularly like.

    !roll 3d20h2+3? #Attack; 4d6+2d4? #Damage
    !roll 3d20>=15 + 1? #Successes
    !roll 1d20 *5? #Spot
    !roll 3d6+2 *3?
     
  6. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    Attack: 28 = [12 9 13]{2} + 3; Damage: 24 = [6 4 6 2] + [2 4]

    Successes: 3 = [10 19 19]{2} + 1

    Spot: 18 = [18]; Spot: 16 = [16]; Spot: 5 = [5]; Spot: 17 = [17]; Spot: 9 = [9]

    3d6+2 : 15 = [5 2 6] + 2; 3d6+2 : 12 = [2 2 6] + 2; 3d6+2 : 11 = [3 4 2] + 2

    For: Bloodcinder Re: #48
     
  7. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    Note that 1d20 is the default when omitted, meaning you can do the following as well.

    !roll
    !roll ;;
    !roll 1d4 #Choice; #Attack; #Result

    Note that the following doesn't do what you might expect but is consistent with the above. Rather than rolling 4 default-sided dice, it rolls the number 4 itself.

    !roll 4
     
  8. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    1d20: 17

    1d20: 1; 1d20: 15; 1d20: 2

    Choice: 3; Attack: 3; Result: 15

    4: 4

    For: Bloodcinder Re: #49
     
  9. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    Note that because Rolz.org does not allow comments or repeat features to work remotely, I made the #Label and *N stuff work with it as well, and the verbose ? works with anything. So, the only difference between !roll and !rolz is the syntax of the rolls themselves. For example, the following are comparable.

    !roll 3d20>=10?
    !rolz 3d20E10?

    Rolz.org provides more features in its syntax. However, my syntax is a bit simpler for the fewer things you have, and the verbose output is better.
     
  10. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    3d20>=10: 3 = [10 20 12]

    3d20E10: 1 = 18, 7, 1 → 1 success against 10

    For: Bloodcinder Re: #50
     
  11. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    Actually, !rolz can't support *N because it conflicts with a special * modifier that is available in that system. So I implemented the "repeat N" technique that Rolz.org uses. That makes these two examples comparable in my syntax and Rolz.org's syntax.

    !roll 1d20 *5 #Spot
    !rolz repeat 5 1d20 #Spot
     
  12. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    Spot: 3; Spot: 4; Spot: 16; Spot: 18; Spot: 16

    Spot: 2; Spot: 9; Spot: 4; Spot: 14; Spot: 15

    For: Bloodcinder Re: #45
     
  13. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    So... last thing I'll say on this topic for now: What's the reason for having two different triggers? Preference. That's about it. And the fact that when I release this publicly not everyone is going to want to use the trigger that polls the Rolz.org server on a regular basis.
     
  14. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    Added a die-roller for Fudge.
    !help fudge
     
  15. Keenspark

    Keenspark Robot

    Likes Received:
    4
    Local Time:
    8:32 PM
    !fudge :: Roll Fudge dice and show the results with pictures.

    Fudge dice have 2 blank sides, 2 plus sides, and 2 minus sides.

    To roll the default number of dice, use the following trigger with no expression.
    !fudge

    To roll a different number of dice, specify the number.
    !fudge 5

    To add or subtract a modifier, specify a plus or minus and then the number.
    !fudge +2

    To use a different number of dice and a modifier specify the number of dice first plus or minus the modifier second.
    !fudge 5+2

    For: Bloodcinder Re: #64
     
  16. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    For reference, that thread where I keep posting triggers is what I'm using in lieu of screenshots to demo my add-on at XenForo Community. That way instead of having to take screenshots and upload them and keep them up to date I can just link people to where they can see the triggers in action. Sorry if it's annoying.
     
  17. chefTENGU

    chefTENGU Does not approve Administrator

    Likes Received:
    375
    Local Time:
    7:32 PM
    Nah, it's interesting. Since I haven't officially opted-in for updates, it means that I only get alerted for the usual things and can click on the other thread whenever curiosity moves me.
     
    Bloodcinder likes this.
  18. Seegtease

    Seegtease Merciful Mage of Many Means Administrator

    Likes Received:
    327
    Local Time:
    5:32 PM
    I'm still wondering how non-DMs can benefit from these. For instance, sure, I can roll my own jump check now, but unless I know the exact DC, I can't say whether or not I succeeded.
     
  19. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    For use in D&D/d20, you'd roll your own dice, but whether it was a success or failure would be adjudicated by the DM, just like it would be around a table. For example, you know you have a +3 attack modifier, so for an attack you roll 1d20+3. However, the DM would then need to tell you if that hit. It's not super useful for D&D/d20.

    For a game like FU where there's no adjudication necessary, it's a little more useful.
     
  20. Bloodcinder

    Bloodcinder Bird Bird Bird Developer

    Likes Received:
    324
    Local Time:
    8:32 PM
    I mean, because for a game like FU you can roll your own dice and adjudicate the result yourself, because there's no DC's or other secret information about the results. You have 100% of the information necessary before the roll to adjudicate the outcome of the roll. There are some other systems that work that way, too, but none that we've played yet at this forum.
     
  21. chefTENGU

    chefTENGU Does not approve Administrator

    Likes Received:
    375
    Local Time:
    7:32 PM
    d20 and D&D do tend to rely a whole lot more on secret information, but I'm trying to think of ways to give players as much input as they can into rolling their own checks. For instance, if a player was to post a question about a proposed course of action OOC, and a success or failure would be readily apparent, then it would be easy enough to just say, "Oh, that's a [insert check type here]. Go ahead and roll against DC [X]."

    Then, as a player, at the appropriate point in the narrative you could write in how your PC was acting, then make your own roll, and post about your success or failure.

    Even in other situations where that wouldn't be a possibility, though (like for INT [investigation] checks, say, or attack rolls), I would still be doing the rolling and adjudicating, but the real value here is that it gives me the opportunity to be perfectly transparent about the rolls.

    That's not always desirable (keeping every roll secret allows me the virtual equivalent of a DM screen), if a DM would prefer to enforce a style where the dice are inviolable and you must adhere to the results in the interest of fairness for everything, it would be a great way of deflecting accusations.