share/hedgewars/Data/Scripts/Multiplayer/WxW.lua
author Wuzzy <almikes@aol.com>
Thu, 24 Nov 2016 15:09:26 +0100
changeset 12065 7df7c58ea965
parent 11301 fa18940f290d
child 12067 18677a537d58
permissions -rw-r--r--
WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     2
----------------------
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
     3
-- WALL TO WALL 0.7
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     4
----------------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     5
-- a shoppa minigame
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     6
-- by mikade
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     7
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     8
-- feel free to add map specific walls to LoadConfig, or post additional
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
     9
-- wall suggestions on our forum at: http://www.hedgewars.org/forum
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    10
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    11
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    12
--0.1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    13
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    14
-- concept test
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    15
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    16
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    17
--0.2
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    18
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    19
-- unhardcoded turntimeleft, now uses shoppa default of 45s
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    20
-- changed some things behind the scenes
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    21
-- fixed oooooold radar bug
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    22
-- added radar / script support for multiple crates
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    23
-- tweaked weapons tables
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    24
-- added surfing and changed crate spawn requirements a bit
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    25
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    26
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    27
--0.3
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    28
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    29
-- stuffed dirty clothes into cupboard
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    30
-- improved user feedback
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    31
-- added/improved experimental config system, input masks included :D
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    32
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    33
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    34
--0.4
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    35
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    36
-- for version 0.9.18, now detects border in correct location
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    37
-- fix 0.3 config constraint
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    38
-- remove unnecessary vars
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    39
-- oops, remove hardcoding of minesnum,explosives
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    40
-- ... and unhardcode turntime (again)... man, 30s is hard :(
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    41
-- move some initialisations around
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    42
-- numerous improvements to user feedback
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    43
-- walls disappear after being touched
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    44
-- added backwards compatibility with 0.9.17
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    45
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    46
----------------
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    47
--0.5
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    48
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    49
-- Support for multiple sets of walls per map (instead of “all or nothing”)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    50
-- Ropes, ShoppaKing, ShoppaHell and ShoppaNeon can now be played with the classic left and right walls
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    51
-- New wall sets for Ropes, ShoppaNeon, ShoppaDesert, ShoppaWild, ShoppaKing and ShoppaHell, and more.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    52
-- Basic support for a bunch of Shoppa maps
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    53
-- Alternative configuration method with Script parameter
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    54
-- Possible to set max. number of weapons in game (script parameter only)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    55
-- Possible to set number of crates per turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    56
-- Menu can be disabled (with script parameter) for insant game start
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    57
-- WxW is now fully functional even without a map border.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    58
-- WxW now allows for almost all game modifiers and game settings to be changed
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    59
-- More sound effects
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    60
-- No smoke when hog is near near a WxW wall but Walls Before Crate rule is not in place
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    61
-- More readable mission display after configuration has been accepted
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    62
-- Hide “Surf Before Crate” setting if surfing is disabled for this map, or the bottom is active and water never rises
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    63
-- Hide walls setting if script does not provide walls for map yet
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    64
-- Bugfix: Other player was able to change the menu config in the short period before the first "turn"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    65
-- Lots of refactoring
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    66
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    67
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    68
--0.6
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    69
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    70
-- Bugfix: 2 crates spawned at the 1st turn if script parameter was set to “menu=false, walls=none” or similar
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    71
-- Bugfix: Annoying faulty error message appeared when hitting attack when on a rope with a weapon selected
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    72
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    73
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    74
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    75
--0.7
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    76
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    77
-- To enforce the rules more strictly, all crates will be frozen at turn start if WBC or SBC rule is in place.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    78
--	The crates are unfrozen if you met the crate criteria (that is, surfed and/or bounced off all walls).
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    79
--      Frozen crates can't be collected and appear as small white dots in the radar.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    80
-- Add support for the “Crate Before Attack” rule
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    81
-- Add support for the “All But Last” rule
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    82
-- Add support for the “Kill The Leader” rule
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    83
-- Allow toggling crate radar with “switch hog” key while roping
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    84
-- The game continues now with the first team after the menu has been closed (rather than the second team)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    85
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    86
----------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    87
--TODO
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    88
----------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    89
-- achievements / try detect shoppa moves? :|
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    90
-- maybe add ability for the user to place zones like in Racer?
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    91
-- add more hard-coded values for specific maps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
    92
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    93
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    94
--[[
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    95
# CONFIGURATION
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    96
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    97
By default, this script is easily configured via the in-game menu. The player of the first team can choose the rules and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    98
required walls (or none at all). After accepted, the game will start with the second team (!).
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
    99
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   100
= SCRIPT PARAMETER =
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   101
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   102
Using the script parameter is optional, it mostly is just an alternative way for configuration and for convenience
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   103
reasons, so often-used configurations can be saved and loaded.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   104
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   105
The script parameter is specified as a comma-sperated list of “key=value” pairs (see examples below).
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   106
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   107
Truth values can be set true or false, and numeric values always use a whole number.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   108
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   109
== Basic parameters ==
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   110
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   111
key		default	description
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   112
----------------------------------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   113
menu		true	Show configuration menu at the beginning. If no menu is used, a random wall set is used (see wall filters below)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   114
SBC		false	Surf Before Crate: Player must bounce off the water (“surfing”) before crates can be collected
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   115
AFR		false	Attack From Rope: Players must attack from the rope. Weapons which can't be fired from rope are removed
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   116
CBA		false	Crate Before Attack: Player must collect at least one crate before attacking
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   117
attackrule	off	If present, enable one of the attack rules “ABL” or “KTL”:
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   118
			ABL: All But Last: Players must not only attack the team with the lowest total health
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   119
			KTL: Kill The Leader: If players hit some enemy hedgehog, at least one of them must be a hog from
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   120
			the team with the highest total health.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   121
			The ABL and KTL rules exclude each other. If a player breaks the rule (if enabled), he must
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   122
			skip in the next round.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   123
SW		false	Super Weapons: A few crates may contain very powerful weapons (melon, hellish grenade, RC plane, ballgun)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   124
maxcrates	12	Number of crates which can be at maximum in the game (limited to up to 100 to avoid lag)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   125
cratesperturn	1	Number of crates which appear each turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   126
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   127
== Advanced parameters ==
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   128
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   129
Wall filters: The following parameters allow you to filter out wall sets based on their type and number of walls.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   130
If this is used together with the menu, the filtered wall sets can't be selected. Without a menu, the wall set
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   131
will be randomly selected among the wall sets that meet all criteria.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   132
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   133
If the criteria filter out all available wall sets of the map, the game is played without the Walls Before Crate rule.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   134
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   135
parameter	default	description
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   136
----------------------------------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   137
walls		N/A	
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   138
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   139
Permitted values:
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   140
- leftright:		The left and right part of the border. Traditional W2W-style.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   141
- roof:			Only the top part of the border
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   142
- leftrightroof:	Combination of the two above
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   143
- inside:		Map-specific wall set where all walls are part of the terrain
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   144
- mixed:		Map-specific wall set where some walls are part of the terrain, and some are part of the map border
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   145
- none:			No walls required.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   146
- all:			Shorthand: All wall sets are allowed.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   147
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   148
Combination of multiple types is possible by concatenating the names with plus signs (see examples below).
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   149
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   150
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   151
Restrict wall numbers: With the following parameters you can restrict the pool of wall sets to only those with a certain
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   152
number of walls. Note that 2 walls are the most common type of wall set, as this is often available by default.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   153
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   154
parameter	default	description
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   155
----------------------------------------
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   156
minwalls	N/A	Filter out wall sets with less than this
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   157
maxwalls	N/A	Filter out wall sets with more than this
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   158
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   159
wallsnum	N/A	Shorthand: Combintion of minwalls and maxwalls if they are the equal.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   160
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   161
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   162
== Examples ==
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   163
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   164
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   165
SBC=true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   166
--> Keep the menu, enable Surf Before Crate by default (if available).
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   167
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   168
SBC=true, menu=false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   169
--> Enable Surf Before Crate (if available) and use the defaul walls set.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   170
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   171
AFR=true, menu=false, wallsnum=2
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   172
--> Attack From Rope rule active, and use a random wall set with 2 walls
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   173
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   174
menu=false, walls=leftright
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   175
--> Always use the classic left/right wall set automatically. Traditional W2W-style.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   176
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   177
walls=none, menu=false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   178
--> Like classic Shoppa
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   179
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   180
walls=leftright+inside+mixed, menu=false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   181
--> Randomly use either the left/right wall set, an Inside or Mixed wall set.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   182
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   183
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   184
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   185
= MORE GAME SCHEME CONFIGURATION =
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   186
You can almost set everything in the game scheme freely, and the script will work just fine together with it.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   187
Feel free to experiment a bit.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   188
The only exception are the crate frequencies. Setting them has no effect, crates are handled uniquiely in this game.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   189
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   190
At this stage, the script does not allow for custom weapon sets.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   191
]]
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   192
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   193
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   194
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   195
-----------------------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   196
-- GO PONIES, GO PONIES, GO!
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   197
-----------------------------
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   198
8043
da083f8d95e6 We need custom script loading function in lua now
unc0rr
parents: 7183
diff changeset
   199
HedgewarsScriptLoad("/Scripts/Locale.lua")
da083f8d95e6 We need custom script loading function in lua now
unc0rr
parents: 7183
diff changeset
   200
HedgewarsScriptLoad("/Scripts/Tracker.lua")
da083f8d95e6 We need custom script loading function in lua now
unc0rr
parents: 7183
diff changeset
   201
HedgewarsScriptLoad("/Scripts/Utils.lua")
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   202
HedgewarsScriptLoad("/Scripts/Params.lua")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   203
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   204
-- HARDCODED values
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   205
local ammoTypesNum = 58	-- number of weapon types (permanent TODO: Check this number for each Hedgewars version)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   206
local PlacementTime = 15000
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   207
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   208
-- menu stuff
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   209
local menuIndex = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   210
local menu = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   211
local preMenuCfg
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   212
local postMenuCfg
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   213
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   214
--[[ WxW preparation phase.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   215
0 = Game not started yet
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   216
1 = Configuration phase
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   217
2 = Hedgehog placement phase
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   218
100 = Game phase
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   219
]]
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   220
local roundN = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   221
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   222
-- Used to select one of the wall sets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   223
-- 0: no walls
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   224
-- 1 and above: ID of wall sets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   225
local wallSetID = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   226
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   227
-- Store the wall sets here
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   228
local wallSets = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   229
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   230
-- Wall set types and wall number limits for filtering
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   231
local allWallSetTypes = {"roof", "leftright", "leftrightroof", "mixed", "inside"}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   232
local allowedWallSetTypes = {roof=true, leftright=true, leftrightroof=true, mixed=true, inside=true}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   233
local minWalls, maxWalls = nil, nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   234
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   235
-- config and wall variables
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   236
local useMenu = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   237
local AFR = false		-- Attack From Rope
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   238
local WBC = true		-- Wall(s) Before Crate, will later only be set again in script parameter
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   239
local CBA = false		-- Crate Before Attack
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   240
local attackRule = nil		-- Either nil, "KTL" (Kill The Leader) or "ABL" (All But Last)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   241
local allowCrazyWeps = false	-- Super weapons
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   242
local requireSurfer = false	-- Surf Before Crate
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   243
local crateSpawned = false	-- Has the crate (or crates) been spawned in this turn yet?
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   244
local cratesPerTurn = 1		-- How many crates appear per turn (respects crate limit)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   245
local maxCrates = 12		-- default crate limit, can be configured with params
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   246
local maxCratesHard = 100	-- "hard" crate limit, to avoid extreme lagging due to many crates
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   247
local crateGearsInGame = 0
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   248
local wX = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   249
local wY = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   250
local wWidth = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   251
local wHeight = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   252
local wTouched = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   253
local wallsLeft = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   254
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   255
local hasSurfed = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   256
local allWallsHit = false
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   257
local crateCollected = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   258
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   259
-- ABL and KTL stuff
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   260
local teamNames = {}		-- List of all teams
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   261
local teamsAttacked = {}	-- List of attacked teams (in this turn)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   262
local lastTeam = nil		-- Team with the least health. Determined only at start of turn. If it's a tie, use nil.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   263
local leaderTeam = nil		-- Team with the most health. Determined only at start of turn. If it's a tie, use nil.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   264
local runnerUpTeam = nil	-- Team with the second-most health
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   265
local previousTeam = nil	-- Remember the name of the team in the previous turn
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   266
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   267
local gTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   268
local effectTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   269
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   270
local ropeG = nil
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   271
local allowCrate = true
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   272
local crates = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   273
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   274
-- Variables for place hedgehogs mode
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   275
local hogCount = 0		-- Used to detect the end of the hog placement phase
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   276
local turnsCount = 0
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   277
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   278
-- crate radar vars
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   279
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   280
-- Set the initial radar mode here
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   281
-- 0: Radar is always active
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   282
-- 1: Radar is only active shortly after crate spawn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   283
-- 2: Radar is disabled
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   284
local radarMode = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   285
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   286
local rCirc = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   287
local rAlpha = 255
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   288
local rPingTimer = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   289
local m2Count = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   290
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   291
local weapons = {}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   292
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   293
local crazyWeps = {amWatermelon, amHellishBomb, amBallgun, amRCPlane}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   294
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   295
local groundWeps = 	{amBee, amShotgun,amDEagle,amFirePunch, amWhip,
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   296
				amPickHammer, amBaseballBat, amCake,amBallgun,
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   297
				amRCPlane, amSniperRifle, amBirdy, amBlowTorch,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   298
				amFlamethrower, amMortar, amHammer}
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   299
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   300
local ropeWeps = {amGrenade, amClusterBomb, amBazooka, amMine, amDynamite,
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   301
				amWatermelon, amHellishBomb, amDrill, amMolotov,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   302
				amSMine, amGasBomb}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   303
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   304
local msgColorTech = 0xFFBA00FF
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   305
local msgColorWarn = 0xFF4000FF
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   306
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   307
-- 0.9.18+ extra custom data for preset maps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   308
local MapList =
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   309
	{
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   310
	--name,					surfer, roof, 	LRwalls
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   311
	{"Alien",				true, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   312
	{"Atlantis Shoppa",			true, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   313
	{"BasketballField",			false,  false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   314
	{"BattleCity_v1",			true,	true, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   315
	{"BIGshoppa",				true,	true, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   316
	{"BambooPlinko",			true,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   317
	{"BoatWxW",				true,	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   318
	{"BrickShoppa",				false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   319
	{"BubbleFlow",				true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   320
	{"Citrouille",				true, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   321
	{"Cave",				false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   322
	{"Cheese_Ropes", 			false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   323
	{"CookieShoppa", 			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   324
	{"CrossRopes",				false,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   325
	{"FutuShoppa",				true,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   326
	{"Garden",				false,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   327
	{"Glass Shoppa",			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   328
	{"GlassShoppa2",			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   329
	{"HardIce",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   330
	{"Industrial",       			false,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   331
	{"Islands",       			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   332
	{"IslandsFlipped",     			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   333
	{"IslandsRearranged",  			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   334
	{"Hedgelove",       			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   335
	{"HellishRopes",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   336
	{"Hedgeland_v1",			true,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   337
	{"HeyLandShoppa",			false,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   338
	{"NeonStyle",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   339
	{"MaskedRopes",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   340
	{"Octorama",       			false, 	false, true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   341
	{"red vs blue - Castle",     		true, 	false, true},
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   342
	{"red vs blue - castle2",     		true, 	false, true},
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   343
	{"red vs blue - True Shoppa Sky",	true,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   344
	{"Ropes",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   345
	{"RopeLikeAKingInHellWithNeon",		false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   346
	{"Ropes Flipped",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   347
	{"Ropes Rearranged",      		false, 	false, true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   348
	{"RopesRevenge Flipped",    		true, 	false, true},
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   349
	{"RopesThree",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   350
	{"RopesTwo",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   351
	{"Ruler",	      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   352
	{"SandShoppa",				false,	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   353
	{"ShapeShoppa1.0",     			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   354
	{"ShapeShoppa Darkhow",      		true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   355
	{"SheepyShoppa_v2",      		true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   356
	{"shopppa",				false,  true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   357
	{"ShoppaCave2",      			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   358
	{"ShoppaChallenge",    			false, 	true, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   359
	{"ShoppaDesert",    			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   360
	{"ShoppaEvoRope_v1",			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   361
	{"ShoppaFun",      			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   362
	{"ShoppaFun2",      			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   363
	{"ShoppaGolf",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   364
	{"ShoppaHalloween",    			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   365
	{"ShoppaHell",      			false,	true,  false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   366
	{"ShoppaHellFlipped",  			true,	true,  false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   367
	{"ShoppaHellRemake",			false,	true,  false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   368
	{"ShoppaKing",       			false, 	true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   369
	{"ShoppaKingFlipped",      		true, 	false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   370
	{"ShoppaKingSideways",      		true, 	true,  false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   371
	{"ShoppaMeme",				false,	true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   372
	{"ShoppaNeon",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   373
	{"ShoppaNeonFlipped",			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   374
	{"ShoppaOnePiece2",			false, 	true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   375
	{"ShoppaQuotes2",			false,  true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   376
	{"ShoppaRainbow",			false,  false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   377
	{"ShoppaRadigme",			false,  true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   378
	{"ShoppaSilhouette",			false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   379
	{"ShoppaSpace",				true,   false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   380
	{"ShoppaSea",				true,  false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   381
	{"ShoppaShapex_v1",			false,  true, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   382
	{"ShoppaSparkle",			true,  true, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   383
	{"ShoppaSky",				false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   384
	{"ShoppaSky2",				true,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   385
	{"ShoppaSsion",				false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   386
	{"ShoppaStyle2",			true,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   387
	{"ShoppaThology",			false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   388
	{"ShoppaTournament2012",		false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   389
	{"ShoppaWild",				false,  false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   390
	{"Shoppawall",				false,  false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   391
	{"ShoppaWall2",				false,  false, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   392
	{"ShBall",				false,  true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   393
	{"ShHell",				false,  true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   394
	{"ShNeon",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   395
	{"ShoppaSky",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   396
	{"SloppyShoppa",       			false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   397
	{"SloppyShoppa2",      			false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   398
	{"SkatePark",       			false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   399
	{"Snow_Ropes",       			false, 	true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   400
	{"Sticks",       			true, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   401
	{"Symmetrical Ropes",       		false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   402
	{"SpartanShoppa",       		false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   403
	{"Tetris",       			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   404
	{"TransRopes2",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   405
	{"TRBShoppa",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   406
	{"TrickyShoppa",      			false, 	true, false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   407
	{"Wildmap",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   408
	{"Winter Shoppa",      			false, 	false, true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   409
	{"WarShoppa",      			false, 	true,  true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   410
	{"2Cshoppa",      			true, 	false, true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   411
	}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   412
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   413
local Ropes_WallSet = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   414
	{ add="none", {299,932,20,856}, {4056,0,30,1788} },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   415
	{ add="none", {299,109,20,779}, {4056,0,30,1788} },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   416
	{ add="none", {299,109,20,779}, {299,932,20,856}, {4056,0,30,1788} },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   417
	{ add="default", {2253,326,20,574}, {3280,326,33,253}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   418
	{ add="roof", {2322,326,457,20} },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   419
	{ add="default", {1092,934,54,262}, {2822,323,33,137}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   420
	{ add="none", {203,1193,20,595}, {3280,326,20,253}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   421
}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   422
local Shoppawall_WallSet = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   423
	{ add="none", {80+290,61+878,20,1018}, {3433+290,61+878,20,1018}, default=true, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   424
}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   425
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   426
-- List of map with special wall settings
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   427
local SpecialMapList = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   428
	["Ropes"] = Ropes_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   429
	["HellishRopes"] = Ropes_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   430
	["MaskedRopes"] = Ropes_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   431
	["TransRopes2"] = Ropes_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   432
	["ShoppaKing"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   433
		{ add="none", {3777,1520,50,196}, {1658,338,46,670}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   434
		{ add="none", {125,0,30,2048}, {4066,515,30,1528}, default=true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   435
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   436
	["ShoppaHell"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   437
		{ add="none", {3491,697,30,1150}, {0,0,30,1847}, default=true},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   438
		{ add="none", {3810,0,30,1616}, {0,0,30,1847}, },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   439
		{ add="none", {2045,832,20,260}, {2107,832,20,260}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   440
		{ add="default", {2035,831,30,263}, {3968,1668,31,383}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   441
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   442
	["ShoppaNeon"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   443
		{ add="default", {980,400,20,300}, {1940,400,20,300}, {3088,565,26,284}, {187,270,28,266}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   444
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   445
	["Shoppawall"] = Shoppawall_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   446
	["ShoppaWall2"] = Shoppawall_WallSet,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   447
	["ShoppaDesert"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   448
		{ add="none", {2322,349,20,471}, {295,93,24,1479}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   449
		{ add="none", {3001,1535,20,232}, {2264,349,20,495},{716,696,20,119}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   450
		{ add="leftright", {209,656,20,367},{2810,838,20,96}, needsborder=false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   451
		{ add="none", {2649,0,445,20}, {2322,349,947,20},{299,696,381,20}},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   452
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   453
	["ShoppaOnePiece2"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   454
		{ add="default", {42,0,20,2048}, {4048,0,20,2048}, needsborder=false, },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   455
		{ add="default", {42,0,20,2048}, {3852,273,20,1637}, needsborder=false, default="noborder" },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   456
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   457
	["ShoppaWild"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   458
		{ add="default", {2123,1365,20,293}, {3102,1365,20,293}, {1215,1391,20,291}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   459
		{ add="none", {144,167,1904,20}, {2350,167,753,20}, {3793,167,303,20}, needsborder=false},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   460
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   461
	["ShoppaRainbow"] = {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   462
		{ add="none", {67+602,61+80,20,1847}, {2779+602,61+80,20,1847}, needsborder=false },
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   463
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   464
}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   465
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   466
function BoolToCfgTxt(p)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   467
	if p == false then
11301
fa18940f290d - Rus localization for following game styles:
antonc27 <antonc27@mail.ru>
parents: 10670
diff changeset
   468
		return loc("Disabled")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   469
	else
11301
fa18940f290d - Rus localization for following game styles:
antonc27 <antonc27@mail.ru>
parents: 10670
diff changeset
   470
		return loc("Enabled")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   471
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   472
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   473
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   474
function AttackRuleToCfgTxt(attackRule)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   475
	if attackRule == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   476
		return loc("Disabled")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   477
	elseif attackRule == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   478
		return loc("All But Last")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   479
	elseif attackRule == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   480
		return loc("Kill The Leader")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   481
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   482
		return "ERROR"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   483
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   484
end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   485
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   486
function NewWallSet(newWallSet, wType)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   487
	-- Filter out wall sets which are not in allowed categories or have too many or few walls
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   488
	if allowedWallSetTypes[wType] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   489
		local inBounds = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   490
		if minWalls ~= nil and #newWallSet < minWalls then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   491
			inBounds = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   492
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   493
		if maxWalls ~= nil and #newWallSet > maxWalls then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   494
			inBounds = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   495
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   496
		if inBounds then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   497
			table.insert(wallSets, newWallSet)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   498
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   499
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   500
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   501
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   502
function MapsInit()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   503
	mapID = nil
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   504
	margin = 20
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   505
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   506
	-- 0.9.17
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   507
	if Map == "CHANGE_ME" then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   508
		AddCaption(loc("For improved features/stability, play 0.9.18+"))
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   509
		AddWall(10,10,margin,2025)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   510
		AddWall(4085-margin,10,margin,2025)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   511
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   512
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   513
	--0.9.18+
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   514
	for i = 1, #MapList do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   515
		if Map == MapList[i][1] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   516
			mapID = i
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   517
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   518
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   519
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   520
	local left, right, roof
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   521
	left = {LeftX+10,TopY+10,margin,WaterLine}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   522
	right = {RightX-10-margin,TopY+10,margin,WaterLine}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   523
	roof = {LeftX+10,TopY+10,RightX-LeftX-20,margin}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   524
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   525
	local border = MapHasBorder()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   526
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   527
	if mapID ~= nil then
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   528
		if border then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   529
			if MapList[mapID][3] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   530
				NewWallSet({roof, desc=loc("Roof")}, "roof")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   531
				wallSetID = #wallSets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   532
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   533
			if MapList[mapID][4] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   534
				NewWallSet({left, right, desc=loc("Left and right")}, "leftright")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   535
				wallSetID = #wallSets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   536
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   537
			if MapList[mapID][3] == true and MapList[mapID][4] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   538
				NewWallSet({left, right, roof, desc=loc("Left, right and roof")}, "leftrightroof")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   539
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   540
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   541
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   542
		-- add map specific walls
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   543
		if SpecialMapList[Map] ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   544
			local insideID = 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   545
			local previousInside = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   546
			local mixedID = 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   547
			local previousMixed = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   548
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   549
			-- Helper function to build the wall set name.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   550
			-- Basically just to ensure that names like "Inside 1" are only used when there are at least 2 "Insides"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   551
			local function newInsideOrMixed(ws, previous_ws, id, string, stringD)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   552
				if id == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   553
					ws.desc = string
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   554
				else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   555
					ws.desc = string.format(stringD, id)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   556
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   557
				if id == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   558
					previous_ws.desc = string.format(stringD, id-1)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   559
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   560
				id = id + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   561
				previous_ws = ws
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   562
				return id, previous_ws
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   563
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   564
			for ws=1,#SpecialMapList[Map] do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   565
				local walls = SpecialMapList[Map][ws]
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   566
				if walls.needsborder == false then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   567
					local newwallset2 = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   568
					for w=1,#walls do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   569
						table.insert(newwallset2, walls[w])
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   570
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   571
					insideID, previousInside = newInsideOrMixed(newwallset2, previousInside, insideID, loc("Inside"), loc("Inside %d"))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   572
					newwallset2.custom = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   573
					NewWallSet(newwallset2, "inside")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   574
					if SpecialMapList[Map][ws].default == "noborder" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   575
						wallSetID = #wallSets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   576
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   577
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   578
				local newwallset = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   579
				if border then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   580
					if walls.add == "all" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   581
						table.insert(newwallset, roof)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   582
						table.insert(newwallset, left)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   583
						table.insert(newwallset, right)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   584
					elseif walls.add == "default" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   585
						if MapList[mapID][3] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   586
							table.insert(newwallset, roof)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   587
						end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   588
						if MapList[mapID][4] == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   589
							table.insert(newwallset, left)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   590
							table.insert(newwallset, right)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   591
						end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   592
					elseif walls.add == "roof" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   593
						table.insert(newwallset, roof)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   594
					elseif walls.add == "leftright" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   595
						table.insert(newwallset, left)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   596
						table.insert(newwallset, right)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   597
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   598
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   599
				for w=1,#walls do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   600
					table.insert(newwallset, walls[w])
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   601
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   602
				if border and ((walls.add ~= "none" and walls.add ~= nil) or walls.needsborder ~= false) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   603
					mixedID, previousMixed = newInsideOrMixed(newwallset, previousMixed, mixedID, loc("Mixed"), loc("Mixed %d"))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   604
					newwallset.custom = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   605
					NewWallSet(newwallset, "mixed")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   606
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   607
				if SpecialMapList[Map][ws].default == true then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   608
					wallSetID = #wallSets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   609
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   610
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   611
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   612
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   613
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   614
		if border then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   615
			NewWallSet({roof, desc=loc("Roof")}, "roof")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   616
			NewWallSet({left, right, desc=loc("Left and right")}, "leftright")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   617
			NewWallSet({left, right, roof, desc=loc("Left, right and roof")}, "leftrightroof")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   618
			wallSetID = 2
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   619
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   620
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   621
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   622
	-- Choose random map when without without menu
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   623
	if useMenu == false and #wallSets > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   624
		wallSetID = GetRandom(#wallSets)+1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   625
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   626
	-- Select first wall set by default if we still haven't selected anything for some reason
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   627
	if wallSetID == 0 and #wallSets > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   628
		wallSetID = 1	
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   629
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   630
	-- But disabled walls from script parameter have higher priority
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   631
	if WBC == false then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   632
		wallSetID = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   633
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   634
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   635
	if CanSurf() == false then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   636
		requireSurfer = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   637
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   638
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   639
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   640
function LoadConfig(p)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   641
	ClearWalls()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   642
	if mapID ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   643
		if p > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   644
			local walls = wallSets[p]
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   645
			for i=1,#walls do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   646
				AddWall(walls[i][1], walls[i][2], walls[i][3], walls[i][4])
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   647
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   648
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   649
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   650
	-- if map is unrecognized, add two walls on the side borders
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   651
	-- also, if version of hw is not 0.9.17 or lower
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   652
	elseif Map ~= "CHANGE_ME" then
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   653
		if p == 1 or p == 3 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   654
			AddWall(LeftX+10,TopY+10,RightX-LeftX-20,margin)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   655
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   656
		if p == 2 or p == 3 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   657
			AddWall(LeftX+10,TopY+10,margin,WaterLine)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   658
			AddWall(RightX-10-margin,TopY+10,margin,WaterLine)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   659
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   660
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   661
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   662
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   663
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   664
function AddWall(zXMin,zYMin, zWidth, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   665
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   666
	table.insert(wX, zXMin)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   667
	table.insert(wY, zYMin)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   668
	table.insert(wWidth, zWidth)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   669
	table.insert(wHeight, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   670
	table.insert(wTouched, false)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   671
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   672
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   673
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   674
function ClearWalls()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   675
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   676
	wX = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   677
	wY = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   678
	wWidth = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   679
	wHeight = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   680
	wTouched = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   681
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   682
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   683
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   684
-- Draw a single point for the crate radar
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   685
function DrawBlip(gear)
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   686
	if GetGearType(gear) ~= gtCase then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   687
		return
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   688
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   689
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   690
	local baseColor, radius, alpha
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   691
	if getGearValue(gear, "frozen") then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   692
		radius = 25
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   693
		baseColor = 0xFFFFFFFF
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   694
		alpha = math.min(255, rAlpha+127)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   695
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   696
		radius = 40
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   697
		baseColor = GetClanColor(GetHogClan(CurrentHedgehog))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   698
		alpha = rAlpha
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   699
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   700
	SetVisualGearValues(getGearValue(gear,"CIRC"), getGearValue(gear,"RX"), getGearValue(gear,"RY"), 100, 255, 1, 10, 0, radius, 3, baseColor-alpha)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   701
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   702
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   703
function TrackRadarBlip(gear)
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   704
	if GetGearType(gear) ~= gtCase then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   705
		return
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   706
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   707
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   708
	-- work out the distance to the target
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   709
	g1X, g1Y = GetGearPosition(CurrentHedgehog)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   710
	g2X, g2Y = GetX(gear), GetY(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   711
	q = g1X - g2X
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   712
	w = g1Y - g2Y
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   713
	r = math.sqrt( (q*q) + (w*w) )	--alternate
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   714
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   715
	RCX = getGearValue(gear,"RX")
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   716
	RCY = getGearValue(gear,"RY")
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   717
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   718
	rCircDistance = r -- distance to circle
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   719
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   720
	opp = w
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   721
	if opp < 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   722
		opp = opp*-1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   723
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   724
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   725
	-- work out the angle (theta) to the target
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   726
	t = math.deg ( math.asin(opp / r) )
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   727
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   728
	-- based on the radius of the radar, calculate what x/y displacement should be
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   729
	NR = 150 -- radius at which to draw circs
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   730
	NX = math.cos( math.rad(t) ) * NR
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   731
	NY = math.sin( math.rad(t) ) * NR
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   732
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   733
	if rCircDistance < NR then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   734
		RCX = g2X
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   735
	elseif q > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   736
		RCX = g1X - NX
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   737
	else
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   738
		RCX = g1X + NX
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   739
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   740
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   741
	if rCircDistance < NR then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   742
		RCY = g2Y
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   743
	elseif w > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   744
		RCY = g1Y - NY
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   745
	else
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   746
		RCY = g1Y + NY
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   747
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   748
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   749
	setGearValue(gear, "RX", RCX)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   750
	setGearValue(gear, "RY", RCY)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   751
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   752
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   753
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   754
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   755
function HandleCircles()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   756
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   757
	if radarMode == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   758
		rAlpha = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   759
	elseif radarMode == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   760
		-- Only show radar for a short time after a crate spawn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   761
		if rAlpha ~= 255 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   762
			rPingTimer = rPingTimer + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   763
			if rPingTimer == 100 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   764
				rPingTimer = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   765
	
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   766
				rAlpha = rAlpha + 5
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   767
				if rAlpha >= 255 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   768
					rAlpha = 255
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   769
				end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   770
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   771
		end
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   772
	elseif radarMode == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   773
		rAlpha = 255
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   774
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   775
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   776
	runOnGears(DrawBlip)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   777
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   778
	m2Count = m2Count + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   779
	if m2Count == 25 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   780
		m2Count = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   781
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   782
		if (CurrentHedgehog ~= nil) and (rAlpha ~= 255) then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   783
			runOnGears(TrackRadarBlip)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   784
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   785
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   786
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   787
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   788
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   789
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   790
-- Returns true if crates are allowed to be accessed right now (used for unfreezing and spawning)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   791
function AreCratesUnlocked()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   792
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   793
	local crateSpawn = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   794
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   795
	if requireSurfer == true then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   796
		if hasSurfed == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   797
			crateSpawn = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   798
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   799
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   800
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   801
	if #wTouched > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   802
		if allWallsHit == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   803
			crateSpawn = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   804
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   805
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   806
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   807
	return crateSpawn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   808
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   809
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   810
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   811
-- Freeze all crates,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   812
function FreezeCrates()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   813
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   814
	local cratesFrozen = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   815
	for crate, isCrate in pairs(crates) do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   816
		local state = GetState(crate)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   817
		-- Freeze crate if it wasn't already frozen
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   818
		if band(state, gstFrozen) == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   819
			cratesFrozen = cratesFrozen + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   820
			SetState(crate, bor(GetState(crate), gstFrozen))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   821
			setGearValue(crate, "frozen", true)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   822
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   823
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   824
	-- Play sound if at least one new (!) crate was frozen
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   825
	if cratesFrozen > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   826
		PlaySound(sndHogFreeze)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   827
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   828
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   829
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   830
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   831
-- Unfreeze all crates
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   832
function UnfreezeCrates()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   833
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   834
	for crate, isCrate in pairs(crates) do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   835
		SetState(crate, band(GetState(crate), bnot(gstFrozen)))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   836
		setGearValue(crate, "frozen", false)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   837
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   838
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   839
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   840
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   841
function CheckCrateConditions()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   842
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   843
	local crateSpawn = AreCratesUnlocked()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   844
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   845
	if crateSpawn == true and crateSpawned == false then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   846
		UnfreezeCrates()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   847
		if allowCrate == true then
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   848
			local cratesInGame = crateGearsInGame
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   849
			local toSpawn = cratesPerTurn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   850
			if cratesInGame + toSpawn > maxCrates then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   851
				toSpawn = maxCrates - cratesInGame
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   852
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   853
			for i=1,toSpawn do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   854
				SpawnAmmoCrate(0, 0, weapons[1+GetRandom(#weapons)] )
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   855
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   856
			rPingTimer = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   857
			rAlpha = 0
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   858
			if toSpawn > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   859
				PlaySound(sndWarp)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   860
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   861
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   862
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   863
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   864
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   865
10670
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   866
function onGearWaterSkip(gear)
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   867
	if gear == CurrentHedgehog then
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   868
		hasSurfed = true
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   869
		AddCaption(loc("Surfer!"), 0xFFFFFFFF, capgrpMessage2)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   870
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   871
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   872
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   873
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   874
function WallHit(id, zXMin,zYMin, zWidth, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   875
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   876
	if wTouched[id] == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   877
		tempE = AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   878
		PlaySound(sndExplosion)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   879
		wallsLeft = wallsLeft - 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   880
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   881
		if wallsLeft == 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   882
			AddCaption(loc("All walls touched!"))
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   883
			allWallsHit = true
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   884
			if (requireSurfer == true) and (hasSurfed == false) then
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   885
				AddCaption(loc("Go surf!"), 0xFFFFFFFF, capgrpMessage2)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   886
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   887
		else
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   888
			AddCaption(string.format(loc("Walls left: %d"), wallsLeft))
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   889
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   890
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   891
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   892
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   893
	wTouched[id] = true
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   894
	if #wTouched > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   895
		tempE = AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtSmoke, 0, false)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   896
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   897
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   898
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   899
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   900
function CheckForWallCollision()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   901
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   902
	for i = 1, #wTouched do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   903
		if gearIsInBox(CurrentHedgehog, wX[i],wY[i],wWidth[i],wHeight[i]) then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   904
			WallHit(i, wX[i],wY[i],wWidth[i],wHeight[i])
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   905
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   906
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   907
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   908
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   909
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   910
function BorderSpark(zXMin,zYMin, zWidth, zHeight, bCol)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   911
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   912
	eX = zXMin + GetRandom(zWidth+10)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   913
	eY = zYMin + GetRandom(zHeight+10)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   914
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   915
	tempE = AddVisualGear(eX, eY, vgtDust, 0, false)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   916
	if tempE ~= 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   917
		g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   918
		SetVisualGearValues(tempE, eX, eY, g3, g4, g5, g6, g7, 1, g9, bCol )
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   919
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   920
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   921
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   922
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   923
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   924
function HandleBorderEffects()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   925
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   926
	effectTimer = effectTimer + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   927
	if effectTimer > 15 then --25
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   928
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   929
		effectTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   930
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   931
		for i = 1, #wTouched do
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   932
			if wTouched[i] == false then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   933
				bCol = GetClanColor(GetHogClan(CurrentHedgehog))
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   934
				BorderSpark(wX[i],wY[i],wWidth[i],wHeight[i], bCol)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   935
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   936
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   937
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   938
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   939
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   940
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   941
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   942
function PlaceWarn()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   943
	PlaySound(sndDenied)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   944
	AddCaption(loc("Please place your hedgehog first!"), msgColorWarn, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   945
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   946
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   947
function onLJump()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   948
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   949
		PlaySound(sndPlaced)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   950
		SetInputMask(0xFFFFFFFF)
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   951
		AddCaption(loc("Configuration accepted."), msgColorTech, capgrpMessage)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   952
		if GetGameFlag(gfPlaceHog) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   953
			TurnTimeLeft = PlacementTime
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   954
			AddAmmo(CurrentHedgehog, amTeleport, 100)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   955
			SetWeapon(amTeleport)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   956
			AddCaption(
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   957
				string.format(loc("%s, place the first hedgehog!"), GetHogTeamName(CurrentHedgehog)),
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   958
				0xFFFFFFFF,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   959
				capgrpMessage2
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   960
			)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   961
			roundN = 2
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   962
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   963
			TurnTimeLeft = TurnTime
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   964
			AddCaption(string.format(loc("Let's go, %s!"), GetHogTeamName(CurrentHedgehog)), 0xFFFFFFFF, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   965
			roundN = 100
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   966
			wallsLeft = #wTouched
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   967
			allowCrate = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   968
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   969
		PlaySound(sndYesSir, CurrentHedgehog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   970
		FinalizeMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   971
	elseif roundN == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   972
		PlaceWarn()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   973
	elseif roundN == 100 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   974
		if CBA and not crateCollected then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   975
			if (GetCurAmmoType() ~= amRope) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   976
				(GetCurAmmoType() ~= amSkip) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   977
				(GetCurAmmoType() ~= amNothing) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   978
				(ropeG ~= nil)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   979
			then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   980
				AddCaption(loc("You must first collect a crate before you attack!"), msgColorWarn, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   981
				PlaySound(sndDenied)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   982
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   983
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   984
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   985
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   986
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   987
function onAttack()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   988
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   989
		if menu[menuIndex].activate ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   990
			menu[menuIndex].activate()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   991
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   992
			menu[menuIndex].doNext()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   993
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   994
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   995
		UpdateMenu()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   996
		configureWeapons()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   997
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   998
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   999
		PlaySound(sndSwitchHog)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1000
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1001
	elseif roundN == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1002
		if GetCurAmmoType() ~= amSkip and GetCurAmmoType() ~= amNothing then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1003
			PlaceWarn()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1004
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1005
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1006
	elseif roundN == 100 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1007
		local weaponSelected = (GetCurAmmoType() ~= amRope) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1008
			(GetCurAmmoType() ~= amSkip) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1009
			(GetCurAmmoType() ~= amNothing) and
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1010
			(ropeG == nil)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1011
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1012
		if weaponSelected then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1013
			if AFR and CBA and not crateCollected then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1014
				AddCaption(loc("You must attack from a rope, after you collected a crate!"), msgColorWarn, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1015
				PlaySound(sndDenied)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1016
			elseif AFR then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1017
				AddCaption(loc("You may only attack from a rope!"), msgColorWarn, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1018
				PlaySound(sndDenied)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1019
			elseif CBA and not crateCollected then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1020
				AddCaption(loc("You must first collect a crate before you attack!"), msgColorWarn, capgrpMessage2)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1021
				PlaySound(sndDenied)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1022
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1023
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1024
	end
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1025
end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1026
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1027
function onSwitch()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1028
	-- Must be in-game, hog must be controlled by player and hog must be on rope or have rope selected
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1029
	if roundN == 100 and CurrentHedgehog ~= nil and band(GetState(CurrentHedgehog), gstHHDriven) ~= 0 and (ropeG ~= nil or GetCurAmmoType() == amRope) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1030
		-- Toggle radar mode
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1031
		radarMode = radarMode + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1032
		if radarMode > 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1033
			radarMode = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1034
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1035
		local message
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1036
		if radarMode == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1037
			message = loc("Radar: On")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1038
		elseif radarMode == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1039
			message = loc("Radar: Show after crate drop")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1040
		elseif radarMode == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1041
			message = loc("Radar: Off")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1042
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1043
		AddCaption(message, GetClanColor(GetHogClan(CurrentHedgehog)), capgrpAmmostate)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1044
		-- Remember the radar mode for this team to restore it on the team's next turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1045
		setTeamValue(GetHogTeamName(CurrentHedgehog), "radarMode", radarMode)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1046
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1047
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1048
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1049
function onLeft()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1050
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1051
		if menu[menuIndex].doPrev ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1052
			menu[menuIndex].doPrev()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1053
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1054
			menu[menuIndex].activate()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1055
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1056
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1057
		UpdateMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1058
		configureWeapons()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1059
		HandleStartingStage()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1060
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1061
		PlaySound(sndSwitchHog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1062
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1063
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1064
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1065
function onRight()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1066
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1067
		if menu[menuIndex].doNext ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1068
			menu[menuIndex].doNext()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1069
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1070
			menu[menuIndex].activate()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1071
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1072
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1073
		UpdateMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1074
		configureWeapons()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1075
		HandleStartingStage()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1076
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1077
		PlaySound(sndSwitchHog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1078
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1079
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1080
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1081
function onDown()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1082
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1083
		PlaySound(sndSteps)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1084
		menuIndex = menuIndex +1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1085
		if menuIndex > #menu then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1086
			menuIndex = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1087
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1088
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1089
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1090
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1091
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1092
function onUp()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1093
	if roundN == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1094
		PlaySound(sndSteps)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1095
		menuIndex = menuIndex -1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1096
		if 	menuIndex == 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1097
			menuIndex = #menu
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1098
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1099
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1100
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1101
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1102
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1103
function parseBool(key, default)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1104
	if params[key]=="true" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1105
		return true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1106
	elseif params[key]=="false" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1107
		return false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1108
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1109
		return default
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1110
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1111
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1112
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1113
function parseInt(key, default, min, max)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1114
	local num = tonumber(params[key])
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1115
	if type(num) ~= "number" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1116
		return default
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1117
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1118
	if min ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1119
		num = math.max(min, num)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1120
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1121
	if max ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1122
		num = math.min(max, num)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1123
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1124
	return num
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1125
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1126
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1127
function onParameters()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1128
	parseParams()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1129
	local tmpParam
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1130
	useMenu = parseBool("menu", useMenu)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1131
	requireSurfer = parseBool("SBC", requireSurfer)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1132
	AFR = parseBool("AFR", AFR)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1133
	CBA = parseBool("CBA", CBA)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1134
	if params["attackrule"] == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1135
		attackRule = "ABL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1136
	elseif params["attackrule"] == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1137
		attackRule = "KTL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1138
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1139
	allowCrazyWeps = parseBool("SW", allowCrazyWeps)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1140
	maxCrates = parseInt("maxcrates", maxCrates, 1, maxCratesHard)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1141
	cratesPerTurn = parseInt("cratesperturn", cratesPerTurn, 1, maxCrates)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1142
	local wallsParam = params["walls"]
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1143
	local wallsParamSelection = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1144
	if wallsParam ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1145
		if wallsParam == "all" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1146
			wallsParamSelection = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1147
			allowedWallSetTypes = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1148
			for i=1,#allWallSetTypes do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1149
				allowedWallSetTypes[allWallSetTypes[i]] = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1150
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1151
		elseif wallsParam == "none" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1152
			WBC = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1153
			allowedWallSetTypes = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1154
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1155
			wallsParamSelection = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1156
			allowedWallSetTypes = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1157
			local parsedWords = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1158
			for k,v in string.gmatch(wallsParam, "(%w+)") do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1159
				table.insert(parsedWords, k)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1160
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1161
			for i=1,#allWallSetTypes do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1162
				for j=1,#parsedWords do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1163
					if allWallSetTypes[i] == parsedWords[j] then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1164
						allowedWallSetTypes[allWallSetTypes[i]] = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1165
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1166
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1167
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1168
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1169
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1170
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1171
	-- Upper and lower bounds
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1172
	local wallsNum = parseInt("wallsnum", nil, 0)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1173
	if wallsNum == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1174
		WBC = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1175
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1176
	minWalls = wallsNum
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1177
	maxWalls = wallsNum
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1178
	-- minwalls and maxwalls take precedence over wallsnum
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1179
	minWalls = parseInt("minwalls", minWalls, 1)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1180
	maxWalls = parseInt("maxwalls", maxWalls, 1)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1181
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1182
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1183
function onGameInit()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1184
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1185
	HealthCaseProb = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1186
	CaseFreq = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1187
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1188
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1189
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1190
function configureWeapons()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1191
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1192
	-- reset wep array
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1193
	for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1194
		weapons[i] = nil
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1195
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1196
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1197
	-- add rope weps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1198
	for i, w in pairs(ropeWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1199
        table.insert(weapons, w)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1200
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1201
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1202
	-- add ground weps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1203
	for i, w in pairs(groundWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1204
        table.insert(weapons, w)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1205
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1206
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1207
	-- remove ground weps if attacking from rope is mandatory
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1208
	if AFR == true then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1209
		for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1210
			for w = 1, #groundWeps do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1211
				if groundWeps[w] == weapons[i] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1212
					table.remove(weapons, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1213
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1214
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1215
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1216
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1217
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1218
	-- remove crazy weps is crazy weps aren't allowed
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1219
	if allowCrazyWeps == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1220
		for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1221
			for w = 1, #crazyWeps do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1222
				if crazyWeps[w] == weapons[i] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1223
					table.remove(weapons, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1224
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1225
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1226
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1227
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1228
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1229
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1230
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1231
function onGameStart()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1232
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1233
	trackTeams()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1234
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1235
	MapsInit()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1236
	LoadConfig(wallSetID)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1237
	configureWeapons()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1238
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1239
	-- ABL or KTL only make sense with at least 3 teams, otherwise we disable it
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1240
	if TeamsCount < 3 or ClansCount < 3 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1241
		attackRule = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1242
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1243
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1244
	if useMenu then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1245
		ShowMission(loc("Wall to wall"), loc("Please wait …"), "", 2, 300000)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1246
		UpdateMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1247
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1248
		if GetGameFlag(gfPlaceHog) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1249
			roundN = 2
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1250
			FinalizeMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1251
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1252
			allowCrate = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1253
			roundN = 100
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1254
			FinalizeMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1255
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1256
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1257
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1258
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1259
function onNewTurn()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1260
	turnsCount = turnsCount + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1261
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1262
	if roundN == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1263
		roundN = 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1264
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1265
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1266
	if GetGameFlag(gfPlaceHog) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1267
		if roundN < 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1268
			SetWeapon(amSkip)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1269
			AddAmmo(CurrentHedgehog, amTeleport, 0)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1270
			TurnTimeLeft = -1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1271
			SetInputMask(0)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1272
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1273
		if roundN == 2 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1274
			if turnsCount > hogCount then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1275
				roundN = 100
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1276
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1277
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1278
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1279
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1280
	wallsLeft = #wTouched
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1281
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1282
	for i = 1, #wTouched do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1283
		wTouched[i] = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1284
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1285
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1286
	hasSurfed = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1287
	allWallsHit = false
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1288
	crateCollected = false
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1289
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1290
	crateSpawned = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1291
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1292
	if roundN == 100 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1293
		allowCrate = crateGearsInGame < maxCrates
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1294
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1295
		local teamName = GetHogTeamName(CurrentHedgehog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1296
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1297
		-- Restore team's radar mode
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1298
		radarMode = getTeamValue(teamName, "radarMode")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1299
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1300
		if not AreCratesUnlocked() then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1301
			FreezeCrates()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1302
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1303
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1304
		-- Check the attack rule violation of the *previous* team and apply penalties
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1305
		-- This function will do nothiong in the first turn since previousTeam is still nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1306
		CheckAttackRuleViolation(previousTeam)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1307
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1308
		previousTeam = teamName
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1309
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1310
		-- Update attack rule information for this turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1311
		UpdateLastAndLeaderTeams()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1312
		teamsAttacked = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1313
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1314
		-- Was the team violating the attackRule the last time?
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1315
		if getTeamValue(teamName, "skipPenalty") then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1316
			-- Then take away this turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1317
			AddCaption(string.format(loc("%s must skip this turn for rule violation ."), teamName), msgColorWarn, capgrpMessage)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1318
			TurnTimeLeft = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1319
			setTeamValue(teamName, "skipPenalty", false)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1320
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1321
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1322
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1323
		allowCrate = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1324
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1325
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1326
	if roundN == 1 then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1327
		TurnTimeLeft = -1
7183
95dc11d648fb tidy flags
nemo
parents: 7095
diff changeset
  1328
		SetInputMask(0)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1329
		allowCrate = false
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1330
		UpdateMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1331
		AddCaption(string.format(loc("%s may choose the rules."), GetHogTeamName(CurrentHedgehog)), msgColorTech, capgrpGameState)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1332
		HandleStartingStage()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1333
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1334
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1335
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1336
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1337
function CanSurf()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1338
	if mapID ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1339
		if GetGameFlag(gfBottomBorder) and WaterRise == 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1340
			return false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1341
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1342
			return MapList[mapID][2]
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1343
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1344
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1345
		return nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1346
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1347
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1348
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1349
function UpdateMenu()
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1350
	local teamInfo
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1351
	if roundN == 1 and CurrentHedgehog ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1352
		teamInfo = string.format(loc("%s, you may choose the rules."), GetHogTeamName(CurrentHedgehog)) 
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1353
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1354
		teamInfo = ""
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1355
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1356
	preMenuCfg =	teamInfo .. "|" ..
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1357
			loc("Press [Up] and [Down] to move between menu items.|Press [Attack], [Left], or [Right] to toggle.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1358
	if GetGameFlag(gfPlaceHog) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1359
		postMenuCfg = loc("Press [Long jump] to accept this configuration and begin placing hedgehogs.")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1360
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1361
		postMenuCfg = loc("Press [Long jump] to accept this configuration and start the game.")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1362
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1363
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1364
	-- This table contains the menu strings and functions to be called when the entry is activated.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1365
	menu = {}
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1366
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1367
	-- Walls required (hidden if the current settings don't allow for any walls)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1368
	if #wallSets > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1369
		local line
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1370
		if #wTouched > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1371
			if wallSets[wallSetID].custom then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1372
				line = string.format(loc("Wall set: %s (%d walls)"), wallSets[wallSetID].desc, #wTouched) .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1373
			else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1374
				line = string.format(loc("Wall set: %s"), wallSets[wallSetID].desc) .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1375
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1376
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1377
			line = loc("Wall set: No walls") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1378
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1379
		table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1380
			line = line,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1381
			doNext = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1382
				wallSetID = wallSetID + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1383
				if wallSetID > #wallSets then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1384
					wallSetID = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1385
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1386
				LoadConfig(wallSetID)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1387
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1388
			doPrev = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1389
				wallSetID = wallSetID - 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1390
				if wallSetID < 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1391
					wallSetID = #wallSets
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1392
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1393
				LoadConfig(wallSetID)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1394
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1395
		})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1396
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1397
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1398
	-- Surf Before Crate (hidden if map disabled it)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1399
	if CanSurf() == true or CanSurf() == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1400
		local toggleSurf = function() requireSurfer = not(requireSurfer) end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1401
		table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1402
			line = string.format(loc("Surf Before Crate: %s"), BoolToCfgTxt(requireSurfer)) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1403
			activate = function() requireSurfer = not requireSurfer end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1404
		})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1405
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1406
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1407
	-- Attack From Rope
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1408
	table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1409
		line = string.format(loc("Attack From Rope: %s"), BoolToCfgTxt(AFR)) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1410
		activate = function() AFR = not AFR end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1411
	})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1412
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1413
	-- Crate Before Attack
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1414
	table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1415
		line = string.format(loc("Crate Before Attack: %s"), BoolToCfgTxt(CBA)) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1416
		activate = function() CBA = not CBA end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1417
	})
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1418
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1419
	if TeamsCount >= 3 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1420
		-- Attack rule (Disabled / All But Last / Kill The Leader)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1421
		table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1422
			line = string.format(loc("Attack rule: %s"), AttackRuleToCfgTxt(attackRule)) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1423
			doNext = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1424
				if attackRule == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1425
					attackRule = "ABL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1426
				elseif attackRule == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1427
					attackRule = "KTL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1428
				elseif attackRule == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1429
					attackRule = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1430
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1431
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1432
			doPrev = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1433
				if attackRule == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1434
					attackRule = "KTL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1435
				elseif attackRule == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1436
					attackRule = nil 
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1437
				elseif attackRule == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1438
					attackRule = "ABL"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1439
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1440
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1441
		})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1442
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1443
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1444
	-- Super weapons
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1445
	table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1446
		line = string.format(loc("Super weapons: %s"), BoolToCfgTxt(allowCrazyWeps)) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1447
		activate = function() allowCrazyWeps = not allowCrazyWeps end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1448
	})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1449
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1450
	-- Number of crates which appear per turn
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1451
	if maxCrates > 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1452
		table.insert(menu, {
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1453
			line = string.format(loc("Crates per turn: %d"), cratesPerTurn) .. "|",
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1454
			doNext = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1455
				cratesPerTurn = cratesPerTurn + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1456
				if cratesPerTurn > maxCrates then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1457
					cratesPerTurn = 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1458
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1459
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1460
			doPrev = function()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1461
				cratesPerTurn = cratesPerTurn - 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1462
				if cratesPerTurn < 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1463
					cratesPerTurn = maxCrates
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1464
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1465
			end,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1466
		})
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1467
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1468
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1469
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1470
function FinalizeMenu()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1471
	local text = ""
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1472
	local showTime = 3000
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1473
	if #wTouched == 0 and not requireSurfer then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1474
		text = text .. loc("Collect the crate and attack!") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1475
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1476
		text = text .. loc("Spawn the crate and attack!") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1477
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1478
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1479
	-- Expose a few selected game flags
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1480
	if GetGameFlag(gfPlaceHog)  then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1481
		text = text .. loc("Place hedgehogs: Place your hedgehogs at the start of the game.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1482
		showTime = 6000
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1483
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1484
	if GetGameFlag(gfResetWeps) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1485
		text = text .. loc("Weapons reset: The weapons are reset after each turn.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1486
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1487
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1488
	-- Show the WxW rules
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1489
	if #wTouched == 1 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1490
		text = text .. loc("Wall Before Crate: You must touch the marked wall before you can get crates.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1491
	elseif #wTouched > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1492
		text = text .. string.format(loc("Walls Before Crate: You must touch the %d marked walls before you can get crates."), #wTouched) .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1493
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1494
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1495
	if requireSurfer then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1496
		text = text .. loc("Surf Before Crate: You must bounce off the water once before you can get crates.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1497
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1498
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1499
	if AFR then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1500
		text = text .. loc("Attack From Rope: You may only attack from a rope.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1501
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1502
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1503
	if CBA then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1504
		text = text .. loc("Crate Before Attack: You must collect a crate before you can attack.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1505
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1506
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1507
	if attackRule == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1508
		text = text .. loc("All But Last: You must not solely attack the team with the least health") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1509
	elseif attackRule == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1510
		text = text .. loc("Kill The Leader: You must also hit the team with the most health.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1511
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1512
	if attackRule ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1513
		text = text .. loc("Penalty: If you violate above rule, you have to skip in the next turn.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1514
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1515
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1516
	if allowCrazyWeps then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1517
		text = text .. loc("Super weapons: A few crates contain very powerful weapons.") .. "|"
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1518
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1519
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1520
	ShowMission(loc("Wall to wall"), loc("A Shoppa minigame"), text, 1, showTime)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1521
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1522
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1523
function HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1524
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1525
	temp = menu[menuIndex].line
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1526
	menu[menuIndex].line = "--> " .. menu[menuIndex].line
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1527
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1528
	missionComment = ""
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1529
	for i = 1, #menu do
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1530
		missionComment = missionComment .. menu[i].line
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1531
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1532
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1533
	ShowMission	(
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1534
				loc("Wall to wall"),
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1535
				loc("Configuration phase"),
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1536
				preMenuCfg..
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1537
				missionComment ..
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1538
				postMenuCfg ..
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1539
				"", 2, 300000
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1540
				)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1541
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1542
	menu[menuIndex].line = temp
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1543
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1544
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1545
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1546
function onGameTick()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1547
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1548
	if CurrentHedgehog ~= nil and roundN >= 0 then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1549
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1550
		gTimer = gTimer + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1551
		if gTimer == 25 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1552
			gTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1553
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1554
			if roundN == 100 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1555
				CheckForWallCollision()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1556
				CheckCrateConditions()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1557
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1558
				if (GetGearType(GetFollowGear()) == gtCase) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1559
					FollowGear(CurrentHedgehog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1560
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1561
				
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1562
				-- AFR and CBA handling
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1563
				local allowAttack = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1564
				local shootException
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1565
				shootException = (GetCurAmmoType() == amRope) or
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1566
					(GetCurAmmoType() == amSkip) or
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1567
					(GetCurAmmoType() == amNothing)
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1568
				-- If Attack From Rope is set, forbid firing unless using rope
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1569
				if AFR then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1570
					if ropeG == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1571
						allowAttack = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1572
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1573
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1574
				-- If Crate Before Attack is set, forbid firing if crate is not collected
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1575
				if CBA then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1576
					if not crateCollected then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1577
						allowAttack = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1578
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1579
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1580
				if allowAttack or shootException then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1581
					SetInputMask(bor(GetInputMask(), gmAttack))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1582
					if CBA then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1583
						SetInputMask(bor(GetInputMask(), gmLJump))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1584
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1585
				else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1586
					if CBA then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1587
						if ropeG == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1588
							SetInputMask(band(GetInputMask(), bnot(gmAttack)))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1589
							SetInputMask(bor(GetInputMask(), gmLJump))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1590
						else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1591
							SetInputMask(bor(GetInputMask(), gmAttack))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1592
							SetInputMask(band(GetInputMask(), bnot(gmLJump)))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1593
						end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1594
					else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1595
						SetInputMask(band(GetInputMask(), bnot(gmAttack)))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1596
					end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1597
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1598
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1599
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1600
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1601
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1602
		HandleBorderEffects()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1603
		HandleCircles()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1604
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1605
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1606
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1607
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1608
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1609
function onGearAdd(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1610
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1611
	if GetGearType(gear) == gtRope then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1612
		ropeG = gear
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1613
	elseif GetGearType(gear) == gtCase then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1614
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1615
		crates[gear] = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1616
		crateGearsInGame = crateGearsInGame + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1617
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1618
		trackGear(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1619
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1620
		table.insert(rCirc, AddVisualGear(0,0,vgtCircle,0,true) )
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1621
		setGearValue(gear,"CIRC",rCirc[#rCirc])
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1622
		setGearValue(gear,"RX",0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1623
		setGearValue(gear,"RY",0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1624
		SetVisualGearValues(rCirc[#rCirc], 0, 0, 100, 255, 1, 10, 0, 40, 3, 0xff00ffff)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1625
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1626
		allowCrate = false
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1627
		crateSpawned = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1628
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1629
		rPingTimer = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1630
		rAlpha = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1631
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1632
	elseif GetGearType(gear) == gtHedgehog then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1633
		trackGear(gear)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1634
		local teamName = GetHogTeamName(gear)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1635
		-- Initialize radar mode to “on” and set other team values
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1636
		setTeamValue(teamName, "radarMode", 0)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1637
		setTeamValue(teamName, "skipPenalty", false)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1638
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1639
		if getTeamValue(teamName, "hogs") == nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1640
			setTeamValue(teamName, "hogs", 1)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1641
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1642
			increaseTeamValue(teamName, "hogs")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1643
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1644
		hogCount = hogCount + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1645
		teamNames[GetHogTeamName(gear)] = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1646
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1647
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1648
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1649
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1650
function onGearDelete(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1651
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1652
	local gt = GetGearType(gear)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1653
	if gt == gtRope then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1654
		ropeG = nil
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1655
	elseif gt == gtCase then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1656
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1657
		crates[gear] = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1658
		crateGearsInGame = crateGearsInGame - 1
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1659
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1660
		for i = 1, #rCirc do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1661
			if rCirc[i] == getGearValue(gear,"CIRC") then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1662
				DeleteVisualGear(rCirc[i])
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1663
				table.remove(rCirc, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1664
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1665
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1666
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1667
		trackDeletion(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1668
12065
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1669
		-- Was crate collected?
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1670
		if band(GetGearMessage(gear), gmDestroy) ~= 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1671
			crateCollected = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1672
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1673
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1674
	elseif gt == gtHedgehog then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1675
		teamsAttacked[GetHogTeamName(gear)] = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1676
		decreaseTeamValue(GetHogTeamName(gear), "hogs")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1677
		trackDeletion(gear)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1678
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1679
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1680
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1681
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1682
function onGearDamage(gear)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1683
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1684
	if GetGearType(gear) == gtHedgehog then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1685
		teamsAttacked[GetHogTeamName(gear)] = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1686
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1687
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1688
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1689
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1690
-- Check which team is the last and which is the leader (used for ABL and KTL)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1691
function UpdateLastAndLeaderTeams()
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1692
	local teamHealths = {}
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1693
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1694
	for team, x in pairs(teamNames) do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1695
		UpdateTeamHealth(team)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1696
		local totalHealth = getTeamValue(team, "totalHealth")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1697
		if totalHealth > 0 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1698
			table.insert(teamHealths, {name = team, health = totalHealth } )
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1699
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1700
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1701
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1702
	-- Sort the table by health, lowest health comes first
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1703
	table.sort(teamHealths, function(team1, team2) return team1.health < team2.health end)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1704
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1705
	-- ABL and KTL rules are only active at 3 teams; when there are only 2 teams left, it's “everything goes”.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1706
	if #teamHealths >= 3 then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1707
		if teamHealths[1].health == teamHealths[2].health then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1708
			-- ABL rule is disabled if it's a tie for “least health”
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1709
			lastTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1710
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1711
			-- Normal assignment of ABL variable
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1712
			lastTeam = teamHealths[1].name
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1713
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1714
		if teamHealths[#teamHealths].health == teamHealths[#teamHealths-1].health then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1715
			-- KTL rule is disabled if it's a tie for “most health”
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1716
			leaderTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1717
			runnerUpTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1718
		else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1719
			-- Normal assignment of KTL variables
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1720
			leaderTeam = teamHealths[#teamHealths].name
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1721
			runnerUpTeam = teamHealths[#teamHealths-1].name
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1722
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1723
	else
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1724
		-- The KTL and ABL rules are disabled with only 2 teams left
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1725
		lastTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1726
		runnerUpTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1727
		leaderTeam = nil
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1728
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1729
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1730
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1731
function UpdateTeamHealth(team)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1732
	setTeamValue(team, "totalHealth", 0)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1733
	runOnHogsInTeam(function(hog)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1734
		if(GetGearType(hog) ~= gtHedgehog) then return end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1735
		local h = getTeamValue(GetHogTeamName(hog), "totalHealth")
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1736
		setTeamValue(GetHogTeamName(hog), "totalHealth", h + GetHealth(hog))
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1737
	end, team)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1738
end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1739
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1740
-- Check if the ABL or KTL rule (if active) has been violated by teamToCheck
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1741
function CheckAttackRuleViolation(teamToCheck)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1742
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1743
	if teamToCheck == nil then return end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1744
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1745
	local violated = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1746
	if attackRule == "ABL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1747
		-- We don't care if the last team hurts itself
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1748
		if lastTeam ~= nil and lastTeam ~= teamToCheck then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1749
			local lastAttacked = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1750
			local attackNum = 0	-- count the attacked teams but we'll ignore the attacking team
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1751
			for team, wasAttacked in pairs(teamsAttacked) do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1752
				-- Ignore the attacking team
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1753
				if team ~= teamToCheck then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1754
					attackNum = attackNum + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1755
					if team == lastTeam then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1756
						lastAttacked = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1757
					end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1758
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1759
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1760
			-- Rule is violated iff only the last team is attacked (damage to attacking team is ignored)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1761
			if attackNum == 1 and lastAttacked then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1762
				violated = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1763
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1764
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1765
		if violated then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1766
			AddCaption(string.format(loc("%s violated the “All But Last” rule and will be penalized."), teamToCheck), msgColorWarn, capgrpGameState)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1767
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1768
	elseif attackRule == "KTL" then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1769
		local leaderAttacked = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1770
		if leaderTeam ~= nil then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1771
			local attackNum = 0
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1772
			local selfHarm = false
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1773
			for team, wasAttacked in pairs(teamsAttacked) do
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1774
				attackNum = attackNum + 1
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1775
				if team == teamToCheck then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1776
					selfHarm = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1777
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1778
				-- The leader must attack the runner-up, everyone else must attack the leader
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1779
				if (teamToCheck ~= leaderTeam and team == leaderTeam) or (teamToCheck == leaderTeam and team == runnerUpTeam) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1780
					leaderAttacked = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1781
					break
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1782
				end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1783
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1784
			-- If teams were attacked but not the leader, it is a violation,
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1785
			-- but we don't care if the team *only* harmed itself.
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1786
			if (attackNum >= 2 and not leaderAttacked) or (attackNum == 1 and not selfHarm and not leaderAttacked) then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1787
				violated = true
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1788
			end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1789
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1790
		if violated then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1791
			AddCaption(string.format(loc("%s violated the “Kill The Leader” rule and will be penalized."), teamToCheck), msgColorWarn, capgrpGameState)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1792
		end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1793
	end
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1794
	if violated then
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1795
		setTeamValue(teamToCheck, "skipPenalty", true)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1796
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1797
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1798
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1799
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1800
function onAmmoStoreInit()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1801
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1802
	for i, w in pairs(ropeWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1803
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1804
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1805
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1806
    for i, w in pairs(groundWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1807
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1808
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1809
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1810
    for i, w in pairs(crazyWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1811
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1812
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1813
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1814
	SetAmmo(amRope, 9, 0, 0, 0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1815
	SetAmmo(amSkip, 9, 0, 0, 0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1816
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1817
end