share/hedgewars/Data/Maps/FlightJoust/map.lua
author smaxx
Sat, 07 Aug 2010 01:45:31 +0200
changeset 3730 aecea9aa53dc
parent 3726 5909c3c19bb1
child 3731 f336f8d52f7e
permissions -rw-r--r--
Engine: * Added a script function to spawn health crates (burp)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3730
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     1
local hogs = {}
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     2
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     3
function mapM_(func, tbl)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     4
    for i,v in pairs(tbl) do
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     5
        func(v)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     6
    end 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     7
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     8
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
     9
function map(func, tbl)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    10
    local newtbl = {}
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    11
    for i,v in pairs(tbl) do
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    12
        newtbl[i] = func(v)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    13
    end 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    14
    return newtbl
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    15
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    16
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    17
function filter(func, tbl)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    18
    local newtbl = {}
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    19
    for i,v in pairs(tbl) do
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    20
        if func(v) then
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    21
            table.insert(newtbl, v)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    22
        end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    23
    end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    24
    return newtbl
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    25
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    26
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    27
function onGameInit()
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    28
    GameFlags = gfSolidLand + gfDivideTeams
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    29
    TurnTime = 10000
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    30
    CaseFreq = 0 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    31
    LandAdds = 0 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    32
    Explosives = 0 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    33
    Delay = 500 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    34
    SuddenDeathTurns = 99999 -- "disable" sudden death
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    35
    Theme = Compost
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    36
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    37
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    38
function onGameStart()
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    39
    local offset = 50
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    40
    local team1hh = filter(function(h) return GetHogClan(h) == 0 end, hogs)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    41
    local team2hh = filter(function(h) return GetHogClan(h) == 1 end, hogs)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    42
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    43
    for i,h in ipairs(team1hh) do
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    44
        SetGearPosition(h, 250+(i-1)*offset, 1000)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    45
    end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    46
    for i,h in ipairs(team2hh) do
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    47
        SetGearPosition(h, 3500-(i-1)*offset, 1000)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    48
    end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    49
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    50
    SpawnHealthCrate(1800, 1200)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    51
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    52
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    53
function onAmmoStoreInit()
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    54
    SetAmmo(amRCPlane, 9, 0, 0, 0)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    55
    SetAmmo(amSkip, 9, 0, 0, 0)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    56
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    57
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    58
function onGearAdd(gear)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    59
    if GetGearType(gear) == gtRCPlane then
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    60
        SetTimer(gear,60000)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    61
    end 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    62
    if GetGearType(gear) == gtHedgehog then
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    63
        table.insert(hogs, gear)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    64
    end 
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    65
end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    66
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    67
function onGearDelete(gear)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    68
    if GetGearType(gear) == gtCase then
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    69
        SpawnHealthCrate(1600 + math.random(550), 1150)
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    70
    end
aecea9aa53dc Engine:
smaxx
parents: 3726
diff changeset
    71
end