Code: Select all
class LightFlare : Actor {
Default {
+FIXMAPTHINGPOS
+LOOKALLAROUND
+NOTAUTOAIMED
+NOBLOCKMAP
+MOVEWITHSECTOR
+NOGRAVITY
+DROPOFF
+NOTELEPORT
+GHOST
+THRUACTORS
+BRIGHT
+NOINTERACTION
+NOCLIP
+RELATIVETOFLOOR
renderstyle "Add";
}
}
class ColumnFlare : LightFlare {
Default {
alpha 0.75;
scale 0.33;
}
States {
Spawn:
TNT1 A 0 NoDelay A_CheckSight(3);
TNT1 A 0 A_SetScale(0.33-random(1,5)*0.01);
TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,40,0,WARPF_NOCHECKPOSITION);
LENS A 2 bright;
loop;
}
}
class TechLampFlare : LightFlare {
Default {
alpha 0.75;
scale 0.42;
}
States {
Spawn:
TNT1 A 0 NoDelay A_CheckSight(3);
TNT1 A 0 A_SetScale(0.42-random(1,5)*0.01);
TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,70,0,WARPF_NOCHECKPOSITION);
LENS A 2 bright;
loop;
}
}
class LightEventHandler : EventHandler {
override void WorldThingSpawned(WorldEvent e) {
let a = e.Thing;
if (a is "Column") {
Spawn("ColumnFlare", pos.x, pos.y, pos.z + 40);
}
if (a is "TechLamp") {
Spawn("TechLampFlare", pos.x, pos.y, pos.z + 67);
}
}
}