Merge branch 'master' into master
@@ -1689,6 +1689,7 @@
|
||||
id = "hos";
|
||||
name = "HoS Office Shutters";
|
||||
pixel_y = -25;
|
||||
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/heads/hos)
|
||||
@@ -11710,7 +11711,7 @@
|
||||
/area/maintenance/port/fore)
|
||||
"aAW" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
@@ -11834,7 +11835,7 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
|
||||
@@ -79373,12 +79373,12 @@
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/rack,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = 4;
|
||||
pixel_y = -1
|
||||
},
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = -4;
|
||||
pixel_y = 1
|
||||
},
|
||||
@@ -80186,11 +80186,11 @@
|
||||
/area/engine/storage)
|
||||
"cEi" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/machinery/power/apc{
|
||||
dir = 4;
|
||||
name = "Engineering Storage APC";
|
||||
|
||||
@@ -47699,12 +47699,12 @@
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/rack,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = 4;
|
||||
pixel_y = -1
|
||||
},
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = -4;
|
||||
pixel_y = 1
|
||||
},
|
||||
|
||||
@@ -16464,8 +16464,8 @@
|
||||
/area/storage/eva)
|
||||
"aNt" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/tank/jetpack/carbondioxide,
|
||||
/obj/item/tank/jetpack/carbondioxide{
|
||||
/obj/item/tank/jetpack/carbondioxide/eva,
|
||||
/obj/item/tank/jetpack/carbondioxide/eva{
|
||||
pixel_x = -4;
|
||||
pixel_y = 1
|
||||
},
|
||||
|
||||
@@ -489,4 +489,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
|
||||
#define AREASELECT_CORNERA "corner A"
|
||||
#define AREASELECT_CORNERB "corner B"
|
||||
|
||||
#define PREF_SAVELOAD_COOLDOWN 5
|
||||
#define PREF_SAVELOAD_COOLDOWN 5
|
||||
|
||||
#define VOMIT_TOXIC 1
|
||||
#define VOMIT_PURPLE 2
|
||||
@@ -114,6 +114,7 @@
|
||||
#define TRAIT_PARALYSIS_R_ARM "para-r-arm"
|
||||
#define TRAIT_PARALYSIS_L_LEG "para-l-leg"
|
||||
#define TRAIT_PARALYSIS_R_LEG "para-r-leg"
|
||||
#define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism"
|
||||
#define TRAIT_STRONG_GRABBER "strong_grabber"
|
||||
#define TRAIT_CALCIUM_HEALER "calcium_healer"
|
||||
|
||||
@@ -158,6 +159,7 @@
|
||||
#define TRAUMA_TRAIT "trauma"
|
||||
#define SPECIES_TRAIT "species"
|
||||
#define ORGAN_TRAIT "organ"
|
||||
#define JOB_TRAIT "job"
|
||||
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
|
||||
|
||||
// unique trait sources, still defines
|
||||
|
||||
@@ -108,11 +108,13 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/storage/toolbox/artistic = 2,
|
||||
/obj/item/toy/eightball = 1,
|
||||
/obj/item/reagent_containers/pill/floorpill = 1,
|
||||
/obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
|
||||
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
|
||||
/obj/item/storage/pill_bottle/penis_enlargement = 2,
|
||||
/obj/item/storage/pill_bottle/breast_enlargement = 2,
|
||||
/obj/item/clothing/shoes/wheelys = 1,
|
||||
/obj/item/clothing/shoes/kindleKicks = 1,
|
||||
/obj/item/autosurgeon/penis = 1,
|
||||
/obj/item/autosurgeon/testicles = 1,
|
||||
"" = 3
|
||||
))
|
||||
|
||||
@@ -20,10 +20,23 @@
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/screen/movable/action_button/MouseDrop()
|
||||
if (!can_use(usr))
|
||||
/obj/screen/movable/action_button/MouseDrop(over_object)
|
||||
if(!can_use(usr))
|
||||
return
|
||||
return ..()
|
||||
if((istype(over_object, /obj/screen/movable/action_button) && !istype(over_object, /obj/screen/movable/action_button/hide_toggle)))
|
||||
if(locked)
|
||||
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
|
||||
return
|
||||
var/obj/screen/movable/action_button/B = over_object
|
||||
var/list/actions = usr.actions
|
||||
actions.Swap(actions.Find(src.linked_action), actions.Find(B.linked_action))
|
||||
moved = FALSE
|
||||
ordered = TRUE
|
||||
B.moved = FALSE
|
||||
B.ordered = TRUE
|
||||
usr.update_action_buttons()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/screen/movable/action_button/Click(location,control,params)
|
||||
if (!can_use(usr))
|
||||
|
||||
@@ -72,7 +72,7 @@ SUBSYSTEM_DEF(traumas)
|
||||
"security" = typecacheof(list(/obj/item/clothing/under/rank/security, /obj/item/clothing/under/rank/warden,
|
||||
/obj/item/clothing/under/rank/head_of_security, /obj/item/clothing/under/rank/det,
|
||||
/obj/item/melee/baton, /obj/item/gun/energy/taser, /obj/item/restraints/handcuffs,
|
||||
/obj/machinery/door/airlock/security)),
|
||||
/obj/machinery/door/airlock/security, /obj/effect/hallucination/simple/securitron)),
|
||||
|
||||
"clowns" = typecacheof(list(/obj/item/clothing/under/rank/clown, /obj/item/clothing/shoes/clown_shoes,
|
||||
/obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn,
|
||||
@@ -160,22 +160,22 @@ SUBSYSTEM_DEF(traumas)
|
||||
/obj/item/grown/bananapeel/mimanapeel, /obj/item/cartridge/virus/mime, /obj/item/clothing/shoes/sneakers/mime,
|
||||
/obj/item/bedsheet/mime, /obj/item/reagent_containers/food/snacks/burger/mime, /obj/item/clothing/head/beret, /obj/item/clothing/mask/gas/sexymime,
|
||||
/obj/item/clothing/under/sexymime, /obj/item/toy/figure/mime, /obj/item/toy/crayon/mime, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced, /obj/mecha/combat/reticence)),
|
||||
|
||||
|
||||
"cats" = typecacheof(list(/obj/item/organ/ears/cat, /obj/item/organ/tail/cat, /obj/item/laser_pointer, /obj/item/toy/cattoy, /obj/item/clothing/head/kitty,
|
||||
/obj/item/clothing/head/collectable/kitty, /obj/item/melee/chainofcommand/tailwhip/kitty, /obj/item/stack/sheet/animalhide/cat)),
|
||||
|
||||
|
||||
"syndicate" = typecacheof(list(/obj/item/stack/tile/mineral/plastitanium, /obj/machinery/computer/shuttle/syndicate, /obj/machinery/computer/shuttle/syndicate/recall, /obj/machinery/computer/shuttle/syndicate/drop_pod, /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate, /obj/machinery/recharge_station,
|
||||
/obj/machinery/porta_turret/syndicate, /obj/structure/closet/syndicate, /obj/machinery/suit_storage_unit/syndicate, /obj/item/clothing/under/syndicate, /obj/item/folder/syndicate, /obj/item/documents/syndicate, /obj/item/clothing/glasses/phantomthief/syndicate, /obj/item/antag_spawner/nuke_ops, /obj/item/storage/box/syndicate,
|
||||
/obj/structure/fluff/empty_sleeper/syndicate, /obj/item/implant/radio/syndicate, /obj/item/clothing/head/helmet/space/syndicate, /obj/machinery/nuclearbomb/syndicate, /obj/item/grenade/syndieminibomb, /obj/item/storage/backpack/duffelbag/syndie, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver/syndie,
|
||||
/obj/item/gun/ballistic/automatic/shotgun/bulldog, /obj/item/gun/ballistic/automatic/c20r, /obj/item/gun/ballistic/automatic/m90, /obj/item/gun/ballistic/automatic/l6_saw, /obj/item/storage/belt/grenade/full, /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate, /obj/item/gun/energy/kinetic_accelerator/crossbow,
|
||||
/obj/item/melee/transforming/energy/sword/saber, /obj/item/twohanded/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm,
|
||||
/obj/item/melee/transforming/energy/sword/saber, /obj/item/twohanded/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm,
|
||||
/obj/item/ammo_box/magazine/pistolm9mm, /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/m12g, /obj/item/ammo_box/magazine/mm195x129, /obj/item/antag_spawner/nuke_ops, /obj/mecha/combat/gygax/dark, /obj/mecha/combat/marauder/mauler, /obj/item/soap/syndie, /obj/item/gun/syringe/syndicate, /obj/item/cartridge/virus/syndicate,
|
||||
/obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/aiModule/syndicate,
|
||||
/obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited,
|
||||
/obj/item/toy/cards/deck/syndicate, /obj/item/storage/secure/briefcase/syndie, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/toy/syndicateballoon, /obj/item/clothing/gloves/rapid, /obj/item/paper/fluff/ruins/thederelict/syndie_mission, /obj/item/organ/cyberimp/eyes/hud/security/syndicate, /obj/item/clothing/head/HoS/syndicate,
|
||||
/obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake,
|
||||
/obj/item/radio/headset/syndicate, /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate, /obj/item/pda/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/gun/ballistic/automatic/flechette, /obj/item/ammo_box/magazine/flechette, /obj/item/clothing/suit/toggle/lawyer/black/syndie, /obj/item/melee/transforming/energy/sword/cx/traitor,
|
||||
/obj/structure/sign/poster/contraband/syndicate_pistol, /obj/structure/sign/poster/contraband/syndicate_recruitment, /obj/item/bedsheet/syndie, /obj/item/borg/upgrade/syndicate, /obj/item/tank/jetpack/oxygen/harness, /obj/item/firing_pin/implant/pindicate, /obj/item/reagent_containers/glass/bottle/traitor, /obj/item/storage/belt/military,
|
||||
/obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited,
|
||||
/obj/item/toy/cards/deck/syndicate, /obj/item/storage/secure/briefcase/syndie, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/toy/syndicateballoon, /obj/item/clothing/gloves/rapid, /obj/item/paper/fluff/ruins/thederelict/syndie_mission, /obj/item/organ/cyberimp/eyes/hud/security/syndicate, /obj/item/clothing/head/HoS/syndicate,
|
||||
/obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake,
|
||||
/obj/item/radio/headset/syndicate, /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate, /obj/item/pda/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/gun/ballistic/automatic/flechette, /obj/item/ammo_box/magazine/flechette, /obj/item/clothing/suit/toggle/lawyer/black/syndie, /obj/item/melee/transforming/energy/sword/cx/traitor,
|
||||
/obj/structure/sign/poster/contraband/syndicate_pistol, /obj/structure/sign/poster/contraband/syndicate_recruitment, /obj/item/bedsheet/syndie, /obj/item/borg/upgrade/syndicate, /obj/item/tank/jetpack/oxygen/harness, /obj/item/firing_pin/implant/pindicate, /obj/item/reagent_containers/glass/bottle/traitor, /obj/item/storage/belt/military,
|
||||
/obj/item/twohanded/shockpaddles/syndicate, /obj/item/clothing/mask/cigarette/syndicate, /obj/item/toy/plush/nukeplushie)),
|
||||
|
||||
"eye" = typecacheof(list(/obj/item/organ/eyes, /obj/item/reagent_containers/syringe))
|
||||
@@ -199,7 +199,7 @@ SUBSYSTEM_DEF(traumas)
|
||||
"anime" = typecacheof(list(/datum/species/human/felinid)),
|
||||
"cats" = typecacheof(list(/datum/species/human/felinid)),
|
||||
"syndicate" = typecacheof(list(/datum/species/corporate, /datum/species/zombie/infectious))
|
||||
)
|
||||
)
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
var/obj/item/organ/brain/brain //the poor bastard's brain
|
||||
var/gain_text = "<span class='notice'>You feel traumatized.</span>"
|
||||
var/lose_text = "<span class='notice'>You no longer feel traumatized.</span>"
|
||||
var/can_gain = TRUE //can this be gained through random traumas?
|
||||
var/can_gain = TRUE
|
||||
var/random_gain = TRUE //can this be gained through random traumas?
|
||||
var/resilience = TRAUMA_RESILIENCE_BASIC //how hard is this to cure?
|
||||
|
||||
/datum/brain_trauma/Destroy()
|
||||
@@ -23,7 +24,7 @@
|
||||
//Called on life ticks
|
||||
/datum/brain_trauma/proc/on_life()
|
||||
return
|
||||
|
||||
|
||||
//Called on death
|
||||
/datum/brain_trauma/proc/on_death()
|
||||
return
|
||||
|
||||
@@ -125,3 +125,7 @@
|
||||
owner.confused += 10
|
||||
owner.Jitter(10)
|
||||
owner.stuttering += 10
|
||||
|
||||
/datum/brain_trauma/mild/phobia/security
|
||||
phobia_type = "security"
|
||||
random_gain = FALSE
|
||||
|
||||
@@ -134,3 +134,71 @@
|
||||
|
||||
/datum/brain_trauma/special/psychotic_brawling/bath_salts
|
||||
name = "Chemical Violent Psychosis"
|
||||
random_gain = FALSE
|
||||
|
||||
/datum/brain_trauma/special/beepsky
|
||||
name = "Criminal"
|
||||
desc = "Patient seems to be a criminal."
|
||||
scan_desc = "criminal mind"
|
||||
gain_text = "<span class='warning'>Justice is coming for you.</span>"
|
||||
lose_text = "<span class='notice'>You were absolved for your crimes.</span>"
|
||||
random_gain = FALSE
|
||||
var/obj/effect/hallucination/simple/securitron/beepsky
|
||||
|
||||
/datum/brain_trauma/special/beepsky/on_gain()
|
||||
create_securitron()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/special/beepsky/proc/create_securitron()
|
||||
var/turf/where = locate(owner.x + pick(-12, 12), owner.y + pick(-12, 12), owner.z)
|
||||
beepsky = new(where, owner)
|
||||
beepsky.victim = owner
|
||||
|
||||
/datum/brain_trauma/special/beepsky/on_lose()
|
||||
QDEL_NULL(beepsky)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/special/beepsky/on_life()
|
||||
if(QDELETED(beepsky) || !beepsky.loc || beepsky.z != owner.z)
|
||||
QDEL_NULL(beepsky)
|
||||
if(prob(30))
|
||||
create_securitron()
|
||||
else
|
||||
return
|
||||
if(get_dist(owner, beepsky) >= 10 && prob(20))
|
||||
QDEL_NULL(beepsky)
|
||||
create_securitron()
|
||||
if(owner.stat != CONSCIOUS)
|
||||
if(prob(20))
|
||||
owner.playsound_local(beepsky, 'sound/voice/beepsky/iamthelaw.ogg', 50)
|
||||
return
|
||||
if(get_dist(owner, beepsky) <= 1)
|
||||
owner.playsound_local(owner, 'sound/weapons/egloves.ogg', 50)
|
||||
owner.visible_message("<span class='warning'>[owner]'s body jerks as if it was shocked.</span>", "<span class='userdanger'>You feel the fist of the LAW.</span>")
|
||||
owner.take_bodypart_damage(0,0,rand(40, 70))
|
||||
QDEL_NULL(beepsky)
|
||||
if(prob(20) && get_dist(owner, beepsky) <= 8)
|
||||
owner.playsound_local(beepsky, 'sound/voice/beepsky/criminal.ogg', 40)
|
||||
..()
|
||||
|
||||
/obj/effect/hallucination/simple/securitron
|
||||
name = "Securitron"
|
||||
desc = "The LAW is coming."
|
||||
image_icon = 'icons/mob/aibots.dmi'
|
||||
image_state = "secbot-c"
|
||||
var/victim
|
||||
|
||||
/obj/effect/hallucination/simple/securitron/New()
|
||||
name = pick ( "officer Beepsky", "officer Johnson", "officer Pingsky")
|
||||
START_PROCESSING(SSfastprocess,src)
|
||||
..()
|
||||
|
||||
/obj/effect/hallucination/simple/securitron/process()
|
||||
if(prob(60))
|
||||
forceMove(get_step_towards(src, victim))
|
||||
if(prob(5))
|
||||
to_chat(victim, "<span class='name'>[name]</span> exclaims, \"<span class='robotic'>Level 10 infraction alert!\"</span>")
|
||||
|
||||
/obj/effect/hallucination/simple/securitron/Destroy()
|
||||
STOP_PROCESSING(SSfastprocess,src)
|
||||
return ..()
|
||||
@@ -7,12 +7,28 @@
|
||||
. = ..()
|
||||
RegisterSignal(parent, COMSIG_ATOM_EMAG_ACT, .proc/unlock_me)
|
||||
|
||||
/datum/component/storage/concrete/emergency/on_attack_hand(datum/source, mob/user)
|
||||
var/atom/A = parent
|
||||
if(!attack_hand_interact)
|
||||
return
|
||||
if(user.active_storage == src && A.loc == user) //if you're already looking inside the storage item
|
||||
user.active_storage.close(user)
|
||||
close(user)
|
||||
. = COMPONENT_NO_ATTACK_HAND
|
||||
return
|
||||
. = COMPONENT_NO_ATTACK_HAND
|
||||
if(!check_locked(source, user, TRUE))
|
||||
show_to(user)
|
||||
A.do_jiggle()
|
||||
if(rustle_sound)
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
|
||||
/datum/component/storage/concrete/emergency/signal_insertion_attempt(datum/source, obj/item/I, mob/M, silent = FALSE, force = FALSE)
|
||||
if(!silent && istype(I, /obj/item/card/emag))
|
||||
silent = TRUE // suppresses the message
|
||||
return ..()
|
||||
|
||||
/datum/component/storage/concrete/check_locked(datum/source, mob/user, message = FALSE)
|
||||
/datum/component/storage/concrete/emergency/check_locked(datum/source, mob/user, message = FALSE)
|
||||
. = locked && GLOB.security_level < SEC_LEVEL_RED
|
||||
if(message && . && user)
|
||||
to_chat(user, "The storage unit will only unlock during a Red or Delta security alert.")
|
||||
|
||||
@@ -531,11 +531,9 @@
|
||||
if(!istype(M))
|
||||
return FALSE
|
||||
A.add_fingerprint(M)
|
||||
if(locked && !force)
|
||||
to_chat(M, "<span class='warning'>[parent] seems to be locked!</span>")
|
||||
if(!force && (check_locked(null, M) || !M.CanReach(parent, view_only = TRUE)))
|
||||
return FALSE
|
||||
if(force || M.CanReach(parent, view_only = TRUE))
|
||||
show_to(M)
|
||||
show_to(M)
|
||||
|
||||
/datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M)
|
||||
if(isitem(O))
|
||||
@@ -749,7 +747,8 @@
|
||||
if(!quickdraw)
|
||||
A.add_fingerprint(user)
|
||||
user_show_to_mob(user)
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
if(rustle_sound)
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
return
|
||||
|
||||
if(!user.incapacitated())
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
var/current_target
|
||||
var/datum/martial_art/base // The permanent style. This will be null unless the martial art is temporary
|
||||
var/deflection_chance = 0 //Chance to deflect projectiles
|
||||
var/reroute_deflection = FALSE //Delete the bullet, or actually deflect it in some direction?
|
||||
var/block_chance = 0 //Chance to block melee attacks using items while on throw mode.
|
||||
var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not
|
||||
var/help_verb
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/datum/martial_art/the_sleeping_carp
|
||||
name = "The Sleeping Carp"
|
||||
deflection_chance = 100
|
||||
reroute_deflection = TRUE
|
||||
no_guns = TRUE
|
||||
allow_temp_override = FALSE
|
||||
help_verb = /mob/living/carbon/human/proc/sleeping_carp_help
|
||||
|
||||
@@ -31,7 +31,6 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
|
||||
|
||||
var/list/jobs = new/list()
|
||||
jobs["Captain"] = 00
|
||||
jobs["Head of Personnel"] = 50
|
||||
jobs["Head of Security"] = 10
|
||||
jobs["Warden"] = 11
|
||||
jobs["Security Officer"] = 12
|
||||
@@ -47,9 +46,10 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
|
||||
jobs["Chief Engineer"] = 40
|
||||
jobs["Station Engineer"] = 41
|
||||
jobs["Atmospheric Technician"] = 42
|
||||
jobs["Quartermaster"] = 51
|
||||
jobs["Shaft Miner"] = 52
|
||||
jobs["Cargo Technician"] = 53
|
||||
jobs["Quartermaster"] = 50
|
||||
jobs["Shaft Miner"] = 51
|
||||
jobs["Cargo Technician"] = 52
|
||||
jobs["Head of Personnel"] = 60
|
||||
jobs["Bartender"] = 61
|
||||
jobs["Cook"] = 62
|
||||
jobs["Botanist"] = 63
|
||||
|
||||
@@ -537,7 +537,7 @@
|
||||
var/oldloc = loc
|
||||
if(internal_damage & MECHA_INT_CONTROL_LOST)
|
||||
move_result = mechsteprand()
|
||||
else if(dir != direction && !strafe)
|
||||
else if(dir != direction && (!strafe || occupant.client.keys_held["Alt"]))
|
||||
move_result = mechturn(direction)
|
||||
else
|
||||
move_result = mechstep(direction)
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
|
||||
|
||||
/datum/action/innate/mecha/strafe
|
||||
name = "Toggle Strafing"
|
||||
name = "Toggle Strafing. Disabled when Alt is held."
|
||||
button_icon_state = "strafe"
|
||||
|
||||
/datum/action/innate/mecha/strafe/Activate()
|
||||
|
||||
@@ -23,7 +23,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
/obj/item/pda
|
||||
name = "\improper PDA"
|
||||
desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge."
|
||||
icon = 'icons/obj/pda.dmi'
|
||||
icon = 'icons/obj/pda_alt.dmi'
|
||||
icon_state = "pda"
|
||||
item_state = "electronic"
|
||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
/obj/item/cartridge/detective
|
||||
name = "\improper D.E.T.E.C.T. cartridge"
|
||||
icon_state = "cart-s"
|
||||
icon_state = "cart-eye"
|
||||
access = CART_SECURITY | CART_MEDICAL | CART_MANIFEST
|
||||
bot_access_flags = SEC_BOT
|
||||
|
||||
@@ -100,23 +100,25 @@
|
||||
|
||||
/obj/item/cartridge/lawyer
|
||||
name = "\improper P.R.O.V.E. cartridge"
|
||||
icon_state = "cart-s"
|
||||
icon_state = "cart-law"
|
||||
access = CART_SECURITY
|
||||
spam_enabled = 1
|
||||
|
||||
/obj/item/cartridge/curator
|
||||
name = "\improper Lib-Tweet cartridge"
|
||||
icon_state = "cart-s"
|
||||
icon_state = "cart-lib"
|
||||
access = CART_NEWSCASTER
|
||||
|
||||
/obj/item/cartridge/roboticist
|
||||
name = "\improper B.O.O.P. Remote Control cartridge"
|
||||
desc = "Packed with heavy duty triple-bot interlink!"
|
||||
icon_state = "cart-robo"
|
||||
bot_access_flags = FLOOR_BOT | CLEAN_BOT | MED_BOT | FIRE_BOT
|
||||
access = CART_DRONEPHONE
|
||||
|
||||
/obj/item/cartridge/signal
|
||||
name = "generic signaler cartridge"
|
||||
icon_state = "cart-sig"
|
||||
desc = "A data cartridge with an integrated radio signaler module."
|
||||
|
||||
/obj/item/cartridge/signal/toxins
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
|
||||
/obj/item/cartridge/virus/syndicate
|
||||
name = "\improper Detomatix cartridge"
|
||||
icon_state = "cart"
|
||||
access = CART_REMOTE_DOOR
|
||||
remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
|
||||
charges = 4
|
||||
@@ -85,7 +84,7 @@
|
||||
|
||||
/obj/item/cartridge/virus/frame
|
||||
name = "\improper F.R.A.M.E. cartridge"
|
||||
icon_state = "cart"
|
||||
icon_state = "cart-f"
|
||||
var/telecrystals = 0
|
||||
|
||||
/obj/item/cartridge/virus/frame/send_virus(obj/item/pda/target, mob/living/U)
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
w_class = WEIGHT_CLASS_HUGE //heyo no bohing this!
|
||||
force = 18 //spear damage
|
||||
|
||||
/obj/item/storage/toolbox/durasteel/afterattack(atom/A, mob/user, proximity)
|
||||
/obj/item/storage/toolbox/plastitanium/afterattack(atom/A, mob/user, proximity)
|
||||
. = ..()
|
||||
if(proximity && isobj(A) && !isitem(A))
|
||||
var/obj/O = A
|
||||
|
||||
@@ -160,6 +160,11 @@
|
||||
distribute_pressure = 0
|
||||
gas_type = /datum/gas/carbon_dioxide
|
||||
|
||||
/obj/item/tank/jetpack/carbondioxide/eva
|
||||
name = "surplus jetpack (carbon dioxide)"
|
||||
desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals. Rated for less than stellar EVA speeds!"
|
||||
full_speed = FALSE
|
||||
|
||||
/obj/item/tank/jetpack/suit
|
||||
name = "hardsuit jetpack upgrade"
|
||||
desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment."
|
||||
|
||||
@@ -452,16 +452,16 @@
|
||||
/turf/AllowDrop()
|
||||
return TRUE
|
||||
|
||||
/turf/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0)
|
||||
/turf/proc/add_vomit_floor(mob/living/carbon/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 (QDELETED(V))
|
||||
V = locate() in src
|
||||
// Make toxins vomit look different
|
||||
if(toxvomit)
|
||||
// Make toxins and blazaam vomit look different
|
||||
if(toxvomit == VOMIT_PURPLE)
|
||||
V.icon_state = "vomitpurp_[pick(1,4)]"
|
||||
else if(toxvomit == VOMIT_TOXIC)
|
||||
V.icon_state = "vomittox_[pick(1,4)]"
|
||||
if(M.reagents)
|
||||
clear_reagents_to_vomit_pool(M,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)
|
||||
|
||||
@@ -71,13 +71,14 @@
|
||||
|
||||
/obj/effect/mob_spawn/Destroy()
|
||||
GLOB.poi_list -= src
|
||||
LAZYREMOVE(GLOB.mob_spawners[job_description ? job_description : name], src)
|
||||
if(!LAZYLEN(GLOB.mob_spawners[job_description ? job_description : name]))
|
||||
GLOB.mob_spawners -= job_description ? job_description : name
|
||||
var/job_name = job_description ? job_description : name
|
||||
GLOB.mob_spawners -= job_name
|
||||
if(!LAZYLEN(GLOB.mob_spawners[job_name]))
|
||||
LAZYREMOVE(GLOB.mob_spawners[job_name], src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/mob_spawn/proc/can_latejoin() //If it can be taken from the lobby.
|
||||
return TRUE
|
||||
return ghost_usable
|
||||
|
||||
/obj/effect/mob_spawn/proc/special(mob/M)
|
||||
return
|
||||
|
||||
@@ -1157,7 +1157,7 @@
|
||||
/datum/supply_pack/materials/bz
|
||||
name = "BZ Canister Crate"
|
||||
desc = "Contains a canister of BZ. Requires Toxins access to open."
|
||||
cost = 7500 // Costs 3 credits more than what you can get for selling it.
|
||||
cost = 7500 // Costs 3 credits more than what you can get for selling it.
|
||||
access = ACCESS_TOX_STORAGE
|
||||
contains = list(/obj/machinery/portable_atmospherics/canister/bz)
|
||||
crate_name = "BZ canister crate"
|
||||
@@ -2716,6 +2716,7 @@
|
||||
/obj/item/restraints/handcuffs/fake/kinky,
|
||||
/obj/item/clothing/head/kitty/genuine, // Why its illegal
|
||||
/obj/item/clothing/head/kitty/genuine,
|
||||
/obj/item/storage/pill_bottle/penis_enlargement,
|
||||
/obj/structure/reagent_dispensers/keg/aphro)
|
||||
crate_name = "lewd kit"
|
||||
crate_type = /obj/structure/closet/crate
|
||||
@@ -2750,6 +2751,19 @@
|
||||
/obj/item/pen/fountain)
|
||||
crate_name = "Paperwork"
|
||||
|
||||
/datum/supply_pack/misc/randomised/promiscuous
|
||||
name = "Promiscuous Organs"
|
||||
desc = "Do YOU want to have more genital? Well we have just the thing for you~. This crate has two autosurgeon, that will let you have a new sex, organ to impress that hot stud and or chick."
|
||||
cost = 4000 //Only get 2!
|
||||
contraband = TRUE
|
||||
var/num_contained = 2
|
||||
contains = list(/obj/item/autosurgeon/penis,
|
||||
/obj/item/autosurgeon/testicles,
|
||||
/obj/item/autosurgeon/vagina,
|
||||
/obj/item/autosurgeon/breasts,
|
||||
/obj/item/autosurgeon/womb)
|
||||
crate_name = "promiscuous organs"
|
||||
|
||||
/datum/supply_pack/misc/toner
|
||||
name = "Toner Crate"
|
||||
desc = "Spent too much ink printing butt pictures? Fret not, with these six toner refills, you'll be printing butts 'till the cows come home!'"
|
||||
|
||||
@@ -203,6 +203,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["tip_delay"], tip_delay)
|
||||
WRITE_FILE(S["pda_style"], pda_style)
|
||||
WRITE_FILE(S["pda_color"], pda_color)
|
||||
WRITE_FILE(S["pda_skin"], pda_skin)
|
||||
|
||||
//citadel code
|
||||
WRITE_FILE(S["screenshake"], screenshake)
|
||||
|
||||
@@ -515,6 +515,13 @@
|
||||
list_reagents = list("shamblers" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull
|
||||
name = "Grey Bull"
|
||||
desc = "Grey Bull, it gives you gloves!"
|
||||
icon_state = "energy_drink"
|
||||
list_reagents = list("grey_bull" = 20)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air
|
||||
name = "canned air"
|
||||
desc = "There is no air shortage. Do not drink."
|
||||
|
||||
@@ -330,6 +330,33 @@
|
||||
icon_state = "fernetbottle"
|
||||
list_reagents = list("fernet" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/applejack
|
||||
name = "Buckin' Bronco's Applejack"
|
||||
desc = "Kicks like a horse, tastes like an apple!"
|
||||
icon_state = "applejack_bottle"
|
||||
list_reagents = list("applejack" = 100)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne
|
||||
name = "Eau d' Dandy Brut Champagne"
|
||||
desc = "Finely sourced from only the most pretentious French vineyards."
|
||||
icon_state = "champagne_bottle"
|
||||
list_reagents = list("champagne" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/blazaam
|
||||
name = "Ginbad's Blazaam"
|
||||
desc = "You feel like you should give the bottle a good rub before opening."
|
||||
icon_state = "blazaambottle"
|
||||
list_reagents = list("blazaam" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/trappist
|
||||
name = "Mont de Requin Trappistes Bleu"
|
||||
desc = "Brewed in space-Belgium. Fancy!"
|
||||
icon_state = "trappistbottle"
|
||||
volume = 50
|
||||
list_reagents = list("trappist" = 50)
|
||||
|
||||
|
||||
//////////////////////////JUICES AND STUFF ///////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/orangejuice
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
icon_state = R.glass_icon_state
|
||||
else
|
||||
var/mutable_appearance/reagent_overlay = mutable_appearance(icon, "glassoverlay")
|
||||
icon_state = "glass_empty"
|
||||
reagent_overlay.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(reagent_overlay)
|
||||
else
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
volume = 10
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list()
|
||||
possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"))
|
||||
possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"), "astrotame" = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."))
|
||||
|
||||
/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly.
|
||||
return
|
||||
@@ -286,3 +286,8 @@
|
||||
name = "hotsauce pack"
|
||||
originalname = "hotsauce"
|
||||
list_reagents = list("capsaicin" = 10)
|
||||
|
||||
/obj/item/reagent_containers/food/condiment/pack/astrotame
|
||||
name = "astrotame pack"
|
||||
originalname = "astrotame"
|
||||
list_reagents = list("astrotame" = 5)
|
||||
|
||||
@@ -558,3 +558,19 @@
|
||||
list_reagents = list("nutriment" = 6, "sodiumchloride" = 2)
|
||||
tastes = list("rice" = 3, "salt" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cannedpeaches
|
||||
name = "Canned Peaches"
|
||||
desc = "Just a nice can of ripe peaches swimming in their own juices."
|
||||
icon_state = "peachcan"
|
||||
list_reagents = list("peachjuice" = 20, "sugar" = 8, "nutriment" = 2)
|
||||
filling_color = "#ffdf26"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
tastes = list("peaches" = 7, "tin" = 1)
|
||||
foodtype = FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cannedpeaches/maint
|
||||
name = "Maintenance Peaches"
|
||||
desc = "I have a mouth and I must eat."
|
||||
icon_state = "peachcanmaint"
|
||||
tastes = list("peaches" = 1, "tin" = 7)
|
||||
@@ -8,27 +8,34 @@
|
||||
icon_state = "donut1"
|
||||
bitesize = 5
|
||||
bonus_reagents = list("sugar" = 1)
|
||||
list_reagents = list("nutriment" = 3, "sugar" = 2)
|
||||
var/extra_reagent = null
|
||||
list_reagents = list("nutriment" = 3, "sprinkles" = 1, "sugar" = 2)
|
||||
filling_color = "#D2691E"
|
||||
tastes = list("donut" = 1)
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR
|
||||
var/frosted_icon = "donut2"
|
||||
var/is_frosted = FALSE
|
||||
var/extra_reagent = null
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/Initialize()
|
||||
. = ..()
|
||||
if(prob(30))
|
||||
icon_state = "donut2"
|
||||
name = "frosted donut"
|
||||
reagents.add_reagent("sprinkles", 2)
|
||||
bonus_reagents = list("sprinkles" = 2, "sugar" = 1)
|
||||
filling_color = "#FF69B4"
|
||||
frost_donut()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/proc/frost_donut()
|
||||
if(is_frosted || !frosted_icon)
|
||||
return
|
||||
is_frosted = TRUE
|
||||
name = "frosted [name]"
|
||||
icon_state = frosted_icon //delish~!
|
||||
reagents.add_reagent("sprinkles", 1)
|
||||
filling_color = "#FF69B4"
|
||||
return TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/checkLiked(fraction, mob/M) //Sec officers always love donuts
|
||||
if(last_check_time + 50 < world.time)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.mind && H.mind.assigned_role == "Security Officer" || H.mind.assigned_role == "Detective" || H.mind.assigned_role == "Warden" || H.mind.assigned_role == "Head of Security" && !HAS_TRAIT(H, TRAIT_AGEUSIA))
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM) && !HAS_TRAIT(H, TRAIT_AGEUSIA))
|
||||
to_chat(H,"<span class='notice'>I love this taste!</span>")
|
||||
H.adjust_disgust(-5 + -2.5 * fraction)
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, H)
|
||||
@@ -48,18 +55,12 @@
|
||||
. = ..()
|
||||
extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine")
|
||||
reagents.add_reagent("[extra_reagent]", 3)
|
||||
bonus_reagents = list("[extra_reagent]" = 3, "sugar" = 1)
|
||||
if(prob(30))
|
||||
icon_state = "donut2"
|
||||
name = "frosted chaos donut"
|
||||
reagents.add_reagent("sprinkles", 2)
|
||||
bonus_reagents = list("sprinkles" = 2, "[extra_reagent]" = 3, "sugar" = 1)
|
||||
filling_color = "#FF69B4"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly
|
||||
name = "jelly donut"
|
||||
desc = "You jelly?"
|
||||
icon_state = "jdonut1"
|
||||
frosted_icon = "jdonut2"
|
||||
bonus_reagents = list("sugar" = 1, "vitamin" = 1)
|
||||
extra_reagent = "berryjuice"
|
||||
tastes = list("jelly" = 1, "donut" = 3)
|
||||
@@ -69,12 +70,6 @@
|
||||
. = ..()
|
||||
if(extra_reagent)
|
||||
reagents.add_reagent("[extra_reagent]", 3)
|
||||
if(prob(30))
|
||||
icon_state = "jdonut2"
|
||||
name = "frosted jelly Donut"
|
||||
reagents.add_reagent("sprinkles", 2)
|
||||
bonus_reagents = list("sprinkles" = 2, "sugar" = 1)
|
||||
filling_color = "#FF69B4"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly
|
||||
name = "jelly donut"
|
||||
|
||||
@@ -152,8 +152,8 @@
|
||||
/datum/chemical_reaction/beepsky_smash
|
||||
name = "Beepksy Smash"
|
||||
id = "beepksysmash"
|
||||
results = list("beepskysmash" = 4)
|
||||
required_reagents = list("limejuice" = 2, "whiskey" = 2, "iron" = 1)
|
||||
results = list("beepskysmash" = 5)
|
||||
required_reagents = list("limejuice" = 2, "quadruple_sec" = 2, "iron" = 1)
|
||||
|
||||
/datum/chemical_reaction/doctor_delight
|
||||
name = "The Doctor's Delight"
|
||||
@@ -532,11 +532,18 @@
|
||||
required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1)
|
||||
mix_message = "<span class='warning'>The mixture turns to a sickening froth.</span>"
|
||||
|
||||
/datum/chemical_reaction/lemonade
|
||||
name = "Lemonade"
|
||||
id = "lemonade"
|
||||
results = list("lemonade" = 5)
|
||||
required_reagents = list("lemonjuice" = 2, "water" = 2, "sugar" = 1, "ice" = 1)
|
||||
mix_message = "You're suddenly reminded of home."
|
||||
|
||||
/datum/chemical_reaction/arnold_palmer
|
||||
name = "Arnold Palmer"
|
||||
id = "arnold_palmer"
|
||||
results = list("arnold_palmer" = 2)
|
||||
required_reagents = list("tea" = 1, "lemonjuice" = 1)
|
||||
required_reagents = list("tea" = 1, "lemonade" = 1)
|
||||
mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange."
|
||||
|
||||
/datum/chemical_reaction/chocolate_milk
|
||||
@@ -704,3 +711,87 @@
|
||||
id = "pinktea"
|
||||
results = list("pinktea" = 5)
|
||||
required_reagents = list("aphro" = 1, "arnold_palmer" = 1, "sugar" = 1)
|
||||
|
||||
/datum/chemical_reaction/blank_paper
|
||||
name = "Blank Paper"
|
||||
id = "blank_paper"
|
||||
results = list("blank_paper" = 3)
|
||||
required_reagents = list("silencer" = 1, "nothing" = 1, "nuka_cola" = 1)
|
||||
|
||||
/datum/chemical_reaction/wizz_fizz
|
||||
name = "Wizz Fizz"
|
||||
id = "wizz_fizz"
|
||||
results = list("wizz_fizz" = 3)
|
||||
required_reagents = list("triple_sec" = 1, "sodawater" = 1, "champagne" = 1)
|
||||
mix_message = "The beverage starts to froth with an almost mystical zeal!"
|
||||
mix_sound = 'sound/effects/bubbles2.ogg'
|
||||
|
||||
/datum/chemical_reaction/bug_spray
|
||||
name = "Bug Spray"
|
||||
id = "bug_spray"
|
||||
results = list("bug_spray" = 5)
|
||||
required_reagents = list("triple_sec" = 2, "lemon_lime" = 1, "rum" = 2, "vodka" = 1)
|
||||
mix_message = "The faint aroma of summer camping trips wafts through the air; but what's that buzzing noise?"
|
||||
mix_sound = 'sound/creatures/bee.ogg'
|
||||
|
||||
/datum/chemical_reaction/jack_rose
|
||||
name = "Jack Rose"
|
||||
id = "jack_rose"
|
||||
results = list("jack_rose" = 4)
|
||||
required_reagents = list("grenadine" = 1, "applejack" = 2, "limejuice" = 1)
|
||||
mix_message = "As the grenadine incorporates, the beverage takes on a mellow, red-orange glow."
|
||||
|
||||
/datum/chemical_reaction/turbo
|
||||
name = "Turbo"
|
||||
id = "turbo"
|
||||
results = list("turbo" = 5)
|
||||
required_reagents = list("moonshine" = 2, "nitrous_oxide" = 1, "sugar_rush" = 1, "pwr_game" = 1)
|
||||
|
||||
/datum/chemical_reaction/old_timer
|
||||
name = "Old Timer"
|
||||
id = "old_timer"
|
||||
results = list("old_timer" = 6)
|
||||
required_reagents = list("whiskeysoda" = 3, "parsnipjuice" = 2, "alexander" = 1)
|
||||
|
||||
/datum/chemical_reaction/rubberneck
|
||||
name = "Rubberneck"
|
||||
id = "rubberneck"
|
||||
results = list("rubberneck" = 10)
|
||||
required_reagents = list("ethanol" = 4, "grey_bull" = 5, "astrotame" = 1)
|
||||
|
||||
/datum/chemical_reaction/duplex
|
||||
name = "Duplex"
|
||||
id = "duplex"
|
||||
results = list("duplex" = 4)
|
||||
required_reagents = list("hcider" = 2, "applejuice" = 1, "berryjuice" = 1)
|
||||
|
||||
/datum/chemical_reaction/trappist
|
||||
name = "Trappist"
|
||||
id = "trappist"
|
||||
results = list("trappist" = 5)
|
||||
required_reagents = list("ale" = 2, "holywater" = 2, "sugar" = 1)
|
||||
|
||||
/datum/chemical_reaction/cream_soda
|
||||
name = "Cream Soda"
|
||||
id = "cream_soda"
|
||||
results = list("cream_soda" = 4)
|
||||
required_reagents = list("sugar" = 2, "sodawater" = 2, "vanilla" = 1)
|
||||
|
||||
/datum/chemical_reaction/blazaam
|
||||
name = "Blazaam"
|
||||
id = "blazaam"
|
||||
results = list("blazaam" = 3)
|
||||
required_reagents = list("gin" = 2, "peachjuice" = 1, "bluespace" = 1)
|
||||
|
||||
/datum/chemical_reaction/planet_cracker
|
||||
name = "Planet Cracker"
|
||||
id = "planet_cracker"
|
||||
results = list("planet_cracker" = 4)
|
||||
required_reagents = list("champagne" = 2, "lizardwine" = 2, "eggyolk" = 1, "gold" = 1)
|
||||
mix_message = "The liquid's color starts shifting as the nanogold is alternately corroded and redeposited."
|
||||
|
||||
/datum/chemical_reaction/red_queen
|
||||
name = "Red Queen"
|
||||
id = "red_queen"
|
||||
results = list("red_queen" = 10)
|
||||
required_reagents = list("tea" = 6, "mercury" = 2, "blackpepper" = 1, "growthserum" = 1)
|
||||
@@ -54,6 +54,7 @@
|
||||
icon_state = "parsnip"
|
||||
bitesize_mod = 2
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list("parsnipjuice" = 0)
|
||||
wine_power = 35
|
||||
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ Clown
|
||||
minimal_access = list(ACCESS_THEATRE)
|
||||
|
||||
/datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
. = ..()
|
||||
H.apply_pref_name("clown", M.client)
|
||||
|
||||
/datum/outfit/job/clown
|
||||
@@ -174,6 +175,8 @@ Lawyer
|
||||
access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
|
||||
minimal_access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
/datum/outfit/job/lawyer
|
||||
name = "Lawyer"
|
||||
jobtype = /datum/job/lawyer
|
||||
|
||||
@@ -19,6 +19,7 @@ Chaplain
|
||||
minimal_access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
|
||||
|
||||
/datum/job/chaplain/after_spawn(mob/living/H, mob/M)
|
||||
. = ..()
|
||||
if(H.mind)
|
||||
H.mind.isholy = TRUE
|
||||
|
||||
|
||||
@@ -54,10 +54,15 @@
|
||||
//can be overridden by antag_rep.txt config
|
||||
var/antag_rep = 10
|
||||
|
||||
var/list/mind_traits // Traits added to the mind of the mob assigned this job
|
||||
|
||||
//Only override this proc
|
||||
//H is usually a human unless an /equip override transformed it
|
||||
/datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
|
||||
//do actions on H but send messages to M as the key may not have been transferred_yet
|
||||
if(mind_traits)
|
||||
for(var/t in mind_traits)
|
||||
ADD_TRAIT(H.mind, t, JOB_TRAIT)
|
||||
|
||||
/datum/job/proc/announce(mob/living/carbon/human/H)
|
||||
if(head_announce)
|
||||
|
||||
@@ -35,6 +35,8 @@ Head of Security
|
||||
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING,
|
||||
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
/datum/outfit/job/hos
|
||||
name = "Head of Security"
|
||||
jobtype = /datum/job/hos
|
||||
@@ -92,6 +94,8 @@ Warden
|
||||
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //SEE /DATUM/JOB/WARDEN/GET_ACCESS()
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
/datum/job/warden/get_access()
|
||||
var/list/L = list()
|
||||
L = ..() | check_config_for_sec_maint()
|
||||
@@ -145,6 +149,8 @@ Detective
|
||||
access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
/datum/outfit/job/detective
|
||||
name = "Detective"
|
||||
jobtype = /datum/job/detective
|
||||
@@ -198,6 +204,7 @@ Security Officer
|
||||
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS()
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
|
||||
/datum/job/officer/get_access()
|
||||
var/list/L = list()
|
||||
|
||||
@@ -443,10 +443,12 @@
|
||||
for(var/datum/job/job in SSjob.occupations)
|
||||
if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE)
|
||||
available_job_count++
|
||||
for(var/obj/effect/mob_spawn/spawner in GLOB.mob_spawners)
|
||||
if(spawner.can_latejoin())
|
||||
available_job_count++
|
||||
break
|
||||
for(var/spawner in GLOB.mob_spawners)
|
||||
var/obj/effect/mob_spawn/S = pick(GLOB.mob_spawners[spawner])
|
||||
if(!istype(S) || !S.can_latejoin())
|
||||
continue
|
||||
available_job_count++
|
||||
break
|
||||
|
||||
if(!available_job_count)
|
||||
dat += "<div class='notice red'>There are currently no open positions!</div>"
|
||||
@@ -465,9 +467,11 @@
|
||||
"Science" = list(jobs = list(), titles = GLOB.science_positions, color = "#e6b3e6"),
|
||||
"Security" = list(jobs = list(), titles = GLOB.security_positions, color = "#ff9999"),
|
||||
)
|
||||
for(var/obj/effect/mob_spawn/spawner in GLOB.mob_spawners)
|
||||
if(spawner.can_latejoin())
|
||||
categorizedJobs["Ghost Role"]["jobs"] += spawner
|
||||
for(var/spawner in GLOB.mob_spawners)
|
||||
var/obj/effect/mob_spawn/S = pick(GLOB.mob_spawners[spawner])
|
||||
if(!istype(S) || !S.can_latejoin())
|
||||
continue
|
||||
categorizedJobs["Ghost Role"]["jobs"] += S
|
||||
|
||||
for(var/datum/job/job in SSjob.occupations)
|
||||
if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE)
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
var/list/datum/brain_trauma/possible_traumas = list()
|
||||
for(var/T in subtypesof(brain_trauma_type))
|
||||
var/datum/brain_trauma/BT = T
|
||||
if(can_gain_trauma(BT, resilience))
|
||||
if(can_gain_trauma(BT, resilience) && initial(BT.random_gain))
|
||||
possible_traumas += BT
|
||||
|
||||
if(!LAZYLEN(possible_traumas))
|
||||
|
||||
@@ -499,9 +499,12 @@
|
||||
add_splatter_floor(T)
|
||||
if(stun)
|
||||
adjustBruteLoss(3)
|
||||
else if(src.reagents.has_reagent("blazaam"))
|
||||
if(T)
|
||||
T.add_vomit_floor(src, VOMIT_PURPLE)
|
||||
else
|
||||
if(T)
|
||||
T.add_vomit_floor(src, toxic)//toxic barf looks different
|
||||
T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different
|
||||
T = get_step(T, dir)
|
||||
if (is_blocked_turf(T))
|
||||
break
|
||||
|
||||
@@ -54,7 +54,12 @@
|
||||
else
|
||||
visible_message("<span class='danger'>[src] deflects the projectile!</span>", "<span class='userdanger'>You deflect the projectile!</span>")
|
||||
playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1)
|
||||
return 0
|
||||
if(!mind.martial_art.reroute_deflection)
|
||||
return FALSE
|
||||
else
|
||||
P.firer = src
|
||||
P.setAngle(rand(0, 360))//SHING
|
||||
return FALSE
|
||||
|
||||
if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself
|
||||
if(P.is_reflectable)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
|
||||
var/lip_color = "white"
|
||||
|
||||
var/age = 30 //Player's age (pure fluff)
|
||||
var/age = 30 //Player's age
|
||||
|
||||
var/underwear = "Nude" //Which underwear the player wants
|
||||
var/undershirt = "Nude" //Which undershirt the player wants
|
||||
|
||||
@@ -73,6 +73,9 @@
|
||||
/datum/species/pod/pseudo_weak
|
||||
id = "podweak"
|
||||
limbs_id = "pod"
|
||||
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS)
|
||||
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs")
|
||||
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs")
|
||||
light_nutrition_gain_factor = 7.5
|
||||
light_bruteheal = 0.2
|
||||
light_burnheal = 0.2
|
||||
|
||||
@@ -284,12 +284,8 @@
|
||||
if(health < maxHealth)
|
||||
adjustBruteLoss(-8) //Fast life regen
|
||||
for(var/obj/item/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts!
|
||||
if(D.icon_state != "donut2")
|
||||
D.name = "frosted donut"
|
||||
D.icon_state = "donut2"
|
||||
D.reagents.add_reagent("sprinkles", 2)
|
||||
D.bonus_reagents = list("sprinkles" = 2, "sugar" = 1)
|
||||
D.filling_color = "#FF69B4"
|
||||
if(!D.is_frosted)
|
||||
D.frost_donut()
|
||||
|
||||
/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L)
|
||||
..()
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/machinery/power/emitter/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_FLIP ,null,CALLBACK(src, .proc/can_be_rotated))
|
||||
AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated))
|
||||
|
||||
/obj/machinery/power/emitter/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if (anchored)
|
||||
@@ -495,4 +495,4 @@
|
||||
|
||||
#undef EMITTER_UNWRENCHED
|
||||
#undef EMITTER_WRENCHED
|
||||
#undef EMITTER_WELDED
|
||||
#undef EMITTER_WELDED
|
||||
|
||||
@@ -555,7 +555,8 @@
|
||||
"creme_de_menthe",
|
||||
"creme_de_cacao",
|
||||
"triple_sec",
|
||||
"sake"
|
||||
"sake",
|
||||
"applejack"
|
||||
)
|
||||
upgrade_reagents = list(
|
||||
"ethanol",
|
||||
|
||||
@@ -350,7 +350,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
id = "grappa"
|
||||
description = "A fine Italian brandy, for when regular wine just isn't alcoholic enough for you."
|
||||
color = "#F8EBF1"
|
||||
boozepwr = 45
|
||||
boozepwr = 60
|
||||
taste_description = "classy bitter sweetness"
|
||||
glass_icon_state = "grappa"
|
||||
glass_name = "glass of grappa"
|
||||
@@ -398,6 +398,11 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Hooch"
|
||||
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
|
||||
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && M.mind.assigned_role == "Assistant")
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/ale
|
||||
name = "Ale"
|
||||
@@ -657,26 +662,49 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD
|
||||
quality = DRINK_GOOD
|
||||
metabolization_rate = 0.8
|
||||
metabolization_rate = 0.5
|
||||
taste_description = "JUSTICE"
|
||||
glass_icon_state = "beepskysmashglass"
|
||||
glass_name = "Beepsky Smash"
|
||||
glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
|
||||
pH = 2
|
||||
overdose_threshold = 40
|
||||
var/datum/brain_trauma/special/beepsky/B
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/M)
|
||||
if(HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
metabolization_rate = 0.8
|
||||
if(!HAS_TRAIT(M, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
B = new()
|
||||
M.gain_trauma(B, TRAUMA_RESILIENCE_ABSOLUTE)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/M)
|
||||
if(HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
M.Stun(30, 0) //this realistically does nothing to prevent chainstunning but will cause them to recover faster once it's out of their system
|
||||
else
|
||||
M.Stun(40, 0)
|
||||
M.Jitter(2)
|
||||
if(HAS_TRAIT(M, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.adjustStaminaLoss(-10, 0)
|
||||
if(prob(20))
|
||||
new /datum/hallucination/items_other(M)
|
||||
if(prob(10))
|
||||
new /datum/hallucination/stray_bullet(M)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_end_metabolize(mob/living/carbon/M)
|
||||
if(B)
|
||||
QDEL_NULL(B)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/overdose_start(mob/living/carbon/M)
|
||||
if(!HAS_TRAIT(M, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.gain_trauma(/datum/brain_trauma/mild/phobia/security, TRAUMA_RESILIENCE_BASIC)
|
||||
|
||||
/datum/reagent/consumable/ethanol/irish_cream
|
||||
name = "Irish Cream"
|
||||
id = "irishcream"
|
||||
description = "Whiskey-imbued cream, what else would you expect from the Irish?"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
boozepwr = 50
|
||||
quality = DRINK_NICE
|
||||
taste_description = "creamy alcohol"
|
||||
glass_icon_state = "irishcreamglass"
|
||||
@@ -972,7 +1000,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
id = "red_mead"
|
||||
description = "The true Viking drink! Even though it has a strange red color."
|
||||
color = "#C73C00" // rgb: 199, 60, 0
|
||||
boozepwr = 51 //Red drinks are stronger
|
||||
boozepwr = 31 //Red drinks are stronger
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "sweet and salty alcohol"
|
||||
glass_icon_state = "red_meadglass"
|
||||
@@ -985,7 +1013,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A Viking drink, though a cheap one."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 50
|
||||
boozepwr = 30
|
||||
quality = DRINK_NICE
|
||||
taste_description = "sweet, sweet alcohol"
|
||||
glass_icon_state = "meadglass"
|
||||
@@ -1344,32 +1372,49 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin
|
||||
name = "Neurotoxin"
|
||||
id = "neurotoxin"
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
boozepwr = 0 //custom drunk effect
|
||||
boozepwr = 50
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "a numbing sensation"
|
||||
metabolization_rate = 1 * REAGENTS_METABOLISM
|
||||
glass_icon_state = "neurotoxinglass"
|
||||
glass_name = "Neurotoxin"
|
||||
glass_desc = "A drink that is guaranteed to knock you silly."
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/proc/pickt()
|
||||
return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG))
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.Knockdown(60, 1, 0)
|
||||
M.set_drugginess(50)
|
||||
M.dizziness +=2
|
||||
switch(current_cycle)
|
||||
if(15 to 45)
|
||||
M.slurring = max(M.slurring,50)
|
||||
M.slurring += 3
|
||||
if(45 to 55)
|
||||
if(prob(50))
|
||||
M.confused = max(M.confused+3,0)
|
||||
if(55 to 200)
|
||||
M.set_drugginess(55)
|
||||
if(200 to INFINITY)
|
||||
M.adjustToxLoss(2, 0)
|
||||
M.adjustBrainLoss(1*REM, 150)
|
||||
if(prob(20))
|
||||
M.adjustStaminaLoss(10)
|
||||
M.drop_all_held_items()
|
||||
to_chat(M, "<span class='notice'>You cant feel your hands!</span>")
|
||||
if(current_cycle > 5)
|
||||
if(prob(20))
|
||||
var/t = pickt()
|
||||
ADD_TRAIT(M, t, type)
|
||||
M.adjustStaminaLoss(10)
|
||||
if(current_cycle > 30)
|
||||
M.adjustBrainLoss(2*REM)
|
||||
if(current_cycle > 50 && prob(15))
|
||||
if(!M.undergoing_cardiac_arrest() && M.can_heartattack())
|
||||
M.set_heartattack(TRUE)
|
||||
if(M.stat == CONSCIOUS)
|
||||
M.visible_message("<span class='userdanger'>[M] clutches at [M.p_their()] chest as if [M.p_their()] heart stopped!</span>")
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_end_metabolize(mob/living/carbon/M)
|
||||
REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_ARM, type)
|
||||
REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_ARM, type)
|
||||
REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_LEG, type)
|
||||
REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_LEG, type)
|
||||
M.adjustStaminaLoss(10)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight
|
||||
name = "Hippie's Delight"
|
||||
@@ -1493,7 +1538,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though."
|
||||
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && M.mind.assigned_role in list("Security Officer", "Detective", "Head of Security", "Warden", "Lawyer")) //Securidrink in line with the screwderiver for engineers or nothing for mimes.
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes.
|
||||
M.heal_bodypart_damage(1, 1)
|
||||
M.adjustBruteLoss(-2,0)
|
||||
. = 1
|
||||
@@ -1512,7 +1557,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Now you are become law, destroyer of clowns."
|
||||
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && M.mind.assigned_role in list("Security Officer", "Detective", "Head of Security", "Warden", "Lawyer")) //Securidrink in line with the screwderiver for engineers or nothing for mimes but STRONG..
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes but STRONG..
|
||||
M.heal_bodypart_damage(2,2,2)
|
||||
M.adjustBruteLoss(-5,0)
|
||||
M.adjustOxyLoss(-5,0)
|
||||
@@ -1852,6 +1897,230 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/blank_paper
|
||||
name = "Blank Paper"
|
||||
id = "blank_paper"
|
||||
description = "A bubbling glass of blank paper. Just looking at it makes you feel fresh."
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
color = "#DCDCDC" // rgb: 220, 220, 220
|
||||
boozepwr = 20
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "bubbling possibility"
|
||||
glass_icon_state = "blank_paper"
|
||||
glass_name = "glass of blank paper"
|
||||
glass_desc = "A fizzy cocktail for those looking to start fresh."
|
||||
|
||||
/datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M)
|
||||
if(ishuman(M) && M.job == "Mime")
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/champagne //How the hell did we not have champagne already!?
|
||||
name = "Champagne"
|
||||
id = "champagne"
|
||||
description = "A sparkling wine known for its ability to strike fast and hard."
|
||||
color = "#ffffc1"
|
||||
boozepwr = 40
|
||||
taste_description = "auspicious occasions and bad decisions"
|
||||
glass_icon_state = "champagne_glass"
|
||||
glass_name = "Champagne"
|
||||
glass_desc = "The flute clearly displays the slowly rising bubbles."
|
||||
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz
|
||||
name = "Wizz Fizz"
|
||||
id = "wizz_fizz"
|
||||
description = "A magical potion, fizzy and wild! However the taste, you will find, is quite mild."
|
||||
color = "#4235d0" //Just pretend that the triple-sec was blue curacao.
|
||||
boozepwr = 50
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "friendship! It is magic, after all"
|
||||
glass_icon_state = "wizz_fizz"
|
||||
glass_name = "Wizz Fizz"
|
||||
glass_desc = "The glass bubbles and froths with an almost magical intensity."
|
||||
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M)
|
||||
//A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting
|
||||
if(M?.mind?.has_antag_datum(/datum/antagonist/wizard))
|
||||
M.heal_bodypart_damage(1,1,1)
|
||||
M.adjustOxyLoss(-1,0)
|
||||
M.adjustToxLoss(-1,0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray
|
||||
name = "Bug Spray"
|
||||
id = "bug_spray"
|
||||
description = "A harsh, acrid, bitter drink, for those who need something to brace themselves."
|
||||
color = "#33ff33"
|
||||
boozepwr = 50
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "the pain of ten thousand slain mosquitos"
|
||||
glass_icon_state = "bug_spray"
|
||||
glass_name = "Bug Spray"
|
||||
glass_desc = "Your eyes begin to water as the sting of alcohol reaches them."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M)
|
||||
//Bugs should not drink Bug spray.
|
||||
if(ismoth(M) || isflyperson(M))
|
||||
M.adjustToxLoss(1,0)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_add(mob/living/carbon/M)
|
||||
if(ismoth(M) || isflyperson(M))
|
||||
M.emote("scream")
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/applejack
|
||||
name = "Applejack"
|
||||
id = "applejack"
|
||||
description = "The perfect beverage for when you feel the need to horse around."
|
||||
color = "#ff6633"
|
||||
boozepwr = 20
|
||||
taste_description = "an honest day's work at the orchard"
|
||||
glass_icon_state = "applejack_glass"
|
||||
glass_name = "Applejack"
|
||||
glass_desc = "You feel like you could drink this all neight."
|
||||
|
||||
/datum/reagent/consumable/ethanol/jack_rose
|
||||
name = "Jack Rose"
|
||||
id = "jack_rose"
|
||||
description = "A light cocktail perfect for sipping with a slice of pie."
|
||||
color = "#ff6633"
|
||||
boozepwr = 15
|
||||
quality = DRINK_NICE
|
||||
taste_description = "a sweet and sour slice of apple"
|
||||
glass_icon_state = "jack_rose"
|
||||
glass_name = "Jack Rose"
|
||||
glass_desc = "Enough of these, and you really will start to suppose your toeses are roses."
|
||||
|
||||
/datum/reagent/consumable/ethanol/turbo
|
||||
name = "Turbo"
|
||||
id = "turbo"
|
||||
description = "A turbulent cocktail associated with outlaw hoverbike racing. Not for the faint of heart."
|
||||
color = "#e94c3a"
|
||||
boozepwr = 85
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "the outlaw spirit"
|
||||
glass_icon_state = "turbo"
|
||||
glass_name = "Turbo"
|
||||
glass_desc = "A turbulent cocktail for outlaw hoverbikers."
|
||||
|
||||
/datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(4))
|
||||
to_chat(M, "<span class='notice'>[pick("You feel disregard for the rule of law.", "You feel pumped!", "Your head is pounding.", "Your thoughts are racing..")]</span>")
|
||||
M.adjustStaminaLoss(-M.drunkenness * 0.25)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer
|
||||
name = "Old Timer"
|
||||
id = "old_timer"
|
||||
description = "An archaic potation enjoyed by old coots of all ages."
|
||||
color = "#996835"
|
||||
boozepwr = 35
|
||||
quality = DRINK_NICE
|
||||
taste_description = "simpler times"
|
||||
glass_icon_state = "old_timer"
|
||||
glass_name = "Old Timer"
|
||||
glass_desc = "WARNING! May cause premature aging!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(20))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/N = M
|
||||
N.age += 1
|
||||
if(N.age > 70)
|
||||
N.facial_hair_color = "ccc"
|
||||
N.hair_color = "ccc"
|
||||
N.update_hair()
|
||||
if(N.age > 100)
|
||||
N.become_nearsighted(id)
|
||||
if(N.gender == MALE)
|
||||
N.facial_hair_style = "Beard (Very Long)"
|
||||
N.update_hair()
|
||||
|
||||
if(N.age > 969) //Best not let people get older than this or i might incur G-ds wrath
|
||||
M.visible_message("<span class='notice'>[M] becomes older than any man should be.. and crumbles into dust!</span>")
|
||||
M.dust(0,1,0)
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/rubberneck
|
||||
name = "Rubberneck"
|
||||
id = "rubberneck"
|
||||
description = "A quality rubberneck should not contain any gross natural ingredients."
|
||||
color = "#ffe65b"
|
||||
boozepwr = 60
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "artifical fruityness"
|
||||
glass_icon_state = "rubberneck"
|
||||
glass_name = "Rubberneck"
|
||||
glass_desc = "A popular drink amongst those adhering to an all synthetic diet."
|
||||
|
||||
/datum/reagent/consumable/ethanol/duplex
|
||||
name = "Duplex"
|
||||
id = "duplex"
|
||||
description = "An inseparable combination of two fruity drinks."
|
||||
color = "#50e5cf"
|
||||
boozepwr = 25
|
||||
quality = DRINK_NICE
|
||||
taste_description = "green apples and blue raspberries"
|
||||
glass_icon_state = "duplex"
|
||||
glass_name = "Duplex"
|
||||
glass_desc = "To imbibe one component separately from the other is consider a great faux pas."
|
||||
|
||||
/datum/reagent/consumable/ethanol/trappist
|
||||
name = "Trappist Beer"
|
||||
id = "trappist"
|
||||
description = "A strong dark ale brewed by space-monks."
|
||||
color = "#390c00"
|
||||
boozepwr = 40
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "dried plums and malt"
|
||||
glass_icon_state = "trappistglass"
|
||||
glass_name = "Trappist Beer"
|
||||
glass_desc = "boozy Catholicism in a glass."
|
||||
|
||||
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind.isholy)
|
||||
M.adjustFireLoss(-2.5, 0)
|
||||
M.jitteriness = max(0, M.jitteriness-1)
|
||||
M.stuttering = max(0, M.stuttering-1)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/blazaam
|
||||
name = "Blazaam"
|
||||
id = "blazaam"
|
||||
description = "A strange drink that few people seem to remember existing. Doubles as a Berenstain remover."
|
||||
boozepwr = 70
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "alternate realities"
|
||||
glass_icon_state = "blazaamglass"
|
||||
glass_name = "Blazaam"
|
||||
glass_desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover."
|
||||
var/stored_teleports = 0
|
||||
|
||||
/datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/M)
|
||||
if(M.drunkenness > 40)
|
||||
if(stored_teleports)
|
||||
do_teleport(M, get_turf(M), rand(1,3))
|
||||
stored_teleports--
|
||||
if(prob(10))
|
||||
stored_teleports += rand(2,6)
|
||||
if(prob(70))
|
||||
M.vomit()
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/planet_cracker
|
||||
name = "Planet Cracker"
|
||||
id = "planet_cracker"
|
||||
description = "This jubilant drink celebrates humanity's triumph over the alien menace. May be offensive to non-human crewmembers."
|
||||
boozepwr = 50
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "triumph with a hint of bitterness"
|
||||
glass_icon_state = "planet_cracker"
|
||||
glass_name = "Planet Cracker"
|
||||
glass_desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy."
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine
|
||||
name = "Fruit Wine"
|
||||
id = "fruit_wine"
|
||||
|
||||
@@ -307,6 +307,16 @@
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/consumable/lemonade
|
||||
name = "Lemonade"
|
||||
id = "lemonade"
|
||||
description = "Sweet, tangy lemonade. Good for the soul."
|
||||
quality = DRINK_NICE
|
||||
taste_description = "sunshine and summertime"
|
||||
glass_icon_state = "lemonpitcher"
|
||||
glass_name = "pitcher of lemonade"
|
||||
glass_desc = "This drink leaves you feeling nostalgic for some reason."
|
||||
|
||||
/datum/reagent/consumable/tea/arnold_palmer
|
||||
name = "Arnold Palmer"
|
||||
id = "arnold_palmer"
|
||||
@@ -500,6 +510,34 @@
|
||||
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/grey_bull
|
||||
name = "Grey Bull"
|
||||
id = "grey_bull"
|
||||
description = "Grey Bull, it gives you gloves!"
|
||||
color = "#EEFF00" // rgb: 238, 255, 0
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "carbonated oil"
|
||||
glass_icon_state = "grey_bull_glass"
|
||||
glass_name = "glass of Grey Bull"
|
||||
glass_desc = "Surprisingly it isnt grey."
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, id)
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_end_metabolize(mob/living/L)
|
||||
REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(20)
|
||||
M.dizziness +=1
|
||||
M.drowsyness = 0
|
||||
M.AdjustSleeping(-40, FALSE)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/sodawater
|
||||
name = "Soda Water"
|
||||
id = "sodawater"
|
||||
@@ -721,6 +759,11 @@
|
||||
glass_name = "glass of grape juice"
|
||||
glass_desc = "It's grape (soda)!"
|
||||
|
||||
/datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/consumable/milk/chocolate_milk
|
||||
name = "Chocolate Milk"
|
||||
id = "chocolate_milk"
|
||||
@@ -748,6 +791,65 @@
|
||||
glass_name = "glass of grenadine"
|
||||
glass_desc = "Delicious flavored syrup."
|
||||
|
||||
/datum/reagent/consumable/parsnipjuice
|
||||
name = "Parsnip Juice"
|
||||
id = "parsnipjuice"
|
||||
description = "Why..."
|
||||
color = "#FFA500"
|
||||
taste_description = "parsnip"
|
||||
glass_name = "glass of parsnip juice"
|
||||
|
||||
/datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink
|
||||
name = "Peach Juice"
|
||||
id = "peachjuice"
|
||||
description = "Just peachy."
|
||||
color = "#E78108"
|
||||
taste_description = "peaches"
|
||||
glass_name = "glass of peach juice"
|
||||
|
||||
/datum/reagent/consumable/cream_soda
|
||||
name = "Cream Soda"
|
||||
id = "cream_soda"
|
||||
description = "A classic space-American vanilla flavored soft drink."
|
||||
color = "#dcb137"
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "fizzy vanilla"
|
||||
glass_icon_state = "cream_soda"
|
||||
glass_name = "Cream Soda"
|
||||
glass_desc = "A classic space-American vanilla flavored soft drink."
|
||||
|
||||
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/red_queen
|
||||
name = "Red Queen"
|
||||
id = "red_queen"
|
||||
description = "DRINK ME."
|
||||
color = "#e6ddc3"
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "wonder"
|
||||
glass_icon_state = "red_queen"
|
||||
glass_name = "Red Queen"
|
||||
glass_desc = "DRINK ME."
|
||||
var/current_size = 1
|
||||
|
||||
/datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H)
|
||||
if(prob(75))
|
||||
return ..()
|
||||
var/newsize = pick(0.5, 0.75, 1, 1.50, 2)
|
||||
H.resize = newsize/current_size
|
||||
current_size = newsize
|
||||
H.update_transform()
|
||||
if(prob(40))
|
||||
H.emote("sneeze")
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/red_queen/on_mob_end_metabolize(mob/living/M)
|
||||
M.resize = 1/current_size
|
||||
M.update_transform()
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/pinkmilk
|
||||
name = "Strawberry Milk"
|
||||
id = "pinkmilk"
|
||||
|
||||
@@ -436,7 +436,7 @@
|
||||
taste_description = "childhood whimsy"
|
||||
|
||||
/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M)
|
||||
if(ishuman(M) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(1,1, 0)
|
||||
. = 1
|
||||
..()
|
||||
@@ -722,6 +722,24 @@
|
||||
taste_description = "mournful honking"
|
||||
pH = 9.2
|
||||
|
||||
/datum/reagent/consumable/astrotame
|
||||
name = "Astrotame"
|
||||
id = "astrotame"
|
||||
description = "A space age artifical sweetener."
|
||||
nutriment_factor = 0
|
||||
metabolization_rate = 2 * REAGENTS_METABOLISM
|
||||
reagent_state = SOLID
|
||||
color = "#FFFFFF" // rgb: 255, 255, 255
|
||||
taste_mult = 8
|
||||
taste_description = "sweetness"
|
||||
overdose_threshold = 17
|
||||
|
||||
/datum/reagent/consumable/astrotame/overdose_process(mob/living/carbon/M)
|
||||
if(M.disgust < 80)
|
||||
M.adjust_disgust(10)
|
||||
..()
|
||||
. = TRUE
|
||||
|
||||
/datum/reagent/consumable/secretsauce
|
||||
name = "secret sauce"
|
||||
id = "secret_sauce"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT)
|
||||
build_path = /obj/item/stack/sheet/plasteel
|
||||
category = list("initial", "Stock Parts")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SECURITY
|
||||
maxstack = 50
|
||||
|
||||
/datum/design/plastitanium_alloy
|
||||
|
||||
@@ -103,3 +103,23 @@
|
||||
desc = "A single use autosurgeon that contains a penis. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/penis
|
||||
|
||||
/obj/item/autosurgeon/testicles
|
||||
desc = "A single use autosurgeon that contains a set of testicles. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/testicles
|
||||
|
||||
/obj/item/autosurgeon/vagina
|
||||
desc = "A single use autosurgeon that contains a vagina. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/vagina
|
||||
|
||||
/obj/item/autosurgeon/breasts
|
||||
desc = "A single use autosurgeon that contains a set of breasts. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/breasts
|
||||
|
||||
/obj/item/autosurgeon/womb
|
||||
desc = "A single use autosurgeon that contains a womb. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/womb
|
||||
@@ -33,6 +33,9 @@
|
||||
/obj/item/reagent_containers/food/drinks/beer = 6)
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/fernet = 5)
|
||||
premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/trappist = 5)
|
||||
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
|
||||
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
|
||||
req_access = list(ACCESS_BAR)
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6)
|
||||
premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air = 1)
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1)
|
||||
refill_canister = /obj/item/vending_refill/cola
|
||||
|
||||
/obj/item/vending_refill/cola
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
/obj/item/clothing/suit/apron/chef = 2,
|
||||
/obj/item/reagent_containers/food/condiment/pack/ketchup = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/hotsauce = 5,
|
||||
/obj/item/reagent_containers/food/condiment/pack/astrotame = 5,
|
||||
/obj/item/reagent_containers/food/condiment/saltshaker = 5,
|
||||
/obj/item/reagent_containers/food/condiment/peppermill = 5,
|
||||
/obj/item/reagent_containers/glass/bowl = 30)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Trilbyspaceclone"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Donner item"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- imageadd: "New sprites for the some pda cartridges."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Podpeople now have customization options."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "The crew monitor's entry for the Quartermaster will now appear bolded, while HoP's will be of the same color of the service/unknown/other jobs."
|
||||
@@ -0,0 +1,11 @@
|
||||
author: "Ghommie (original PRs by ShizCalev, coiax and Tlaltecuhtli)"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Caks will no longer override the bonus reagents provided in a donut when frosting them."
|
||||
- bugfix: "Caks can no longer create frosted frosted jelly donuts."
|
||||
- bugfix: "Jelly donuts will no longer lose their vitamins when they're frosted."
|
||||
- bugfix: "Fixed chaos donuts potentially doubling the amount of reagents added when microwaved with something else."
|
||||
- bugfix: "Donuts now always contain 1 sprinkles as was stated on the wiki. Frosted donuts have a chance at adding an extra sprinkle."
|
||||
- code_imp: "Improved the code for ensuring that security members enjoy donuts and security-themed alcoholic drinks."
|
||||
- balance: "neurotoxin doesnt insta stun but gives you limb paralysis overtime and heart attacks if it stays in for too long and it is also alcholic"
|
||||
- balance: "beepsky smash now summons imaginary beepskys that deal stamina damage instead of outright stunning"
|
||||
@@ -0,0 +1,16 @@
|
||||
author: "Ghommie (original PRs by carshalash, GranpaWalton, BebeYoshi & Hexmaniacosanna, Fire Chance, Ordonis, Krysonism and OnlineGirlfriend)"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Reduced booze power of Mead, Red Mead, and Irish Cream."
|
||||
- tweak: "Increased booze power of Grappa."
|
||||
- rscadd: "Added a new premium drink to the soda machine called \"Grey Bull\" which gives temporary shock resistance"
|
||||
- rscadd: "A new drink called Blank Paper was added to the bar menu, it was made by a mime and it represents a new start."
|
||||
- rscadd: "Adds a variety of fine alcoholic beverages for discerning patrons of the bar: Wizz Fizz, Bug Spray, Champagne, Applejack, Jack Rose, Turbo, Old Timer, Rubberneck, Duplex, Trappist Beer, Blazaam and Planet Cracker!"
|
||||
- rscadd: "Also more nonalcoholic drinks: Cream Soda, Lemonade and Red Queen."
|
||||
- rscadd: "Packs of a novel artificial sweetener have been added to the kitchen vendor."
|
||||
- rscadd: "Bottles of trappist beer and champagne are now available in the premium seection of the booze-o-mat."
|
||||
- rscadd: "Juicing parsnips now yields parsnip juice."
|
||||
- rscadd: "Maintenance peaches."
|
||||
- bugfix: "Grape soda now cools you down like other sodas."
|
||||
- tweak: "tweaked the Arnold Palmer recipe, it now uses lemonade."
|
||||
- imageadd: "Added new drink, bottle, vomit and peach can sprites."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "Roundstart carbon jetpacks now have full_speed FALSE."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Adds plasteel to medical and security techfabs."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "emergency pods' storage will now properly work."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Trilbyspaceclone"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Donor item"
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "The PDA skin preference will now properly save up."
|
||||
- tweak: "Changed the default PDA icon var to match the default PDA skin preference."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542, original by @Tlaltecuhtli"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "alt clicking the emitter now rotates it instead of only flipping"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542, original by Arkatos"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Action buttons can now be dragged onto each other to swap places"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Trilbyspaceclone"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Promiscuous Organs crate, pills to lewd crate and testicles to maints"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Sishen1542, original by NewSta"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "updated the miasma canister sprites"
|
||||
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
@@ -405,8 +405,26 @@ datum/gear/darksabresheath
|
||||
path = /obj/item/clothing/suit/commjacket
|
||||
ckeywhitelist = list("sadisticbatter")
|
||||
|
||||
/datum/gear/mw2_russian_para
|
||||
name = "Russian Paratrooper Jumper"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/mw2_russian_para
|
||||
ckeywhitelist = list("investigator77")
|
||||
|
||||
/datum/gear/longblackgloves
|
||||
name = "Luna's Gauntlets"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/longblackgloves
|
||||
ckeywhitelist = list("bigmanclancy")
|
||||
|
||||
/datum/gear/trendy_fit
|
||||
name = "Trendy Fit"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/trendy_fit
|
||||
ckeywhitelist = list("midgetdragon")
|
||||
|
||||
/datum/gear/csheet
|
||||
name = "NT Bedsheet"
|
||||
category = SLOT_NECK
|
||||
path = /obj/item/bedsheet/captain
|
||||
ckeywhitelist = list("tikibomb")
|
||||
@@ -417,7 +417,6 @@
|
||||
icon_state = "flagcape"
|
||||
item_state = "flagcape"
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/lucky
|
||||
name = "Lucky Jackboots"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
@@ -504,6 +503,15 @@
|
||||
alternate_worn_icon = 'icons/mob/custom_w.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/suit/mw2_russian_para
|
||||
name = "Russian Paratrooper Jumper"
|
||||
desc = "A Russian made old paratrooper jumpsuit, has many pockets for easy storage of gear from a by gone era. As bulky as it looks, its shockingly light!"
|
||||
icon_state = "mw2_russian_para"
|
||||
item_state = "mw2_russian_para"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
alternate_worn_icon = 'icons/mob/custom_w.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/gloves/longblackgloves
|
||||
name = "Luna's Gauntlets"
|
||||
desc = "These gloves seem to have a coating of slime fluid on them, you should possibly return them to their rightful owner."
|
||||
@@ -511,3 +519,12 @@
|
||||
item_state = "longblackgloves"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
alternate_worn_icon = 'icons/mob/custom_w.dmi'
|
||||
|
||||
/obj/item/clothing/under/trendy_fit
|
||||
name = "Trendy Fitting Clothing"
|
||||
desc = "An outfit straight from the boredom of space, its the type of thing only someone trying to entertain themselves on the way to their next destination would wear."
|
||||
icon_state = "trendy_fit"
|
||||
item_state = "trendy_fit"
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
alternate_worn_icon = 'icons/mob/custom_w.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||