share/hedgewars/Data/Scripts/Multiplayer/Battalion.lua
author Wuzzy <Wuzzy2@mail.ru>
Mon, 13 Nov 2017 22:14:45 +0100
changeset 12836 8610462e3d33
parent 12812 59cb9bd8331c
child 12978 8d1bc1de9542
permissions -rwxr-xr-x
Remove 2 unused number tags in Construction Mode GUI These numbers are shown aside the power tag, but the numbers never change. They don't serve any purpose and are just visual clutter and annoying, since they partially overlap. They are probably a leftover from copying code over from other scripts. With this changeset, only the power and turn time are left visible, as it is supposed to.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     1
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     2
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     3
  Name:      Battalion
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     4
  Made by:   Anachron 
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     5
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     6
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     8
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
     9
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    10
  Readme:
12419
6944a9161cdb Update readme link in Battalion script
Wuzzy <almikes@aol.com>
parents: 12418
diff changeset
    11
  https://hedgewars.org/wiki/Battalion
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    13
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    14
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    15
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    16
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    17
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    18
  Todo/Idea-List
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    19
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    20
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    21
  - Make Hogs sorted by rareness for teams with less hogs (more fair)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    22
  - Keep first picked up unused crate utitlity until next round
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    23
  - Ship default scheme but let user overwrite it
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    24
  - Make SuddenDeathWaterRise dynamic
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    25
  - Make SuddenDeathTurns dynamic
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    26
  - Add Hog Variants like Crazy Scientist or Astronaut
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    27
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    28
  ########################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    29
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    30
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    31
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    32
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    33
  ### GENERAL SCRIPT LOADING AND VARIABLE INITIALISATION                     ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    34
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    35
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    36
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    37
HedgewarsScriptLoad("/Scripts/Locale.lua")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    38
HedgewarsScriptLoad("/Scripts/Tracker.lua")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    39
HedgewarsScriptLoad("/Scripts/Params.lua")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    40
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    41
-- List of all hog variants with belonging weapons,
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    42
--  hitpoints, chances and more
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    43
local variants = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    44
local varName = ""
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    45
local newLine = ""--string.char(0x0A)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    46
local gmAny = 0xFFFFFFFF
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    47
local version = "0.33"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    48
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    49
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    50
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    51
  ### VARIANT SETUP                                                          ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    52
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    53
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    54
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    55
varName = "Pyromancer"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    56
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
    57
variants[varName]["name"] = loc("Pyromancer")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    58
variants[varName]["chance"] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    59
variants[varName]["hat"] = "Gasmask"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    60
variants[varName]["hp"] = 70
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    61
variants[varName]["hogLimit"] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    62
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    63
variants[varName]["weapons"] = {amFlamethrower, amMolotov, amWhip}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    64
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    65
variants[varName]["helpers"] = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    66
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    67
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    68
varName = "Builder"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    69
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
    70
variants[varName]["name"] = loc("Builder")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    71
variants[varName]["chance"] = 10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    72
variants[varName]["hat"] = "constructor"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    73
variants[varName]["hp"] = 100
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    74
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    75
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    76
variants[varName]["weapons"] = {amDynamite, amWhip, amHammer}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    77
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    78
variants[varName]["helpers"] = {amGirder, amBlowTorch}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    79
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    80
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    81
varName = "Rifleman"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    82
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
    83
variants[varName]["name"] = loc("Rifleman")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    84
variants[varName]["chance"] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    85
variants[varName]["hat"] = "Sniper"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    86
variants[varName]["hp"] = 70
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    87
variants[varName]["hogLimit"] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    88
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    89
variants[varName]["weapons"] = {amRCPlane, amShotgun, amSniperRifle}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    90
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    91
variants[varName]["helpers"] = {amLowGravity, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    92
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    93
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    94
varName = "Warrior"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    95
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
    96
variants[varName]["name"] = loc("Warrior")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    97
variants[varName]["chance"] = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    98
variants[varName]["hat"] = "spartan"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
    99
variants[varName]["hp"] = 120
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   100
variants[varName]["hogLimit"] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   101
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   102
variants[varName]["weapons"] = {amClusterBomb, amGrenade, amBazooka}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   103
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   104
variants[varName]["helpers"] = {amParachute, amRope}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   105
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   106
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   107
varName = "Chef"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   108
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   109
variants[varName]["name"] = loc("Chef")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   110
variants[varName]["chance"] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   111
variants[varName]["hat"] = "chef"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   112
variants[varName]["hp"] = 70
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   113
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   114
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   115
variants[varName]["weapons"] = {amCake, amKnife, amWhip}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   116
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   117
variants[varName]["helpers"] = {amRubber, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   118
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   119
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   120
varName = "Medic"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   121
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   122
variants[varName]["name"] = loc("Medic")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   123
variants[varName]["chance"] = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   124
variants[varName]["hat"] = "war_desertmedic"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   125
variants[varName]["hp"] = 120
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   126
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   127
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   128
variants[varName]["weapons"] = {amResurrector, amMine, amGasBomb}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   129
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   130
variants[varName]["helpers"] = {amTeleport, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   131
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   132
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   133
varName = "Ninja"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   134
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   135
variants[varName]["name"] = loc("Ninja")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   136
variants[varName]["chance"] = 8
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   137
variants[varName]["hat"] = "NinjaTriangle"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   138
variants[varName]["hp"] = 80
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   139
variants[varName]["hogLimit"] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   140
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   141
variants[varName]["weapons"] = {amSMine, amMine, amFirePunch}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   142
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   143
variants[varName]["helpers"] = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   144
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   145
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   146
varName = "Athlete"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   147
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   148
variants[varName]["name"] = loc("Athlete")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   149
variants[varName]["chance"] = 8
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   150
variants[varName]["hat"] = "footballhelmet"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   151
variants[varName]["hp"] = 80
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   152
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   153
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   154
variants[varName]["weapons"] = {amBaseballBat, amFirePunch, amSeduction}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   155
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   156
variants[varName]["helpers"] = {amRope, amPickHammer}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   157
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   158
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   159
varName = "Scientist"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   160
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   161
variants[varName]["name"] = loc("Scientist")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   162
variants[varName]["chance"] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   163
variants[varName]["hat"] = "doctor"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   164
variants[varName]["hp"] = 80
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   165
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   166
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   167
variants[varName]["weapons"] = {amPortalGun, amSineGun, amIceGun}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   168
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   169
variants[varName]["helpers"] = {amTeleport, amJetpack}  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   170
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   171
12417
f6fc84c55bfa Battalion: Rename “Air-General” to “Air General”
Wuzzy <almikes@aol.com>
parents: 12416
diff changeset
   172
varName = "Air General"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   173
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   174
variants[varName]["name"] = loc("Air General")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   175
variants[varName]["chance"] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   176
variants[varName]["hat"] = "war_desertofficer"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   177
variants[varName]["hp"] = 50
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   178
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   179
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   180
variants[varName]["weapons"] = {amMineStrike, amNapalm, amAirAttack}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   181
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   182
variants[varName]["helpers"] = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   183
variants[varName]["special"] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   184
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   185
varName = "Hunter"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   186
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   187
variants[varName]["name"] = loc("Hunter")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   188
variants[varName]["chance"] = 10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   189
variants[varName]["hat"] = "Skull"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   190
variants[varName]["hp"] = 100
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   191
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   192
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   193
variants[varName]["weapons"] = {amBee, amMortar, amDrill}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   194
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   195
variants[varName]["helpers"] = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   196
variants[varName]["special"] = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   197
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   198
varName = "King"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   199
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   200
variants[varName]["name"] = loc("King")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   201
variants[varName]["chance"] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   202
variants[varName]["hat"] = "crown"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   203
variants[varName]["hp"] = 60
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   204
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   205
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   206
variants[varName]["weapons"] = {amWatermelon, amHellishBomb, amBallgun}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   207
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   208
variants[varName]["helpers"] = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   209
variants[varName]["special"] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   210
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   211
varName = "Knight"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   212
variants[varName] = {}
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   213
variants[varName]["name"] = loc("Knight")
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   214
variants[varName]["chance"] = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   215
variants[varName]["hat"] = "knight"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   216
variants[varName]["hp"] = 80
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   217
variants[varName]["hogLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   218
variants[varName]["weaponLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   219
variants[varName]["weapons"] = {amShotgun, amBazooka, amMine}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   220
variants[varName]["helperLimit"] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   221
variants[varName]["helpers"] = {amParachute, amRope}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   222
variants[varName]["special"] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   223
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   224
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   225
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   226
  ### GENERAL VARIABLES USED FOR GAMEPLAY                                    ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   227
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   228
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   229
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   230
local unused = {amSnowball, amDrillStrike, amTardis}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   231
local lowWeaps = {amKamikaze}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   232
local lowTresh = 25
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   233
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   234
local counter = {} -- Saves how many hogs of a variant a team has
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   235
local group = {} -- Saves randomized variants for all teams
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   236
local teamIndex = {} -- Temporary counter for amount of mutated hogs in team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   237
local teamHogs = {} -- Saves a list of all hogs belonging to a team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   238
local hogCount = {} -- Saves how many hogs a team has
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   239
local teamNames = {} -- Saves all teams and names
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   240
local hogInfo = {} -- Saves all hogs with their original values
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   241
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   242
local LastHog = nil -- Last Hedgehog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   243
local CurHog = nil -- Current Hedgehog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   244
local LastTeam = nil -- Last Team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   245
local CurTeam = nil -- Current Team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   246
local TurnEnded = true -- Boolean whether current turn ended or not
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   247
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   248
local mode = 'default' -- Which game type to play
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   249
local luck = 100 -- Multiplier for bonuses like crates
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   250
local strength = 1 -- Multiplier for more weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   251
local mutate = false -- Whether or not to mutate the hogs
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   252
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   253
local highHasBonusWeps = false -- whether or not a hog got bonus weapons on current turn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   254
local highHasBonusHelp = false -- whether or not a hog got bonus helpers on current turn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   255
local highPickupCount = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   256
local highPickupSDCount = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   257
local highHelperCount = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   258
local highHelperSDCount = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   259
local highEnemyKillHPBonus = 10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   260
local highFriendlyKillHPBonus = 15
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   261
local highWeapons = {} -- Saves the weapons from kills
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   262
local highHelpers = {} -- Saves the helpers from kills
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   263
local highSpecialBonus = {amTeleport, amJetpack}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   264
local highSpecialPool = {amExtraDamage, amVampiric}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   265
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   266
local kingLinkPerc = 50 -- Percentage of life to share from the team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   267
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   268
local pointsWepBase = 5 -- Game start points weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   269
local pointsHlpBase = 2 -- Game start points helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   270
local pointsKeepPerc = 80 -- Percentage of points to take to next round
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   271
local pointsWepTurn = 5 -- Round bonus points weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   272
local pointsHlpTurn = 2 -- Round bonus points helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   273
local pointsWepMax = 25 -- Maximum points for weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   274
local pointsHlpMax = 10 -- Maximum points for helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   275
local pointsKeepSDPerc = 60 -- Percentage of points to take to next round on SD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   276
local pointsWepSDTurn = 7 -- Round bonus points weapons on SD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   277
local pointsHlpSDTurn = 3 -- Round bonus points helpers on SD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   278
local pointsWepSDMax = 35 -- Maximum points for weapons on SD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   279
local pointsHlpSDMax = 15 -- Maximum points for helpers on SD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   280
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   281
local pointsWeaponVal = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   282
pointsWeaponVal[amBazooka] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   283
pointsWeaponVal[amShotgun] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   284
pointsWeaponVal[amFirePunch] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   285
pointsWeaponVal[amMine] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   286
--pointsWeaponVal[amAirAttack] = 10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   287
pointsWeaponVal[amBee] = 6
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   288
pointsWeaponVal[amClusterBomb] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   289
pointsWeaponVal[amGrenade] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   290
pointsWeaponVal[amDEagle] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   291
pointsWeaponVal[amWhip] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   292
pointsWeaponVal[amDynamite] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   293
--pointsWeaponVal[amMineStrike] = 14
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   294
pointsWeaponVal[amMortar] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   295
pointsWeaponVal[amWatermelon] = 30
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   296
pointsWeaponVal[amSniperRifle] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   297
pointsWeaponVal[amBaseballBat] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   298
pointsWeaponVal[amCake] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   299
--pointsWeaponVal[amNapalm] = 11
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   300
pointsWeaponVal[amDrill] = 6
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   301
pointsWeaponVal[amHellishBomb] = 20
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   302
pointsWeaponVal[amSineGun] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   303
--pointsWeaponVal[amKamikaze] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   304
--pointsWeaponVal[amBallgun] = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   305
--pointsWeaponVal[amPianoStrike] = 15
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   306
pointsWeaponVal[amSnowball] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   307
pointsWeaponVal[amMolotov] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   308
pointsWeaponVal[amFlamethrower] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   309
pointsWeaponVal[amRCPlane] = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   310
--pointsWeaponVal[amDrillStrike] = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   311
pointsWeaponVal[amGasBomb] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   312
pointsWeaponVal[amHammer] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   313
pointsWeaponVal[amSMine] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   314
pointsWeaponVal[amAirMine] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   315
pointsWeaponVal[amKnife] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   316
pointsWeaponVal[amPortalGun] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   317
--pointsWeaponVal[amIceGun] = 6
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   318
pointsWeaponVal[amSeduction] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   319
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   320
local pointsHelperVal = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   321
pointsHelperVal[amRope] = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   322
pointsHelperVal[amParachute] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   323
--pointsHelperVal[amGirder] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   324
pointsHelperVal[amBlowTorch] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   325
pointsHelperVal[amLowGravity] = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   326
--pointsHelperVal[amRubber] = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   327
pointsHelperVal[amPickHammer] = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   328
pointsHelperVal[amTeleport] = 10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   329
pointsHelperVal[amJetpack] = 8
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   330
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   331
local pointsPerTeam = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   332
local pointsToWep = {} -- List of [points] = {ammo1, ammo2}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   333
local pointsToHlp = {} -- List of [points] = {ammo1, ammo2}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   334
local wepPoints = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   335
local hlpPoints = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   336
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   337
local suddenDeath = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   338
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   339
local healthCrateChance = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   340
local utilCrateChance = 9
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   341
local weaponCrateChance = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   342
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   343
local healthCrateChanceSD = 12
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   344
local utilCrateChanceSD = 16
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   345
local weaponCrateChanceSD = 21
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   346
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   347
local emptyCrateChance = 7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   348
local bonusCrateChance = 5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   349
local cratePickupGap = 35
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   350
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   351
local utilities = {amInvulnerable, amVampiric, amExtraTime, amExtraDamage, amRope, amLandGun}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   352
local autoSelectHelpers = {amRope, amParachute}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   353
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   354
local LastWaterLine = 0 -- Saves WaterLine to make sure a water rise wont trigger highland kill
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   355
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   356
local helpers = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   357
helpers[amSkip] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   358
helpers[amRope] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   359
helpers[amParachute] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   360
helpers[amBlowTorch] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   361
helpers[amGirder] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   362
helpers[amTeleport] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   363
helpers[amSwitch] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   364
helpers[amJetpack] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   365
helpers[amBirdy] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   366
helpers[amPortalGun] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   367
helpers[amResurrector] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   368
helpers[amTardis] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   369
helpers[amLandGun] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   370
helpers[amRubber] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   371
--helpers[amKamikaze] = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   372
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   373
local posCaseAmmo    = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   374
local posCaseHealth  = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   375
local posCaseUtility = 4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   376
local posCaseDummy   = 8
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   377
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   378
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   379
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   380
  ### GENERAL BONUS LUA FUNCTIONS                                            ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   381
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   382
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   383
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   384
function swap(array, index1, index2)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   385
    array[index1], array[index2] = array[index2], array[index1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   386
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   387
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   388
function shuffle(array)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   389
    local cnt = #array
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   390
    while cnt > 1 do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   391
        local index = GetRandom(cnt) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   392
        swap(array, index, cnt)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   393
        cnt = cnt - 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   394
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   395
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   396
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   397
function table.clone(org)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   398
  local copy = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   399
  for orig_key, orig_value in pairs(org) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   400
      copy[orig_key] = orig_value
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   401
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   402
  return copy
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   403
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   404
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   405
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   406
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   407
  ### WEAPON, UTILITY AND AMMO FUNCTIONS                                     ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   408
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   409
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   410
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   411
function clearHogAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   412
  local lastNum = amRubber
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   413
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   414
  if amAirMine ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   415
    lastNum = amAirMine
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   416
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   417
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   418
  for val=0,lastNum do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   419
    AddAmmo(hog, val, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   420
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   421
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   422
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   423
function autoSelectAmmo(hog, var)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   424
  -- Check if hog has any "useful" helper, select helper, if yes
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   425
  for key, val in pairs(autoSelectHelpers) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   426
    if GetAmmoCount(hog, val) > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   427
      SetWeapon(val)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   428
      return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   429
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   430
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   431
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   432
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   433
function AddHogAmmo(hog, ammo)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   434
  -- Add weapons of variant
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   435
  --for key, val in pairs(variants[var]["weapons"]) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   436
  for key, val in pairs(ammo) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   437
    --AddAmmo(hog, val, 1)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   438
    AddAmmo(hog, val, GetAmmoCount(hog, val) +1)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   439
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   440
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   441
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   442
function GetRandomAmmo(hog, sourceType)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   443
  local var = getHogInfo(hog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   444
  ammo = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   445
  local source = ''
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   446
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   447
  if variants[var] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   448
    return ammo
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   449
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   450
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   451
  if sourceType == "weapons" then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   452
    source = variants[var][sourceType]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   453
    sourceLimit = variants[var]["weaponLimit"]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   454
  elseif sourceType == "helpers" then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   455
    source = variants[var][sourceType]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   456
    sourceLimit = variants[var]["helperLimit"]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   457
  elseif sourceType == 'poolWeapons' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   458
    if highWeapons[hog] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   459
      highWeapons[hog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   460
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   461
    source = highWeapons[hog]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   462
    if suddenDeath == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   463
      sourceLimit = highPickupCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   464
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   465
      sourceLimit = highPickupSDCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   466
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   467
  elseif sourceType == 'poolHelpers' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   468
    if highHelpers[hog] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   469
      highHelpers[hog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   470
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   471
    source = highHelpers[hog]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   472
    if suddenDeath == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   473
      sourceLimit = highHelperCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   474
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   475
      sourceLimit = highHelperSDCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   476
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   477
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   478
    return ammo
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   479
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   480
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   481
  local varAmmo = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   482
  for key, val in pairs(source) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   483
      varAmmo[key] = val
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   484
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   485
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   486
  -- If the amount of random weapons is equally to the amount of weapons possible
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   487
  -- We don't need to randomize
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   488
  if sourceLimit >= table.getn(source) then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   489
    return varAmmo
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   490
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   491
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   492
  local randIndex = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   493
  local i = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   494
  while i < sourceLimit and #varAmmo > 0 do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   495
    randIndex = GetRandom(#varAmmo) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   496
    ammo[i] = varAmmo[randIndex]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   497
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   498
    -- Shift last value to the current index
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   499
    varAmmo[randIndex] = varAmmo[#varAmmo]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   500
    -- And remove the last index from the array
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   501
    varAmmo[#varAmmo] = nil
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   502
    i = i +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   503
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   504
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   505
  return ammo
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   506
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   507
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   508
function addTurnAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   509
  -- Check if hog is valid
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   510
  if hog == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   511
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   512
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   513
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   514
  -- Check if hog is alive
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   515
  local hp = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   516
  if hp == nil or hp <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   517
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   518
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   519
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   520
  -- Unless its points mode, get weapons normally by variant
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   521
  if mode ~= "points" then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   522
    local maxHp = getHogInfo(hog, 'maxHp')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   523
    local hpPer = div(hp * 100, maxHp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   524
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   525
    local wep = getHogInfo(hog, 'weapons')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   526
    local hlp = getHogInfo(hog, 'helpers')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   527
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   528
    if wep == nil or table.getn(wep) == 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   529
      hogInfo[hog]['weapons'] = GetRandomAmmo(hog, "weapons")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   530
      wep = getHogInfo(hog, 'weapons')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   531
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   532
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   533
    if hlp == nil or table.getn(hlp) == 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   534
      hogInfo[hog]['helpers'] = GetRandomAmmo(hog, "helpers")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   535
      hlp = getHogInfo(hog, 'helpers')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   536
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   537
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   538
    AddHogAmmo(hog, wep)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   539
    AddHogAmmo(hog, hlp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   540
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   541
    if mode == 'highland' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   542
      local poolWeapons = GetRandomAmmo(hog, 'poolWeapons')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   543
      local poolHelpers = GetRandomAmmo(hog, 'poolHelpers')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   544
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   545
      AddHogAmmo(hog, poolWeapons)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   546
      AddHogAmmo(hog, poolHelpers)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   547
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   548
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   549
    if hpPer < lowTresh or suddenDeath == true then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   550
      AddHogAmmo(hog, lowWeaps)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   551
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   552
  -- We are on points mode, so we need to generate weapons based on points
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   553
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   554
    setupPointsAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   555
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   556
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   557
  AddAmmo(hog, amSkip, -1)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   558
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   559
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   560
function setupPointsAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   561
  local teamName = getHogInfo(hog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   562
  local turnWepPoints = pointsPerTeam[teamName]['weapons']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   563
  local turnHlpPoints = pointsPerTeam[teamName]['helpers']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   564
  local weps = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   565
  local help = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   566
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   567
  local wepPointsTmp = table.clone(wepPoints)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   568
  local wepMinPnt = wepPointsTmp[1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   569
  local wepMaxPnt = wepPointsTmp[#wepPointsTmp]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   570
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   571
  --AddCaption("Hog: " .. hog .. " Wep: " .. turnWepPoints .. " - Hlp: " .. turnHlpPoints, GetClanColor(GetHogClan(CurHog)),  capgrpGameState)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   572
  --WriteLnToConsole("BEFORE ## Team: " .. teamName .. " Wep: " .. pointsPerTeam[teamName]['weapons'] .. " - Hlp: " .. pointsPerTeam[teamName]['helpers'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   573
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   574
  while true do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   575
    if turnWepPoints < wepMinPnt then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   576
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   577
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   578
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   579
    if wepPointsTmp[#wepPointsTmp] > turnWepPoints then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   580
      while wepPointsTmp[#wepPointsTmp] > turnWepPoints do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   581
        table.remove(wepPointsTmp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   582
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   583
      wepMaxPnt = turnWepPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   584
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   585
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   586
    local randPoint = wepPointsTmp[GetRandom(#wepPointsTmp) +1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   587
    local randWepList = pointsToWep[randPoint]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   588
    local randWep = randWepList[GetRandom(#randWepList) +1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   589
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   590
    table.insert(weps, randWep)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   591
    turnWepPoints = turnWepPoints -randPoint
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   592
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   593
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   594
  local hlpPointsTmp = table.clone(hlpPoints)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   595
  local hlpMinPnt = hlpPointsTmp[1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   596
  local hlpMaxPnt = hlpPointsTmp[#hlpPointsTmp]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   597
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   598
  while true do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   599
    if turnHlpPoints < hlpMinPnt then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   600
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   601
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   602
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   603
    if hlpPointsTmp[#hlpPointsTmp] > turnHlpPoints then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   604
      while hlpPointsTmp[#hlpPointsTmp] > turnHlpPoints do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   605
        table.remove(hlpPointsTmp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   606
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   607
      hlpMaxPnt = turnHlpPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   608
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   609
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   610
    local randPoint = hlpPointsTmp[GetRandom(#hlpPointsTmp) +1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   611
    local randHlpList = pointsToHlp[randPoint]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   612
    local randHlp = randHlpList[GetRandom(#randHlpList) +1]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   613
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   614
    table.insert(help, randHlp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   615
    turnHlpPoints = turnHlpPoints -randPoint
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   616
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   617
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   618
  AddHogAmmo(hog, weps)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   619
  AddHogAmmo(hog, help)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   620
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   621
  -- Save remaining points
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   622
  pointsPerTeam[teamName]['weaponsRem'] = turnWepPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   623
  pointsPerTeam[teamName]['helpersRem'] = turnHlpPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   624
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   625
  -- Save already collected points so that they wont be "taxed"
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   626
  pointsPerTeam[teamName]['weaponsFix'] = pointsPerTeam[teamName]['weapons']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   627
  pointsPerTeam[teamName]['helpersFix'] = pointsPerTeam[teamName]['helpers']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   628
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   629
  --WriteLnToConsole("AFTER ## Team: " .. teamName .. " Wep: " .. pointsPerTeam[teamName]['weapons'] .. " - Hlp: " .. pointsPerTeam[teamName]['helpers'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   630
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   631
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   632
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   633
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   634
  ### HOG SETUP  FUNCTIONS                                                   ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   635
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   636
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   637
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   638
function MutateHog(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   639
  local var = getHogInfo(hog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   640
12420
bdf81e6c00eb Battalion: Make mutated hog names translatable
Wuzzy <almikes@aol.com>
parents: 12419
diff changeset
   641
  SetHogName(hog, variants[var]["name"])
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   642
  SetHogHat(hog, variants[var]["hat"])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   643
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   644
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   645
function GetRandomVariant()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   646
  local maxNum = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   647
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   648
  for key, val in pairs(variants) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   649
    maxNum = maxNum + variants[key]["chance"]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   650
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   651
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   652
  local rand = GetRandom(maxNum)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   653
  local lowBound = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   654
  local highBound = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   655
  local var = nil
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   656
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   657
  for key, val in pairs(variants) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   658
    highBound = lowBound + variants[key]["chance"]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   659
    if rand <= highBound then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   660
      var = key
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   661
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   662
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   663
    lowBound = highBound
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   664
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   665
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   666
  return var
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   667
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   668
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   669
function addRandomVariantToTeam(team)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   670
  if counter[team] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   671
    counter[team] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   672
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   673
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   674
  while true do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   675
    local var = GetRandomVariant()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   676
    if counter[team][var] == nil and variants[var]["hogLimit"] > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   677
      counter[team][var] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   678
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   679
    elseif counter[team][var] ~= nil and counter[team][var] < variants[var]["hogLimit"] then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   680
      counter[team][var] = counter[team][var] +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   681
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   682
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   683
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   684
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   685
  return var
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   686
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   687
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   688
function setTeamHogs(team)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   689
  local maxHog = hogCount[team]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   690
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   691
  group[team] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   692
  counter[team] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   693
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   694
  if mode == 'king' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   695
    maxHog = maxHog -1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   696
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   697
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   698
  for i=1,maxHog do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   699
    table.insert(group[team], group['all'][i])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   700
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   701
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   702
  if mode == 'king' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   703
    counter[team]['King'] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   704
    table.insert(group[team], 'King')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   705
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   706
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   707
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   708
function countTeamHogs(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   709
  local team = GetHogTeamName(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   710
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   711
  if hogCount[team] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   712
    hogCount[team] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   713
    teamHogs[team] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   714
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   715
    hogCount[team] = hogCount[team] +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   716
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   717
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   718
  teamHogs[team][hogCount[team]] = hog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   719
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   720
  teamNames[team] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   721
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   722
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   723
function setHogVariant(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   724
  local team = getHogInfo(hog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   725
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   726
  if teamIndex[team] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   727
    teamIndex[team] = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   728
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   729
    teamIndex[team] = teamIndex[team] +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   730
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   731
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   732
  local hogNum = teamIndex[team]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   733
  local hogVar = group[team][hogNum]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   734
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   735
  hogInfo[hog]['variant'] = hogVar
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   736
  SetHealth(hog, variants[hogVar]["hp"])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   737
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   738
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   739
function getHogInfo(hog, info)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   740
  if hog == nil then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   741
    AddCaption(loc("ERROR [getHogInfo]: Hog is nil!"), 0xFFFFFFFF, capgrpMessage)
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   742
    WriteLnToConsole(loc("ERROR [getHogInfo]: Hog is nil!"), 0xFFFFFFFF, capgrpMessage)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   743
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   744
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   745
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   746
  if hogInfo[hog] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   747
    return nil
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   748
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   749
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   750
  return hogInfo[hog][info]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   751
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   752
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   753
function setHogInfo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   754
  if hog == nil then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   755
    AddCaption(loc("ERROR [getHogInfo]: Hog is nil!"), 0xFFFFFFFF, capgrpMessage)
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   756
    WriteLnToConsole(loc("ERROR [getHogInfo]: Hog is nil!"), 0xFFFFFFFF, capgrpMessage)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   757
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   758
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   759
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   760
  hogInfo[hog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   761
  hogInfo[hog]['maxHp'] = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   762
  hogInfo[hog]['name'] = GetHogName(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   763
  hogInfo[hog]['hat'] = GetHogHat(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   764
  hogInfo[hog]['team'] = GetHogTeamName(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   765
  hogInfo[hog]['clan'] = GetHogClan(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   766
  hogInfo[hog]['clanColor'] = GetClanColor(hogInfo[hog]['clan'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   767
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   768
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   769
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   770
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   771
  ### CRATE SPAWN AND PICKUP FUNCTIONS                                       ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   772
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   773
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   774
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   775
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   776
 : Heals either 10 (95% chance) or 15 (5% chance) hitpoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   777
 : Plus 10% of the hogs base hitpoints. 
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   778
 :
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   779
 : Has a 7% chance to be empty.
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   780
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   781
function onHealthCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   782
  local factor = 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   783
  local msgColor = getHogInfo(CurHog, 'clanColor')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   784
  local healHp = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   785
  PlaySound(sndShotgunReload)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   786
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   787
  if GetRandom(100) < emptyCrateChance then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   788
    AddCaption(loc("It's empty!"), msgColor, capgrpMessage)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   789
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   790
  elseif GetRandom(100) < bonusCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   791
    factor = 3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   792
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   793
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   794
  local var = getHogInfo(CurHog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   795
  local hogHealth = GetHealth(CurHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   796
  healHp = 5 * factor
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   797
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   798
  -- Add extra 10% of hogs base hp to heal
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   799
  healHp = healHp + div(getHogInfo(CurHog, 'maxHp'), 10)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   800
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
   801
  AddCaption(string.format(loc("+%d"), healHp), msgColor, capgrpMessage)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   802
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   803
  SetEffect(CurHog, hePoisoned, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   804
  SetHealth(CurHog, hogHealth + healHp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   805
  local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) +cratePickupGap, vgtHealthTag, healHp, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   806
  -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   807
  SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, msgColor)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   808
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   809
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   810
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   811
 : Adds either 1 (95% chance) or 2 (5% chance) random weapon(s) based on the hog variant.
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   812
 :
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   813
 : Has a 7% chance to be empty.
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   814
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   815
function onWeaponCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   816
  local factor = 1 * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   817
  local msgColor = GetClanColor(GetHogClan(CurHog))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   818
  PlaySound(sndShotgunReload)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   819
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   820
  if GetRandom(100) < emptyCrateChance then
12628
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   821
    if IsHogLocal(CurHog) then
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   822
      AddCaption(loc("It's empty!"), msgColor, capgrpMessage)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   823
    end
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   824
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   825
  elseif GetRandom(100) < bonusCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   826
    factor = 2 * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   827
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   828
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   829
  local randIndex
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   830
  local randAmmo
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   831
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   832
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   833
    local var = getHogInfo(CurHog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   834
    randIndex = GetRandom(table.getn(variants[var]["weapons"])) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   835
    randAmmo = variants[var]["weapons"][randIndex]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   836
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   837
    local possibleWeapons = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   838
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   839
    for key, val in pairs(pointsWeaponVal) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   840
      if val > 2 and val < 8 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   841
        table.insert(possibleWeapons, key)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   842
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   843
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   844
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   845
    randIndex = GetRandom(table.getn(possibleWeapons)) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   846
    randAmmo = possibleWeapons[randIndex]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   847
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   848
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   849
  AddAmmo(CurHog, randAmmo, GetAmmoCount(CurHog, randAmmo) +factor)
12628
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   850
  if IsHogLocal(CurHog) then
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   851
    AddCaption(string.format(loc("+%d ammo"), factor), msgColor, capgrpMessage)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   852
    local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) +cratePickupGap, vgtAmmo, 0, true)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   853
    SetVisualGearValues(effect, nil, nil, nil, nil, nil, randAmmo, nil, nil, nil, msgColor)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   854
  end
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   855
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   856
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   857
 : Adds either 1 (95% chance) or 2 (5% chance) random helper(s) based on the hog variant.
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   858
 :
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   859
 : Has a 7% chance to be empty.
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   860
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   861
function onUtilityCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   862
  local factor = 1 * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   863
  local msgColor = GetClanColor(GetHogClan(CurHog))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   864
  PlaySound(sndShotgunReload)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   865
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   866
  if GetRandom(100) < emptyCrateChance then
12628
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   867
    if IsHogLocal(CurHog) then
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   868
      AddCaption(loc("It's empty!"), msgColor, capgrpMessage)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   869
    end
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   870
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   871
  elseif GetRandom(100) < bonusCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   872
    factor = 2 * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   873
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   874
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   875
  local randIndex
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   876
  local randUtility
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   877
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   878
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   879
    randIndex = GetRandom(table.getn(utilities)) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   880
    randUtility = utilities[randIndex]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   881
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   882
    local possibleHelpers = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   883
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   884
    for key, val in pairs(pointsHelperVal) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   885
      table.insert(possibleHelpers, key)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   886
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   887
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   888
    randIndex = GetRandom(table.getn(possibleHelpers)) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   889
    randUtility = possibleHelpers[randIndex]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   890
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   891
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   892
  AddAmmo(CurHog, randUtility, GetAmmoCount(CurHog, randUtility) +factor)
12628
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   893
  if IsHogLocal(CurHog) then
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   894
    AddCaption(string.format(loc("+%d ammo"), factor), msgColor, capgrpMessage)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   895
    local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) +cratePickupGap, vgtAmmo, 0, true)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   896
    SetVisualGearValues(effect, nil, nil, nil, nil, nil, randUtility, nil, nil, nil, msgColor)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
   897
  end
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   898
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   899
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   900
function onPickupCrate(crate)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   901
  local pos = GetGearPos(crate)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   902
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   903
  -- Check if the crate is fake
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   904
  if pos % posCaseDummy >= 1 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   905
    if pos % posCaseDummy == posCaseAmmo then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   906
      onWeaponCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   907
    elseif pos % posCaseDummy == posCaseHealth then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   908
      onHealthCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   909
    elseif pos % posCaseDummy == posCaseUtility then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   910
      onUtilityCratePickup()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   911
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   912
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   913
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   914
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   915
function RandomTurnEvents()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   916
  if GetRandom(100) < weaponCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   917
    SpawnFakeAmmoCrate(0, 0, false, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   918
    return 5000
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   919
  elseif GetRandom(100) < utilCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   920
    SpawnFakeUtilityCrate(0, 0, false, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   921
    return 5000
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   922
  elseif GetRandom(100) < healthCrateChance then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   923
    SpawnFakeHealthCrate(0, 0, false, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   924
    return 5000
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   925
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   926
  return 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   927
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   928
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   929
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   930
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   931
  ### SUDDEN DEATH FUNCTIONS                                                 ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   932
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   933
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   934
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   935
function onSuddenDeathDamage(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   936
  local hp = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   937
  local maxHp = getHogInfo(hog, 'maxHp')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   938
  local newHp = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   939
  local hpDec = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   940
  local hpPer = div(hp * 100, maxHp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   941
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   942
  if hp > 1 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   943
    local msgColor = GetClanColor(GetHogClan(hog))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   944
    if hpPer <= 25 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   945
      newHp = hp -2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   946
    elseif hpPer <= 50 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   947
      newHp = hp -3
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   948
    elseif hpPer <= 75 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   949
      newHp = hp -4
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   950
    elseif hpPer <= 100 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   951
      newHp = hp -5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   952
    elseif hpPer <= 125 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   953
      newHp = hp -6
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   954
    elseif hpPer <= 150 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   955
      newHp = hp -7
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   956
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   957
      newHp = div(hp * 93, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   958
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   959
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   960
    if newHp <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   961
      newHp = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   962
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   963
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   964
    hpDec = hp - newHp
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   965
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   966
    SetHealth(hog, newHp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   967
    local effect = AddVisualGear(GetX(hog), GetY(hog) +cratePickupGap, vgtHealthTag, hpDec, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   968
    SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, msgColor)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   969
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   970
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   971
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   972
function onSuddenDeathTurn()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   973
  runOnGears(onSuddenDeathDamage)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   974
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   975
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   976
function onSuddenDeath()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   977
  suddenDeath = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   978
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   979
  healthCrateChance = healthCrateChanceSD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   980
  utilCrateChance = utilCrateChanceSD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   981
  weaponCrateChance = weaponCrateChanceSD
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   982
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   983
  if mode == 'highland' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   984
    highEnemyKillHPBonus = highEnemyKillHPBonus +5
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   985
    highFriendlyKillHPBonus = highFriendlyKillHPBonus +10
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   986
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   987
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   988
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   989
    for key, val in pairs(variants) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   990
      if not variants[key]["special"] then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   991
        variants[key]["weaponLimit"] = variants[key]["weaponLimit"] +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   992
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   993
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   994
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   995
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   996
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   997
    for hog, val in pairs(hogInfo) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   998
      hogInfo[hog]['weapons'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
   999
      hogInfo[hog]['helpers'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1000
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1001
    
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1002
    runOnGears(setupHogTurn)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1003
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1004
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1005
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1006
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1007
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1008
  ### GEAR TRACKING FUNCTIONS                                                ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1009
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1010
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1011
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1012
function onGearAdd(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1013
  local gearType = GetGearType(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1014
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1015
  if gearType == gtHedgehog then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1016
    trackGear(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1017
  elseif gearType == gtRCPlane then
12422
959d1f4dff25 Battalion: RC Plane gets 2 bombs, set air bomb dmg to 20
Wuzzy <almikes@aol.com>
parents: 12421
diff changeset
  1018
    SetHealth(gear, 2)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1019
  elseif gearType == gtAirBomb then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1020
    -- gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom
12422
959d1f4dff25 Battalion: RC Plane gets 2 bombs, set air bomb dmg to 20
Wuzzy <almikes@aol.com>
parents: 12421
diff changeset
  1021
    SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 20)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1022
  elseif gearType == gtCake then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1023
    -- gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1024
    SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 50)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1025
  elseif gearType == gtDEagleShot then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1026
    -- gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1027
    SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 12)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1028
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1029
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1030
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1031
function onHighlandKill(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1032
  local deathVar = getHogInfo(gear, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1033
  local killVar = getHogInfo(CurHog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1034
  local bonAmmo = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1035
  local deathMaxHP = getHogInfo(gear, 'maxHp')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1036
  local curHP = GetHealth(CurHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1037
  local newHP = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1038
  local hpDiff = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1039
  local addAmmo = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1040
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1041
  -- Killer hog is dead! Don't do anything
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1042
  if curHP == nil or curHP <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1043
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1044
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1045
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1046
  -- Killer and victim is equal! Don't do anything
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1047
  if CurHog == gear then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1048
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1049
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1050
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1051
  -- Hog drowned because of water, not enemy
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1052
  if LastWaterLine ~= WaterLine then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1053
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1054
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1055
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1056
  -- Enemy kill! Add weapons to pool and to hog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1057
  if getHogInfo(gear, 'clan') ~= getHogInfo(CurHog, 'clan') then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1058
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1059
    -- Initialize weapons if required
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1060
    if highWeapons[CurHog] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1061
      highWeapons[CurHog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1062
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1063
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1064
    if highHelpers[CurHog] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1065
      highHelpers[CurHog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1066
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1067
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1068
    -- If not a special hog, use the victims weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1069
    if variants[deathVar]['special'] == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1070
      bonAmmo = variants[deathVar]['weapons']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1071
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1072
      if suddenDeath == true then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1073
        ammoCount = highPickupSDCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1074
      else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1075
        ammoCount = highPickupCount
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1076
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1077
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1078
      -- Check if hog already got bonus weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1079
      if table.getn(highWeapons[CurHog]) == 0 and highHasBonusWeps == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1080
        highHasBonusWeps = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1081
        addAmmo = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1082
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1083
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1084
      -- Pass turn bonus weapons to hog pool
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1085
      for key, val in pairs(bonAmmo) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1086
        local idx = table.getn(highWeapons[CurHog]) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1087
        highWeapons[CurHog][idx] = val
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1088
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1089
    -- It's a special hog, use special pool
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1090
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1091
      bonAmmo = highSpecialBonus
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1092
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1093
      ammoCount = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1094
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1095
      -- Check if hog already got bonus helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1096
      if table.getn(highWeapons[CurHog]) == 0 and highHasBonusHelp == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1097
        highHasBonusHelp = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1098
        addAmmo = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1099
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1100
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1101
      -- Pass turn bonus weapons to hog pool
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1102
      for key, val in pairs(highSpecialPool) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1103
        local idx = table.getn(highHelpers[CurHog]) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1104
        highHelpers[CurHog][idx] = val
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1105
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1106
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1107
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1108
    if addAmmo then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1109
      local i = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1110
      while i <= ammoCount and #bonAmmo > 0 do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1111
        local randAmmo = GetRandom(#bonAmmo) +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1112
        local randAmmoType = bonAmmo[randAmmo]
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1113
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1114
        -- Remove the randomized weapon so it cannot be picked up twice
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1115
        table.remove(bonAmmo, randAmmo)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1116
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1117
        AddAmmo(CurHog, randAmmoType, GetAmmoCount(CurHog, randAmmoType) +1)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1118
12628
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
  1119
        if IsHogLocal(CurHog) then
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
  1120
           local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) + (cratePickupGap * i), vgtAmmo, 0, true)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
  1121
           SetVisualGearValues(effect, nil, nil, nil, nil, nil, randAmmoType, nil, nil, nil, nil)
96e30c42c318 Battalion: Only show collected ammo to local player
Wuzzy <almikes@aol.com>
parents: 12422
diff changeset
  1122
        end
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1123
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1124
        i = i +1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1125
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1126
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1127
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1128
    hpDiff = div(deathMaxHP * highEnemyKillHPBonus, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1129
    newHP = curHP + hpDiff
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1130
    SetHealth(CurHog, newHP)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1131
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1132
    local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) - cratePickupGap, vgtHealthTag, hpDiff, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1133
    -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1134
    SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, GetClanColor(GetHogClan(CurHog)))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1135
  -- Friendly fire! Remove all weapons and helpers from pool
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1136
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1137
    highWeapons[CurHog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1138
    highHelpers[CurHog] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1139
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1140
    hpDiff = div(deathMaxHP * highFriendlyKillHPBonus, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1141
    newHP = curHP - hpDiff
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1142
    if newHP > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1143
      SetHealth(CurHog, newHP)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1144
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1145
      SetHealth(CurHog, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1146
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1147
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1148
    local effect = AddVisualGear(GetX(CurHog), GetY(CurHog) - cratePickupGap, vgtHealthTag, hpDiff, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1149
    -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1150
    SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, GetClanColor(GetHogClan(CurHog)))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1151
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1152
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1153
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1154
function onKingDeath(KingHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1155
  local team = getHogInfo(KingHog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1156
  local msgColor = getHogInfo(KingHog, 'clanColor')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1157
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1158
  AddCaption(string.format(loc("The king of %s has died!"), team), 0xFFFFFFFF, capgrpGameState)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1159
  PlaySound(sndByeBye)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1160
  DismissTeam(team)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1161
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1162
  -- for hog, val in pairs(hogInfo) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1163
  --   if getHogInfo(hog, 'team') == team then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1164
  --     hp = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1165
  --     if hp ~= nil and hp > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1166
  --       SetState(KingHog, gstHHDeath)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1167
  --       SetHealth(hog, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1168
  --       SetGearValues(hog, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1169
  --     end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1170
  --   end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1171
  -- end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1172
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1173
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1174
function onPointsKill(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1175
  local deathVar = getHogInfo(gear, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1176
  local killVar = getHogInfo(CurHog, 'variant')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1177
  local deathClan = getHogInfo(gear, 'clan')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1178
  local killClan = getHogInfo(CurHog, 'clan')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1179
  local team = getHogInfo(CurHog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1180
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1181
  local curHP = GetHealth(CurHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1182
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1183
  -- Killer hog is dead! Don't do anything
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1184
  if curHP == nil or curHP <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1185
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1186
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1187
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1188
  -- Hog drowned because of water, not enemy
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1189
  if LastWaterLine ~= WaterLine then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1190
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1191
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1192
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1193
  -- Same clan, friendly kill, skip
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1194
  if killClan == deathClan then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1195
    return
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1196
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1197
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1198
  pointsPerTeam[team]['weapons'] = pointsPerTeam[team]['weapons'] + 2
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1199
  pointsPerTeam[team]['helpers'] = pointsPerTeam[team]['helpers'] + 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1200
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1201
  local effect = AddVisualGear(GetX(CurHog) - (cratePickupGap / 2), GetY(CurHog), vgtHealthTag, 2, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1202
  -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1203
  SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xFFFFFFFF)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1204
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1205
  local effect = AddVisualGear(GetX(CurHog) + (cratePickupGap / 2), GetY(CurHog), vgtHealthTag, 1, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1206
  -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1207
  SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0x444444FF)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1208
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1209
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1210
function onGearDelete(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1211
  trackDeletion(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1212
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1213
  if GetGearType(gear) == gtCase and band(GetGearMessage(gear), gmDestroy) ~= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1214
    onPickupCrate(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1215
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1216
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1217
  if GetGearType(gear) == gtHedgehog then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1218
    if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1219
      hogInfo[gear]['weapons'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1220
      hogInfo[gear]['helpers'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1221
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1222
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1223
    -- If dying gear is a hog and mode is highland, check for kills
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1224
    if mode == 'highland' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1225
      onHighlandKill(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1226
    -- If current hog is dying and we are on points mode, we need to save the unused weapons/helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1227
    elseif mode == 'points' and CurHog == gear then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1228
      savePoints(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1229
    elseif mode == 'points' and CurHog ~= gear then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1230
      onPointsKill(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1231
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1232
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1233
    if mode == 'king' and getHogInfo(gear, 'variant') == 'King' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1234
      onKingDeath(gear)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1235
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1236
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1237
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1238
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1239
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1240
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1241
  ### TURN BASED FUNCTIONS                                                   ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1242
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1243
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1244
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1245
function calcKingHP()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1246
  local teamKings = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1247
  local teamHealth = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1248
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1249
  for hog, val in pairs(hogInfo) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1250
    local hp = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1251
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1252
    if hp ~= nil and hp > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1253
      local team = getHogInfo(hog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1254
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1255
      if teamHealth[team] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1256
        teamHealth[team] = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1257
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1258
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1259
      if getHogInfo(hog, 'variant') == 'King' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1260
        teamKings[team] = hog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1261
      else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1262
        teamHealth[team] = teamHealth[team] + hp
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1263
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1264
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1265
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1266
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1267
  for team, hog in pairs(teamKings) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1268
    local hp = GetHealth(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1269
    local newHP = div(teamHealth[team] * kingLinkPerc, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1270
    local diff = newHP - hp
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1271
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1272
    -- Set hitpoints to 1 if no other hog is alive or only has 1 hitpoint
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1273
    if newHP <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1274
      newHP = 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1275
      diff = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1276
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1277
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1278
    if diff < 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1279
      diff = -diff
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1280
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1281
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1282
    if hp ~= newHP then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1283
      SetHealth(hog, newHP)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1284
      local effect = AddVisualGear(GetX(hog), GetY(hog) - cratePickupGap, vgtHealthTag, diff, false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1285
      -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1286
      SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, GetClanColor(GetHogClan(hog)))
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1287
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1288
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1289
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1290
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1291
function setupHogTurn(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1292
  clearHogAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1293
  addTurnAmmo(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1294
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1295
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1296
function onTurnEnd()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1297
  local anyHog = nil
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1298
  for team, val in pairs(teamNames) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1299
    -- Count amount of alive hogs in team
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1300
    local c = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1301
    for idx, hog in pairs(teamHogs[team]) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1302
      if GetHealth(hog) ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1303
        anyHog = hog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1304
        c = c + 1
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1305
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1306
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1307
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1308
    -- Only one hog left, unfreeze the hog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1309
    if c == 1 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1310
      if GetHealth(anyHog) ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1311
        SetEffect(anyHog, heFrozen, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1312
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1313
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1314
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1315
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1316
  -- When we are on points mode count remaining weapon/helper points
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1317
  if mode == 'points' and GetHealth(CurHog) ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1318
    savePoints(CurHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1319
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1320
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1321
  -- Run random turn events
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1322
  RandomTurnEvents()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1323
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1324
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1325
function savePoints(hog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1326
  local team = getHogInfo(hog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1327
  local hogWepPoints = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1328
  local hogHlpPoints = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1329
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1330
  for ammoType=0,amAirMine do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1331
    local ammoCount = GetAmmoCount(hog, ammoType)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1332
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1333
    if pointsWeaponVal[ammoType] ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1334
      hogWepPoints = hogWepPoints + (pointsWeaponVal[ammoType] * ammoCount)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1335
    elseif pointsHelperVal[ammoType] ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1336
      hogHlpPoints = hogHlpPoints + (pointsHelperVal[ammoType] * ammoCount)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1337
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1338
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1339
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1340
  local wepWoTax = pointsPerTeam[team]['weaponsFix']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1341
  local hlpWoTax = pointsPerTeam[team]['helpersFix']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1342
  local wepToTax = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1343
  local hlpToTax = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1344
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1345
  if hogWepPoints <= wepWoTax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1346
    wepWoTax = hogWepPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1347
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1348
    wepToTax = hogWepPoints - wepWoTax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1349
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1350
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1351
  if hogHlpPoints <= hlpWoTax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1352
    hlpWoTax = hogHlpPoints
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1353
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1354
    hlpToTax = hogHlpPoints - hlpWoTax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1355
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1356
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1357
  if suddenDeath == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1358
    pointsPerTeam[team]['weapons'] = pointsPerTeam[team]['weaponsRem'] + wepWoTax + div(wepToTax * pointsKeepPerc, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1359
    pointsPerTeam[team]['helpers'] = pointsPerTeam[team]['helpersRem'] + hlpWoTax + div(hlpToTax * pointsKeepPerc, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1360
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1361
    pointsPerTeam[team]['weapons'] = pointsPerTeam[team]['weaponsRem'] + wepWoTax + div(wepToTax * pointsKeepSDPerc, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1362
    pointsPerTeam[team]['helpers'] = pointsPerTeam[team]['helpersRem'] + hlpWoTax + div(hlpToTax * pointsKeepSDPerc, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1363
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1364
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1365
  local effect = AddVisualGear(GetX(hog) - (cratePickupGap / 2), GetY(hog), vgtHealthTag, pointsPerTeam[team]['weapons'], false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1366
  -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1367
  SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xFFFFFFFF)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1368
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1369
  local effect = AddVisualGear(GetX(hog) + (cratePickupGap / 2), GetY(hog), vgtHealthTag, pointsPerTeam[team]['helpers'], false)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1370
  -- (vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1371
  SetVisualGearValues(effect, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0x444444FF)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1372
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1373
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1374
function onPointsTurn()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1375
  local hogWepPoints = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1376
  local hogHlpPoints = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1377
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1378
  if suddenDeath == false then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1379
    pointsPerTeam[LastTeam]['weapons'] = pointsPerTeam[LastTeam]['weapons'] + pointsWepTurn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1380
    pointsPerTeam[LastTeam]['helpers'] = pointsPerTeam[LastTeam]['helpers'] + pointsHlpTurn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1381
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1382
    if pointsPerTeam[LastTeam]['weapons'] > pointsWepMax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1383
      pointsPerTeam[LastTeam]['weapons'] = pointsWepMax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1384
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1385
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1386
    if pointsPerTeam[LastTeam]['helpers'] > pointsHlpMax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1387
      pointsPerTeam[LastTeam]['helpers'] = pointsHlpMax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1388
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1389
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1390
    pointsPerTeam[LastTeam]['weapons'] = pointsPerTeam[LastTeam]['weapons'] + pointsWepSDTurn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1391
    pointsPerTeam[LastTeam]['helpers'] = pointsPerTeam[LastTeam]['helpers'] + pointsHlpSDTurn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1392
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1393
    if pointsPerTeam[LastTeam]['weapons'] > pointsWepSDMax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1394
      pointsPerTeam[LastTeam]['weapons'] = pointsWepSDMax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1395
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1396
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1397
    if pointsPerTeam[LastTeam]['helpers'] > pointsHlpSDMax then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1398
      pointsPerTeam[LastTeam]['helpers'] = pointsHlpSDMax
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1399
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1400
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1401
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1402
  -- Take the first alive hog from LastTeam and setup new weapons and helpers
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1403
  -- Since the weapons and helpers are shared the whole team, this is sufficent
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1404
  for idx, teamHog in pairs(teamHogs[LastTeam]) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1405
    if GetHealth(teamHog) ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1406
      clearHogAmmo(teamHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1407
      addTurnAmmo(teamHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1408
      break
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1409
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1410
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1411
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1413
function onNewTurn()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1414
  LastHog = CurHog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1415
  LastTeam = CurTeam
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1416
  CurHog = CurrentHedgehog
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1417
  CurTeam = getHogInfo(CurHog, 'team')
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1418
  TurnEnded = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1419
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1420
  if suddenDeath == true then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1421
    onSuddenDeathTurn()
12812
59cb9bd8331c Fix Battialion script showing “Round 0” at start
Wuzzy <Wuzzy2@mail.ru>
parents: 12628
diff changeset
  1422
  elseif (TotalRounds + 1 >= 1) then
59cb9bd8331c Fix Battialion script showing “Round 0” at start
Wuzzy <Wuzzy2@mail.ru>
parents: 12628
diff changeset
  1423
    AddCaption(string.format(loc("Round %d (Sudden Death in round %d)"), (TotalRounds +1), (SuddenDeathTurns +2)), 0xFFFFFFFF,  capgrpGameState)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1424
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1425
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1426
  -- Generate new weapons for last hog if it's still alive
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1427
  if LastHog ~= nil and LastHog ~= CurHog then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1428
    if mode == 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1429
      onPointsTurn()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1430
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1431
      hogInfo[LastHog]['weapons'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1432
      hogInfo[LastHog]['helpers'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1433
      setupHogTurn(LastHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1434
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1435
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1436
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1437
  -- Recalculate the kings hp if required
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1438
  if mode == 'king' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1439
    calcKingHP()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1440
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1441
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1442
  if mode == 'highland' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1443
    highHasBonusWeps = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1444
    highHasBonusHelp = false
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1445
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1446
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1447
  -- Set LastWaterLine to the current water line
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1448
  LastWaterLine = WaterLine
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1449
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1450
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1451
function onGameTick20()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1452
  if TurnEnded == false and TurnTimeLeft <= 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1453
    TurnEnded = true
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1454
    onTurnEnd()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1455
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1456
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1457
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1458
--[[
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1459
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1460
  ### GAME START FUNCTIONS                                                   ###
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1461
  ##############################################################################
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1462
]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1463
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1464
function onAmmoStoreInit()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1465
  local lastNum = amAirMine
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1466
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1467
  for val=0,lastNum do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1468
    SetAmmo(val, 0, 0, 0, 0)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1469
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1470
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1471
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1472
function onParameters()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1473
  parseParams()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1474
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1475
  if params['mode'] ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1476
    mode = params['mode']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1477
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1478
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1479
  if params['mutate'] ~= nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1480
    mutate = params['mutate']
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1481
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1482
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1483
  if params['strength'] ~= nil and tonumber(params['strength']) > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1484
    strength = tonumber(params['strength'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1485
    -- Highland
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1486
    if mode == 'highland' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1487
      highPickupCount = highPickupCount * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1488
      highPickupSDCount = highPickupSDCount * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1489
      highHelperCount = highHelperCount * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1490
      highHelperSDCount = highHelperSDCount * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1491
    -- Points
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1492
    elseif mode == 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1493
      pointsWepBase = pointsWepBase * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1494
      pointsHlpBase = pointsHlpBase * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1495
      pointsWepTurn = pointsWepTurn * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1496
      pointsHlpTurn = pointsHlpTurn * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1497
      pointsWepMax = pointsWepMax * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1498
      pointsHlpMax = pointsHlpMax * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1499
      pointsWepSDTurn = pointsWepSDTurn * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1500
      pointsHlpSDTurn = pointsHlpSDTurn * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1501
      pointsWepSDMax = pointsWepSDMax * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1502
      pointsHlpSDMax = pointsHlpSDMax * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1503
    -- Either king or normal mode, change variants
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1504
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1505
      for name, data in pairs(variants) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1506
        variants[name]["weaponLimit"] = variants[name]["weaponLimit"] * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1507
        variants[name]["helperLimit"] = variants[name]["helperLimit"] * strength
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1508
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1509
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1510
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1511
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1512
  if params['luck'] ~= nil and tonumber(params['luck']) > 0 then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1513
    luck = tonumber(params['luck'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1514
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1515
    healthCrateChance = div(healthCrateChance * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1516
    utilCrateChance = div(utilCrateChance * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1517
    weaponCrateChance = div(weaponCrateChance * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1518
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1519
    healthCrateChanceSD = div(healthCrateChanceSD * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1520
    utilCrateChanceSD = div(utilCrateChanceSD * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1521
    weaponCrateChanceSD = div(weaponCrateChanceSD * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1522
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1523
    emptyCrateChance = div(emptyCrateChance * 100, luck)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1524
    bonusCrateChance = div(bonusCrateChance * luck, 100)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1525
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1526
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1527
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1528
function onGameStart()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1529
  -- If we are not on points mode, we start randomizing everything
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1530
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1531
    if GetGameFlag(gfBorder) or MapHasBorder() then
12417
f6fc84c55bfa Battalion: Rename “Air-General” to “Air General”
Wuzzy <almikes@aol.com>
parents: 12416
diff changeset
  1532
      variants["Air General"] = nil
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1533
      variants['Athlete'] = nil
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1534
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1535
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1536
    if mode == 'king' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1537
      variants['King']['chance'] = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1538
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1539
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1540
    for i=1,8 do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1541
      addRandomVariantToTeam("all")
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1542
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1543
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1544
    -- Translate randomized team to a flat group
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1545
    group['all'] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1546
    for key, val in pairs(counter["all"]) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1547
      for i=1, counter["all"][key] do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1548
        table.insert(group['all'], key)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1549
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1550
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1551
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1552
    -- Shuffle group for more randomness
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1553
    shuffle(group['all'])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1554
  -- We are in points mode, setup other weapons
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1555
  elseif mode == 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1556
    --variants['King']['chance'] = 0
12417
f6fc84c55bfa Battalion: Rename “Air-General” to “Air General”
Wuzzy <almikes@aol.com>
parents: 12416
diff changeset
  1557
    --if variants['Air General'] ~= nil then
f6fc84c55bfa Battalion: Rename “Air-General” to “Air General”
Wuzzy <almikes@aol.com>
parents: 12416
diff changeset
  1558
    --  variants['Air General']['chance'] = 0
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1559
    --end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1560
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1561
    -- Translate [ammo] -> points to [points] -> {ammo1, ammo2}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1562
    for ammoType, ammoPoints in pairs(pointsWeaponVal) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1563
      if pointsToWep[ammoPoints] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1564
        pointsToWep[ammoPoints] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1565
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1566
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1567
      table.insert(pointsToWep[ammoPoints], ammoType)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1568
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1569
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1570
    for ammoType, ammoPoints in pairs(pointsHelperVal) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1571
      if pointsToHlp[ammoPoints] == nil then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1572
        pointsToHlp[ammoPoints] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1573
      end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1574
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1575
      table.insert(pointsToHlp[ammoPoints], ammoType)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1576
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1577
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1578
    for points, ammoList in pairs(pointsToWep) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1579
      table.insert(wepPoints, points)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1580
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1581
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1582
    for points, ammoList in pairs(pointsToHlp) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1583
      table.insert(hlpPoints, points)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1584
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1585
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1586
    table.sort(wepPoints)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1587
    table.sort(hlpPoints)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1588
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1589
    -- All done, sort the table
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1590
    --table.sort(pointsToWep)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1591
    --table.sort(pointsToHlp)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1592
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1593
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1594
  -- Initial Hog Setup
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1595
  runOnGears(countTeamHogs)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1596
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1597
  for key, val in pairs(teamNames) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1598
    if mode == 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1599
      pointsPerTeam[key] = {}
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1600
      pointsPerTeam[key]['weapons'] = pointsWepBase
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1601
      pointsPerTeam[key]['helpers'] = pointsHlpBase
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1602
    else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1603
      setTeamHogs(key)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1604
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1605
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1606
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1607
  runOnGears(setHogInfo)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1608
  
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1609
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1610
    runOnGears(setHogVariant)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1611
    runOnGears(setupHogTurn)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1612
    if mutate ~= false and mutate ~= 'false' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1613
      runOnGears(MutateHog)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1614
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1615
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1616
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1617
  if mode == 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1618
    for key, val in pairs(teamNames) do
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1619
      clearHogAmmo(teamHogs[key][1])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1620
      addTurnAmmo(teamHogs[key][1])
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1621
    end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1622
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1623
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1624
  if mode == 'king' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1625
    calcKingHP()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1626
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1627
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1628
  local txt = ''
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1629
  local icon = 0
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1630
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1631
  if mode ~= 'points' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1632
    txt = txt .. loc("Variants: Hogs will be randomized from 12 different variants") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1633
    txt = txt .. loc("Weapons: Hogs will get 1 out of 3 weapons randomly each turn") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1634
    txt = txt .. loc("Helpers: Hogs will get 1 out of 2 helpers randomly each turn") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1635
    txt = txt .. loc("Crates: Crates drop randomly with chance of being empty") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1636
    txt = txt .. loc("Last Resort: Having less than 25% base health gives kamikaze") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1637
    txt = txt .. loc("Modifiers: Unlimited ammo, per-hog ammo") .. "|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1638
  else
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1639
    txt = txt .. loc("Crates: Crates drop randomly and may be empty") .. "|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1640
    txt = txt .. loc("Modifiers: Unlimited ammo, shared clan ammo") .. "|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1641
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1642
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1643
  if luck ~= 100 then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1644
    txt = txt .. string.format(loc("Luck: %d%% (modifier for crates)"), luck) .. "|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1645
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1646
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1647
  if strength > 1 then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1648
    txt = txt .. string.format(loc("Strength: %d (multiplier for ammo)"), strength) .. "|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1649
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1650
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1651
  if mode == 'highland' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1652
    txt = txt .. " |"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1653
    txt = txt .. loc("--- Highland ---").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1654
    txt = txt .. string.format(loc("Enemy kills: Collect victim's weapons and +%d%% of its base health"), highEnemyKillHPBonus).."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1655
    txt = txt .. string.format(loc("Friendly kills: Clear killer's pool and -%d%% of its base health"), highFriendlyKillHPBonus).."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1656
    txt = txt .. string.format(loc("Turns: Hogs get %d random weapon(s) from their pool"), highPickupCount).."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1657
    txt = txt .. loc("Hint: Kills won't transfer a hog's pool to the killer's pool").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1658
    txt = txt .. loc("Specials: Kings and air generals drop helpers, not weapons").."|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1659
    icon = 1 -- Target
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1660
  elseif mode == 'king' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1661
    txt = txt .. " |"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1662
    txt = txt .. loc("--- King ---").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1663
    txt = txt .. loc("Variants: The last hog of each team will be a king").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1664
    txt = txt .. string.format(loc("Turns: King's health is set to %d%% of the team health"), kingLinkPerc).."|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1665
    icon = 0 -- Golen Crown
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1666
  elseif mode == 'points' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1667
    txt = txt .. " |"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1668
    txt = txt .. loc("--- Points ---").."|"
12417
f6fc84c55bfa Battalion: Rename “Air-General” to “Air General”
Wuzzy <almikes@aol.com>
parents: 12416
diff changeset
  1669
    txt = txt .. loc("Variants: Kings and air generals are disabled").."|"
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1670
    txt = txt .. string.format(loc("Weapons: Each team starts with %d weapon points"), pointsWepBase).."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1671
    txt = txt .. string.format(loc("Helpers: Each team starts with %d helper points"), pointsHlpBase).."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1672
    txt = txt .. string.format(loc("Turns: Refill %d weapon and %d helper points|and randomize weapons and helpers based on team points"), pointsWepTurn, pointsHlpTurn).."|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1673
    icon = 4 -- Golden Star
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1674
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1675
    icon = -amGrenade -- Grenade
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1676
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1677
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1678
  --txt = txt .. "Switch: Max. 3 times a game per team, cooldown of 5 turns|"
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1679
  txt = txt .. " |"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1680
  txt = txt .. loc("--- Sudden Death ---").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1681
  txt = txt .. loc("Weapons: Nearly every hog variant gets 1 kamikaze").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1682
  txt = txt .. loc("Crates: Crates drop more often with a higher chance of bonus ammo").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1683
  txt = txt .. loc("Water: Rises by 37 per turn").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1684
  txt = txt .. loc("Health: Hogs lose up to 7% base health per turn").."|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1685
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1686
  if mode == 'default' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1687
    txt = txt .. " |"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1688
    txt = txt .. loc("--- Hint ---").."|"
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1689
    txt = txt .. loc("Modes: Activate “highland”, “king” or “points” mode by putting mode=<name>|into the script parameter").."|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1690
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1691
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1692
  if mode == 'highland' then
12415
e11758f70cce Rewrite all Battalion strings to be more translator-friendly
Wuzzy <almikes@aol.com>
parents: 12412
diff changeset
  1693
    txt = txt .. string.format(loc("Highland: Hogs get %d random weapons from their pool"), highPickupSDCount) .. "|"
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1694
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1695
12422
959d1f4dff25 Battalion: RC Plane gets 2 bombs, set air bomb dmg to 20
Wuzzy <almikes@aol.com>
parents: 12421
diff changeset
  1696
  SetAmmoDescriptionAppendix(amRCPlane, loc("The RC plane only carries 2 weak bombs."))
12421
a0c655e38cc8 Battalion: Extend weapon tooltips for modified weapons
Wuzzy <almikes@aol.com>
parents: 12420
diff changeset
  1697
  SetAmmoDescriptionAppendix(amAirAttack, loc("The air bombs are weaker than usual."))
a0c655e38cc8 Battalion: Extend weapon tooltips for modified weapons
Wuzzy <almikes@aol.com>
parents: 12420
diff changeset
  1698
  SetAmmoDescriptionAppendix(amCake, loc("The explosion is weaker than usual."))
a0c655e38cc8 Battalion: Extend weapon tooltips for modified weapons
Wuzzy <almikes@aol.com>
parents: 12420
diff changeset
  1699
  SetAmmoDescriptionAppendix(amDEagle, loc("Base damage has been modified to 12 per shot."))
a0c655e38cc8 Battalion: Extend weapon tooltips for modified weapons
Wuzzy <almikes@aol.com>
parents: 12420
diff changeset
  1700
12418
665317ace94e Show Battalion mission panel for the default time
Wuzzy <almikes@aol.com>
parents: 12417
diff changeset
  1701
  ShowMission(loc("Battalion"), loc("Less tools, more fun"), txt, icon, 0)
12412
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1702
end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1703
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1704
function onGameInit()
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1705
  --[[ CONFIGURATEABLE FOR PLAYERS ]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1706
  --[[ ONCE IT HAS BEEN ADDED TO HW ]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1707
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1708
  --[[ REQUIRED CONFIGURATIONS ]]--
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1709
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1710
  WaterRise = 37 -- Water rises by 37
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1711
  HealthDecrease = 0 -- No health decrease by game, script with 7%
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1712
  CaseFreq = 0 -- don't spawn crates
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1713
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1714
  -- Removed gfResetWeps to see weapons next turn
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1715
  EnableGameFlags(gfInfAttack)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1716
  DisableGameFlags(gfResetWeps)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1717
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1718
  if mode ~= 'points' then
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1719
    EnableGameFlags(gfPerHogAmmo)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1720
  else
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1721
    DisableGameFlags(gfPerHogAmmo)
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1722
  end
ed33ef8a0fc5 New Game-Style: Battalion (version 0.33)
sheepluva
parents:
diff changeset
  1723
end