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