Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit2
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250)
|
||||
|
||||
#define LIGHT_COLOR_BLUEGREEN "#7DE1AF" //Light blueish green. rgb(125, 225, 175)
|
||||
#define LIGHT_COLOR_PALEBLUE "#7DAFE1" //A pale blue-ish color. rgb(125, 175, 225)
|
||||
#define LIGHT_COLOR_CYAN "#7DE1E1" //Diluted cyan. rgb(125, 225, 225)
|
||||
#define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" //More-saturated cyan. rgb(64, 206, 255)
|
||||
#define LIGHT_COLOR_DARK_BLUE "#6496FA" //Saturated blue. rgb(51, 117, 248)
|
||||
|
||||
@@ -1239,6 +1239,20 @@ GLOBAL_REAL_VAR(list/stack_trace_storage)
|
||||
pixel_x = initialpixelx
|
||||
pixel_y = initialpixely
|
||||
|
||||
/atom/proc/do_jiggle(targetangle = 45)
|
||||
var/matrix/OM = matrix(transform)
|
||||
var/matrix/M = matrix(transform)
|
||||
M.Turn(pick(-targetangle, targetangle))
|
||||
animate(src, transform = M, time = 10, easing = ELASTIC_EASING)
|
||||
animate(src, transform = OM, time = 10, easing = ELASTIC_EASING)
|
||||
|
||||
/atom/proc/do_squish(squishx = 1.2, squishy = 0.6)
|
||||
var/matrix/OM = matrix(transform)
|
||||
var/matrix/M = matrix(transform)
|
||||
M.Scale(squishx, squishy)
|
||||
animate(src, transform = M, time = 10, easing = BOUNCE_EASING)
|
||||
animate(src, transform = OM, time = 10, easing = BOUNCE_EASING)
|
||||
|
||||
/proc/weightclass2text(var/w_class)
|
||||
switch(w_class)
|
||||
if(WEIGHT_CLASS_TINY)
|
||||
@@ -1530,4 +1544,4 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
. = list()
|
||||
for(var/i in L)
|
||||
if(condition.Invoke(i))
|
||||
. |= i
|
||||
. |= i
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
/datum/config_entry/string/servername // server name (the name of the game window)
|
||||
|
||||
/datum/config_entry/string/servertagline
|
||||
config_entry_value = "We forgot to set the server's tagline in config.txt"
|
||||
|
||||
/datum/config_entry/string/serversqlname // short form server name used for the DB
|
||||
|
||||
/datum/config_entry/string/stationname // station name (the name of the station in-game)
|
||||
|
||||
@@ -169,10 +169,12 @@
|
||||
if(locked)
|
||||
to_chat(M, "<span class='warning'>[parent] seems to be locked!</span>")
|
||||
return FALSE
|
||||
var/atom/A = parent
|
||||
var/obj/item/I = O
|
||||
if(collection_mode == COLLECT_ONE)
|
||||
if(can_be_inserted(I, null, M))
|
||||
handle_item_insertion(I, null, M)
|
||||
A.do_squish()
|
||||
return
|
||||
if(!isturf(I.loc))
|
||||
return
|
||||
@@ -189,6 +191,7 @@
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
to_chat(M, "<span class='notice'>You put everything you could [insert_preposition] [parent].</span>")
|
||||
A.do_squish(1.4, 0.4)
|
||||
|
||||
/datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress)
|
||||
var/atom/source_real_location = src_object.real_location()
|
||||
@@ -246,6 +249,7 @@
|
||||
while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress)))
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
A.do_squish(0.8, 1.2)
|
||||
|
||||
/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE)
|
||||
var/atom/real_location = real_location()
|
||||
@@ -455,6 +459,7 @@
|
||||
return FALSE
|
||||
if(dump_destination.storage_contents_dump_act(src, M))
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
A.do_squish(0.8, 1.2)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -473,6 +478,8 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
handle_item_insertion(I, FALSE, M)
|
||||
var/atom/A = parent
|
||||
A.do_squish()
|
||||
|
||||
/datum/component/storage/proc/return_inv(recursive)
|
||||
var/list/ret = list()
|
||||
@@ -514,6 +521,7 @@
|
||||
if(A.loc != M)
|
||||
return
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
A.do_jiggle()
|
||||
if(istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
M.putItemFromInventoryInHandIfPossible(A, H.held_index)
|
||||
@@ -539,6 +547,8 @@
|
||||
if(!L.incapacitated() && I == L.get_active_held_item())
|
||||
if(!SEND_SIGNAL(I, COMSIG_CONTAINS_STORAGE) && can_be_inserted(I, FALSE)) //If it has storage it should be trying to dump, not insert.
|
||||
handle_item_insertion(I, FALSE, L)
|
||||
var/atom/A = parent
|
||||
A.do_squish()
|
||||
|
||||
//This proc return 1 if the item can be picked up and 0 if it can't.
|
||||
//Set the stop_messages to stop it from printing messages
|
||||
@@ -712,6 +722,7 @@
|
||||
to_chat(user, "<span class='warning'>[parent] seems to be locked!</span>")
|
||||
else
|
||||
show_to(user)
|
||||
A.do_jiggle()
|
||||
|
||||
/datum/component/storage/proc/signal_on_pickup(datum/source, mob/user)
|
||||
var/atom/A = parent
|
||||
@@ -732,16 +743,30 @@
|
||||
return hide_from(target)
|
||||
|
||||
/datum/component/storage/proc/on_alt_click(datum/source, mob/user)
|
||||
if(!isliving(user) || user.incapacitated() || !quickdraw || locked || !user.CanReach(parent))
|
||||
if(!isliving(user) || !user.CanReach(parent))
|
||||
return
|
||||
var/obj/item/I = locate() in real_location()
|
||||
if(!I)
|
||||
if(locked)
|
||||
to_chat(user, "<span class='warning'>[parent] seems to be locked!</span>")
|
||||
return
|
||||
remove_from_storage(I, get_turf(user))
|
||||
if(!user.put_in_hands(I))
|
||||
to_chat(user, "<span class='notice'>You fumble for [I] and it falls on the floor.</span>")
|
||||
|
||||
var/atom/A = parent
|
||||
if(!quickdraw)
|
||||
A.add_fingerprint(user)
|
||||
user_show_to_mob(user)
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
return
|
||||
|
||||
if(!user.incapacitated())
|
||||
var/obj/item/I = locate() in real_location()
|
||||
if(!I)
|
||||
return
|
||||
A.add_fingerprint(user)
|
||||
remove_from_storage(I, get_turf(user))
|
||||
if(!user.put_in_hands(I))
|
||||
to_chat(user, "<span class='notice'>You fumble for [I] and it falls on the floor.</span>")
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] draws [I] from [parent]!</span>", "<span class='notice'>You draw [I] from [parent].</span>")
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] draws [I] from [parent]!</span>", "<span class='notice'>You draw [I] from [parent].</span>")
|
||||
|
||||
/datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source)
|
||||
gather_mode_switch(source.owner)
|
||||
|
||||
@@ -267,13 +267,13 @@
|
||||
|
||||
/datum/quirk/phobia
|
||||
name = "Phobia"
|
||||
desc = "You've had a traumatic past, that has scared you for life while dealing with your greatest fear."
|
||||
desc = "You've had a traumatic past, one that has scarred you for life, and cripples you when dealing with your greatest fears."
|
||||
value = -2 // It can hardstun you. You can be a job that your phobia targets...
|
||||
gain_text = "<span class='danger'>You feel your fears manifest themselfs.</span>"
|
||||
lose_text = "<span class='notice'>You feel your fears fade away.</span>"
|
||||
medical_record_text = "Patient has an extreme or irrational fear of or aversion to something."
|
||||
gain_text = "<span class='danger'>You begin to tremble as an immeasurable fear grips your mind.</span>"
|
||||
lose_text = "<span class='notice'>Your confidence wipes away the fear that had been plaguing you.</span>"
|
||||
medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli."
|
||||
var/datum/brain_trauma/mild/phobia/phobia
|
||||
|
||||
|
||||
/datum/quirk/phobia/add()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
phobia = new
|
||||
@@ -281,11 +281,11 @@
|
||||
|
||||
/datum/quirk/mute
|
||||
name = "Mute"
|
||||
desc = "Do to some accident caused you or by choice you have no voice to be heard!"
|
||||
desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak."
|
||||
value = -2 //HALP MAINTS
|
||||
gain_text = "<span class='danger'>I rather not say...</span>"
|
||||
lose_text = "<span class='notice'>I can speak once more.</span>"
|
||||
medical_record_text = "Patient has an been unable to talk or use there voice."
|
||||
gain_text = "<span class='danger'>You find yourself unable to speak!</span>"
|
||||
lose_text = "<span class='notice'>You feel a growing strength in your vocal chords.</span>"
|
||||
medical_record_text = "Functionally mute, patient is unable to use their voice in any capacity."
|
||||
var/datum/brain_trauma/severe/mute
|
||||
|
||||
/datum/quirk/mute/add()
|
||||
@@ -294,5 +294,5 @@
|
||||
|
||||
/datum/quirk/mute/on_process()
|
||||
if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums))
|
||||
to_chat(quirk_holder, "<span class='boldannounce'>Your antagonistic nature has caused your voice to be heard.</span>")
|
||||
to_chat(quirk_holder, "<span class='boldannounce'>Your antagonistic nature has caused your voice to return.</span>")
|
||||
qdel(src)
|
||||
|
||||
@@ -622,8 +622,12 @@
|
||||
else if(direction & WEST)
|
||||
pixel_x_diff = -8
|
||||
|
||||
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2)
|
||||
animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 2)
|
||||
var/matrix/OM = matrix(transform)
|
||||
var/matrix/M = matrix(transform)
|
||||
M.Turn(pixel_x_diff ? pixel_x_diff*2 : pick(-16, 16))
|
||||
|
||||
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, transform = M, time = 2)
|
||||
animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, transform = OM, time = 2)
|
||||
|
||||
/atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item)
|
||||
var/image/I
|
||||
|
||||
@@ -36,6 +36,7 @@ RLD
|
||||
var/no_ammo_message = "<span class='warning'>The \'Low Ammo\' light on the device blinks yellow.</span>"
|
||||
var/has_ammobar = FALSE //controls whether or not does update_icon apply ammo indicator overlays
|
||||
var/ammo_sections = 10 //amount of divisions in the ammo indicator overlay/number of ammo indicator states
|
||||
var/custom_range = 7
|
||||
|
||||
/obj/item/construction/Initialize()
|
||||
. = ..()
|
||||
@@ -119,7 +120,7 @@ RLD
|
||||
return .
|
||||
|
||||
/obj/item/construction/proc/range_check(atom/A, mob/user)
|
||||
if(!(A in view(7, get_turf(user))))
|
||||
if(!(A in range(custom_range, get_turf(user))))
|
||||
to_chat(user, "<span class='warning'>The \'Out of Range\' light on [src] blinks red.</span>")
|
||||
return FALSE
|
||||
else
|
||||
@@ -519,8 +520,9 @@ RLD
|
||||
icon_state = "rld-5"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
matter = 200
|
||||
max_matter = 200
|
||||
matter = 500
|
||||
max_matter = 500
|
||||
sheetmultiplier = 16
|
||||
var/mode = LIGHT_MODE
|
||||
actions_types = list(/datum/action/item_action/pick_color)
|
||||
|
||||
@@ -531,7 +533,7 @@ RLD
|
||||
|
||||
var/walldelay = 10
|
||||
var/floordelay = 10
|
||||
var/decondelay = 15
|
||||
var/decondelay = 10
|
||||
|
||||
var/color_choice = null
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
/obj/item/flashlight/attack_self(mob/user)
|
||||
on = !on
|
||||
update_brightness(user)
|
||||
playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
/obj/item/kitchen/knife/scimitar
|
||||
name = "Scimitar knife"
|
||||
desc = "A knife used to cleanly butcher, its been modifed to be able to cut more meat then a normale knife. Do to the years of use its blade isnt as strong as it once was!"
|
||||
desc = "A knife used to cleanly butcher. Its razor-sharp edge has been honed for butchering, but has been poorly maintained over the years."
|
||||
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
/obj/item/kitchen/knife/scimiar/Initialize()
|
||||
|
||||
@@ -200,5 +200,9 @@
|
||||
'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg',
|
||||
'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg',
|
||||
'sound/vore/prey/death_10.ogg')
|
||||
if("clang")
|
||||
soundin = pick('sound/effects/clang1.ogg', 'sound/effects/clang2.ogg')
|
||||
if("clangsmall")
|
||||
soundin = pick('sound/effects/clangsmall1.ogg', 'sound/effects/clangsmall2.ogg')
|
||||
//END OF CIT CHANGES
|
||||
return soundin
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
icon = 'icons/turf/walls/riveted.dmi'
|
||||
icon_state = "riveted"
|
||||
smooth = SMOOTH_TRUE
|
||||
explosion_block = INFINITY
|
||||
|
||||
/turf/closed/indestructible/riveted/uranium
|
||||
icon = 'icons/turf/walls/uranium_wall.dmi'
|
||||
|
||||
+1
-1
@@ -263,7 +263,7 @@ GLOBAL_VAR(restart_counter)
|
||||
s += "Citadel" //Replace this with something else. Or ever better, delete it and uncomment the game version. CIT CHANGE - modifies the hub entry link
|
||||
s += "</a>"
|
||||
s += ")\]" //CIT CHANGE - encloses the server title in brackets to make the hub entry fancier
|
||||
s += "<br><small><i>That furry /TG/code server your mother warned you about.</i></small><br>" //CIT CHANGE - adds a tagline!
|
||||
s += "<br>[CONFIG_GET(string/servertagline)]<br>" //CIT CHANGE - adds a tagline!
|
||||
|
||||
var/n = 0
|
||||
for (var/mob/M in GLOB.player_list)
|
||||
|
||||
@@ -650,7 +650,7 @@
|
||||
if(0)
|
||||
add_overlay(AALARM_OVERLAY_GREEN)
|
||||
overlay_state = AALARM_OVERLAY_GREEN
|
||||
light_color = LIGHT_COLOR_BLUEGREEN
|
||||
light_color = LIGHT_COLOR_PALEBLUE
|
||||
set_light(brightness_on)
|
||||
if(1)
|
||||
add_overlay(AALARM_OVERLAY_WARN)
|
||||
|
||||
+12
-12
@@ -1537,6 +1537,18 @@
|
||||
crate_name = "janitor backpack crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/service/advlighting
|
||||
name = "Advanced Lighting crate"
|
||||
desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!"
|
||||
cost = 2500 //Fair
|
||||
contains = list(/obj/item/construction/rld,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/item/flashlight/lamp/green,
|
||||
/obj/item/storage/box/lights/mixed)
|
||||
crate_name = "advanced lighting crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/service/mule
|
||||
name = "MULEbot Crate"
|
||||
desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!"
|
||||
@@ -1788,18 +1800,6 @@
|
||||
crate_name = "hydroponics backpack crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/organic/advlighting
|
||||
name = "Advanced Lighting crate"
|
||||
desc = "Thanks to advanced lighting tech we here at the Lamp Factor have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!"
|
||||
cost = 2500 //Fair
|
||||
contains = list(/obj/item/construction/rld,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/item/flashlight/lamp/green,
|
||||
/obj/item/storage/box/lights/mixed)
|
||||
crate_name = "advanced lighting crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/organic/pizza
|
||||
name = "Pizza Crate"
|
||||
desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// Fixed to work with Citadel code. Apparently none of them had NO_MUTANTRACE flags.
|
||||
// I was pissy when I realised how to fix this because it's so fucking easy and nobody apparently had done it.
|
||||
|
||||
/obj/item/clothing/under/stripper_pink
|
||||
name = "pink stripper outfit"
|
||||
icon_state = "stripper_p"
|
||||
@@ -6,7 +9,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/stripper_green
|
||||
name = "green stripper outfit"
|
||||
@@ -16,8 +19,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/wedding/bride_orange
|
||||
name = "orange wedding dress"
|
||||
@@ -28,7 +30,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/wedding/bride_purple
|
||||
name = "purple wedding dress"
|
||||
@@ -39,7 +41,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/wedding/bride_blue
|
||||
name = "blue wedding dress"
|
||||
@@ -50,7 +52,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/wedding/bride_red
|
||||
name = "red wedding dress"
|
||||
@@ -61,7 +63,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/wedding/bride_white
|
||||
name = "white wedding dress"
|
||||
@@ -72,7 +74,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/mankini
|
||||
name = "pink mankini"
|
||||
@@ -82,6 +84,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
/*
|
||||
|
||||
/obj/item/clothing/under/psysuit
|
||||
@@ -126,7 +129,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/russobluecamooutfit
|
||||
name = "russian blue camo"
|
||||
@@ -137,7 +140,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/stilsuit
|
||||
name = "stillsuit"
|
||||
@@ -148,7 +151,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/aviatoruniform
|
||||
name = "aviator uniform"
|
||||
@@ -159,7 +162,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/bikersuit
|
||||
name = "biker's outfit"
|
||||
@@ -169,7 +172,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/jacketsuit
|
||||
name = "richard's outfit"
|
||||
@@ -180,7 +183,7 @@
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
obj/item/clothing/under/mega
|
||||
name = "\improper DRN-001 suit"
|
||||
@@ -191,7 +194,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/proto
|
||||
name = "The Prototype Suit"
|
||||
@@ -202,7 +205,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/megax
|
||||
name = "\improper Maverick Hunter regalia"
|
||||
@@ -213,7 +216,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/joe
|
||||
name = "The Sniper Suit"
|
||||
@@ -224,7 +227,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/roll
|
||||
name = "\improper DRN-002 Dress"
|
||||
@@ -235,7 +238,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/gokugidown
|
||||
name = "turtle hermit undershirt"
|
||||
@@ -246,7 +249,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/gokugi
|
||||
name = "turtle hermit outfit"
|
||||
@@ -257,7 +260,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/doomguy
|
||||
name = "\improper Doomguy's pants"
|
||||
@@ -268,7 +271,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/vault13
|
||||
name = "vault 13 Jumpsuit"
|
||||
@@ -279,7 +282,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/vault
|
||||
name = "vault jumpsuit"
|
||||
@@ -290,7 +293,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/clownpiece
|
||||
name = "Clownpiece's Pierrot suit"
|
||||
@@ -301,7 +304,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/cia
|
||||
name = "casual IAA outfit"
|
||||
@@ -312,7 +315,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/greaser
|
||||
name = "greaser outfit"
|
||||
@@ -322,7 +325,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/greaser/New()
|
||||
var/greaser_colour = "default"
|
||||
@@ -341,6 +344,8 @@ obj/item/clothing/under/mega
|
||||
item_color = "greaser_[greaser_colour]"
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
|
||||
/obj/item/clothing/under/wintercasualwear
|
||||
name = "winter casualwear"
|
||||
@@ -351,8 +356,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/casualwear
|
||||
name = "spring casualwear"
|
||||
@@ -363,7 +367,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/keyholesweater
|
||||
name = "keyhole sweater"
|
||||
@@ -374,7 +378,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/casualhoodie
|
||||
name = "casual hoodie"
|
||||
@@ -385,8 +389,7 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
|
||||
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/under/casualhoodie/skirt
|
||||
icon_state = "hoodieskirt"
|
||||
@@ -394,6 +397,8 @@ obj/item/clothing/under/mega
|
||||
item_color = "hoodieskirt"
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/*
|
||||
/obj/item/clothing/under/mummy_rags
|
||||
name = "mummy rags"
|
||||
@@ -427,3 +432,5 @@ obj/item/clothing/under/mega
|
||||
can_adjust = 0
|
||||
icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
|
||||
@@ -18,7 +18,14 @@
|
||||
"Your money can buy happiness!", \
|
||||
"Engage direct marketing!", \
|
||||
"Advertising is legalized lying! But don't let that put you off our great deals!", \
|
||||
"You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.")
|
||||
"You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.",
|
||||
"Gamers, rise up!",
|
||||
"Ok, now, this is epic.",
|
||||
"HUMAN FUNNY.",
|
||||
"But I'm already tracer!",
|
||||
"How do I vore people?",
|
||||
"ERP?",
|
||||
"Not epic bros...")
|
||||
|
||||
|
||||
/datum/round_event/brand_intelligence/announce(fake)
|
||||
|
||||
@@ -24,10 +24,7 @@
|
||||
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
|
||||
volume = 100
|
||||
|
||||
/obj/item/reagent_containers/spray/weedspray/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("weedkiller", 100)
|
||||
list_reagents = list("weedkiller" = 100)
|
||||
|
||||
/obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
@@ -42,10 +39,7 @@
|
||||
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
|
||||
volume = 100
|
||||
|
||||
/obj/item/reagent_containers/spray/pestspray/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("pestkiller", 100)
|
||||
list_reagents = list("pestkiller" = 100)
|
||||
|
||||
/obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
@@ -157,71 +151,45 @@
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient
|
||||
name = "bottle of nutrient"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
volume = 50
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(1,2,5,10,15,25,50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/Initialize()
|
||||
. = ..()
|
||||
src.pixel_x = rand(-5, 5)
|
||||
src.pixel_y = rand(-5, 5)
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/ez
|
||||
name = "bottle of E-Z-Nutrient"
|
||||
desc = "Contains a fertilizer that causes mild mutations with each harvest."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/ez/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("eznutriment", 50)
|
||||
list_reagents = list("eznutriment" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/l4z
|
||||
name = "bottle of Left 4 Zed"
|
||||
desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/l4z/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("left4zednutriment", 50)
|
||||
list_reagents = list("left4zednutriment" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/rh
|
||||
name = "bottle of Robust Harvest"
|
||||
desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/rh/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("robustharvestnutriment", 50)
|
||||
list_reagents = list("robustharvestnutriment" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/empty
|
||||
name = "bottle"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/killer
|
||||
name = "bottle"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
volume = 50
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(1,2,5,10,15,25,50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/killer/weedkiller
|
||||
name = "bottle of weed killer"
|
||||
desc = "Contains a herbicide."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/killer/weedkiller/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("weedkiller", 50)
|
||||
list_reagents = list("weedkiller" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/killer/pestkiller
|
||||
name = "bottle of pest spray"
|
||||
desc = "Contains a pesticide."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/killer/pestkiller/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("pestkiller", 50)
|
||||
list_reagents = list("pestkiller" = 50)
|
||||
@@ -15,7 +15,6 @@
|
||||
OB.brainmob = src
|
||||
forceMove(OB)
|
||||
|
||||
|
||||
/mob/living/brain/proc/create_dna()
|
||||
stored_dna = new /datum/dna/stored(src)
|
||||
if(!stored_dna.species)
|
||||
@@ -28,6 +27,7 @@
|
||||
death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA
|
||||
if(mind) //You aren't allowed to return to brains that don't exist
|
||||
mind.current = null
|
||||
mind.active = FALSE //No one's using it anymore.
|
||||
ghostize() //Ghostize checks for key so nothing else is necessary.
|
||||
container = null
|
||||
return ..()
|
||||
|
||||
@@ -188,6 +188,8 @@
|
||||
if(thrown_thing)
|
||||
visible_message("<span class='danger'>[src] has thrown [thrown_thing].</span>")
|
||||
src.log_message("has thrown [thrown_thing]", LOG_ATTACK)
|
||||
do_attack_animation(target, no_effect = 1)
|
||||
playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1)
|
||||
newtonian_move(get_dir(target, src))
|
||||
thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src)
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
|
||||
if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0)
|
||||
var/efficiency = 0.65
|
||||
var/efficiency = 0.45
|
||||
|
||||
var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity)
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart/noreact
|
||||
name = "cryostasis shotgun dart"
|
||||
desc = "A dart for use in shotguns, using similar technology as cryostatis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical."
|
||||
desc = "A dart for use in shotguns. Uses technology similar to cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical."
|
||||
icon_state = "cnrshell"
|
||||
reagent_amount = 10
|
||||
reagent_react = FALSE
|
||||
|
||||
@@ -546,19 +546,14 @@
|
||||
overdose_threshold = 45
|
||||
addiction_threshold = 30
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.adjustStaminaLoss(-1*REM, 0)
|
||||
M.adjustStaminaLoss(-4.5*REM, 0)
|
||||
M.Jitter(10)
|
||||
if(prob(50))
|
||||
M.confused = max(M.confused, 1)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// Disposal pipes
|
||||
|
||||
#define IFFY 2
|
||||
|
||||
/obj/structure/disposalpipe
|
||||
name = "disposal pipe"
|
||||
desc = "An underfloor disposal pipe."
|
||||
@@ -16,6 +18,7 @@
|
||||
var/dpdir = NONE // bitmask of pipe directions
|
||||
var/initialize_dirs = NONE // bitflags of pipe directions added on init, see \code\_DEFINES\pipe_construction.dm
|
||||
var/flip_type // If set, the pipe is flippable and becomes this type when flipped
|
||||
var/canclank = FALSE // Determines if the pipe will cause a clank sound when holders pass by it. use the IFFY define for weird-ass edge cases like the segment subtype
|
||||
var/obj/structure/disposalconstruct/stored
|
||||
|
||||
|
||||
@@ -75,6 +78,8 @@
|
||||
H.merge(H2)
|
||||
|
||||
H.forceMove(P)
|
||||
if(P.canclank == TRUE || (P.canclank == IFFY && P.dpdir != 3 && P.dpdir != 12))
|
||||
playsound(P, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1)
|
||||
return P
|
||||
else // if wasn't a pipe, then they're now in our turf
|
||||
H.forceMove(get_turf(src))
|
||||
@@ -184,6 +189,7 @@
|
||||
/obj/structure/disposalpipe/segment
|
||||
icon_state = "pipe"
|
||||
initialize_dirs = DISP_DIR_FLIP
|
||||
canclank = IFFY
|
||||
|
||||
|
||||
// A three-way junction with dir being the dominant direction
|
||||
@@ -191,6 +197,7 @@
|
||||
icon_state = "pipe-j1"
|
||||
initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP
|
||||
flip_type = /obj/structure/disposalpipe/junction/flip
|
||||
canclank = TRUE
|
||||
|
||||
// next direction to move
|
||||
// if coming in from secondary dirs, then next is primary dir
|
||||
@@ -229,6 +236,7 @@
|
||||
//a trunk joining to a disposal bin or outlet on the same turf
|
||||
/obj/structure/disposalpipe/trunk
|
||||
icon_state = "pipe-t"
|
||||
canclank = TRUE
|
||||
var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet
|
||||
|
||||
/obj/structure/disposalpipe/trunk/Initialize()
|
||||
@@ -299,3 +307,5 @@
|
||||
|
||||
/obj/structure/disposalpipe/broken/deconstruct()
|
||||
qdel(src)
|
||||
|
||||
#undef IFFY
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
desc = "An underfloor disposal pipe with a sorting mechanism."
|
||||
icon_state = "pipe-j1s"
|
||||
initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP
|
||||
canclank = TRUE
|
||||
|
||||
/obj/structure/disposalpipe/sorting/nextdir(obj/structure/disposalholder/H)
|
||||
var/sortdir = dpdir & ~(dir | turn(dir, 180))
|
||||
|
||||
@@ -118,3 +118,16 @@
|
||||
build_path = /obj/item/disk/integrated_circuit/upgrade/clone
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
//CIT ADDITIONS
|
||||
/datum/design/drone_shell
|
||||
name = "Drone Shell"
|
||||
desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs."
|
||||
id = "drone_shell"
|
||||
build_type = MECHFAB | PROTOLATHE
|
||||
materials = list(MAT_METAL = 800, MAT_GLASS = 350)
|
||||
construction_time = 150
|
||||
build_path = /obj/item/drone_shell
|
||||
category = list("Misc")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
display_name = "Basic Robotics Research"
|
||||
description = "Programmable machines that make our lives lazier."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("paicard")
|
||||
design_ids = list("paicard", "drone_shell")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
|
||||
export_price = 5000
|
||||
|
||||
|
||||
@@ -4,21 +4,28 @@
|
||||
icon_state = "engivend"
|
||||
icon_deny = "engivend-deny"
|
||||
req_access = list(ACCESS_ENGINE_EQUIP)
|
||||
products = list(/obj/item/clothing/glasses/meson/engine = 2,
|
||||
/obj/item/clothing/glasses/welding = 3,
|
||||
/obj/item/multitool = 4,
|
||||
products = list(/obj/item/clothing/glasses/meson/engine = 5,
|
||||
/obj/item/clothing/glasses/welding = 5,
|
||||
/obj/item/multitool = 5,
|
||||
/obj/item/construction/rcd/loaded = 3,
|
||||
/obj/item/grenade/chem_grenade/smart_metal_foam = 10,
|
||||
/obj/item/geiger_counter = 5,
|
||||
/obj/item/geiger_counter = 6,
|
||||
/obj/item/stock_parts/cell/high = 10,
|
||||
/obj/item/electronics/airlock = 10,
|
||||
/obj/item/electronics/airlock = 10,
|
||||
/obj/item/electronics/apc = 10,
|
||||
/obj/item/electronics/airalarm = 10,
|
||||
/obj/item/electronics/firealarm = 10,
|
||||
/obj/item/electronics/firelock = 10
|
||||
/obj/item/electronics/firelock = 10,
|
||||
/obj/item/rcd_ammo = 3
|
||||
)
|
||||
contraband = list(/obj/item/stock_parts/cell/potato = 3)
|
||||
contraband = list(/obj/item/stock_parts/cell/potato = 3,
|
||||
/obj/item/rcd_ammo = 2,
|
||||
/obj/item/circuitboard/computer/slot_machine = 1,
|
||||
/obj/item/tank/internals/emergency_oxygen/double = 3
|
||||
)
|
||||
premium = list(/obj/item/storage/belt/utility = 3,
|
||||
/obj/item/storage/box/smart_metal_foam = 1)
|
||||
/obj/item/storage/box/smart_metal_foam = 3,
|
||||
/obj/item/rcd_ammo/large = 5
|
||||
)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
@@ -16,6 +16,9 @@ $include antag_rep.txt
|
||||
## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice.
|
||||
# SERVERNAME tgstation
|
||||
|
||||
## Server tagline: This will appear right below the server's title.
|
||||
# SERVERTAGLINE A generic TG-based server
|
||||
|
||||
## Server SQL name: This is the name used to identify the server to the SQL DB, distinct from SERVERNAME as it must be at most 32 characters.
|
||||
# SERVERSQLNAME tgstation
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- server: "The server's tagline is now a config option. People can now stop confusing us with BR cit"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghom"
|
||||
delete-after: True
|
||||
changes:
|
||||
- code_imp: "minor clean up on hydroponics reagent containers."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Skoglol"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "You can now alt click storage (bags, boxes, etc) to open it."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Attack animations will now rotate your character slightly, similar to Goon."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Throwing items will now perform the attack animation and play a sound"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "flashlights will now make sounds when toggled on/off"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Things in disposals will now emit sounds every single time they hit corners. This increases immersion."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Air alarms now actually emit the proper light color when their status is okay."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "deathride58"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Backpacks and other storage items will now jiggle and squish when you interact with them, similar to the animations seen on Goon."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "nicc"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "teg less gay maybe"
|
||||
@@ -0,0 +1,35 @@
|
||||
/datum/component/souldeath
|
||||
var/mob/living/wearer
|
||||
var/equip_slot
|
||||
var/signal = FALSE
|
||||
|
||||
/datum/component/souldeath/Initialize()
|
||||
if(!isitem(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip)
|
||||
RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unequip)
|
||||
|
||||
/datum/component/souldeath/proc/equip(datum/source, mob/living/equipper, slot)
|
||||
if(!slot || equip_slot == slot)
|
||||
wearer = equipper
|
||||
RegisterSignal(wearer, COMSIG_MOB_DEATH, .proc/die, TRUE)
|
||||
signal = TRUE
|
||||
else
|
||||
if(signal)
|
||||
UnregisterSignal(wearer, COMSIG_MOB_DEATH)
|
||||
signal = FALSE
|
||||
return
|
||||
|
||||
/datum/component/souldeath/proc/unequip()
|
||||
UnregisterSignal(wearer, COMSIG_MOB_DEATH)
|
||||
wearer = null
|
||||
signal = FALSE
|
||||
|
||||
/datum/component/souldeath/proc/die()
|
||||
if(!wearer)
|
||||
return //idfk
|
||||
new/obj/effect/temp_visual/souldeath(wearer.loc, wearer)
|
||||
playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
|
||||
|
||||
/datum/component/souldeath/neck
|
||||
equip_slot = SLOT_NECK
|
||||
@@ -0,0 +1,5 @@
|
||||
/obj/effect/temp_visual/souldeath
|
||||
name = "soul death"
|
||||
icon = 'modular_citadel/icons/effects/souldeath.dmi'
|
||||
icon_state = "souldeath"
|
||||
duration = 30
|
||||
@@ -1,7 +1,7 @@
|
||||
//////////
|
||||
//DILDOS//
|
||||
//////////
|
||||
obj/item/dildo
|
||||
/obj/item/dildo
|
||||
name = "dildo"
|
||||
desc = "Floppy!"
|
||||
icon = 'modular_citadel/icons/obj/genitals/dildo.dmi'
|
||||
@@ -18,9 +18,10 @@ obj/item/dildo
|
||||
var/random_color = TRUE
|
||||
var/random_size = FALSE
|
||||
var/random_shape = FALSE
|
||||
var/is_knotted = FALSE
|
||||
//Lists moved to _cit_helpers.dm as globals so they're not instanced individually
|
||||
|
||||
obj/item/dildo/proc/update_appearance()
|
||||
/obj/item/dildo/proc/update_appearance()
|
||||
icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]"
|
||||
var/sizeword = ""
|
||||
switch(dildo_size)
|
||||
@@ -35,7 +36,7 @@ obj/item/dildo/proc/update_appearance()
|
||||
|
||||
name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]"
|
||||
|
||||
obj/item/dildo/AltClick(mob/living/user)
|
||||
/obj/item/dildo/AltClick(mob/living/user)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(!isliving(user))
|
||||
@@ -46,7 +47,7 @@ obj/item/dildo/AltClick(mob/living/user)
|
||||
return
|
||||
customize(user)
|
||||
|
||||
obj/item/dildo/proc/customize(mob/living/user)
|
||||
/obj/item/dildo/proc/customize(mob/living/user)
|
||||
if(!can_customize)
|
||||
return FALSE
|
||||
if(src && !user.incapacitated() && in_range(user,src))
|
||||
@@ -75,7 +76,7 @@ obj/item/dildo/proc/customize(mob/living/user)
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
obj/item/dildo/Initialize()
|
||||
/obj/item/dildo/Initialize()
|
||||
. = ..()
|
||||
if(random_color == TRUE)
|
||||
var/randcolor = pick(GLOB.dildo_colors)
|
||||
@@ -91,38 +92,41 @@ obj/item/dildo/Initialize()
|
||||
pixel_y = rand(-7,7)
|
||||
pixel_x = rand(-7,7)
|
||||
|
||||
obj/item/dildo/examine(mob/user)
|
||||
/obj/item/dildo/examine(mob/user)
|
||||
..()
|
||||
if(can_customize)
|
||||
user << "<span class='notice'>Alt-Click \the [src.name] to customize it.</span>"
|
||||
|
||||
obj/item/dildo/random//totally random
|
||||
/obj/item/dildo/random//totally random
|
||||
name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^))
|
||||
random_color = TRUE
|
||||
random_shape = TRUE
|
||||
random_size = TRUE
|
||||
|
||||
|
||||
obj/item/dildo/knotted
|
||||
/obj/item/dildo/knotted
|
||||
dildo_shape = "knotted"
|
||||
name = "knotted dildo"
|
||||
attack_verb = list("penetrated", "knotted", "slapped", "inseminated")
|
||||
|
||||
obj/item/dildo/human
|
||||
dildo_shape = "human"
|
||||
name = "human dildo"
|
||||
attack_verb = list("penetrated", "slapped", "inseminated")
|
||||
|
||||
obj/item/dildo/plain
|
||||
dildo_shape = "plain"
|
||||
name = "plain dildo"
|
||||
attack_verb = list("penetrated", "slapped", "inseminated")
|
||||
|
||||
obj/item/dildo/flared
|
||||
dildo_shape = "flared"
|
||||
name = "flared dildo"
|
||||
attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated")
|
||||
|
||||
obj/item/dildo/flared/huge
|
||||
name = "literal horse cock"
|
||||
desc = "THIS THING IS HUGE!"
|
||||
dildo_size = 4
|
||||
name = "literal horse cock"
|
||||
desc = "THIS THING IS HUGE!"
|
||||
dildo_size = 4
|
||||
|
||||
obj/item/dildo/custom
|
||||
name = "customizable dildo"
|
||||
@@ -131,3 +135,30 @@ obj/item/dildo/custom
|
||||
random_color = TRUE
|
||||
random_shape = TRUE
|
||||
random_size = TRUE
|
||||
|
||||
// Suicide acts, by request
|
||||
|
||||
/obj/item/dildo/proc/manual_suicide(mob/living/user)
|
||||
user.visible_message("<span class='suicide'>[user] finally finishes deepthroating the [src], and their life.</span>")
|
||||
user.adjustOxyLoss(200)
|
||||
user.death(0)
|
||||
|
||||
/obj/item/dildo/suicide_act(mob/living/user)
|
||||
// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue")
|
||||
if(do_after(user,17,target=src))
|
||||
user.visible_message("<span class='suicide'>[user] tears-up and gags as they shove [src] down their throat! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1)
|
||||
user.Stun(150)
|
||||
user.adjust_blurriness(8)
|
||||
user.adjust_eye_damage(10)
|
||||
return MANUAL_SUICIDE
|
||||
|
||||
/obj/item/dildo/flared/huge/suicide_act(mob/living/user)
|
||||
if(do_after(user,35,target=src))
|
||||
user.visible_message("<span class='suicide'>[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!</span>")
|
||||
playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1)
|
||||
user.Stun(300)
|
||||
user.adjust_blurriness(8)
|
||||
user.adjust_eye_damage(15)
|
||||
return MANUAL_SUICIDE
|
||||
|
||||
|
||||
@@ -361,4 +361,10 @@ datum/gear/darksabresheath
|
||||
name = "Mime's Overalls"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/under/mimeoveralls
|
||||
ckeywhitelist = list("pireamaineach")
|
||||
ckeywhitelist = list("pireamaineach")
|
||||
|
||||
/datum/gear/soulneck
|
||||
name = "Soul Necklace"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/neck/undertale
|
||||
ckeywhitelist = list("twilightic")
|
||||
@@ -1,8 +1,6 @@
|
||||
/obj/item/clothing/glasses/phantomthief
|
||||
name = "suspicious paper mask"
|
||||
desc = "A cheap, Syndicate-branded paper face mask with vision correction lens and flash proof! They'll never see it coming. This mask goes over your eyes."
|
||||
flash_protect = 1
|
||||
vision_correction = 1
|
||||
desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming."
|
||||
alternate_worn_icon = 'icons/mob/mask.dmi'
|
||||
icon = 'icons/obj/clothing/masks.dmi'
|
||||
icon_state = "s-ninja"
|
||||
@@ -14,7 +12,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/phantomthief/syndicate
|
||||
name = "suspicious plastic mask"
|
||||
desc = "A cheap, bulky, Syndicate-branded plastic face mask with vision correction lens and flash proof. You have to break in to break out. This mask goes over your eyes."
|
||||
desc = "A cheap, bulky, Syndicate-branded plastic face mask. You have to break in to break out."
|
||||
var/nextadrenalinepop
|
||||
var/datum/component/redirect/combattoggle_redir
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/datum/action/item_action/zanderlocket
|
||||
name = "Activate the locket"
|
||||
|
||||
/obj/item/clothing/neck/undertale
|
||||
name = "Sylphaen Heart Locket"
|
||||
desc = "A heart shaped locket...The name: 'Zander Sylphaen is inscribed on the front. Something about this necklace fills you with determination."
|
||||
icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi'
|
||||
item_state = "undertale"
|
||||
icon_state = "undertale"
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/clothing/necks.dmi'
|
||||
resistance_flags = FIRE_PROOF
|
||||
actions_types = list(/datum/action/item_action/zanderlocket)
|
||||
var/toggled = FALSE
|
||||
var/obj/effect/heart/heart
|
||||
|
||||
/datum/action/item_action/zanderlocket/Trigger()
|
||||
new/obj/effect/temp_visual/souldeath(owner.loc, owner)
|
||||
playsound(owner, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
|
||||
|
||||
|
||||
/obj/item/clothing/neck/undertale/Initialize()
|
||||
..()
|
||||
AddComponent(/datum/component/souldeath/neck)
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 292 B |
Binary file not shown.
|
Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 1016 B |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2772,6 +2772,7 @@
|
||||
#include "modular_citadel\code\datums\uplink_items_cit.dm"
|
||||
#include "modular_citadel\code\datums\components\material_container.dm"
|
||||
#include "modular_citadel\code\datums\components\phantomthief.dm"
|
||||
#include "modular_citadel\code\datums\components\souldeath.dm"
|
||||
#include "modular_citadel\code\datums\mood_events\generic_negative_events.dm"
|
||||
#include "modular_citadel\code\datums\mood_events\generic_positive_events.dm"
|
||||
#include "modular_citadel\code\datums\mood_events\moodular.dm"
|
||||
@@ -2798,6 +2799,7 @@
|
||||
#include "modular_citadel\code\game\objects\items.dm"
|
||||
#include "modular_citadel\code\game\objects\tools.dm"
|
||||
#include "modular_citadel\code\game\objects\effects\spawner\spawners.dm"
|
||||
#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm"
|
||||
#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\impact.dm"
|
||||
#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm"
|
||||
#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm"
|
||||
@@ -2870,6 +2872,7 @@
|
||||
#include "modular_citadel\code\modules\client\loadout\uniform.dm"
|
||||
#include "modular_citadel\code\modules\client\verbs\who.dm"
|
||||
#include "modular_citadel\code\modules\clothing\clothing.dm"
|
||||
#include "modular_citadel\code\modules\clothing\neck.dm"
|
||||
#include "modular_citadel\code\modules\clothing\glasses\phantomthief.dm"
|
||||
#include "modular_citadel\code\modules\clothing\head\head.dm"
|
||||
#include "modular_citadel\code\modules\clothing\spacesuits\cydonian_armor.dm"
|
||||
|
||||
Reference in New Issue
Block a user