Chaosforge Forum

  • August 17, 2022, 06:46
  • Welcome, Guest
Please login or register.



Login with username, password and session length
Pages: [1]

Author Topic: TerminatorRL  (Read 2103 times)

yaflhdztioxo

  • Programmer
  • Local Inquisitor
  • Captain
  • *
  • *
  • Offline Offline
  • Posts: 298
  • Lost Sole
    • View Profile
TerminatorRL
« on: April 09, 2010, 21:31 »

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 :)

Code: [Select]
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.
Logged
Pages: [1]