A Shop Like Thing: Difference between revisions
From The Battle for Wesnoth Wiki
Changed structure of page. Added comments and updated code where I could. Added see also. Kept links but it should all make sense now. |
Cleaned up the shop code and wrapped it as a macro definition. |
||
| Line 1: | Line 1: | ||
== A Shop Like Thing == | == A Shop Like Thing == | ||
Call this macro to place a moveto event in your scenario that defines a magic-items shop. Argument is a standard location filter. | |||
[event] | #define SHOP FILTER | ||
[event] | |||
name=moveto | |||
first_time_only=no | |||
[filter] | |||
{FILTER} | |||
[/filter] | |||
[store_gold] | |||
side=$side_number | |||
variable=gold | |||
[/store_gold] | |||
[message] | |||
speaker=narrator | |||
message=_ "What items would you like to purchase?" | |||
image=wesnoth-icon.png | |||
[option] | |||
message=_ "140 GP: Sharpen Melee Weapon, damage:+2" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=140 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-140 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=attack | |||
range=melee | |||
increase_damage=2 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "150 GP: Enchance Ranged Weapon, damage +2" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=150 | |||
[/variable] | |||
[then] | |||
[gold] | |||
side=$side_number | |||
amount=-150 | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=attack | |||
range=ranged | |||
increase_damage=2 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "150 GP: Crystal Orb, damage +2 on magical attack" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=150 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-150 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=attack | |||
increase_damage=2 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "250 GP: Toughness Increase Scroll, HP+10" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=250 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-250 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=hitpoints | |||
increase_total=10 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "400 GP: Seven-League Boots, gives MP of 10" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=400 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-400 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=movement | |||
set=10 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "400 GP: Boot Upgrade, MP+1" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=400 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-400 | |||
side=1 | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=movement | |||
increase=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "All GP: Healing Fountain, HP:+50" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=0 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=0 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=hitpoints | |||
increase=50 | |||
violate_max=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "300 GP: Rage Stone, add a melee swing" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=300 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-300 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=attack | |||
range=melee | |||
increase_attacks=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "350 GP: Sight Stone, add a ranged attack" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=350 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-350 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=attack | |||
range=ranged | |||
increase_attacks=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "350 GP: Fire Scepter, adds 8-1 ranged magical fire" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=350 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-350 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=new_attack | |||
name=Fire Scepter | |||
type=fire | |||
range=ranged | |||
damage=8 | |||
number=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[option] | |||
message=_ "350GP: Ice Scepter, adds 8-1 ranged magical ice" | |||
[command] | |||
[if] | |||
[variable] | |||
name=gold | |||
greater_than=350 | |||
[/variable] | |||
[then] | |||
[gold] | |||
amount=-350 | |||
side=$side_number | |||
[/gold] | |||
[object] | |||
[effect] | |||
apply_to=new_attack | |||
name=Ice Scepter | |||
type=cold | |||
range=long | |||
damage=8 | |||
number=1 | |||
[/effect] | |||
[/object] | |||
[/then] | |||
[/if] | |||
[/command] | |||
[/option] | |||
[/message] | |||
[/event] | |||
#enddef | |||
== See Also == | == See Also == | ||
Revision as of 00:59, 27 February 2008
A Shop Like Thing
Call this macro to place a moveto event in your scenario that defines a magic-items shop. Argument is a standard location filter.
#define SHOP FILTER
[event]
name=moveto
first_time_only=no
[filter]
{FILTER}
[/filter]
[store_gold]
side=$side_number
variable=gold
[/store_gold]
[message]
speaker=narrator
message=_ "What items would you like to purchase?"
image=wesnoth-icon.png
[option]
message=_ "140 GP: Sharpen Melee Weapon, damage:+2"
[command]
[if]
[variable]
name=gold
greater_than=140
[/variable]
[then]
[gold]
amount=-140
side=$side_number
[/gold]
[object]
[effect]
apply_to=attack
range=melee
increase_damage=2
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "150 GP: Enchance Ranged Weapon, damage +2"
[command]
[if]
[variable]
name=gold
greater_than=150
[/variable]
[then]
[gold]
side=$side_number
amount=-150
[/gold]
[object]
[effect]
apply_to=attack
range=ranged
increase_damage=2
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "150 GP: Crystal Orb, damage +2 on magical attack"
[command]
[if]
[variable]
name=gold
greater_than=150
[/variable]
[then]
[gold]
amount=-150
side=$side_number
[/gold]
[object]
[effect]
apply_to=attack
increase_damage=2
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "250 GP: Toughness Increase Scroll, HP+10"
[command]
[if]
[variable]
name=gold
greater_than=250
[/variable]
[then]
[gold]
amount=-250
side=$side_number
[/gold]
[object]
[effect]
apply_to=hitpoints
increase_total=10
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "400 GP: Seven-League Boots, gives MP of 10"
[command]
[if]
[variable]
name=gold
greater_than=400
[/variable]
[then]
[gold]
amount=-400
side=$side_number
[/gold]
[object]
[effect]
apply_to=movement
set=10
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "400 GP: Boot Upgrade, MP+1"
[command]
[if]
[variable]
name=gold
greater_than=400
[/variable]
[then]
[gold]
amount=-400
side=1
[/gold]
[object]
[effect]
apply_to=movement
increase=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "All GP: Healing Fountain, HP:+50"
[command]
[if]
[variable]
name=gold
greater_than=0
[/variable]
[then]
[gold]
amount=0
side=$side_number
[/gold]
[object]
[effect]
apply_to=hitpoints
increase=50
violate_max=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "300 GP: Rage Stone, add a melee swing"
[command]
[if]
[variable]
name=gold
greater_than=300
[/variable]
[then]
[gold]
amount=-300
side=$side_number
[/gold]
[object]
[effect]
apply_to=attack
range=melee
increase_attacks=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "350 GP: Sight Stone, add a ranged attack"
[command]
[if]
[variable]
name=gold
greater_than=350
[/variable]
[then]
[gold]
amount=-350
side=$side_number
[/gold]
[object]
[effect]
apply_to=attack
range=ranged
increase_attacks=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "350 GP: Fire Scepter, adds 8-1 ranged magical fire"
[command]
[if]
[variable]
name=gold
greater_than=350
[/variable]
[then]
[gold]
amount=-350
side=$side_number
[/gold]
[object]
[effect]
apply_to=new_attack
name=Fire Scepter
type=fire
range=ranged
damage=8
number=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[option]
message=_ "350GP: Ice Scepter, adds 8-1 ranged magical ice"
[command]
[if]
[variable]
name=gold
greater_than=350
[/variable]
[then]
[gold]
amount=-350
side=$side_number
[/gold]
[object]
[effect]
apply_to=new_attack
name=Ice Scepter
type=cold
range=long
damage=8
number=1
[/effect]
[/object]
[/then]
[/if]
[/command]
[/option]
[/message]
[/event]
#enddef
See Also
This page was last edited on 27 February 2008, at 00:59.