From 39ede45b31725a9426bbc780a77209a07f346301 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sat, 10 Jan 2015 21:51:24 -0800 Subject: [PATCH 01/10] Added 2 new powers and 9 new disabilities! --- code/__DEFINES/genetics.dm | 10 +- code/datums/goon_mutations_disabilities.dm | 75 ++++++++++++ code/datums/goon_mutations_powers.dm | 35 ++++++ .../objects/items/weapons/dna_injector.dm | 111 +++++++++++++++++- code/modules/mob/living/carbon/human/say.dm | 111 +++++++++++++++++- code/modules/mob/mob_defines.dm | 1 + code/modules/mob/mob_movement.dm | 2 + interface/stylesheet.dm | 2 + tgstation.dme | 2 + 9 files changed, 345 insertions(+), 4 deletions(-) create mode 100644 code/datums/goon_mutations_disabilities.dm create mode 100644 code/datums/goon_mutations_powers.dm diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 938a30a2107..b264c4a045e 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -15,7 +15,15 @@ #define RACEMUT "Monkified" #define BADSIGHT "Near Sightness" #define LASEREYES "Laser Eyes" - +#define STEALTH "Cloak Of Darkness" +#define CHAMELEON "Chameleon" +#define WACKY "Wacky" +#define MUTE "Mute" +#define SMILE "Smile" +#define UNINTELLIGABLE "Unintelligable" +#define SWEDISH "Swedish" +#define CHAV "Chav" +#define ELVIS "Elvis" // String identifiers for associative list lookup diff --git a/code/datums/goon_mutations_disabilities.dm b/code/datums/goon_mutations_disabilities.dm new file mode 100644 index 00000000000..31b6b551eb1 --- /dev/null +++ b/code/datums/goon_mutations_disabilities.dm @@ -0,0 +1,75 @@ +/datum/mutation/human/wacky + name = "Wacky" + quality = MINOR_NEGATIVE + text_indication = "You feel an off sensation in your voicebox." + + +/datum/mutation/human/wacky/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "The off sensation passes." + +/datum/mutation/human/mute + name = "Mute" + quality = NEGATIVE + text_indication = "You feel unable to express yourself at all." + +/datum/mutation/human/mute/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "You feel able to speak freely again." + +/datum/mutation/human/smile + name = "Smile" + quality = MINOR_NEGATIVE + text_indication = "You feel so happy. Nothing can be wrong with anything. :)" + + +/datum/mutation/human/smile/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "Everything is terrible again. :(" + +/datum/mutation/human/unintelligable + name = "Unintelligable" + quality = NEGATIVE + text_indication = "You can't seem to form any coherent thoughts!" + +/datum/mutation/human/unintelligable/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "Your mind feels more clear." + +/datum/mutation/human/swedish + name = "Swedish" + quality = MINOR_NEGATIVE + text_indication = "You feel Swedish, however that works." + +/datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "The feeling of Swedishness passes." + +/datum/mutation/human/chav + name = "Chav" + quality = MINOR_NEGATIVE + text_indication = "Ye feel like a reet prat like, innit?" + +/datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "You no longer feel like being rude and sassy." + +/datum/mutation/human/elvis + name = "Elvis" + quality = MINOR_NEGATIVE + text_indication = "You feel pretty good, honeydoll." + +/datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner << "You feel a little less conversation would be great." + +/datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) + switch(pick(1,2)) + if(1) + if(prob(15)) + var/list/dancetypes = list("swinging", "fancy", "stylish", "20'th century", "jivin'", "rock and roller", "cool", "salacious", "bashing", "smashing") + var/dancemoves = pick(dancetypes) + owner.visible_message("[owner] busts out some [dancemoves] moves!") + if(2) + if(prob(15)) + owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") diff --git a/code/datums/goon_mutations_powers.dm b/code/datums/goon_mutations_powers.dm new file mode 100644 index 00000000000..4d9fcb82bf1 --- /dev/null +++ b/code/datums/goon_mutations_powers.dm @@ -0,0 +1,35 @@ +/datum/mutation/human/stealth + name = "Cloak Of Darkness" + quality = POSITIVE + get_chance = 10 + lowest_value = 256 * 14 + text_indication = "You begin to fade into the shadows." + +/datum/mutation/human/stealth/on_life(mob/living/carbon/human/owner) + var/turf/simulated/T = get_turf(owner) + if(!istype(T)) + return + if(T.lighting_lumcount <= 2) + owner.alpha -= 25 + else + owner.alpha = round(255 * 0.80) + +/datum/mutation/human/stealth/on_losing(mob/living/carbon/human/owner) + ..() + owner.alpha = 255 + owner << "You become fully visible." + +/datum/mutation/human/chameleon + name = "Chameleon" + text_indication = "You feel one with your surroundings." + +/datum/mutation/human/stealth/chameleon/on_life(mob/living/carbon/human/owner) + if((world.time - owner.last_movement) >= 30 && !owner.stat && owner.canmove && !owner.restrained()) + owner.alpha -= 25 + else + owner.alpha = round(255 * 0.80) + +/datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) + ..() + owner.alpha = 255 + owner << "You feel oddly exposed." \ No newline at end of file diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 1184fa296db..bc81a06b5ce 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -249,4 +249,113 @@ desc = "Will make you...less hairy." New() ..() - remove_mutations.Add(mutations_list[RACEMUT]) \ No newline at end of file + remove_mutations.Add(mutations_list[RACEMUT]) + +/obj/item/weapon/dnainjector/antistealth + name = "\improper DNA injector (Anti-Cloak Of Darkness)" + New() + ..() + remove_mutations.Add(mutations_list[STEALTH]) + +/obj/item/weapon/dnainjector/stealthmut + name = "\improper DNA injector (Cloak of Darkness)" + desc = "Enables the subject to bend low levels of light around themselves, creating a cloaking effect." + New() + ..() + add_mutations.Add(mutations_list[STEALTH]) + +/obj/item/weapon/dnainjector/antichameleon + name = "\improper DNA injector (Anti-Chameleon)" + New() + ..() + remove_mutations.Add(mutations_list[CHAMELEON]) + +/obj/item/weapon/dnainjector/chameleonmut + name = "\improper DNA injector (Chameleon)" + New() + ..() + add_mutations.Add(mutations_list[CHAMELEON]) + +/obj/item/weapon/dnainjector/antiwacky + name = "\improper DNA injector (Anti-Wacky)" + New() + ..() + remove_mutations.Add(mutations_list[WACKY]) + +/obj/item/weapon/dnainjector/wackymut + name = "\improper DNA injector (Wacky)" + New() + ..() + add_mutations.Add(mutations_list[WACKY]) + +/obj/item/weapon/dnainjector/antimute + name = "\improper DNA injector (Anti-Mute)" + New() + ..() + remove_mutations.Add(mutations_list[MUTE]) + +/obj/item/weapon/dnainjector/mutemut + name = "\improper DNA injector (Mute)" + New() + ..() + add_mutations.Add(mutations_list[MUTE]) + +/obj/item/weapon/dnainjector/antismile + name = "\improper DNA injector (Anti-Smile)" + New() + ..() + remove_mutations.Add(mutations_list[SMILE]) + +/obj/item/weapon/dnainjector/smilemut + name = "\improper DNA injector (Smile)" + New() + ..() + add_mutations.Add(mutations_list[SMILE]) + +/obj/item/weapon/dnainjector/unintelligablemut + name = "\improper DNA injector (Unintelligable)" + New() + ..() + add_mutations.Add(mutations_list[UNINTELLIGABLE]) + +/obj/item/weapon/dnainjector/antiunintelligable + name = "\improper DNA injector (Anti-Unintelligable)" + New() + ..() + remove_mutations.Add(mutations_list[UNINTELLIGABLE]) + +/obj/item/weapon/dnainjector/swedishmut + name = "\improper DNA injector (Swedish)" + New() + ..() + add_mutations.Add(mutations_list[SWEDISH]) + +/obj/item/weapon/dnainjector/antiswedish + name = "\improper DNA injector (Anti-Swedish)" + New() + ..() + remove_mutations.Add(mutations_list[SWEDISH]) + +/obj/item/weapon/dnainjector/chavmut + name = "\improper DNA injector (Chav)" + New() + ..() + add_mutations.Add(mutations_list[CHAV]) + +/obj/item/weapon/dnainjector/antichav + name = "\improper DNA injector (Anti-Chav)" + New() + ..() + remove_mutations.Add(mutations_list[CHAV]) + +/obj/item/weapon/dnainjector/elvismut + name = "\improper DNA injector (Elvis)" + New() + ..() + add_mutations.Add(mutations_list[ELVIS]) + +/obj/item/weapon/dnainjector/antielvis + name = "\improper DNA injector (Anti-Elvis)" + New() + ..() + remove_mutations.Add(mutations_list[ELVIS]) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 3da77b6b76f..5b2ce4bcee4 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -21,10 +21,116 @@ /mob/living/carbon/human/treat_message(message) if(dna) message = dna.species.handle_speech(message,src) + if (dna.check_mutation(UNINTELLIGABLE)) + var/prefix=copytext(message,1,2) + if(prefix == ";") + message = copytext(message,2) + else if(prefix in list(":","#")) + prefix += copytext(message,2,3) + message = copytext(message,3) + else + prefix="" + var/list/words = text2list(message," ") + var/list/rearranged = list() + for(var/i=1;i<=words.len;i++) + var/cword = pick(words) + words.Remove(cword) + var/suffix = copytext(cword,length(cword)-1,length(cword)) + while(length(cword)>0 && suffix in list(".",",",";","!",":","?")) + cword = copytext(cword,1 ,length(cword)-1) + suffix = copytext(cword,length(cword)-1,length(cword) ) + if(length(cword)) + rearranged += cword + return "[prefix][uppertext(list2text(rearranged," "))]!!" + if (dna.check_mutation(SWEDISH)) + message = replacetext(message,"w","v") + if(prob(30)) + message += " Bork[pick("",", bork",", bork, bork")]!" + if (dna.check_mutation(ELVIS)) + message = replacetext(message,"im not","I ain't") + message = replacetext(message,"i'm not","I aint") + message = replacetext(message," girl ",pick(" honey "," baby "," baby doll ")) + message = replacetext(message," man ",pick(" son "," buddy "," brother ", " pal ", " friendo ")) + message = replacetext(message,"out of","outta") + message = replacetext(message,"thank you","thank you, thank you very much") + message = replacetext(message,"what are you","whatcha") + message = replacetext(message,"yes",pick("sure", "yea")) + message = replacetext(message,"faggot","square") + message = replacetext(message,"muh valids","getting my kicks") + if (dna.check_mutation(CHAV)) + message = replacetext(message,"dick","prat") + message = replacetext(message,"comdom","knob'ead") + message = replacetext(message,"looking at","gawpin' at") + message = replacetext(message,"great","bangin'") + message = replacetext(message,"man","mate") + message = replacetext(message,"friend",pick("mate","bruv","bledrin")) + message = replacetext(message,"what","wot") + message = replacetext(message,"drink","wet") + message = replacetext(message,"get","giz") + message = replacetext(message,"what","wot") + message = replacetext(message,"no thanks","wuddent fukken do one") + message = replacetext(message,"i don't know","wot mate") + message = replacetext(message,"no","naw") + message = replacetext(message,"robust","chin") + message = replacetext(message," hi ","how what how") + message = replacetext(message,"hello","sup bruv") + message = replacetext(message,"kill","bang") + message = replacetext(message,"murder","bang") + message = replacetext(message,"windows","windies") + message = replacetext(message,"window","windy") + message = replacetext(message,"break","do") + message = replacetext(message,"your","yer") + message = replacetext(message,"security","coppers") + if (dna.check_mutation(SMILE)) + //Time for a friendly game of SS13 + message = replacetext(message,"stupid","smart") + message = replacetext(message,"retard","genius") + message = replacetext(message,"unrobust","robust") + message = replacetext(message,"dumb","smart") + message = replacetext(message,"awful","great") + message = replacetext(message,"gay",pick("nice","ok","alright")) + message = replacetext(message,"horrible","fun") + message = replacetext(message,"terrible","terribly fun") + message = replacetext(message,"terrifying","wonderful") + message = replacetext(message,"gross","cool") + message = replacetext(message,"disgusting","amazing") + message = replacetext(message,"loser","winner") + message = replacetext(message,"useless","useful") + message = replacetext(message,"oh god","cheese and crackers") + message = replacetext(message,"jesus","gee wiz") + message = replacetext(message,"weak","strong") + message = replacetext(message,"kill","hug") + message = replacetext(message,"murder","tease") + message = replacetext(message,"ugly","beautiful") + message = replacetext(message,"douchbag","nice guy") + message = replacetext(message,"whore","lady") + message = replacetext(message,"nerd","smart guy") + message = replacetext(message,"moron","fun person") + message = replacetext(message,"IT'S LOOSE","EVERYTHING IS FINE") + message = replacetext(message,"rape","hug fight") + message = replacetext(message,"idiot","genius") + message = replacetext(message,"fat","thin") + message = replacetext(message,"beer","water with ice") + message = replacetext(message,"drink","water") + message = replacetext(message,"feminist","empowered woman") + message = replacetext(message,"i hate you","you're mean") + message = replacetext(message,"nigger","african american") + message = replacetext(message,"jew","jewish") + message = replacetext(message,"shit","shiz") + message = replacetext(message,"crap","poo") + message = replacetext(message,"slut","tease") + message = replacetext(message,"ass","butt") + message = replacetext(message,"damn","dang") + message = replacetext(message,"fuck","") + message = replacetext(message,"penis","privates") + message = replacetext(message,"cunt","privates") + message = replacetext(message,"dick","jerk") + message = replacetext(message,"vagina","privates") if (dna.check_mutation(HULK)) message = "[uppertext(replacetext(message, ".", "!"))]!!" //because I don't know how to code properly in getting vars from other files -Bro - + if (dna.check_mutation(MUTE)) + message = "" if(viruses.len) for(var/datum/disease/pierrot_throat/D in viruses) var/list/temp_message = text2list(message, " ") //List each word in the message @@ -38,7 +144,8 @@ temp_message[H] = "HONK" pick_list -= H //Make sure that you dont HONK the same word twice message = list2text(temp_message, " ") - + if (dna.check_mutation(WACKY)) + message = "[message]" message = ..(message) return message diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 815dd381e49..02b97d0590a 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -163,3 +163,4 @@ var/obj/control_object //Used by admins to possess objects. All mobs should have this var var/turf/listed_turf = null //the current turf being examined in the stat panel + var/last_movement = -100 // Last world.time the mob actually moved of its own accord. \ No newline at end of file diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0c26dc9a84b..f9192fc52eb 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -194,8 +194,10 @@ if(mob.confused && IsEven(world.time)) step(mob, pick(cardinal)) + mob.last_movement=world.time else . = ..() + mob.last_movement=world.time moving = 0 if(mob && .) diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index f9153693e70..64322d64496 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -67,6 +67,8 @@ h1.alert, h2.alert {color: #000000;} .interface {color: #330033;} +.sans {font-family: "Comic Sans MS", cursive, sans-serif;} + BIG IMG.icon {width: 32px; height: 32px;} "} diff --git a/tgstation.dme b/tgstation.dme index 611fe5f2ff5..b241cc1f29f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -148,6 +148,8 @@ #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" #include "code\datums\gas_mixture.dm" +#include "code\datums\goon_mutations_disabilities.dm" +#include "code\datums\goon_mutations_powers.dm" #include "code\datums\hud.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" From 9e2fc2b8ed2b233ce3f9c50bb09348b2eba73757 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sat, 10 Jan 2015 22:00:24 -0800 Subject: [PATCH 02/10] Increases max blocks to 23 for the new powers. --- code/__DEFINES/genetics.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index b264c4a045e..f9476e00330 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -61,7 +61,7 @@ #define DNA_FACIAL_HAIR_STYLE_BLOCK 6 #define DNA_HAIR_STYLE_BLOCK 7 -#define DNA_STRUC_ENZYMES_BLOCKS 14 +#define DNA_STRUC_ENZYMES_BLOCKS 23 #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff From b70fde1ed2382ba9f92b2edbb6567cfb2e19e2b3 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sat, 10 Jan 2015 23:42:31 -0800 Subject: [PATCH 03/10] Fixes and Tweaks, adds mutations_say_mods() and say_mod() for mutations --- code/__DEFINES/genetics.dm | 2 +- code/datums/goon_mutations_disabilities.dm | 154 +++++++++++++++--- code/datums/goon_mutations_powers.dm | 8 +- code/datums/mutations.dm | 11 ++ code/game/dna.dm | 8 +- .../objects/items/weapons/dna_injector.dm | 4 +- code/modules/mob/living/carbon/human/say.dm | 112 +------------ code/modules/mob/mob_defines.dm | 2 +- code/modules/mob/mob_movement.dm | 3 +- 9 files changed, 160 insertions(+), 144 deletions(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index f9476e00330..1e40a9ae4b5 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -18,7 +18,7 @@ #define STEALTH "Cloak Of Darkness" #define CHAMELEON "Chameleon" #define WACKY "Wacky" -#define MUTE "Mute" +#define MUT_MUTE "Mute" #define SMILE "Smile" #define UNINTELLIGABLE "Unintelligable" #define SWEDISH "Swedish" diff --git a/code/datums/goon_mutations_disabilities.dm b/code/datums/goon_mutations_disabilities.dm index 31b6b551eb1..cb32cde30a3 100644 --- a/code/datums/goon_mutations_disabilities.dm +++ b/code/datums/goon_mutations_disabilities.dm @@ -2,66 +2,163 @@ name = "Wacky" quality = MINOR_NEGATIVE text_indication = "You feel an off sensation in your voicebox." + lose_indication = "The off sensation passes." - -/datum/mutation/human/wacky/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "The off sensation passes." +/datum/mutation/human/wacky/say_mod(var/message) + if(message) + message = "[message]" + return message /datum/mutation/human/mute name = "Mute" quality = NEGATIVE text_indication = "You feel unable to express yourself at all." + lose_indication = "You feel able to speak freely again." + +/datum/mutation/human/mute/on_acquiring(mob/living/carbon/human/owner) + if(..()) return + owner.disabilities |= MUTE /datum/mutation/human/mute/on_losing(mob/living/carbon/human/owner) if(..()) return - owner << "You feel able to speak freely again." + owner.disabilities &= ~MUTE /datum/mutation/human/smile name = "Smile" quality = MINOR_NEGATIVE text_indication = "You feel so happy. Nothing can be wrong with anything. :)" + lose_indication = "Everything is terrible again. :(" - -/datum/mutation/human/smile/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "Everything is terrible again. :(" +/datum/mutation/human/smile/say_mod(var/message) + if(message) + //Time for a friendly game of SS13 + message = replacetext(message,"stupid","smart") + message = replacetext(message,"retard","genius") + message = replacetext(message,"unrobust","robust") + message = replacetext(message,"dumb","smart") + message = replacetext(message,"awful","great") + message = replacetext(message,"gay",pick("nice","ok","alright")) + message = replacetext(message,"horrible","fun") + message = replacetext(message,"terrible","terribly fun") + message = replacetext(message,"terrifying","wonderful") + message = replacetext(message,"gross","cool") + message = replacetext(message,"disgusting","amazing") + message = replacetext(message,"loser","winner") + message = replacetext(message,"useless","useful") + message = replacetext(message,"oh god","cheese and crackers") + message = replacetext(message,"jesus","gee wiz") + message = replacetext(message,"weak","strong") + message = replacetext(message,"kill","hug") + message = replacetext(message,"murder","tease") + message = replacetext(message,"ugly","beautiful") + message = replacetext(message,"douchbag","nice guy") + message = replacetext(message,"whore","lady") + message = replacetext(message,"nerd","smart guy") + message = replacetext(message,"moron","fun person") + message = replacetext(message,"IT'S LOOSE","EVERYTHING IS FINE") + message = replacetext(message,"sex","hug fight") + message = replacetext(message,"idiot","genius") + message = replacetext(message,"fat","thin") + message = replacetext(message,"beer","water with ice") + message = replacetext(message,"drink","water") + message = replacetext(message,"feminist","empowered woman") + message = replacetext(message,"i hate you","you're mean") + message = replacetext(message,"nigger","african american") + message = replacetext(message,"jew","jewish") + message = replacetext(message,"shit","shiz") + message = replacetext(message,"crap","poo") + message = replacetext(message,"slut","tease") + message = replacetext(message,"ass","butt") + message = replacetext(message,"damn","dang") + message = replacetext(message,"fuck","") + message = replacetext(message,"penis","privates") + message = replacetext(message,"cunt","privates") + message = replacetext(message,"dick","jerk") + message = replacetext(message,"vagina","privates") + return message /datum/mutation/human/unintelligable name = "Unintelligable" quality = NEGATIVE text_indication = "You can't seem to form any coherent thoughts!" + lose_indication = "Your mind feels more clear." -/datum/mutation/human/unintelligable/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "Your mind feels more clear." +/datum/mutation/human/unintelligable/say_mod(var/message) + if(message) + var/prefix=copytext(message,1,2) + if(prefix == ";") + message = copytext(message,2) + else if(prefix in list(":","#")) + prefix += copytext(message,2,3) + message = copytext(message,3) + else + prefix="" + + var/list/words = text2list(message," ") + var/list/rearranged = list() + for(var/i=1;i<=words.len;i++) + var/cword = pick(words) + words.Remove(cword) + var/suffix = copytext(cword,length(cword)-1,length(cword)) + while(length(cword)>0 && suffix in list(".",",",";","!",":","?")) + cword = copytext(cword,1 ,length(cword)-1) + suffix = copytext(cword,length(cword)-1,length(cword) ) + if(length(cword)) + rearranged += cword + message = "[prefix][uppertext(list2text(rearranged," "))]!!" + return message /datum/mutation/human/swedish name = "Swedish" quality = MINOR_NEGATIVE text_indication = "You feel Swedish, however that works." + lose_indication = "The feeling of Swedishness passes." -/datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "The feeling of Swedishness passes." +/datum/mutation/human/swedish/say_mod(var/message) + if(message) + message = replacetext(message,"w","v") + if(prob(30)) + message += " Bork[pick("",", bork",", bork, bork")]!" + return message /datum/mutation/human/chav name = "Chav" quality = MINOR_NEGATIVE text_indication = "Ye feel like a reet prat like, innit?" + lose_indication = "You no longer feel like being rude and sassy." -/datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "You no longer feel like being rude and sassy." +/datum/mutation/human/chav/say_mod(var/message) + if(message) + message = replacetext(message,"dick","prat") + message = replacetext(message,"comdom","knob'ead") + message = replacetext(message,"looking at","gawpin' at") + message = replacetext(message,"great","bangin'") + message = replacetext(message,"man","mate") + message = replacetext(message,"friend",pick("mate","bruv","bledrin")) + message = replacetext(message,"what","wot") + message = replacetext(message,"drink","wet") + message = replacetext(message,"get","giz") + message = replacetext(message,"what","wot") + message = replacetext(message,"no thanks","wuddent fukken do one") + message = replacetext(message,"i don't know","wot mate") + message = replacetext(message,"no","naw") + message = replacetext(message,"robust","chin") + message = replacetext(message," hi ","how what how") + message = replacetext(message,"hello","sup bruv") + message = replacetext(message,"kill","bang") + message = replacetext(message,"murder","bang") + message = replacetext(message,"windows","windies") + message = replacetext(message,"window","windy") + message = replacetext(message,"break","do") + message = replacetext(message,"your","yer") + message = replacetext(message,"security","coppers") + return message /datum/mutation/human/elvis name = "Elvis" quality = MINOR_NEGATIVE text_indication = "You feel pretty good, honeydoll." - -/datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) - if(..()) return - owner << "You feel a little less conversation would be great." + lose_indication = "You feel a little less conversation would be great." /datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) switch(pick(1,2)) @@ -73,3 +170,16 @@ if(2) if(prob(15)) owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") + +/datum/mutation/human/elvis/say_mod(var/message) + if(message) + message = replacetext(message,"i'm not","I aint") + message = replacetext(message,"girl",pick("honey","baby","baby doll")) + message = replacetext(message,"man",pick("son","buddy","brother", "pal", "friendo")) + message = replacetext(message,"out of","outta") + message = replacetext(message,"thank you","thank you, thank you very much") + message = replacetext(message,"what are you","whatcha") + message = replacetext(message,"yes",pick("sure", "yea")) + message = replacetext(message,"faggot","square") + message = replacetext(message,"muh valids","getting my kicks") + return message \ No newline at end of file diff --git a/code/datums/goon_mutations_powers.dm b/code/datums/goon_mutations_powers.dm index 4d9fcb82bf1..3e2c4ee5397 100644 --- a/code/datums/goon_mutations_powers.dm +++ b/code/datums/goon_mutations_powers.dm @@ -4,6 +4,7 @@ get_chance = 10 lowest_value = 256 * 14 text_indication = "You begin to fade into the shadows." + lose_indication = "You become fully visible." /datum/mutation/human/stealth/on_life(mob/living/carbon/human/owner) var/turf/simulated/T = get_turf(owner) @@ -17,13 +18,13 @@ /datum/mutation/human/stealth/on_losing(mob/living/carbon/human/owner) ..() owner.alpha = 255 - owner << "You become fully visible." /datum/mutation/human/chameleon name = "Chameleon" text_indication = "You feel one with your surroundings." + lose_indication = "You feel oddly exposed." -/datum/mutation/human/stealth/chameleon/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/chameleon/on_life(mob/living/carbon/human/owner) if((world.time - owner.last_movement) >= 30 && !owner.stat && owner.canmove && !owner.restrained()) owner.alpha -= 25 else @@ -31,5 +32,4 @@ /datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) ..() - owner.alpha = 255 - owner << "You feel oddly exposed." \ No newline at end of file + owner.alpha = 255 \ No newline at end of file diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 81ba278544f..7899c010703 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -15,6 +15,7 @@ var/get_chance = 100 var/lowest_value = 256 * 8 var/text_indication = "" + var/lose_indication = "" var/list/visual_indicators = list() /datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) @@ -74,9 +75,14 @@ /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) if(owner.dna.mutations.Remove(src)) lose_indication(owner) + owner << lose_indication return 0 return 1 +/datum/mutation/human/proc/say_mod(var/message) + if(message) + return message + /datum/mutation/human/hulk name = "Hulk" @@ -113,6 +119,11 @@ ..() owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH +/datum/mutation/human/hulk/say_mod(var/message) + if(message) + message = "[uppertext(replacetext(message, ".", "!"))]!!" + return message + /datum/mutation/human/telekinesis name = "Telekinesis" diff --git a/code/game/dna.dm b/code/game/dna.dm index 12771d535fe..0aae26c3478 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -74,7 +74,7 @@ /datum/dna/proc/generate_struc_enzymes(mob/living/carbon/character) var/list/L = list("0","1","2","3","4","5","6") var/list/sorting = list() - sorting.len = 14 + sorting.len = 23 var/result for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations) if(A.name == RACEMUT && istype(character,/mob/living/carbon/monkey)) @@ -96,6 +96,12 @@ . += repeat_string(DNA_UNIQUE_ENZYMES_LEN, "0") return . +/datum/dna/proc/mutations_say_mods(var/message) + if(message) + for(var/datum/mutation/human/M in mutations) + message = M.say_mod(message) + return message + /proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor) if(!istype(owner, /mob/living/carbon/monkey) && !istype(owner, /mob/living/carbon/human)) return diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index bc81a06b5ce..966efc867e3 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -292,13 +292,13 @@ name = "\improper DNA injector (Anti-Mute)" New() ..() - remove_mutations.Add(mutations_list[MUTE]) + remove_mutations.Add(mutations_list[MUT_MUTE]) /obj/item/weapon/dnainjector/mutemut name = "\improper DNA injector (Mute)" New() ..() - add_mutations.Add(mutations_list[MUTE]) + add_mutations.Add(mutations_list[MUT_MUTE]) /obj/item/weapon/dnainjector/antismile name = "\improper DNA injector (Anti-Smile)" diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 5b2ce4bcee4..71b54ef8970 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -21,116 +21,8 @@ /mob/living/carbon/human/treat_message(message) if(dna) message = dna.species.handle_speech(message,src) - if (dna.check_mutation(UNINTELLIGABLE)) - var/prefix=copytext(message,1,2) - if(prefix == ";") - message = copytext(message,2) - else if(prefix in list(":","#")) - prefix += copytext(message,2,3) - message = copytext(message,3) - else - prefix="" + message = dna.mutations_say_mods(message) - var/list/words = text2list(message," ") - var/list/rearranged = list() - for(var/i=1;i<=words.len;i++) - var/cword = pick(words) - words.Remove(cword) - var/suffix = copytext(cword,length(cword)-1,length(cword)) - while(length(cword)>0 && suffix in list(".",",",";","!",":","?")) - cword = copytext(cword,1 ,length(cword)-1) - suffix = copytext(cword,length(cword)-1,length(cword) ) - if(length(cword)) - rearranged += cword - return "[prefix][uppertext(list2text(rearranged," "))]!!" - if (dna.check_mutation(SWEDISH)) - message = replacetext(message,"w","v") - if(prob(30)) - message += " Bork[pick("",", bork",", bork, bork")]!" - if (dna.check_mutation(ELVIS)) - message = replacetext(message,"im not","I ain't") - message = replacetext(message,"i'm not","I aint") - message = replacetext(message," girl ",pick(" honey "," baby "," baby doll ")) - message = replacetext(message," man ",pick(" son "," buddy "," brother ", " pal ", " friendo ")) - message = replacetext(message,"out of","outta") - message = replacetext(message,"thank you","thank you, thank you very much") - message = replacetext(message,"what are you","whatcha") - message = replacetext(message,"yes",pick("sure", "yea")) - message = replacetext(message,"faggot","square") - message = replacetext(message,"muh valids","getting my kicks") - if (dna.check_mutation(CHAV)) - message = replacetext(message,"dick","prat") - message = replacetext(message,"comdom","knob'ead") - message = replacetext(message,"looking at","gawpin' at") - message = replacetext(message,"great","bangin'") - message = replacetext(message,"man","mate") - message = replacetext(message,"friend",pick("mate","bruv","bledrin")) - message = replacetext(message,"what","wot") - message = replacetext(message,"drink","wet") - message = replacetext(message,"get","giz") - message = replacetext(message,"what","wot") - message = replacetext(message,"no thanks","wuddent fukken do one") - message = replacetext(message,"i don't know","wot mate") - message = replacetext(message,"no","naw") - message = replacetext(message,"robust","chin") - message = replacetext(message," hi ","how what how") - message = replacetext(message,"hello","sup bruv") - message = replacetext(message,"kill","bang") - message = replacetext(message,"murder","bang") - message = replacetext(message,"windows","windies") - message = replacetext(message,"window","windy") - message = replacetext(message,"break","do") - message = replacetext(message,"your","yer") - message = replacetext(message,"security","coppers") - if (dna.check_mutation(SMILE)) - //Time for a friendly game of SS13 - message = replacetext(message,"stupid","smart") - message = replacetext(message,"retard","genius") - message = replacetext(message,"unrobust","robust") - message = replacetext(message,"dumb","smart") - message = replacetext(message,"awful","great") - message = replacetext(message,"gay",pick("nice","ok","alright")) - message = replacetext(message,"horrible","fun") - message = replacetext(message,"terrible","terribly fun") - message = replacetext(message,"terrifying","wonderful") - message = replacetext(message,"gross","cool") - message = replacetext(message,"disgusting","amazing") - message = replacetext(message,"loser","winner") - message = replacetext(message,"useless","useful") - message = replacetext(message,"oh god","cheese and crackers") - message = replacetext(message,"jesus","gee wiz") - message = replacetext(message,"weak","strong") - message = replacetext(message,"kill","hug") - message = replacetext(message,"murder","tease") - message = replacetext(message,"ugly","beautiful") - message = replacetext(message,"douchbag","nice guy") - message = replacetext(message,"whore","lady") - message = replacetext(message,"nerd","smart guy") - message = replacetext(message,"moron","fun person") - message = replacetext(message,"IT'S LOOSE","EVERYTHING IS FINE") - message = replacetext(message,"rape","hug fight") - message = replacetext(message,"idiot","genius") - message = replacetext(message,"fat","thin") - message = replacetext(message,"beer","water with ice") - message = replacetext(message,"drink","water") - message = replacetext(message,"feminist","empowered woman") - message = replacetext(message,"i hate you","you're mean") - message = replacetext(message,"nigger","african american") - message = replacetext(message,"jew","jewish") - message = replacetext(message,"shit","shiz") - message = replacetext(message,"crap","poo") - message = replacetext(message,"slut","tease") - message = replacetext(message,"ass","butt") - message = replacetext(message,"damn","dang") - message = replacetext(message,"fuck","") - message = replacetext(message,"penis","privates") - message = replacetext(message,"cunt","privates") - message = replacetext(message,"dick","jerk") - message = replacetext(message,"vagina","privates") - if (dna.check_mutation(HULK)) - message = "[uppertext(replacetext(message, ".", "!"))]!!" //because I don't know how to code properly in getting vars from other files -Bro - if (dna.check_mutation(MUTE)) - message = "" if(viruses.len) for(var/datum/disease/pierrot_throat/D in viruses) var/list/temp_message = text2list(message, " ") //List each word in the message @@ -144,8 +36,6 @@ temp_message[H] = "HONK" pick_list -= H //Make sure that you dont HONK the same word twice message = list2text(temp_message, " ") - if (dna.check_mutation(WACKY)) - message = "[message]" message = ..(message) return message diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 02b97d0590a..f614fef15cb 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -163,4 +163,4 @@ var/obj/control_object //Used by admins to possess objects. All mobs should have this var var/turf/listed_turf = null //the current turf being examined in the stat panel - var/last_movement = -100 // Last world.time the mob actually moved of its own accord. \ No newline at end of file + var/last_movement = 0 // Last world.time the mob actually moved of its own accord. \ No newline at end of file diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index f9192fc52eb..f55887a29bf 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -194,10 +194,9 @@ if(mob.confused && IsEven(world.time)) step(mob, pick(cardinal)) - mob.last_movement=world.time else . = ..() - mob.last_movement=world.time + mob.last_movement=world.time moving = 0 if(mob && .) From fbfe5e5840a5956e73fd5bf787347aae0fca03b4 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sun, 11 Jan 2015 09:24:22 -0800 Subject: [PATCH 04/10] Fixes Chameleon letting you attack and stay invisible. --- code/_onclick/click.dm | 2 +- code/_onclick/item_attack.dm | 1 + code/game/dna.dm | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index c6827293901..d3acf80de85 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -126,7 +126,7 @@ W.afterattack(A,src,0,params) // 0: not Adjacent else RangedAttack(A, params) - + last_movement=world.time return /mob/proc/changeNext_move(num) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c3d906c7742..8e7eecef73f 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -63,6 +63,7 @@ obj/item/proc/get_clamped_volume() ///////////////////////// user.lastattacked = M M.lastattacker = user + user.last_movement=world.time add_logs(user, M, "attacked", object=src.name, addition="(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") diff --git a/code/game/dna.dm b/code/game/dna.dm index 0aae26c3478..0466580661c 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -74,7 +74,7 @@ /datum/dna/proc/generate_struc_enzymes(mob/living/carbon/character) var/list/L = list("0","1","2","3","4","5","6") var/list/sorting = list() - sorting.len = 23 + sorting.len = DNA_STRUC_ENZYMES_BLOCKS var/result for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations) if(A.name == RACEMUT && istype(character,/mob/living/carbon/monkey)) From 38bc14c8f8fc81cf2ce43b4f01d10070c08f5fe7 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sun, 11 Jan 2015 20:35:17 -0800 Subject: [PATCH 05/10] Tweaks and changes --- code/_onclick/item_attack.dm | 1 - code/datums/goon_mutations_disabilities.dm | 30 ++++++++-------- code/datums/goon_mutations_powers.dm | 8 ++--- code/datums/mutations.dm | 42 +++++++++++----------- 4 files changed, 40 insertions(+), 41 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 8e7eecef73f..c3d906c7742 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -63,7 +63,6 @@ obj/item/proc/get_clamped_volume() ///////////////////////// user.lastattacked = M M.lastattacker = user - user.last_movement=world.time add_logs(user, M, "attacked", object=src.name, addition="(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") diff --git a/code/datums/goon_mutations_disabilities.dm b/code/datums/goon_mutations_disabilities.dm index cb32cde30a3..decfd10a987 100644 --- a/code/datums/goon_mutations_disabilities.dm +++ b/code/datums/goon_mutations_disabilities.dm @@ -1,8 +1,8 @@ /datum/mutation/human/wacky name = "Wacky" quality = MINOR_NEGATIVE - text_indication = "You feel an off sensation in your voicebox." - lose_indication = "The off sensation passes." + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." /datum/mutation/human/wacky/say_mod(var/message) if(message) @@ -12,8 +12,8 @@ /datum/mutation/human/mute name = "Mute" quality = NEGATIVE - text_indication = "You feel unable to express yourself at all." - lose_indication = "You feel able to speak freely again." + text_gain_indication = "You feel unable to express yourself at all." + text_lose_indication = "You feel able to speak freely again." /datum/mutation/human/mute/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -26,8 +26,8 @@ /datum/mutation/human/smile name = "Smile" quality = MINOR_NEGATIVE - text_indication = "You feel so happy. Nothing can be wrong with anything. :)" - lose_indication = "Everything is terrible again. :(" + text_gain_indication = "You feel so happy. Nothing can be wrong with anything. :)" + text_lose_indication = "Everything is terrible again. :(" /datum/mutation/human/smile/say_mod(var/message) if(message) @@ -80,8 +80,8 @@ /datum/mutation/human/unintelligable name = "Unintelligable" quality = NEGATIVE - text_indication = "You can't seem to form any coherent thoughts!" - lose_indication = "Your mind feels more clear." + text_gain_indication = "You can't seem to form any coherent thoughts!" + text_lose_indication = "Your mind feels more clear." /datum/mutation/human/unintelligable/say_mod(var/message) if(message) @@ -111,8 +111,8 @@ /datum/mutation/human/swedish name = "Swedish" quality = MINOR_NEGATIVE - text_indication = "You feel Swedish, however that works." - lose_indication = "The feeling of Swedishness passes." + text_gain_indication = "You feel Swedish, however that works." + text_lose_indication = "The feeling of Swedishness passes." /datum/mutation/human/swedish/say_mod(var/message) if(message) @@ -124,8 +124,8 @@ /datum/mutation/human/chav name = "Chav" quality = MINOR_NEGATIVE - text_indication = "Ye feel like a reet prat like, innit?" - lose_indication = "You no longer feel like being rude and sassy." + text_gain_indication = "Ye feel like a reet prat like, innit?" + text_lose_indication = "You no longer feel like being rude and sassy." /datum/mutation/human/chav/say_mod(var/message) if(message) @@ -143,7 +143,7 @@ message = replacetext(message,"i don't know","wot mate") message = replacetext(message,"no","naw") message = replacetext(message,"robust","chin") - message = replacetext(message," hi ","how what how") + message = replacetext(message,"hi","how what how") message = replacetext(message,"hello","sup bruv") message = replacetext(message,"kill","bang") message = replacetext(message,"murder","bang") @@ -157,8 +157,8 @@ /datum/mutation/human/elvis name = "Elvis" quality = MINOR_NEGATIVE - text_indication = "You feel pretty good, honeydoll." - lose_indication = "You feel a little less conversation would be great." + text_gain_indication = "You feel pretty good, honeydoll." + text_lose_indication = "You feel a little less conversation would be great." /datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) switch(pick(1,2)) diff --git a/code/datums/goon_mutations_powers.dm b/code/datums/goon_mutations_powers.dm index 3e2c4ee5397..cab817b019e 100644 --- a/code/datums/goon_mutations_powers.dm +++ b/code/datums/goon_mutations_powers.dm @@ -3,8 +3,8 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 14 - text_indication = "You begin to fade into the shadows." - lose_indication = "You become fully visible." + text_gain_indication = "You begin to fade into the shadows." + text_lose_indication = "You become fully visible." /datum/mutation/human/stealth/on_life(mob/living/carbon/human/owner) var/turf/simulated/T = get_turf(owner) @@ -21,8 +21,8 @@ /datum/mutation/human/chameleon name = "Chameleon" - text_indication = "You feel one with your surroundings." - lose_indication = "You feel oddly exposed." + text_gain_indication = "You feel one with your surroundings." + text_lose_indication = "You feel oddly exposed." /datum/mutation/human/chameleon/on_life(mob/living/carbon/human/owner) if((world.time - owner.last_movement) >= 30 && !owner.stat && owner.canmove && !owner.restrained()) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 7899c010703..5b8a31c639f 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -14,8 +14,8 @@ var/quality var/get_chance = 100 var/lowest_value = 256 * 8 - var/text_indication = "" - var/lose_indication = "" + var/text_gain_indication = "" + var/text_lose_indication = "" var/list/visual_indicators = list() /datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) @@ -49,7 +49,7 @@ return 1 owner.dna.mutations.Add(src) gain_indication(owner) - owner << text_indication + owner << text_gain_indication /datum/mutation/human/proc/gain_indication(mob/living/carbon/human/owner) owner.overlays.Add(visual_indicators) @@ -60,7 +60,7 @@ result_overlays[L.identificator] = visual_indicators[L.identificator] //visual_indicators is where overlays icons are stored, they are all created on new of each mutation, i assume you will change it to linked list for easyness, but for now its just a list return owner.redraw_overlays(result_overlays, MUTATION_LAYER) //Currently mutations draw the overlays themselves but i assume if dismemberment will be overriding lots of shit like maybe clothes or something else mutations will just pass the shit to redraw proc */ -/datum/mutation/human/proc/lose_indication(mob/living/carbon/human/owner) +/datum/mutation/human/proc/text_lose_indication(mob/living/carbon/human/owner) owner.overlays.Remove(visual_indicators) /datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target) @@ -74,8 +74,8 @@ /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) if(owner.dna.mutations.Remove(src)) - lose_indication(owner) - owner << lose_indication + text_lose_indication(owner) + owner << text_lose_indication return 0 return 1 @@ -89,7 +89,7 @@ quality = POSITIVE get_chance = 5 lowest_value = 256 * 14 - text_indication = "Your muscles hurt!" + text_gain_indication = "Your muscles hurt!" /datum/mutation/human/hulk/New() ..() @@ -130,7 +130,7 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 14 - text_indication = "You feel smarter!" + text_gain_indication = "You feel smarter!" /datum/mutation/human/telekinesis/New() ..() @@ -145,7 +145,7 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 12 - text_indication = "Your body feels warm!" + text_gain_indication = "Your body feels warm!" /datum/mutation/human/cold_resistance/New() ..() @@ -162,7 +162,7 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 15 - text_indication = "The walls suddenly disappear!" + text_gain_indication = "The walls suddenly disappear!" /datum/mutation/human/x_ray/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -183,7 +183,7 @@ name = "Near Sightness" quality = MINOR_NEGATIVE - text_indication = "You can't see very well." + text_gain_indication = "You can't see very well." /datum/mutation/human/nearsight/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -197,7 +197,7 @@ name = "Epilepsy" quality = NEGATIVE - text_indication = "You get a headache." + text_gain_indication = "You get a headache." /datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) if ((prob(1) && owner.paralysis < 1)) @@ -211,7 +211,7 @@ name = "Unstable DNA" quality = NEGATIVE - text_indication = "You feel strange." + text_gain_indication = "You feel strange." /datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner) if(prob(95)) @@ -227,7 +227,7 @@ name = "Cough" quality = MINOR_NEGATIVE - text_indication = "You start coughing." + text_gain_indication = "You start coughing." /datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) if((prob(5) && owner.paralysis <= 1)) @@ -238,7 +238,7 @@ name = "Clumsiness" quality = MINOR_NEGATIVE - text_indication = "You feel lightheaded." + text_gain_indication = "You feel lightheaded." /datum/mutation/human/clumsy/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -252,7 +252,7 @@ name = "Tourettes Syndrome" quality = NEGATIVE - text_indication = "You twitch." + text_gain_indication = "You twitch." /datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner) if((prob(10) && owner.paralysis <= 1)) @@ -273,7 +273,7 @@ name = "Nervousness" quality = MINOR_NEGATIVE - text_indication = "You feel nervous." + text_gain_indication = "You feel nervous." /datum/mutation/human/nervousness/on_life(mob/living/carbon/human/owner) if(prob(10)) @@ -283,7 +283,7 @@ name = "Deafness" quality = NEGATIVE - text_indication = "You can't seem to hear anything." + text_gain_indication = "You can't seem to hear anything." /datum/mutation/human/deaf/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -297,7 +297,7 @@ name = "Blindness" quality = NEGATIVE - text_indication = "You can't seem to see anything." + text_gain_indication = "You can't seem to see anything." /datum/mutation/human/blind/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -319,7 +319,7 @@ /datum/mutation/human/race/gain_indication(mob/living/carbon/human/owner) return -/datum/mutation/human/race/lose_indication(mob/living/carbon/monkey/owner) +/datum/mutation/human/race/text_lose_indication(mob/living/carbon/monkey/owner) return /datum/mutation/human/race/on_losing(mob/living/carbon/monkey/owner) @@ -331,7 +331,7 @@ name = "Laser Eyes" quality = POSITIVE dna_block = NON_SCANNABLE - text_indication = "You feel pressure building up behind your eyes." + text_gain_indication = "You feel pressure building up behind your eyes." /datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) if(owner.a_intent == "harm") From e9b864a40da43e70c5b9d475f4dc5675c186ef2d Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sat, 17 Jan 2015 17:35:31 -0800 Subject: [PATCH 06/10] Adds changelog --- html/changelogs/Iamgoofball.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/Iamgoofball.yml diff --git a/html/changelogs/Iamgoofball.yml b/html/changelogs/Iamgoofball.yml new file mode 100644 index 00000000000..23e3efe3705 --- /dev/null +++ b/html/changelogs/Iamgoofball.yml @@ -0,0 +1,6 @@ + +author: Iamgoofball +delete-after: True + +changes: + - rscadd: "Adds 6 new Disabilites and 2 new genetic powers." From b64efc6b54ee61752ced5b7c222a4d4f5ff55e7e Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sat, 17 Jan 2015 18:55:41 -0800 Subject: [PATCH 07/10] Adds 3 new disabilities --- code/__DEFINES/genetics.dm | 7 ++-- code/datums/goon_mutations_disabilities.dm | 34 ++++++++++++++++++ .../objects/items/weapons/dna_injector.dm | 36 +++++++++++++++++++ html/changelogs/Iamgoofball.yml | 2 +- interface/stylesheet.dm | 16 ++------- 5 files changed, 79 insertions(+), 16 deletions(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 1e40a9ae4b5..9c4080a6cfd 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -18,7 +18,10 @@ #define STEALTH "Cloak Of Darkness" #define CHAMELEON "Chameleon" #define WACKY "Wacky" -#define MUT_MUTE "Mute" +#define JOKE "Joke" +#define VINETA "Vineta" +#define PAPYRUS "Papyrus" +#define MUT_MUTE "Mute" #define SMILE "Smile" #define UNINTELLIGABLE "Unintelligable" #define SWEDISH "Swedish" @@ -61,7 +64,7 @@ #define DNA_FACIAL_HAIR_STYLE_BLOCK 6 #define DNA_HAIR_STYLE_BLOCK 7 -#define DNA_STRUC_ENZYMES_BLOCKS 23 +#define DNA_STRUC_ENZYMES_BLOCKS 26 #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff diff --git a/code/datums/goon_mutations_disabilities.dm b/code/datums/goon_mutations_disabilities.dm index decfd10a987..8e19a7e13c3 100644 --- a/code/datums/goon_mutations_disabilities.dm +++ b/code/datums/goon_mutations_disabilities.dm @@ -9,6 +9,40 @@ message = "[message]" return message +/datum/mutation/human/joke + name = "Joke" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/joke/say_mod(var/message) + if(message) + message = "[message]" + return message + +/datum/mutation/human/papyrus + name = "Papyrus" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/papyrus/say_mod(var/message) + if(message) + message = "[message]" + return message + +/datum/mutation/human/vineta + name = "Vineta" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/vineta/say_mod(var/message) + if(message) + message = "[message]" + return message + + /datum/mutation/human/mute name = "Mute" quality = NEGATIVE diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 966efc867e3..2e8f96419fc 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -288,6 +288,42 @@ ..() add_mutations.Add(mutations_list[WACKY]) +/obj/item/weapon/dnainjector/antijoke + name = "\improper DNA injector (Anti-joke)" + New() + ..() + remove_mutations.Add(mutations_list[JOKE]) + +/obj/item/weapon/dnainjector/jokemut + name = "\improper DNA injector (Joke)" + New() + ..() + add_mutations.Add(mutations_list[JOKE]) + +/obj/item/weapon/dnainjector/antipapyrus + name = "\improper DNA injector (Anti-Papyrus)" + New() + ..() + remove_mutations.Add(mutations_list[PAPYRUS]) + +/obj/item/weapon/dnainjector/papyrusmut + name = "\improper DNA injector (Papyrus)" + New() + ..() + add_mutations.Add(mutations_list[PAPYRUS]) + +/obj/item/weapon/dnainjector/antivineta + name = "\improper DNA injector (Anti-Vineta)" + New() + ..() + remove_mutations.Add(mutations_list[VINETA]) + +/obj/item/weapon/dnainjector/vinetamut + name = "\improper DNA injector (Vineta)" + New() + ..() + add_mutations.Add(mutations_list[VINETA]) + /obj/item/weapon/dnainjector/antimute name = "\improper DNA injector (Anti-Mute)" New() diff --git a/html/changelogs/Iamgoofball.yml b/html/changelogs/Iamgoofball.yml index 23e3efe3705..262ee8b9468 100644 --- a/html/changelogs/Iamgoofball.yml +++ b/html/changelogs/Iamgoofball.yml @@ -3,4 +3,4 @@ author: Iamgoofball delete-after: True changes: - - rscadd: "Adds 6 new Disabilites and 2 new genetic powers." + - rscadd: "Adds 9 new Disabilites and 2 new genetic powers." diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 64322d64496..029a062895e 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -31,19 +31,6 @@ em {font-style: normal; font-weight: bold;} .medradio {color: #337296;} .engradio {color: #fb5613;} .suppradio {color: #a8732b;} -.servradio {color: #6eaa2c;} -.syndradio {color: #6d3f40;} -.dsquadradio {color: #686868;} -.aiprivradio {color: #ff00ff;} - -.alert {color: #ff0000;} -h1.alert, h2.alert {color: #000000;} - -.emote { font-style: italic;} -.selecteddna {color: #ffffff; background-color: #001B1B} - -.attack {color: #ff0000;} -.disarm {color: #990000;} .passive {color: #660000;} .userdanger {color: #ff0000; font-weight: bold;} @@ -68,6 +55,9 @@ h1.alert, h2.alert {color: #000000;} .interface {color: #330033;} .sans {font-family: "Comic Sans MS", cursive, sans-serif;} +.papyrus {font-family: "Papyrus", cursive, sans-serif;} +.vineta {font-family: "Vineta BT", cursive, sans-serif;} +.jokerman {font-family: "Jokerman", cursive, sans-serif;} BIG IMG.icon {width: 32px; height: 32px;} From 612e78e1ec74f36a9fe8dc50fb876cf865869f91 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Sun, 18 Jan 2015 22:57:41 -0800 Subject: [PATCH 08/10] whoops, broke some proc names --- code/datums/mutations.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 5b8a31c639f..913db4fa4f0 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -60,7 +60,7 @@ result_overlays[L.identificator] = visual_indicators[L.identificator] //visual_indicators is where overlays icons are stored, they are all created on new of each mutation, i assume you will change it to linked list for easyness, but for now its just a list return owner.redraw_overlays(result_overlays, MUTATION_LAYER) //Currently mutations draw the overlays themselves but i assume if dismemberment will be overriding lots of shit like maybe clothes or something else mutations will just pass the shit to redraw proc */ -/datum/mutation/human/proc/text_lose_indication(mob/living/carbon/human/owner) +/datum/mutation/human/proc/lose_indication(mob/living/carbon/human/owner) owner.overlays.Remove(visual_indicators) /datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target) @@ -74,7 +74,7 @@ /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) if(owner.dna.mutations.Remove(src)) - text_lose_indication(owner) + lose_indication(owner) owner << text_lose_indication return 0 return 1 @@ -319,7 +319,7 @@ /datum/mutation/human/race/gain_indication(mob/living/carbon/human/owner) return -/datum/mutation/human/race/text_lose_indication(mob/living/carbon/monkey/owner) +/datum/mutation/human/race/lose_indication(mob/living/carbon/monkey/owner) return /datum/mutation/human/race/on_losing(mob/living/carbon/monkey/owner) @@ -335,4 +335,4 @@ /datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) if(owner.a_intent == "harm") - owner.LaserEyes(target) \ No newline at end of file + owner.LaserEyes(target) From 0736c81de0fcf10377eaf754f342e4bd293d580d Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Mon, 19 Jan 2015 00:46:16 -0800 Subject: [PATCH 09/10] wow totally didn't nuke some stylesheet shit --- interface/stylesheet.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 029a062895e..fa3c636def2 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -31,6 +31,20 @@ em {font-style: normal; font-weight: bold;} .medradio {color: #337296;} .engradio {color: #fb5613;} .suppradio {color: #a8732b;} +.suppradio {color: #a8732b;} +.servradio {color: #6eaa2c;} +.syndradio {color: #6d3f40;} +.dsquadradio {color: #686868;} +.aiprivradio {color: #ff00ff;} + +.alert {color: #ff0000;} +h1.alert, h2.alert {color: #000000;} + +.emote { font-style: italic;} +.selecteddna {color: #ffffff; background-color: #001B1B} + +.attack {color: #ff0000;} +.disarm {color: #990000;} .passive {color: #660000;} .userdanger {color: #ff0000; font-weight: bold;} From be6f8521b9ef35952e0866aea72b50955412b059 Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Mon, 19 Jan 2015 00:47:31 -0800 Subject: [PATCH 10/10] whoops --- interface/stylesheet.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index fa3c636def2..fdaaea68b82 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -31,7 +31,6 @@ em {font-style: normal; font-weight: bold;} .medradio {color: #337296;} .engradio {color: #fb5613;} .suppradio {color: #a8732b;} -.suppradio {color: #a8732b;} .servradio {color: #6eaa2c;} .syndradio {color: #6d3f40;} .dsquadradio {color: #686868;}