More Incense! (#21804)

* More Incense!

* Gotta code em all

* improvement

* updates
This commit is contained in:
Kurfursten
2019-02-25 16:10:28 -06:00
committed by jknpj
parent cc92cc8cd7
commit 570dfa1dcd
16 changed files with 312 additions and 87 deletions

View File

@@ -450,3 +450,9 @@ var/list/cheartstopper = list(/*"potassium_chloride",*/ CHEESYGLOOP) //this stop
#define INCENSE_SUNFLOWERS "sunflowers" #define INCENSE_SUNFLOWERS "sunflowers"
#define INCENSE_MOONFLOWERS "moonflowers" #define INCENSE_MOONFLOWERS "moonflowers"
#define INCENSE_NOVAFLOWERS "novaflowers" #define INCENSE_NOVAFLOWERS "novaflowers"
#define INCENSE_BANANA "bananas"
#define INCENSE_BOOZE "helmets"
#define INCENSE_LEAFY "cabbage"
#define INCENSE_VAPOR "vaporsacs"
#define INCENSE_DENSE "grasses"
#define INCENSE_CRAVE "vales"

View File

@@ -279,6 +279,7 @@
male_adept = "Magister" male_adept = "Magister"
female_adept = "Magistera" female_adept = "Magistera"
keys = list("satan", "evil", "satanism") keys = list("satan", "evil", "satanism")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/moonflowers
/datum/religion/lovecraft /datum/religion/lovecraft
name = "Esoteric order of Dagon" name = "Esoteric order of Dagon"
@@ -307,6 +308,7 @@
male_adept = "Master of Slam" male_adept = "Master of Slam"
female_adept = "Mistress of Slam" female_adept = "Mistress of Slam"
keys = list("slam", "bball", "basketball", "basket ball") keys = list("slam", "bball", "basketball", "basket ball")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/vale
/datum/religion/slam/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/slam/equip_chaplain(var/mob/living/carbon/human/H)
H.put_in_hands(new/obj/item/weapon/beach_ball/holoball) H.put_in_hands(new/obj/item/weapon/beach_ball/holoball)
@@ -382,6 +384,7 @@
male_adept = "Druid" male_adept = "Druid"
female_adept = "Druidess" female_adept = "Druidess"
keys = list("druidism", "celtic") keys = list("druidism", "celtic")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/leafy
/datum/religion/atheism /datum/religion/atheism
name = "Atheism" name = "Atheism"
@@ -404,6 +407,7 @@
male_adept = "Biologist" male_adept = "Biologist"
female_adept = "Biologist" female_adept = "Biologist"
keys = list("evolution", "biology", "monkey", "monkeys") keys = list("evolution", "biology", "monkey", "monkeys")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/banana
/datum/religion/scientology /datum/religion/scientology
name = "Scientology" name = "Scientology"
@@ -453,6 +457,7 @@
deity_name = "The Flying Spaghetti Monster" deity_name = "The Flying Spaghetti Monster"
bible_name = "The Gospel of the Flying Spaghetti Monster" bible_name = "The Gospel of the Flying Spaghetti Monster"
keys = list("pastafarianism") keys = list("pastafarianism")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/sunflowers
/datum/religion/chaos /datum/religion/chaos
name = "Chaos" name = "Chaos"
@@ -486,6 +491,7 @@
male_adept = "LGBT Advocate" male_adept = "LGBT Advocate"
female_adept = "LGBT Advocate" female_adept = "LGBT Advocate"
keys = list("homosexuality", "faggotry", "gayness", "gay", "penis", "faggot", "cock", "cocks", "dick", "dicks") keys = list("homosexuality", "faggotry", "gayness", "gay", "penis", "faggot", "cock", "cocks", "dick", "dicks")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/banana
/datum/religion/homosexuality/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/homosexuality/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/under/darkholme(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/under/darkholme(H), slot_w_uniform)
@@ -499,6 +505,7 @@
female_adept = "Retard" female_adept = "Retard"
keys = list("lol", "wtf", "ass", "poo", "badmin", "shitmin", "deadmin", "nigger", "dickbutt", ":^)", "XD", "le", "meme", "memes", "ayy", "ayy lmao", "lmao", "reddit", "4chan", "tumblr", "9gag", "brian damag") keys = list("lol", "wtf", "ass", "poo", "badmin", "shitmin", "deadmin", "nigger", "dickbutt", ":^)", "XD", "le", "meme", "memes", "ayy", "ayy lmao", "lmao", "reddit", "4chan", "tumblr", "9gag", "brian damag")
convert_method = "standing both next to a table." convert_method = "standing both next to a table."
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/banana
/datum/religion/retard/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/retard/equip_chaplain(var/mob/living/carbon/human/H)
H.setBrainLoss(100) //Starts off retarded as fuck, that'll teach him H.setBrainLoss(100) //Starts off retarded as fuck, that'll teach him
@@ -552,6 +559,7 @@
male_adept = "Academician" male_adept = "Academician"
female_adept = "Academician" female_adept = "Academician"
keys = list("Science") keys = list("Science")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/sunflowers
/datum/religion/justice /datum/religion/justice
name = "Tribunal" name = "Tribunal"
@@ -625,6 +633,7 @@
male_adept = "Veterinarian" male_adept = "Veterinarian"
female_adept = "Veterinarian" female_adept = "Veterinarian"
keys = list("ianism", "ian", "dog", "puppy", "doggo", "pupper") keys = list("ianism", "ian", "dog", "puppy", "doggo", "pupper")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/leafy
/datum/religion/admins /datum/religion/admins
name = "Adminism" name = "Adminism"
@@ -660,6 +669,7 @@
male_adept = "Ghost" male_adept = "Ghost"
female_adept = "Ghost" female_adept = "Ghost"
keys = list("spook", "spooky", "boo", "ghost", "halloween", "2spooky") keys = list("spook", "spooky", "boo", "ghost", "halloween", "2spooky")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/moonflowers
/datum/religion/spooky/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/spooky/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/head/pumpkinhead(H), slot_head) H.equip_or_collect(new /obj/item/clothing/head/pumpkinhead(H), slot_head)
@@ -710,6 +720,7 @@
male_adept = "Drunkard" male_adept = "Drunkard"
female_adept = "Drunkard" female_adept = "Drunkard"
keys = list("alcohol", "booze", "beer", "wine", "ethanol", "c2h6o") keys = list("alcohol", "booze", "beer", "wine", "ethanol", "c2h6o")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/booze
/datum/religion/robutness /datum/religion/robutness
name = "Robustness" name = "Robustness"
@@ -719,6 +730,7 @@
male_adept = "Robuster" male_adept = "Robuster"
female_adept = "Robuster" female_adept = "Robuster"
keys = list("robust", "robustness", "strength") keys = list("robust", "robustness", "strength")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/vale
/datum/religion/suicide /datum/religion/suicide
name = "Thanatology" // Guess it works name = "Thanatology" // Guess it works
@@ -728,6 +740,7 @@
male_adept = "Reaper" male_adept = "Reaper"
female_adept = "Reaper" female_adept = "Reaper"
keys = list("suicide", "death", "succumb") keys = list("suicide", "death", "succumb")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/moonflowers
/datum/religion/communism /datum/religion/communism
name = "Communism" name = "Communism"
@@ -773,6 +786,7 @@
male_adept = "Feldbischof" //No seriously, that's a thing, look it up male_adept = "Feldbischof" //No seriously, that's a thing, look it up
female_adept = "Feldbischof" female_adept = "Feldbischof"
keys = list("fascism", "nazi", "national socialism") keys = list("fascism", "nazi", "national socialism")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/dense
/datum/religion/nazism/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/nazism/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/head/naziofficer(H), slot_head) H.equip_or_collect(new /obj/item/clothing/head/naziofficer(H), slot_head)
@@ -785,7 +799,7 @@
female_adept = "Nanotrasen Officer" female_adept = "Nanotrasen Officer"
keys = list("security", "space law", "law", "nanotrasen", "centcomm") keys = list("security", "space law", "law", "nanotrasen", "centcomm")
convert_method = "performing a ritual with a flashbang and a screwdriver. You need to hold the flashbang, with its timer set to 5 seconds, your convert needs to hold the screwdriver and have a free empty hand." convert_method = "performing a ritual with a flashbang and a screwdriver. You need to hold the flashbang, with its timer set to 5 seconds, your convert needs to hold the screwdriver and have a free empty hand."
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/dense
/datum/religion/security/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/security/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/head/centhat(H), slot_head) H.equip_or_collect(new /obj/item/clothing/head/centhat(H), slot_head)
@@ -893,6 +907,7 @@
male_adept = "Revolutionary" male_adept = "Revolutionary"
female_adept = "Revolutionary" female_adept = "Revolutionary"
keys = list("revolution", "rev", "revolt") keys = list("revolution", "rev", "revolt")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/dense
/datum/religion/wizard /datum/religion/wizard
name = "Wizardry" name = "Wizardry"
@@ -901,6 +916,7 @@
male_adept = "Wizard" male_adept = "Wizard"
female_adept = "Wizard" female_adept = "Wizard"
keys = list("wizard", "wiz", "magic") keys = list("wizard", "wiz", "magic")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/dense
/datum/religion/wizard/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/wizard/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/head/wizard(H), slot_head) H.equip_or_collect(new /obj/item/clothing/head/wizard(H), slot_head)
@@ -937,6 +953,7 @@
male_adept = "Vox Enthusiast" //And that's terrible male_adept = "Vox Enthusiast" //And that's terrible
female_adept = "Vox Enthusiast" female_adept = "Vox Enthusiast"
keys = list("vox", "raiders", "raid", "bird", "birb") keys = list("vox", "raiders", "raid", "bird", "birb")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/vapor
/datum/religion/bleb /datum/religion/bleb
name = "Blob Worship" name = "Blob Worship"
@@ -953,6 +970,7 @@
male_adept = "Co-Clown" male_adept = "Co-Clown"
female_adept = "Co-Clown" female_adept = "Co-Clown"
keys = list("honk", "clown", "honkmother") keys = list("honk", "clown", "honkmother")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/banana
/datum/religion/clown/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/clown/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) H.equip_or_collect(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
@@ -1019,11 +1037,11 @@
/datum/religion/vegan /datum/religion/vegan
name = "Veganism" name = "Veganism"
bible_name = "Mercy For Animals" bible_name = "Mercy For Animals"
male_adept = "Animal Rights Activist" male_adept = "Animal Rights Activist"
female_adept = "Animal Rights Activist" female_adept = "Animal Rights Activist"
keys = list("vegan","vegetarian","veganism","vegetarianism", "animals", "animal rights") keys = list("vegan","vegetarian","veganism","vegetarianism", "animals", "animal rights")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/leafy
/datum/religion/vegan/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/vegan/equip_chaplain(var/mob/living/carbon/human/H)
//Add veganism disability //Add veganism disability
@@ -1037,6 +1055,7 @@
male_adept = "Expedition Leader" male_adept = "Expedition Leader"
female_adept = "Expedition Leader" female_adept = "Expedition Leader"
keys = list("armok", "dwarf", "dorf", "dwarf fortress", "dorf fort") keys = list("armok", "dwarf", "dorf", "dwarf fortress", "dorf fort")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/booze
/datum/religion/art /datum/religion/art
name = "The Joy of Painting" name = "The Joy of Painting"
@@ -1059,6 +1078,7 @@
male_adept = "Janitor" male_adept = "Janitor"
female_adept = "Janitor" female_adept = "Janitor"
keys = list("clean","cleaning","Mr. Clean","janitor") keys = list("clean","cleaning","Mr. Clean","janitor")
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/vapor
/datum/religion/clean/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/clean/equip_chaplain(var/mob/living/carbon/human/H)
H.put_in_hands(new /obj/item/weapon/mop) H.put_in_hands(new /obj/item/weapon/mop)
@@ -1074,6 +1094,7 @@
female_adept = "Kommando" female_adept = "Kommando"
keys = list("murdercube","murderkube", "murder/k/ube","forgotten weapons", "gun", "guns", "ammo", "trigger discipline", "ave nex alea", "dakka") keys = list("murdercube","murderkube", "murder/k/ube","forgotten weapons", "gun", "guns", "ammo", "trigger discipline", "ave nex alea", "dakka")
convert_method = "performing a ritual with a gun. The convert needs to be in good health and unafraid of being shot." convert_method = "performing a ritual with a gun. The convert needs to be in good health and unafraid of being shot."
preferred_incense = /obj/item/weapon/storage/fancy/incensebox/dense
/datum/religion/guns/equip_chaplain(var/mob/living/carbon/human/H) /datum/religion/guns/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/weapon/gun/energy/laser/practice) H.equip_or_collect(new /obj/item/weapon/gun/energy/laser/practice)

View File

@@ -639,7 +639,8 @@
var/obj/item/I = mover var/obj/item/I = mover
if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile)) if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile))
return return
if(prob(50)) var/mob/mob = get_mob_by_key(mover.fingerprintslast)
if(prob(50) || (mob && mob.reagents.get_sportiness()>=5))
I.forceMove(src.loc) I.forceMove(src.loc)
visible_message("<span class='notice'>Swish! \the [I] lands in \the [src].</span>") visible_message("<span class='notice'>Swish! \the [I] lands in \the [src].</span>")
else else

View File

@@ -28,34 +28,73 @@
var/lit = FALSE var/lit = FALSE
var/flammable = TRUE var/flammable = TRUE
var/fragrance = INCENSE_HAREBELLS var/fragrance = null
var/adjective = "holy" var/adjective = null
var/list/breathed_at_least_once = list() var/list/breathed_at_least_once = list()
/obj/item/incense_stick/New()
..()
create_reagents(1)
/obj/item/incense_stick/harebells /obj/item/incense_stick/harebells
fragrance = INCENSE_HAREBELLS fragrance = INCENSE_HAREBELLS
adjective = "holy" adjective = "holy"
color = "#ffffff"
/obj/item/incense_stick/poppies /obj/item/incense_stick/poppies
fragrance = INCENSE_POPPIES fragrance = INCENSE_POPPIES
adjective = "calming" adjective = "calming"
color = "#660000"
/obj/item/incense_stick/sunflowers /obj/item/incense_stick/sunflowers
fragrance = INCENSE_SUNFLOWERS fragrance = INCENSE_SUNFLOWERS
adjective = "pleasant" adjective = "pleasant"
color = "#ffff99"
/obj/item/incense_stick/moonflowers /obj/item/incense_stick/moonflowers
fragrance = INCENSE_MOONFLOWERS fragrance = INCENSE_MOONFLOWERS
adjective = "disturbing" adjective = "disturbing"
color = "#6f20b5"
/obj/item/incense_stick/novaflowers /obj/item/incense_stick/novaflowers
fragrance = INCENSE_NOVAFLOWERS fragrance = INCENSE_NOVAFLOWERS
adjective = "stimulating" adjective = "stimulating"
color = "#ffa500"
/obj/item/incense_stick/banana
fragrance = INCENSE_BANANA
adjective = "slippery"
color = "#ffff00"
/obj/item/incense_stick/cabbage
fragrance = INCENSE_LEAFY
adjective = "fresh"
color = "#33cc33"
/obj/item/incense_stick/booze
fragrance = INCENSE_BOOZE
adjective = "alcoholic"
color = "#b35900"
/obj/item/incense_stick/vapor
fragrance = INCENSE_VAPOR
adjective = "clean"
color = "#3399ff"
/obj/item/incense_stick/dense
fragrance = INCENSE_DENSE
adjective = "foul"
color = "#333333"
/obj/item/incense_stick/vale
fragrance = INCENSE_CRAVE
adjective = "craving-inducing"
color = "#ffccff"
/obj/item/incense_stick/examine(mob/user) /obj/item/incense_stick/examine(mob/user)
..() ..()
to_chat(user, "\The [src] is [lit ? "":"un"]lit.") to_chat(user, "\The [src] is [lit ? "":"un"]lit.")
to_chat(user,"<span class='info'>This one [adjective ? "smells [adjective]" : "is unscented"].</span>")
/obj/item/incense_stick/attack_self(var/mob/user) /obj/item/incense_stick/attack_self(var/mob/user)
if(lit) if(lit)
@@ -99,6 +138,7 @@
/obj/item/incense_stick/proc/exting() /obj/item/incense_stick/proc/exting()
lit = FALSE lit = FALSE
damtype = BRUTE damtype = BRUTE
breathed_at_least_once.Cut()
attack_verb = unlit_attack_verb attack_verb = unlit_attack_verb
update_icon() update_icon()
set_light(0) set_light(0)
@@ -131,9 +171,12 @@
location.hotspot_expose(source_temperature, 5, surfaces = istype(loc, /turf)) location.hotspot_expose(source_temperature, 5, surfaces = istype(loc, /turf))
anim(target = location, a_icon = 'icons/effects/160x160.dmi', flick_anim = "incense", offX = -WORLD_ICON_SIZE*2+pixel_x, offY = -WORLD_ICON_SIZE*2+pixel_y) anim(target = location, a_icon = 'icons/effects/160x160.dmi', flick_anim = "incense", offX = -WORLD_ICON_SIZE*2+pixel_x, offY = -WORLD_ICON_SIZE*2+pixel_y)
if (location.zone)//is there a simulated atmosphere where we are? if (location.zone)//is there a simulated atmosphere where we are?
var/list/potential_breathers = list() var/list/potential_breathers = list()
for(var/turf/simulated/T in location.zone.contents)//are they in that same atmospheric zone? for(var/turf/simulated/T in location.zone.contents)//are they in that same atmospheric zone?
for (var/mob/living/carbon/C in T) for (var/mob/living/C in T)
if(!iscarbon(C) && !isanimal(C))
continue
if (get_dist(location, C) <= 7)//are they relatively close? if (get_dist(location, C) <= 7)//are they relatively close?
if (!ishuman(C)) if (!ishuman(C))
potential_breathers += C potential_breathers += C
@@ -144,9 +187,13 @@
if(H.internal)//are their internals off? if(H.internal)//are their internals off?
continue continue
potential_breathers += C potential_breathers += C
var/datum/reagent/incense/D = chemical_reagents_list[fragrance]
for (var/mob/living/carbon/C in potential_breathers) if(D)
C.reagents.add_reagent(fragrance,0.5) D.OnDisperse(location)
for (var/mob/living/C in potential_breathers)
reagents.clear_reagents()
reagents.add_reagent(fragrance,0.5) //Create a new fragrance inside, then move it to the target.
reagents.trans_to(C,0.5)
if (!(C in breathed_at_least_once)) if (!(C in breathed_at_least_once))
breathed_at_least_once += C breathed_at_least_once += C
to_chat(C,"\A [adjective] fragrance fills the air.[((fragrance == INCENSE_HAREBELLS)&&(iscultist(C)||isvampire(C))) ? "..<span class='danger'>and gives you a splitting headache!</span>" : ""]") to_chat(C,"\A [adjective] fragrance fills the air.[((fragrance == INCENSE_HAREBELLS)&&(iscultist(C)||isvampire(C))) ? "..<span class='danger'>and gives you a splitting headache!</span>" : ""]")
@@ -176,6 +223,16 @@
var/mob/M = loc var/mob/M = loc
M.update_inv_hands() M.update_inv_hands()
/obj/item/incense_stick/proc/set_fragrance(var/newfrag)
if(fragrance == newfrag)
return FALSE
fragrance = newfrag
for(var/path in typesof(/obj/item/incense_stick))
var/obj/item/incense_stick/IS = new path
if(fragrance == IS.fragrance)
adjective = IS.adjective
color = IS.color
return TRUE
/obj/item/weapon/storage/fancy/incensebox /obj/item/weapon/storage/fancy/incensebox
@@ -196,6 +253,7 @@
w_type=RECYK_WOOD w_type=RECYK_WOOD
siemens_coefficient = 0 siemens_coefficient = 0
vending_cat = "incense material" vending_cat = "incense material"
var/fragrance = null
/obj/item/weapon/storage/fancy/incensebox/fire_act(var/datum/gas_mixture/air, var/exposed_temperature, var/exposed_volume) /obj/item/weapon/storage/fancy/incensebox/fire_act(var/datum/gas_mixture/air, var/exposed_temperature, var/exposed_volume)
for (var/obj/item/incense_stick/S in contents) for (var/obj/item/incense_stick/S in contents)
@@ -213,38 +271,61 @@
empty = 1 empty = 1
icon_state = "incensebox_0" icon_state = "incensebox_0"
/obj/item/weapon/storage/fancy/incensebox/harebells/New() /obj/item/weapon/storage/fancy/incensebox/harebells
..() fragrance = INCENSE_HAREBELLS
for(var/obj/item/incense_stick/S in contents)
S.fragrance = INCENSE_HAREBELLS
/obj/item/weapon/storage/fancy/incensebox/poppies/New() /obj/item/weapon/storage/fancy/incensebox/poppies
..() fragrance = INCENSE_POPPIES
for(var/obj/item/incense_stick/S in contents)
S.fragrance = INCENSE_POPPIES
/obj/item/weapon/storage/fancy/incensebox/sunflowers/New() /obj/item/weapon/storage/fancy/incensebox/sunflowers
..() fragrance = INCENSE_SUNFLOWERS
for(var/obj/item/incense_stick/S in contents)
S.fragrance = INCENSE_SUNFLOWERS
/obj/item/weapon/storage/fancy/incensebox/moonflowers/New() /obj/item/weapon/storage/fancy/incensebox/moonflowers
..() fragrance = INCENSE_MOONFLOWERS
for(var/obj/item/incense_stick/S in contents)
S.fragrance = INCENSE_MOONFLOWERS
/obj/item/weapon/storage/fancy/incensebox/novaflowers/New() /obj/item/weapon/storage/fancy/incensebox/novaflowers
..() fragrance = INCENSE_NOVAFLOWERS
for(var/obj/item/incense_stick/S in contents)
S.fragrance = INCENSE_NOVAFLOWERS /obj/item/weapon/storage/fancy/incensebox/banana
fragrance = INCENSE_BANANA
/obj/item/weapon/storage/fancy/incensebox/leafy
fragrance = INCENSE_LEAFY
/obj/item/weapon/storage/fancy/incensebox/booze
fragrance = INCENSE_BOOZE
/obj/item/weapon/storage/fancy/incensebox/vapor
fragrance = INCENSE_VAPOR
/obj/item/weapon/storage/fancy/incensebox/dense
fragrance = INCENSE_DENSE
/obj/item/weapon/storage/fancy/incensebox/vale
fragrance = INCENSE_CRAVE
/obj/item/weapon/storage/fancy/incensebox/New() /obj/item/weapon/storage/fancy/incensebox/New()
..() ..()
if (empty) if (empty)
return return
for(var/i=1; i <= storage_slots; i++) if(fragrance)
new /obj/item/incense_stick(src) for(var/i=1; i <= storage_slots; i++)
var/obj/item/incense_stick/IS = new(src)
IS.set_fragrance(fragrance)
/obj/item/weapon/storage/fancy/incensebox/variety/New()
..()
new /obj/item/incense_stick/harebells(src)
new /obj/item/incense_stick/poppies(src)
new /obj/item/incense_stick/sunflowers(src)
new /obj/item/incense_stick/novaflowers(src)
new /obj/item/incense_stick/moonflowers(src)
new /obj/item/incense_stick/dense(src)
new /obj/item/incense_stick/vapor(src)
new /obj/item/incense_stick/booze(src)
new /obj/item/incense_stick/banana(src)
new /obj/item/incense_stick/cabbage(src)
new /obj/item/incense_stick/vale(src)
/obj/item/incense_oilbox /obj/item/incense_oilbox
name = "incense oil container" name = "incense oil container"
@@ -259,8 +340,12 @@
force = 2.5 force = 2.5
flags = FPRINT flags = FPRINT
vending_cat = "incense material" vending_cat = "incense material"
var/fragrance = INCENSE_HAREBELLS var/fragrance = null
var/adjective = "holy" var/adjective = null
/obj/item/incense_oilbox/examine(mob/user)
..()
to_chat(user,"<span class='info'>It [adjective ? "smells [adjective]" : "is unscented"].</span>")
/obj/item/incense_oilbox/harebells /obj/item/incense_oilbox/harebells
fragrance = INCENSE_HAREBELLS fragrance = INCENSE_HAREBELLS
@@ -282,48 +367,51 @@
fragrance = INCENSE_NOVAFLOWERS fragrance = INCENSE_NOVAFLOWERS
adjective = "stimulating" adjective = "stimulating"
/obj/item/incense_oilbox/banana
fragrance = INCENSE_BANANA
adjective = "slippery"
/obj/item/incense_oilbox/cabbage
fragrance = INCENSE_LEAFY
adjective = "fresh"
/obj/item/incense_oilbox/booze
fragrance = INCENSE_BOOZE
adjective = "alcoholic"
/obj/item/incense_oilbox/vapor
fragrance = INCENSE_VAPOR
adjective = "clean"
/obj/item/incense_oilbox/dense
fragrance = INCENSE_DENSE
adjective = "foul"
/obj/item/incense_oilbox/vale
fragrance = INCENSE_CRAVE
adjective = "craving-inducing"
/obj/item/incense_oilbox/attackby(var/obj/item/weapon/W, var/mob/user) /obj/item/incense_oilbox/attackby(var/obj/item/weapon/W, var/mob/user)
if (istype (W, /obj/item/incense_stick)) if (istype (W, /obj/item/incense_stick))
if(!fragrance)
to_chat(user, "<span class='warning'>A floral product must be blended inside first!</span>")
return
var/obj/item/incense_stick/S = W var/obj/item/incense_stick/S = W
S.fragrance = fragrance if(S.set_fragrance(fragrance))
S.adjective = adjective to_chat(user, "<span class='notice'>You dip the stick in the container, carefully applying the [adjective] oils on it.</span>")
to_chat(user, "<span class='notice'>You dip the stick in the container, carefully applying the oils on it.</span>")
return
if (istype (W,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell))
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = INCENSE_HAREBELLS
to_chat(user, "<span class='notice'>The oils in the box are now blended with harebell petals, producing an holy fragrance.</span>")
adjective = "holy"
return
if (istype (W,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy))
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = INCENSE_POPPIES
to_chat(user, "<span class='notice'>The oils in the box are now blended with poppy petals, producing a calming fragrance.</span>")
adjective = "calming"
return
if (istype (W,/obj/item/weapon/grown/sunflower))
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = INCENSE_SUNFLOWERS
to_chat(user, "<span class='notice'>The oils in the box are now blended with sunflower petals, producing a pleasant fragrance.</span>")
adjective = "pleasant"
return
if (istype (W,/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower))
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = INCENSE_MOONFLOWERS
to_chat(user, "<span class='notice'>The oils in the box are now blended with moonflower petals, producing a disturbing fragrance.</span>")
adjective = "disturbing"
return
if (istype (W,/obj/item/weapon/grown/novaflower))
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = INCENSE_NOVAFLOWERS
to_chat(user, "<span class='notice'>The oils in the box are now blended with novaflower petals, producing a stimulating fragrance.</span>")
adjective = "stimulating"
return return
if (istype (W,/obj/item/weapon/reagent_containers/food/snacks/grown) || istype(W,/obj/item/weapon/grown))
if(W:fragrance) //for both types this is null by default, so it's "safe" to use the trusted operator
user.drop_item(W, force_drop = 1)
qdel(W)
fragrance = W:fragrance
for(var/path in typesof(/obj/item/incense_oilbox))
var/obj/item/incense_oilbox/IO = new path
if(fragrance == IO.fragrance)
adjective = IO.adjective
break
to_chat(user, "<span class='notice'>The oils in the box are now blended with \the [W]... it smells [adjective]!</span>")
return
..() ..()
@@ -353,6 +441,10 @@
incense = null incense = null
..() ..()
/obj/item/weapon/thurible/examine(mob/user)
..()
if(incense && incense.lit)
to_chat(user,"<span class='info'>A [incense.adjective] fragrance wafts from within!</span>")
/obj/item/weapon/thurible/update_icon() /obj/item/weapon/thurible/update_icon()
if (incense && incense.lit) if (incense && incense.lit)
@@ -402,8 +494,8 @@
to_chat(user,"<span class='warning'>The incense was recently put out, you must wait a few seconds before lighting it up again.</span>") to_chat(user,"<span class='warning'>The incense was recently put out, you must wait a few seconds before lighting it up again.</span>")
return return
else else
incense.burn()
to_chat(user,"<span class='warning'>You flick the built-in lighter, and the small flame lights up \the [incense].</span>") to_chat(user,"<span class='warning'>You flick the built-in lighter, and the small flame lights up \the [incense].</span>")
incense.burn()
else else
to_chat(user,"<span class='warning'>Put some incense in there first.</span>") to_chat(user,"<span class='warning'>Put some incense in there first.</span>")

View File

@@ -567,7 +567,7 @@ a {
/obj/proc/clumsy_check(var/mob/living/user) /obj/proc/clumsy_check(var/mob/living/user)
if(istype(user)) if(istype(user))
return (M_CLUMSY in user.mutations) return (M_CLUMSY in user.mutations) || user.reagents.has_reagent(INCENSE_BANANA)
return 0 return 0
//Proc that handles NPCs (gremlins) "tampering" with this object. //Proc that handles NPCs (gremlins) "tampering" with this object.

View File

@@ -676,9 +676,10 @@ turf/simulated/floor/update_icon()
/turf/simulated/proc/dry(slipperiness = TURF_WET_WATER) /turf/simulated/proc/dry(slipperiness = TURF_WET_WATER)
var/obj/effect/overlay/puddle/P = is_wet() var/obj/effect/overlay/puddle/P = is_wet()
if(P.wet > slipperiness) if(P)
return if(P.wet > slipperiness)
qdel(P) return
qdel(P)
/turf/simulated/floor/attack_construct(mob/user as mob) /turf/simulated/floor/attack_construct(mob/user as mob)

View File

@@ -7,6 +7,7 @@
icon = 'icons/obj/weapons.dmi' icon = 'icons/obj/weapons.dmi'
var/plantname var/plantname
var/potency = 1 var/potency = 1
var/fragrance = null
/obj/item/weapon/grown/New() /obj/item/weapon/grown/New()
@@ -90,6 +91,7 @@
w_class = W_CLASS_TINY w_class = W_CLASS_TINY
throw_speed = 1 throw_speed = 1
throw_range = 3 throw_range = 3
fragrance = INCENSE_SUNFLOWERS
/obj/item/weapon/grown/sunflower/attack(mob/M as mob, mob/user as mob) /obj/item/weapon/grown/sunflower/attack(mob/M as mob, mob/user as mob)
to_chat(M, "<font color='green'><b> [user] smacks you with a sunflower! </font><font color='yellow'><b>FLOWER POWER<b></font>") to_chat(M, "<font color='green'><b> [user] smacks you with a sunflower! </font><font color='yellow'><b>FLOWER POWER<b></font>")
@@ -111,6 +113,7 @@
throw_speed = 1 throw_speed = 1
throw_range = 3 throw_range = 3
attack_verb = list("sears", "heats", "whacks", "steams") attack_verb = list("sears", "heats", "whacks", "steams")
fragrance = INCENSE_NOVAFLOWERS
/obj/item/weapon/grown/novaflower/New() /obj/item/weapon/grown/novaflower/New()
..() ..()

View File

@@ -188,6 +188,7 @@
icon_state = "valeleaves" icon_state = "valeleaves"
plantname = "vale" plantname = "vale"
hydroflags = HYDRO_PREHISTORIC hydroflags = HYDRO_PREHISTORIC
fragrance = INCENSE_CRAVE
/datum/seed/surik /datum/seed/surik
name = "surik" name = "surik"

View File

@@ -158,6 +158,7 @@
/mob/living/carbon/human/proc/get_knockout_chance(mob/living/victim) /mob/living/carbon/human/proc/get_knockout_chance(mob/living/victim)
var/base_chance = 8 var/base_chance = 8
base_chance += min(reagents.get_sportiness(),5)
if(mutations.Find(M_HULK)) if(mutations.Find(M_HULK))
base_chance += 12 base_chance += 12
if(istype(gloves)) if(istype(gloves))

View File

@@ -62,8 +62,7 @@
playsound(src, 'sound/machines/click.ogg', 50, 1) playsound(src, 'sound/machines/click.ogg', 50, 1)
var/calc = DEFAULT_BUMP_ENERGY * power_efficiency * runner.treadmill_speed var/calc = DEFAULT_BUMP_ENERGY * power_efficiency * runner.treadmill_speed
if(runner.reagents) //Sanity if(runner.reagents) //Sanity
for(var/datum/reagent/R in runner.reagents.reagent_list) calc *= runner.reagents.get_sportiness()
calc *= R.sport
if(M_HULK in runner.mutations) if(M_HULK in runner.mutations)
calc *= 5 calc *= 5
count_power += calc count_power += calc

View File

@@ -149,7 +149,6 @@ var/const/INGEST = 2
logged_message += "[current_reagent_transfer]u of [current_reagent.name]" logged_message += "[current_reagent_transfer]u of [current_reagent.name]"
if(current_reagent.id in reagents_to_log) if(current_reagent.id in reagents_to_log)
adminwarn_message += "[current_reagent_transfer]u of <span class='warning'>[current_reagent.name]</span>" adminwarn_message += "[current_reagent_transfer]u of <span class='warning'>[current_reagent.name]</span>"
R.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data, chem_temp) R.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data, chem_temp)
src.remove_reagent(current_reagent.id, current_reagent_transfer) src.remove_reagent(current_reagent.id, current_reagent_transfer)
@@ -607,6 +606,7 @@ trans_to_atmos(var/datum/gas_mixture/target, var/amount=1, var/multiplier=1, var
R.color = data["blood_colour"] R.color = data["blood_colour"]
else else
R.data = data R.data = data
R.on_introduced()
update_total() update_total()
my_atom.on_reagent_change() my_atom.on_reagent_change()
@@ -764,6 +764,12 @@ trans_to_atmos(var/datum/gas_mixture/target, var/amount=1, var/multiplier=1, var
stuff += A.id stuff += A.id
return english_list(stuff, "no reagents") return english_list(stuff, "no reagents")
/datum/reagents/proc/get_sportiness()
var/sportiness = 1
for(var/datum/reagent/R in reagent_list)
sportiness *= R.sport
return sportiness
/datum/reagents/proc/remove_all_type(var/reagent_type, var/amount, var/strict = 0, var/safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included. /datum/reagents/proc/remove_all_type(var/reagent_type, var/amount, var/strict = 0, var/safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included.
if(!isnum(amount)) if(!isnum(amount))
return 1 return 1

View File

@@ -176,7 +176,7 @@
return return
//Called after add_reagents creates a new reagent //Called after add_reagents creates a new reagent
/datum/reagent/proc/on_new(var/data) /datum/reagent/proc/on_introduced(var/data)
return return
//Called when two reagents are mixing //Called when two reagents are mixing
@@ -192,6 +192,8 @@
/datum/reagent/proc/on_overdose(var/mob/living/M) /datum/reagent/proc/on_overdose(var/mob/living/M)
M.adjustToxLoss(1) M.adjustToxLoss(1)
/datum/reagent/proc/OnTransfer()
return
/datum/reagent/send_to_past(var/duration) /datum/reagent/send_to_past(var/duration)
var/static/list/resettable_vars = list( var/static/list/resettable_vars = list(
@@ -4277,7 +4279,7 @@
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
if(M.bodytemperature < 310) //310 is the normal bodytemp. 310.055 if(M.bodytemperature < 310) //310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
/datum/reagent/flour /datum/reagent/flour
name = "flour" name = "flour"
id = FLOUR id = FLOUR
@@ -7172,7 +7174,14 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
density = 3.214 density = 3.214
specheatcap = 1.34 specheatcap = 1.34
color = "#E0D3D3" //rgb: 224, 211, 211 color = "#E0D3D3" //rgb: 224, 211, 211
data = list("source" = null)
/datum/reagent/incense/on_introduced(var/data)
..()
if(!src.data["source"]) //src is necessary because of this terrible var name, but consistency!
src.data["source"] = holder.my_atom
/datum/reagent/incense/proc/OnDisperse(var/turf/location)
/datum/reagent/incense/harebells//similar effects as holy water to cultists and vampires /datum/reagent/incense/harebells//similar effects as holy water to cultists and vampires
name = "Holy Incense" name = "Holy Incense"
@@ -7213,7 +7222,7 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
/datum/reagent/incense/moonflowers//Basically mindbreaker /datum/reagent/incense/moonflowers//Basically mindbreaker
name = "Hallucinogenic Incense" name = "Hallucinogenic Incense"
id = INCENSE_MOONFLOWERS id = INCENSE_MOONFLOWERS
description = "This frangrance is so unsettling that it makes you question reality." description = "This fragrance is so unsettling that it makes you question reality."
custom_metabolism = 0.15 custom_metabolism = 0.15
/datum/reagent/incense/moonflowers/on_mob_life(var/mob/living/M) /datum/reagent/incense/moonflowers/on_mob_life(var/mob/living/M)
@@ -7225,7 +7234,7 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
/datum/reagent/incense/novaflowers//Converts itself to hyperzine, but makes you hungry /datum/reagent/incense/novaflowers//Converts itself to hyperzine, but makes you hungry
name = "Hyperactivity Incense" name = "Hyperactivity Incense"
id = INCENSE_NOVAFLOWERS id = INCENSE_NOVAFLOWERS
description = "This frangrance helps you focus and pull into your energy reserves to move quickly." description = "This fragrance helps you focus and pull into your energy reserves to move quickly."
custom_metabolism = 0.15 custom_metabolism = 0.15
/datum/reagent/incense/novaflowers/on_mob_life(var/mob/living/M) /datum/reagent/incense/novaflowers/on_mob_life(var/mob/living/M)
@@ -7234,3 +7243,78 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
if(holder.get_reagent_amount(HYPERZINE) < 2) if(holder.get_reagent_amount(HYPERZINE) < 2)
holder.add_reagent(HYPERZINE, 0.5) holder.add_reagent(HYPERZINE, 0.5)
M.nutrition-- M.nutrition--
/datum/reagent/incense/banana
name = "Banana Incense"
id = INCENSE_BANANA
description = "This fragrance helps you be more clumsy, so you can laugh at yourself."
/datum/reagent/incense/banana/on_mob_life(var/mob/living/M)
if(..())
return 1
if(prob(5))
to_chat(M,"<span class='warning'>[pick("You feel like giggling!", "You feel clumsy!", "You want to honk!")]</span>")
/datum/reagent/incense/cabbage
name = "Leafy Incense"
id = INCENSE_LEAFY
description = "This fragrance smells of fresh greens, delicious to most animals."
/datum/reagent/incense/cabbage/on_mob_life(var/mob/living/M)
if(..())
return 1
if(isanimal(M) || ismonkey(M))
if(istype(M,/mob/living/simple_animal/hostile))
var/mob/living/simple_animal/hostile/H = M
switch(H.stance)
if(HOSTILE_STANCE_ATTACK,HOSTILE_STANCE_ATTACKING)
return
M.start_walk_to(get_turf(data["source"]),1,6)
/datum/reagent/incense/booze
name = "Alcoholic Incense"
id = INCENSE_BOOZE
description = "This fragrance is dense with the odor of ethanol."
/datum/reagent/incense/booze/on_mob_life(var/mob/living/M)
if(..())
return 1
if(M.slurring < 22)
M.slurring += 10
if(M.eye_blurry < 22)
M.eye_blurry += 10
/datum/reagent/incense/vapor
name = "Airy Incense"
id = INCENSE_VAPOR
description = "It burns your nostrils a little. The incense smells... clean."
/datum/reagent/incense/vapor/OnDisperse(var/turf/location)
for(var/turf/simulated/T in view(2,location))
if(T.is_wet())
T.dry(TURF_WET_LUBE)
T.turf_animation('icons/effects/water.dmi',"dry_floor",0,0,TURF_LAYER)
/datum/reagent/incense/dense
name = "Dense Incense"
id = INCENSE_DENSE
description = "This isn't really a fragrance so much as tactical smoke."
custom_metabolism = 0.25
/datum/reagent/incense/dense/OnDisperse(var/turf/location)
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(2, 0, location) //Make 2 drifting clouds of smoke, direction
smoke.start()
/datum/reagent/incense/dense/on_mob_life(var/mob/living/M)
if(..())
return 1
if(prob(5))
M.visible_message("<span class='warning'>[M] [pick("dry heaves!", "coughs!", "splutters!")]</span>")
/datum/reagent/incense/vale
name = "Sporty Incense"
id = INCENSE_CRAVE
description = "This has what you crave. Electrolytes."
sport = 5
custom_metabolism = 0.15

View File

@@ -13,6 +13,7 @@ var/list/special_fruits = list()
var/potency = -1 var/potency = -1
var/hydroflags = 0 var/hydroflags = 0
var/datum/seed/seed var/datum/seed/seed
var/fragrance
icon = 'icons/obj/harvest.dmi' icon = 'icons/obj/harvest.dmi'
New(newloc, newpotency) New(newloc, newpotency)
if(!isnull(newpotency)) if(!isnull(newpotency))
@@ -292,6 +293,7 @@ var/list/special_fruits = list()
potency = 30 potency = 30
filling_color = "#CC6464" filling_color = "#CC6464"
plantname = "poppies" plantname = "poppies"
fragrance = INCENSE_POPPIES
/obj/item/weapon/reagent_containers/food/snacks/grown/harebell /obj/item/weapon/reagent_containers/food/snacks/grown/harebell
name = "harebell" name = "harebell"
@@ -300,6 +302,7 @@ var/list/special_fruits = list()
potency = 1 potency = 1
filling_color = "#D4B2C9" filling_color = "#D4B2C9"
plantname = "harebells" plantname = "harebells"
fragrance = INCENSE_HAREBELLS
/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower /obj/item/weapon/reagent_containers/food/snacks/grown/moonflower
name = "moonflower" name = "moonflower"
@@ -308,6 +311,7 @@ var/list/special_fruits = list()
potency = 25 potency = 25
filling_color = "#E6E6FA" filling_color = "#E6E6FA"
plantname = "moonflowers" plantname = "moonflowers"
fragrance = INCENSE_MOONFLOWERS
/obj/item/weapon/reagent_containers/food/snacks/grown/potato /obj/item/weapon/reagent_containers/food/snacks/grown/potato
name = "potato" name = "potato"
@@ -361,6 +365,7 @@ var/list/special_fruits = list()
potency = 25 potency = 25
filling_color = "#A2B5A1" filling_color = "#A2B5A1"
plantname = "cabbage" plantname = "cabbage"
fragrance = INCENSE_LEAFY
/obj/item/weapon/reagent_containers/food/snacks/grown/berries /obj/item/weapon/reagent_containers/food/snacks/grown/berries
name = "bunch of berries" name = "bunch of berries"
@@ -555,6 +560,7 @@ var/list/special_fruits = list()
filling_color = "#FCF695" filling_color = "#FCF695"
trash = /obj/item/weapon/bananapeel trash = /obj/item/weapon/bananapeel
plantname = "banana" plantname = "banana"
fragrance = INCENSE_BANANA
/obj/item/weapon/reagent_containers/food/snacks/grown/bluespacebanana /obj/item/weapon/reagent_containers/food/snacks/grown/bluespacebanana
name = "bluespace banana" name = "bluespace banana"
@@ -746,6 +752,7 @@ var/list/special_fruits = list()
icon_state = "plumphelmet" icon_state = "plumphelmet"
filling_color = "#F714BE" filling_color = "#F714BE"
plantname = "plumphelmet" plantname = "plumphelmet"
fragrance = INCENSE_BOOZE
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom
name = "walking mushroom" name = "walking mushroom"
@@ -797,6 +804,7 @@ var/list/special_fruits = list()
icon_state = "grassclump" icon_state = "grassclump"
filling_color = "#32CD32" filling_color = "#32CD32"
plantname = "grass" plantname = "grass"
fragrance = INCENSE_DENSE
var/stacktype = /obj/item/stack/tile/grass var/stacktype = /obj/item/stack/tile/grass
var/tile_coefficient = 0.02 // 1/50 var/tile_coefficient = 0.02 // 1/50
@@ -874,6 +882,7 @@ var/list/special_fruits = list()
desc = "A thin organic film bearing seeds, held slightly aloft by internal gasses and a reservoir of chemicals." desc = "A thin organic film bearing seeds, held slightly aloft by internal gasses and a reservoir of chemicals."
icon_state = "vaporsac" icon_state = "vaporsac"
filling_color = "#FFFFFF" filling_color = "#FFFFFF"
fragrance = INCENSE_VAPOR
/obj/item/weapon/reagent_containers/food/snacks/grown/vaporsac/attack(mob/living/M, mob/user, def_zone, eat_override = 0) /obj/item/weapon/reagent_containers/food/snacks/grown/vaporsac/attack(mob/living/M, mob/user, def_zone, eat_override = 0)
pop(user) pop(user)

View File

@@ -450,7 +450,8 @@
var/obj/item/I = mover var/obj/item/I = mover
if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile)) if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile))
return return
if(prob(75)) var/mob/mob = get_mob_by_key(mover.fingerprintslast)
if(prob(75) || (mob && mob.reagents.get_sportiness()>=5))
I.forceMove(src) I.forceMove(src)
for(var/mob/M in viewers(src)) for(var/mob/M in viewers(src))
M.show_message("\the [I] lands in \the [src].", 1) M.show_message("\the [I] lands in \the [src].", 1)
@@ -558,7 +559,7 @@
for(var/mob/living/carbon/human/H in src) for(var/mob/living/carbon/human/H in src)
if(H.is_fat() || H.is_bulky()) if(H.is_fat() || H.is_bulky())
return TRUE return TRUE
// Dislodge players whenever they're no longer fat or the holder is active for some reason. // Dislodge players whenever they're no longer fat or the holder is active for some reason.
/obj/structure/disposalholder/proc/until_skinny() /obj/structure/disposalholder/proc/until_skinny()
spawn while(1) // Checking this is not a priority. Check whenever the server has a moment. spawn while(1) // Checking this is not a priority. Check whenever the server has a moment.

View File

@@ -105,7 +105,7 @@ proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool)
var/clumsy = 0 var/clumsy = 0
if(ishuman(user)) if(ishuman(user))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
clumsy = ((M_CLUMSY in H.mutations) && prob(50)) clumsy = (tool.clumsy_check(H) && prob(50))
var/target_area = user.zone_sel ? user.zone_sel.selecting : get_random_zone_sel() var/target_area = user.zone_sel ? user.zone_sel.selecting : get_random_zone_sel()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB