Merge an [if] into a [while] conditional...

...so we don't loop more often than is useful.
This commit is contained in:
J. Tyne 2013-01-31 23:37:06 +00:00
parent 4adfa2a576
commit 82b26cf7fe

View File

@ -475,93 +475,101 @@ Note: You need to use the default map settings for the scenario to work right."
#enddef
#define REGULAR_RANDOM_SPAWNS SIDE INTERVAL_NUMBER SPAWN_NUMBER BASE_GOLD_AMOUNT GOLD_INCREMENT UNITS_AMOUNT GOLD_PER_UNIT_AMOUNT
# Calculate how many timed_spawn[] entries to define.
[if]
[variable]
name=main_group
less_then={SPAWN_NUMBER} # Really: less or equal to SPAWN_NUMBER-1.
[/variable]
[then]
{VARIABLE spawn_limit $main_group}
[/then]
[else]
{VARIABLE spawn_limit "$({SPAWN_NUMBER}-1)"}
[/else]
[/if]
{VARIABLE spawn_id 0}
[while]
[variable]
name=spawn_id
less_than=$main_group
less_than=$spawn_limit
[/variable]
[do]
{VARIABLE turns $spawn_id}
{VARIABLE_OP turns multiply {INTERVAL_NUMBER}}
{VARIABLE_OP turns add 3}
{VARIABLE_OP spawn_id add 1}
{VARIABLE_OP spawn_id add 1} # Loop control variable increment.
{VARIABLE gold {BASE_GOLD_AMOUNT}}
{VARIABLE gold_turns $turns}
{VARIABLE_OP gold_turns sub 3}
{VARIABLE_OP gold_turns multiply {GOLD_INCREMENT}}
{VARIABLE_OP gold add $gold_turns}
# regular spawns
[if]
[variable]
name=spawn_id
less_than={SPAWN_NUMBER}
greater_than=1
[/variable]
[then]
# regular spawns
{VARIABLE units $gold_turns}
# add a random amount of the basic gold
{RANDOMIZE {BASE_GOLD_AMOUNT}}
{VARIABLE gold1 $random}
{RANDOMIZE {BASE_GOLD_AMOUNT}}
[if]
[variable]
name=spawn_id
greater_than=1
name=gold1
less_than=random
[/variable]
[then]
{VARIABLE units $gold_turns}
# add a random amount of the basic gold
{RANDOMIZE {BASE_GOLD_AMOUNT}}
{VARIABLE gold1 $random}
{RANDOMIZE {BASE_GOLD_AMOUNT}}
[if]
[variable]
name=gold1
less_than=random
[/variable]
[then]
{VARIABLE random $gold1}
[/then]
[/if]
{CLEAR_VARIABLE gold1}
{VARIABLE_OP units add $random}
{VARIABLE unit_increment {GOLD_PER_UNIT_AMOUNT}}
{VARIABLE unit_turns $turns}
{VARIABLE_OP unit_turns divide 1.5}
{VARIABLE_OP unit_increment add $unit_turns}
{VARIABLE_OP units divide $unit_increment}
### DEBUG
{VARIABLE unit_increment $units}
### END DEBUG
{VARIABLE_OP units add {UNITS_AMOUNT}}
{VARIABLE_OP random rand -1..2}
{VARIABLE_OP units add $random}
{RANDOMIZE 5}
[if]
[variable]
name=random
numerical_equals=1
[/variable]
[then]
{VARIABLE_OP units sub 1}
[/then]
[/if]
{VARIABLE_OP random rand -1..1}
{VARIABLE_OP turns add $random}
{VARIABLE random $gold1}
[/then]
[else]
{VARIABLE units {UNITS_AMOUNT}}
{VARIABLE_OP units add 1}
### DEBUG
{VARIABLE unit_increment 0}
### END DEBUG
[/else]
[/if]
{VARIABLE timed_spawn[$spawn_id].units $units}
{VARIABLE timed_spawn[$spawn_id].turn $turns}
{VARIABLE timed_spawn[$spawn_id].gold $gold}
{CLEAR_VARIABLE gold1}
{VARIABLE_OP units add $random}
{VARIABLE unit_increment {GOLD_PER_UNIT_AMOUNT}}
{VARIABLE unit_turns $turns}
{VARIABLE_OP unit_turns divide 1.5}
{VARIABLE_OP unit_increment add $unit_turns}
{VARIABLE_OP units divide $unit_increment}
### DEBUG
{VARIABLE timed_spawn[$spawn_id].units_added $unit_increment}
{VARIABLE unit_increment $units}
### END DEBUG
{VARIABLE_OP units add {UNITS_AMOUNT}}
{VARIABLE_OP random rand -1..2}
{VARIABLE_OP units add $random}
{RANDOMIZE 5}
[if]
[variable]
name=random
numerical_equals=1
[/variable]
[then]
{VARIABLE_OP units sub 1}
[/then]
[/if]
{VARIABLE_OP random rand -1..1}
{VARIABLE_OP turns add $random}
[/then]
[else]
{VARIABLE units {UNITS_AMOUNT}}
{VARIABLE_OP units add 1}
### DEBUG
{VARIABLE unit_increment 0}
### END DEBUG
[/else]
[/if]
{VARIABLE timed_spawn[$spawn_id].units $units}
{VARIABLE timed_spawn[$spawn_id].turn $turns}
{VARIABLE timed_spawn[$spawn_id].gold $gold}
### DEBUG
{VARIABLE timed_spawn[$spawn_id].units_added $unit_increment}
### END DEBUG
[/do]
[/while]
{CLEAR_VARIABLE spawn_limit}
{VARIABLE final_turns "$timed_spawn[$({SPAWN_NUMBER}-1)].turn"}
{VARIABLE_OP final_turns add 40}
{VARIABLE_OP final_turns divide 2}