share/hedgewars/Data/Scripts/Multiplayer/WxW.lua
author Wuzzy <Wuzzy2@mail.ru>
Fri, 14 Jun 2019 17:21:05 +0200
changeset 15158 651c1737be2a
parent 15089 6f51c75994a4
child 15220 b0ed2b17c0cf
permissions -rw-r--r--
WxW, Racer: Make bots skip/auto-confirm setup phase
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
13512
36f3f77e9b1b Switch from http:// to https:// URLs where possible
Wuzzy <Wuzzy2@mail.ru>
parents: 13468
diff changeset
     9
-- wall suggestions on our forum at: https://www.hedgewars.org/forum
7095
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},
12232
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   341
	{"Octoropisloppaking0.4",		true,   true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   342
	{"Pacman_v2",       			true,   false, true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   343
	{"Purple",       			false, 	true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   344
	{"Purple_v2",       			false, 	true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   345
	{"RacerPlayground1",			false,  true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   346
	{"RacerPlayground2",			false,  true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   347
	{"RacerPlayground3",			false,  true,  true},
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   348
	{"RacerPlayground4",			false,  true,  true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   349
	{"red vs blue - Castle",     		true, 	false, true},
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   350
	{"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
   351
	{"red vs blue - True Shoppa Sky",	true,	false, true},
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   352
	{"Ropes",       			false, 	true, 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
   353
	{"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
   354
	{"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
   355
	{"Ropes Rearranged",      		false, 	false, true},
12232
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   356
	{"RopesRevenge0.1",    			false, 	true,  true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   357
	{"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
   358
	{"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
   359
	{"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
   360
	{"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
   361
	{"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
   362
	{"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
   363
	{"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
   364
	{"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
   365
	{"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
   366
	{"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
   367
	{"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
   368
	{"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
   369
	{"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
   370
	{"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
   371
	{"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
   372
	{"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
   373
	{"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
   374
	{"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
   375
	{"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
   376
	{"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
   377
	{"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
   378
	{"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
   379
	{"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
   380
	{"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
   381
	{"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
   382
	{"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
   383
	{"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
   384
	{"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
   385
	{"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
   386
	{"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
   387
	{"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
   388
	{"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
   389
	{"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
   390
	{"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
   391
	{"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
   392
	{"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
   393
	{"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
   394
	{"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
   395
	{"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
   396
	{"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
   397
	{"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
   398
	{"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
   399
	{"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
   400
	{"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
   401
	{"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
   402
	{"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
   403
	{"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
   404
	{"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
   405
	{"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
   406
	{"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
   407
	{"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
   408
	{"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
   409
	{"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
   410
	{"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
   411
	{"SpartanShoppa",       		false, 	true,  true},
12232
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   412
	{"TERRORmap",				false,  false,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
   413
	{"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
   414
	{"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
   415
	{"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
   416
	{"TrickyShoppa",      			false, 	true, false},
12232
6bf9229c5c1f Add a few more maps to the WxW Shoppa map list
Wuzzy <almikes@aol.com>
parents: 12071
diff changeset
   417
	{"Towers",      			false, 	true,  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
   418
	{"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
   419
	{"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
   420
	{"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
   421
	{"2Cshoppa",      			true, 	false, true},
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   422
	}
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   423
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
   424
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
   425
	{ 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
   426
	{ 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
   427
	{ 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
   428
	{ 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
   429
	{ 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
   430
	{ 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
   431
	{ 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
   432
}
7df7c58ea965 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
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
   434
	{ 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
   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
7df7c58ea965 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
-- 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
   438
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
   439
	["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
   440
	["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
   441
	["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
   442
	["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
   443
	["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
   444
		{ 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
   445
		{ 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
   446
	},
7df7c58ea965 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
	["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
   448
		{ 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
   449
		{ 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
   450
		{ 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
   451
		{ 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
   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
	["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
   454
		{ 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
   455
	},
7df7c58ea965 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
	["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
   457
	["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
   458
	["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
   459
		{ 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
   460
		{ 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
   461
		{ 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
   462
		{ 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
   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
	["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
   465
		{ 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
   466
		{ 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
   467
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   468
	["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
   469
		{ 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
   470
		{ 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
   471
	},
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   472
	["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
   473
		{ 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
   474
	},
7df7c58ea965 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
}
7df7c58ea965 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
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   477
function BoolToCfgTxt(p)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   478
	if p == false then
11301
fa18940f290d - Rus localization for following game styles:
antonc27 <antonc27@mail.ru>
parents: 10670
diff changeset
   479
		return loc("Disabled")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   480
	else
11301
fa18940f290d - Rus localization for following game styles:
antonc27 <antonc27@mail.ru>
parents: 10670
diff changeset
   481
		return loc("Enabled")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   482
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   483
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   484
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
   485
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
   486
	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
   487
		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
   488
	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
   489
		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
   490
	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
   491
		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
   492
	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
   493
		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
   494
	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
   495
end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   496
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
   497
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
   498
	-- 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
   499
	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
   500
		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
   501
		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
   502
			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
   503
		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
   504
		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
   505
			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
   506
		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
   507
		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
   508
			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
   509
		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
   510
	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
   511
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
   512
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   513
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
   514
	mapID = nil
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   515
	margin = 20
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   516
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   517
	--0.9.18+
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   518
	for i = 1, #MapList do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   519
		if Map == MapList[i][1] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   520
			mapID = i
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   521
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   522
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   523
12068
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   524
	-- Border conditions
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   525
	-- Just a wrapper for MapHasBorder()
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   526
	local border = MapHasBorder() == true
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   527
	-- Left and right walls are available
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   528
	local leftRight = (WorldEdge == weBounce) or (WorldEdge == weNone and border)
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   529
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
   530
	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
   531
12068
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   532
	local startY, height
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   533
	if (not border) and (WorldEdge == weBounce) then
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   534
		-- Higher left/right walls for bouncy world edge without roof
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   535
		local h = math.max(1024, LAND_HEIGHT)
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   536
		height = h * 2
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   537
		startY = TopY - h
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   538
	else
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   539
		-- Standard left/right wall height
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   540
		height = WaterLine
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   541
		startY = TopY + 10
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   542
	end
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   543
	left = {LeftX+10, startY, margin, height}
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   544
	right = {RightX-10-margin, startY, margin, height}
e2be2e6cf544 WxW: Increase wall height of left/right walls with bounce edge and no border
Wuzzy <almikes@aol.com>
parents: 12067
diff changeset
   545
	roof = {LeftX+10, TopY+10, RightX-LeftX-20, margin}
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   546
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   547
	if mapID ~= nil then
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   548
		if border and MapList[mapID][3] == true then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   549
			NewWallSet({roof, desc=loc("Roof")}, "roof")
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   550
			wallSetID = #wallSets
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   551
		end
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   552
		if leftRight and MapList[mapID][4] == true then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   553
			NewWallSet({left, right, desc=loc("Left and right")}, "leftright")
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   554
			wallSetID = #wallSets
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   555
		end
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   556
		if leftRight and border and MapList[mapID][3] == true and MapList[mapID][4] == true then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   557
			NewWallSet({left, right, roof, desc=loc("Left, right and roof")}, "leftrightroof")
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   558
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   559
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   560
		-- 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
   561
		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
   562
			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
   563
			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
   564
			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
   565
			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
   566
7df7c58ea965 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
			-- 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
   568
			-- 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
   569
			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
   570
				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
   571
					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
   572
				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
   573
					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
   574
				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
   575
				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
   576
					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
   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
				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
   579
				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
   580
				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
   581
			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
   582
			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
   583
				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
   584
				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
   585
					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
   586
					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
   587
						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
   588
					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
   589
					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
   590
					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
   591
					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
   592
					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
   593
						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
   594
					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
   595
				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
   596
				local newwallset = {}
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   597
				if border and leftRight and walls.add == "all" then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   598
					table.insert(newwallset, roof)
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   599
					table.insert(newwallset, left)
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   600
					table.insert(newwallset, right)
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   601
				elseif walls.add == "default" then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   602
					if border and MapList[mapID][3] == 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
   603
						table.insert(newwallset, roof)
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   604
					end
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   605
					if leftRight and MapList[mapID][4] == 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
   606
						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
   607
						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
   608
					end
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   609
				elseif border and walls.add == "roof" then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   610
					table.insert(newwallset, roof)
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   611
				elseif leftRight and walls.add == "leftright" then
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   612
					table.insert(newwallset, left)
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   613
					table.insert(newwallset, right)
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
   614
				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
   615
				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
   616
					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
   617
				end
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   618
				if border and leftRight and ((walls.add ~= "none" and walls.add ~= nil) or walls.needsborder ~= 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
   619
					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
   620
					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
   621
					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
   622
				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
   623
				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
   624
					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
   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
			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
   627
		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
   628
7df7c58ea965 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
	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
   630
		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
   631
			NewWallSet({roof, desc=loc("Roof")}, "roof")
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   632
			wallSetID = #wallSets
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   633
		end
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   634
		if leftRight 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
   635
			NewWallSet({left, right, desc=loc("Left and right")}, "leftright")
12067
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   636
			wallSetID = #wallSets
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   637
		end
18677a537d58 Add WorldEdge support for WxW
Wuzzy <almikes@aol.com>
parents: 12065
diff changeset
   638
		if leftRight and border 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
   639
			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
   640
		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
   641
	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
   642
7df7c58ea965 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
	-- 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
   644
	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
   645
		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
   646
	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
   647
	-- 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
   648
	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
   649
		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
   650
	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
   651
	-- 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
   652
	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
   653
		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
   654
	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
   655
7df7c58ea965 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 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
   657
		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
   658
	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
   659
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
   660
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   661
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
   662
	ClearWalls()
12071
ecad5b4e56d9 WxW: Remove old compability code which caused problems with unknown maps
Wuzzy <almikes@aol.com>
parents: 12070
diff changeset
   663
	if p > 0 then
ecad5b4e56d9 WxW: Remove old compability code which caused problems with unknown maps
Wuzzy <almikes@aol.com>
parents: 12070
diff changeset
   664
		local walls = wallSets[p]
ecad5b4e56d9 WxW: Remove old compability code which caused problems with unknown maps
Wuzzy <almikes@aol.com>
parents: 12070
diff changeset
   665
		for i=1,#walls do
ecad5b4e56d9 WxW: Remove old compability code which caused problems with unknown maps
Wuzzy <almikes@aol.com>
parents: 12070
diff changeset
   666
			AddWall(walls[i][1], walls[i][2], walls[i][3], walls[i][4])
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
   667
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   668
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   669
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   670
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   671
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   672
function AddWall(zXMin,zYMin, zWidth, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   673
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   674
	table.insert(wX, zXMin)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   675
	table.insert(wY, zYMin)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   676
	table.insert(wWidth, zWidth)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   677
	table.insert(wHeight, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   678
	table.insert(wTouched, false)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   679
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   680
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   681
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
   682
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
   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
	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
   685
	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
   686
	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
   687
	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
   688
	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
   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
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
   691
7df7c58ea965 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
-- Draw a single point for the crate radar
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   693
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
   694
	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
   695
		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
   696
	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
   697
7df7c58ea965 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
	local baseColor, radius, alpha
14792
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   699
	if CurrentHedgehog == nil or band(GetState(CurrentHedgehog), gstHHDriven) == 0 then
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   700
		radius = 40
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   701
		baseColor = 0xFFFFFFFF
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   702
		alpha = 255
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   703
	elseif getGearValue(gear, "frozen") 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
   704
		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
   705
		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
   706
		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
   707
	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
   708
		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
   709
		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
   710
		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
   711
	end
13687
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
   712
	if getGearValue(gear,"CIRC") ~= nil then
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
   713
		SetVisualGearValues(getGearValue(gear,"CIRC"), getGearValue(gear,"RX"), getGearValue(gear,"RY"), 100, 255, 1, 10, 0, radius, 3, baseColor-alpha)
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
   714
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   715
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   716
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   717
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
   718
	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
   719
		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
   720
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   721
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   722
	-- work out the distance to the target
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   723
	g1X, g1Y = GetGearPosition(CurrentHedgehog)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   724
	g2X, g2Y = GetX(gear), GetY(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   725
	q = g1X - g2X
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   726
	w = g1Y - g2Y
14832
d65e25e211d4 Add integerSqrt and integerHypotenuse to Utils lib
Wuzzy <Wuzzy2@mail.ru>
parents: 14794
diff changeset
   727
	-- Floating point operations are safe, it's only for visuals
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   728
	r = math.sqrt( (q*q) + (w*w) )	--alternate
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   729
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   730
	RCX = getGearValue(gear,"RX")
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   731
	RCY = getGearValue(gear,"RY")
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   732
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   733
	rCircDistance = r -- distance to circle
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   734
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   735
	opp = w
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   736
	if opp < 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   737
		opp = opp*-1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   738
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   739
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   740
	-- work out the angle (theta) to the target
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   741
	t = math.deg ( math.asin(opp / r) )
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   742
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   743
	-- based on the radius of the radar, calculate what x/y displacement should be
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   744
	NR = 150 -- radius at which to draw circs
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   745
	NX = math.cos( math.rad(t) ) * NR
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   746
	NY = math.sin( math.rad(t) ) * NR
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   747
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   748
	if rCircDistance < NR then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   749
		RCX = g2X
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   750
	elseif q > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   751
		RCX = g1X - NX
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   752
	else
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   753
		RCX = g1X + NX
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   754
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   755
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   756
	if rCircDistance < NR then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   757
		RCY = g2Y
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   758
	elseif w > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   759
		RCY = g1Y - NY
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   760
	else
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   761
		RCY = g1Y + NY
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   762
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   763
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   764
	setGearValue(gear, "RX", RCX)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   765
	setGearValue(gear, "RY", RCY)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   766
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   767
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   768
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   769
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   770
function HandleCircles()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   771
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
	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
   773
		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
   774
	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
   775
		-- 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
   776
		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
   777
			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
   778
			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
   779
				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
   780
	
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   781
				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
   782
				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
   783
					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
   784
				end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   785
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   786
		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
   787
	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
   788
		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
   789
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   790
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   791
	runOnGears(DrawBlip)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   792
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   793
	m2Count = m2Count + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   794
	if m2Count == 25 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   795
		m2Count = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   796
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   797
		if (CurrentHedgehog ~= nil) and (rAlpha ~= 255) then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   798
			runOnGears(TrackRadarBlip)
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
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   802
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   803
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   804
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
   805
-- 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
   806
function AreCratesUnlocked()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   807
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
   808
	local crateSpawn = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   809
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   810
	if requireSurfer == true then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   811
		if hasSurfed == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   812
			crateSpawn = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   813
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   814
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   815
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   816
	if #wTouched > 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   817
		if allWallsHit == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   818
			crateSpawn = false
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   819
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   820
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   821
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
   822
	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
   823
7df7c58ea965 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
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
   825
7df7c58ea965 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
-- 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
   827
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
   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
	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
   830
	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
   831
		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
   832
		-- 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
   833
		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
   834
			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
   835
			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
   836
			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
   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
	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
   839
	-- 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
   840
	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
   841
		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
   842
	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
   843
7df7c58ea965 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
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
   845
7df7c58ea965 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
-- 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
   847
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
   848
7df7c58ea965 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
	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
   850
		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
   851
		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
   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
7df7c58ea965 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
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
   855
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   856
function onCaseDrop()
14794
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   857
	local crates
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   858
	if roundN == 100 then
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   859
		allowCrate = crateGearsInGame < maxCrates
14794
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   860
		crates = CheckCrateConditions()
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   861
	end
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   862
	if type(crates) == "table" and #crates > 0 and CurrentHedgehog then
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   863
		PlaySound(sndReinforce, CurrentHedgehog)
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   864
	end
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   865
end
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   866
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
   867
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
   868
7df7c58ea965 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
	local crateSpawn = AreCratesUnlocked()
14794
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   870
	local crates = {}
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
   871
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   872
	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
   873
		UnfreezeCrates()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   874
		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
   875
			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
   876
			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
   877
			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
   878
				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
   879
			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
   880
			for i=1,toSpawn do
14794
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   881
				table.insert(crates, SpawnSupplyCrate(0, 0, weapons[1+GetRandom(#weapons)]))
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
   882
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   883
			rPingTimer = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   884
			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
   885
			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
   886
				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
   887
			end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   888
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   889
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   890
14794
a9f32ff53389 WxW: Play taunt if crate spawns between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14793
diff changeset
   891
	return crates
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   892
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   893
10670
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   894
function onGearWaterSkip(gear)
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   895
	if gear == CurrentHedgehog then
638af9cb922b make use of onGearWaterSkip
mikade <redgrinner@gmail.com>
parents: 10036
diff changeset
   896
		hasSurfed = true
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13512
diff changeset
   897
		AddCaption(loc("Surfer!"), capcolDefault, capgrpMessage2)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   898
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   899
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   900
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   901
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   902
function WallHit(id, zXMin,zYMin, zWidth, zHeight)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   903
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   904
	if wTouched[id] == false then
13685
09ea1faf97ca Remove calls to GetVisualGearValues where it's not needed
Wuzzy <Wuzzy2@mail.ru>
parents: 13643
diff changeset
   905
		AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   906
		PlaySound(sndExplosion)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   907
		wallsLeft = wallsLeft - 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   908
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   909
		if wallsLeft == 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   910
			AddCaption(loc("All walls touched!"))
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   911
			allWallsHit = true
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   912
			if (requireSurfer == true) and (hasSurfed == false) then
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13512
diff changeset
   913
				AddCaption(loc("Go surf!"), capcolDefault, capgrpMessage2)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   914
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   915
		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
   916
			AddCaption(string.format(loc("Walls left: %d"), wallsLeft))
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   917
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   918
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
	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
   922
	if #wTouched > 0 then
13685
09ea1faf97ca Remove calls to GetVisualGearValues where it's not needed
Wuzzy <Wuzzy2@mail.ru>
parents: 13643
diff changeset
   923
		AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtSmoke, 0, 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
   924
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   925
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   926
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   927
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   928
function CheckForWallCollision()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   929
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   930
	for i = 1, #wTouched do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   931
		if gearIsInBox(CurrentHedgehog, wX[i],wY[i],wWidth[i],wHeight[i]) then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   932
			WallHit(i, wX[i],wY[i],wWidth[i],wHeight[i])
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   933
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   934
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   935
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
function BorderSpark(zXMin,zYMin, zWidth, zHeight, bCol)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   939
12070
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   940
	local size = zWidth * zHeight
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   941
	-- Add multiple sparks for very large walls
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   942
	sparkRuns = math.min(10, math.max(1, div(size, 10240)))
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   943
	for i=1, sparkRuns do
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   944
		local eX = zXMin + GetRandom(zWidth+10)
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   945
		local eY = zYMin + GetRandom(zHeight+10)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   946
12070
03ba438dd597 Tweak WxW wall spark count according to wall size
Wuzzy <almikes@aol.com>
parents: 12069
diff changeset
   947
		local tempE = AddVisualGear(eX, eY, vgtDust, 0, false)
13685
09ea1faf97ca Remove calls to GetVisualGearValues where it's not needed
Wuzzy <Wuzzy2@mail.ru>
parents: 13643
diff changeset
   948
		SetVisualGearValues(tempE, eX, eY, nil, nil, nil, nil, nil, 1, nil, bCol )
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   949
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   950
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   951
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   952
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   953
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   954
function HandleBorderEffects()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   955
14792
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
   956
	if CurrentHedgehog == nil or band(GetState(CurrentHedgehog), gstHHDriven) == 0 then
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   957
		return
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
   958
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   959
	effectTimer = effectTimer + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   960
	if effectTimer > 15 then --25
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   961
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   962
		effectTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   963
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   964
		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
   965
			if wTouched[i] == false then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   966
				bCol = GetClanColor(GetHogClan(CurrentHedgehog))
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   967
				BorderSpark(wX[i],wY[i],wWidth[i],wHeight[i], bCol)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   968
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   969
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   970
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   971
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   972
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   973
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   974
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
   975
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
   976
	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
   977
	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
   978
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
   979
15158
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
   980
function AcceptConfiguration()
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
   981
	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
   982
		PlaySound(sndPlaced)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
   983
		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
   984
		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
   985
		if GetGameFlag(gfPlaceHog) then
13742
2bb7141496a9 Use SetTurnTimeLeft and SetReadyTimeLeft in all scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13687
diff changeset
   986
			SetTurnTimeLeft(PlacementTime)
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
   987
			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
   988
			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
   989
			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
   990
				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
   991
				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
   992
				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
   993
			)
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
   994
			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
   995
		else
13742
2bb7141496a9 Use SetTurnTimeLeft and SetReadyTimeLeft in all scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13687
diff changeset
   996
			SetTurnTimeLeft(TurnTime)
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13512
diff changeset
   997
			AddCaption(string.format(loc("Let's go, %s!"), GetHogTeamName(CurrentHedgehog)), capcolDefault, capgrpMessage2)
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
   998
			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
   999
			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
  1000
			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
  1001
		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
  1002
		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
  1003
		FinalizeMenu()
15158
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1004
	end
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1005
end
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1006
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1007
function onLJump()
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1008
	if roundN == 1 then
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1009
		AcceptConfiguration()
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
  1010
	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
  1011
		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
  1012
	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
  1013
		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
  1014
			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
  1015
				(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
  1016
				(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
  1017
				(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
  1018
			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
  1019
				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
  1020
				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
  1021
			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
  1022
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1023
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1024
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1025
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1026
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
  1027
	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
  1028
		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
  1029
			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
  1030
		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
  1031
			menu[menuIndex].doNext()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1032
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1033
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1034
		UpdateMenu()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1035
		configureWeapons()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1036
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1037
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
  1038
		PlaySound(sndSwitchHog)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1039
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
  1040
	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
  1041
		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
  1042
			PlaceWarn()
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1043
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1044
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
  1045
	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
  1046
		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
  1047
			(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
  1048
			(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
  1049
			(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
  1050
7df7c58ea965 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 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
  1052
			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
  1053
				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
  1054
				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
  1055
			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
  1056
				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
  1057
				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
  1058
			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
  1059
				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
  1060
				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
  1061
			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
  1062
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1063
	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
  1064
end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1065
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
  1066
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
  1067
	-- 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
  1068
	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
  1069
		-- 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
  1070
		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
  1071
		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
  1072
			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
  1073
		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
  1074
		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
  1075
		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
  1076
			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
  1077
		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
  1078
			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
  1079
		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
  1080
			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
  1081
		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
  1082
		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
  1083
		-- 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
  1084
		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
  1085
	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
  1086
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
  1087
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1088
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
  1089
	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
  1090
		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
  1091
			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
  1092
		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
  1093
			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
  1094
		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
  1095
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1096
		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
  1097
		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
  1098
		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
  1099
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1100
		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
  1101
	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
  1102
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
  1103
7df7c58ea965 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
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
  1105
	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
  1106
		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
  1107
			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
  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
			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
  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
7df7c58ea965 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
		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
  1113
		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
  1114
		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
  1115
7df7c58ea965 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
		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
  1117
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1118
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1119
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1120
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
  1121
	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
  1122
		PlaySound(sndSteps)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1123
		menuIndex = menuIndex +1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1124
		if menuIndex > #menu then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1125
			menuIndex = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1126
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1127
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1128
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1129
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1130
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1131
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
  1132
	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
  1133
		PlaySound(sndSteps)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1134
		menuIndex = menuIndex -1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1135
		if 	menuIndex == 0 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1136
			menuIndex = #menu
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1137
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1138
		HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1139
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1140
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1141
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
  1142
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
  1143
	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
  1144
		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
  1145
	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
  1146
		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
  1147
	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
  1148
		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
  1149
	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
  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
7df7c58ea965 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
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
  1153
	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
  1154
	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
  1155
		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
  1156
	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
  1157
	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
  1158
		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
  1159
	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
  1160
	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
  1161
		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
  1162
	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
  1163
	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
  1164
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
  1165
7df7c58ea965 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
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
  1167
	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
  1168
	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
  1169
	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
  1170
	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
  1171
	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
  1172
	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
  1173
	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
  1174
		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
  1175
	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
  1176
		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
  1177
	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
  1178
	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
  1179
	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
  1180
	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
  1181
	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
  1182
	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
  1183
	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
  1184
		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
  1185
			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
  1186
			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
  1187
			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
  1188
				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
  1189
			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
  1190
		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
  1191
			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
  1192
			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
  1193
		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
  1194
			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
  1195
			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
  1196
			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
  1197
			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
  1198
				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
  1199
			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
  1200
			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
  1201
				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
  1202
					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
  1203
						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
  1204
					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
  1205
				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
  1206
			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
  1207
		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
  1208
	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
  1209
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1210
	-- 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
  1211
	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
  1212
	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
  1213
		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
  1214
	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
  1215
	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
  1216
	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
  1217
	-- 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
  1218
	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
  1219
	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
  1220
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
  1221
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1222
function onGameInit()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1223
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1224
	HealthCaseProb = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1225
	CaseFreq = 0
12069
b2f2ac53cbab WxW: Add crate radar info to rope description
Wuzzy <almikes@aol.com>
parents: 12068
diff changeset
  1226
	SetAmmoDescriptionAppendix(amRope, loc("Switch: Toggle crate radar"))
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1227
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1228
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1229
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1230
function configureWeapons()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1231
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1232
	-- reset wep array
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1233
	for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1234
		weapons[i] = nil
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1235
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1236
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1237
	-- add rope weps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1238
	for i, w in pairs(ropeWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1239
        table.insert(weapons, w)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1240
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1241
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1242
	-- add ground weps
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1243
	for i, w in pairs(groundWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1244
        table.insert(weapons, w)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1245
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1246
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1247
	-- remove ground weps if attacking from rope is mandatory
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1248
	if AFR == true then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1249
		for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1250
			for w = 1, #groundWeps do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1251
				if groundWeps[w] == weapons[i] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1252
					table.remove(weapons, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1253
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1254
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1255
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1256
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1257
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1258
	-- remove crazy weps is crazy weps aren't allowed
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1259
	if allowCrazyWeps == false then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1260
		for i = 1, #weapons do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1261
			for w = 1, #crazyWeps do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1262
				if crazyWeps[w] == weapons[i] then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1263
					table.remove(weapons, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1264
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1265
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1266
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1267
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1268
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1269
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1270
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1271
function onGameStart()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1272
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
  1273
	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
  1274
7df7c58ea965 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
	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
  1276
	LoadConfig(wallSetID)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1277
	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
  1278
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1279
	-- 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
  1280
	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
  1281
		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
  1282
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1283
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
  1284
	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
  1285
		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
  1286
		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
  1287
	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
  1288
		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
  1289
			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
  1290
			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
  1291
		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
  1292
			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
  1293
			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
  1294
			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
  1295
		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
  1296
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1297
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1298
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1299
function onEndTurn()
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1300
	crateSpawned = false
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1301
	crateCollected = false
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1302
	wallsLeft = #wTouched
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1303
	for i = 1, #wTouched do
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1304
		wTouched[i] = false
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1305
	end
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1306
	hasSurfed = false
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1307
	allWallsHit = false
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1308
end
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1309
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1310
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
  1311
	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
  1312
7df7c58ea965 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
	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
  1314
		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
  1315
	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
  1316
7df7c58ea965 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
	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
  1318
		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
  1319
			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
  1320
			AddAmmo(CurrentHedgehog, amTeleport, 0)
13752
110d6c1e817f Lua: Rename globals: NoPointX→NO_CURSOR, cMaxTurnTime→MAX_TURN_TIME, cMaxHogHealth→MAX_HOG_HEALTH
Wuzzy <Wuzzy2@mail.ru>
parents: 13742
diff changeset
  1321
			SetTurnTimeLeft(MAX_TURN_TIME)
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
  1322
			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
  1323
		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
  1324
		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
  1325
			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
  1326
				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
  1327
			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
  1328
		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
  1329
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1330
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
  1331
	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
  1332
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1333
		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
  1334
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1335
		-- 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
  1336
		radarMode = getTeamValue(teamName, "radarMode")
14792
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1337
		if radarMode == nil then
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1338
			radarMode = 0
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1339
		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
  1340
7df7c58ea965 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
		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
  1342
			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
  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
7df7c58ea965 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
		-- 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
  1346
		-- 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
  1347
		CheckAttackRuleViolation(previousTeam)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1348
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
  1349
		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
  1350
7df7c58ea965 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
		-- 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
  1352
		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
  1353
		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
  1354
7df7c58ea965 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
		-- 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
  1356
		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
  1357
			-- Then take away this turn
12287
faf1b93422ba Use new EndTurn in a couple of scripts, esp. to fix timeout taunts in Racer
Wuzzy <almikes@aol.com>
parents: 12232
diff changeset
  1358
			AddCaption(string.format(loc("%s must skip this turn for rule violation."), teamName), msgColorWarn, capgrpMessage)
faf1b93422ba Use new EndTurn in a couple of scripts, esp. to fix timeout taunts in Racer
Wuzzy <almikes@aol.com>
parents: 12232
diff changeset
  1359
			EndTurn(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
  1360
			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
  1361
		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
  1362
7df7c58ea965 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
	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
  1364
7df7c58ea965 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
	if roundN == 1 then
13752
110d6c1e817f Lua: Rename globals: NoPointX→NO_CURSOR, cMaxTurnTime→MAX_TURN_TIME, cMaxHogHealth→MAX_HOG_HEALTH
Wuzzy <Wuzzy2@mail.ru>
parents: 13742
diff changeset
  1366
		SetTurnTimeLeft(MAX_TURN_TIME)
7183
95dc11d648fb tidy flags
nemo
parents: 7095
diff changeset
  1367
		SetInputMask(0)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1368
		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
  1369
		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
  1370
		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
  1371
		HandleStartingStage()
15158
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1372
		if GetHogLevel(CurrentHedgehog) ~= 0 then
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1373
			AcceptConfiguration()
651c1737be2a WxW, Racer: Make bots skip/auto-confirm setup phase
Wuzzy <Wuzzy2@mail.ru>
parents: 15089
diff changeset
  1374
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1375
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1376
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1377
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1378
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
  1379
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
  1380
	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
  1381
		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
  1382
			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
  1383
		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
  1384
			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
  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
	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
  1387
		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
  1388
	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
  1389
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
  1390
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1391
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
  1392
	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
  1393
	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
  1394
		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
  1395
	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
  1396
		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
  1397
	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
  1398
	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
  1399
			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
  1400
	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
  1401
		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
  1402
	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
  1403
		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
  1404
	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
  1405
7df7c58ea965 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
	-- 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
  1407
	menu = {}
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1408
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
  1409
	-- 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
  1410
	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
  1411
		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
  1412
		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
  1413
			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
  1414
				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
  1415
			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
  1416
				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
  1417
			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
  1418
		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
  1419
			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
  1420
		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
  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 = 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
  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
				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
  1425
				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
  1426
					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
  1427
				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
  1428
				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
  1429
			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
  1430
			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
  1431
				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
  1432
				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
  1433
					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
  1434
				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
  1435
				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
  1436
			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
  1437
		})
7df7c58ea965 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
	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
  1439
7df7c58ea965 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
	-- 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
  1441
	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
  1442
		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
  1443
		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
  1444
			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
  1445
			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
  1446
		})
7df7c58ea965 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
	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
	-- 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
  1450
	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
  1451
		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
  1452
		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
  1453
	})
7df7c58ea965 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
7df7c58ea965 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
	-- 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
  1456
	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
  1457
		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
  1458
		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
  1459
	})
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1460
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
  1461
	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
  1462
		-- 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
  1463
		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
  1464
			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
  1465
			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
  1466
				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
  1467
					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
  1468
				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
  1469
					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
  1470
				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
  1471
					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
  1472
				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
  1473
			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
  1474
			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
  1475
				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
  1476
					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
  1477
				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
  1478
					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
  1479
				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
  1480
					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
  1481
				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
  1482
			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
  1483
		})
7df7c58ea965 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
	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
  1485
7df7c58ea965 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
	-- 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
  1487
	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
  1488
		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
  1489
		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
  1490
	})
7df7c58ea965 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
7df7c58ea965 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
	-- 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
  1493
	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
  1494
		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
  1495
			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
  1496
			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
  1497
				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
  1498
				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
  1499
					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
  1500
				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
  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
			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
  1503
				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
  1504
				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
  1505
					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
  1506
				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
  1507
			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
  1508
		})
7df7c58ea965 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
	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
  1510
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
  1511
7df7c58ea965 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
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
  1513
	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
  1514
	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
  1515
	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
  1516
		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
  1517
	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
  1518
		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
  1519
	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
  1520
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1521
	-- 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
  1522
	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
  1523
		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
  1524
		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
  1525
	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
  1526
	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
  1527
		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
  1528
	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
  1529
7df7c58ea965 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
	-- 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
  1531
	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
  1532
		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
  1533
	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
  1534
		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
  1535
	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
  1536
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1537
	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
  1538
		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
  1539
	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
  1540
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1541
	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
  1542
		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
  1543
	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
  1544
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1545
	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
  1546
		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
  1547
	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
  1548
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1549
	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
  1550
		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
  1551
	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
  1552
		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
  1553
	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
  1554
	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
  1555
		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
  1556
	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
  1557
7df7c58ea965 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 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
  1559
		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
  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
	ShowMission(loc("Wall to wall"), loc("A Shoppa minigame"), text, 1, showTime)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1563
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1564
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1565
function HandleStartingStage()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1566
14003
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1567
	local renderedLines = {}
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1568
	for m = 1, #menu do
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1569
		local marker
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1570
		local line = menu[m].line
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1571
		if m == menuIndex then
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1572
			marker = "▶"
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1573
		else
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1574
			marker = "▷"
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1575
			line = string.gsub(line, ":", "\\:")
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1576
		end
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1577
		table.insert(renderedLines, marker .. " " .. line)
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1578
	end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1579
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1580
	missionComment = ""
14003
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1581
	for l = 1, #renderedLines do
681a53c8b18c Prettify the menu arrows in WxW
Wuzzy <Wuzzy2@mail.ru>
parents: 13752
diff changeset
  1582
		missionComment = missionComment .. renderedLines[l]
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1583
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1584
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1585
	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
  1586
				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
  1587
				loc("Configuration phase"),
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1588
				preMenuCfg..
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1589
				missionComment ..
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1590
				postMenuCfg ..
15089
6f51c75994a4 Semi-standardize usage of icons in many mission panels
Wuzzy <Wuzzy2@mail.ru>
parents: 14832
diff changeset
  1591
				"", 3, 9999000, true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1592
				)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1593
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1594
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1595
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1596
function onGameTick()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1597
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
  1598
	if CurrentHedgehog ~= nil and roundN >= 0 then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1599
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1600
		gTimer = gTimer + 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1601
		if gTimer == 25 then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1602
			gTimer = 1
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1603
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
  1604
			if roundN == 100 then
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1605
				if band(GetState(CurrentHedgehog), gstHHDriven) ~= 0 then
14793
f5dcf47dff2c WxW: Don't register wall touch if not gstHHDriven
Wuzzy <Wuzzy2@mail.ru>
parents: 14792
diff changeset
  1606
					CheckForWallCollision()
14791
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1607
					CheckCrateConditions()
0ee6b01c7f30 WxW: If walls are disabled, spawn crate between turns
Wuzzy <Wuzzy2@mail.ru>
parents: 14003
diff changeset
  1608
				end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1609
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
  1610
				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
  1611
					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
  1612
				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
  1613
				
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1614
				-- 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
  1615
				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
  1616
				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
  1617
				shootException = (GetCurAmmoType() == amRope) or
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1618
					(GetCurAmmoType() == amSkip) or
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1619
					(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
  1620
				-- 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
  1621
				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
  1622
					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
  1623
						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
  1624
					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
  1625
				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
  1626
				-- 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
  1627
				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
  1628
					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
  1629
						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
  1630
					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
  1631
				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
  1632
				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
  1633
					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
  1634
					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
  1635
						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
  1636
					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
  1637
				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
  1638
					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
  1639
						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
  1640
							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
  1641
							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
  1642
						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
  1643
							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
  1644
							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
  1645
						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
  1646
					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
  1647
						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
  1648
					end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1649
				end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1650
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1651
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1652
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1653
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1654
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1655
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1656
14792
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1657
	HandleBorderEffects()
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1658
	HandleCircles()
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1659
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1660
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1661
12624
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1662
local menuRepeatTimer = 0
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1663
function onGameTick20()
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1664
  -- Make sure the menu doesn't disappear while it is active
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1665
  if roundN == 1 then
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1666
    menuRepeatTimer = menuRepeatTimer + 20
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1667
    if menuRepeatTimer > 9990000 then
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1668
      HandleStartingStage()
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1669
      menuRepeatTimer = 0
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1670
    end
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1671
  end
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1672
end
705dde538519 ACF1, fruit01, WxW: Make sure the selection dialogues never disappear on their own
Wuzzy <almikes@aol.com>
parents: 12287
diff changeset
  1673
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1674
function onGearAdd(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1675
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1676
	if GetGearType(gear) == gtRope then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1677
		ropeG = gear
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1678
	elseif GetGearType(gear) == gtCase then
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1679
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
  1680
		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
  1681
		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
  1682
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1683
		trackGear(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1684
13687
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1685
		local vg = AddVisualGear(0, 0, vgtCircle, 0, true)
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1686
		if vg then
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1687
			table.insert(rCirc, vg)
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1688
			setGearValue(gear,"CIRC",vg)
14792
97a36fb44123 WxW: Hide crate radar when no active hog
Wuzzy <Wuzzy2@mail.ru>
parents: 14791
diff changeset
  1689
			SetVisualGearValues(vg, 0, 0, 100, 255, 1, 10, 0, 40, 3, 0x0)
13687
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1690
		end
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1691
		setGearValue(gear,"RX",0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1692
		setGearValue(gear,"RY",0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1693
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1694
		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
  1695
		crateSpawned = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1696
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1697
		rPingTimer = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1698
		rAlpha = 0
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1699
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
  1700
	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
  1701
		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
  1702
		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
  1703
		-- 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
  1704
		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
  1705
		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
  1706
7df7c58ea965 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 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
  1708
			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
  1709
		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
  1710
			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
  1711
		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
  1712
		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
  1713
		teamNames[GetHogTeamName(gear)] = true
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1714
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1715
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1716
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1717
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1718
function onGearDelete(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1719
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
  1720
	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
  1721
	if gt == gtRope then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1722
		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
  1723
	elseif gt == gtCase then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1724
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
  1725
		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
  1726
		crateGearsInGame = crateGearsInGame - 1
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1727
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1728
		for i = 1, #rCirc do
13687
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1729
			local CIRC = getGearValue(gear,"CIRC")
a8b2a5e7e9db Clean up more visual gears stuff in scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13685
diff changeset
  1730
			if CIRC ~= nil and rCirc[i] == CIRC then
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1731
				DeleteVisualGear(rCirc[i])
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1732
				table.remove(rCirc, i)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1733
			end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1734
		end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1735
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1736
		trackDeletion(gear)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1737
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
  1738
		-- 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
  1739
		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
  1740
			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
  1741
		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
  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
	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
  1744
		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
  1745
		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
  1746
		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
  1747
	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
  1748
7df7c58ea965 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
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
  1750
7df7c58ea965 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
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
  1752
7df7c58ea965 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 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
  1754
		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
  1755
	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
  1756
7df7c58ea965 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
7df7c58ea965 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
-- 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
  1760
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
  1761
	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
  1762
7df7c58ea965 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
	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
  1764
		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
  1765
		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
  1766
		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
  1767
			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
  1768
		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
  1769
	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
  1770
7df7c58ea965 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
	-- 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
  1772
	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
  1773
7df7c58ea965 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
	-- 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
  1775
	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
  1776
		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
  1777
			-- 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
  1778
			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
  1779
		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
  1780
			-- 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
  1781
			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
  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
		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
  1784
			-- 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
  1785
			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
  1786
			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
  1787
		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
  1788
			-- 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
  1789
			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
  1790
			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
  1791
		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
  1792
	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
  1793
		-- 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
  1794
		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
  1795
		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
  1796
		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
  1797
	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
  1798
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
  1799
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1800
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
  1801
	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
  1802
	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
  1803
		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
  1804
		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
  1805
		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
  1806
	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
  1807
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
  1808
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1809
-- 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
  1810
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
  1811
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1812
	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
  1813
7df7c58ea965 WxW: Selectable walls, support more maps, more liberal game schemes, new rules, script parameter, better menu
Wuzzy <almikes@aol.com>
parents: 11301
diff changeset
  1814
	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
  1815
	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
  1816
		-- 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
  1817
		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
  1818
			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
  1819
			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
  1820
			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
  1821
				-- 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
  1822
				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
  1823
					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
  1824
					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
  1825
						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
  1826
					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
  1827
				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
  1828
			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
  1829
			-- 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
  1830
			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
  1831
				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
  1832
			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
  1833
		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
  1834
		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
  1835
			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
  1836
		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
  1837
	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
  1838
		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
  1839
		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
  1840
			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
  1841
			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
  1842
			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
  1843
				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
  1844
				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
  1845
					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
  1846
				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
  1847
				-- 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
  1848
				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
  1849
					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
  1850
					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
  1851
				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
  1852
			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
  1853
			-- 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
  1854
			-- 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
  1855
			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
  1856
				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
  1857
			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
  1858
		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
  1859
		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
  1860
			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
  1861
		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
  1862
	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
  1863
	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
  1864
		setTeamValue(teamToCheck, "skipPenalty", true)
7095
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1865
	end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1866
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1867
end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1868
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1869
function onAmmoStoreInit()
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1870
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1871
	for i, w in pairs(ropeWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1872
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1873
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1874
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1875
    for i, w in pairs(groundWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1876
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1877
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1878
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1879
    for i, w in pairs(crazyWeps) do
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1880
        SetAmmo(w, 0, 0, 0, 1)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1881
    end
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1882
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1883
	SetAmmo(amRope, 9, 0, 0, 0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1884
	SetAmmo(amSkip, 9, 0, 0, 0)
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1885
b20dfa82f453 + Trivial update.
mikade <redgrinner@gmail.com>
parents:
diff changeset
  1886
end