mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
More Incense! (#21804)
* More Incense! * Gotta code em all * improvement * updates
This commit is contained in:
@@ -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"
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>")
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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 |
Reference in New Issue
Block a user