--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/Android-build/SDL-android-project/assets/Data/Scripts/Multiplayer/The_Specialists.lua Sat Aug 18 18:11:04 2012 +0200
@@ -0,0 +1,291 @@
+----------------------------------
+-- THE SPECIALISTS MODE 0.7
+-- 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
+
+----------------
+-- version 0.3
+----------------
+-- added switching on start
+-- removed switch from engineer weaponset
+
+----------------
+-- version 0.4
+----------------
+-- Attempted to:
+-- fix potential switch explit
+-- improve user feedback on start
+
+----------------
+-- version 0.5
+----------------
+-- provision for variable minetimer / demo mines set to 5000ms
+-- don't autoswitch if player only has 1 hog on his team
+
+----------------
+-- version 0.6
+----------------
+-- for the meanwhile, don't drop any crates except health crates
+
+----------------
+-- version 0.7
+----------------
+-- perhogadmsdf :D :D :D :D
+
+--------------------
+--TO DO
+--------------------
+
+-- balance hog health, maybe
+-- add proper gameflag checking, maybe (so that we can throw in a .cfg and let the users break everything)
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+loadfile(GetDataPath() .. "Scripts/Tracker.lua")()
+
+local numhhs = 0
+local hhs = {}
+
+local currName
+local lastName
+local started = false
+local switchStage = 0
+
+local hogCounter
+
+function CountHog(gear)
+ hogCounter = hogCounter +1
+end
+
+function onNewAmmoStore(groupIndex, hogIndex)
+
+ SetAmmo(amSkip, 9, 0, 0, 0)
+
+ if hogIndex == 0 then
+ SetAmmo(amBazooka, 1, 0, 0, 0)
+ SetAmmo(amGrenade, 1, 0, 0, 0)
+ SetAmmo(amShotgun, 1, 0, 0, 0)
+ elseif hogIndex == 1 then
+ SetAmmo(amGirder, 2, 0, 0, 0)
+ SetAmmo(amBlowTorch, 1, 0, 0, 0)
+ SetAmmo(amPickHammer, 1, 0, 0, 0)
+ elseif hogIndex == 2 then
+ SetAmmo(amRope, 9, 0, 0, 0)
+ SetAmmo(amParachute, 9, 0, 0, 0)
+ SetAmmo(amFirePunch, 1, 0, 0, 0)
+ elseif hogIndex == 3 then
+ SetAmmo(amDynamite, 1, 0, 0, 0)
+ SetAmmo(amMine, 1, 0, 0, 0)
+ SetAmmo(amDrill, 1, 0, 0, 0)
+ elseif hogIndex == 4 then
+ SetAmmo(amSniperRifle, 1, 0, 0, 0)
+ SetAmmo(amDEagle, 1, 0, 0, 0)
+ SetAmmo(amPortalGun, 2, 0, 0, 0)
+ elseif hogIndex == 5 then
+ SetAmmo(amSeduction, 9, 0, 0, 0)
+ SetAmmo(amResurrector, 1, 0, 0, 0)
+ SetAmmo(amInvulnerable, 1, 0, 0, 0)
+ elseif hogIndex == 6 then
+ SetAmmo(amFlamethrower, 1, 0, 0, 0)
+ SetAmmo(amMolotov, 1, 0, 0, 0)
+ SetAmmo(amNapalm, 1, 0, 0, 0)
+ elseif hogIndex == 7 then
+ SetAmmo(amBaseballBat, 1, 0, 0, 0)
+ SetAmmo(amGasBomb, 1, 0, 0, 0)
+ SetAmmo(amKamikaze, 1, 0, 0, 0)
+ end
+
+end
+
+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], "sf_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 onGameInit()
+ GameFlags = gfRandomOrder + gfResetWeps + gfInfAttack + gfPlaceHog +gfPerHogAmmo
+ Delay = 10
+ HealthCaseProb = 100
+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
+ )
+
+ trackTeams()
+
+end
+
+
+function onNewTurn()
+ currName = GetHogName(CurrentHedgehog)
+ lastName = GetHogName(CurrentHedgehog)
+ started = true
+ switchStage = 0
+end
+
+function onGameTick20()
+
+ if (CurrentHedgehog ~= nil) then
+
+ currName = GetHogName(CurrentHedgehog)
+
+ if (currName ~= lastName) and (switchStage > 5) then
+ AddCaption(loc("Switched to ") .. currName .. "!")
+ end
+
+ if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) and (switchStage < 5) then
+
+ AddCaption(loc("Prepare yourself") .. ", " .. currName .. "!")
+
+ hogCounter = 0
+ runOnHogsInTeam(CountHog, GetHogTeamName(CurrentHedgehog) )
+
+ if hogCounter > 1 then
+
+ switchStage = switchStage + 1
+
+ if switchStage == 1 then
+ AddAmmo(CurrentHedgehog, amSwitch, 1)
+
+ elseif switchStage == 2 then
+ ParseCommand("setweap " .. string.char(amSwitch))
+ elseif switchStage == 3 then
+ SetGearMessage(CurrentHedgehog,gmAttack)
+ elseif switchStage == 4 then
+ switchStage = 6
+ AddAmmo(CurrentHedgehog, amSwitch, 0)
+ end
+
+ else
+ switchStage = 6
+ end
+
+
+ end
+
+ lastName = currName
+
+ end
+
+end
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ elseif (GetGearType(gear) == gtMine) and (started == true) then
+ SetTimer(gear,5000)
+ end
+
+ if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+ trackGear(gear)
+ end
+
+
+end
+
+function onGearDelete(gear)
+ if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+ trackDeletion(gear)
+ end
+end
+
+function onAmmoStoreInit()
+--
+end
+