share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua
author unc0rr
Tue, 14 Jan 2014 12:44:29 +0400
changeset 9985 42cd42e44c9a
parent 9085 092051fda7e1
child 10036 3be36d2fdca6
permissions -rw-r--r--
GravRacer, GravHigh, GravMutant, Grav... uhm... shoppamap? Easy! Gravity script could be combined with any other script now. TODO: security concerns? script name to load is passed via game scheme.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     1
--------------------------------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     2
-- HIGHLANDER / HOGS OF WAR
9085
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
     3
-- version 0.4b
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     4
-- by mikade
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     5
--------------------------------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     6
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     7
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     8
--0.1
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
     9
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    10
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    11
-- concept test
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    12
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    13
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    14
--0.2
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    15
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    16
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    17
-- remove tardis till Henek fixes his tracker
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    18
-- change wep crates to health crates
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    19
-- reset arb turntimevalue
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    20
-- include randomOrder
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    21
-- Until fixed .17 methods come out, remove switches and resurrector
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    22
-- on request, removed kamikaze and piano weapons
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    23
-- provisional fixing of bugs that can't actually be fixed yet
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    24
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    25
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    26
--0.3
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    27
-----------
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    28
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    29
-- meh, update incorrect display
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    30
-- may change this in the future to have switches
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    31
-- but for now people are used to it without, so~
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    32
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    33
-- mudball is now counted as a utility
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    34
6378
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    35
-----------
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    36
--0.3b
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    37
-----------
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    38
6378
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    39
-- cleaned up code and got rid of unneccessary vars
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    40
-- mudball is a weapon again
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    41
-- landgun is now a utility
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    42
-- extra time, vampirism utility removed
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    43
-- hammer wep removed
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
    44
-- all hogs have kamikaze
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    45
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    46
-----------
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    47
--0.3c
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    48
-----------
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    49
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    50
-- restructured some code
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    51
-- added napalm (whoops) to list of possible weapons you can get
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    52
-- hogs no longer recieve airstrike-related weps on border maps
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    53
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    54
-----------
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    55
--0.4
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    56
-----------
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    57
-- fix same name/blank weapon transfer bug (issue 541)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    58
-- show next hog ammo set in full (issue 312)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    59
-- allow mid-kill multi-shot weapon transfers (issue 503)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    60
-- allow users to configure hog health
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    61
-- remove 'switched to' message
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    62
-- remove some extraeneous code
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    63
-- add more whitespace
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    64
-- break everything
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    65
9085
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    66
-----------
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    67
--0.4b
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    68
-----------
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    69
-- as per request, add ice-gun
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    70
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    71
-------------------------
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    72
-- ideas for the future
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    73
-------------------------
9085
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    74
-- add structure
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    75
-- allow switcher, resurrector
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    76
-- add abuse
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    77
-- nerf teleport
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    78
-- allow more customization
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    79
-- poison hogs using the default team? :/
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    80
-- balance weapon distribution across entire team / all teams
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    81
-- add other inequalities/bonuses like... ???
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    82
-- some hogs start off with an extra 25 health?
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    83
-- some hogs start off poisoned?
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    84
-- some hogs start off with a rope and 2 drills but die after their turn?
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    85
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    86
-------------------------------
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    87
-- derp, script follows
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    88
-------------------------------
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
    89
8713
5611011e40b5 fix highlander - needed new script load function
nemo
parents: 8692
diff changeset
    90
HedgewarsScriptLoad("/Scripts/Locale.lua")
5611011e40b5 fix highlander - needed new script load function
nemo
parents: 8692
diff changeset
    91
HedgewarsScriptLoad("/Scripts/Tracker.lua")
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
    92
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    93
local airWeapons = 	{amAirAttack, amMineStrike, amNapalm, amDrillStrike --[[,amPiano]]}
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    94
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    95
local atkArray = 	{
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    96
					amBazooka, amBee, amMortar, amDrill, --[[amSnowball,]]
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    97
					amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,
9085
092051fda7e1 As per request, add ice-gun (untested!)
mikade <redgrinner@gmail.com>
parents: 8713
diff changeset
    98
					amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun, amIceGun,
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
    99
					amFirePunch, amWhip, amBaseballBat, --[[amKamikaze,]] amSeduction, --[[amHammer,]]
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   100
					amMine, amDynamite, amCake, amBallgun, amRCPlane, amSMine,
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   101
					amRCPlane, amSMine,
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   102
					amBirdy
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   103
					}
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   104
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   105
local utilArray = 	{
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   106
					amBlowTorch, amPickHammer, amGirder, amPortalGun,
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   107
					amRope, amParachute, amTeleport, amJetpack,
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   108
					amInvulnerable, amLaserSight, --[[amVampiric,]]
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   109
					amLowGravity, amExtraDamage, --[[amExtraTime,]]
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   110
					amLandGun
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   111
					--[[,amTardis, amResurrector, amSwitch]]
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   112
					}
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   113
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   114
local wepArray = 	{}
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   115
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   116
local currHog
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   117
local lastHog
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   118
local started = false
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   119
local switchStage = 0
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   120
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   121
local lastWep = amNothing
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   122
local shotsFired = 0
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   123
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   124
function CheckForWeaponSwap()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   125
	if GetCurAmmoType() ~= lastWep then
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   126
		shotsFired = 0
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   127
	end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   128
	lastWep = GetCurAmmoType()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   129
end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   130
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   131
function onSlot()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   132
	CheckForWeaponSwap()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   133
end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   134
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   135
function onSetWeapon()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   136
	CheckForWeaponSwap()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   137
end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   138
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   139
function onHogAttack()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   140
	CheckForWeaponSwap()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   141
	shotsFired = shotsFired + 1
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   142
end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   143
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   144
function StartingSetUp(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   145
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   146
	for i = 1, #wepArray do
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   147
		setGearValue(gear,wepArray[i],0)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   148
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   149
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   150
	setGearValue(gear,amKamikaze,100)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   151
	setGearValue(gear,amSkip,100)
6378
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
   152
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
   153
	i = 1 + GetRandom(#atkArray)
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   154
	setGearValue(gear,atkArray[i],1)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   155
6378
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
   156
	i = 1 + GetRandom(#utilArray)
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   157
	setGearValue(gear,utilArray[i],1)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   158
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   159
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   160
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   161
--[[function SaveWeapons(gear)
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   162
-- er, this has no 0 check so presumably if you use a weapon then when it saves  you wont have it
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   163
6378
b812bfcfeb49 Make Highlander moar awesome.
mikade
parents: 6349
diff changeset
   164
	for i = 1, (#wepArray) do
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   165
		setGearValue(gear, wepArray[i], GetAmmoCount(gear, wepArray[i]) )
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   166
		 --AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   167
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   168
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   169
end]]
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   170
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   171
function ConvertValues(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   172
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   173
	for i = 1, #wepArray do
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   174
		AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   175
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   176
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   177
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   178
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   179
-- this is called when a hog dies
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   180
function TransferWeps(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   181
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   182
	if CurrentHedgehog ~= nil then
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   183
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   184
		for i = 1, #wepArray do
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   185
			val = getGearValue(gear,wepArray[i])
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   186
			if val ~= 0 then
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   187
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   188
				setGearValue(CurrentHedgehog, wepArray[i], val)
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   189
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   190
				-- if you are using multi-shot weapon, gimme one more
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   191
				if (GetCurAmmoType()  == wepArray[i]) and (shotsFired ~= 0) then
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   192
					AddAmmo(CurrentHedgehog, wepArray[i], val+1)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   193
				-- assign ammo as per normal
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   194
				else
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   195
					AddAmmo(CurrentHedgehog, wepArray[i], val)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   196
				end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   197
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   198
			end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   199
		end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   200
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   201
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   202
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   203
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   204
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   205
function onGameInit()
8692
935960dbc60e lock weapons since script doesn't support custom sets anyway (yet). Use bor on flags to allow other game flags.
nemo
parents: 8682
diff changeset
   206
	GameFlags = bor(GameFlags,gfInfAttack + gfRandomOrder + gfPerHogAmmo)
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   207
	HealthCaseProb = 100
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   208
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   209
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   210
function onGameStart()
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   211
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   212
	ShowMission	(
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   213
				loc("HIGHLANDER"),
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   214
				loc("Not all hogs are born equal."),
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   215
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   216
				"- " .. loc("Eliminate enemy hogs and take their weapons.") .. "|" ..
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   217
				"- " .. loc("Per-Hog Ammo") .. "|" ..
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   218
				"- " .. loc("Weapons reset.") .. "|" ..
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   219
				"- " .. loc("Unlimited Attacks") .. "|" ..
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   220
				"", 4, 4000
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   221
				)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   222
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   223
	if MapHasBorder() == false then
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   224
       	for i, w in pairs(airWeapons) do
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   225
            table.insert(atkArray, w)
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   226
        end
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   227
	end
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   228
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   229
	for i, w in pairs(atkArray) do
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   230
        table.insert(wepArray, w)
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   231
	end
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   232
6820
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   233
	for i, w in pairs(utilArray) do
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   234
        table.insert(wepArray, w)
7db9e89b3f80 - don't give hogs air weps when border is enabled
mikade <redgrinner@gmail.com>
parents: 6378
diff changeset
   235
	end
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   236
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   237
	table.insert(wepArray, amSkip)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   238
	table.insert(wepArray, amKamikaze)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   239
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   240
	runOnGears(StartingSetUp)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   241
	runOnGears(ConvertValues)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   242
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   243
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   244
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   245
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   246
function CheckForHogSwitch()
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   247
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   248
	if (CurrentHedgehog ~= nil) then
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   249
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   250
		currHog = CurrentHedgehog
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   251
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   252
		if currHog ~= lastHog then
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   253
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   254
			-- re-assign ammo to this guy, so that his entire ammo set will
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   255
			-- be visible during another player's turn
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   256
			if lastHog ~= nil then
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   257
				ConvertValues(lastHog)
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   258
			end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   259
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   260
			-- give the new hog what he is supposed to have, too
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   261
			ConvertValues(CurrentHedgehog)
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   262
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   263
		end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   264
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   265
		lastHog = currHog
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   266
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   267
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   268
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   269
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   270
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   271
function onNewTurn()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   272
	CheckForHogSwitch()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   273
end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   274
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   275
--function onGameTick20()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   276
--CheckForHogSwitch()
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   277
-- if we use gfPerHogAmmo is this even needed? Err, well, weapons reset, so... yes?
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   278
-- orrrr, should we rather call the re-assignment of weapons onNewTurn()? probably not because
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   279
-- then you cant switch hogs... unless we add a thing in onSwitch or whatever
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   280
-- ye, that is probably better actually, but I'll add that when/if I add switch
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   281
--end
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   282
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   283
--[[function onHogHide(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   284
	-- waiting for Henek
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   285
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   286
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   287
function onHogRestore(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   288
	-- waiting for Henek
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   289
end]]
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   290
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   291
function onGearAdd(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   292
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   293
	--if GetGearType(gear) == gtSwitcher then
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   294
	--	SaveWeapons(CurrentHedgehog)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   295
	--end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   296
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   297
	if (GetGearType(gear) == gtHedgehog) then
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   298
		trackGear(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   299
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   300
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   301
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   302
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   303
function onGearDelete(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   304
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   305
	if (GetGearType(gear) == gtHedgehog) then --or (GetGearType(gear) == gtResurrector) then
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   306
		TransferWeps(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   307
		trackDeletion(gear)
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   308
	end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   309
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   310
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   311
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   312
function onAmmoStoreInit()
8682
158d7b36b18e hopefully closes issues 541, 312 and 503
mikade
parents: 8043
diff changeset
   313
	-- no, you can't set your own ammo scheme
6349
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   314
end
b10715d6b986 Correct outdated feedback.
mikade
parents:
diff changeset
   315