share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua
author nemo
Sun, 26 Jun 2011 19:42:44 -0400
changeset 5325 261b79ba22b1
parent 5277 09beef0752ab
child 5362 5f0c46e78e50
permissions -rw-r--r--
Lua update. New phrases. Try to remove some duplicates by avoiding use of space and : in short common phrases. Removed localisation of some script names, since we can't localise that in frontend yet anyway, without screwing up multiplayer.

----------------------------------
-- THE SPECIALISTS MODE 0.2
-- by mikade
----------------------------------

-- version history
-----------------
-- version 0.1
-----------------
-- concept test

----------------
-- version 0.2
----------------
-- added gfRandomOrder to gameflags
-- removed some deprecated variables/methods
-- fixed lack of portal reset

--------------------
--TO DO
--------------------

-- add proper gameflag checking, maybe
-- set crate drops etc.
-- assuming place hog mode + gfinfattack doesn't get the fix: somehow end turn after teleport

loadfile(GetDataPath() .. "Scripts/Locale.lua")()

local numhhs = 0 
local hhs = {} 

local currName 
local lastName

function CreateTeam()

	currTeam = ""
	lastTeam = ""
	z = 0

	for i = 0, (numhhs-1) do

		currTeam = GetHogTeamName(hhs[i])

		if currTeam == lastTeam then
			z = z + 1
		else
			z = 1		
		end

		if z == 1 then

			SetHogName(hhs[i],"Soldier")
			SetHogHat(hhs[i], "Vega")
			SetHealth(hhs[i],200)

		elseif z == 2 then

			SetHogHat(hhs[i], "Glasses")
			SetHogName(hhs[i],"Engineer")

		elseif z == 3 then

			SetHogName(hhs[i],"Ninja")			
			SetHogHat(hhs[i], "NinjaFull")
			SetHealth(hhs[i],80)

		elseif z == 4 then

			SetHogName(hhs[i],"Demo")			
			SetHogHat(hhs[i], "Skull")
			SetHealth(hhs[i],200)

		elseif z == 5 then

			SetHogName(hhs[i],"Sniper")			
			SetHogHat(hhs[i], "Sniper")
			SetHealth(hhs[i],120)

		elseif z == 6 then

			SetHogName(hhs[i],"Saint")			
			SetHogHat(hhs[i], "angel")
			SetHealth(hhs[i],300)

		elseif z == 7 then

			SetHogName(hhs[i],"Pyro")			
			SetHogHat(hhs[i], "Gasmask")
			SetHealth(hhs[i],150)
		
		elseif z == 8 then
		
			SetHogName(hhs[i],"Loon")			
			SetHogHat(hhs[i], "clown")
			SetHealth(hhs[i],100)

		end

		lastTeam = GetHogTeamName(hhs[i])

	end	

end

function ResetAllAmmo()

	AddAmmo(CurrentHedgehog, amBazooka, 0)
	AddAmmo(CurrentHedgehog, amGrenade, 0)
	AddAmmo(CurrentHedgehog, amShotgun, 0)
	
	AddAmmo(CurrentHedgehog, amGirder, 0)
	AddAmmo(CurrentHedgehog, amBlowTorch, 0)
	AddAmmo(CurrentHedgehog, amPickHammer, 0)
	AddAmmo(CurrentHedgehog, amSwitch, 0)

	AddAmmo(CurrentHedgehog, amRope, 0)
	AddAmmo(CurrentHedgehog, amParachute, 0)
	AddAmmo(CurrentHedgehog, amFirePunch, 0)

	AddAmmo(CurrentHedgehog, amDynamite, 0)
	AddAmmo(CurrentHedgehog, amDrill, 0)
	AddAmmo(CurrentHedgehog, amMine, 0)

	AddAmmo(CurrentHedgehog, amSniperRifle, 0)
	AddAmmo(CurrentHedgehog, amDEagle, 0)
	AddAmmo(CurrentHedgehog, amPortalGun, 0)

	AddAmmo(CurrentHedgehog, amSeduction, 0)
	AddAmmo(CurrentHedgehog, amResurrector, 0)
	AddAmmo(CurrentHedgehog, amInvulnerable, 0)
	
	AddAmmo(CurrentHedgehog, amFlamethrower, 0)
	AddAmmo(CurrentHedgehog, amMolotov, 0)
	AddAmmo(CurrentHedgehog, amNapalm, 0)
	
	AddAmmo(CurrentHedgehog, amBaseballBat, 0)
	AddAmmo(CurrentHedgehog, amGasBomb, 0)
	AddAmmo(CurrentHedgehog, amKamikaze, 0)

end

function AssignAmmo()

	ResetAllAmmo()	
	n = GetHogName(CurrentHedgehog)

	AddAmmo(CurrentHedgehog, amSkip,100)

	if n == "Soldier" then 
		AddAmmo(CurrentHedgehog, amBazooka,1)
		AddAmmo(CurrentHedgehog, amGrenade,1)
		AddAmmo(CurrentHedgehog, amShotgun,1)
	elseif n == "Engineer" then
		AddAmmo(CurrentHedgehog, amGirder, 2)
		AddAmmo(CurrentHedgehog, amBlowTorch, 1)
		AddAmmo(CurrentHedgehog, amPickHammer, 1)	
		AddAmmo(CurrentHedgehog, amSwitch, 2)	
	elseif n == "Ninja" then
		AddAmmo(CurrentHedgehog, amRope, 100)
		AddAmmo(CurrentHedgehog, amParachute, 100)
		AddAmmo(CurrentHedgehog, amFirePunch, 1)
	elseif n == "Demo" then
		AddAmmo(CurrentHedgehog, amDynamite, 1)
		AddAmmo(CurrentHedgehog, amMine, 1)
		AddAmmo(CurrentHedgehog, amDrill, 1)
	elseif n == "Sniper" then
		AddAmmo(CurrentHedgehog, amSniperRifle, 1)
		AddAmmo(CurrentHedgehog, amDEagle, 1)
		AddAmmo(CurrentHedgehog, amPortalGun, 2)
	elseif n == "Saint" then
		AddAmmo(CurrentHedgehog, amSeduction, 100)
		AddAmmo(CurrentHedgehog, amResurrector, 1)
		AddAmmo(CurrentHedgehog, amInvulnerable, 1)
	elseif n == "Pyro" then
		AddAmmo(CurrentHedgehog, amFlamethrower, 1)
		AddAmmo(CurrentHedgehog, amMolotov, 1)
		AddAmmo(CurrentHedgehog, amNapalm, 1)
	elseif n == "Loon" then
		AddAmmo(CurrentHedgehog, amBaseballBat, 1)
		AddAmmo(CurrentHedgehog, amGasBomb, 1)
		AddAmmo(CurrentHedgehog, amKamikaze, 1)
	end

end

function onGameInit()
	GameFlags = gfRandomOrder + gfResetWeps + gfInfAttack + gfPlaceHog
	Delay = 10
end

function onGameStart()
   	
	CreateTeam()

	ShowMission	(
				loc("THE SPECIALISTS"),
				loc("a Hedgewars mini-game"),

				loc("Eliminate the enemy specialists.") .. "|" ..
				" " .. "|" ..

				loc("Game Modifiers: ") .. "|" ..
				loc("Per-Hog Ammo") .. "|" ..				
				loc("Weapons Reset") .. "|" ..				
				loc("Unlimited Attacks") .. "|" ..

				"", 4, 4000
				)

end


function onNewTurn()
	currName = GetHogName(CurrentHedgehog)
	lastName = GetHogName(CurrentHedgehog)
	AssignAmmo()
	AddAmmo(CurrentHedgehog, amSwitch, 1)
end

function onGameTick()

	if (CurrentHedgehog ~= nil) then

		currName = GetHogName(CurrentHedgehog)
		
		if currName ~= lastName then
			AddCaption(loc("Switched to ") .. currName .. "!")
			AssignAmmo()		
		end

		lastName = currName

	end

end

function onGearAdd(gear)
    
	if GetGearType(gear) == gtHedgehog then
		hhs[numhhs] = gear
		numhhs = numhhs + 1
	end

end

function onGearDelete(gear)
--
end

function onAmmoStoreInit()

end