Warlord¶
A boss fight: the Warlord, a tank with two health phases, its own boss bar and music, who calls in riflemen on foot. Gunships escort it at high heat. It announces itself on the radio with a face of its own. Wrecking it three times earns a paint, and lockboxes can hold its WAR BONDS Safehouse line.
| Mod id | Kind | Files |
|---|---|---|
warlord |
Lua code | 11 |
Copy the whole folder into mods/ in the save folder to try it. Browse it on GitHub.
mod.json¶
{"id": "warlord", "title": "Warlord", "version": "1.0", "api": 1, "author": "Taxation Evasion",
"description": "A boss fight: the Warlord, a tank with two health phases, its own boss bar and music, who calls in riflemen on foot. Gunships escort it at high heat. It announces itself on the radio with a face of its own. Wrecking it three times earns a paint, and lockboxes can hold its WAR BONDS Safehouse line.",
"scripts": ["main.lua"]}
main.lua¶
-- The Warlord's code: everything else about the fight (its health, phases,
-- bar title and music) is in enemies.json. Each wreck counts toward the
-- GUNMETAL paint's contract (counters.json, paints.json).
game.enemy('warlord.warlord', {
-- Each phase calls in a bigger squad of riflemen.
phase = function(s, e, n)
for _ = 1, n + 1 do game.spawn(s, 'warlord.rifleman') end
end,
-- Its wreck goes up and takes nearby units with it.
death = function(s, e)
game.blast(s, e.x, e.y, 60, 120)
game.count(s, 'warlord.warlords_wrecked')
end,
})
announcer.json¶
[
{"id": "warlord.warlord", "lines": ["This is the Warlord speaking.", "Pull over and pay your taxes."],
"enemy": "warlord.warlord", "portrait": "warlord.general", "priority": 4, "ttl": 10,
"sound": "army_radio_01", "volume": 0.6}
]
counters.json¶
enemies.json¶
[
{"id": "warlord.rifleman", "base": "soldier", "label": "RIFLEMAN", "hp": 10, "gold": 15,
"spawn": {"heat": 3, "every": 30, "count": 3, "max_alive": 6}},
{"id": "warlord.gunship", "base": "helicopter", "label": "WAR GUNSHIP", "hp": 40, "gold": 90,
"spawn": {"heat": 4, "every": 60, "max_alive": 1},
"weapon": {"every": 2, "range": 260, "speed": 200, "lanes": 2, "spread": 8}},
{"id": "warlord.warlord", "base": "tank", "label": "WARLORD", "hp": 400, "gold": 600,
"spawn": {"heat": 4, "every": 120},
"boss": {"title": "THE WARLORD", "intro": "WARLORD INBOUND", "music": "mixtape_brute_force",
"phases": [
{"at": 0.6, "weapon": {"every": 1.2, "range": 240, "speed": 190, "lanes": 3, "spread": 14}},
{"at": 0.25, "weapon": {"every": 0.6, "range": 260, "speed": 220, "lanes": 5, "spread": 12}}]},
"behavior": "warlord.warlord"}
]
lockbox.json¶
paints.json¶
[
{"id": "warlord.gunmetal", "name": "GUNMETAL", "rgb": [84, 90, 98], "group": "COMBAT",
"counter": "warlord.warlords_wrecked", "target": 3, "requirement": "Wreck the Warlord 3 times"}
]
safehouse.json¶
[
{"id": "warlord.war_bonds", "label": "WAR BONDS", "line": "TAKEDOWNS DROP +4% CASH PER LEVEL",
"max": 5, "base": 800, "lockbox": true, "effects": {"bounty": 0.04}}
]
sprites/general_idle.png¶
![]()
sprites/general_talk_a.png¶
![]()
sprites/general_talk_b.png¶
![]()