mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-20 04:17:45 +01:00
Merge branch 'master' into sizecode
This commit is contained in:
@@ -471,4 +471,4 @@
|
||||
// Abductor Replication Lab
|
||||
/area/ruin/space/has_grav/powered/advancedlab
|
||||
name = "Abductor Replication Lab"
|
||||
icon_state = "yellow"
|
||||
icon_state = "yellow"
|
||||
@@ -124,12 +124,12 @@
|
||||
L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R
|
||||
|
||||
for(var/obj/item/implant/tracking/I in GLOB.tracked_implants)
|
||||
if(!I.imp_in || !isliving(I.loc))
|
||||
if(!I.imp_in || !I.allow_teleport || !isliving(I.imp_in))
|
||||
continue
|
||||
else
|
||||
var/mob/living/M = I.loc
|
||||
if(M.stat == DEAD)
|
||||
if(M.timeofdeath + 6000 < world.time)
|
||||
if(M.timeofdeath + I.lifespan_postmortem < world.time)
|
||||
continue
|
||||
if(is_eligible(I))
|
||||
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
|
||||
|
||||
@@ -210,13 +210,13 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/machinery/suit_storage_unit/proc/cook()
|
||||
var/mob/living/mob_occupant = occupant
|
||||
if(uv_cycles)
|
||||
uv_cycles--
|
||||
uv = TRUE
|
||||
locked = TRUE
|
||||
update_icon()
|
||||
if(occupant)
|
||||
var/mob/living/mob_occupant = occupant
|
||||
if(uv_super)
|
||||
mob_occupant.adjustFireLoss(rand(20, 36))
|
||||
else
|
||||
@@ -245,6 +245,7 @@
|
||||
visible_message("<span class='notice'>[src]'s door slides open. The glowing yellow lights dim to a gentle green.</span>")
|
||||
else
|
||||
visible_message("<span class='warning'>[src]'s door slides open, barraging you with the nauseating smell of charred flesh.</span>")
|
||||
mob_occupant.radiation = 0
|
||||
playsound(src, 'sound/machines/airlockclose.ogg', 25, 1)
|
||||
for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected
|
||||
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRONG)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
GLOBAL_VAR_INIT(singularity_counter, 0)
|
||||
|
||||
#define METEOR_DISASTER_MODIFIER 0.5
|
||||
|
||||
////////////////////////////////////////
|
||||
//Singularity beacon
|
||||
////////////////////////////////////////
|
||||
@@ -14,38 +18,58 @@
|
||||
verb_say = "states"
|
||||
var/cooldown = 0
|
||||
|
||||
var/active = 0
|
||||
var/active = FALSE
|
||||
var/meteor_buff = FALSE
|
||||
var/icontype = "beacon"
|
||||
|
||||
|
||||
/obj/machinery/power/singularity_beacon/proc/Activate(mob/user = null)
|
||||
if(active)
|
||||
return FALSE
|
||||
if(surplus() < 1500)
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>The connected wire doesn't have enough current.</span>")
|
||||
return
|
||||
return FALSE
|
||||
if(is_station_level(z))
|
||||
increment_meteor_waves()
|
||||
for(var/obj/singularity/singulo in GLOB.singularities)
|
||||
if(singulo.z == z)
|
||||
singulo.target = src
|
||||
icon_state = "[icontype]1"
|
||||
active = 1
|
||||
active = TRUE
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>You activate the beacon.</span>")
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/machinery/power/singularity_beacon/proc/Deactivate(mob/user = null)
|
||||
/obj/machinery/power/singularity_beacon/proc/Deactivate(mob/user)
|
||||
if(!active)
|
||||
return FALSE
|
||||
for(var/obj/singularity/singulo in GLOB.singularities)
|
||||
if(singulo.target == src)
|
||||
singulo.target = null
|
||||
icon_state = "[icontype]0"
|
||||
active = 0
|
||||
active = FALSE
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>You deactivate the beacon.</span>")
|
||||
|
||||
if(meteor_buff)
|
||||
decrement_meteor_waves()
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/power/singularity_beacon/proc/increment_meteor_waves()
|
||||
meteor_buff = TRUE
|
||||
GLOB.singularity_counter++
|
||||
for(var/datum/round_event_control/meteor_wave/W in SSevents.control)
|
||||
W.weight += round(initial(W.weight) * METEOR_DISASTER_MODIFIER)
|
||||
|
||||
/obj/machinery/power/singularity_beacon/proc/decrement_meteor_waves()
|
||||
meteor_buff = FALSE
|
||||
GLOB.singularity_counter--
|
||||
for(var/datum/round_event_control/meteor_wave/W in SSevents.control)
|
||||
W.weight -= round(initial(W.weight) * METEOR_DISASTER_MODIFIER)
|
||||
|
||||
/obj/machinery/power/singularity_beacon/attack_ai(mob/user)
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/power/singularity_beacon/attack_hand(mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
@@ -86,6 +110,12 @@
|
||||
if(!active)
|
||||
return
|
||||
|
||||
var/is_on_station = is_station_level(z)
|
||||
if(meteor_buff && !is_on_station)
|
||||
decrement_meteor_waves()
|
||||
else if(!meteor_buff && is_on_station)
|
||||
increment_meteor_waves()
|
||||
|
||||
if(surplus() >= 1500)
|
||||
add_load(1500)
|
||||
if(cooldown <= world.time)
|
||||
@@ -133,3 +163,5 @@
|
||||
/obj/item/sbeacondrop/clownbomb
|
||||
desc = "A label on it reads: <i>Warning: Activating this device will send a silly explosive to your location</i>."
|
||||
droptype = /obj/machinery/syndicatebomb/badmin/clown
|
||||
|
||||
#undef METEOR_DISASTER_MODIFIER
|
||||
@@ -160,6 +160,7 @@ RLD
|
||||
var/mode = 1
|
||||
var/ranged = FALSE
|
||||
var/computer_dir = 1
|
||||
var/airlock_dir = 1
|
||||
var/airlock_type = /obj/machinery/door/airlock
|
||||
var/airlock_glass = FALSE // So the floor's rcd_act knows how much ammo to use
|
||||
var/window_type = /obj/structure/window/fulltile
|
||||
@@ -281,6 +282,22 @@ RLD
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/construction/rcd/proc/change_airlock_direction(mob/user)
|
||||
if(!user)
|
||||
return
|
||||
var/list/airlock_dirs = list(
|
||||
"North/South" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlocknorthsouth"),
|
||||
"East/West" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlockeastwest")
|
||||
)
|
||||
var/airlockdirs = show_radial_menu(user, src, airlock_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
if(!check_menu(user))
|
||||
return
|
||||
switch(airlockdirs)
|
||||
if("North/South")
|
||||
airlock_dir = 1
|
||||
if("East/West")
|
||||
airlock_dir = 4
|
||||
|
||||
/obj/item/construction/rcd/proc/change_computer_dir(mob/user)
|
||||
if(!user)
|
||||
return
|
||||
@@ -486,6 +503,7 @@ RLD
|
||||
if(mode == RCD_AIRLOCK)
|
||||
choices += list(
|
||||
"Change Access" = image(icon = 'icons/mob/radial.dmi', icon_state = "access"),
|
||||
"Change Direction" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlockrotation"),
|
||||
"Change Airlock Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlocktype")
|
||||
)
|
||||
else if(mode == RCD_WINDOWGRILLE)
|
||||
@@ -513,6 +531,9 @@ RLD
|
||||
if("Change Access")
|
||||
change_airlock_access(user)
|
||||
return
|
||||
if("Change Direction")
|
||||
change_airlock_direction(user)
|
||||
return
|
||||
if("Change Airlock Type")
|
||||
change_airlock_setting(user)
|
||||
return
|
||||
|
||||
@@ -453,7 +453,7 @@ GENE SCANNER
|
||||
if(M.reagents.reagent_list.len)
|
||||
var/list/datum/reagent/reagents = list()
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(R.invisible)
|
||||
if(R.chemical_flags & REAGENT_INVISIBLE)
|
||||
continue
|
||||
reagents += R
|
||||
|
||||
@@ -475,6 +475,20 @@ GENE SCANNER
|
||||
msg += "*---------*</span>"
|
||||
to_chat(user, msg)
|
||||
|
||||
if(M.reagents.has_reagent("fermiTox"))
|
||||
var/datum/reagent/fermiTox = M.reagents.has_reagent("fermiTox")
|
||||
switch(fermiTox.volume)
|
||||
if(5 to 10)
|
||||
msg += "<span class='notice'>Subject contains a low amount of toxic isomers.</span>\n"
|
||||
if(10 to 25)
|
||||
msg += "<span class='danger'>Subject contains toxic isomers.</span>\n"
|
||||
if(25 to 50)
|
||||
msg += "<span class='danger'>Subject contains a substantial amount of toxic isomers.</span>\n"
|
||||
if(50 to 95)
|
||||
msg += "<span class='danger'>Subject contains a high amount of toxic isomers.</span>\n"
|
||||
if(95 to INFINITY)
|
||||
msg += "<span class='danger'>Subject contains a extremely dangerous amount of toxic isomers.</span>\n"
|
||||
|
||||
/obj/item/healthanalyzer/verb/toggle_mode()
|
||||
set name = "Switch Verbosity"
|
||||
set category = "Object"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/item/restraints
|
||||
breakouttime = 600
|
||||
var/demoralize_criminals = TRUE // checked on carbon/carbon.dm to decide wheter to apply the handcuffed negative moodlet or not.
|
||||
|
||||
/obj/item/restraints/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message("<span class='suicide'>[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
@@ -220,6 +221,7 @@
|
||||
name = "fake handcuffs"
|
||||
desc = "Fake handcuffs meant for gag purposes."
|
||||
breakouttime = 10 //Deciseconds = 1s
|
||||
demoralize_criminals = FALSE
|
||||
|
||||
/obj/item/restraints/handcuffs/fake/kinky
|
||||
name = "kinky handcuffs"
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
return
|
||||
var/obj/item/nullrod/holy_weapon
|
||||
var/list/holy_weapons_list = typesof(/obj/item/nullrod) + list(
|
||||
/obj/item/melee/transforming/energy/sword/cx/chaplain
|
||||
/obj/item/twohanded/dualsaber/hypereutactic/chaplain
|
||||
)
|
||||
var/list/display_names = list()
|
||||
for(var/V in holy_weapons_list)
|
||||
@@ -710,7 +710,7 @@
|
||||
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
attack_verb = list("bashes", "smacks", "whacks")
|
||||
|
||||
|
||||
/obj/item/nullrod/hypertool
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "hypertool"
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
/obj/item/implant/tracking
|
||||
name = "tracking implant"
|
||||
desc = "Track with this."
|
||||
activated = 0
|
||||
activated = FALSE
|
||||
var/lifespan_postmortem = 10 MINUTES //for how many deciseconds after user death will the implant work?
|
||||
var/allow_teleport = TRUE //will people implanted with this act as teleporter beacons?
|
||||
|
||||
/obj/item/implant/tracking/c38
|
||||
name = "TRAC implant"
|
||||
desc = "A smaller tracking implant that supplies power for only a few minutes."
|
||||
var/lifespan = 5 MINUTES //how many deciseconds does the implant last?
|
||||
allow_teleport = FALSE
|
||||
|
||||
/obj/item/implant/tracking/c38/Initialize()
|
||||
. = ..()
|
||||
QDEL_IN(src, lifespan)
|
||||
|
||||
/obj/item/implant/tracking/New()
|
||||
..()
|
||||
@@ -21,7 +33,7 @@
|
||||
var/dat = {"<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Tracking Beacon<BR>
|
||||
<b>Life:</b> 10 minutes after death of host<BR>
|
||||
<b>Important Notes:</b> None<BR>
|
||||
<b>Important Notes:</b> Implant also works as a teleporter beacon.<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b> <BR>
|
||||
<b>Function:</b> Continuously transmits low power signal. Useful for tracking.<BR>
|
||||
|
||||
@@ -75,15 +75,14 @@
|
||||
|
||||
temp += "<B>Implant Signals:</B><BR>"
|
||||
for (var/obj/item/implant/tracking/W in GLOB.tracked_implants)
|
||||
if (!W.imp_in || !isliving(W.loc))
|
||||
if (!isliving(W.imp_in))
|
||||
continue
|
||||
else
|
||||
var/mob/living/M = W.loc
|
||||
if (M.stat == DEAD)
|
||||
if (M.timeofdeath + 6000 < world.time)
|
||||
continue
|
||||
var/mob/living/M = W.imp_in
|
||||
if (M.stat == DEAD)
|
||||
if (M.timeofdeath + W.lifespan_postmortem < world.time)
|
||||
continue
|
||||
|
||||
var/turf/tr = get_turf(W)
|
||||
var/turf/tr = get_turf(M)
|
||||
if (tr.z == sr.z && tr)
|
||||
var/direct = max(abs(tr.x - sr.x), abs(tr.y - sr.y))
|
||||
if (direct < 20)
|
||||
@@ -188,8 +187,13 @@
|
||||
user.show_message("<span class='notice'>\The [src] is recharging!</span>")
|
||||
return
|
||||
var/atom/T = L[t1]
|
||||
var/implantcheckmate = FALSE
|
||||
if(isliving(T))
|
||||
var/mob/living/M = T
|
||||
if(!locate(/obj/item/implant/tracking) in M.implants) //The user was too slow and let the target mob's tracking implant expire or get removed.
|
||||
implantcheckmate = TRUE
|
||||
var/area/A = get_area(T)
|
||||
if(A.noteleport)
|
||||
if(A.noteleport || implantcheckmate)
|
||||
to_chat(user, "<span class='notice'>\The [src] is malfunctioning.</span>")
|
||||
return
|
||||
current_location = get_turf(user) //Recheck.
|
||||
@@ -233,4 +237,4 @@
|
||||
itemUser.visible_message("<span class='suicide'>The portal snaps closed taking [user]'s head with it!</span>")
|
||||
else
|
||||
itemUser.visible_message("<span class='suicide'>[user] looks even further depressed as they realize they do not have a head...and suddenly dies of shame!</span>")
|
||||
return (BRUTELOSS)
|
||||
return (BRUTELOSS)
|
||||
@@ -232,7 +232,7 @@
|
||||
. = ..()
|
||||
if(!sliver)
|
||||
return
|
||||
if(ismovableatom(O) && O != sliver)
|
||||
if(proximity && ismovableatom(O) && O != sliver)
|
||||
Consume(O, user)
|
||||
|
||||
/obj/item/hemostat/supermatter/throw_impact(atom/hit_atom) // no instakill supermatter javelins
|
||||
|
||||
@@ -304,6 +304,16 @@
|
||||
icon = "meow_mix"
|
||||
desc = "No, we don't serve catnip, officer!"
|
||||
|
||||
/datum/barsign/goose
|
||||
name = "The Loose Goose"
|
||||
icon = "goose"
|
||||
desc = "Drink till you puke and/or break the laws of reality!"
|
||||
|
||||
/datum/barsign/the_hive
|
||||
name = "The Hive"
|
||||
icon = "thehive"
|
||||
desc = "Comb in for some sweet drinks! Not known for serving any sappy drink."
|
||||
|
||||
/datum/barsign/hiddensigns
|
||||
hidden = TRUE
|
||||
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
if(opened || move_delay || user.stat || user.IsStun() || user.IsKnockdown() || user.IsUnconscious() || !isturf(loc) || !has_gravity(loc))
|
||||
return
|
||||
move_delay = TRUE
|
||||
if(step(src, direction))
|
||||
var/oldloc = loc
|
||||
step(src, direction)
|
||||
if(oldloc != loc)
|
||||
addtimer(CALLBACK(src, .proc/ResetMoveDelay), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier)
|
||||
else
|
||||
ResetMoveDelay()
|
||||
|
||||
@@ -561,7 +561,7 @@
|
||||
icon = 'icons/obj/machines/sleeper.dmi'
|
||||
icon_state = "sleeper"
|
||||
mob_name = "a space pirate"
|
||||
mob_species = /datum/species/skeleton/pirate
|
||||
mob_species = /datum/species/skeleton/space
|
||||
outfit = /datum/outfit/pirate/space
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
rad_insulation = RAD_VERY_LIGHT_INSULATION
|
||||
rad_flags = RAD_PROTECT_CONTENTS
|
||||
|
||||
|
||||
|
||||
/obj/structure/window/examine(mob/user)
|
||||
..()
|
||||
if(reinf)
|
||||
@@ -471,11 +473,12 @@
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
@@ -503,7 +506,10 @@
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door)
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,)
|
||||
// canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile)
|
||||
glass_amount = 2
|
||||
|
||||
@@ -529,11 +535,9 @@
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
@@ -561,7 +565,13 @@
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door)
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,
|
||||
/turf/closed/indestructible/,
|
||||
/turf/closed/indestructible/riveted,
|
||||
/turf/closed/indestructible/fakeglass)
|
||||
glass_amount = 2
|
||||
|
||||
/obj/structure/window/plasma/fulltile/unanchored
|
||||
@@ -577,31 +587,12 @@
|
||||
smooth = SMOOTH_TRUE
|
||||
glass_amount = 2
|
||||
|
||||
/obj/structure/window/plasma/reinforced/fulltile/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/window/reinforced/fulltile
|
||||
icon = 'icons/obj/smooth_structures/reinforced_window.dmi'
|
||||
icon_state = "r_window"
|
||||
dir = FULLTILE_WINDOW_DIR
|
||||
max_integrity = 100
|
||||
fulltile = TRUE
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
smooth = SMOOTH_TRUE
|
||||
canSmoothWith = list(
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/falsewall,
|
||||
/obj/structure/falsewall/brass,
|
||||
/obj/structure/falsewall/reinforced,
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
@@ -629,7 +620,70 @@
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door)
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity
|
||||
)
|
||||
|
||||
/obj/structure/window/plasma/reinforced/fulltile/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/window/reinforced/fulltile
|
||||
icon = 'icons/obj/smooth_structures/reinforced_window.dmi'
|
||||
icon_state = "r_window"
|
||||
dir = FULLTILE_WINDOW_DIR
|
||||
max_integrity = 100
|
||||
fulltile = TRUE
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
canSmoothWith = list(
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/falsewall,
|
||||
/obj/structure/falsewall/brass,
|
||||
/obj/structure/falsewall/reinforced,
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
/obj/machinery/door/airlock/medical,
|
||||
/obj/machinery/door/airlock/medical/glass,
|
||||
/obj/machinery/door/airlock/public,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/airlock/research,
|
||||
/obj/machinery/door/airlock/research/glass,
|
||||
/obj/machinery/door/airlock/maintenance,
|
||||
/obj/machinery/door/airlock/maintenance/glass,
|
||||
/obj/machinery/door/airlock/command/,
|
||||
/obj/machinery/door/airlock/command/glass,
|
||||
/obj/machinery/door/airlock/engineering,
|
||||
/obj/machinery/door/airlock/engineering/glass,
|
||||
/obj/machinery/door/airlock/engineering/abandoned,
|
||||
/obj/machinery/door/airlock/security,
|
||||
/obj/machinery/door/airlock/security/glass,
|
||||
/obj/machinery/door/airlock/maintenance/abandoned,
|
||||
/obj/machinery/door/poddoor/shutters/preopen,
|
||||
/obj/machinery/door/poddoor/shutters,
|
||||
/obj/machinery/door/window/eastright,
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/machinery/door/window/northleft,
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,)
|
||||
|
||||
level = 3
|
||||
glass_amount = 2
|
||||
@@ -654,11 +708,12 @@
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
@@ -686,8 +741,10 @@
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door)
|
||||
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,)
|
||||
//Old code left of reference
|
||||
//canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile)
|
||||
level = 3
|
||||
|
||||
@@ -182,6 +182,8 @@
|
||||
soundin = pick('sound/voice/beepsky/god.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/beepsky/secureday.ogg', 'sound/voice/beepsky/radio.ogg', 'sound/voice/beepsky/insult.ogg', 'sound/voice/beepsky/creep.ogg')
|
||||
if("honkbot_e")
|
||||
soundin = pick('sound/items/bikehorn.ogg', 'sound/items/AirHorn2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/items/AirHorn.ogg', 'sound/effects/reee.ogg', 'sound/items/WEEOO1.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/beepsky/creep.ogg','sound/magic/Fireball.ogg' ,'sound/effects/pray.ogg', 'sound/voice/hiss1.ogg','sound/machines/buzz-sigh.ogg', 'sound/machines/ping.ogg', 'sound/weapons/flashbang.ogg', 'sound/weapons/bladeslice.ogg')
|
||||
if("goose")
|
||||
soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg')
|
||||
//START OF CIT CHANGES - adds random vore sounds
|
||||
if ("struggle_sound")
|
||||
soundin = pick( 'sound/vore/pred/struggle_01.ogg','sound/vore/pred/struggle_02.ogg','sound/vore/pred/struggle_03.ogg',
|
||||
|
||||
@@ -86,9 +86,108 @@
|
||||
smooth = SMOOTH_TRUE
|
||||
explosion_block = INFINITY
|
||||
|
||||
canSmoothWith = list(
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/falsewall,
|
||||
/obj/structure/falsewall/brass,
|
||||
/obj/structure/falsewall/reinforced,
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
/obj/machinery/door/airlock/medical,
|
||||
/obj/machinery/door/airlock/medical/glass,
|
||||
/obj/machinery/door/airlock/public,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/airlock/research,
|
||||
/obj/machinery/door/airlock/research/glass,
|
||||
/obj/machinery/door/airlock/maintenance,
|
||||
/obj/machinery/door/airlock/maintenance/glass,
|
||||
/obj/machinery/door/airlock/command/,
|
||||
/obj/machinery/door/airlock/command/glass,
|
||||
/obj/machinery/door/airlock/engineering,
|
||||
/obj/machinery/door/airlock/engineering/glass,
|
||||
/obj/machinery/door/airlock/engineering/abandoned,
|
||||
/obj/machinery/door/airlock/security,
|
||||
/obj/machinery/door/airlock/security/glass,
|
||||
/obj/machinery/door/airlock/maintenance/abandoned,
|
||||
/obj/machinery/door/poddoor/shutters/preopen,
|
||||
/obj/machinery/door/poddoor/shutters,
|
||||
/obj/machinery/door/window/eastright,
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/machinery/door/window/northleft,
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,
|
||||
/obj/machinery/door/airlock/centcom)
|
||||
|
||||
/turf/closed/indestructible/riveted/uranium
|
||||
icon = 'icons/turf/walls/uranium_wall.dmi'
|
||||
icon_state = "uranium"
|
||||
canSmoothWith = list(
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/falsewall,
|
||||
/obj/structure/falsewall/brass,
|
||||
/obj/structure/falsewall/reinforced,
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
/obj/machinery/door/airlock/medical,
|
||||
/obj/machinery/door/airlock/medical/glass,
|
||||
/obj/machinery/door/airlock/public,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/airlock/research,
|
||||
/obj/machinery/door/airlock/research/glass,
|
||||
/obj/machinery/door/airlock/maintenance,
|
||||
/obj/machinery/door/airlock/maintenance/glass,
|
||||
/obj/machinery/door/airlock/command/,
|
||||
/obj/machinery/door/airlock/command/glass,
|
||||
/obj/machinery/door/airlock/engineering,
|
||||
/obj/machinery/door/airlock/engineering/glass,
|
||||
/obj/machinery/door/airlock/engineering/abandoned,
|
||||
/obj/machinery/door/airlock/security,
|
||||
/obj/machinery/door/airlock/security/glass,
|
||||
/obj/machinery/door/airlock/maintenance/abandoned,
|
||||
/obj/machinery/door/poddoor/shutters/preopen,
|
||||
/obj/machinery/door/poddoor/shutters,
|
||||
/obj/machinery/door/window/eastright,
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/machinery/door/window/northleft,
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,
|
||||
/obj/machinery/door/airlock/centcom)
|
||||
|
||||
/turf/closed/indestructible/abductor
|
||||
icon_state = "alien1"
|
||||
@@ -102,6 +201,55 @@
|
||||
opacity = 0
|
||||
smooth = SMOOTH_TRUE
|
||||
icon = 'icons/obj/smooth_structures/reinforced_window.dmi'
|
||||
canSmoothWith = list(
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/structure/falsewall,
|
||||
/obj/structure/falsewall/brass,
|
||||
/obj/structure/falsewall/reinforced,
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
/obj/machinery/door/airlock/medical,
|
||||
/obj/machinery/door/airlock/medical/glass,
|
||||
/obj/machinery/door/airlock/public,
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/obj/machinery/door/airlock/research,
|
||||
/obj/machinery/door/airlock/research/glass,
|
||||
/obj/machinery/door/airlock/maintenance,
|
||||
/obj/machinery/door/airlock/maintenance/glass,
|
||||
/obj/machinery/door/airlock/command/,
|
||||
/obj/machinery/door/airlock/command/glass,
|
||||
/obj/machinery/door/airlock/engineering,
|
||||
/obj/machinery/door/airlock/engineering/glass,
|
||||
/obj/machinery/door/airlock/engineering/abandoned,
|
||||
/obj/machinery/door/airlock/security,
|
||||
/obj/machinery/door/airlock/security/glass,
|
||||
/obj/machinery/door/airlock/maintenance/abandoned,
|
||||
/obj/machinery/door/poddoor/shutters/preopen,
|
||||
/obj/machinery/door/poddoor/shutters,
|
||||
/obj/machinery/door/window/eastright,
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/machinery/door/window/northleft,
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity,
|
||||
/obj/machinery/door/airlock/centcom)
|
||||
|
||||
/turf/closed/indestructible/fakeglass/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
return FALSE
|
||||
to_chat(user, "<span class='notice'>You build an airlock.</span>")
|
||||
var/obj/machinery/door/airlock/A = new the_rcd.airlock_type(src)
|
||||
|
||||
A.setDir(the_rcd.airlock_dir)
|
||||
A.electronics = new/obj/item/electronics/airlock(A)
|
||||
|
||||
if(the_rcd.conf_access)
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
explosion_block = 3
|
||||
flags_1 = CAN_BE_DIRTY_1 | CHECK_RICOCHET_1
|
||||
sheet_type = /obj/item/stack/sheet/mineral/titanium
|
||||
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
|
||||
smooth = SMOOTH_MORE
|
||||
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater, /obj/structure/falsewall/titanium)
|
||||
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal
|
||||
|
||||
@@ -27,11 +27,14 @@
|
||||
/turf/closed/wall/rust,
|
||||
/turf/closed/wall/r_wall/rust,
|
||||
/turf/closed/wall/clockwork,
|
||||
/turf/closed/indestructible/riveted/,
|
||||
/turf/closed/indestructible/riveted/uranium,
|
||||
/obj/structure/window/fulltile,
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/structure/window/reinforced/tinted/fulltile,
|
||||
/obj/structure/window/plasma/fulltile,
|
||||
/obj/structure/window/plasma/reinforced/fulltile,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock/,
|
||||
/obj/machinery/door/airlock/mining,
|
||||
/obj/machinery/door/airlock/mining/glass,
|
||||
@@ -59,7 +62,10 @@
|
||||
/obj/machinery/door/window/northright,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/machinery/door)
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical,
|
||||
/obj/machinery/door/airlock/atmos,
|
||||
/obj/machinery/door/airlock/highsecurity)
|
||||
|
||||
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
@@ -452,16 +452,21 @@
|
||||
/turf/AllowDrop()
|
||||
return TRUE
|
||||
|
||||
/turf/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = NONE)
|
||||
/turf/proc/add_vomit_floor(mob/living/M, toxvomit = NONE)
|
||||
|
||||
var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src, M.get_static_viruses())
|
||||
// If the vomit combined, apply toxicity and reagents to the old vomit
|
||||
//if the vomit combined, apply toxicity and reagents to the old vomit
|
||||
if (QDELETED(V))
|
||||
V = locate() in src
|
||||
// Make toxins and blazaam vomit look different
|
||||
if(toxvomit == VOMIT_PURPLE)
|
||||
V.icon_state = "vomitpurp_[pick(1,4)]"
|
||||
else if(toxvomit == VOMIT_TOXIC)
|
||||
else if (toxvomit == VOMIT_TOXIC)
|
||||
V.icon_state = "vomittox_[pick(1,4)]"
|
||||
if (iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.reagents)
|
||||
clear_reagents_to_vomit_pool(C,V)
|
||||
|
||||
/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V)
|
||||
M.reagents.trans_to(V, M.reagents.total_volume / 10)
|
||||
|
||||
Reference in New Issue
Block a user