Help me Design a Cool Table

So I am enjoying exploring solo games, and I am using the awesome Mythic emulator engine. I am currently working on the fate chart (a yes no answer table) but I am struggling with the right workflow for a table with these complexities. ill upload a screenshot, but to summarize

You have the left column which designates the likely hood you think the question is, then you have a chaos factor for random events and then you have the odds of yes in bold with crit yes on the left and crit noon the right of the number.

Since I'm new, I figured I might be doing this the hard way, so far the only thing i thought of is creating all of those options as seperate tables refereced by a conditinal table with prompt for likelyhood and chaos factor. Please let me know if there is any other way. thanks for all your wisdom

JC

https://imgur.com/oL6XwGt

Comments

  • edited March 23

    Here's a quick go of it

    1. Prompt the user for Odds. That is something that should be context sensitive and not random. You could make it random, but that would be unrealistic.
    2. You may need a table for each "Odds" row. Could be other ways of doing it. But, since the basic odds don't seem to be an algebraic expression, I think these need to be put into a set of tables
    3. Prompt the user for the Chaos Rank, but also offer a selection of "random".
    4. Lookup the base success chance by finding item {Chaos} in the table named {Odds}.
    5. Once you have the base chance, calculate the Crit Success and Crit Fail based on 20% of the Base Success and Base Fail chances.
    6. Roll a d100 and use a series of if-then or when-do statements to determine the outcome.

    Here some code that "works". But, it's sending back totally blank output frequently. Can't really debug it right now. But, it's a good basic start, and it really only requires clicking "Run" again if it outputs a blank result. I've written it to output each step to see how it runs. You could just as easy only send the last line to the output (secret GM roll) by using double equals signs (==) in the inline variable assignment calls.

    ; Chaos.ipt
    ; created 3/23/2019 9:56:40 AM
    Prompt: Enter Odds {Has to be|A sure thing|Very likely|Unlikely|Random} Random
    Prompt: Enter Chaos Rank {Random|1|2|3|4|5|6|7|8|9} Random
    
    Maxreps:1
    
    Table:Main
    Odds are {Odds='[when]{$Prompt1}=Random[do][@RandomOdds][else]{$Prompt1}[end]'}.\n&
    Chaos Rank is {Chaos=[when]{$Prompt2}=Random[do]{1d9}[else]{$Prompt2}[end]}.\n&
    Yes chance is {BaseSuccess=[#{$Chaos} {$Odds}]}%.\n&
    Exceptional Yes chance is {CritYes={floor({{$BaseSuccess}*.2})}}%\n&
    Exceptional No is {CritFail={ceil({100-{100-{$BaseSuccess}}*.2})}}%\n&
    Your roll is a(n) {Score=1d100}\n&
    The result is [when]{$Score}<{$CritYes}[do]Exceptional Yes[else]&
                  [when]{$Score}<{$BaseSuccess}[do]Yes[else]&
                  [When]{$Score}>{$CritFail}[do]Exceptional No[else]No[end][end][end]
    
    Table:RandomOdds
    Has to be
    A sure thing
    Very likely
    Unlikely
    Endtable:
    
    Table:Has to be
    Type: Lookup
    1: 80
    2: 85
    3: 90
    4: 95
    5: 95
    6: 100
    7: 100
    8: 130
    9: 145
    
    Table:A sure thing
    Type: Lookup
    1:55
    2:65
    3:80
    4:85
    5:90
    6:95
    7:95
    8:110
    9:125
    
    Table:Very likely
    Type: Lookup
    1:45
    2:50
    3:65
    4:75
    5:85
    6:90
    7:95
    8:95
    9:105
    
    Table:Unlikely
    Type: Lookup
    1:5
    2:10
    3:15
    4:20
    5:35
    6:50
    7:55
    8:75
    9:90
    

    Good luck!

  • Huh, I didn't think you could nest When statements like that, but it seems to work! I don't get any blank outputs here.

  • You can always nest a new "when" statement in the "else" part of the prior when statement. For me, the nesting makes it "feel" more like an Excel "if" statement. Here, to make it read better, I just used the continuation symbol "&" to see the nesting more clearly. The program reads the whole Table:main as a single long line of code.

Leave a Comment