This commit is contained in:
Eric Gallager 2024-12-27 02:09:43 -05:00 committed by GitHub
commit 9cf07ea82c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 400 additions and 139 deletions

View file

@ -51,6 +51,7 @@ jobs:
pngquant --force --output diff_image.png diff_image.png pngquant --force --output diff_image.png diff_image.png
identify diff_image.png identify diff_image.png
## Write comment body
log 'Uploading diff_image.png...' log 'Uploading diff_image.png...'
json=$(curl -s -F image=@diff_image.png https://api.imgur.com/3/upload | tee /dev/stderr) || continue json=$(curl -s -F image=@diff_image.png https://api.imgur.com/3/upload | tee /dev/stderr) || continue

2
.gitignore vendored
View file

@ -209,6 +209,8 @@ fonts/.uuid
.dirstamp .dirstamp
*.cfg-bak *.cfg-bak
*.orig *.orig
*.rej
*.png_original
# might be good to have, but not in data # might be good to have, but not in data
data/**/*.xcf data/**/*.xcf

View file

@ -26,11 +26,11 @@ Xu, Xu, Xu, Re^Es, Re, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Rr, Urb, Xos, Xos, Xu, Xu,
Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Rr, Urb, Xos^Efs, Xos, Xu, Xu, Xu, Urb, Cud, Urb, Xu, Xu, Xu, Xos, Urb, Rr, Urb, Xos, Xu, Wwf^Vm, Xu, Wwg, Xu, Wwf^Es, Wwf, Xu, Xu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Rr, Urb, Xos^Efs, Xos, Xu, Xu, Xu, Urb, Cud, Urb, Xu, Xu, Xu, Xos, Urb, Rr, Urb, Xos, Xu, Wwf^Vm, Xu, Wwg, Xu, Wwf^Es, Wwf, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Rr, Urb, Urb, Xos, Xu, Xu, Xu, Cud, Rr, Cud, Xu, Xu, Xos, Xos^Efs, Urb, Rr, Urb, Xos, Xu, Xu, Rr, Xu, Rr, Xu, Xu, Uu, Uu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Rr, Urb, Urb, Xos, Xu, Xu, Xu, Cud, Rr, Cud, Xu, Xu, Xos, Xos^Efs, Urb, Rr, Urb, Xos, Xu, Xu, Rr, Xu, Rr, Xu, Xu, Uu, Uu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Urb, Rr, Rr, Urb, Cud, Xu, Rr, Rr^Eb, Rr, Rr^Eb, Rr, Xu, Cud, Urb, Rr, Rr, Urb, Xos, Xu, Xu, Rr, Rr, Rr, Rr, Xu, Xu, Uu, Uu, Xu, Xu Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Urb, Rr, Rr, Urb, Cud, Xu, Rr, Rr^Eb, Rr, Rr^Eb, Rr, Xu, Cud, Urb, Rr, Rr, Urb, Xos, Xu, Xu, Rr, Rr, Rr, Rr, Xu, Xu, Uu, Uu, Xu, Xu
Xu, Xu, Xu, Xu, Xos, Xos, Xos, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Cud, Cud, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Cud, Cud, Urb, Xos, Xos, Xu, Xu, Xu, Rr, Xu, Xu, Uh^Vu, Xu, Uu, Re, Uu^Es, Xu Xu, Xu, Xu, Xu, Xos, Xos, Xos, Xu, Xu, Xu, Xu, Xos, Xos, Urb, Cud, Cud, Rr, Rr, Rr, Rr, Rr^Vu, Rr, Rr, Rr, Rr, Cud, Cud, Urb, Xos, Xos, Xu, Xu, Xu, Rr, Xu, Xu, Uh^Vu, Xu, Uu, Re, Uu^Es, Xu
Xu, Xu, Xu, Xu, Xos, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Rr, Rr, Rr, Rr, Rr, Ce, Rr, Rr, Rr, Rr, Rr, Xu, Xos, Xu, Xu, Xu, Xu, Xu, Xu, 3 Kud, Cud, Uh, Uh, Uu, Re, Uu, Xu Xu, Xu, Xu, Xu, Xos, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Rr, Rr, Rr, Rr^Vu, Rr^Vu, Ce, Rr^Vu, Rr^Vu, Rr, Rr, Rr, Xu, Xos, Xu, Xu, Xu, Xu, Xu, Xu, 3 Kud, Cud, Uh, Uh, Uu, Re, Uu, Xu
Xu, Xu, Xu, Xu, Xos, Xos^Efs, Uu, Uh, Xos, Qxu, Qxu, Xu, Xu, Xu, Xu, Rr, Rr, Rr, Rr, Ce, Ke, Ce, Rr, Rr, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Cud, Cud, Uu^Es, Uu, Uu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Xos, Xos^Efs, Uu, Uh, Xos, Qxu, Qxu, Xu, Xu, Xu, Xu, Rr, Rr, Rr, Rr^Vu, Ce, Ke, Ce, Rr^Vu, Rr, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Cud, Cud, Uu^Es, Uu, Uu, Xu, Xu, Xu
Xu, Xu, Xu, Xos, Uu, Uu, Uu, Uh, Xos, Qxu, Qxu, Xu, Xu, Xu, Xu, Rr, Rr, Rr, Xu, Ce, Ce, Ce, Rr, Rr, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Cud, Uu, Uu, Re, Re, Xu, Xu, Xu, Xu Xu, Xu, Xu, Xos, Uu, Uu, Uu, Uh, Xos, Qxu, Qxu, Xu, Xu, Xu, Xu, Rr, Rr^Vu, Rr^Vu, Xu, Ce, Ce, Ce, Rr^Vu, Rr, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Cud, Uu, Uu, Re, Re, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Cud, Urb, Urb, Xos, Xos, Uu, Uh, Xu, Xu, Xos, Xos^Efs, Cud, Rr, Rr, Xu, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Cud, Xos^Efs, Xos, Xu, Xu, Xu, Xu, Uh, Uu, Rd^Es, Uu, Uh, Xu, Xu, Xu, Xu Xu, Xu, Xu, Cud, Urb, Urb, Xos, Xos, Uu, Uh, Xu, Xu, Xos, Xos^Efs, Cud, Rr, Rr, Xu, Rr^Vu, Rr^Vu, Rr^Vu, Rr^Vu, Rr, Rr, Rr, Rr, Cud, Xos^Efs, Xos, Xu, Xu, Xu, Xu, Uh, Uu, Rd^Es, Uu, Uh, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Urb, Urb, Urb, Urb, Urb, Urb, Uu, Xos^Efs, Xos, Urb, Urb, Rr, Cud, Cud, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Cud, Cud, Rr, Urb, Urb, Xos, Xu, Xu, Xu, Uh^Vu, Uu, Rd, Uh, Uu^Vud, Xu, Xu, Xu, Xu Xu, Xu, Xu, Urb, Urb, Urb, Urb, Urb, Urb, Uu, Xos^Efs, Xos, Urb, Urb, Rr, Cud, Cud, Rr, Rr, Rr, Rr, Rr, Rr, Rr, Cud, Cud, Rr, Urb, Urb, Xos, Xu, Xu, Xu, Uh^Vu, Uu, Rd, Uh, Uu^Vud, Xu, Xu, Xu, Xu
Xu, Xu, Xos, Xu, Urb, Urb, Urb, Urb, Xuc, Xos, Urb, Urb, Rr, Rr, Urb, Urb, Xos, Xu, Xuc, Rr, Rr, Rr, Xuc, Xu, Xos, Urb, Urb, Rr, Urb, Xos, Xu, Xu, Xu, Xu, Uu, Rd, Xu, Xu, Xu, Xu, Xu, Xu Xu, Xu, Xos, Xu, Urb, Urb, Urb, Urb, Xuc, Xos, Urb, Urb, Rr, Rr, Urb, Urb, Xos, Xu, Xuc, Rr, Rr, Rr, Xuc, Xu, Xos, Urb, Urb, Rr, Urb, Xos, Xu, Xu, Xu, Xu, Uu, Rd, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xos, Urb, Urb, Cud, Urb, Urb, Urb, Xuc, Xuc, Urb, Rr, Urb, Urb, Xos, Xos, Xu, Xu, Xuc, Cud, Cud, Cud, Xuc, Xu, Xu, Xos, Urb, Rr, Xuc, Xu, Uh, Rd^Es, Re, Uu, Uu, Re, Xu, Xu, Xu, Xu, Xu, Xu Xu, Xos, Urb, Urb, Cud, Urb, Urb, Urb, Xuc, Xuc, Urb, Rr, Urb, Urb, Xos, Xos, Xu, Xu, Xuc, Cud, Cud, Cud, Xuc, Xu, Xu, Xos, Urb, Rr, Xuc, Xu, Uh, Rd^Es, Re, Uu, Uu, Re, Xu, Xu, Xu, Xu, Xu, Xu

View file

@ -21,7 +21,6 @@
[/part] [/part]
[part] [part]
story= _ "The dwarves of Knalga, cannily reckoning the gains from trade, built strong fortifications around Dwarven Doors. The dwarves and humans who called it home knew that the wealth of the city might arouse envy from afar — hence they kept their weapons sharp, and regarded themselves able to fight off any bandit gang or petty warlord." story= _ "The dwarves of Knalga, cannily reckoning the gains from trade, built strong fortifications around Dwarven Doors. The dwarves and humans who called it home knew that the wealth of the city might arouse envy from afar — hence they kept their weapons sharp, and regarded themselves able to fight off any bandit gang or petty warlord."
{NR_BIGMAP} {NR_BIGMAP}
{PROLOGUE_STAGE1_END} {PROLOGUE_STAGE1_END}
[/part] [/part]
@ -98,7 +97,7 @@
side=1 side=1
controller=human controller=human
recruit=Peasant,Woodsman recruit=Peasant,Woodsman
{GOLD 100 75 60} {GOLD 100 80 60}
team_name=rebels team_name=rebels
user_team_name= _ "Rebels" user_team_name= _ "Rebels"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -143,7 +142,7 @@
[criteria] [criteria]
side=3 side=3
[/criteria] [/criteria]
value=3 value={ON_DIFFICULTY 5 4 3}
[/goal] [/goal]
[goal] [goal]
name=target name=target
@ -171,7 +170,7 @@
canrecruit=yes canrecruit=yes
[ai] [ai]
leader_value=5 # Strong desire to kill Al'Tar leader_value={ON_DIFFICULTY 7 6 5} # Strong desire to kill Al'Tar
village_value=0.75 # Weakened desire to capture villages village_value=0.75 # Weakened desire to capture villages
caution=0.50 # Wants to survive the duel caution=0.50 # Wants to survive the duel
[goal] [goal]
@ -179,7 +178,7 @@
[criteria] [criteria]
side=2 side=2
[/criteria] [/criteria]
value=3 value={ON_DIFFICULTY 5 4 3}
[/goal] [/goal]
[goal] [goal]
name=target name=target

View file

@ -4,7 +4,8 @@
id=02_01_Infested_Caves id=02_01_Infested_Caves
name= _ "Infested Caves" name= _ "Infested Caves"
map_file=02_01_Infested_Caves.map map_file=02_01_Infested_Caves.map
{TURNS 55 50 45} # It can take a long time to break through:
{TURNS 65 55 45}
next_scenario=02_02_Meeting_With_Dwarves next_scenario=02_02_Meeting_With_Dwarves
{UNDERGROUND} {UNDERGROUND}
@ -47,8 +48,9 @@
[side] [side]
side=1 side=1
controller=human controller=human
{GOLD 450 400 350} {GOLD 500 425 350}
recruit=Peasant,Woodsman,Thug,Poacher,Footpad {INCOME 6 4 2}
recruit=Peasant,Woodsman,Thug,Poacher,Footpad,Ruffian
team_name=rebels team_name=rebels
user_team_name= _ "Rebels" user_team_name= _ "Rebels"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -65,7 +67,7 @@
side=2 side=2
controller=ai controller=ai
recruit=Troll Whelp recruit=Troll Whelp
{GOLD 100 150 200} {GOLD 80 140 200}
team_name=trolls team_name=trolls
user_team_name= _ "Trolls" user_team_name= _ "Trolls"
@ -73,13 +75,19 @@
id=Knash id=Knash
name= _ "Knash" name= _ "Knash"
canrecruit=yes canrecruit=yes
#ifdef EASY
[ai]
# Making Knash passive gives the player a better chance of reaching Camerin's hut:
passive_leader=yes
[/ai]
#endif
[/side] [/side]
[side] [side]
side=3 side=3
controller=ai controller=ai
recruit=Troll Whelp recruit=Troll Whelp
{GOLD 100 150 200} {GOLD 80 140 200}
team_name=trolls team_name=trolls
user_team_name= _ "Trolls" user_team_name= _ "Trolls"
@ -87,6 +95,12 @@
id=Krog id=Krog
name= _ "Krog" name= _ "Krog"
canrecruit=yes canrecruit=yes
#ifdef EASY
[ai]
# For symmetry with Knash:
passive_leader=yes
[/ai]
#endif
[/side] [/side]
# Dwarven side # Dwarven side
@ -94,8 +108,8 @@
side=4 side=4
controller=ai controller=ai
recruit=Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Guardsman,Dwarvish Scout recruit=Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Guardsman,Dwarvish Scout
{GOLD 130 120 100} {GOLD 190 145 100}
income=9 # covering the upkeep costs {INCOME 11 10 9} # covering the upkeep costs, and possibly a bit more on easier difficulties
team_name=rebels team_name=rebels
user_team_name= _ "Rebels" user_team_name= _ "Rebels"
{FLAG_VARIANT knalgan} {FLAG_VARIANT knalgan}
@ -164,8 +178,8 @@
side=6 side=6
controller=ai controller=ai
recruit=Troll Whelp,Troll,Troll Rocklobber recruit=Troll Whelp,Troll,Troll Rocklobber
{GOLD 300 400 500} {GOLD 250 375 500}
{INCOME 14 18 22} {INCOME 8 15 22}
team_name=trolls team_name=trolls
user_team_name= _ "Trolls" user_team_name= _ "Trolls"
@ -192,8 +206,8 @@
side=7 side=7
controller=ai controller=ai
recruit=Skeleton,Skeleton Archer recruit=Skeleton,Skeleton Archer
{GOLD 250 350 450} {GOLD 210 330 450}
{INCOME 4 6 8} {INCOME 2 5 8}
team_name=undead team_name=undead
user_team_name= _ "Undead" user_team_name= _ "Undead"
{FLAG_VARIANT undead} {FLAG_VARIANT undead}
@ -210,7 +224,7 @@
recruit=Skeleton,Skeleton Archer recruit=Skeleton,Skeleton Archer
{GOLD 250 350 450} {GOLD 250 350 450}
# One more compared to side 7, for upkeep cost of the Micro AI guardian. # One more compared to side 7, for upkeep cost of the Micro AI guardian.
{INCOME 5 7 9} {INCOME 3 6 9}
team_name=undead team_name=undead
user_team_name= _ "Undead" user_team_name= _ "Undead"

View file

@ -26,8 +26,9 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Peasant,Woodsman,Thug,Poacher,Footpad recruit=Peasant,Woodsman,Thug,Poacher,Footpad,Ruffian
{GOLD 600 400 300} {GOLD 650 475 300}
{INCOME 3 2 1}
team_name=rebels team_name=rebels
user_team_name= _ "Alliance" user_team_name= _ "Alliance"
@ -104,7 +105,7 @@
gold=0 gold=0
# {GOLD 100 150 250} # {GOLD 100 150 250}
{INCOME 10 16 22} {INCOME 6 14 22}
team_name=undead team_name=undead
user_team_name= _ "Undead" user_team_name= _ "Undead"
{FLAG_VARIANT undead} {FLAG_VARIANT undead}
@ -507,7 +508,7 @@
[gold] [gold]
side=4 side=4
amount={ON_DIFFICULTY 200 350 500} amount={ON_DIFFICULTY 120 310 500}
[/gold] [/gold]
[/event] [/event]
@ -1235,10 +1236,10 @@
message= _ "Bring it on!" message= _ "Bring it on!"
[/message] [/message]
# Add 200, 350 or 500 gold to treasury guards. # Add 120, 310 or 500 gold to treasury guards.
[gold] [gold]
side=5 side=5
amount={ON_DIFFICULTY 200 350 500} amount={ON_DIFFICULTY 120 310 500}
[/gold] [/gold]
[/event] [/event]
@ -1570,7 +1571,7 @@
[gold] [gold]
side=7 side=7
amount={ON_DIFFICULTY 200 350 500} amount={ON_DIFFICULTY 120 310 500}
[/gold] [/gold]
[/event] [/event]
@ -1922,7 +1923,7 @@
[gold] [gold]
side=6 side=6
amount={ON_DIFFICULTY 200 350 500} amount={ON_DIFFICULTY 120 310 500}
[/gold] [/gold]
[/event] [/event]
@ -1973,7 +1974,7 @@
[gold] [gold]
side=3 side=3
amount={ON_DIFFICULTY 200 250 300} amount={ON_DIFFICULTY 120 210 300}
[/gold] [/gold]
[/event] [/event]

View file

@ -124,7 +124,7 @@
# From now on level 0 units can not be recruited anymore. # From now on level 0 units can not be recruited anymore.
# However, all of their level 1 advancements are now availaible. # However, all of their level 1 advancements are now availaible.
[disallow_recruit] [disallow_recruit]
type=Peasant,Woodsman type=Peasant,Woodsman,Ruffian
[/disallow_recruit] [/disallow_recruit]
[lock_view][/lock_view] [lock_view][/lock_view]

View file

@ -37,7 +37,8 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Footpad # Fencers can be replaced if/when the Dwarvish Grenadier proposal gets accepted:
recruit=Thug,Poacher,Spearman,Bowman,Footpad,Fencer
{GOLD 350 300 250} {GOLD 350 300 250}
team_name=knalgans team_name=knalgans
user_team_name= _ "Knalgans" user_team_name= _ "Knalgans"

View file

@ -125,7 +125,9 @@
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Footpad recruit=Thug,Poacher,Spearman,Bowman,Footpad
gold=0 #player has large carryover here, is handled in prestart event # player is supposed to have a large carryover here (handled in prestart event), so leave this zero on all difficulties here:
{GOLD 0 0 0}
{INCOME 4 3 2}
team_name=knalgans team_name=knalgans
user_team_name= _ "Knalgans" user_team_name= _ "Knalgans"
@ -143,7 +145,7 @@
side=2 side=2
controller=ai controller=ai
recruit=Dwarvish Ulfserker recruit=Dwarvish Ulfserker
{GOLD 100 90 60} {GOLD 120 90 60}
team_name=knalgans team_name=knalgans
user_team_name= _ "Knalgans" user_team_name= _ "Knalgans"
{FLAG_VARIANT knalgan} {FLAG_VARIANT knalgan}
@ -158,7 +160,7 @@
{TRAIT_HEALTHY} {TRAIT_HEALTHY}
[/modifications] [/modifications]
hitpoints=1 {QUANTITY hitpoints 11 6 1} # (based on number of hits a Young Ogre would take to kill him)
fog=yes fog=yes
share_vision=all share_vision=all
facing=se facing=se
@ -166,43 +168,47 @@
# Place some combatants at various states of hp/xp # Place some combatants at various states of hp/xp
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 28 8} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 28 8}
[+unit] [+unit]
hitpoints=12 {QUANTITY hitpoints 18 15 12}
#ifdef EASY
experience=41
#else
experience=40 experience=40
#endif
facing=se facing=se
[/unit] [/unit]
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 24 7} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 24 7}
[+unit] [+unit]
hitpoints=34 hitpoints=34 # max
experience=8 {QUANTITY experience 10 9 8}
facing=ne facing=ne
[/unit] [/unit]
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 24 4} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 24 4}
[+unit] [+unit]
hitpoints=28 {QUANTITY hitpoints 32 30 28}
experience=18 {QUANTITY experience 22 20 18}
facing=sw facing=sw
[/unit] [/unit]
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 23 2} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 23 2}
[+unit] [+unit]
hitpoints=30 {QUANTITY hitpoints 34 32 30}
experience=16 {QUANTITY experience 20 18 16}
facing=s facing=s
[/unit] [/unit]
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 30 7} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 30 7}
[+unit] [+unit]
hitpoints=12 {QUANTITY hitpoints 16 14 12}
experience=16 {QUANTITY experience 20 18 16}
facing=nw facing=nw
[/unit] [/unit]
{NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 22 6} {NOTRAIT_UNIT 2 "Dwarvish Ulfserker" 22 6}
[+unit] [+unit]
hitpoints=9 {QUANTITY hitpoints 15 12 9}
experience=41 experience=41 # 42 is max
facing=sw facing=sw
[/unit] [/unit]
[/side] [/side]
@ -212,7 +218,7 @@
side=3 side=3
controller=ai controller=ai
recruit=Gryphon,Young Ogre,Ogre,Troll Whelp,Troll,Troll Rocklobber,Red Mage,Mage recruit=Gryphon,Young Ogre,Ogre,Troll Whelp,Troll,Troll Rocklobber,Red Mage,Mage
{GOLD 950 1100 1600} {GOLD 900 1100 1600}
team_name=liches team_name=liches
user_team_name= _ "Liches" user_team_name= _ "Liches"
{FLAG_VARIANT undead} {FLAG_VARIANT undead}
@ -227,29 +233,29 @@
{NOTRAIT_UNIT 3 Troll 30 9} {NOTRAIT_UNIT 3 Troll 30 9}
[+unit] [+unit]
hitpoints=36 {QUANTITY hitpoints 32 34 36}
experience=14 {QUANTITY experience 10 12 14}
facing=nw facing=nw
[/unit] [/unit]
{NOTRAIT_UNIT 3 "Young Ogre" 28 6} {NOTRAIT_UNIT 3 "Young Ogre" 28 6}
[+unit] [+unit]
hitpoints=6 {QUANTITY hitpoints 4 5 6}
experience=31 {QUANTITY experience 29 30 31}
facing=se facing=se
[/unit] [/unit]
{NOTRAIT_UNIT 3 "Young Ogre" 20 7} {NOTRAIT_UNIT 3 "Young Ogre" 20 7}
[+unit] [+unit]
hitpoints=12 {QUANTITY hitpoints 10 11 12}
experience=12 {QUANTITY experience 10 11 12}
facing=ne facing=ne
[/unit] [/unit]
{NOTRAIT_UNIT 3 "Ogre" 23 3} {NOTRAIT_UNIT 3 "Ogre" 23 3}
[+unit] [+unit]
hitpoints=27 {QUANTITY hitpoints 21 24 27}
experience=8 {QUANTITY experience 6 7 8}
facing=n facing=n
[/unit] [/unit]
@ -287,7 +293,7 @@
[/store_gold] [/store_gold]
[modify_side] [modify_side]
side=1 side=1
{GOLD 200 100 80} {GOLD 280 180 80}
[/modify_side] [/modify_side]
# Recall heroes # Recall heroes

View file

@ -4,7 +4,7 @@
id=08a_Elvish_Princess id=08a_Elvish_Princess
name= _ "Elvish Princess" name= _ "Elvish Princess"
map_file=08a_Elvish_Princess.map map_file=08a_Elvish_Princess.map
{TURNS 21 18 15} {TURNS 23 19 15}
next_scenario=09a_Introductions next_scenario=09a_Introductions
victory_when_enemies_defeated=no victory_when_enemies_defeated=no
@ -94,9 +94,13 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad # Tallin only asked the mages for their gryphons at the end of the previous scenario, so don't add any more of their units here:
recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad,Fencer
team_name=knalgans team_name=knalgans
user_team_name= _ "Knalgans" user_team_name= _ "Knalgans"
# default gold when left unspecified is 100, so keep first 2 difficulties higher than that:
{GOLD 122 111 100}
{INCOME 9 6 3}
# wmllint: recognize Tallin # wmllint: recognize Tallin
{CHARACTER_STATS_TALLIN} {CHARACTER_STATS_TALLIN}
@ -107,8 +111,8 @@
side=2 side=2
controller=ai controller=ai
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp
{GOLD 300 400 500} {GOLD 250 375 500}
{INCOME 15 20 25} {INCOME 10 20 25}
team_name=Orcs team_name=Orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -166,8 +170,10 @@
{GENERIC_UNIT 3 "Orcish Crossbowman" 17 14} {GUARDIAN} {GENERIC_UNIT 3 "Orcish Crossbowman" 17 14} {GUARDIAN}
[/side] [/side]
{STARTING_VILLAGES 1 5} # 1 = Tallin, so get smaller by difficulty:
{STARTING_VILLAGES_AREA 2 15 17 12} {STARTING_VILLAGES 1 {ON_DIFFICULTY 7 6 5}}
# 2 = Orcs, so get bigger by difficulty:
{STARTING_VILLAGES_AREA 2 15 17 {ON_DIFFICULTY 10 11 12}}
{PLACE_PRISONER_IMAGE units/elves-wood/sorceress.png 9 14} {PLACE_PRISONER_IMAGE units/elves-wood/sorceress.png 9 14}
@ -361,6 +367,26 @@
[/message] [/message]
[/event] [/event]
#ifdef EASY
[event]
name=last breath
[filter]
id=Atul
[/filter]
[message]
race=human
message= _ "This orc was carrying some gold!"
[/message]
[sound]
name=gold.ogg
[/sound]
[gold]
side=1
{QUANTITY amount 120 80 40}
[/gold]
[/event]
#endif
# Freeing Eryssa event - victory proceed to introductions # Freeing Eryssa event - victory proceed to introductions
[event] [event]
name=moveto name=moveto

View file

@ -23,7 +23,7 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad,Fencer
team_name=knalgans team_name=knalgans
user_team_name=_ "Knalgans" user_team_name=_ "Knalgans"
@ -49,7 +49,7 @@
{GENERIC_UNIT 2 "Troll" 10 6} {GENERIC_UNIT 2 "Troll" 10 6}
{GENERIC_UNIT 2 "Troll" 11 4} {GENERIC_UNIT 2 "Troll" 11 4}
{GENERIC_UNIT 2 "Troll" 16 6} {GENERIC_UNIT 2 "Troll" 16 6}
{GENERIC_UNIT 2 "Troll" 18 11} {GENERIC_UNIT 2 {ON_DIFFICULTY "Troll Whelp" "Troll" "Troll Warrior"} 18 11}
{GENERIC_UNIT 2 "Troll Whelp" 3 9} {GENERIC_UNIT 2 "Troll Whelp" 3 9}
{GENERIC_UNIT 2 "Troll Whelp" 6 3} {GENERIC_UNIT 2 "Troll Whelp" 6 3}
@ -63,7 +63,7 @@
{GENERIC_UNIT 2 "Troll Rocklobber" 4 3} {GENERIC_UNIT 2 "Troll Rocklobber" 4 3}
{GENERIC_UNIT 2 "Troll Rocklobber" 9 3} {GENERIC_UNIT 2 "Troll Rocklobber" 9 3}
{GENERIC_UNIT 2 "Troll Rocklobber" 10 5} {GENERIC_UNIT 2 "Troll Rocklobber" 10 5}
{GENERIC_UNIT 2 "Troll Rocklobber" 14 3} {GENERIC_UNIT 2 {ON_DIFFICULTY "Troll Whelp" "Troll Rocklobber" "Troll Rocklobber"} 14 3}
[/side] [/side]
{PLACE_IMAGE scenery/signpost.png 1 1} {PLACE_IMAGE scenery/signpost.png 1 1}
@ -134,6 +134,8 @@
id=Stalrag id=Stalrag
[/recall] [/recall]
{RECALL_LOYAL_DWARF}
[recall] [recall]
id="Ro'Arthian" id="Ro'Arthian"
[/recall] [/recall]

View file

@ -156,8 +156,9 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad,Fencer
gold=200 {GOLD 300 250 200}
{INCOME 3 2 1}
team_name=alliance team_name=alliance
user_team_name= _ "Alliance" user_team_name= _ "Alliance"
@ -338,6 +339,12 @@
id="Ro'Sothian" id="Ro'Sothian"
[/recall] [/recall]
{RECALL_LOYAL_DWARF}
[recall]
type=Gryphon
[/recall]
# give player extra gold if they do not have krash # give player extra gold if they do not have krash
[if] [if]
[not] [not]
@ -942,7 +949,7 @@
[/message] [/message]
[gold] [gold]
amount=1500 {QUANTITY amount 1700 1600 1500}
side=1 side=1
[/gold] [/gold]

View file

@ -32,8 +32,9 @@
[side] [side]
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad recruit=Thug,Poacher,Spearman,Bowman,Gryphon,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Footpad,Fencer,Heavy Infantryman
{GOLD 250 200 150} {GOLD 250 200 150}
{INCOME 3 2 1}
team_name=knalgans team_name=knalgans
user_team_name= _ "Alliance" user_team_name= _ "Alliance"
@ -48,7 +49,7 @@
controller=ai controller=ai
recruit=Troll Whelp,Troll,Troll Rocklobber recruit=Troll Whelp,Troll,Troll Rocklobber
{GOLD 500 600 700} {GOLD 500 600 700}
{INCOME 25 35 45} {INCOME 21 33 45}
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
@ -72,7 +73,7 @@
controller=ai controller=ai
recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin
{GOLD 400 500 600} {GOLD 400 500 600}
{INCOME 25 35 45} {INCOME 21 33 45}
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -88,7 +89,7 @@
controller=ai controller=ai
recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin
{GOLD 400 500 600} {GOLD 400 500 600}
{INCOME 25 35 45} {INCOME 21 33 45}
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -104,7 +105,7 @@
controller=ai controller=ai
recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin
{GOLD 400 500 600} {GOLD 400 500 600}
{INCOME 25 35 45} {INCOME 21 33 45}
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -120,7 +121,7 @@
controller=ai controller=ai
recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin recruit=Orcish Grunt,Orcish Warrior,Orcish Archer,Orcish Crossbowman,Wolf Rider,Orcish Assassin
{GOLD 400 500 600} {GOLD 400 500 600}
{INCOME 25 35 45} {INCOME 21 33 45}
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
@ -149,7 +150,8 @@
{FLAG_VARIANT long} {FLAG_VARIANT long}
[/side] [/side]
{STARTING_VILLAGES 1 6} # 1 = Tallin, so reduce radius with difficulty:
{STARTING_VILLAGES 1 {ON_DIFFICULTY 8 7 6}}
# Heres where we edit out Krash's side if he's dead. # Heres where we edit out Krash's side if he's dead.
[event] [event]
@ -188,10 +190,11 @@
side=2,3,4,5,6 side=2,3,4,5,6
amount={ON_DIFFICULTY -125 -100 -75} amount={ON_DIFFICULTY -125 -100 -75}
[/gold] [/gold]
{CAPTURE_VILLAGES 1 30 3 5} {CAPTURE_VILLAGES 1 30 3 {ON_DIFFICULTY 7 6 5}}
[/then] [/then]
[else] [else]
{CAPTURE_VILLAGES 7 30 3 5} # give them to Krash instead if he is in fact still alive:
{CAPTURE_VILLAGES 7 30 3 {ON_DIFFICULTY 7 6 5}}
[/else] [/else]
[/if] [/if]
@ -267,6 +270,8 @@
id="Ro'Sothian" id="Ro'Sothian"
[/recall] [/recall]
{RECALL_LOYAL_DWARF}
[message] [message]
speaker=Tallin speaker=Tallin
message= _ "Gods of Light, look at that fortress! The castle Angthurim is even grimmer than its reputation!" message= _ "Gods of Light, look at that fortress! The castle Angthurim is even grimmer than its reputation!"

View file

@ -47,11 +47,15 @@
canrecruit=yes canrecruit=yes
side=1 side=1
controller=human controller=human
recruit=Thug,Poacher,Spearman,Bowman,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Gryphon,Footpad recruit=Thug,Poacher,Spearman,Bowman,Dwarvish Fighter,Dwarvish Thunderer,Dwarvish Ulfserker,Dwarvish Scout,Gryphon,Footpad,Fencer
team_name=knalgans team_name=knalgans
user_team_name=_"Alliance" user_team_name=_"Alliance"
gold=100 # The first value here ought to be enough for the player to get through their entire recall list,
# and then the middle one is an interpolation of the halfway point between that and the existing third amount:
{GOLD 900 500 100}
{INCOME 18 12 9}
[/side] [/side]
# This gets all the ones nearby; keep constant:
{STARTING_VILLAGES 1 5} {STARTING_VILLAGES 1 5}
# Main enemy # Main enemy
[side] [side]
@ -69,39 +73,55 @@
x=30 x=30
y=30 y=30
[/criteria] [/criteria]
value=400 value={ON_DIFFICULTY 200 300 400}
[/goal]
[goal]
name=protect_unit
[criteria]
id=Rakshas
[/criteria]
protect_radius={ON_DIFFICULTY 12 11 10}
value={ON_DIFFICULTY 250 350 450}
[/goal] #
[goal]
name=target
[criteria]
side=1 # Tallin
[/criteria]
value={ON_DIFFICULTY 60 180 300}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=1 side=7 # Krash, or Ro'Arthian
[/criteria] [/criteria]
value=300 value={ON_DIFFICULTY 50 100 150}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=7 side=8 # Hamel
[/criteria] [/criteria]
value=150 value={ON_DIFFICULTY 40 50 60}
[/goal] [/goal]
[goal] # separate target for Hamel himself:
name=target
[criteria]
id=Hamel
[/criteria]
value={ON_DIFFICULTY 30 40 50}
[/goal] #
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=8 side=9 # Eryssa, or Ro'Sothian
[/criteria] [/criteria]
value=50 value={ON_DIFFICULTY 100 175 250}
[/goal]
[goal]
name=target
[criteria]
side=9
[/criteria]
value=250
[/goal] [/goal]
[/ai] [/ai]
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 2 3} {STARTING_VILLAGES 2 3}
# Sidekicks # Sidekicks
[side] [side]
@ -117,36 +137,52 @@
user_team_name=_"Orcs" user_team_name=_"Orcs"
[ai] [ai]
[goal] [goal]
name=target name=protect_unit
[criteria] [criteria]
side=1 id="Ha'Tuil"
[/criteria] [/criteria]
value=400 protect_radius={ON_DIFFICULTY 9 8 7}
value={ON_DIFFICULTY 250 350 450}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=7 side=1 # Tallin
[/criteria] [/criteria]
value=300 value={ON_DIFFICULTY 160 280 400}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=8 side=7 # Krash, or Ro'Arthian
[/criteria] [/criteria]
value=200 value={ON_DIFFICULTY 100 200 300}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=9 side=8 # Hamel
[/criteria] [/criteria]
value=350 value={ON_DIFFICULTY 80 160 240}
[/goal]
[goal] # separate target for Hamel himself:
name=target
[criteria]
id=Hamel
[/criteria]
value={ON_DIFFICULTY 90 180 270}
[/goal] #
[goal]
name=target
[criteria]
side=9 # Eryssa, or Ro'Sothian
[/criteria]
value={ON_DIFFICULTY 150 250 350}
[/goal] [/goal]
[/ai] [/ai]
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 3 4} {STARTING_VILLAGES 3 4}
[side] [side]
@ -162,36 +198,52 @@
user_team_name=_"Orcs" user_team_name=_"Orcs"
[ai] [ai]
[goal] [goal]
name=target name=protect_unit
[criteria] [criteria]
side=1 id="Ar'Muff"
[/criteria] [/criteria]
value=400 protect_radius={ON_DIFFICULTY 9 8 7}
value={ON_DIFFICULTY 250 350 450}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=7 side=1 # Tallin
[/criteria] [/criteria]
value=300 value={ON_DIFFICULTY 160 280 400}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=8 side=7 # Krash, or Ro'Arthian
[/criteria] [/criteria]
value=200 value={ON_DIFFICULTY 100 200 300}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=9 side=8 # Hamel
[/criteria] [/criteria]
value=350 value={ON_DIFFICULTY 80 160 240}
[/goal]
[goal] # separate target for Hamel himself:
name=target
[criteria]
id=Hamel
[/criteria]
value={ON_DIFFICULTY 90 180 270}
[/goal] #
[goal]
name=target
[criteria]
side=9 # Eryssa, or Ro'Sothian
[/criteria]
value={ON_DIFFICULTY 150 250 350}
[/goal] [/goal]
[/ai] [/ai]
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 4 4} {STARTING_VILLAGES 4 4}
[side] [side]
@ -207,36 +259,52 @@
user_team_name=_"Orcs" user_team_name=_"Orcs"
[ai] [ai]
[goal] [goal]
name=target name=protect_unit
[criteria] [criteria]
side=1 id="Calter"
[/criteria] [/criteria]
value=400 protect_radius={ON_DIFFICULTY 9 8 7}
value={ON_DIFFICULTY 250 350 450}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=7 side=1 # Tallin
[/criteria] [/criteria]
value=300 value={ON_DIFFICULTY 160 280 400}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=8 side=7 # Krash, or Ro'Arthian
[/criteria] [/criteria]
value=200 value={ON_DIFFICULTY 100 200 300}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=9 side=8 # Hamel
[/criteria] [/criteria]
value=350 value={ON_DIFFICULTY 80 160 240}
[/goal]
[goal] # separate target for Hamel himself:
name=target
[criteria]
id=Hamel
[/criteria]
value={ON_DIFFICULTY 90 180 270}
[/goal] #
[goal]
name=target
[criteria]
side=9 # Eryssa, or Ro'Sothian
[/criteria]
value={ON_DIFFICULTY 150 250 350}
[/goal] [/goal]
[/ai] [/ai]
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 5 4} {STARTING_VILLAGES 5 4}
[side] [side]
@ -252,36 +320,52 @@
user_team_name=_"Orcs" user_team_name=_"Orcs"
[ai] [ai]
[goal] [goal]
name=target name=protect_unit
[criteria] [criteria]
side=1 id="Halter"
[/criteria] [/criteria]
value=400 protect_radius={ON_DIFFICULTY 9 8 7}
value={ON_DIFFICULTY 250 350 450}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=7 side=1 # Tallin
[/criteria] [/criteria]
value=300 value={ON_DIFFICULTY 160 280 400}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=8 side=7 # Krash, or Ro'Arthian
[/criteria] [/criteria]
value=200 value={ON_DIFFICULTY 100 200 300}
[/goal] [/goal]
[goal] [goal]
name=target name=target
[criteria] [criteria]
side=9 side=8 # Hamel
[/criteria] [/criteria]
value=350 value={ON_DIFFICULTY 80 160 240}
[/goal]
[goal] # separate target for Hamel himself:
name=target
[criteria]
id=Hamel
[/criteria]
value={ON_DIFFICULTY 90 180 270}
[/goal] #
[goal]
name=target
[criteria]
side=9 # Eryssa, or Ro'Sothian
[/criteria]
value={ON_DIFFICULTY 150 250 350}
[/goal] [/goal]
[/ai] [/ai]
{FLAG_VARIANT6 ragged} {FLAG_VARIANT6 ragged}
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 6 4} {STARTING_VILLAGES 6 4}
# Krash may not actually still be alive at this point, but setting up # Krash may not actually still be alive at this point, but setting up
@ -291,7 +375,8 @@
side=7 side=7
save_id=Krash save_id=Krash
side_name= _ "Krash" side_name= _ "Krash"
gold=200 {GOLD 600 400 200}
{INCOME 9 6 3}
recruit=Drake Fighter,Drake Glider,Drake Burner,Drake Clasher recruit=Drake Fighter,Drake Glider,Drake Burner,Drake Clasher
team_name=knalgans team_name=knalgans
user_team_name=_"Alliance" user_team_name=_"Alliance"
@ -333,12 +418,14 @@
[/object] [/object]
[/modifications] [/modifications]
[/side] [/side]
# Gets all ones nearby; keep constant:
{STARTING_VILLAGES 8 10} {STARTING_VILLAGES 8 10}
# Side for Eryssa if alive # Side for Eryssa if alive
[side] [side]
side=9 side=9
gold=200 {GOLD 600 400 200}
{INCOME 9 6 3}
recruit=Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Scout,Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Rider,Elvish Druid,Elvish Sorceress recruit=Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Scout,Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Rider,Elvish Druid,Elvish Sorceress
team_name=knalgans team_name=knalgans
user_team_name=_"Alliance" user_team_name=_"Alliance"
@ -353,9 +440,70 @@
# STARTING_VILLAGES works due to defeat_condition & having a starting location # STARTING_VILLAGES works due to defeat_condition & having a starting location
{STARTING_VILLAGES 9 10} {STARTING_VILLAGES 9 10}
# This should help prevent Hamel from suiciding himself by discouraging him
# from leaving his castle and surrounding villages
# (copied from SotBE, with modifications)
[event]
name=side 8 turn refresh
first_time_only=no
[modify_unit]
[filter]
side=$side_number
canrecruit=yes
# Only do this if his side is AI-controlled:
[filter_side]
controller=ai
[/filter_side]
[/filter]
[movement_costs]
flat={ON_DIFFICULTY 99 66 33}
[/movement_costs]
[/modify_unit]
[event]
name=side turn end
[modify_unit]
[filter]
side=$side_number
canrecruit=yes
# Only do this if his side is AI-controlled:
[filter_side]
controller=ai
[/filter_side]
[/filter]
[movement_costs]
flat=1
[/movement_costs]
[/modify_unit]
[/event]
[/event]
[event] [event]
name=prestart name=prestart
#ifdef EASY
[terrain]
x,y=54,30
terrain=Gg^Vh
[/terrain]
[terrain]
x,y=54,31
terrain=Gg^Vh
[/terrain]
[capture_village]
side=1
x,y=54,30
[/capture_village]
[capture_village]
side=1
x,y=54,31
[/capture_village]
#endif
# Check if Krash is alive, if yes place him at helm of side 7, # Check if Krash is alive, if yes place him at helm of side 7,
# otherwise it's taken over by older lich. # otherwise it's taken over by older lich.
{RECALL_KRASH 7} {RECALL_KRASH 7}
@ -386,11 +534,16 @@
side=7 side=7
type=Troll,Troll Whelp,Ogre,Young Ogre,Mage,Red Mage,Gryphon type=Troll,Troll Whelp,Ogre,Young Ogre,Mage,Red Mage,Gryphon
[/allow_recruit] [/allow_recruit]
# dwarves also get gold if no krash, since it's much harder to defend them # for Ro'Arthian:
[gold] [gold]
side=7,8 side=7
amount=400 amount={ON_DIFFICULTY 650 525 400}
[/gold] [/gold]
# dwarves also get gold if no Krash (but less of it, though), since it's harder to defend them
[gold]
side=8
amount={ON_DIFFICULTY 420 410 400}
[/gold] #
[modify_side] [modify_side]
side=7 side=7
side_name= _ "RoArthian" side_name= _ "RoArthian"
@ -470,10 +623,16 @@
side=9 side=9
type=Troll,Troll Whelp,Ogre,Young Ogre,Mage,Red Mage,Gryphon type=Troll,Troll Whelp,Ogre,Young Ogre,Mage,Red Mage,Gryphon
[/allow_recruit] [/allow_recruit]
# for Ro'Sothian:
[gold] [gold]
side=8,9 side=9
amount=400 amount={ON_DIFFICULTY 650 525 400}
[/gold] [/gold]
# dwarves also get gold if no Eryssa (but less of it, though), since it's harder to defend them
[gold]
side=8
amount={ON_DIFFICULTY 420 410 400}
[/gold] #
[modify_side] [modify_side]
side=9 side=9
side_name= _ "RoSothian" side_name= _ "RoSothian"
@ -957,6 +1116,7 @@
message= _ "FOR HIDEL!!" message= _ "FOR HIDEL!!"
[/message] [/message]
[message] [message]
# TODO: Make sure Supporter isn't one of the characters who already said something:
role=Supporter role=Supporter
message= _ "FOR DWARVEN DOORS!!" message= _ "FOR DWARVEN DOORS!!"
[/message] [/message]
@ -982,7 +1142,7 @@
message= _ "Yeah. Obviously this is going to take some time. If necessary we can sit tight in our fortifications and besiege them until they starve!" message= _ "Yeah. Obviously this is going to take some time. If necessary we can sit tight in our fortifications and besiege them until they starve!"
[/message] [/message]
[/event] [/event]
# Rakashas death # Rakshas death
[event] [event]
name=last breath name=last breath
[filter] [filter]

View file

@ -45,6 +45,28 @@
[/if] [/if]
#enddef #enddef
#define RECALL_LOYAL_DWARF
[recall]
race=dwarf
[filter_wml]
upkeep="loyal"
[or]
[modifications]
[trait]
id=loyal
[or]
[effect]
apply_to=overlay
add="misc/loyal-icon.png"
[/effect]
[/or]
[/trait]
[/modifications]
[/or]
[/filter_wml]
[/recall]
#enddef
#define RECALL_KRASH SIDE #define RECALL_KRASH SIDE
# In S11a-13a Krash starts as the leader of a side if he is alive. He is not # In S11a-13a Krash starts as the leader of a side if he is alive. He is not
# defined in the corresponding side tags for these scenarios, since if he is, # defined in the corresponding side tags for these scenarios, since if he is,

View file

@ -0,0 +1 @@
!.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -37,7 +37,21 @@ const readTerrainImages = async () => {
const promises = Object const promises = Object
.entries(dictTerrainType2ImagesPath) .entries(dictTerrainType2ImagesPath)
.map(async ([terrainType, imageName]) => { .map(async ([terrainType, imageName]) => {
const image = await Jimp.read(`${imageBasepath}/${imageName}.png`) let image = await Jimp.read(`${imageBasepath}/${imageName}.png`)
// Try a number of other places, as well:
if (!image) {
image = await Jimp.read(`../../../images/${imageName}.png`)
}
if (!image) {
image = await Jimp.read(`./images/${imageName}.png`)
}
if (!image) {
image = await Jimp.read(`../../../attic/${imageName}.png`)
}
if (!image) {
// If nothing worked, provide a sensible default as a fallback:
image = await Jimp.read(`../../../data/core/images/misc/blank-hex.png`)
}
return [terrainType, image] return [terrainType, image]
}) })