-- Hedgewars - Knockball for 2+ Players HedgewarsScriptLoad("Scripts/Locale.lua")() local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0} local ball = nil local started = false function onGameInit() GameFlags = gfSolidLand + gfInvulnerable + gfDivideTeams TurnTime = 20000 CaseFreq = 0 MinesNum = 0 Explosives = 0 Delay = 500 SuddenDeathTurns = 99999 -- "disable" sudden death end function onGameStart() ShowMission(loc("Hedgewars-Knockball"), loc("Not So Friendly Match"), loc("Bat balls at your enemies and|push them into the sea!"), -amBaseballBat, 0) started = true end function onGameTick() if ball ~= nil and GetFollowGear() ~= nil then FollowGear(ball) end end function onAmmoStoreInit() SetAmmo(amBaseballBat, 9, 0, 0, 0) SetAmmo(amSkip, 9, 0, 0, 0) end function onGearAdd(gear) if GetGearType(gear) == gtShover then ball = AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), gtBall, 0, 0, 0, 0) if ball ~= nil then local dx, dy = GetGearVelocity(gear) SetGearVelocity(ball, dx * 2, dy * 2) SetState(ball, 0x200) -- temporary - might change! SetTag(ball, 8) -- baseball skin FollowGear(ball) end end end function onGearDelete(gear) if not started then return end if gear == ball then ball = nil elseif (GetGearType(gear) == gtHedgehog) and CurrentHedgehog ~= nil then local clan = GetHogClan(CurrentHedgehog) local s if clan ~= nil then if GetHogClan(CurrentHedgehog) ~= GetHogClan(gear) then score[clan] = score[clan] + 1 s = string.format(loc("%s is out and Team %d|scored a point!| |Score:"), GetHogName(gear), clan + 1) else score[clan] = score[clan] - 1 s = string.format(loc("%s is out and Team %d|scored a penalty!| |Score:"), GetHogName(gear), clan + 1) end s = s .. " " .. score[0] for i = 1, ClansCount - 1 do s = s .. " - " .. score[i] end ShowMission(loc("Hedgewars-Knockball"), loc("Not So Friendly Match"), s, -amBaseballBat, 0) end end end