mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 00:23:29 +01:00
Wormhole jaunter fix (and replace lighting checks with simulated) and disk compartmentalizer fix
This commit is contained in:
@@ -161,7 +161,7 @@ var/sc_safecode5 = "[rand(0,9)]"
|
||||
desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible."
|
||||
move_self = 0 //Contianed narsie does not move!
|
||||
grav_pull = 0 //Contained narsie does not pull stuff in!
|
||||
var/uneatable = list(/turf/space, /obj/effect/overlay, /atom/movable/lighting_object, /mob/living/simple_animal/hostile/construct)
|
||||
var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/hostile/construct)
|
||||
|
||||
//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment
|
||||
/obj/singularity/narsie/sc_Narsie/admin_investigate_setup()
|
||||
@@ -174,13 +174,15 @@ var/sc_safecode5 = "[rand(0,9)]"
|
||||
|
||||
/obj/singularity/narsie/sc_Narsie/consume(var/atom/A)
|
||||
if(is_type_in_list(A, uneatable))
|
||||
return 0
|
||||
return FALSE
|
||||
if(!A.simulated)
|
||||
return FALSE
|
||||
if(istype(A,/mob/living))
|
||||
var/mob/living/L = A
|
||||
L.gib()
|
||||
else if(istype(A,/obj/))
|
||||
var/obj/O = A
|
||||
O.ex_act(1.0)
|
||||
O.ex_act(1)
|
||||
if(O) qdel(O)
|
||||
else if(isturf(A))
|
||||
var/turf/T = A
|
||||
|
||||
@@ -157,6 +157,9 @@
|
||||
pass_flags = PASSTABLE
|
||||
visible_contents = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/disks/accept_check(obj/item/O)
|
||||
return istype(O, /obj/item/disk)
|
||||
|
||||
// ----------------------------
|
||||
// Virology Medical Smartfridge
|
||||
// ----------------------------
|
||||
|
||||
@@ -699,7 +699,7 @@
|
||||
|
||||
/obj/item/wormhole_jaunter
|
||||
name = "wormhole jaunter"
|
||||
desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to blue space for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least."
|
||||
desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to bluespace for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "Jaunter"
|
||||
item_state = "electronic"
|
||||
@@ -711,13 +711,13 @@
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
/obj/item/wormhole_jaunter/attack_self(mob/user)
|
||||
user.visible_message("<span class='notice'>[user.name] activates the [src.name]!</span>")
|
||||
user.visible_message("<span class='notice'>[user.name] activates the [name]!</span>")
|
||||
activate(user, TRUE)
|
||||
|
||||
/obj/item/wormhole_jaunter/proc/turf_check(mob/user)
|
||||
var/turf/device_turf = get_turf(user)
|
||||
if(!device_turf || !is_teleport_allowed(device_turf.z))
|
||||
to_chat(user, "<span class='notice'>You're having difficulties getting the [src.name] to work.</span>")
|
||||
to_chat(user, "<span class='notice'>You're having difficulties getting the [name] to work.</span>")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -737,49 +737,42 @@
|
||||
|
||||
var/list/L = get_destinations(user)
|
||||
if(!L.len)
|
||||
to_chat(user, "<span class='notice'>The [src.name] found no beacons in the world to anchor a wormhole to.</span>")
|
||||
to_chat(user, "<span class='notice'>The [name] found no beacons in the world to anchor a wormhole to.</span>")
|
||||
return
|
||||
var/chosen_beacon = pick(L)
|
||||
var/obj/effect/portal/wormhole/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon))
|
||||
var/obj/effect/portal/jaunt_tunnel/J = new(get_turf(src), get_turf(chosen_beacon), src, 100)
|
||||
if(adjacent)
|
||||
try_move_adjacent(J)
|
||||
else
|
||||
J.teleport(user)
|
||||
playsound(src,'sound/effects/sparks4.ogg',50,1)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/wormhole_jaunter/proc/chasm_react(mob/user)
|
||||
if(user.get_item_by_slot(SLOT_BELT) == src)
|
||||
if(user.get_item_by_slot(slot_belt) == src)
|
||||
to_chat(user, "Your [name] activates, saving you from the chasm!</span>")
|
||||
activate(user, FALSE)
|
||||
else
|
||||
to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.</span>")
|
||||
|
||||
/obj/effect/portal/wormhole/jaunt_tunnel
|
||||
/obj/effect/portal/jaunt_tunnel
|
||||
name = "jaunt tunnel"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "bhole3"
|
||||
desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon."
|
||||
failchance = 0
|
||||
|
||||
/obj/effect/portal/wormhole/jaunt_tunnel/teleport(atom/movable/M)
|
||||
if(istype(M, /obj/effect))
|
||||
return
|
||||
if(istype(M, /atom/movable))
|
||||
if(do_teleport(M, target, 6))
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.Weaken(3)
|
||||
if(ishuman(L))
|
||||
shake_camera(L, 20, 1)
|
||||
var/mob/living/carbon/human/H = L
|
||||
spawn(20)
|
||||
if(H && H.check_has_mouth())
|
||||
H.visible_message("<span class='danger'>[L.name] vomits from travelling through the [src.name]!</span>", "<span class='userdanger'>You throw up from travelling through the [src.name]!</span>")
|
||||
H.nutrition -= 20
|
||||
H.adjustToxLoss(-3)
|
||||
var/turf/T = get_turf(H)
|
||||
T.add_vomit_floor()
|
||||
else
|
||||
visible_message("<span class='warning'>[src] flickers and fails, due to bluespace interference!</span>")
|
||||
qdel(src)
|
||||
/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M)
|
||||
. = ..()
|
||||
if(.)
|
||||
// KERPLUNK
|
||||
playsound(M,'sound/weapons/resonator_blast.ogg', 50, 1)
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/L = M
|
||||
L.Weaken(6)
|
||||
if(ishuman(L))
|
||||
shake_camera(L, 20, 1)
|
||||
addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20)
|
||||
|
||||
/**********************Resonator**********************/
|
||||
|
||||
|
||||
@@ -245,6 +245,10 @@
|
||||
|
||||
/mob/proc/get_item_by_slot(slot_id)
|
||||
switch(slot_id)
|
||||
if(slot_wear_mask)
|
||||
return wear_mask
|
||||
if(slot_back)
|
||||
return back
|
||||
if(slot_l_hand)
|
||||
return l_hand
|
||||
if(slot_r_hand)
|
||||
|
||||
@@ -712,17 +712,18 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
|
||||
return back
|
||||
if(slot_wear_mask)
|
||||
return wear_mask
|
||||
if(slot_handcuffed)
|
||||
return handcuffed
|
||||
if(slot_legcuffed)
|
||||
return legcuffed
|
||||
if(slot_wear_suit)
|
||||
return wear_suit
|
||||
if(slot_l_hand)
|
||||
return l_hand
|
||||
if(slot_r_hand)
|
||||
return r_hand
|
||||
if(slot_handcuffed)
|
||||
return handcuffed
|
||||
if(slot_legcuffed)
|
||||
return legcuffed
|
||||
return null
|
||||
|
||||
|
||||
//generates realistic-ish pulse output based on preset levels
|
||||
/mob/living/carbon/proc/get_pulse(var/method) //method 0 is for hands, 1 is for machines, more accurate
|
||||
var/temp = 0 //see setup.dm:694
|
||||
|
||||
@@ -1010,7 +1010,7 @@ var/list/slot_equipment_priority = list( \
|
||||
var/atom/A = foo
|
||||
if(A.invisibility > see_invisible)
|
||||
continue
|
||||
if(is_type_in_list(A, shouldnt_see))
|
||||
if(is_type_in_list(A, shouldnt_see) || !A.simulated)
|
||||
continue
|
||||
statpanel_things += A
|
||||
statpanel(listed_turf.name, null, statpanel_things)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
var/player_ghosted = 0
|
||||
|
||||
var/turf/listed_turf = null //the current turf being examined in the stat panel
|
||||
var/list/shouldnt_see = list(/atom/movable/lighting_object) //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes
|
||||
var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes
|
||||
|
||||
var/kills = 0
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(!(istype(B) && B.off_floor))
|
||||
qdel(O)
|
||||
else
|
||||
if(!istype(O, /atom/movable/lighting_object))
|
||||
if(O.simulated)
|
||||
O.color = initial(O.color)
|
||||
O.clean_blood()
|
||||
|
||||
|
||||
@@ -58,12 +58,10 @@
|
||||
|
||||
var/contcount
|
||||
for(var/atom/A in T.contents)
|
||||
if(istype(A,/atom/movable/lighting_object))
|
||||
if(!A.simulated)
|
||||
continue
|
||||
if(istype(A,/obj/machinery/light))
|
||||
continue //hacky but whatever, shuttles need three spots each for this shit
|
||||
if(!A.simulated)
|
||||
continue
|
||||
contcount++
|
||||
|
||||
if(contcount)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
var/delay_timer = null
|
||||
|
||||
var/list/blacklist = list(/obj/tram/rail,/atom/movable/lighting_object)
|
||||
var/list/blacklist = list(/obj/tram/rail)
|
||||
var/list/ancwhitelist = list(/obj/tram, /obj/vehicle, /obj/structure/chair, /obj/structure/grille, /obj/structure/window)
|
||||
|
||||
/obj/tram/tram_controller/New()
|
||||
@@ -135,14 +135,20 @@
|
||||
tram += src
|
||||
|
||||
/obj/tram/tram_controller/proc/check_validity(var/atom/movable/AM)
|
||||
if(!AM) return 0
|
||||
if(is_type_in_list(AM, blacklist)) return 0
|
||||
if(!AM.simulated) return 0
|
||||
if(!AM)
|
||||
return FALSE
|
||||
|
||||
if(is_type_in_list(AM, blacklist))
|
||||
return FALSE
|
||||
|
||||
if(!AM.simulated)
|
||||
return FALSE
|
||||
|
||||
if(AM.anchored)
|
||||
if(is_type_in_list(AM, ancwhitelist))
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
return TRUE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/tram/tram_controller/proc/init_controllers()
|
||||
for(var/obj/tram/controlpad/CCP in tram)
|
||||
|
||||
Reference in New Issue
Block a user