Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into zandario-sound-overhaul

This commit is contained in:
Zandario
2019-03-29 14:28:31 -05:00
137 changed files with 1657 additions and 297 deletions
+3 -3
View File
@@ -131,9 +131,9 @@ Credit where due:
config_tag = "clockwork_cult"
antag_flag = ROLE_SERVANT_OF_RATVAR
false_report_weight = 10
required_players = 20
required_enemies = 2
recommended_enemies = 4
required_players = 30
required_enemies = 3
recommended_enemies = 5
enemy_minimum_age = 7
protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") //Silicons can eventually be converted
restricted_jobs = list("Chaplain", "Captain")
+3 -3
View File
@@ -37,9 +37,9 @@
false_report_weight = 10
restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel")
protected_jobs = list()
required_players = 20
required_enemies = 2
recommended_enemies = 4
required_players = 30
required_enemies = 3
recommended_enemies = 5
enemy_minimum_age = 7
announce_span = "cult"
+4 -4
View File
@@ -227,7 +227,7 @@
if((mob_occupant.stat == DEAD) || (mob_occupant.suiciding) || mob_occupant.hellbound) //Autoeject corpses and suiciding dudes.
connected_message("Clone Rejected: Deceased.")
if(internal_radio)
SPEAK("The cloning of [mob_occupant.real_name] has been \
SPEAK("The cloning has been \
aborted due to unrecoverable tissue failure.")
go_out()
mob_occupant.apply_vore_prefs()
@@ -261,7 +261,7 @@
else if((mob_occupant.cloneloss <= (100 - heal_level)))
connected_message("Cloning Process Complete.")
if(internal_radio)
SPEAK("The cloning cycle of [mob_occupant.real_name] is complete.")
SPEAK("The cloning cycle is complete.")
// If the cloner is upgraded to debugging high levels, sometimes
// organs and limbs can be missing.
@@ -319,7 +319,7 @@
return
else
connected_message("Emergency Ejection")
SPEAK("An emergency ejection of [clonemind.name] has occurred. Survival not guaranteed.")
SPEAK("An emergency ejection of the current clone has occurred. Survival not guaranteed.")
to_chat(user, "<span class='notice'>You force an emergency ejection. </span>")
go_out()
mob_occupant.apply_vore_prefs()
@@ -412,7 +412,7 @@
var/mob/living/mob_occupant = occupant
if(mob_occupant && prob(100/(severity*efficiency)))
connected_message(Gibberish("EMP-caused Accidental Ejection", 0))
SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [mob_occupant.real_name] prematurely." ,0))
SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of, ERROR: John Doe, prematurely." ,0))
mob_occupant.apply_vore_prefs()
go_out()
+4 -4
View File
@@ -71,7 +71,7 @@
return
if(timing)
if(world.time - activation_time >= timer_duration)
if(world.realtime - activation_time >= timer_duration)
timer_end() // open doors, reset timer, clear status screen
update_icon()
@@ -87,7 +87,7 @@
if(stat & (NOPOWER|BROKEN))
return 0
activation_time = world.time
activation_time = world.realtime
timing = TRUE
for(var/obj/machinery/door/window/brigdoor/door in targets)
@@ -136,7 +136,7 @@
/obj/machinery/door_timer/proc/time_left(seconds = FALSE)
. = max(0,timer_duration - (activation_time ? world.time - activation_time : 0))
. = max(0,timer_duration - (activation_time ? world.realtime - activation_time : 0))
if(seconds)
. /= 10
@@ -240,7 +240,7 @@
preset_time = PRESET_LONG
. = set_timer(preset_time)
if(timing)
activation_time = world.time
activation_time = world.realtime
else
. = FALSE
@@ -30,20 +30,20 @@
playsound(src, "sparks", 100, TRUE)
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(300,5)
T.hotspot_expose(700,5)
QDEL_IN(src, 20)
/obj/effect/particle_effect/sparks/Destroy()
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(300,1)
T.hotspot_expose(700,1)
return ..()
/obj/effect/particle_effect/sparks/Move()
..()
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(300,1)
T.hotspot_expose(700,1)
/datum/effect_system/spark_spread
effect_type = /obj/effect/particle_effect/sparks
+4 -2
View File
@@ -187,6 +187,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
var/datum/effect_system/spark_spread/spark_system
var/effectcooldown
var/working = 0
var/p_dir = NORTH
var/p_flipped = FALSE
@@ -207,7 +208,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
/obj/item/pipe_dispenser/New()
. = ..()
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.set_up(1, 0, src)
spark_system.attach(src)
if(!first_atmos)
first_atmos = GLOB.atmos_pipe_recipes[GLOB.atmos_pipe_recipes[1]][1]
@@ -313,8 +314,9 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
else
mode |= n
if(playeffect)
if(playeffect && world.time >= effectcooldown)
spark_system.start()
effectcooldown = world.time + 100
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
/obj/item/pipe_dispenser/pre_attack(atom/A, mob/user)
+28 -30
View File
@@ -8,72 +8,70 @@
item_state = "candle1"
w_class = WEIGHT_CLASS_TINY
light_color = LIGHT_COLOR_FIRE
heat = 1000
var/wax = 1000
var/lit = FALSE
var/infinite = FALSE
var/start_lit = FALSE
heat = 1000
/obj/item/candle/Initialize()
. = ..()
if(start_lit)
// No visible message
light(show_message = FALSE)
light()
/obj/item/candle/update_icon()
var/i
if(wax>750)
i = 1
else if(wax>400)
i = 2
else i = 3
icon_state = "candle[i][lit ? "_lit" : ""]"
icon_state = "candle[(wax > 400) ? ((wax > 750) ? 1 : 2) : 3][lit ? "_lit" : ""]"
/obj/item/candle/attackby(obj/item/W, mob/user, params)
..()
var/msg = W.ignition_effect(src, user)
if(msg)
light(msg)
else
return ..()
/obj/item/candle/fire_act(exposed_temperature, exposed_volume)
if(!src.lit)
if(!lit)
light() //honk
..()
return ..()
/obj/item/candle/is_hot()
return lit * heat
/obj/item/candle/proc/light(show_message)
if(!src.lit)
src.lit = TRUE
//src.damtype = "fire"
if(!lit)
lit = TRUE
if(show_message)
usr.visible_message(show_message)
set_light(CANDLE_LUMINOSITY, 0.8)
set_light(CANDLE_LUMINOSITY)
START_PROCESSING(SSobj, src)
update_icon()
/obj/item/candle/proc/put_out_candle()
if(!lit)
return
lit = FALSE
update_icon()
set_light(0)
return TRUE
/obj/item/candle/extinguish()
put_out_candle()
return ..()
/obj/item/candle/process()
if(!lit)
return
return PROCESS_KILL
if(!infinite)
wax--
if(!wax)
new/obj/item/trash/candle(src.loc)
new /obj/item/trash/candle(loc)
qdel(src)
update_icon()
open_flame()
/obj/item/candle/attack_self(mob/user)
if(lit)
user.visible_message(
"<span class='notice'>[user] snuffs [src].</span>")
lit = FALSE
update_icon()
set_light(0)
/obj/item/candle/is_hot()
return lit * heat
if(put_out_candle())
user.visible_message("<span class='notice'>[user] snuffs [src].</span>")
/obj/item/candle/infinite
infinite = TRUE
@@ -114,7 +114,7 @@
/obj/item/pda/heads/rd
name = "research director PDA"
default_cartridge = /obj/item/cartridge/rd
inserted_item = /obj/item/pen/fountain
inserted_item = /obj/item/pen/fourcolor
icon_state = "pda-rd"
/obj/item/pda/captain
@@ -185,6 +185,12 @@
desc = "A portable microcomputer by Thinktronic Systems, LTD. This model is a special edition with a transparent case."
note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!"
/obj/item/pda/neko
name = "neko PDA"
icon_state = "pda-neko"
desc = "A portable microcomputer by Thinktronic Systems, LTD. This model is a special edition a feline fine case."
note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Mew Turbo Limited Edition NYA~!"
/obj/item/pda/cook
name = "cook PDA"
icon_state = "pda-cook"
@@ -34,6 +34,10 @@
if(LAZYLEN(current_fields) >= max_fields)
to_chat(user, "<span class='notice'>[src] cannot sustain any more forcefields!</span>")
return
var/obj/structure/projected_forcefield/same = locate() in T
if(same)
to_chat(user, "<span class='notice'>There is already a forcefield on [T]!</span>")
return
playsound(src,'sound/weapons/resonator_fire.ogg',50,1)
user.visible_message("<span class='warning'>[user] projects a forcefield!</span>","<span class='notice'>You project a forcefield.</span>")
@@ -59,6 +63,8 @@
/obj/item/forcefield_projector/Destroy()
STOP_PROCESSING(SSobj, src)
for(var/i in current_fields)
qdel(i)
return ..()
/obj/item/forcefield_projector/process()
+2 -1
View File
@@ -227,7 +227,7 @@
repetition++
addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection, repetition), timer_seconds)
/obj/item/extinguisher/AltClick(mob/user)
/obj/item/extinguisher/screwdriver_act(mob/user, obj/item/tool)
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
EmptyExtinguisher(user)
@@ -242,3 +242,4 @@
theturf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS)
user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "<span class='info'>You quietly empty out \the [src] using its release valve.</span>")
+14
View File
@@ -51,6 +51,20 @@
new /obj/item/stack/rods(get_turf(src), number_of_rods)
qdel(src)
/obj/structure/lattice/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
if(the_rcd.mode == RCD_FLOORWALL)
return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 2)
/obj/structure/lattice/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
if(passed_mode == RCD_FLOORWALL)
to_chat(user, "<span class='notice'>You build a floor.</span>")
var/turf/T = src.loc
if(isspaceturf(T))
T.PlaceOnTop(/turf/open/floor/plating)
qdel(src)
return TRUE
return FALSE
/obj/structure/lattice/singularity_pull(S, current_size)
if(current_size >= STAGE_FOUR)
deconstruct()
+4
View File
@@ -245,6 +245,10 @@
return 0
if(C.m_intent == MOVE_INTENT_WALK && (lube&NO_SLIP_WHEN_WALKING))
return 0
if(ishuman(C) && (lube&NO_SLIP_WHEN_WALKING))
var/mob/living/carbon/human/H = C
if(!H.sprinting && H.getStaminaLoss() >= 20)
return 0
if(!(lube&SLIDE_ICE))
to_chat(C, "<span class='notice'>You slipped[ O ? " on the [O.name]" : ""]!</span>")
playsound(C.loc, 'sound/misc/slip.ogg', 50, 1, -3)
@@ -126,6 +126,17 @@
else
to_chat(user, "<span class='danger'>You hit [src], to no effect!</span>")
/turf/open/floor/plating/foam/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
if(the_rcd.mode == RCD_FLOORWALL)
return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 1)
/turf/open/floor/plating/foam/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
if(passed_mode == RCD_FLOORWALL)
to_chat(user, "<span class='notice'>You build a floor.</span>")
ChangeTurf(/turf/open/floor/plating)
return TRUE
return FALSE
/turf/open/floor/plating/foam/ex_act()
..()
ScrapeAway()
+8
View File
@@ -41,6 +41,14 @@
/turf/open/space/transit/border/east
dir = EAST
/turf/open/space/transit/centcom
dir = SOUTH
/turf/open/space/transit/centcom/Entered(atom/movable/AM, atom/OldLoc)
..()
if(!locate(/obj/structure/lattice) in src)
throw_atom(AM)
/turf/open/space/transit/border/Entered(atom/movable/AM, atom/OldLoc)
..()
if(!locate(/obj/structure/lattice) in src)