Merge branch 'master' into master

This commit is contained in:
Thalpy
2019-07-04 03:14:29 +01:00
committed by GitHub
82 changed files with 965 additions and 132 deletions
+5 -4
View File
@@ -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
+15 -1
View File
@@ -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)
+1
View File
@@ -54,6 +54,7 @@
icon_state = "parsnip"
bitesize_mod = 2
foodtype = VEGETABLES
juice_results = list("parsnipjuice" = 0)
wine_power = 35
+3
View File
@@ -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
+5
View File
@@ -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)
+7
View File
@@ -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()
+11 -7
View File
@@ -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)
+1 -1
View File
@@ -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))
+4 -1
View File
@@ -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)
..()
+2 -2
View File
@@ -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
+3
View File
@@ -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)
+2 -1
View File
@@ -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
+1
View File
@@ -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)