diff -r 562070d3f978 -r 09beef0752ab share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua Tue Jun 21 20:49:47 2011 +0200 @@ -0,0 +1,256 @@ +---------------------------------- +-- 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 + + +