This came about after some kicking around in IRC. The actual level only took about an hour to create. It's rough, but it's not exactly meant to be Citizen Kane :)
local t2_plot = function ()
outputsave()
Clear()
bloodslide()
clearkeybuf()
plotwrite(6, 7, RED, 60, "Three million humans lost their money on July 2nd, 2003.",
" ",
"The viewers of the abomination called the movie discontinuity.",
"They lived only to face a new sequel, and remake after remake...")
if escapepressed() then
return
end
enter()
Clear()
Update()
plotwrite(6, 8, RED, 60, "Filmnet, the company that would eventually acquire the franchise,",
"sent two terminators back through time.",
"Their mission: to prevent the sequels and restore the property's value.")
if escapepressed() then
return
end
enter()
Clear()
Update()
plotwrite(6, 8, RED, 60, "The first terminator was programmed to find James Cameron",
"and convince him to put a stop to the new film.",
"It failed.")
if escapepressed() then
return
end
enter()
Clear()
Update()
plotwrite(6, 8, RED, 60, "The second was set to strike at the movie itself",
"while it was still filming.",
"It was just a matter of who would go down first.")
if escapepressed() then
return
end
enter()
clearkeybuf()
end
--ground
Cells{
sID = "t2_ground",
name = "ground",
ascii = "\249",
asciilow = ".",
color = LIGHTGRAY,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
Cells{
sID = "t2_rock",
name = "ground",
ascii = "\249",
asciilow = ".",
color = BROWN,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
Cells{
sID = "t2_road",
name = "road",
ascii = "\249",
asciilow = ".",
color = DARKGRAY,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
Cells{
sID = "t2_roadmarker",
name = "road marker",
ascii = "\249",
asciilow = ".",
color = YELLOW,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
Cells{
sID = "t2_grass1",
name = "grass",
ascii = "\249",
asciilow = ".",
color = GREEN,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
Cells{
sID = "t2_grass2",
name = "grass",
ascii = "\249",
asciilow = ".",
color = LIGHTGREEN,
color_dark = DARKGRAY,
set = CELLSET_FLOORS,
flags = { CF_OVERLAY },
bloodto = "blood",
}
--walls
Cells{
sID = "t2_void",
name = "void",
ascii = " ",
color = BLACK,
color_dark = BLACK,
set = CELLSET_WALLS,
flags = {CF_BLOCKLOS, CF_BLOCKMOVE, CF_MULTISPRITE, CF_STICKWALL},
}
--movie stuff
Cells{
sID = "t2_camera",
name = "movie camera",
ascii = "%",
color = DARKGRAY,
armor = 3,
hp = 3,
flags = { CF_BLOCKMOVE, CF_FRAGILE, CF_OVERLAY },
}
Cells{
sID = "t2_lights",
name = "lights",
ascii = "%",
color = LIGHTGRAY,
armor = 3,
hp = 3,
flags = { CF_BLOCKMOVE, CF_FRAGILE, CF_OVERLAY },
}
Cells{
sID = "t2_bluescreen", --
name = "screen",
ascii = "=",
color = DARKGRAY,
armor = 3,
hp = 10,
flags = { CF_BLOCKMOVE, CF_OVERLAY },
}
Cells{
sID = "t2_chair",
name = "director's chair",
ascii = "/",
color = BLUE,
armor = 2,
hp = 1,
flags = { CF_PUSHABLE, CF_BLOCKMOVE, CF_FRAGILE, CF_OVERLAY },
}
--enemies
Beings{
name = "guard",
sID = "t2_guard",
ascii = "@",
color = BROWN,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 1,
sprite = 0,
desc = "Security guards hired for the shoot",
flags = { BF_OPENDOORS },
OnCreate = function()
Being.setWeapon(ITEM_PISTOL)
Being.addItem(ITEM_AMMO, 30)
end,
}
Beings{
name = "worker",
sID = "t2_worker",
ascii = "@",
color = RED,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 0,
sprite = 0,
desc = "Lowly workers",
flags = { BF_OPENDOORS, BF_DISTANCE },
}
Beings{
name = "Arnold Schwarzenegger",
sID = "t2_arnie",
ascii = "@",
color = DARKGRAY,
toDam = 1,
toHit = 0,
HP = 15,
speed = 100,
corpse = true,
danger = 1,
sprite = 0,
desc = "The Terminator himself.",
flags = { BF_USESITEMS, BF_UNIQUENAME, BF_OPENDOORS },
OnDie = function()
UI.msg("Hey! No killing the Governator!")
end,
}
Beings{
name = "Jonathan Mostow",
sID = "t2_director",
ascii = "@",
color = LIGHTBLUE,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 1,
sprite = 0,
desc = "The film's director.",
flags = { BF_USESITEMS, BF_UNIQUENAME, BF_BOSS, BF_OPENDOORS, BF_DISTANCE },
OnDie = function()
UI.msg("Terminated.")
end,
}
Beings{
name = "Nick Stahl",
sID = "t2_actor1",
ascii = "@",
color = WHITE,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 1,
sprite = 0,
desc = "The whiny lead.",
flags = { BF_UNIQUENAME, BF_OPENDOORS, BF_DISTANCE },
}
Beings{
name = "Claire Danes",
sID = "t2_actor2",
ascii = "@",
color = WHITE,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 1,
sprite = 0,
desc = "The other whiny lead.",
flags = { BF_UNIQUENAME, BF_OPENDOORS, BF_DISTANCE },
}
Beings{
name = "Kristanna Loken",
sID = "t2_actor3",
ascii = "@",
color = WHITE,
toDam = 0,
toHit = 0,
HP = 10,
speed = 90,
corpse = true,
danger = 1,
sprite = 0,
desc = "The new terminator",
flags = { BF_UNIQUENAME, BF_OPENDOORS, BF_DISTANCE },
}
Levels("CUSTOM",{
name = "Hell's Arena",
Create = function ()
t2_plot()
Level.fill(CELL_T2_VOID)
Level.tile(".", CELL_FLOOR)
Level.tile(",", CELL_T2_GROUND)
Level.tile("#", CELL_WALL)
Level.tile("+", CELL_DOOR)
Level.tile("R", CELL_T2_ROAD)
Level.tile("S", CELL_T2_ROADMARKER)
Level.tile("=", CELL_T2_BLUESCREEN)
Level.tile("%", CELL_T2_CAMERA)
Level.tile("O", CELL_T2_LIGHTS)
Level.tile("C", CELL_T2_CHAIR)
Level.tile("1", CELL_FLOOR, { being = NPC_T2_GUARD})
Level.tile("2", CELL_FLOOR, { being = NPC_T2_WORKER})
Level.tile("3", CELL_T2_GROUND, { being = NPC_T2_ARNIE})
Level.tile("4", CELL_T2_GROUND, { being = NPC_T2_DIRECTOR})
Level.tile("5", CELL_T2_GROUND, { being = NPC_T2_ACTOR1})
Level.tile("6", CELL_T2_GROUND, { being = NPC_T2_ACTOR2})
Level.tile("7", CELL_T2_GROUND, { being = NPC_T2_ACTOR3})
Level.tile("8", CELL_T2_GROUND, { being = NPC_T2_WORKER})
Level.put(2,2,{
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,########,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,#####,,,",
",,,,,,#1.....#,,,,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,#...#,,,",
",,,,,,#......+,,,,,,,,,================,,,,,,,,,,,,,,,,,RRRRSRRRR,,,#.2.#,,,",
",,,,,,#......#,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,,,,,,,,,,,RRRRSRRRR,,,##+##,,,",
",,,,,,#......#,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,#......#,,,,,,,O,,,,,,,,,,,,,,,,,,,O,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,#......#,,,,,,,,,,,,,,,,,,,,,,%,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,8,,,#......+,,,,6,,,,%,,,,,,,,,,,,,,O,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,#1.....#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRSRRRR,,,,,,,,,,,",
",,,,,,########,,,,,,,,,,,,,,C,,%,,,,,,,,,,,,,,,,,,,,,,,,RRRRSRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,,,,,,,8,,,,,,,,,,7,,,,,,,##############,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,8,,,#............#,,,,,,,,,,,RRRRSRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#............#,,,,,,,,,,,RRRRSRRRR,,,,,,,,,,,",
",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#............#,,,,,,,,,,,RRRRRRRRR,,,,,,,,,,,",
})
Level.scatter(2, 2, MAXX-1, MAXY-1, CELL_T2_GROUND, CELL_T2_GRASS1, 40)
Level.scatter(2, 2, MAXX-1, MAXY-1, CELL_T2_GROUND, CELL_T2_GRASS2, 10)
Level.scatter(2, 2, MAXX-1, MAXY-1, CELL_T2_GROUND, CELL_T2_ROCK, 100)
Level.player(68,10)
end,
OnEnter = function ()
Player.clearInv()
Player.setWeapon( ITEM_SHOTGUN )
Player.addItem( ITEM_SHELL, 50 )
Player.hpmax = 1000
Player.hp = 1000
Player.armor = 200
end,
})
If anyone wants to adopt the level or idea they can.