share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua
changeset 14269 47af42f7ca8b
parent 14266 9b5a8147386f
child 14325 bd2bbd607f5e
equal deleted inserted replaced
14268:23eacb6f1c20 14269:47af42f7ca8b
    10 | |  | |  | ' `-'  / ' `-' ' `-'  || |  | |' `-' ;
    10 | |  | |  | ' `-'  / ' `-' ' `-'  || |  | |' `-' ;
    11 (___)(___)(___'.__.'   `.__.`.__.'_(___)(___)`.__.
    11 (___)(___)(___'.__.'   `.__.`.__.'_(___)(___)`.__.
    12 
    12 
    13 
    13 
    14 ----  Recommended settings:
    14 ----  Recommended settings:
    15 ----    * one hedgehog per team
    15 ----    * one hedgehog per team (forced by game)
       
    16 ----    * one team per clan
    16 ----    * 'Small' one-island map
    17 ----    * 'Small' one-island map
    17 
    18 
    18 --]]
    19 --]]
    19 
    20 
    20 HedgewarsScriptLoad("/Scripts/Locale.lua")
    21 HedgewarsScriptLoad("/Scripts/Locale.lua")
    21 HedgewarsScriptLoad("/Scripts/Tracker.lua")
    22 HedgewarsScriptLoad("/Scripts/Tracker.lua")
    22 HedgewarsScriptLoad("/Scripts/Params.lua")
    23 HedgewarsScriptLoad("/Scripts/Params.lua")
    23 
    24 
    24 --[[
    25 --[[
    25     MUTANT SCRIPT
    26     MUTANT SCRIPT
    26 
    27 ]]
    27     To Do:  -Clean-up this fucking piece of code
       
    28             -Debug
       
    29             -Find a girlfriend
       
    30             -Fix Sheepluva's hat  +[p]
       
    31             -Cookies
       
    32 -----------------------]]
       
    33 
    28 
    34 local hhs = {}
    29 local hhs = {}
    35 local crates = {}
    30 local crates = {}
    36 local numhhs = 0
    31 local numhhs = 0
    37 local meh = false
    32 local meh = false
   102 local mutantHat = "WhySoSerious"
    97 local mutantHat = "WhySoSerious"
   103 local feederHat = "poke_slowpoke"
    98 local feederHat = "poke_slowpoke"
   104 
    99 
   105 function rules()
   100 function rules()
   106 
   101 
       
   102     local mineStr
       
   103     if MinesTime < 0 then
       
   104         mineStr = loc("Mines time: 0s-5s")
       
   105     else
       
   106         mineStr = string.format(loc("Mines explode after %d s."), div(MinesTime, 1000))
       
   107     end
   107     local ruleSet = loc("Hedgehogs will be revived after their death.") .. "|" ..
   108     local ruleSet = loc("Hedgehogs will be revived after their death.") .. "|" ..
   108     string.format(loc("Mines explode after %d s."), div(MinesTime, 1000)) .. "|" ..
   109     mineStr .. "|" ..
   109     loc("The first hedgehog to kill someone becomes the Mutant.") .. "|" ..
   110     loc("The first hedgehog to kill someone becomes the Mutant.") .. "|" ..
   110     loc("The Mutant has super weapons and a lot of health.") .. "|" ..
   111     loc("The Mutant has super weapons and a lot of health.") .. "|" ..
   111     loc("The Mutant loses health quickly, but gains health by killing.") .. "|" ..
   112     loc("The Mutant loses health quickly, but gains health by killing.") .. "|" ..
   112     " |" ..
   113     " |" ..
   113     loc("Score points by killing other hedgehogs.") .. "|" ..
   114     loc("Score points by killing other hedgehogs.") .. "|" ..
   130     ShowMission(loc("Mutant"), loc("A Hedgewars tag game"), rules(), 1, 5000)
   131     ShowMission(loc("Mutant"), loc("A Hedgewars tag game"), rules(), 1, 5000)
   131 
   132 
   132 end
   133 end
   133 
   134 
   134 function onGameInit()
   135 function onGameInit()
   135     TurnTime = 20000
   136     -- Sudden Death would be weird
   136     WaterRise = 0
   137     WaterRise = 0
   137     HealthDecrease = 0
   138     HealthDecrease = 0
   138     EnableGameFlags(gfResetWeps, gfPerHogAmmo)
   139     -- Weapons must be reset for the Mutant mechanic to work
   139     HealthCaseProb=0
   140     EnableGameFlags(gfResetWeps)
   140     HealthCaseAmount=0
   141     -- King Mode messes with game too much
   141     MinesTime=1000
   142     DisableGameFlags(gfKing)
   142     CaseFreq = 2
       
   143 end
   143 end
   144 
   144 
   145 
   145 
   146 function limitHogs(gear)
   146 function limitHogs(gear)
   147     cnthhs = cnthhs + 1
   147     cnthhs = cnthhs + 1
   235 function onNewTurn()
   235 function onNewTurn()
   236 
   236 
   237     trackTeams()
   237     trackTeams()
   238     killsCounter = 0
   238     killsCounter = 0
   239 
   239 
   240     if mutant == nil then
   240     if mutant == nil and TotalRounds >= 0 then
   241         AddCaption( loc("First killer will mutate"), capcolDefault, capgrpGameState )
   241         AddCaption( loc("First killer will mutate"), capcolDefault, capgrpGameState )
   242     end
   242     end
   243 
   243 
   244     checkScore()
   244     checkScore()
   245 
   245