Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requesting roll logic for Exalted 1E/2E/3E (Logic also relevant to related issues) #236

Closed
SRNissen opened this issue Jul 3, 2024 · 4 comments

Comments

@SRNissen
Copy link

SRNissen commented Jul 3, 2024

I would like to request the Exalted dice system implemented, possibly with an alias. It is similar-but-not-identical to various other White Wolf and Onyx Path games.


Side note: I am not a ruby dev, but I am a dev, with plenty of spare time.

I'm not sure I could create a PR that would integrate with your script, but I could probably create a PR with a function that solves this issue, if you accept PRs and have the time to integrate it?

I'd create it as a separate logic file like you have for Earthdawn and Godbound.


Related issues that need same or similar logic if they are to be solved:


The components of a roll are:

  • /re X dY tZ + W
  • /re: roll alias for Exalted
  • X: number of D10s to roll
  • dY: optional doubles number (default = 10)
  • tZ: optional target number (default = 7)
  • W: optional bonus number (default = 0)

(Table of examples at the end)

  1. Roll Xd10
  2. Count number of dice that reached or exceeded the target number
  3. Count dice again if they reached or exceeded the doubles number
  4. add any bonus

If the count is 1+, the result takes this format:

  1 => $"Success {count} (Ordinary)",
  2 => $"Success {count} (Challenging)",
  3 => $"Success {count} (Heroic)".
  4 => $"Success {count} (Superheroic)",
  5+ => $"Success {count} (Near-impossible)"

On the other hand, if the count is zero, we do a new count of '1's in the roll.

  0 => "Failure",
  1+ => $"Botch {count_of_1s}!"

Various cases:

| --------------- | ----------------------- | ------------ | ------------ | ----------- | ----- | count '1'        | ----------------------------- |
| input           | comment                 | roll         | count >= tZ  | count >= dY | bonus | (if no success)  | result                        |
| --------------- | ----------------------- | ------------ | ------------ | ----------- | ------| ---------------- | ----------------------------- |
| /ex 5 d10 t7 +0 | Explicit                | [10,8,6,4,1] | [10,8] = 2   | [10] = 1    |       |                  | "Success 3 (Heroic)"          |
| /ex 5 t7 +0     | default doubling number | [10,8,6,4,1] | [10,8] = 2   | [10] = 1    |       |                  | "Success 3 (Heroic)"          |
| /ex 5 d10 +0    | default target number   | [10,8,6,4,1] | [10,8] = 2   | [10] = 1    |       |                  | "Success 3 (Heroic)"          |
| /ex 5 d10 t7    | default bonus number    | [10,8,6,4,1] | [10,8] = 2   | [10] = 1    |       |                  | "Success 3 (Heroic)"          |
| /ex 5           | default everything      | [10,8,6,4,1] | [10,8] = 2   | [10] = 1    |       |                  | "Success 3 (Heroic)"          |
| /ex 5 d8 t6 +2  | no defaults             | [10,8,6,4,1] | [10,8,6] = 3 | [10,8] = 2  | +2    |                  | "Success 7 (Near-impossible)" |
| /ex 5           |                         | [ 2,2,2,2,2] |              |             |       | [] = 0           | "Failure"                     |
| /ex 5           |                         | [ 2,2,2,2,1] |              |             |       | [1] = 1          | "Botch 1!"                    |
| /ex 5           |                         | [ 1,1,1,1,1] |              |             |       | [1,1,1,1,1] = 5  | "Botch 5!"                    |
| /ex 5           | No botch on success     | [ 7,1,1,1,1] | [7] = 1      |             |       |                  | "Success 1 (Ordinary)"        |
| /ex 5 +2        | No botch on success     | [ 1,1,1,1,1] |              |             | +2    |                  | "Success 2 (Challenging)"     |
@Humblemonk
Copy link
Owner

Humblemonk commented Aug 17, 2024

Hey so someone recently submitted a pull request that added an exalted alias. Let me know if that covers the majority of the use case here. They were as follows:

ex5 -> 5d10 t7 t10 Exalted system. The number represents number of d10 rolled.

ex5t8 -> 5d10 t8 t10 Exalted system modified target. The first number represents number of d10 rolled. The second number modifies the target.

Thanks!

@jeremy-brenner
Copy link
Contributor

I realize now that if people depended on being able to override the t# value that this will break them. If some macro expands out to using a t# value adding another t# value after will add a second t instead of modifying the one in the macro. If people depend on this behavior let me know and I will take a different approach.

@Humblemonk
Copy link
Owner

For now I am going to close this as done with your recent exalted PR. Folks can create a new issue if they find it needs to be expanded.

@SRNissen
Copy link
Author

@Humblemonk hey, we just tested this out and it works great

Thank you :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants