mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-03 07:23:45 +00:00
Multiplayer maps files changes
This commit is contained in:
parent
0ca8eedfe0
commit
2edc185001
@ -1,56 +0,0 @@
|
||||
#
|
||||
# A Four Player Map with Different Terrains
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=An_Island
|
||||
name= _ "An Island"
|
||||
map_data="{maps/multiplayer/An_Island}"
|
||||
|
||||
description= _ "A 4 player map that is suitable for individual or team play, victory rests of dominating the centre island. North-West: Forest dominated area, North-East: Mixed snow plains, South-West: Mixed desert plains, South-East: Mountain dominated area."
|
||||
|
||||
turns=72
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
#gold=100
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
#gold=100
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
enemy=1,2,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
#gold=100
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
enemy=1,2,3
|
||||
canrecruit=1
|
||||
controller=human
|
||||
#gold=100
|
||||
[/side]
|
||||
|
||||
[time_area]
|
||||
x=18-22
|
||||
y=18-22
|
||||
{UNDERGROUND}
|
||||
[/time_area]
|
||||
[/multiplayer]
|
||||
|
@ -1,32 +0,0 @@
|
||||
#
|
||||
# Duel map for super fast play. Recommended setting of 2g per village.
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=multiplayer_Blitz
|
||||
name= _ "Blitz"
|
||||
map_data="{maps/multiplayer/Blitz}"
|
||||
description= _ "A duel map for super fast play. Recommended setting of 2g per village."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,46 +0,0 @@
|
||||
#
|
||||
# Many close by and strategically located castles. Which one will you hop to?
|
||||
# Small map for fast play. Recommended setting of 2g per village and usage
|
||||
# of leaders that move 7 or less.
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=multiplayer_castles
|
||||
name= _ "Castle Hopping Isle"
|
||||
map_data="{maps/multiplayer/CastleHoppingIsle}"
|
||||
description= _ "Many closely placed and strategically located castles. Small map for fast play. Recommended setting of 2 gold per village, and players 1, 3 vs players 2, 4 for 2v2."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
enemy=1,2,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
enemy=1,2,3
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,32 +0,0 @@
|
||||
#
|
||||
# Duel map for super fast play. Recommended setting of 2g per village.
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=multiplayer_Charge
|
||||
name= _ "Charge"
|
||||
map_data="{maps/multiplayer/Charge}"
|
||||
description= _ "A duel map for super fast play. Recommended setting of 2g per village."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,40 +0,0 @@
|
||||
[multiplayer]
|
||||
id=multiplayer_clash
|
||||
name= _ "Clash"
|
||||
map_data="{maps/multiplayer/Clash}"
|
||||
description= _ "Small map for 2v2. Teams should be player 1 and 3, vs player 2 and 4. Recommended setting of 2 gold per village."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
enemy=1,2,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
enemy=1,2,3
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,40 +0,0 @@
|
||||
[multiplayer]
|
||||
id=forest_fear
|
||||
name= _ "Forest of Fear"
|
||||
map_data="{maps/multiplayer/ForestofFear}"
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=5
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,58 +0,0 @@
|
||||
[multiplayer]
|
||||
id=Hexcake
|
||||
name= _ "Hexcake"
|
||||
map_data="{maps/multiplayer/Hexcake}"
|
||||
description=_ "2 vs. 2 or 3 vs. 3 team game."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
team_name=North
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
team_name=South
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
team_name=North
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
team_name=South
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[side]
|
||||
side=5
|
||||
team_name=North
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[side]
|
||||
side=6
|
||||
team_name=South
|
||||
canrecruit=1
|
||||
controller=human
|
||||
fog=yes
|
||||
[/side]
|
||||
[/multiplayer]
|
||||
|
@ -1,26 +0,0 @@
|
||||
[multiplayer]
|
||||
id=icy_waters
|
||||
name= _ "Icy Waters"
|
||||
map_data="{maps/multiplayer/Icy_Waters}"
|
||||
description= _ "Battle in and around the icy waters of this crucial harbor in North Wesnoth."
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
@ -1,751 +0,0 @@
|
||||
[multiplayer]
|
||||
id=wesbowl
|
||||
name= _ "Wesbowl"
|
||||
map_data="{maps/multiplayer/Wesbowl}"
|
||||
turns=20
|
||||
description= _ "In Wesbowl, a player must get their ball to the other player's end zone. However, the other player can attack your units. Wesbowl is played with blunt weapons, and healers are on hand, so when units are killed, they return to that player's end zone with an injury."
|
||||
objectives= _ "
|
||||
Victory:
|
||||
@Move either ball to your opponent's endzone more times than they move their ball to yours
|
||||
Defeat:
|
||||
#Opponent moves the balls to your endzone more times than you move them to theirs"
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
#define WESBOWL_UNIT SIDE FACING TYPE X Y
|
||||
[unit]
|
||||
side={SIDE}
|
||||
type={TYPE}
|
||||
facing={FACING}
|
||||
x={X}
|
||||
y={Y}
|
||||
[/unit]
|
||||
#enddef
|
||||
|
||||
#define WESBOWL_SIDE LEADER SIDE FACING X A B C D E F G H I J K
|
||||
[if]
|
||||
[have_unit]
|
||||
type={LEADER}
|
||||
side={SIDE}
|
||||
[/have_unit]
|
||||
[then]
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({A}) {X} 10}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({B}) {X} 8}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({C}) {X} 12}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({D}) {X} 6}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({E}) {X} 14}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({F}) {X} 4}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({G}) {X} 16}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({H}) {X} 2}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({I}) {X} 18}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({J}) {X} 1}
|
||||
{WESBOWL_UNIT {SIDE} {FACING} ({K}) {X} 20}
|
||||
[/then]
|
||||
[/if]
|
||||
#enddef
|
||||
|
||||
#define WESBOWL_SIDE_DEFS SIDE FACING X
|
||||
{WESBOWL_SIDE (Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,Elvish Marshal,Elvish Champion,Elvish Avenger,Elvish Sharpshooter,Elvish Shyde,Elvish Enchantress) {SIDE} {FACING} {X} (Merman Fighter) (Elvish Fighter) (Elvish Fighter) (Elvish Archer) (Elvish Archer) Mage Mage (Elvish Shaman) (Elvish Shaman) (Elvish Scout) (Elvish Scout)}
|
||||
{WESBOWL_SIDE (Orcish Warrior,Troll,Troll Rocklobber,Orcish Crossbowman,Orcish Slayer,Orcish Warlord,Troll Warrior) {SIDE} {FACING} {X} (Naga Fighter) (Orcish Grunt) (Orcish Grunt) (Orcish Archer) (Orcish Archer) (Goblin Spearman) (Goblin Spearman) (Troll Whelp) (Troll Whelp) (Wolf Rider) (Wolf Rider)}
|
||||
{WESBOWL_SIDE (Necromancer,Revenant,Bone Shooter,Lich,Soul Shooter) {SIDE} {FACING} {X} (Vampire Bat) Skeleton Skeleton (Skeleton Archer) (Skeleton Archer) Skeleton Skeleton (Dark Adept) (Dark Adept) Ghost Ghost}
|
||||
{WESBOWL_SIDE (Dwarvish Steelclad,Dwarvish Stalwart,Dwarvish Thunderguard,Rogue,Trapper,Bandit,Dwarvish Lord,Dwarvish Sentinel,Dwarvish Dragonguard,Assassin) {SIDE} {FACING} {X} Poacher (Dwarvish Fighter) (Dwarvish Fighter) (Dwarvish Thunderer) (Dwarvish Thunderer) Footpad Footpad Thief Thief (Gryphon Rider) (Gryphon Rider)}
|
||||
{WESBOWL_SIDE (Lieutenant,Swordsman,Pikeman,Shock Trooper,Longbowman,White Mage,Red Mage,General,Royal Guard,Halbardier,Iron Mauler,Master Bowman,Mage of Light,Arch Mage,Silver Mage) {SIDE} {FACING} {X} (Naga Fighter) Spearman Spearman Fencer Fencer Horseman Horseman (Heavy Infantryman) (Heavy Infantryman) Cavalryman Cavalryman}
|
||||
{WESBOWL_SIDE (Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior,Saurian Soothsayer,Saurian Icecaster,Drake Flameheart,Inferno Drake) {SIDE} {FACING} {X} (Saurian Tribalist) (Drake Fighter) (Drake Fighter) (Drake Burner) (Drake Burner) (Saurian Skirmisher) (Saurian Skirmisher) (Drake Clasher) (Drake Clasher) (Drake Glider) (Drake Glider)}
|
||||
#enddef
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
{WESBOWL_SIDE_DEFS 1 normal 5}
|
||||
{WESBOWL_SIDE_DEFS 2 reverse 37}
|
||||
|
||||
{VARIABLE b1x 7}
|
||||
{VARIABLE b1y 9}
|
||||
{VARIABLE b2x 35}
|
||||
{VARIABLE b2y 11}
|
||||
{VARIABLE b1down yes}
|
||||
{VARIABLE b2down yes}
|
||||
|
||||
{VARIABLE redscore 0}
|
||||
{VARIABLE bluescore 0}
|
||||
|
||||
[item]
|
||||
image=misc/ball.png
|
||||
x,y=$b1x,$b1y
|
||||
[/item]
|
||||
[item]
|
||||
image=misc/ball.png
|
||||
x,y=$b2x,$b2y
|
||||
[/item]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
x,y=$b1x,$b1y
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$b1x,$b1y
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=b1down
|
||||
equals=yes
|
||||
[/variable]
|
||||
[variable]
|
||||
name=unit.variables.has_ball2
|
||||
not_equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[removeitem]
|
||||
x,y=$b1x,$b1y
|
||||
[/removeitem]
|
||||
{VARIABLE b1down no}
|
||||
{VARIABLE unit.variables.has_ball1 yes}
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[unit_overlay]
|
||||
x,y=$b1x,$b1y
|
||||
image=misc/ball.png
|
||||
[/unit_overlay]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball1
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[item]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
{VARIABLE b1x $x1}
|
||||
{VARIABLE b1y $y1}
|
||||
{VARIABLE unit.variables.has_ball1 no}
|
||||
{VARIABLE b1down yes}
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=1
|
||||
x=38-40
|
||||
y=1-20
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball1
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=redscore
|
||||
add=1
|
||||
[/set_variable]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Red scores! Current score is $redscore-$bluescore"
|
||||
[/message]
|
||||
{VARIABLE b1x 7}
|
||||
{VARIABLE b1y 9}
|
||||
{VARIABLE unit.variables.has_ball1 no}
|
||||
{VARIABLE b1down yes}
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[item]
|
||||
x,y=$b1x,$b1y
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=2
|
||||
x=1-3
|
||||
y=1-20
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball1
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=bluescore
|
||||
add=1
|
||||
[/set_variable]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Blue scores! Current score is $redscore-$bluescore"
|
||||
[/message]
|
||||
{VARIABLE b1x 35}
|
||||
{VARIABLE b1y 11}
|
||||
{VARIABLE unit.variables.has_ball1 no}
|
||||
{VARIABLE b1down yes}
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[item]
|
||||
x,y=$b1x,$b1y
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
#event to transfer control of the ball by passing, after movement
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball1
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[store_locations]
|
||||
variable=locs
|
||||
x,y,radius=$x1,$y1,1
|
||||
[/store_locations]
|
||||
{VARIABLE passed no}
|
||||
{FOREACH locs i}
|
||||
{VARIABLE_OP xloc to_variable locs[$i].x}
|
||||
{VARIABLE_OP yloc to_variable locs[$i].y}
|
||||
[if]
|
||||
[or]
|
||||
[variable]
|
||||
name=xloc
|
||||
not_equals=$x1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=passed
|
||||
equals=no
|
||||
[/variable]
|
||||
[have_unit]
|
||||
x,y=$xloc,$yloc
|
||||
side=$unit.side
|
||||
[/have_unit]
|
||||
[/or]
|
||||
[or]
|
||||
[variable]
|
||||
name=yloc
|
||||
not_equals=$y1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=passed
|
||||
equals=no
|
||||
[/variable]
|
||||
[have_unit]
|
||||
x,y=$xloc,$yloc
|
||||
side=$unit.side
|
||||
[/have_unit]
|
||||
[/or]
|
||||
[then]
|
||||
[store_unit]
|
||||
variable=passto
|
||||
[filter]
|
||||
x,y=$xloc,$yloc
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=passto.variables.has_ball2
|
||||
not_equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Should I pass the ball to $passto.type ($xloc,$yloc)?"
|
||||
[option]
|
||||
message= _ "Yes!"
|
||||
[command]
|
||||
{VARIABLE passed yes}
|
||||
{VARIABLE unit.variables.has_ball1 no}
|
||||
{VARIABLE passto.variables.has_ball1 yes}
|
||||
[unstore_unit]
|
||||
variable=passto
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[unit_overlay]
|
||||
x,y=$xloc,$yloc
|
||||
image=misc/ball.png
|
||||
[/unit_overlay]
|
||||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message= _ "No"
|
||||
[/option]
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
{NEXT i}
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
#control of the second ball. Exactly the same as control of the first
|
||||
#ball, with different variable names
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
x,y=$b2x,$b2y
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$b2x,$b2y
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=b2down
|
||||
equals=yes
|
||||
[/variable]
|
||||
[variable]
|
||||
name=unit.variables.has_ball1
|
||||
not_equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[removeitem]
|
||||
x,y=$b2x,$b2y
|
||||
[/removeitem]
|
||||
{VARIABLE b2down no}
|
||||
{VARIABLE unit.variables.has_ball2 yes}
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[unit_overlay]
|
||||
x,y=$b2x,$b2y
|
||||
image=misc/ball.png
|
||||
[/unit_overlay]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball2
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[item]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
{VARIABLE b2x $x1}
|
||||
{VARIABLE b2y $y1}
|
||||
{VARIABLE unit.variables.has_ball2 no}
|
||||
{VARIABLE b2down yes}
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=1
|
||||
x=38-40
|
||||
y=1-20
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball2
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=redscore
|
||||
add=1
|
||||
[/set_variable]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Red scores! Current score is $redscore-$bluescore"
|
||||
[/message]
|
||||
{VARIABLE b2x 7}
|
||||
{VARIABLE b2y 9}
|
||||
{VARIABLE unit.variables.has_ball2 no}
|
||||
{VARIABLE b2down yes}
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[item]
|
||||
x,y=$b2x,$b2y
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
side=2
|
||||
x=1-3
|
||||
y=1-20
|
||||
[/filter]
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball2
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[set_variable]
|
||||
name=bluescore
|
||||
add=1
|
||||
[/set_variable]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Blue scores! Current score is $redscore-$bluescore"
|
||||
[/message]
|
||||
{VARIABLE b2x 35}
|
||||
{VARIABLE b2y 11}
|
||||
{VARIABLE unit.variables.has_ball2 no}
|
||||
{VARIABLE b2down yes}
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[item]
|
||||
x,y=$b2x,$b2y
|
||||
image=misc/ball.png
|
||||
[/item]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
#event to transfer control of the ball by passing, after movement
|
||||
[event]
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[store_unit]
|
||||
variable=unit
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.variables.has_ball2
|
||||
equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[store_locations]
|
||||
variable=locs
|
||||
x,y,radius=$x1,$y1,1
|
||||
[/store_locations]
|
||||
{VARIABLE passed no}
|
||||
{FOREACH locs i}
|
||||
{VARIABLE_OP xloc to_variable locs[$i].x}
|
||||
{VARIABLE_OP yloc to_variable locs[$i].y}
|
||||
[if]
|
||||
[or]
|
||||
[variable]
|
||||
name=xloc
|
||||
not_equals=$x1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=passed
|
||||
equals=no
|
||||
[/variable]
|
||||
[have_unit]
|
||||
x,y=$xloc,$yloc
|
||||
side=$unit.side
|
||||
[/have_unit]
|
||||
[/or]
|
||||
[or]
|
||||
[variable]
|
||||
name=yloc
|
||||
not_equals=$y1
|
||||
[/variable]
|
||||
[variable]
|
||||
name=passed
|
||||
equals=no
|
||||
[/variable]
|
||||
[have_unit]
|
||||
x,y=$xloc,$yloc
|
||||
side=$unit.side
|
||||
[/have_unit]
|
||||
[/or]
|
||||
[then]
|
||||
[store_unit]
|
||||
variable=passto
|
||||
[filter]
|
||||
x,y=$xloc,$yloc
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=passto.variables.has_ball1
|
||||
not_equals=yes
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "Should I pass the ball to $passto.type ($xloc,$yloc)?"
|
||||
[option]
|
||||
message= _ "Yes!"
|
||||
[command]
|
||||
{VARIABLE passed yes}
|
||||
{VARIABLE unit.variables.has_ball2 no}
|
||||
{VARIABLE passto.variables.has_ball2 yes}
|
||||
[unstore_unit]
|
||||
variable=passto
|
||||
[/unstore_unit]
|
||||
[unstore_unit]
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[remove_unit_overlay]
|
||||
x,y=$x1,$y1
|
||||
image=misc/ball.png
|
||||
[/remove_unit_overlay]
|
||||
[unit_overlay]
|
||||
x,y=$xloc,$yloc
|
||||
image=misc/ball.png
|
||||
[/unit_overlay]
|
||||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message= _ "No"
|
||||
[/option]
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
{NEXT i}
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=time over
|
||||
[if]
|
||||
[variable]
|
||||
name=redscore
|
||||
less_than=$bluescore
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Blue team wins! Final score: $redscore-$bluescore"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=redscore
|
||||
greater_than=$bluescore
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Red team wins! Final score: $redscore-$bluescore"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=redscore
|
||||
equals=$bluescore
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Draw! Final score: $redscore-$bluescore"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
[endlevel]
|
||||
result=continue
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
#if a unit dies, then it gets sent to its side's starting location
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
#give the unit an injury
|
||||
[object]
|
||||
silent=yes
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[effect]
|
||||
apply_to=movement
|
||||
increase=-25%
|
||||
[/effect]
|
||||
[effect]
|
||||
apply_to=hitpoints
|
||||
increase_total=-25%
|
||||
[/effect]
|
||||
#in case of Orcish Slayers
|
||||
[effect]
|
||||
apply_to=status
|
||||
remove=poisoned
|
||||
[/effect]
|
||||
[/object]
|
||||
|
||||
[store_unit]
|
||||
variable=unit
|
||||
kill=yes
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=unit.side
|
||||
equals=1
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE unit.x 2}
|
||||
{VARIABLE unit.y 10}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE unit.x 40}
|
||||
{VARIABLE unit.y 10}
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
{VARIABLE unit.hitpoints "-"}
|
||||
|
||||
[unstore_unit]
|
||||
find_vacant=yes
|
||||
variable=unit
|
||||
[/unstore_unit]
|
||||
[/event]
|
||||
|
||||
|
||||
[/multiplayer]
|
@ -1,123 +0,0 @@
|
||||
#
|
||||
# Large involved multiplayer
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=multiplayer_battleworld
|
||||
name= _ "Battle World"
|
||||
map_data="{maps/multiplayer/BattleWorld}"
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2,3,4,5
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1,3,4,5
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
enemy=1,2,4,5
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
enemy=1,2,3,5
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=5
|
||||
enemy=1,2,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[item]
|
||||
x=107
|
||||
y=4
|
||||
image=terrain/temple.png
|
||||
[/item]
|
||||
|
||||
# [event]
|
||||
# name=moveto
|
||||
# [filter]
|
||||
# x=107
|
||||
# y=4
|
||||
# [/filter]
|
||||
# [command]
|
||||
# [unit]
|
||||
# side=0
|
||||
# x=107
|
||||
# y=4
|
||||
# description=Kno'nack
|
||||
# type=Orcish Warlord
|
||||
# [/unit]
|
||||
# [/command]
|
||||
# [/event]
|
||||
|
||||
[item]
|
||||
x=61
|
||||
y=49
|
||||
image=terrain/temple.png
|
||||
[/item]
|
||||
|
||||
# [event]
|
||||
# name=moveto
|
||||
# [filter]
|
||||
# x=61
|
||||
# y=49
|
||||
# [/filter]
|
||||
# [command]
|
||||
# [unit]
|
||||
# side=0
|
||||
# x=61
|
||||
# y=49
|
||||
# description=Slivard
|
||||
# type=Lich
|
||||
# [/unit]
|
||||
# [/command]
|
||||
# [/event]
|
||||
|
||||
#define ROAM X Y NAME TYPE
|
||||
[unit]
|
||||
x={X}
|
||||
y={Y}
|
||||
type=Dwarvish {TYPE}
|
||||
description={NAME}
|
||||
side=0
|
||||
[/unit]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
description={NAME}
|
||||
[/filter]
|
||||
[command]
|
||||
[unit]
|
||||
x={X}
|
||||
y={Y}
|
||||
type=Dwarvish {TYPE}
|
||||
description={NAME}
|
||||
side=0
|
||||
[/unit]
|
||||
[/command]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
#{ROAM 60 60 Dwarn Fighter}
|
||||
|
||||
[/multiplayer]
|
@ -1,43 +0,0 @@
|
||||
#
|
||||
# Large map with ellaborate castles to allow different tactics
|
||||
#
|
||||
|
||||
[multiplayer]
|
||||
id=multiplayer_castles
|
||||
name= _ "Siege Castles"
|
||||
map_data="{maps/multiplayer/Castles}"
|
||||
turns=90
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
{AFTERNOON}
|
||||
{DUSK}
|
||||
{FIRST_WATCH}
|
||||
{SECOND_WATCH}
|
||||
|
||||
[side]
|
||||
side=1
|
||||
enemy=2,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
enemy=1,3,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
enemy=1,2,4
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
[side]
|
||||
side=4
|
||||
enemy=1,2,3
|
||||
canrecruit=1
|
||||
controller=human
|
||||
[/side]
|
||||
|
||||
[/multiplayer]
|
Loading…
x
Reference in New Issue
Block a user