Advertisement
Guest User

Untitled

a guest
Apr 15th, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.74 KB | None | 0 0
  1. -- Custom monitors
  2. local function MONITOR(doomednum, name, sprite, action, var1, var2)
  3.     --[[ Arg    Example              Desc
  4.     doomednum   5001                 Map thing # of the object
  5.          name   "FIREFLOWERMONITOR"  Internal name (don't declare freeslots for this!)
  6.        sprite   SPR_FLTV             Sprite set to use (A=monitor, B=icon, C-E=flip - DO freeslot this beforehand!)
  7.        action   A_CustomPower        Action for the monitor to run when popped
  8.          var1   pw_shield            Var1 for above action
  9.          var2   SH_FIREFLOWER        Var2 for above action
  10.     ]]
  11.     freeslot("MT_"..name, "MT_"..name.."ICO")
  12.     local montype = EvalMath("MT_"..name)
  13.    
  14.     for i=1,7 do
  15.         freeslot("S_"..name..i)
  16.     end
  17.     local monstate = EvalMath("S_"..name..1)
  18.    
  19.     -- Now create the monitor in question
  20.     mobjinfo[montype] = {
  21.         doomednum = doomednum,
  22.         spawnstate = monstate,
  23.         spawnhealth = 1,
  24.         reactiontime = 8,
  25.         painstate = monstate,
  26.         deathstate = monstate+2,
  27.         deathsound = sfx_pop,
  28.         speed = MT_MONITOREXPLOSION,
  29.         radius = 16*FRACUNIT,
  30.         height = 32*FRACUNIT,
  31.         mass = 100,
  32.         damage = montype+1,
  33.         flags = MF_SOLID|MF_SHOOTABLE|MF_MONITOR
  34.     }
  35.    
  36.     mobjinfo[montype+1] = {
  37.         spawnstate = monstate+2,
  38.         seesound = sfx_shield,
  39.         speed = 2*FRACUNIT,
  40.         damage = 62*FRACUNIT,
  41.         flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY|MF_NOGRAVITY|MF_BOXICON
  42.     }
  43.    
  44.     states[monstate+0] = {sprite,A,2,nil,0,0,monstate+1}
  45.     states[monstate+1] = {SPR_MTEX,A,1,nil,0,0,monstate}
  46.     states[monstate+2] = {sprite,B,4,A_MonitorPop,0,0,monstate+3}
  47.     states[monstate+3] = {sprite,C,4,nil,0,0,monstate+4}
  48.     states[monstate+4] = {sprite,D,4,nil,0,0,monstate+5}
  49.     states[monstate+5] = {sprite,E,4,nil,0,0,monstate+6}
  50.     states[monstate+6] = {sprite,B,4,action,var1,var2,S_NULL}
  51. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement