---------------------------------- -- 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