Editing User:Boomsta

From Fallen London Wiki

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
 +
__NOTOC____NOEDITSECTION__
 +
==Parameters==
 +
===Stats & Success Probabilities===
 +
'''Campaign''': Yourself{{#switch:Yourself
 +
    |Viscountess = {{#vardefine:story_waste|1}}<!--
 +
            -->{{#vardefine:story_mount|0}}<!--
 +
            -->{{#vardefine:story_river|2}}<!--
 +
            -->{{#vardefine:short|yes}}
 +
    |Ophidian Gentleman = {{#vardefine:story_waste|2}}<!--
 +
            -->{{#vardefine:story_mount|2}}<!--
 +
            -->{{#vardefine:story_river|2}}<!--
 +
            -->{{#vardefine:short|yes}}
 +
    |Second City Priest = {{#vardefine:story_waste|2}}<!--
 +
            -->{{#vardefine:story_mount|3}}<!--
 +
            -->{{#vardefine:story_river|4}}<!--
 +
            -->{{#vardefine:short|yes}}
 +
    |The Cats = {{#vardefine:story_waste|1}}<!--
 +
            -->{{#vardefine:story_mount|2}}<!--
 +
            -->{{#vardefine:story_river|1}}<!--
 +
            -->{{#vardefine:story_shore|2}}<!--
 +
            -->{{#vardefine:story_forest|4}}
 +
    |The Fingerkings = {{#vardefine:story_waste|1}}<!--
 +
            -->{{#vardefine:story_mount|1}}<!--
 +
            -->{{#vardefine:story_river|3}}<!--
 +
            -->{{#vardefine:story_shore|3}}<!--
 +
            -->{{#vardefine:story_forest|4}}
 +
    |The Chessboard = {{#vardefine:story_waste|1}}<!--
 +
            -->{{#vardefine:story_mount|3}}<!--
 +
            -->{{#vardefine:story_river|3}}<!--
 +
            -->{{#vardefine:story_shore|3}}<!--
 +
            -->{{#vardefine:story_forest|3}}
 +
    |Yourself = {{#vardefine:story_waste|1}}<!--
 +
            -->{{#vardefine:story_mount|1}}<!--
 +
            -->{{#vardefine:story_river|1}}<!--
 +
            -->{{#vardefine:story_shore|1}}<!--
 +
            -->{{#vardefine:story_forest|4}}
 +
    }} (Total story actions: {{#expr:{{#var:story_waste}}+{{#var:story_mount}}+{{#var:story_river}}+{{#var:story_shore|0}}+{{#var:story_forest|0}} }})
  
 +
'''General''': {{#vardefineecho:gen|(none)}}<!--
 +
-->{{#vardefine:gen_level|3}}<!--
 +
-->{{#ifeq:{{#var:gen}}|(none)||, level {{#var:gen_level}} }}<!--
 +
-->{{#vardefine:gen_cat|0}}{{#vardefine:gen_snek|0}}{{#vardefine:gen_chess|0}}<!--
 +
-->{{#switch:{{#var:gen}}
 +
      |Snake = {{#vardefine:gen_snek|{{#expr:15*{{#var:gen_level}}}}}}
 +
      |Cat = {{#vardefine:gen_cat|{{#expr:15*{{#var:gen_level}}}}}}
 +
      |Chess = {{#vardefine:gen_chess|{{#expr:15*{{#var:gen_level}}}}}} }}
 +
 +
{|class="article-table mw-collapsible mw-collapsed"
 +
!Success Chances
 +
!Slow
 +
!Fast
 +
!Gain Morale
 +
!Spend Morale
 +
!Airs
 +
|-
 +
|{{IL|Shadowy}} {{#vardefineecho:sha|300}}
 +
|{{#expr:100* {{#vardefineecho:sha_slow|{{#ifexpr:{{#var:sha}} > (150-{{#var:gen_cat}})/.6 | 1 | {{#expr:.6*{{#var:sha}}/(150-{{#var:gen_cat}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:sha_fast|{{#ifexpr:{{#var:sha}} > (250-{{#var:gen_cat}})/.6 | 1 | {{#expr:.6*{{#var:sha}}/(250-{{#var:gen_cat}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:sha_gain|{{#ifexpr:{{#var:sha}} > (200-{{#var:gen_cat}})/.6 | 1 | {{#expr:.6*{{#var:sha}}/(200-{{#var:gen_cat}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:sha_spend|{{#ifexpr:{{#var:sha}} > (90-{{#var:gen_cat}})/.6 | 1 | {{#expr:.6*{{#var:sha}}/(90-{{#var:gen_cat}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:sha_airs|{{#ifexpr:{{#var:sha}} > (250-{{#var:gen_cat}})/.6 | 1 | {{#expr:.6*{{#var:sha}}/(250-{{#var:gen_cat}}) }}}}}} round 0}}%
 +
|-
 +
|{{IL|Dangerous}} {{#vardefineecho:dan|300}}
 +
|{{#expr:100* {{#vardefineecho:dan_slow|{{#ifexpr:{{#var:dan}} > 150/.6 | 1 | {{#expr:.6*{{#var:dan}}/150 }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:dan_fast|{{#ifexpr:{{#var:dan}} > 250/.6 | 1 | {{#expr:.6*{{#var:dan}}/250 }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:dan_gain|{{#ifexpr:{{#var:dan}} > 175/.6 | 1 | {{#expr:.6*{{#var:dan}}/175 }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:dan_spend|{{#ifexpr:{{#var:dan}} > 90/.6 | 1 | {{#expr:.6*{{#var:dan}}/90 }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:dan_airs|{{#ifexpr:{{#var:dan}} > 250/.6 | 1 | {{#expr:.6*{{#var:dan}}/250 }}}}}} round 0}}%
 +
|-
 +
|{{IL|Watchful}} {{#vardefineecho:wat|295}}
 +
|{{#expr:100* {{#vardefineecho:wat_slow|{{#ifexpr:{{#var:wat}} > (150-{{#var:gen_chess}})/.6 | 1 | {{#expr:.6*{{#var:wat}}/(150-{{#var:gen_chess}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:wat_fast|{{#ifexpr:{{#var:wat}} > (250-{{#var:gen_chess}})/.6 | 1 | {{#expr:.6*{{#var:wat}}/(250-{{#var:gen_chess}}) }}}}}} round 0}}%
 +
|N/A
 +
|{{#expr:100* {{#vardefineecho:wat_more|{{#ifexpr:{{#var:wat}} > (90-{{#var:gen_chess}})/.6 | 1 | {{#expr:.6*{{#var:wat}}/(90-{{#var:gen_chess}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:wat_airs|{{#ifexpr:{{#var:wat}} > (250-{{#var:gen_chess}})/.6 | 1 | {{#expr:.6*{{#var:wat}}/(250-{{#var:gen_chess}}) }}}}}} round 0}}%
 +
|-
 +
|{{IL|Persuasive}} {{#vardefineecho:per|315}}
 +
|{{#expr:100* {{#vardefineecho:per_slow|{{#ifexpr:{{#var:per}} > (150-{{#var:gen_snek}})/.6 | 1 | {{#expr:.6*{{#var:per}}/(150-{{#var:gen_snek}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:per_fast|{{#ifexpr:{{#var:per}} > (250-{{#var:gen_snek}})/.6 | 1 | {{#expr:.6*{{#var:per}}/(250-{{#var:gen_snek}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:per_gain|{{#ifexpr:{{#var:per}} > (200-{{#var:gen_snek}})/.6 | 1 | {{#expr:.6*{{#var:per}}/(200-{{#var:gen_snek}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:per_spend|{{#ifexpr:{{#var:per}} > (90-{{#var:gen_snek}})/.6 | 1 | {{#expr:.6*{{#var:per}}/(90-{{#var:gen_snek}}) }}}}}} round 0}}%
 +
|{{#expr:100* {{#vardefineecho:per_airs|{{#ifexpr:{{#var:per}} > (250-{{#var:gen_snek}})/.6 | 1 | {{#expr:.6*{{#var:per}}/(250-{{#var:gen_snek}}) }}}}}} round 0}}%
 +
|}
 +
 +
{|class="article-table mw-collapsible mw-collapsed"
 +
!Skill !! Level !! Sucess Rate
 +
|-
 +
|{{IL|Glasswork}} || 9 || {{#expr:100* {{#vardefineecho:glass|{{#ifexpr:9>9| 1 | {{#expr:{{#ifeq:9|0|1|9}}/10}}}}}} round 0}}%
 +
|-
 +
|{{IL|Kataleptic Toxicology}} || 11 || {{#expr:100* {{#vardefineecho:toxic|{{#ifexpr:11>9| 1 | {{#expr:{{#ifeq:11|0|1|11}}/10}}}}}} round 0}}%
 +
|-
 +
|{{IL|Mithridacy}} || 8 || {{#expr:100* {{#vardefineecho:mith|{{#ifexpr:8>9| 1 | {{#expr:{{#ifeq:8|0|1|8}}/10}}}}}} round 0}}%
 +
|-
 +
|{{IL|A Player of Chess}} || 10 || {{#expr:100* {{#vardefineecho:chess|{{#ifexpr:10>9| 1 | {{#expr:{{#ifeq:10|0|1|10}}/10}}}}}} round 0}}%
 +
|}
 +
 +
===Resource Costs===
 +
{|class="article-table mw-collapsible mw-collapsed"
 +
!Item
 +
!Action Equivalent
 +
|-
 +
!{{IL|Ravages of Parabolan Warfare}}
 +
|{{#vardefineecho:cost_ravag|0.5}}
 +
|-
 +
!{{IL|Nightmares}}
 +
|{{#vardefineecho:cost_night|0.4}}
 +
|-
 +
!{{IL|Apostate's Psalm}}
 +
|{{#vardefineecho:cost_psalm|1}}
 +
|-
 +
!{{IL|Glass Gazette}}
 +
|{{#vardefineecho:cost_glass|1}}
 +
|-
 +
!{{IL|London Street Sign}}
 +
|{{#vardefineecho:cost_sign|1}}
 +
|-
 +
!{{IL|Memory of a Much Lesser Self}}
 +
|{{#vardefineecho:cost_self|1}}
 +
|-
 +
!{{IL|Wing of a Young Terror Bird}}
 +
|{{#vardefineecho:cost_wing|1}}
 +
|-
 +
!{{IL|Correspondence Plaque}}
 +
|{{#vardefineecho:cost_plaq|0.2}}
 +
|-
 +
!{{IL|Memory of Light}}
 +
|{{#vardefineecho:cost_light|0.2}}
 +
|-
 +
!{{IL|Deep-zee Catch}}
 +
|{{#vardefineecho:cost_catch|0.2}}
 +
|-
 +
!{{IL|Moves in the Great Game}}
 +
|{{#vardefineecho:cost_move|0.2}}
 +
|-
 +
!{{IL|Palimpsest Scrap}}
 +
|{{#vardefineecho:cost_scrap|0.2}}
 +
|-
 +
!{{IL|Royal-Blue Feather}}
 +
|{{#vardefineecho:cost_royal|0.2}}
 +
|-
 +
!{{IL|Trace of Viric}}
 +
|{{#vardefineecho:cost_viric|0.2}}
 +
|-
 +
!{{IL|Secluded Address}}
 +
|{{#vardefineecho:cost_addr|0.2}}
 +
|-
 +
!{{IL|Solacefruit}}
 +
|{{#vardefineecho:cost_solac|0.2}}
 +
|-
 +
!{{IL|Silvered Cat's Claw}}
 +
|{{#vardefineecho:cost_claw|0.04}}
 +
|-
 +
!{{IL|Well-Placed Pawn}}
 +
|{{#vardefineecho:cost_pawn|0.04}}
 +
|}
 +
 +
<!--
 +
##################################################
 +
#                                                #
 +
# Calculate action costs, starting from the back #
 +
#                                                #
 +
##################################################
 +
-->{{#vardefine:row|[{{#caamap:0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7|,|@|(("val":"0","choice":""))|,}}]}}<!--
 +
-->{{#vardefine:blank|[{{#caamap:0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9|,|@|
 +
    {{#var:row}}|,}}]}}<!--
 +
-->{{#ifeq:{{#var:short|no}}|no|<!--
 +
The Castle of Forests
 +
Hosting constants for performance reasons:
 +
-->{{#vardefine:slow_const|{{#expr:1 + <!-- always makes progress
 +
  -->{{#var:sha_slow}}*{{#var:cost_psalm}} + <!-- material cost on success
 +
  -->(1-{{#var:sha_slow}})*{{#var:cost_ravag}} }}}}<!--material cost on failure
 +
-->{{#vardefine:ignite_const|{{#expr: 1/{{#var:dan_fast}} + <!-- action cost to succeed
 +
  -->{{#var:cost_glass}} + 3*{{#var:cost_plaq}} + <!-- material cost to succeed
 +
  -->(1/{{#var:dan_fast}} - 1)*({{#var:cost_ravag}} + {{#var:cost_plaq}} + {{#var:cost_glass}})}}}} <!-- material cost from failures
 +
-->{{#vardefine:chicken_const|{{#expr: 1/{{#var:wat_fast}} + <!-- action cost to succeed
 +
  -->{{#var:cost_wing}} + 3*{{#var:cost_light}} + <!-- material cost to succeed
 +
  -->(1/{{#var:wat_fast}} - 1)*({{#var:cost_ravag}} + {{#var:cost_light}} + {{#var:cost_wing}}) }}}} <!-- material cost from failure
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:dan_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:dan_gain}} - 1)*2*{{#var:cost_ravag}} }}}}<!-- cost of failure
 +
-->{{#vardefine:skill_const|{{#expr: 1/{{#var:glass}} * <!-- attempts to succeed
 +
  -->(1 + 3*{{#var:cost_viric}}) }}}} <!-- cost per attempt
 +
 +
Begin Loop
 +
Initialize
 +
-->{{#cadefine:forest|{{#var:blank}}}}<!--
 +
-->{{#caset:forest[24]|[{{#caamap:0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7|,|@|
 +
    (("val":"{{#var:story_forest}}","choice":"Complete campaign"))|,}}] }}<!--
 +
Extend the edges
 +
-->{{#loop:a | 25 | 5 |
 +
    {{#caset:forest[{{#var:a}}]|{{#caprint:forest[24]|markup}}}}
 +
}}<!--
 +
-->{{#loop:nadv | 1 | 24 |
 +
{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }} <!--
 +
-->{{#cadefine:options}}<!--
 +
-->{{#capush:options|
 +
    [{{#camap:forest[{{#expr:{{#var:adv}}+2}}][*][val]|@@@|
 +
      (("choice":"Pray",
 +
        "val":"{{#expr:{{#var:slow_const}} + @@@}}"))|,}}] }}<!--
 +
-->{{#capush:options|
 +
    [{{#camap:forest[{{#expr:{{#var:adv}}+4}}][*][val]|@@@|
 +
      (("choice":"Ignite the Chorus of Forests",
 +
        "val":"{{#expr:{{#var:ignite_const}} + @@@}}"))|,}}] }}<!--
 +
-->{{#capush:options|
 +
    [{{#camap:forest[{{#expr:{{#var:adv}}+4}}][*][val]|@@@|
 +
      (("choice":"Summon a Terror-Bird",
 +
        "val":"{{#expr:{{#var:chicken_const}} + @@@}}"))|,}}] }}<!--
 +
-->{{#capush:options|
 +
    [{{#camap:forest[{{#expr:{{#var:adv}}+2}}][*][val]|@@@|
 +
      (("choice":"Sear the Castle with Viric",
 +
        "val":"{{#expr:{{#var:skill_const}} + @@@}}"))|,}}] }}<!--
 +
-->{{#caslice:gain|forest[{{#expr:{{#var:adv}}+1}}]|1}}<!--
 +
-->{{#capush:options|
 +
    [{{#camap:gain[*][val]|@@@|
 +
      (("choice":"Liberate the Dungeons of the Castle",
 +
        "val":"{{#expr:{{#var:gain_const}} + @@@}}"))|,}}] }}<!--
 +
-->{{#loop:mor| 0 | 17 |<!--
 +
-->{{#caextract:values|options[*][{{#var:mor}}]}}<!--
 +
-->{{#ifexpr: {{#var:mor}} > 4 |
 +
    {{#capush:values|
 +
      (("choice":"Assault the Citadel of Vinyards",
 +
        "val":{{#expr: 1 + <!-- always moves
 +
-->{{#var:dan_spend}}*{{#caprint:forest[{{#expr:{{#var:adv}}+5}}][{{#expr:{{#var:mor}}-5}}][val]}} +<!-- move on success
 +
-->(1-{{#var:dan_spend}})*{{#caprint:forest[{{#var:adv}}][{{#expr:{{#var:mor}}-5}}][val]}}<!-- move on failure
 +
-->}}))}} }}<!--
 +
-->{{#casort:values|keysort|val}}<!--
 +
Record
 +
-->{{#caset:forest[{{#var:adv}}][{{#var:mor}}]|{{#caprint:values[0]|markup}}}} }}<!--
 +
-->{{#caset:forest[{{#var:adv}}][17]|{{#caprint:forest[{{#var:adv}}][16]|markup}}}}
 +
}}<!--
 +
 +
Shadows on the Mirrorpane
 +
Hosting constants for performance reasons:
 +
-->{{#vardefine:slow_const|{{#expr: 1 + {{#var:cost_sign}} + <!-- always moves and costs
 +
  -->(1-{{#var:wat_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:per_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:per_gain}} - 1)*3*{{#var:cost_ravag}} }}}} <!-- 3 ravages on failure
 +
-->{{#vardefine:skill_const|{{#expr: 1/{{#var:glass}} * <!-- attempts to succeed
 +
  -->(1 + 3*{{#var:cost_light}}) }}}} <!-- cost per attempt
 +
 +
Begin the loop
 +
Initialize
 +
-->{{#loop:i | 0 | 18 | <!--
 +
-->{{#vardefine:mirror_24_{{#var:i}}|{{#expr:1+{{#var:story_shore}}+{{#caprint:forest[0][{{#var:i}}][val]}}}}}} }}<!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:mirror_{{#var:a}}_{{#var:m}}|{{#var:mirror_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |<!--
 +
!-->{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }} {{#loop:mor | 0 |17 |<!--
 +
-->{{#cadefine:values|[<!--
 +
Slow: <!--
 +
-->(("choice":"Establish a night watch", "val":{{#expr: {{#var:slow_const}} + <!--
 +
-->{{#var:wat_slow}}*{{#var:mirror_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }} + <!-- move on success
 +
-->(1-{{#var:wat_slow}})*{{#var:mirror_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on failure
 +
-->}})),<!--
 +
Gain:
 +
-->(("choice":"Initiate a campaign of public health","val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:mirror_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}} }}
 +
}})),<!--
 +
Skill:
 +
-->(("choice":"Infiltrate disordered dreams","val":{{#expr: {{#var:skill_const}} + <!--
 +
-->{{#var:mirror_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}
 +
}})),<!--
 +
Spend:
 +
-->(("choice":"Summon your Company for aid","val":{{#ifexpr:{{#var:mor}}<5|1000| {{#expr:1 + <!-- always move
 +
-->{{#var:sha_spend}}*{{#var:mirror_{{#expr:{{#var:adv}}+5}}_{{#expr:{{#var:mor}}-5}}}} + <!-- move on success
 +
-->(1-{{#var:sha_spend}})*{{#var:mirror_{{#var:adv}}_{{#expr:{{#var:mor}}-5}} }}<!-- move on fail
 +
-->}}
 +
}}))]}}<!--
 +
Totals
 +
-->{{#casort:values|keysort|val}}<!--
 +
-->{{#vardefine:total|{{#caprint:values[0][val]}}}}<!--
 +
-->{{#vardefine:choice|{{#caprint:values[0][choice]}}}}<!--
 +
Airs
 +
-->{{#vardefine:airs_adv|{{#var:mirror_{{#expr:{{#var:adv}}+4}}_{{#var:mor}} }} }}<!--
 +
Schlomo:
 +
-->{{#vardefine:schlomo|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - (1 + {{#var:cost_ravag}}*(1-{{#var:per_airs}}))/{{#var:per_airs}}|yes|no}}}}<!--
 +
Crimes:
 +
-->{{#vardefine:spree|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - (1 + {{#var:cost_ravag}}*(1-{{#var:sha_airs}}))/{{#var:sha_airs}}|yes|no}}}}<!--
 +
Update:
 +
-->{{#vardefine:total|{{#expr:
 +
( {{#var:total}} + {{#ifeq:{{#var:schlomo}}|yes|1|{{#var:total}}}} + {{#ifeq:{{#var:spree}}|yes|1|{{#var:total}}}} +
 +
({{#ifeq:{{#var:schlomo}}|yes|{{#var:per_airs}}|0}} + {{#ifeq:{{#var:spree}}|yes|{{#var:sha_airs}}|0}}) * {{#var:airs_adv}} +
 +
{{#var:cost_ravag}}*({{#ifeq:{{#var:schlomo}}|yes|1-{{#var:per_airs}}|0}} + {{#ifeq:{{#var:spree}}|yes|1-{{#var:sha_airs}}|0}}) ) /
 +
(1 + {{#ifeq:{{#var:schlomo}}|yes|{{#var:per_airs}}|1}} + {{#ifeq:{{#var:spree}}|yes|{{#var:sha_airs}}|1}})
 +
}}}}<!--
 +
Record:
 +
-->{{#ifeq:{{#var:schlomo}}|yes|{{#vardefine:choice|{{#var:choice}}<br/>Call on Dr Schlomo's assistance}}}}<!--
 +
-->{{#ifeq:{{#var:spree}}|yes|{{#vardefine:choice|{{#var:choice}}<br/>Embark upon a crime-spree}}}}<!--
 +
choice:-->{{#vardefine:mirror_{{#var:adv}}_{{#var:mor}}_choice|{{#var:choice}}}}<!--
 +
Final: -->{{#vardefine:mirror_{{#var:adv}}_{{#var:mor}}|{{#var:total}}}}
 +
}}{{#vardefine:mirror_{{#var:adv}}_17|{{#var:mirror_{{#var:adv}}_16}} }}
 +
}}<!--
 +
 +
The Smoking Shore
 +
Hosting loop constants for performance:
 +
-->{{#vardefine:slow_const|{{#expr: 1 + 25*{{#var:cost_claw}} + <!-- always moves and costs
 +
  -->(1-{{#var:wat_fast}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:dan_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:dan_gain}} - 1)*2*{{#var:cost_ravag}} }}}}<!-- 2 ravages on failure
 +
-->{{#vardefine:seige_const|{{#expr:(1 + ({{#var:cost_ravag}} - 2*{{#var:cost_solac}})*(1-{{#var:dan_airs}}))/{{#var:dan_airs}} }}}}<!--
 +
-->{{#vardefine:dream_const|{{#expr:(1 + ({{#var:cost_ravag}} - 2*{{#var:cost_viric}})*(1-{{#var:wat_airs}}))/{{#var:wat_airs}} }}}}<!--
 +
-->{{#vardefine:ash_const|{{#expr:(1 + {{#var:cost_ravag}} + (2*{{#var:cost_ravag}})*(1-{{#var:per_airs}}))/{{#var:per_airs}} }}}}<!--
 +
-->{{#vardefine:skill_const|{{#expr: 1/{{#var:mith}} *<!-- attempts to succeed
 +
  -->(1 + 3*{{#var:cost_scrap}}) }}}} <!-- cost per attempt
 +
 +
Loop Begin:
 +
Initialize
 +
-->{{#loop:i | 0 | 18 |{{#vardefine:shore_24_{{#var:i}}|{{#expr:{{#var:story_shore}}+ {{#caprint:forest[0][{{#var:i}}][val]}} }}}} }}<!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:shore_{{#var:a}}_{{#var:m}}|{{#var:shore_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }}<!--
 +
-->{{#loop:mor | 0 |17 |{{#cadefine:values|[<!--
 +
Slow: NOTE Has abnormal difficulty
 +
-->(("choice":"Petition Long-Dead Cats","val":{{#expr: {{#var:slow_const}} + <!--
 +
-->{{#var:wat_fast}}*{{#var:shore_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}+ <!-- move on success
 +
-->(1-{{#var:wat_fast}})*{{#var:shore_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on failure
 +
-->}})),<!--
 +
Gain:
 +
-->(("choice":"Enjoy a respite","val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:shore_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}}}}
 +
}})),<!--
 +
Skill:
 +
-->(("choice":"Disseminate Falsehood","val":{{#expr: {{#var:skill_const}} + <!--
 +
-->{{#var:shore_{{#expr:{{#var:adv}}+2}}_{{#var:mor}}}}
 +
}})),<!--
 +
Spend:
 +
-->(("choice":"Mount a cavalry charge","val":{{#ifexpr:{{#var:mor}}<5|1000| {{#expr:1 + <!-- always move
 +
-->{{#var:dan_spend}}*{{#var:shore_{{#expr:{{#var:adv}}+5}}_{{#expr:{{#var:mor}}-5}}}} + <!-- move on success
 +
-->(1-{{#var:dan_spend}})*{{#var:shore_{{#var:adv}}_{{#expr:{{#var:mor}}-5}} }}<!-- move on fail
 +
-->}}
 +
}}))]}}<!--
 +
Totals
 +
-->{{#casort:values|keysort|val}}<!--
 +
-->{{#vardefine:total|{{#caprint:values[0][val]}}}}<!--
 +
-->{{#vardefine:choice|{{#caprint:values[0][choice]}}}}<!--
 +
Airs
 +
-->{{#vardefine:airs_adv|{{#var:shore_{{#expr:{{#var:adv}}+4}}_{{#var:mor}} }} }}<!--
 +
Siege:
 +
-->{{#vardefine:siege|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - {{#var:seige_const}}|yes|no}}}}<!--
 +
Dream:
 +
-->{{#vardefine:dream|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - {{#var:dream_const}}|yes|no}}}}<!--
 +
Ash:
 +
-->{{#vardefine:ash|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - {{#var:ash_const}}|yes|no}}}}<!--
 +
Update total
 +
-->{{#vardefine:total|{{#expr:
 +
( {{#ifeq:{{#var:siege}}|yes|1|{{#var:total}}}} + {{#ifeq:{{#var:dream}}|yes|1|{{#var:total}}}} + {{#ifeq:{{#var:ash}}|yes|1|{{#var:total}}}} +
 +
({{#ifeq:{{#var:siege}}|yes|{{#var:dan_airs}}|0}} + {{#ifeq:{{#var:dream}}|yes|{{#var:wat_airs}}|0}}) * {{#var:airs_adv}} + {{#ifeq:{{#var:ash}}|yes|{{#var:per_airs}}|0}}*{{#var:shore_{{#expr:{{#var:adv}}+3}}_{{#var:mor}}}} +
 +
({{#var:cost_ravag}} - 2*{{#var:cost_solac}})*({{#ifeq:{{#var:siege}}|yes|1-{{#var:dan_airs}}|0}}) + ({{#var:cost_ravag}} - 2*{{#var:cost_viric}})*({{#ifeq:{{#var:dream}}|yes|1-{{#var:wat_airs}}|0}}) + (2*{{#var:cost_ravag}})*({{#ifeq:{{#var:ash}}|yes|1-{{#var:per_airs}}|0}}) ) /
 +
({{#ifeq:{{#var:siege}}|yes|{{#var:dan_airs}}|1}} + {{#ifeq:{{#var:dream}}|yes|{{#var:wat_airs}}|1}} + {{#ifeq:{{#var:ash}}|yes|{{#var:per_airs}}|1}})
 +
}}}}<!--
 +
Record choice:
 +
-->{{#ifeq:{{#var:siege}}|yes|<!--
 +
-->{{#vardefine:choice|{{#var:choice}}<br />Siege an Insidious Spinney}}}}<!--
 +
-->{{#ifeq:{{#var:dream}}|yes|{{#vardefine:choice|{{#var:choice}}<br />Dream your way past}}}}<!--
 +
-->{{#ifeq:{{#var:ash}}|yes|{{#vardefine:choice|{{#var:choice}}<br />Consult a Column of Searing Ash}}}}<!--
 +
Final:
 +
-->{{#vardefine:shore_{{#var:adv}}_{{#var:mor}}_choice|{{#var:choice}}}}<!--
 +
-->{{#vardefine:shore_{{#var:adv}}_{{#var:mor}}|{{#var:total}}}}
 +
}}{{#vardefine:shore_{{#var:adv}}_17|{{#var:shore_{{#var:adv}}_16}}}}
 +
}}<!--
 +
-->}}<!-- end "short" if
 +
 +
The Writhing River
 +
Hosting constants for performance
 +
-->{{#vardefine:delegate_const|{{#expr: 1 + {{#var:cost_self}} + <!-- always moves and costs
 +
  -->(1-{{#var:per_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:oracle_const|{{#expr: 1 + {{#var:cost_glass}} + <!-- always moves and costs
 +
  -->(1-{{#var:sha_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:illuminate_const|{{#expr: 1/{{#var:dan_fast}} + <!-- action cost to succeed
 +
  -->3*{{#var:cost_light}} + <!-- cost on success
 +
  -->(1/{{#var:dan_fast}} - 1)*({{#var:cost_light}} + {{#var:cost_ravag}}) }}}} <!-- cost on failure
 +
-->{{#vardefine:mount_const|{{#expr: 1/{{#var:wat_fast}} + <!-- action cost to succeed
 +
  -->6*{{#var:cost_royal}} + <!-- cost on success
 +
  -->(1/{{#var:wat_fast}} - 1)*(2*{{#var:cost_royal}} + {{#var:cost_ravag}}) }}}}<!-- cost on failure
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:dan_gain}} + <!-- action cost to succeed
 +
-->(1/{{#var:dan_gain}} - 1)*2*{{#var:cost_ravag}} }}}}<!-- 2 ravages on failure
 +
 +
Begin loop
 +
Initialize
 +
-->{{#loop:i | 0 | 18 | {{#ifeq:{{#var:short}}|yes
 +
|{{#vardefine:river_24_{{#var:i}}|{{#var:story_river}}}}<!--
 +
-->{{#vardefine:river_24_{{#var:i}}_choice|Complete the Campaign}}
 +
|{{#ifexpr:{{#var:shore_0_{{#var:i}}}} < 1 + {{#var:mirror_0_{{#var:i}}}}
 +
  |{{#vardefine:river_24_{{#var:i}}|{{#expr:{{#var:story_river}} + {{#var:shore_0_{{#var:i}}}}}}}}<!--
 +
  -->{{#vardefine:river_24_{{#var:i}}_choice|Advance to the Smoking Shore}}
 +
  |{{#vardefine:river_24_{{#var:i}}|{{#expr:1 + {{#var:story_river}} + {{#var:mirror_0_{{#var:i}}}}}}}}<!--
 +
  -->{{#vardefine:river_24_{{#var:i}}_choice|Advance to Shadows on the Mirrorpane}}}} }} }} <!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:river_{{#var:a}}_{{#var:m}}|{{#var:river_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }}<!--
 +
-->{{#loop:mor | 0 |17 |{{#cadefine:values|[<!--
 +
Delegate:
 +
-->(("choice":"Delegate to yourself","val":{{#expr: {{#var:delegate_const}} + <!--
 +
-->{{#var:per_slow}}*{{#var:river_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}+ <!-- move on success
 +
-->(1-{{#var:per_slow}})*{{#var:river_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on failure
 +
-->}})),<!--
 +
Oracle:
 +
-->(("choice":"Consult a Poisoned Oracle","val":{{#expr: {{#var:oracle_const}} + <!--
 +
-->{{#var:sha_slow}}*{{#var:river_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}+ <!-- move on success
 +
-->(1-{{#var:sha_slow}})*{{#var:river_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on failure
 +
-->}})),<!--
 +
Illuminate:
 +
-->(("choice":"Illuminate ancient passages","val":{{#expr: {{#var:illuminate_const}} + <!--
 +
-->{{#var:river_{{#expr:{{#var:adv}}+3}}_{{#var:mor}} }}
 +
}})),<!--
 +
Mounts:
 +
-->(("choice":"Grow mounts to speed your passage", "val":{{#expr: {{#var:mount_const}} + <!--
 +
-->{{#var:river_{{#expr:{{#var:adv}}+3}}_{{#var:mor}} }}
 +
}})),<!--
 +
Gain:
 +
-->(("choice":"Launch a naval assault", "val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:river_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}}}}
 +
}})),<!--
 +
Spend:
 +
-->(("choice":"Sail the Wanting Way","val":{{#ifexpr:{{#var:mor}}<5|1000| {{#expr:1 + <!-- always move
 +
-->{{#var:dan_spend}}*{{#var:river_{{#expr:{{#var:adv}}+6}}_{{#expr:{{#var:mor}}-5}}}} + <!-- move on success
 +
-->(1-{{#var:dan_spend}})*{{#var:river_{{#var:adv}}_{{#expr:{{#var:mor}}-5}} }}}}<!-- move on fail
 +
-->}}))]}}<!--
 +
Totals:
 +
-->{{#casort:values|keysort|val}}<!--
 +
Record:
 +
choice: -->{{#vardefine:river_{{#var:adv}}_{{#var:mor}}_choice|{{#caprint:values[0][choice]}}}}<!--
 +
Final: -->{{#vardefine:river_{{#var:adv}}_{{#var:mor}}|{{#caprint:values[0][val]}}}}
 +
}}{{#vardefine:river_{{#var:adv}}_17|{{#var:river_{{#var:adv}}_16}}}}
 +
}}<!--
 +
 +
-->{{#ifeq:{{#var:short|no}}|no|<!--
 +
The War from Home
 +
Hoist constants
 +
-->{{#vardefine:deploy_const|{{#expr:1 + <!-- always moves
 +
  -->(1-{{#var:dan_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:distract_const|{{#expr:1 + <!-- always moves
 +
  -->(1-{{#var:sha_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:sha_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:sha_gain}} - 1)*2*{{#var:cost_ravag}} }}}} <!-- 2 ravages on failure
 +
-->{{#vardefine:skill_const|{{#expr: 1/{{#var:toxic}} *<!-- attempts to succeed
 +
  -->(1 + 3*{{#var:cost_addr}}) }}}}<!-- cost per attempt
 +
 +
Begin loop
 +
Initialize
 +
-->{{#loop:i | 0 | 18 |{{#vardefine:home_24_{{#var:i}}|{{#expr:1+{{#var:story_mount}}+{{#var:river_0_{{#var:i}}}}}}}} }}<!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:home_{{#var:a}}_{{#var:m}}|{{#var:home_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }}<!--
 +
-->{{#loop:mor | 0 |17 |{{#cadefine:values|[<!--
 +
Deploy:
 +
-->(("choice":"Deploy reinforcements", "val":{{#expr: {{#var:deploy_const}} + <!--
 +
-->{{#var:home_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move
 +
--> }})),<!--
 +
Distract:
 +
-->(("choice":"Provide a distraction", "val":{{#expr: {{#var:distract_const}} + <!--
 +
-->{{#var:home_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move
 +
--> }})),<!--
 +
Skill:
 +
-->(("choice":"Conduct an experiment from within your tub", "val":{{#expr: {{#var:skill_const}} + <!--
 +
-->{{#var:home_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }} <!-- move
 +
--> }})),<!--
 +
Gain:
 +
-->(("choice":"Spy on the movement of cats", "val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:home_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}}}}
 +
}})),<!--
 +
Spend:
 +
-->(("choice":"Inspire artistic support","val":{{#ifexpr:{{#var:mor}}<5|1000| {{#expr:1 + <!-- always move
 +
-->{{#var:per_spend}}*{{#var:home_{{#expr:{{#var:adv}}+5}}_{{#expr:{{#var:mor}}-5}}}} + <!-- move on success
 +
-->(1-{{#var:per_spend}})*{{#var:home_{{#var:adv}}_{{#expr:{{#var:mor}}-5}} }}}}<!-- move on fail
 +
--> }}))]}}<!--
 +
Totals
 +
-->{{#casort:values|keysort|val}}<!--
 +
-->{{#vardefine:total|{{#caprint:values[0][val]}}}}<!--
 +
-->{{#vardefine:choice|{{#caprint:values[0][choice]}}}}<!--
 +
Airs
 +
-->{{#vardefine:airs_adv|{{#var:home_{{#expr:{{#var:adv}}+4}}_{{#var:mor}}}}}}<!--
 +
Spirits:
 +
-->{{#vardefine:spirits|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - (1 + {{#var:cost_ravag}}*(1-{{#var:per_airs}}))/{{#var:per_airs}}|yes|no}}}}<!--
 +
-->{{#vardefine:total|{{#expr:
 +
( 2*{{#var:total}} + {{#ifeq:{{#var:spirits}}|yes|1|{{#var:total}}}} +
 +
({{#ifeq:{{#var:spirits}}|yes|{{#var:per_airs}}|0}}) * {{#var:airs_adv}} +
 +
{{#var:cost_ravag}}*({{#ifeq:{{#var:spirits}}|yes|1-{{#var:per_airs}}|0}}) ) /
 +
(2 + {{#ifeq:{{#var:spirits}}|yes|{{#var:per_airs}}|1}})
 +
}}}}<!--
 +
 +
Record totals
 +
Choice
 +
-->{{#ifeq:{{#var:spirits}}|yes|{{#vardefine:choice|{{#var:choice}}<br/>Boost the spirits of your Company}}}}<!--
 +
-->{{#vardefine:home_{{#var:adv}}_{{#var:mor}}_choice|{{#var:choice}}}}<!--
 +
Final: -->{{#vardefine:home_{{#var:adv}}_{{#var:mor}}|{{#var:total}}}}
 +
}}{{#vardefine:home_{{#var:adv}}_17|{{#var:home_{{#var:adv}}_16}}}}
 +
}}<!--
 +
-->|<!-- short campaign
 +
  -->{{#loop:i|0|18|{{#vardefine:home_0_{{#var:i}}|1000}}}}<!--
 +
-->}}<!--
 +
 +
The Hanging Mountains
 +
Hoist for performance
 +
-->{{#vardefine:slow_const|{{#expr: 1 + <!-- always moves
 +
  -->(1-{{#var:sha_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:fast_const|{{#expr: 1/{{#var:wat_fast}} + <!-- action cost to succeed
 +
  -->6*{{#var:cost_solac}} + <!-- cost on success
 +
  -->(1/{{#var:wat_fast}} - 1)*(3*{{#var:cost_solac}} + {{#var:cost_ravag}}) }}}} <!-- cost on failure
 +
-->{{#vardefine:flower_const|{{#expr: 1/{{#var:per_slow}}*(1 + 2*{{#var:cost_ravag}}) }}}}<!--action & ravag cost to succeed
 +
-->{{#vardefine:gain_const|{{#expr: 1/{{#var:sha_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:sha_gain}} - 1)*2*{{#var:cost_ravag}} }}}}<!-- 2 ravages on failure
 +
-->{{#vardefine:toxif_const|{{#expr: 1/{{#var:toxic}} + <!-- action cost to succeed
 +
  -->3*{{#var:cost_catch}} +<!--cost on success
 +
  -->(1/{{#var:toxic}} - 1)*{{#var:cost_catch}} }}}}<!-- cost on failure
 +
-->{{#vardefine:wind_const|{{#expr: 1/{{#var:chess}} + <!-- action cost to succeed
 +
  -->3*{{#var:cost_move}} + {{#var:cost_pawn}} +<!--cost on success
 +
  -->(1/{{#var:chess}} - 1)*{{#var:cost_pawn}} }}}}<!-- cost on failure
 +
 +
Begin loop
 +
Initialize
 +
-->{{#loop:i | 0 | 18 |{{#vardefine:mount_24_{{#var:i}}|{{#expr:{{#var:story_mount}}+{{#var:river_0_{{#var:i}}}}}}}} }}<!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:mount_{{#var:a}}_{{#var:m}}|{{#var:mount_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }}<!--
 +
-->{{#loop:mor | 0 |17 |{{#cadefine:values|[<!--
 +
Slow:
 +
-->(("choice":"Lead a raid from the sky","val":{{#expr: {{#var:slow_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }}<!-- move
 +
--> }})),<!--
 +
Fast:
 +
-->(("choice":"Lure with false fruit", "val":{{#expr: {{#var:fast_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+3}}_{{#var:mor}} }}
 +
}})),<!--
 +
wind:
 +
-->(("choice":"Deploy a whirlwind of allegiances", "val":{{#expr: {{#var:wind_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}
 +
}})),<!--
 +
toxify:
 +
-->(("choice":"Toxify the waters of the (enemies)", "val":{{#expr: {{#var:toxif_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }}
 +
}})),<!--
 +
Flowers: NOTE abnormal difficulty
 +
-->(("choice":"Gather the Flowers of Nevermore", "val":{{#expr: {{#var:flower_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+3}}_{{#var:mor}} }}
 +
}})),<!--
 +
Gain:
 +
-->(("choice":"Hold a feast", "val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:mount_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}}}}
 +
}}))]}}<!--
 +
Totals
 +
-->{{#casort:values|keysort|val}}<!--
 +
Record totals
 +
choice: -->{{#vardefine:mount_{{#var:adv}}_{{#var:mor}}_choice|{{#caprint:values[0][choice]}}}}<!--
 +
Final: -->{{#vardefine:mount_{{#var:adv}}_{{#var:mor}}|{{#caprint:values[0][val]}}}}
 +
}}{{#vardefine:mount_{{#var:adv}}_17|{{#var:mount_{{#var:adv}}_16}}}}
 +
}}<!--
 +
 +
Wastes of Want
 +
Hoist Constants
 +
-->{{#vardefine:rally_const|{{#expr: 1 + <!-- always moves
 +
  -->(1-{{#var:per_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:scout_const|{{#expr: 1 + <!-- always moves
 +
  -->(1-{{#var:sha_slow}})*{{#var:cost_ravag}} }}}}<!-- ravages on failure
 +
-->{{#vardefine:gain_const|{{#expr:1/{{#var:dan_gain}} + <!-- action cost to succeed
 +
  -->(1/{{#var:dan_gain}} - 1)*2*{{#var:cost_ravag}} }}}} <!-- 2 ravages on failure
 +
-->{{#vardefine:deploy_const|{{#expr: (1 + ({{#var:cost_ravag}})*(1-{{#var:wat_airs}}))/{{#var:wat_airs}} }}}}<!--
 +
-->{{#vardefine:trench_const|{{#expr: (1 + ({{#var:cost_ravag}})*(1-{{#var:dan_airs}}))/{{#var:dan_airs}} }}}}<!--
 +
-->{{#vardefine:skill_const|{{#expr: 1/{{#var:glass}} +<!-- actions to succeed
 +
  -->3*{{#var:cost_move}} +<!-- cost on success
 +
  -->(1/{{#var:glass}} - 1)*({{#var:cost_move}} + {{#var:cost_night}}) }}}}<!-- cost on failure
 +
 +
Begin Loop
 +
Initalize
 +
-->{{#loop:i | 0 | 18 |{{#ifexpr:{{#var:mount_0_{{#var:i}}}} < 1 + {{#var:home_0_{{#var:i}}}}
 +
  |{{#vardefine:waste_24_{{#var:i}}|{{#expr:{{#var:story_waste}} + {{#var:mount_0_{{#var:i}}}}}}}}<!--
 +
  -->{{#vardefine:waste_24_{{#var:i}}_choice|Advance to the Hanging Mountains}}
 +
  |{{#vardefine:waste_24_{{#var:i}}|{{#expr:1 + {{#var:story_waste}} + {{#var:home_0_{{#var:i}}}}}}}}<!--
 +
  -->{{#vardefine:waste_24_{{#var:i}}_choice|Advance to The War from Home}} }} }} <!--
 +
Extend the edges
 +
-->{{#loop:m | 0 | 18 |
 +
    {{#loop:a | 25 | 5 |
 +
      {{#vardefine:waste_{{#var:a}}_{{#var:m}}|{{#var:waste_24_{{#var:m}}}} }}
 +
    }}}}<!--
 +
-->{{#loop:nadv | 1 | 24 |{{#vardefine:adv|{{#expr:24 - {{#var:nadv}}}} }}<!--
 +
-->{{#loop:mor | 0 |17 |{{#cadefine:values|[<!--
 +
Rally:
 +
-->(("choice":"Rally your army onward","val":{{#expr: {{#var:rally_const}} + <!--
 +
-->{{#var:waste_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on success
 +
-->}})),<!--
 +
Scout:
 +
-->(("choice":"Scout the way ahead","val":{{#expr: {{#var:scout_const}} + <!--
 +
-->{{#var:waste_{{#expr:{{#var:adv}}+1}}_{{#var:mor}} }} <!-- move on success
 +
-->}})),<!--
 +
Skill:
 +
-->(("choice":"Employ the arts of Glasswhispery","val":{{#ifeq:no|yes|{{#expr: {{#var:skill_const}} + <!--
 +
-->{{#var:waste_{{#expr:{{#var:adv}}+2}}_{{#var:mor}} }} <!-- move on success
 +
-->}}|1000}})),<!--
 +
Gain:
 +
-->(("choice":"Host a hunt","val":{{#expr: {{#var:gain_const}} + <!--
 +
-->{{#var:waste_{{#expr:{{#var:adv}}+1}}_{{#expr:{{#var:mor}}+1}}}}
 +
}}))]}}<!--
 +
Totals
 +
-->{{#casort:values|keysort|val}}<!--
 +
-->{{#vardefine:total|{{#caprint:values[0][val]}}}}<!--
 +
-->{{#vardefine:choice|{{#caprint:values[0][choice]}}}}<!--
 +
Airs
 +
-->{{#vardefine:airs_adv|{{#var:waste_{{#expr:{{#var:adv}}+4}}_{{#var:mor}}}}}}<!--
 +
Deploy:
 +
-->{{#vardefine:deploy|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - {{#var:deploy_const}}|yes|no}}}}<!--
 +
Trench:
 +
-->{{#vardefine:trench|{{#ifexpr:{{#var:airs_adv}} < {{#var:total}} - {{#var:trench_const}}|yes|no}}}}<!--
 +
 +
-->{{#vardefine:total|{{#expr:
 +
( {{#var:total}} + {{#ifeq:{{#var:deploy}}|yes|1|{{#var:total}}}} + {{#ifeq:{{#var:trench}}|yes|1|{{#var:total}}}} +
 +
({{#ifeq:{{#var:deploy}}|yes|{{#var:wat_airs}}|0}} + {{#ifeq:{{#var:trench}}|yes|{{#var:dan_airs}}|0}}) * {{#var:airs_adv}} +
 +
{{#var:cost_ravag}}*({{#ifeq:{{#var:deploy}}|yes|1-{{#var:wat_airs}}|0}}) + {{#var:cost_ravag}}*({{#ifeq:{{#var:trench}}|yes|1-{{#var:dan_airs}}|0}}) ) /
 +
(1 + {{#ifeq:{{#var:deploy}}|yes|{{#var:wat_airs}}|1}} + {{#ifeq:{{#var:trench}}|yes|{{#var:dan_airs}}|1}})
 +
}}}}<!--
 +
Record finals
 +
choice:
 +
-->{{#ifeq:{{#var:deploy}}|yes|{{#vardefine:choice|{{#var:choice}}<br >Deploy Counter-Factual Phantasies}}}}<!--
 +
-->{{#ifeq:{{#var:trench}}|yes|{{#vardefine:choice|{{#var:choice}}<br >Lead your army through forgotten trenches}}}}<!--
 +
-->{{#vardefine:waste_{{#var:adv}}_{{#var:mor}}_choice|{{#var:choice}}}}<!--
 +
Final: -->{{#vardefine:waste_{{#var:adv}}_{{#var:mor}}|{{#var:total}}}}
 +
}}{{#vardefine:waste_{{#var:adv}}_17|{{#var:waste_{{#var:adv}}_16}}}}
 +
}}
 +
 +
<!--
 +
################################
 +
#                              #
 +
# Print action costs frontwise #
 +
#                              #
 +
################################
 +
-->
 +
==Total Action Costs==
 +
{|class="article-table"
 +
!Beginning {{IL|Campaign Morale|Appearance=Morale}} || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10
 +
|-
 +
!Actions {{#loop:i|0|11|{{!}}{{!}} {{#expr:{{#ifeq:{{#var:gen}}|(none)|2|3}} + {{#var:waste_0_{{#var:i}}}} round 2}}}}
 +
|}
 +
 +
==Battle Plan==
 +
{|class="article-table mw-collapsible" style="max-height: 80vh;"
 +
|+The Wastes of Want
 +
!style="position:sticky; top:0; left:0;" | Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
|- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr:{{#var:waste_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:waste_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
|}
 +
 +
{|class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
|+The Hanging Mountains
 +
!style="position:sticky; top:0; left:0;" | Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
|- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr:{{#var:mount_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:mount_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
|}
 +
 +
{|class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
|+The War from Home
 +
!style="position:sticky; top:0; left:0;" | Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
|- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr: {{#var:home_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:home_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
|}
 +
 +
{|class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
|+The Writhing River
 +
!style="position:sticky; top:0; left:0;" | Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
|- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr: {{#var:river_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:river_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
|}
 +
 +
{{#ifeq:{{#var:short|no}}|no|{{{!}}class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
{{!}}+The Smoking Shore
 +
!style="position:sticky; top:0; left:0;" {{!}} Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
{{!}}- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr:{{#var:shore_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:shore_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
{{!}}}
 +
 +
{{{!}}class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
{{!}}+Shadows on the Mirrorpane
 +
!style="position:sticky; top:0; left:0;" {{!}} Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
{{!}}- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr: {{#var:mirror_{{#var:adv}}_{{#var:mor}}}} round 2}}<br />{{#var:mirror_{{#var:adv}}_{{#var:mor}}_choice}} }}
 +
{{!}}- }}
 +
{{!}}}
 +
 +
{{{!}}class="article-table mw-collapsible mw-collapsed" style="max-height: 80vh;"
 +
{{!}}+The Castle of Forests
 +
!style="position:sticky; top:0; left:0;" {{!}} Advance \ Morale {{#loop:i | 0 | 17 | !! style="position:sticky; top:0;" {{!}} {{#var:i}}}}
 +
{{!}}- {{#loop:adv|0|25|<nowiki />
 +
!style="position:sticky; left:0;" {{!}}{{#var:adv}}
 +
{{#loop:mor|0|17|{{#ifeq:{{#var:mor}}|0||{{!}}}}{{!}} {{#expr: {{#caprint:forest[{{#var:adv}}][{{#var:mor}}][val]}} round 2}}<br />{{#caprint:forest[{{#var:adv}}][{{#var:mor}}][choice]}} }}
 +
{{!}}- }}
 +
{{!}}} }}

Please note that all contributions to Fallen London Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see Fallen London Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)