[small]#textdomain wesnoth-FLD #Menu Item Macro #define SUMMON_MENU_ITEM ID DESCRIPTION COST ABILITY UNIT [event] name=select first_time_only=no [filter] ability=summon_Zombie side=$side_number [/filter] [store_unit] [filter] x,y=$x1,$y1 [/filter] variable=last_selected_unit [/store_unit] [/event] [set_menu_item] id=summon_{ID} description={DESCRIPTION} [show_if] [/show_if] [filter_location] [filter_adjacent_location] [filter] ability={ABILITY} side=$side_number [filter_wml] moves=$this_unit.max_moves [/filter_wml] [filter_location] [not] terrain=C*,K* [/not] [/filter_location] [/filter] [/filter_adjacent_location] [not] [filter] [/filter] [or] terrain=_off^_usr,Q*,W*,*^X*,X*,*^V* [/or] [/not] [/filter_location] [command] [store_gold] variable=actualgold side=$side_number [/store_gold] [if] [variable] name=actualgold greater_than_equal_to={COST} [/variable] [then] [gold] amount=-{COST} side=$side_number [/gold] [unit] type={UNIT} side=$side_number x,y=$x1,$y1 moves=0 animate=yes [/unit] [store_unit] variable=newunit [filter] x,y=$x1,$y1 [/filter] [/store_unit] [set_variable] name=newunit.attacks_left value=0 [/set_variable] [unstore_unit] variable=newunit find_vacant=no [/unstore_unit] [set_variable] name=newunit.moves value=0 [/set_variable] [store_unit] [filter] ability={ABILITY} side=$side_number [filter_wml] moves=$this_unit.max_moves [/filter_wml] [filter_adjacent] x,y=$x1,$y1 [/filter_adjacent] [/filter] variable=able_to_summon [/store_unit] [if] [variable] name=able_to_summon.length greater_than=1 [/variable] [then] {FOREACH able_to_summon a} [if] [variable] name=able_to_summon[$a].id equals=$last_selected_unit.id [/variable] [then] [set_variable] name=able_to_summon[$a].attacks_left value=0 [/set_variable] [set_variable] name=able_to_summon[$a].moves value=0 [/set_variable] {VARIABLE_OP able_to_summon[$a].experience add 3} [unstore_unit] variable=able_to_summon[$a] find_vacant=no text= _ "+$this_unit.level exp" red,green,blue=50,50,200 [/unstore_unit] {CLEAR_VARIABLE newunit} {CLEAR_VARIABLE able_to_summon} [/then] [/if] {NEXT a} [/then] [else] [store_unit] variable=able_to_summon [filter] ability={ABILITY} side=$side_number [filter_wml] moves=$this_unit.max_moves [/filter_wml] [filter_adjacent] x,y=$x1,$y1 [/filter_adjacent] [/filter] [/store_unit] [set_variable] name=able_to_summon[$a].attacks_left value=0 [/set_variable] [set_variable] name=able_to_summon[$a].moves value=0 [/set_variable] {VARIABLE_OP able_to_summon[$a].experience add 3} [unstore_unit] variable=able_to_summon[$a] find_vacant=no text= _ "+$this_unit.level exp" red,green,blue=50,50,200 [/unstore_unit] {CLEAR_VARIABLE newunit} {CLEAR_VARIABLE able_to_summon} [/else] [/if] [/then] [else] [message] speaker=narrator side_for=$side_number caption=_ "Error" message= _ "I have insufficient materials. I am unable to summon." [/message] [/else] [/if] {CLEAR_VARIABLE actualgold} [/command] [/set_menu_item] #### #### [set_menu_item] id=summon_zhelp description= _ "Przy - pomoc" [show_if] [/show_if] [filter_location] [filter] type=FLDwiz2,FLDwiz3,FLDwladcaz,FLDskalnym side=$side_number [/filter] [/filter_location] [command] [message] speaker=narrator side_for=$side_number caption=_ "Pomoc" message= _ "sss" [/message] [/command] [/set_menu_item] #enddef #define ABILITY_SUMMON_ZOMBIE [dummy] id=summon_Zombie name= _ "przyzombie" description= _ "Przyzombie: xxx" [/dummy] # wmlxgettext: [abilities] [/abilities] [event] name=start [if] [have_unit] ability=summon_Zombie [/have_unit] [then] {SUMMON_ZOMBIE_MENU} [/then] [/if] [/event] [event] name=recruit [filter] ability=summon_Zombie [/filter] {SUMMON_ZOMBIE_MENU} [/event] [event] name=post_advance [filter] ability=summon_Zombie [/filter] {SUMMON_ZOMBIE_MENU} [/event] [+abilities] # wmlxgettext: [/abilities] #enddef #define SUMMON_ZOMBIE_MENU {SUMMON_MENU_ITEM Zombie_menu ( _ "PrzyZombie (22 Gold)") 22 summon_Zombie (re Walking Corpse)} #enddef[/small]