Cat patially, MK partially.

This commit is contained in:
Fermi
2019-07-19 16:19:42 +01:00
parent d73fabffff
commit 7a0afda173
4 changed files with 61 additions and 18 deletions

View File

@@ -310,6 +310,7 @@
emote_see = list("looks at you eagerly for pets!", "wiggles enthusiastically.")
gold_core_spawnable = NO_SPAWN
var/pseudo_death = FALSE
var/mob/living/carbon/human/origin
/mob/living/simple_animal/pet/cat/custom_cat/death()
if (pseudo_death == TRUE) //secret cat chem

View File

@@ -130,11 +130,11 @@ Creating a chem with a low purity will make you permanently fall in love with so
*/
/datum/reagent/fermi/enthrall
name = "MKUltra"
id = "enthrall"
description = "A forbidden deep red mixture that overwhelms a foreign body with waves of pleasure, intoxicating them into servitude. When taken by the creator, it will enhance the draw of their voice to those affected by it."
color = "#660015" // rgb: , 0, 255
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
name = "Politi-aid"
id = "politi-aid"
description = "A forbidden deep purple mixture that aids the political influence of creator upon the subject. When taken by the creator, it will enhance the power of their words to those affected by it."
color = "#660055"
taste_description = "politics"
overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please.
DoNotSplit = TRUE
metabolization_rate = 0.1//It has to be slow, so there's time for the effect.
@@ -170,6 +170,22 @@ Creating a chem with a low purity will make you permanently fall in love with so
creatorName = data.["creatorName"]
creator = get_mob_by_key(creatorID)
/datum/reagent/fermi/enthrall/mkultra
name = "MKUltra"
id = "enthrall"
description = "A forbidden deep red mixture that overwhelms a foreign body with waves of pleasure, intoxicating them into servitude. When taken by the creator, it will enhance the draw of their voice to those affected by it."
color = "#660015" // rgb: , 0, 255
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
/datum/reagent/fermi/enthrall/mkultra/on_mob_add(mob/living/carbon/M)
if(M.client?.prefs.lewdchem)
..()
/datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M)
if(M.client?.prefs.lewdchem)
..()
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
. = ..()
if(!ishuman(M))//Just to make sure screwy stuff doesn't happen.

View File

@@ -6,12 +6,15 @@
id = "fermi"
taste_description = "affection and love!"
can_synth = FALSE
var/cached_purity = 1
//This should process fermichems to find out how pure they are and what effect to do.
/datum/reagent/fermi/on_mob_add(mob/living/carbon/M, amount)
. = ..()
if(!M)
return
if(cached_purity == 1)
cached_purity = purity
if(purity < 0)
CRASH("Purity below 0 for chem: [id], Please let Fermis Know!")
if (purity == 1 || DoNotSplit == TRUE)
@@ -35,6 +38,8 @@
. = ..()
if(!ishuman(M))
return
if(cached_purity == 1)
cached_purity = purity
if (purity < 0)
CRASH("Purity below 0 for chem: [id], Please let Fermis Know!")
if (purity == 1 || DoNotSplit == TRUE)
@@ -99,9 +104,9 @@
return ..()
var/hatArmor = 0
if(!overdosed)
hatArmor = (purity/10)
hatArmor = (cached_purity/10)
else
hatArmor = - (purity/10)
hatArmor = - (cached_purity/10)
if(hatArmor > 90)
return ..()
var/obj/item/W = M.head
@@ -205,7 +210,7 @@
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
if(isnull(N))
return ..()
N.nanite_volume = -purity//0.5 seems to be the default to me, so it'll neuter them.
N.nanite_volume = -cached_purity//0.5 seems to be the default to me, so it'll neuter them.
..()
/datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C)
@@ -307,15 +312,15 @@
else
holder.remove_reagent("fermiTest", volume)//Avoiding recurrsion
var/location = get_turf(holder.my_atom)
if(purity < 0.34 || purity == 1)
if(cached_purity < 0.34 || cached_purity == 1)
var/datum/effect_system/foam_spread/s = new()
s.set_up(volume*2, location, holder)
s.start()
if((purity < 0.67 && purity >= 0.34)|| purity == 1)
if((cached_purity < 0.67 && cached_purity >= 0.34)|| cached_purity == 1)
var/datum/effect_system/smoke_spread/chem/s = new()
s.set_up(holder, volume*2, location)
s.start()
if(purity >= 0.67)
if(cached_purity >= 0.67)
for (var/datum/reagent/reagent in holder.reagent_list)
if (istype(reagent, /datum/reagent/fermi))
var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.id]
@@ -390,10 +395,11 @@
/datum/reagent/fermi/secretcatchem //Should I hide this from code divers? A secret cit chem?
name = "secretcatchem" //an attempt at hiding it
id = "secretcatchem"
description = "An illegal and hidden chem that turns people into cats. It's said that it's so rare and unstable that having it means you've been blessed."
description = "An illegal and hidden chem that turns people into cats. It's said that it's so rare and unstable that having it means you've been blessed. If used on someone in crit, it will turn them into a cat permanently, until the cat is killed."
taste_description = "hairballs and cream"
color = "#ffc224"
var/catshift = FALSE
var/perma = FALSE
var/mob/living/simple_animal/pet/cat/custom_cat/catto = null
can_synth = FALSE
@@ -402,7 +408,7 @@
/datum/reagent/fermi/secretcatchem/on_mob_add(mob/living/carbon/human/H)
. = ..()
if(purity >= 0.8)//ONLY if purity is high, and given the stuff is random. It's very unlikely to get this to 1. It already requires felind too, so no new functionality there.
if(cached_purity >= 0.9)//ONLY if purity is high, and given the stuff is random. It's very unlikely to get this to 1.
//exception(al) handler:
H.dna.features["ears"] = "Cat"
H.dna.features["mam_ears"] = "Cat"
@@ -419,20 +425,29 @@
H.forceMove(catto)
log_game("FERMICHEM: [H] ckey: [H.key] has been made into a cute catto.")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "cats")
//Just to deal with rascally ghosts
//ADD_TRAIT(catto, TRAIT_NODEATH, "catto")//doesn't work
//catto.health = 1000 //To simulate fake death, while preventing ghosts escaping.
if(H.InCritical())
perma = TRUE
volume = 10
metabolization_rate = 0
H.stat = DEAD
catto.origin = H
/datum/reagent/fermi/secretcatchem/on_mob_life(mob/living/carbon/H)
if(catto.health <= 0) //So the dead can't ghost
if(prob(10))
to_chat(H, "<span class='notice'>You feel your body start to slowly shift back from it's dead form.</span>")
to_chat(catto, "<span class='notice'>You feel your body start to slowly shift back from it's dead form.</span>")
perma = FALSE
metabolization_rate = 1
else if(prob(5))
playsound(get_turf(catto), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
catto.say("lets out a meowrowr!*")
..()
/datum/reagent/fermi/secretcatchem/on_mob_delete(mob/living/carbon/H)
if(perma)
//to_chat(H, "<span class='notice'>You feel your body settle into it's new form. You won't be able to shift back on death anymore.</span>")
return
var/words = "Your body shifts back to normal."
H.forceMove(catto.loc)
catto.mind.transfer_to(H)

View File

@@ -57,9 +57,20 @@
to_chat(C, "<span class='notice'>You feel your lungs reform in your chest.</span>")
holder.remove_reagent(src.id, "10")
..()
/datum/reagent/fermi/yamerol/reaction_mob(var/mob/living/L)
if(istype(L, /mob/living/simple_animal/pet/cat/custom_cat) && cached_purity == 1)
var/mob/living/simple_animal/pet/cat/custom_cat/catto = L
if(catto.origin)
var/mob/living/carbon/human/H = catto.origin
H.stat = CONSCIOUS
log_game("FERMICHEM: [catto] ckey: [catto.key] has returned to normal from Yamerol.")
to_chat(catto, "<span class='notice'>Your body shifts back to normal from the Yamerol.</span>")
H.forceMove(catto.loc)
catto.mind.transfer_to(H)
qdel(L)
/datum/reagent/fermi/yamerol_tox
name = "Yamerol"
id = "yamerol_tox"