From 5f9553163cedac6ae2e7124dd50a6e9f0214f94a Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Tue, 21 Jun 2016 15:17:15 +0100 Subject: [PATCH] Butterflies and cats - Butterflies now "flutter" rather than say - Admins have gained Admin->Secrets->Fun->Mass Purrbation - Plus new cat sound effect. --- code/datums/datumvars.dm | 31 ++++++------ code/modules/admin/random.dm | 44 ++++++++++++++++++ code/modules/admin/secrets.dm | 14 ++++++ .../simple_animal/friendly/butterfly.dm | 5 ++ sound/effects/meow1.ogg | Bin 0 -> 13395 bytes tgstation.dme | 1 + 6 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 code/modules/admin/random.dm create mode 100644 sound/effects/meow1.ogg diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index d0858c0a6cd..f0da4d0a1e3 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -902,30 +902,25 @@ body if(!istype(H)) usr << "This can only be done to instances of type /mob/living/carbon/human" return + if(!ishumanbasic(H)) + usr << "This can only be done to the basic human species \ + at the moment." + return if(!H) usr << "Mob doesn't exist anymore" return - if(("tail_human" in H.dna.species.mutant_bodyparts) && ("ears" in H.dna.species.mutant_bodyparts)) - if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") - usr << "Put [H] on purrbation." - H << "Something is nya~t right." - log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") - message_admins("[key_name(usr)] has put [key_name(H)] on purrbation.") - H.dna.features["tail_human"] = "Cat" - H.dna.features["ears"] = "Cat" - else - usr << "Removed [H] from purrbation." - H << "You are no longer a cat." - log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") - message_admins("[key_name(usr)] has removed [key_name(H)] from purrbation.") - H.dna.features["tail_human"] = "None" - H.dna.features["ears"] = "None" - H.regenerate_icons() - return + var/success = purrbation_toggle(H) + if(success) + usr << "Put [H] on purrbation." + log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") + message_admins("[key_name(usr)] has put [key_name(H)] on purrbation.") - usr << "You can only put humans on purrbation." + else + usr << "Removed [H] from purrbation." + log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") + message_admins("[key_name(usr)] has removed [key_name(H)] from purrbation.") else if(href_list["adjustDamage"] && href_list["mobToDamage"]) if(!check_rights(0)) diff --git a/code/modules/admin/random.dm b/code/modules/admin/random.dm new file mode 100644 index 00000000000..b3b8dafadec --- /dev/null +++ b/code/modules/admin/random.dm @@ -0,0 +1,44 @@ +#define ON_PURRBATION(H) (!(H.dna.features["tail_human"] == "None" && H.dna.features["ears"] == "None")) + +/proc/mass_purrbation() + for(var/M in mob_list) + if(ishumanbasic(M)) + purrbation_apply(M) + CHECK_TICK + +/proc/mass_remove_purrbation() + for(var/M in mob_list) + if(ishumanbasic(M)) + purrbation_remove(M) + CHECK_TICK + +/proc/purrbation_toggle(mob/living/carbon/human/H) + if(!ishumanbasic(H)) + return + if(!ON_PURRBATION(H)) + purrbation_apply(H) + . = TRUE + else + purrbation_remove(H) + . = FALSE + +/proc/purrbation_apply(mob/living/carbon/human/H) + if(!istype(H)) + return + if(ON_PURRBATION(H)) + return + H << "Something is nya~t right." + H.dna.features["tail_human"] = "Cat" + H.dna.features["ears"] = "Cat" + H.regenerate_icons() + playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, 1, -1) + +/proc/purrbation_remove(mob/living/carbon/human/H) + if(!istype(H)) + return + if(!ON_PURRBATION(H)) + return + H << "You are no longer a cat." + H.dna.features["tail_human"] = "None" + H.dna.features["ears"] = "None" + H.regenerate_icons() diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 0cea1623a77..10201b50bcb 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -64,6 +64,8 @@ The floor is lava! (DANGEROUS: extremely lame)

Change bomb cap
+ Mass Purrbation
+ Mass Remove Purrbation
"} dat += "
" @@ -573,6 +575,18 @@ CTF.TellGhost() message_admins("[key_name_admin(usr)] has [ctf_enabled? "enabled" : "disabled"] CTF!") notify_ghosts("CTF has been [ctf_enabled? "enabled" : "disabled"]!",'sound/effects/ghost2.ogg') + if("masspurrbation") + if(!check_rights(R_FUN)) + return + mass_purrbation() + message_admins("[key_name_admin(usr)] has put everyone on \ + purrbation!") + if("massremovepurrbation") + if(!check_rights(R_FUN)) + return + mass_remove_purrbation() + message_admins("[key_name_admin(usr)] has removed everyone from \ + purrbation.") if(E) E.processing = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 5432830eab4..276d8a4e381 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -8,6 +8,7 @@ response_help = "shoos" response_disarm = "brushes aside" response_harm = "squashes" + speak_emote = list("flutters") maxHealth = 2 health = 2 harm_intent_damage = 1 @@ -18,6 +19,10 @@ ventcrawler = 2 mob_size = MOB_SIZE_TINY gold_core_spawnable = 2 + verb_say = "flutters" + verb_ask = "flutters inquisitively" + verb_exclaim = "flutters intensely" + verb_yell = "flutters intensely" /mob/living/simple_animal/butterfly/New() ..() diff --git a/sound/effects/meow1.ogg b/sound/effects/meow1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c486bfd5db966800b3ae102cd2dcb6c3aae04fd3 GIT binary patch literal 13395 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