share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua
changeset 6378 b812bfcfeb49
parent 6349 b10715d6b986
child 6820 7db9e89b3f80
equal deleted inserted replaced
6377:3ce19204b14b 6378:b812bfcfeb49
     1 --------------------------------
     1 --------------------------------
     2 -- HIGHLANDER / HOGS OF WAR
     2 -- HIGHLANDER / HOGS OF WAR
     3 -- version 0.3
     3 -- version 0.3b
     4 -- by mikade
     4 -- by mikade
     5 --------------------------------
     5 --------------------------------
     6 
     6 
     7 -----------
     7 -----------
     8 --0.1
     8 --0.1
    30 -- may change this in the future to have switches
    30 -- may change this in the future to have switches
    31 -- but for now people are used to it without, so~
    31 -- but for now people are used to it without, so~
    32 
    32 
    33 -- mudball is now counted as a utility
    33 -- mudball is now counted as a utility
    34 
    34 
    35 ----------------
    35 -----------
    36 -- other ideas
    36 --0.3b
    37 ----------------
    37 -----------
    38 
    38 
    39 -- circles to mark hogs with more than 4 weapons
    39 -- cleaned up code and got rid of unneccessary vars
    40 -- health crate and switch drops
    40 -- mudball is a weapon again
    41 -- hogs start with 1 weap and 1 utility each (some are rarer than others?)
    41 -- landgun is now a utility
    42 -- could always create a "donor card" mini circle instead of automatic disposal
    42 -- extra time, vampirism utility removed
    43 
    43 -- hammer wep removed
       
    44 -- all hogs have kamikaze
    44 
    45 
    45 loadfile(GetDataPath() .. "Scripts/Locale.lua")()
    46 loadfile(GetDataPath() .. "Scripts/Locale.lua")()
    46 loadfile(GetDataPath() .. "Scripts/Tracker.lua")()
    47 loadfile(GetDataPath() .. "Scripts/Tracker.lua")()
    47 
    48 
    48 local wepArray = {}
    49 local wepArray = {}
    49 local wepArrayCount = 0
       
    50 
       
    51 local atkArray = {}
    50 local atkArray = {}
    52 local atkCount = 0
       
    53 
       
    54 local utilArray = {}
    51 local utilArray = {}
    55 local utilArrayCount = 0
       
    56 
    52 
    57 local currName
    53 local currName
    58 local lastName
    54 local lastName
    59 local started = false
    55 local started = false
    60 local switchStage = 0
    56 local switchStage = 0
    61 
    57 
    62 function StartingSetUp(gear)
    58 function StartingSetUp(gear)
    63 
    59 
    64 	for i = 0, (wepArrayCount-1) do
    60 	for i = 1, #wepArray do	
    65 		setGearValue(gear,wepArray[i],0)
    61 		setGearValue(gear,wepArray[i],0)
    66 	end
    62 	end
    67 
    63 
    68 	i = GetRandom(atkArrayCount)
    64 	setGearValue(gear,amKamikaze,1)
       
    65 
       
    66 	i = 1 + GetRandom(#atkArray)
    69 	setGearValue(gear,atkArray[i],1)
    67 	setGearValue(gear,atkArray[i],1)
    70 
    68 
    71 	i = GetRandom(utilArrayCount)
    69 	i = 1 + GetRandom(#utilArray)
    72 	setGearValue(gear,utilArray[i],1)
    70 	setGearValue(gear,utilArray[i],1)
    73 
    71 
    74 	SetHealth(gear, 100)
    72 	SetHealth(gear, 100)
    75 
    73 
    76 end
    74 end
    77 
    75 
    78 --[[function SaveWeapons(gear)
    76 --[[function SaveWeapons(gear)
    79 
    77 
    80 	-
    78 	-
    81 	for i = 0, (wepArrayCount-1) do
    79 	for i = 1, (#wepArray) do
    82 		setGearValue(gear, wepArray[i], GetAmmoCount(gear, wepArray[i]) )
    80 		setGearValue(gear, wepArray[i], GetAmmoCount(gear, wepArray[i]) )
    83 		 --AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
    81 		 --AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
    84 	end
    82 	end
    85 
    83 
    86 end]]
    84 end]]
    87 
    85 
    88 function ConvertValues(gear)
    86 function ConvertValues(gear)
    89 
    87 
    90 	for i = 0, (wepArrayCount-1) do
    88 	for i = 1, #wepArray do	
    91 		AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
    89 		AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) )
    92 	end
    90 	end
    93 
    91 
    94 
    92 
    95 end
    93 end
    97 
    95 
    98 function TransferWeps(gear)
    96 function TransferWeps(gear)
    99 
    97 
   100 	if CurrentHedgehog ~= nil then
    98 	if CurrentHedgehog ~= nil then
   101 
    99 
   102 		for i = 0, (wepArrayCount-1) do
   100 		for i = 1, #wepArray do		
   103 			val = getGearValue(gear,wepArray[i])
   101 			val = getGearValue(gear,wepArray[i])
   104 			if val ~= 0 then
   102 			if val ~= 0 then
   105 				setGearValue(CurrentHedgehog, wepArray[i], val)
   103 				setGearValue(CurrentHedgehog, wepArray[i], val)
   106 				AddAmmo(CurrentHedgehog, wepArray[i], val)
   104 				AddAmmo(CurrentHedgehog, wepArray[i], val)
   107 			end
   105 			end
   130 				"- " .. loc("Weapons reset.") .. "|" ..
   128 				"- " .. loc("Weapons reset.") .. "|" ..
   131 				"- " .. loc("Unlimited Attacks") .. "|" ..
   129 				"- " .. loc("Unlimited Attacks") .. "|" ..
   132 				"", 4, 4000
   130 				"", 4, 4000
   133 				)
   131 				)
   134 
   132 
   135 	atkArray[0] = amBazooka
   133 	atkArray = 	{amBazooka, amBee, amMortar, amDrill, --[[amSnowball,]]
   136 	atkArray[1] = amBee
   134 			amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,
   137 	atkArray[2] = amMortar
   135 			amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun,
   138 	atkArray[3] = amDrill
   136 			amFirePunch, amWhip, amBaseballBat, --[[amKamikaze,]] amSeduction, --[[amHammer,]]
   139 	--atkArray[4] = amSnowball
   137 			amMine, amDynamite, amCake, amBallgun, amRCPlane, amSMine,
   140 
   138 			amAirAttack, amMineStrike, amDrillStrike, --[[amPiano,]] amRCPlane, amSMine,
   141 	atkArray[4] = amGrenade
   139 			amBirdy
   142 	atkArray[5] = amClusterBomb
   140 
   143 	atkArray[6] = amMolotov
   141 			} 
   144 	atkArray[7] = amWatermelon
   142 
   145 	atkArray[8] = amHellishBomb
   143 	utilArray = 	{amBlowTorch, amPickHammer, amGirder, amPortalGun,
   146 	atkArray[9] = amGasBomb
   144 			amRope, amParachute, amTeleport, amJetpack,
   147 
   145 			amInvulnerable, amLaserSight, --[[amVampiric,]]
   148 	atkArray[10] = amShotgun
   146 			amLowGravity, amExtraDamage, --[[amExtraTime,]]
   149 	atkArray[11] = amDEagle
   147 			amLandGun
   150 	atkArray[12] = amFlamethrower
   148 			}
   151 	atkArray[13] = amSniperRifle
   149 
   152 	atkArray[14] = amSineGun
   150 	wepArray = 	{amBazooka, amBee, amMortar, amDrill, --[[amSnowball,]]
   153 
   151 			amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,
   154 	atkArray[15] = amFirePunch
   152 			amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun,
   155 	atkArray[16] = amWhip
   153 			amFirePunch, amWhip, amBaseballBat, --[[amKamikaze,]] amSeduction, --[[amHammer,]]
   156 	atkArray[17] = amBaseballBat
   154 			amMine, amDynamite, amCake, amBallgun, amRCPlane, amSMine,
   157 	--atkArray[19] = amKamikaze
   155 			amAirAttack, amMineStrike, amDrillStrike, --[[amPiano,]] amRCPlane, amSMine,
   158 	atkArray[18] = amBirdy
   156 			amBirdy,
   159 	atkArray[19] = amSeduction
   157 			
   160 	atkArray[20] = amHammer
   158 			amBlowTorch, amPickHammer, amGirder, amPortalGun,
   161 
   159 			amRope, amParachute, amTeleport, amJetpack,
   162 	atkArray[21] = amMine
   160 			amInvulnerable, amLaserSight, --[[amVampiric,]]
   163 	atkArray[22] = amDynamite
   161 			amLowGravity, amExtraDamage, --[[amExtraTime,]]
   164 	atkArray[23] = amCake
   162 			amLandGun
   165 	atkArray[24] = amBallgun
   163 
   166 	atkArray[25] = amRCPlane
   164 			}
   167 	atkArray[26] = amSMine
   165 
   168 
   166 	-- REMOVED
   169 	atkArray[27] = amAirAttack
   167 	-- amTardis, amResurrector, amSwitch 
   170 	atkArray[28] = amMineStrike
       
   171 	atkArray[29] = amDrillStrike
       
   172 	atkArray[30] = amNapalm
       
   173 	--atkArray[32] = amPiano
       
   174 	atkArray[31] = amLandGun
       
   175 
       
   176 	--atkArray[33] = amBirdy
       
   177 	--atkArray[34] = amLandGun
       
   178 
       
   179 	atkArrayCount = 32
       
   180 
       
   181 	-------------------------------
       
   182 
       
   183 
       
   184 	wepArray[0] = amBazooka
       
   185 	wepArray[1] = amBee
       
   186 	wepArray[2] = amMortar
       
   187 	wepArray[3] = amDrill
       
   188 	wepArray[4] = amSnowball
       
   189 
       
   190 	wepArray[5] = amGrenade
       
   191 	wepArray[6] = amClusterBomb
       
   192 	wepArray[7] = amMolotov
       
   193 	wepArray[8] = amWatermelon
       
   194 	wepArray[9] = amHellishBomb
       
   195 	wepArray[10] = amGasBomb
       
   196 
       
   197 	wepArray[11] = amShotgun
       
   198 	wepArray[12] = amDEagle
       
   199 	wepArray[13] = amFlamethrower
       
   200 	wepArray[14] = amSniperRifle
       
   201 	wepArray[15] = amSineGun
       
   202 
       
   203 	wepArray[16] = amFirePunch
       
   204 	wepArray[17] = amWhip
       
   205 	wepArray[18] = amBaseballBat
       
   206 	--wepArray[19] = amKamikaze
       
   207 	wepArray[19] = amExtraTime
       
   208 	wepArray[20] = amSeduction
       
   209 	wepArray[21] = amHammer
       
   210 
       
   211 	wepArray[22] = amMine
       
   212 	wepArray[23] = amDynamite
       
   213 	wepArray[24] = amCake
       
   214 	wepArray[25] = amBallgun
       
   215 	wepArray[26] = amRCPlane
       
   216 	wepArray[27] = amSMine
       
   217 
       
   218 	wepArray[28] = amAirAttack
       
   219 	wepArray[29] = amMineStrike
       
   220 	wepArray[30] = amDrillStrike
       
   221 	wepArray[31] = amNapalm
       
   222 	--wepArray[32] = amPiano
       
   223 	wepArray[32] = amExtraDamage
       
   224 
       
   225 	wepArray[33] = amBirdy
       
   226 	wepArray[34] = amLandGun
       
   227 
       
   228 	wepArray[35] = amBlowTorch
       
   229 	wepArray[36] = amPickHammer
       
   230 	wepArray[37] = amGirder
       
   231 	wepArray[38] = amPortalGun
       
   232 
       
   233 	wepArray[39] = amRope
       
   234 	wepArray[40] = amParachute
       
   235 	wepArray[41] = amTeleport
       
   236 	wepArray[42] = amJetpack
       
   237 
       
   238 	wepArray[43] = amInvulnerable
       
   239 	wepArray[44] = amLaserSight
       
   240 	wepArray[45] = amVampiric
       
   241 	----resurrector used to be here
       
   242 
       
   243 	wepArray[46] = amLowGravity
       
   244 
       
   245 	--wepArray[47] = amExtraDamage -- see 19
       
   246 	--wepArray[48] = amExtraTime	-- see 32
       
   247 
       
   248 	--wepArray[49] = amResurrector
       
   249 	--wepArray[50] = amTardis
       
   250 
       
   251 	wepArrayCount = 47
       
   252 
       
   253 	----------------------------
       
   254 
       
   255 	utilArray[0] = amBlowTorch
       
   256 	utilArray[1] = amPickHammer
       
   257 	utilArray[2] = amGirder
       
   258 	utilArray[3] = amPortalGun
       
   259 
       
   260 	utilArray[4] = amRope
       
   261 	utilArray[5] = amParachute
       
   262 	utilArray[6] = amTeleport
       
   263 	utilArray[7] = amJetpack
       
   264 
       
   265 	utilArray[8] = amInvulnerable
       
   266 	utilArray[9] = amLaserSight
       
   267 	utilArray[10] = amVampiric
       
   268 
       
   269 	utilArray[11] = amLowGravity
       
   270 	utilArray[12] = amExtraDamage
       
   271 	utilArray[13] = amExtraTime
       
   272 
       
   273 	utilArray[14] = amSnowball
       
   274 
       
   275 	--utilArray[14] = amResurrector
       
   276 	--utilArray[15] = amTardis
       
   277 
       
   278 	utilArrayCount = 15
       
   279 
   168 
   280 	runOnGears(StartingSetUp)
   169 	runOnGears(StartingSetUp)
   281 	runOnGears(ConvertValues)
   170 	runOnGears(ConvertValues)
   282 
   171 
   283 
   172 
   333 
   222 
   334 end
   223 end
   335 
   224 
   336 function onAmmoStoreInit()
   225 function onAmmoStoreInit()
   337 	SetAmmo(amSkip, 9, 0, 0, 0)
   226 	SetAmmo(amSkip, 9, 0, 0, 0)
       
   227 	SetAmmo(amKamikaze, 9, 0, 0, 0)
   338 	--SetAmmo(amSwitch, 9, 0, 0, 0) -------1
   228 	--SetAmmo(amSwitch, 9, 0, 0, 0) -------1
   339 end
   229 end
   340 
   230