Added Hatmium and a few slight fixes.

This commit is contained in:
Fermi
2019-05-12 03:42:23 +01:00
parent ddad7a173d
commit ec2f33ceb5
9 changed files with 120 additions and 19 deletions
+1 -1
View File
@@ -122,4 +122,4 @@
#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun"
#define ORGAN_SLOT_TAIL "tail"
#define ORGAN_SLOT_PENIS "penis"
#define ORGAN_SLOT_BREASTS "breasts"
//#define ORGAN_SLOT_BREASTS "breasts"
+1 -1
View File
@@ -210,7 +210,7 @@
setInsanityEffect(0)
master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE)
sanity_level = 1
update_mood_icon()
//update_mood_icon()
/datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works
if(newval == insanity_effect)
@@ -249,7 +249,7 @@
/obj/item/reagent_containers/pill/penis_enlargement
name = "penis enlargement pill"
list_reagents = list("PEenlager" = 10)
list_reagents = list("PElarger" = 10)
/obj/item/reagent_containers/pill/breast_enlargement
name = "breast enlargement pill"
+1 -1
View File
@@ -798,7 +798,7 @@
var/static/regex/punish_words = regex("bad boy|bad girl|bad pet") ////punish_words
//phase 0
var/static/regex/saymyname_words = regex("say my name|who am i|whoami")
var/static/regex/wakeup_words = regex("revert|awaken|*snap")
var/static/regex/wakeup_words = regex("revert|awaken|snap")
//phase1
var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush")
var/static/regex/antiresist_words = regex("unable to resist|give in")//useful if you think your target is resisting a lot
@@ -190,7 +190,7 @@
if(M.key == enthrallID)
owner.remove_status_effect(src)//This shouldn't happen, but just in case
redirect_component1 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed#
redirect_component2 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_SAY = CALLBACK(src, .proc/owner_say)))) //Do resistance calc if resist is pressed
//redirect_component2 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_SAY = CALLBACK(src, .proc/owner_say)))) //Do resistance calc if resist is pressed
//Might need to add redirect component for listening too.
var/obj/item/organ/brain/B = M.getorganslot(ORGAN_SLOT_BRAIN) //It's their brain!
mental_capacity = 500 - B.get_brain_damage()
@@ -408,8 +408,8 @@
/datum/status_effect/chem/enthrall/on_remove(mob/living/carbon/M)
qdel(redirect_component1.resolve())
redirect_component1 = null
qdel(redirect_component2.resolve())
redirect_component2 = null
//qdel(redirect_component2.resolve())
//redirect_component2 = null
/*
/datum/status_effect/chem/enthrall/mob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
@@ -558,13 +558,16 @@
if (deltaResist>0)//just in case
deltaResist /= phase//later phases require more resistance
/*
/datum/status_effect/chem/enthrall/proc/owner_say(message) //I can only hope this works
var/static/regex/owner_words = regex("[master.real_name]|[master.first_name()]")
var/datum/status_effect/chem/enthrall/E = owner.has_status_effect(/datum/status_effect/chem/enthrall)
var/mob/living/master = E.master
var/static/regex/owner_words = regex("[master.name]|[master.first_name()]")
if(findtext(message, owner_words))
message = replacetext(lowertext(message), lowertext(master.real_name), "[enthrallGender]")
message = replacetext(lowertext(message), lowertext(master.name), "[enthrallGender]")
return message
*/
/*
/datum/status_effect/chem/OwO
id = "OwO"
@@ -75,6 +75,7 @@
//Rediculous sizes remove hands.
//Should I turn someone with meter wide... assets into a blob?
//this is far too lewd wah
/obj/item/organ/genital/breasts/update_size()//wah
//var/mob/living/carbon/human/o = owner
//var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts")
@@ -120,6 +121,7 @@
if (breast_values[size] > breast_values[prev_size])
to_chat(owner, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.</b></span>")
var/mob/living/carbon/human/H = owner
message_admins("Cached: [cached_size], prev: [prev_size], size: [size]")
H.Force_update_genitals()
else if (breast_values[size] < breast_values[prev_size])
to_chat(owner, "<span class='warning'>Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size)]-cup.</b></span>")
@@ -268,8 +268,8 @@
dna.species.handle_genitals(src)
/mob/living/carbon/human/proc/Force_update_genitals()
dna.species.handle_genitals(src)
//dna.species.handle_breasts(src)
//dna.species.handle_genitals(src)
dna.species.handle_breasts(src)
/datum/species/proc/handle_genitals(mob/living/carbon/human/H)
@@ -350,7 +350,7 @@
for(var/L in relevant_layers)
H.apply_overlay(L)
/*
/datum/species/proc/handle_breasts(mob/living/carbon/human/H)
//check for breasts first!
@@ -414,4 +414,4 @@
for(var/L in relevant_layers)
H.apply_overlay(L)
*/
H.update_icons()
@@ -6,11 +6,18 @@
con = 'icons/obj/clothing/hats.dmi'
icon_state = "top_hat"
desc = "A sythesized hat, you can't seem to take it off. And tips their hat."
armor = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1)
/obj/item/clothing/head/hattip/attack_hand(mob/user)
if(iscarbon(user))
var/mob/living/carbon/C = user
if(src == C.head)
M.emote("me",1,"tips their hat.",TRUE)
C.emote("me",1,"tips their hat.",TRUE)
return
else
user.emote("me",1,"admires such a spiffy hat.",TRUE)
return ..()
/obj/item/clothing/head/hattip/speechModification(message)
message += ".\" And tips their hat. \"Yeehaw"
return message
@@ -726,7 +726,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(100)
to_chat(M, "<span class='notice'>You feel a substantial part of your soul flake off into the ethereal world, rendering yourself unclonable.</b></span>")
M.alpha = M.alpha - 1
M.add_trait(TRAIT_NOCLONE)
M.add_trait(TRAIT_NOCLONE) //So you can't scan yourself, then die, to metacomm. You can only use your memories if you come back as something else.
if(80)
to_chat(M, "<span class='notice'>You feel a thrill shoot through your body as what's left of your mind contemplates the forthcoming oblivion.</b></span>")
M.alpha = M.alpha - 1
@@ -735,16 +735,22 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.alpha = M.alpha - 1
if(0 to 30)
to_chat(M, "<span class='warning'>Your body disperses from existence, as you become one with the universe.</b></span>")
to_chat(M, "<span class='userdanger'>As your body disappears, your consciousness doesn't. Should you find a way back into the mortal coil, your memories of the afterlife remain with you. (At the cost of staying in character while dead.)</span>")//Legalised IC OOK? I have a suspicion this won't make it past the review. At least it'll be presented as a neat idea! If this is unacceptable how about the player can retain living memories across lives if they die in this way only.
M.visible_message("[M] suddenly disappears, their body evaporating from existence, freeing [M] from their mortal coil.")
to_chat(M, "<span class='userdanger'>As your body disappears, your consciousness doesn't. Should you find a way back into the mortal coil, your memories of your previous life and afterlife remain with you. (At the cost of staying in character while dead. Failure to do this may get you banned from this chem. You are still obligated to follow your directives if you play a midround antag)</span>")//Legalised IC OOK? I have a suspicion this won't make it past the review. At least it'll be presented as a neat idea! If this is unacceptable how about the player can retain living memories across lives if they die in this way only.
M.visible_message("[M.name] suddenly disappears, their body evaporating from existence, freeing [M.nane] from their mortal coil.")
deadchat_broadcast("<span class='userdanger'>[M.name] has become one with the universe, meaning that their IC conciousness is continuous throughout death. If they find a way back to life, they are allowed to remember what was said in deadchat and their previous life. Be careful what you say. If they don't act IC while dead, bwoink the FUCK otta them.</span>")
message_admins("[M.name] has become one with the universe, and have continuous memories thoughout death should they find a way to come back to life (such as an inteligence potion, midround antag). They MUST stay within characer while dead.")
qdel(M) //Approx 60minutes till death from initial addiction
..()
////////////////////////////////////////
// MKULTA //
////////////////////////////////////////
/datum/reagent/fermi/enthrall
name = "MKUltra"
id = "enthral"
description = "Need a description."
color = "#A080H4" // rgb: , 0, 255
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 = "#2C051A" // rgb: , 0, 255
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
//metabolization_rate = 0.5
overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please.
@@ -808,6 +814,39 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
///////////////////////////////////////////////////////////////////////////////////////////////////
/datum/reagent/fermi/hatmium
name = "Hat growth serium"
id = "hatmium"
description = "A strange substance that draws in a hat from the hat dimention, "
color = "#A080H4" // rgb: , 0, 255
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
//metabolization_rate = 0.5
overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please.
var/obj/item/clothing/head/hat
//addiction_threshold = 30
//addiction_stage1_end = 9999//Should never end.
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
//var/mob/living/carbon/human/o = M
var/items = M.get_contents()
for(var/obj/item/W in items)
if(W == M.head)
M.dropItemToGround(W, TRUE)
hat = new var/obj/item/clothing/head/hattip
equip_to_slot_if_possible(hat, SLOT_HEAD, 1, 1)
/datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M)
//hat.armor = list("melee" = (1+(current_cycle/20)), "bullet" = (1+(current_cycle/20)), "laser" = (1+(current_cycle/20)), "energy" = (1+(current_cycle/20)), "bomb" = (1+(current_cycle/20)), "bio" = (1+(current_cycle/20)), "rad" = (1+(current_cycle/20)), "fire" = (1+(current_cycle/20)), "acid" = (1+(current_cycle/20)))
if(!overdosed)
for var/i in hat.armor
hat.armor[i] = (1+(current_cycle/10))
/datum/reagent/fermi/enthrall/overdose_process(mob/living/carbon/M)//To prevent people in cyro going nuts
for var/i in hat.armor
hat.armor[i] = (1/(current_cycle*10))
///////////////////////////////////////////////////////////////////////////////////////////////
/datum/reagent/fermi/furranium
name = "Furranium"
id = "furranium"
@@ -851,6 +890,56 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
to_chat(M, "You notice [pick(seen)]'s bulge [pick("OwO!", "uwu!")]")
..()
///////////////////////////////////////////////////////////////////////////////////////////////
/datum/reagent/fermi/secretcatchem //Should I hide this from code divers? A secret cit chem?
name = "Catgirli[pick("a","u","e","y","")]m [pick("apex", "prime", "meow")]" //an attempt at hiding it
id = "secretcatchem"
description = "An illegal and hidden chem that turns people into catgirls. It's said you see the light if you take too much of it."
color = "#A0B0E4" // rgb: , 0, 255
taste_description = "hairballs and cream"
overdose_threshold = 10
/datum/reagent/fermi/Catgirlium/on_mob_add(mob/living/carbon/human/H)
var/current_species = H.dna.species.type
var/datum/species/mutation = race
if(mutation && mutation != current_species)
to_chat(H, "<span class='warning'><b>You crumple in agony as your flesh wildly morphs into new forms!</b></span>")
H.visible_message("<b>[H]</b> falls to the ground and screams as [H.p_their()] skin bubbles and froths!")
H.Knockdown(60)
H.set_species(mutation)
else
to_chat(H, "<span class='danger'>The pain vanishes suddenly. You feel no different.</span>")
/datum/reagent/fermi/Catgirlium/on_mob_life(mob/living/carbon/M)
if(prob(10))
playsound(get_turf(M), 'modular_citadel/sound/voice/nya.ogg', 50, 1, -1)
H.emote("me","lets out a nya!")
if(prob(10))
playsound(get_turf(M), 'sound/effects/meow1.ogg', 50, 1, -1)
H.emote("me","lets out a mewl!")
if(prob(10))
playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
H.emote("me","lets out a meowrowr!")
/datum/reagent/fermi/Catgirlium/overdose_start(mob/living/carbon/human/H) //I couldn't resist - should I hide this somewhere else?
to_chat(H, "<span class='notice'><b>You suddenly see the light and realise that everyone will be better off, and much happier, if they were only a cat girl.</b></span>")
objective = "Aid in the production of more chemicals and turn everyone on the station into catgirls. Avoid any and all attempts at renoucing your newfound catgirl form for this is your true form now."
if (owner.mind.assigned_role in GLOB.antagonists)
objective += "Complete your objectives in tandem with this new objective. If you are tasked with murdering someone turning someone into a catgirl is now an alternative to you."
brainwash(H, objective)
/*
/proc/secretcatchem(mob/living/carbon/C) //Explosion turns you into a cat. Meow.
C.unequip_everything()
//var/cat = new /mob/living/simple_animal/pet/cat(C.loc)
var/mob/living/simple_animal/pet/cat = new(get_turf(C.loc))
C.mind.transfer_to(cat)
cat.name = C.name
qdel(C)
*/
/*
/mob/living/simple_animal/hostile/retaliate/ghost
incorporeal_move = 1