SoF - Thursagan as "effect crafter" (#4688)

* SoF - initial commit of Thursagan rune-shop addition

* SoF - revisions to Thursagan rune shop

* SoF utils - fix [remove_item] filtering

* SoF S1 and S2 - adding some lesser rune availability for pre-Thursagan scenarios

* SoF utils - fix a type and bogus [remove_item] key

* SoF - rune-related image update

* SoF utils - reinclude name/image key in [item]/[remove_item] tag

* SoF - update changelog
This commit is contained in:
doofus-01 2020-01-11 18:40:27 -08:00 committed by GitHub
parent 50e24404d4
commit 487fd2c9d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 536 additions and 19 deletions

View file

@ -43,6 +43,7 @@
* New scenario (now the third)
* Various map and scenario updates
* Make use of rails terrain
* Dwarves can purchase runes (temporary status boosts)
* Secrets of the Ancients:
* Prevent hero death from triggering new corpse recruitable dialog (issue #4503)
* Fix last breath dialog for bats firing multiple times in the campaign

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

View file

@ -1,30 +1,30 @@
Xu, Xu, Xu, Uh, Uh, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Uh, Uh, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Uh, Uh, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uh, Uh, Xu, Xu, Xu, Xu, Uu, Cud, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Uu, Uu, Uu, Uu, Uu, Uu, Uh, Uh, Uu, Uu, Uu^Vu, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Uu, Cud, Uu, Xu, Xu, Uu, Uu, Uh, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Cud, Uu, Xu, Xu, Xu, Uh, Uu, Uu, Uu^Vu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Mm, Mm, Mm, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Mm, Mm, Mm, Mm, Xu, Xu, Xu, Xu, Xu, Uh, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uu, Uu, Rr, Uu^Vud, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Ms, Ms, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uu^Vud, Uu, Uu, Uu, Uu, Uu, Uu, Rr, Rr, Rr, Rr, Rr, Uu, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu
Ms, Ms, Ms, Ms, Ms, Mm, Xu, Xu, Uu, Uu, Uu, Xu, Uu, Uh, Uh, Uu, Rr, Rr, Rr, Rr, Rr, Rr, Uu^Vud, Rr, Rr, Rr, Rr, Uu, Uu, Uu, Uu, Uu, Uu, Uu
Ms, Ms, Aa^Vha, Ms, Ms, Ms, Xu, Xu, Uu, Cud, Uu, Uu^Vud, Uu, Uh, Rr, Rr, Rr, Rr, Rr, Rr, Uu, Uu, Cud, Uu, Uu, Rr, Rr, Rr, Rr, Uu^Vud, Uu, Uu, Uu, Uu
Ha, Ha, Ha^Esa, Ms, Ms, Ms, Mm, Xu, Xu, Uu, Xu, Xu, Uu, Rr, Rr, Rr, Uu, Uu, Uu, Uu, Uu, Cud, Kud, Cud, Uu, Uu, Uu, Rr, Rr, Rr, Rr, Uu, Rr, Rr
Ms, Ms, Ms, Ha^Fpa, Ms, Ms, Ms, Mm, Mm, Xu, Cud, Uu, Rr, Rr, Uu, Uu, Uu^Vud, Xu, Xu, Uu, Uu^Vud, Cud, Cud, Cud, Uu^Vud, Uu, Uu, Uu, Uu, Rr, Rr, Rr, Rr, Rr
Ms, Ms, Ha^Fpa, Ha^Fpa, Ms, Ms, Ms, Ha, Ha, Ha, Rr, Rr, Cud, Rr, Uu, Xu, Uu, Uu, Uu, Xu, Uu, Uu, Uu, Uu, Xu, Uu, Uu, Uu, Uu, Uu, Uu^Vud, Rr, Uu, Uu
Ha, Gd^Em, Gd^Em, Ha^Esa, Ha, Ms, Ha, Ha, Gd^Esa, Rr, Rr, Rr, Rr, Rr, Cud, Xu, Uu, Cud, Uu, Xu, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Xu, Uu, Xu, Xu
Ha, Ha, Aa, Ha, Aa^Esa, Ha, Gd, Ha^Fpa, Rp^Em, Rp, Rr, 1 Rr, Rr, Rr, Ha, Xu, Xu, Uu, Xu, Xu, Xu, Uu, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Uh, Uh, Uu^Em, Uu^Em, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Uu^Em, Uu, Uh, Uh, Xu, Xu, Xu, Xu, Uu, Cud, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Uu, Uu, Uu, Uu, Uu, Uu, Uh, Uh, Uu, Uu, Uu^Vu, Uu, Uu, Uu, Xu, Xu, Xuc, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Uu, Cud, Uu, Xu, Xu, Uu, Uu, Uh, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xuc, Rr, Uu^Em, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Cud, Uu, Xu, Xu, Xu, Uh, Uu, Uu, Uu^Vu, Xu, Xu, Xu, Xu, Xu, Xu, Uu^Em, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Mm, Mm, Mm, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Ur, Uu, Xuc, Xu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Mm, Mm, Mm, Mm, Xu, Xu, Xu, Xu, Xu, Uh, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xuc, Ur, Uu, Uu, Uu, Rr, Uu^Vud, Uu, Uu, Uh, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Ms, Ms, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uu^Vud, Uu, Uu, Uu, Uu, Uu^Efs, Ur, Rr^Es, Rr, Rr, Rr, Rr, Uu, Uu, Uh, Uu, Xu, Xu, Xu, Xu, Xu
Ms, Ms, Ms, Ms, Ms, Mm, Xu, Xu, Uu, Uu, Uu, Xu, Uu, Uh, Uh, Uu, Rr^Es, Rr^Es, Rr^Es, Rr, Rr, Rr, Uu^Vud, Rr, Rr, Rr, Rr, Uu, Uu, Uu, Uu, Uu, Uu, Uu
Ms, Ms, Aa^Vha, Ms, Ms, Ms, Xu, Xu, Uu, Cud, Uu, Uu^Vud, Uu, Uh, Rr, Rr, Rr, Rr^Es, Rr, Rr, Uu, Uu, Cud, Uu, Uu, Rr, Rr, Rr, Rr, Uu^Vud, Uu, Uu, Uu, Uu
Ha, Ha, Ha^Esa, Ms, Ms, Ms, Mm, Xu, Xu, Uu, Xu, Xu, Uu^Es, Rr, Rr, Rr, Uu, Uu, Uu, Uu, Uu, Cud, Kud, Cud, Uu, Uu, Uu, Rr, Rr, Rr, Rr, Uu, Rr, Rr
Ms, Ms, Ms, Ha^Fpa, Ms, Ms, Ms, Mm, Mm, Xu, Cud, Uu, Rr, Rr^Es, Uu, Uu, Uu^Vud, Xu, Xu, Uu, Uu^Vud, Cud, Cud, Cud, Uu^Vud, Uu, Uu^Em, Uu, Uu, Rr, Rr, Rr, Rr, Rr
Ms, Ms, Ha^Fpa, Ha^Fpa, Ms, Ms, Ms, Ha, Ha, Ha, Rr, Rr, Cud, Rr, Uu, Xu, Uu, Uu, Uu, Xu, Uu, Uu, Uu, Uu, Xu, Uu, Uu^Em, Uu^Em, Uu, Uu, Uu^Vud, Rr, Uu, Uu
Ha, Gd^Em, Gd^Em, Ha^Esa, Ha, Ms, Ha, Ha, Gd^Esa, Rr, Rr, Rr^Es, Rr, Rr, Cud, Xu, Uu, Cud, Uu, Xu, Uu^Em, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Xu, Uu, Xu, Xu
Ha, Ha, Aa, Ha, Aa^Esa, Ha, Gd, Ha^Fpa, Rp^Em, Rp, Rr, 1 Rr, Rr, Rr, Ha, Xu, Xu, Uu, Xu, Xu, Xu, Uu^Em, Uu, Uu, Uu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Ha, Aa, Aa, Aa^Esa, Ha, Ha, Gd^Vh, Gd, Rr, Rp, Aa, Aa, Gd^Vh, Ha, Ha, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu^Vud, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Gd, Aa, Gd, Ha, Aa^Es, Gd^Es, Gd^Es, Rp, Rp, Rr, Gd, Gd, Aa^Fpa, Gd, Ha, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Uh, Uu, Uu, Xu, Xu, Xu, Xu, Uu, Xu, Xu, Xu
Hhd^Esa, Gd, Ha, Aa, Aa, Aa^Fpa, Gd, Rr, Rr, Gd^Em, Aa, Aa^Fpa, Aa^Fpa, Aa, Ha, Ha^Em, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Uh, Uh, Uu, Uu, Xu, Xu, Uu, Cud, Uu, Xu, Xu
Hhd^Esa, Hhd^Esa, Ha, Ha, Gd^Esa, Gd, Rr, Rp, Rr^Esa, Aa, Aa, Aa^Fpa, Gd, Aa, Ha, Ms, Ha, Ha, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Xu, Uu^Vu, Uu, Uu, Uu, Xu, Xu
Aa, Gd, Gd^Vh, Gd, Rr, Rr, Rp, Rr, Ha, Ha, Ha, Aa^Esa, Aa^Fpa, Gd, Gd, Ha, Ha, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Uu, Uh, Uh, Xu, Xu, Xu, Xu, Xu, Xu
Hhd^Esa, Hhd^Esa, Ha, Ha, Gd^Esa, Gd, Rr, Rp, Rr^Esa, Aa, Aa, Aa^Fpa, Gd, Aa, Ha, Ms, Ha, Ha, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Uu^Em, Uu^Em, Xu, Uu^Vu, Uu, Uu, Uu, Xu, Xu
Aa, Gd, Gd^Vh, Gd, Rr, Rr, Rp, Rr, Ha, Ha, Ha, Aa^Esa, Aa^Fpa, Gd, Gd, Ha, Ha, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Uu^Em, Uh, Uh, Xu, Xu, Xu, Xu, Xu, Xu
Gll^Fmw, Gd^Esa, Rp, Rp, Rr, Rp, Cf, Cf, Cf, Mm, Ha, Gd, Aa^Fpa, Aa^Fpa, Ha^Esa, Aa, Aa^Vha, Ha, Ha, Ms, Ms, Xu, Xu, Xu, Xu, Uu, Uu, Uh, Xu, Xu, Xu, Xu, Xu, Xu
Aa, Rr, Rp, Rp, Aa, Gd, Cf, 2 Kf, Cf, Mm, Ha, Gd, Ha, Aa^Fpa, Aa, Aa^Esa, Ha^Esa, Ha^Es, Mm, Mm, Mm, Xu, Uu, Uu, Uu, Uu^Vu, Uu, Uh, Uu, Xu, Xu, Xu, Xu, Xu
Rp, Rr, Gd, Gd, Aa, Aa^Esa, Hhd, Cf, Mm, Mm, Ha, Ha, Ms, Ms, Ha, Aa^Esa, Ha, Mm, Mm, Mm, Mm, Cud, Uu, Cud, Uu, Xu, Xu, Uu, Uu, Uu, Uu, Xu, Xu, Xu
Rp, Rp, Gll^Fmw, Gd^Es, Aa^Fpa, Aa^Vha, Ha, Mm, Ha, Ha, Ms, Ms, Ms, Ms, Ha^Fpa, Ha, Ms, Ms, Ms, Ms, Ms, Xu, Xu, Uu, Xu, Xu, Xu, Xu, Xu, Uh, Uh, Uu, Xu, Xu
Aa, Aa^Fda, Aa^Fda, Aa^Fpa, Aa^Fpa, Ha^Fpa, Aa, Gd^Es, Gd^Em, Aa^Es, Aa^Esa, Ms, Ms, Ha^Fpa, Ha^Fpa, Ha^Esa, Ha^Esa, Ms, Ms, Ms, Ms, Mm, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uu^Vu, Uu
Aa^Esa, Aa, Aa, Gd^Em, Aa, Aa^Esa, Aa, Aa^Fpa, Gd, Aa, Gd^Vh, Ms, Ms, Ha^Fpa, Ha, Aa^Vha, Ha, Mm, Ms, Ms, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu, Uu, Uu
Aa, Aa^Fda, Aa^Fda, Aa^Fpa, Aa^Fpa, Ha^Fpa, Aa, Gd^Es, Gd^Em, Aa^Es, Aa^Esa, Ms, Ms, Ha^Fpa, Ha^Fpa, Ha^Esa, Ha^Esa, Ms, Ms, Ms, Ms, Mm, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu^Em, Uu^Em, Uu^Vu, Uu
Aa^Esa, Aa, Aa, Gd^Em, Aa, Aa^Esa, Aa, Aa^Fpa, Gd, Aa, Gd^Vh, Ms, Ms, Ha^Fpa, Ha, Aa^Vha, Ha, Mm, Ms, Ms, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uu^Em, Uu, Uu
Wwg, Aa^Esa, Ai, Aa, Aa, Aa, Aa, Aa, Aa, Gd, Aa, Ha^Esa, Ha, Ha^Esa, Ha, Ha, Ms, Mm, Ms, Ms, Ms, Ms, Ms, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uh, Uh, Uh
Wwg, Wwg, Ai, Ai, Gd, Gd, Gd, Aa, Gd, Gd, Aa, Ha, Ha, Ha, Ms, Ms, Ms, Ms, Mm, Ms, Ms, Ms, Mm, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uh, Uh, Uh

View file

@ -209,6 +209,9 @@
{SOF_DEATHS}
{SOF_RUNIC_CHEST_SWIFTNESS 23 10}
{SOF_RUNIC_CHEST_FORCE 24 9}
[event]
name=prestart

View file

@ -110,6 +110,10 @@
{SOF_DEATHS}
{SOF_RUNIC_CHEST_SWIFTNESS 18 5}
{SOF_RUNIC_CHEST_ACCURACY 19 6}
{SOF_RUNIC_CHEST_FORCE 18 6}
[event]
name=prestart

View file

@ -314,6 +314,8 @@
{LIMIT_CONTEMPORANEOUS_RECRUITS 4 (Goblin Rouser) 2}
{LIMIT_CONTEMPORANEOUS_RECRUITS 4 (Goblin Impaler) 2}
{SOF_RUNIC_EVENTS}
[event]
name=prestart

View file

@ -165,6 +165,8 @@
text= _ "Shorbear caves"
[/label]
{SOF_RUNIC_EVENTS}
[event]
name=prestart
[objectives]

View file

@ -179,6 +179,8 @@
{SOF_DEATHS}
{SOF_RUNIC_EVENTS}
[event]
name=prestart

View file

@ -115,6 +115,8 @@
{SOF_DEATHS}
{SOF_RUNIC_EVENTS}
[event]
name=prestart

View file

@ -301,6 +301,8 @@
{SOF_DEATHS}
{SOF_RUNIC_EVENTS}
[event]
name=prestart

View file

@ -0,0 +1,499 @@
#textdomain wesnoth-sof
#define SOF_RUNIC_OPTION ID NAME DESC ICON COST EFFECT_WML
image={ICON}
label= {NAME} + " <span style='italic'> ({COST}g)</span>"
description = {DESC}
[command]
[if]
[variable]
name=unit.variables.{ID}_rune
equals=yes
[/variable]
[then]
[message]
speaker=unit
message=_"I already have this one..."
[/message]
[/then]
[else]
[store_gold]
side=1
variable=gold_check
[/store_gold]
[if]
[variable]
name=gold_check
less_than={COST}
[/variable]
[then]
[message]
speaker=unit
message=_"We don't have the funds..."
[/message]
[set_variable]
name=no_funds
value=yes
[/set_variable]
[/then]
[else]
[set_variable]
name=unit.variables.{ID}_rune
value=yes
[/set_variable]
[unstore_unit]
variable=unit
find_vacant=no
[/unstore_unit]
[gold]
side=1
amount=-{COST}
[/gold]
[object]
silent=yes
duration=scenario
[filter]
id=$unit.id
[/filter]
[effect]
apply_to=overlay
add=misc/rune_overlay.png
[/effect]
{EFFECT_WML}
[/object]
[/else]
[/if]
{CLEAR_VARIABLE gold_check}
[/else]
[/if]
[/command]
#enddef
# thursagan moves to keep, or starts side turn at a keep, then
# adjacent units are stored and player can choose which one gets a rune
#define SOF_RUNIC_EVENTS
[event]
name=moveto
id=sof_sfe_moveto
first_time_only=no
[filter]
id=Thursagan
[filter_location]
terrain=K*
[/filter_location]
[/filter]
[store_unit]
[filter]
side=1
race=dwarf
[filter_adjacent]
id=Thursagan
[/filter_adjacent]
[/filter]
variable=rune_customer
kill=no
[/store_unit]
[fire_event]
id=sof_rune_shop
[/fire_event]
[/event]
[event]
name=side 1 turn
id=sof_sfe_side1turn
first_time_only=no
[filter_condition]
[have_unit]
id=Thursagan
[filter_location]
terrain=K*
[/filter_location]
[/have_unit]
[/filter_condition]
[store_unit]
[filter]
side=1
race=dwarf
[filter_adjacent]
id=Thursagan
[/filter_adjacent]
[/filter]
variable=rune_customer
kill=no
[/store_unit]
[fire_event]
id=sof_rune_shop
[/fire_event]
[/event]
[event]
name=exit_hex
id=sof_thursagan_exithex
first_time_only=no
[filter]
id=Thursagan
[filter_location]
terrain=K*
[/filter_location]
[/filter]
[remove_item]
image=rune_shop_overlay
x,y=$x1|,$y1|
radius=1
[/remove_item]
{CLEAR_VARIABLE rune_customer}
[/event]
[event]
name=exit_hex
id=sof_sfe_exithex
first_time_only=no
[filter]
side=1
race=dwarf
[filter_adjacent]
id=Thursagan
[filter_location]
terrain=K*
[/filter_location]
[/filter_adjacent]
[/filter]
[remove_item]
image=rune_shop_overlay
x,y=$x1|,$y1|
[/remove_item]
[store_unit]
[filter]
id=$unit.id
[/filter]
variable=ex_rune_customer
kill=no
[/store_unit]
[foreach]
array=rune_customer
readonly=yes
[do]
[if]
[variable]
name=ex_rune_customer.id
equals=$this_item.id
[/variable]
[then]
[set_variable]
name=index_TEMP
value=$i|
[/set_variable]
[/then]
[/if]
[/do]
[/foreach]
{CLEAR_VARIABLE rune_customer[$index_TEMP]}
{CLEAR_VARIABLE ex_rune_customer}
{CLEAR_VARIABLE index_TEMP}
[/event]
[event]
name=moveto
id=sof_sfe_2moveto
first_time_only=no
[filter]
side=1
race=dwarf
[filter_adjacent]
id=Thursagan
[filter_location]
terrain=K*
[/filter_location]
[/filter_adjacent]
[/filter]
[store_unit]
[filter]
id=$unit.id
[/filter]
variable=rune_customer
kill=no
mode=append
[/store_unit]
[fire_event]
id=sof_rune_shop
[/fire_event]
[/event]
[event]
id=sof_rune_shop
name=sof_rune_shop
first_time_only=no
[remove_item]
[and]
terrain=K*
[filter]
id=Thursagan
[/filter]
[/and]
radius=1
image=rune_shop_overlay
[/remove_item]
{CLEAR_VARIABLE abort_select_id}
[foreach]
array=rune_customer
readonly=yes
[do]
[if]
[variable]
name=this_item.variables.no_rune
equals=yes
[/variable]
[else]
[item]
halo="scenery/summoning-circle[4,5,6].png:[250,250,250]"
x,y=$this_item.x|,$this_item.y|
name=rune_shop_overlay
[/item]
[/else]
[/if]
[/do]
[/foreach]
[event]
name=select
id=rc_select
first_time_only=no
[filter_condition]
[not]
[variable]
name=unit.variables.no_rune
equals=yes
[/variable]
[/not]
[/filter_condition]
[filter]
find_in=rune_customer
[/filter]
[message]
speaker=Thursagan
message= _ "I can hammer out a quick little runic charm, it should help you somewhat. This isn't the place to do really good work though, so the effects will vanish in the future. What do you say, is it worth a bit of gold and crystal?"
[option]
default=yes
image=attacks/blank-attack.png~BLIT(icons/unit-groups/cross_30.png~SCALE(60,60),0,0)
label= _ "Exit"
description = _ "Nothing for now."
[command]
[/command]
[/option]
[option]
default=yes
image=attacks/blank-attack.png~BLIT(icons/unit-groups/cross_30.png~BLEND(200,0,0,1.0)~SCALE(60,60),0,0)
label= _ "Reject"
description = _ "No thanks, don't ask again."
[command]
[set_variable]
name=unit.variables.no_rune
value=yes
[/set_variable]
[unstore_unit]
variable=unit
find_vacant=no
[/unstore_unit]
[remove_item]
x,y=$x1|,$y1|
image=rune_shop_overlay
[/remove_item]
[/command]
[/option]
[option]
{SOF_RUNIC_OPTION swiftness (_ "Swiftness") (_ "Adds 2 MP") ("misc/rune_icon.png~BLIT(scenery/summoning-circle4.png~CROP(6,6,60,60),0,0)") 13 (
[effect]
apply_to=movement
increase=2
[/effect]
)}
[/option]
[option]
{SOF_RUNIC_OPTION accuracy (_ "Accuracy") (_ "Increases ranged weapon accuracy 20%") ("misc/rune_icon.png~BLIT(scenery/summoning-circle5.png~CROP(6,6,60,60),0,0)") 16 (
[effect]
apply_to=attack
range=ranged
increase_accuracy=20
[/effect]
)}
[/option]
[option]
{SOF_RUNIC_OPTION "force" (_ "Force") (_ "Increases melee weapon damage by 4") ("misc/rune_icon.png~BLIT(scenery/summoning-circle6.png~CROP(6,6,60,60),0,0)") 14 (
[effect]
apply_to=attack
range=melee
increase_damage=4
[/effect]
)}
[/option]
[/message]
[/event]
[/event]
#enddef
#define SOF_RUNIC_CHEST_GENERIC OPTION_WML X Y
[event]
name=prestart
[item]
x,y={X},{Y}
image=items/chest-plain-closed.png
name=rune_shop_overlay
[/item]
[set_variable]
name=chest_{X}_{Y}
value=yes
[/set_variable]
[/event]
[event]
name=moveto
first_time_only=no
[filter]
side=1
race=dwarf
x,y={X},{Y}
[/filter]
[filter_condition]
[variable]
name=chest_{X}_{Y}
equals=yes
[/variable]
[/filter_condition]
{CLEAR_VARIABLE chest_{X}_{Y}}
[message]
speaker=unit
message= _ "This is part of our stash of field runes, we can use them to get a small temporary boost. We don't have very many though, and need to contribute funds for replacements. Should I take this one?"
[option]
default=yes
image=attacks/blank-attack.png~BLIT(icons/unit-groups/cross_30.png~SCALE(60,60),0,0)
label= _ "No"
description = _ "Not now."
[command]
[set_variable]
name=chest_{X}_{Y}
value=yes
[/set_variable]
[/command]
[/option]
{OPTION_WML}
[/message]
[/event]
#enddef
#define SOF_RUNIC_CHEST_SWIFTNESS X Y
{SOF_RUNIC_CHEST_GENERIC (
[option]
{SOF_RUNIC_OPTION swiftness (_ "Swiftness") (_ "Adds 1 MP") ("misc/rune_icon.png~BLIT(scenery/summoning-circle4.png~CROP(6,6,60,60),0,0)") 8 (
[effect]
apply_to=movement
increase=1
[/effect]
)}
[+command]
[if]
[variable]
name=no_funds
equals=yes
[/variable]
[then]
[set_variable]
name=chest_{X}_{Y}
value=yes
[/set_variable]
[/then]
[else]
[remove_item]
x,y={X},{Y}
image=items/chest-plain-closed.png
[/remove_item]
[item]
x,y={X},{Y}
image=items/chest-plain-open.png
[/item]
[/else]
[/if]
{CLEAR_VARIABLE no_funds}
[/command]
[/option]
) {X} {Y}}
#enddef
#define SOF_RUNIC_CHEST_ACCURACY X Y
{SOF_RUNIC_CHEST_GENERIC (
[option]
{SOF_RUNIC_OPTION accuracy (_ "Accuracy") (_ "Increases ranged weapon accuracy 10%") ("misc/rune_icon.png~BLIT(scenery/summoning-circle5.png~CROP(6,6,60,60),0,0)") 10 (
[effect]
apply_to=attack
range=ranged
increase_accuracy=10
[/effect]
)}
[+command]
[if]
[variable]
name=no_funds
equals=yes
[/variable]
[then]
[set_variable]
name=chest_{X}_{Y}
value=yes
[/set_variable]
[/then]
[else]
[remove_item]
x,y={X},{Y}
image=items/chest-plain-closed.png
[/remove_item]
[item]
x,y={X},{Y}
image=items/chest-plain-open.png
[/item]
[/else]
[/if]
{CLEAR_VARIABLE no_funds}
[/command]
[/option]
) {X} {Y}}
#enddef
#define SOF_RUNIC_CHEST_FORCE X Y
{SOF_RUNIC_CHEST_GENERIC (
[option]
{SOF_RUNIC_OPTION "force" (_ "Force") (_ "Increases melee weapon damage by 2") ("misc/rune_icon.png~BLIT(scenery/summoning-circle6.png~CROP(6,6,60,60),0,0)") 8 (
[effect]
apply_to=attack
range=melee
increase_damage=2
[/effect]
)}
[+command]
[if]
[variable]
name=no_funds
equals=yes
[/variable]
[then]
[set_variable]
name=chest_{X}_{Y}
value=yes
[/set_variable]
[/then]
[else]
[remove_item]
x,y={X},{Y}
image=items/chest-plain-closed.png
[/remove_item]
[item]
x,y={X},{Y}
image=items/chest-plain-open.png
[/item]
[/else]
[/if]
{CLEAR_VARIABLE no_funds}
[/command]
[/option]
) {X} {Y}}
#enddef