mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
cascade stuff
This commit is contained in:
@@ -9,9 +9,16 @@
|
||||
mymob.visible.name = "visible"
|
||||
mymob.visible.screen_loc = ui_health
|
||||
|
||||
mymob.flash = new /obj/screen()
|
||||
mymob.flash.icon = 'icons/mob/screen1.dmi'
|
||||
mymob.flash.icon_state = "blank"
|
||||
mymob.flash.name = "flash"
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list(mymob.visible)
|
||||
mymob.client.screen += list(mymob.visible, mymob.flash)
|
||||
|
||||
/datum/hud/proc/corgi_hud()
|
||||
mymob.fire = new /obj/screen()
|
||||
@@ -44,9 +51,16 @@
|
||||
mymob.toxin.name = "toxin"
|
||||
mymob.toxin.screen_loc = ui_toxin
|
||||
|
||||
mymob.flash = new /obj/screen()
|
||||
mymob.flash.icon = 'icons/mob/screen1.dmi'
|
||||
mymob.flash.icon_state = "blank"
|
||||
mymob.flash.name = "flash"
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.oxygen, mymob.toxin)
|
||||
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.oxygen, mymob.toxin, mymob.flash)
|
||||
|
||||
/datum/hud/proc/brain_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
|
||||
mymob.blind = new /obj/screen()
|
||||
@@ -99,9 +113,16 @@
|
||||
mymob.zone_sel.overlays.len = 0
|
||||
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
|
||||
|
||||
mymob.flash = new /obj/screen()
|
||||
mymob.flash.icon = 'icons/mob/screen1.dmi'
|
||||
mymob.flash.icon_state = "blank"
|
||||
mymob.flash.name = "flash"
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list(mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged)
|
||||
mymob.client.screen += list(mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged, mymob.flash)
|
||||
|
||||
/datum/hud/proc/construct_hud()
|
||||
var/constructtype
|
||||
@@ -115,6 +136,13 @@
|
||||
else if(istype(mymob,/mob/living/simple_animal/construct/harvester))
|
||||
constructtype = "harvester"
|
||||
|
||||
mymob.flash = new /obj/screen()
|
||||
mymob.flash.icon = 'icons/mob/screen1.dmi'
|
||||
mymob.flash.icon_state = "blank"
|
||||
mymob.flash.name = "flash"
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
if(constructtype)
|
||||
mymob.fire = new /obj/screen()
|
||||
mymob.fire.icon = 'icons/mob/screen1_construct.dmi'
|
||||
@@ -147,7 +175,7 @@
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged)
|
||||
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged, mymob.flash)
|
||||
|
||||
switch(constructtype)
|
||||
if("artificer")
|
||||
@@ -181,7 +209,7 @@
|
||||
mymob.construct_spell5.name = "pylon"
|
||||
mymob.construct_spell5.screen_loc = ui_construct_spell5
|
||||
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.construct_spell2, mymob.construct_spell3, mymob.construct_spell4, mymob.construct_spell5)
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.construct_spell2, mymob.construct_spell3, mymob.construct_spell4, mymob.construct_spell5, mymob.flash)
|
||||
|
||||
if("wraith")
|
||||
mymob.construct_spell1 = new /obj/screen()
|
||||
@@ -190,7 +218,7 @@
|
||||
mymob.construct_spell1.name = "shift"
|
||||
mymob.construct_spell1.screen_loc = ui_construct_spell1
|
||||
|
||||
mymob.client.screen += mymob.construct_spell1
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.flash)
|
||||
|
||||
if("juggernaut")
|
||||
mymob.construct_spell1 = new /obj/screen()
|
||||
@@ -199,7 +227,7 @@
|
||||
mymob.construct_spell1.name = "juggerwall"
|
||||
mymob.construct_spell1.screen_loc = ui_construct_spell1
|
||||
|
||||
mymob.client.screen += mymob.construct_spell1
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.flash)
|
||||
|
||||
if("harvester")
|
||||
mymob.construct_spell1 = new /obj/screen()
|
||||
@@ -220,5 +248,5 @@
|
||||
mymob.construct_spell3.name = "harvest"
|
||||
mymob.construct_spell3.screen_loc = ui_construct_spell3
|
||||
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.construct_spell2, mymob.construct_spell3)
|
||||
mymob.client.screen += list(mymob.construct_spell1, mymob.construct_spell2, mymob.construct_spell3, mymob.flash)
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ datum/updateQueueWorker/proc/doWork()
|
||||
|
||||
if (istype(object) && !isturf(object) && !object.disposed && isnull(object.gcDestroyed)) // We only work with real objects
|
||||
call(object, procName)(arglist(arguments))
|
||||
else if (istype(object, /turf/unsimulated/wall/supermatter)) // Of course, everything has its exceptions
|
||||
call(object, procName)(arglist(arguments))
|
||||
|
||||
// If there's nothing left to execute
|
||||
// or we were killed while running the above code, mark finished and return.
|
||||
|
||||
@@ -60,8 +60,9 @@ In short:
|
||||
|
||||
runedec += 9000 //basically removing the rune cap
|
||||
|
||||
for(var/turf/T in world)
|
||||
T.update_lumcount(1, 255, 0, 0, 0)
|
||||
spawn()
|
||||
for(var/turf/T in world)
|
||||
T.update_lumcount(1, 255, 0, 0, 0)
|
||||
|
||||
ticker.StartThematic("endgame")
|
||||
|
||||
|
||||
@@ -3,24 +3,27 @@
|
||||
/obj/machinery/singularity/narsie/large/exit
|
||||
name = "Bluespace Rift"
|
||||
desc = "NO TIME TO EXPLAIN, JUMP IN"
|
||||
icon = 'icons/obj/mrclean.dmi' // Placeholder.
|
||||
icon_state = ""
|
||||
icon = 'icons/obj/rift.dmi'
|
||||
icon_state = "rift"
|
||||
|
||||
move_self = 0
|
||||
announce=0
|
||||
|
||||
layer=LIGHTING_LAYER+1 // ITS SO BRIGHT
|
||||
layer=LIGHTING_LAYER+2 // ITS SO BRIGHT
|
||||
|
||||
consume_range = 6
|
||||
|
||||
/obj/machinery/singularity/narsie/large/exit/New()
|
||||
..(cultspawn=0)
|
||||
processing_objects.Add(src)
|
||||
|
||||
/obj/machinery/singularity/narsie/large/exit/update_icon()
|
||||
overlays = 0
|
||||
|
||||
//if (target && !isturf(target))
|
||||
// overlays += "eyes"
|
||||
|
||||
/obj/machinery/singularity/narsie/large/exit/process()
|
||||
for(var/mob/M in player_list)
|
||||
if(M.client)
|
||||
M.see_rift(src)
|
||||
eat()
|
||||
|
||||
/obj/machinery/singularity/narsie/large/exit/acquire(var/mob/food)
|
||||
@@ -35,8 +38,8 @@
|
||||
else if (isturf(A))
|
||||
var/turf/T = A
|
||||
var/dist = get_dist(T, src)
|
||||
if (dist <= consume_range && !istype(T,/turf/space))
|
||||
T.ChangeTurf(/turf/space)
|
||||
if (dist <= consume_range && T.density)
|
||||
T.density = 0
|
||||
|
||||
for (var/atom/movable/AM in T.contents)
|
||||
if (AM == src) // This is the snowflake.
|
||||
|
||||
@@ -35,6 +35,11 @@
|
||||
set background = 1
|
||||
world << "<span class='sinister' style='font-size:22pt'>You are blinded by a brilliant flash of energy.</span>"
|
||||
|
||||
world << sound('sound/effects/cascade.ogg')
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
flick("e_flash", M.flash)
|
||||
|
||||
if(emergency_shuttle.direction==2)
|
||||
captain_announce("The emergency shuttle has returned due to bluespace distortion.")
|
||||
|
||||
@@ -44,7 +49,7 @@
|
||||
|
||||
for(var/area/ca in world)
|
||||
var/area/A=get_area_master(ca)
|
||||
if(!istype(A,/area) || A.name=="Space")
|
||||
if(!istype(A,/area) || A.name=="Space" || istype(A,/area/beach))
|
||||
continue
|
||||
|
||||
// No cheating~
|
||||
@@ -87,6 +92,16 @@
|
||||
APC.emagged = 1
|
||||
APC.queue_icon_update()
|
||||
|
||||
APC.areaMaster.power_light = 0
|
||||
APC.areaMaster.power_equip = 0
|
||||
APC.areaMaster.power_environ = 0
|
||||
APC.areaMaster.power_change()
|
||||
|
||||
spawn()
|
||||
for(var/turf/T in world)
|
||||
if(T.z != map.zCentcomm)
|
||||
T.update_lumcount(1, 160, 255, 0, 0)
|
||||
|
||||
// Disable Nar-Sie.
|
||||
ticker.mode.eldergod=0
|
||||
|
||||
|
||||
@@ -212,6 +212,23 @@
|
||||
del(narsimage)
|
||||
del(narglow)
|
||||
|
||||
/mob/proc/see_rift(var/obj/machinery/singularity/narsie/large/exit/R)
|
||||
if((R.z == src.z) && (get_dist(R,src) <= (R.consume_range+10)) && !(R in view(src)))
|
||||
if(!riftimage)
|
||||
riftimage = image('icons/obj/rift.dmi',src.loc,"rift",LIGHTING_LAYER+2,1)
|
||||
riftimage.mouse_opacity = 0
|
||||
|
||||
var/new_x = 32 * (R.x - src.x) + R.pixel_x
|
||||
var/new_y = 32 * (R.y - src.y) + R.pixel_y
|
||||
riftimage.pixel_x = new_x
|
||||
riftimage.pixel_y = new_y
|
||||
riftimage.loc = src.loc
|
||||
|
||||
src << riftimage
|
||||
|
||||
else
|
||||
if(riftimage)
|
||||
del(riftimage)
|
||||
|
||||
/mob/proc/get_item_by_slot(slot_id)
|
||||
switch(slot_id)
|
||||
|
||||
@@ -55,6 +55,9 @@
|
||||
var/image/narsimage = null
|
||||
var/image/narglow = null
|
||||
|
||||
//thou shall always be able to see the Bluespace Rift
|
||||
var/image/riftimage = null
|
||||
|
||||
/*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
|
||||
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
|
||||
The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs).
|
||||
|
||||
BIN
icons/obj/rift.dmi
Normal file
BIN
icons/obj/rift.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 MiB |
BIN
sound/effects/cascade.ogg
Normal file
BIN
sound/effects/cascade.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user