Campaign/Forgotten Legacy/Unit Utils
From The Battle for Wesnoth Wiki
# I'm putting The Forgotten Legacy's common unit macros in here. # I've shamlessly copied Southguard's macro file which in turn # had pillaged from The Rise of Wesnoth and the Useful WML Fragemnts Wiki #define OFFENSIVE_SAURIAN [defense] shallow_water=70 forest=50 hills=60 mountains=60 castle=50 cave=50 [/defense] #enddef #define AMLA_BARBED_LANCE ATTACK [advancement] max_times=1 id=sg_barbs description= _ "Place barbs on your weapon. (slow)" [effect] apply_to=attack name={ATTACK} set_special=slow increase_attacks=1 [/effect] [effect] apply_to=max_experience increase=12 [/effect] [/advancement] #enddef #define AMLA_MACE [advancement] max_times=1 id=sg_mace description= _ "Wield a mace. (impact)" [effect] apply_to=new_attack name=mace icon=mace.png range=short type=impact damage=7 number=2 [/effect] [effect] apply_to=max_experience increase=12 [/effect] [/advancement] #enddef #define AMLA_COURAGEOUS ATTACK [advancement] max_times=2 id=sg_courageous description= _ "Add a swing to your attack." [effect] apply_to=attack name={ATTACK} increase_attacks=1 [/effect] [effect] apply_to=max_experience increase=6 [/effect] [/advancement] #enddef #define FL_STRONG [trait] id=strong name= _ "strong" [effect] apply_to=attack range=short increase_damage=2 [/effect] [effect] apply_to=hitpoints increase_total=2 heal_full=yes [/effect] [/trait] #enddef #define FL_DEXTROUS [trait] id=strong name= _ "dextrous" [effect] apply_to=attack range=long increase_damage=1 [/effect] [/trait] #enddef #define FL_RESILIENT [trait] id=resilient name= _ "resilient" [effect] apply_to=hitpoints increase_total=7 #make sure the unit starts at full health heal_full=yes [/effect] [/trait] #enddef #define FL_ELITE [trait] id=elite name= _ "Elite Guard" [effect] apply_to=hitpoints increase_total=+20% [/effect] [effect] apply_to=hitpoints increase_total=20 #make sure the unit starts at full health heal_full=yes [/effect] [effect] apply_to=loyal [/effect] [effect] apply_to=attack range=short increase_damage=6 [/effect] [/trait] #enddef #define FL_QUICK [trait] id=quick name= _ "quick" [effect] apply_to=movement increase=1 [/effect] [effect] apply_to=hitpoints increase_total=-10% heal_full=yes [/effect] [/trait] #enddef #define FL_AGILE [trait] id=dextrous name= _ "dextrous" [effect] apply_to=attack range=long increase_damage=-10% [/effect] [effect] apply_to=attack range=long increase_attacks=1 [/effect] [/trait] #enddef #define FL_INTELLIGENT [trait] id=intelligent name= _ "intelligent" [effect] apply_to=max_experience increase=-20% [/effect] [/trait] #enddef #define FL_LOYAL [trait] id=loyal name= _ "loyal" [effect] apply_to=loyal [/effect] [/trait] #enddef #define FL_UNIT TYPE DESCRIPTION SIDE X Y [unit] type={TYPE} side={SIDE} description={DESCRIPTION} x,y={X},{Y} traits_description= _ "loyal" random_traits=yes [modifications] {FL_LOYAL} [/modifications] [/unit] #enddef #define FL_AMBUSHER TYPE DESCRIPTION SIDE X Y [unit] type={TYPE} side={SIDE} description={DESCRIPTION} x,y={X},{Y} random_traits=yes [status] ambush=on [/status] [/unit] #enddef #define FL_FOREST_GUARD TYPE DESCRIPTION SIDE X Y [unit] type={TYPE} side={SIDE} description={DESCRIPTION} x,y={X},{Y} ai_special=guardian random_traits=yes [status] ambush=on [/status] [/unit] #enddef #define FL_GUARD TYPE DESCRIPTION SIDE X Y [unit] type={TYPE} description={DESCRIPTION} side={SIDE} x,y={X},{Y} ai_special=guardian random_traits=yes [/unit] #enddef #define PUFF_OF_SMOKE X Y {VARIABLE smoke_image_num 1} {REPEAT} {VARIABLE_OP smoke_image_filename format puff_of_smoke/smoke_$smoke_image_num|.png} [item] x,y={X},{Y} halo=$smoke_image_filename [/item] [redraw][/redraw] [delay] time=25 [/delay] [removeitem] x,y={X},{Y} [/removeitem] {VARIABLE_OP smoke_image_num add 1} {TIMES 12} {redraw} #enddef