From 9b05c5ece26b79c2b46d3f953bed33823f1b056c Mon Sep 17 00:00:00 2001 From: Photoshoot <69369461+Lichton@users.noreply.github.com> Date: Tue, 23 Aug 2022 21:39:13 -0400 Subject: [PATCH 1/6] Includes new wizard spell in yogstation.dme --- yogstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/yogstation.dme b/yogstation.dme index 64e9489b28fd..811880cf3e5e 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -3126,6 +3126,7 @@ #include "code\modules\spells\spell_types\devil.dm" #include "code\modules\spells\spell_types\devil_boons.dm" #include "code\modules\spells\spell_types\emplosion.dm" +#include "code\modules\spells\spell_types\disguise.dm" #include "code\modules\spells\spell_types\ethereal_jaunt.dm" #include "code\modules\spells\spell_types\explosion.dm" #include "code\modules\spells\spell_types\forcewall.dm" From dfc5a40f72146e67f4403f36c508c4cc753bf41f Mon Sep 17 00:00:00 2001 From: Photoshoot <69369461+Lichton@users.noreply.github.com> Date: Tue, 23 Aug 2022 21:42:10 -0400 Subject: [PATCH 2/6] Adds the sprite for the Mimicry spell. --- icons/mob/actions/actions_spells.dmi | Bin 21216 -> 39708 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index 82ba375a4fe826c4305727d5977346b5273296bb..57d77c67c5ca914903753701dca8d77a4591fecc 100644 GIT binary patch literal 39708 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 G4*nl4F++O* literal 21216 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 Date: Wed, 24 Aug 2022 18:34:33 -0400 Subject: [PATCH 3/6] Add files via upload --- code/modules/spells/spell_types/disguise.dm | 78 +++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 code/modules/spells/spell_types/disguise.dm diff --git a/code/modules/spells/spell_types/disguise.dm b/code/modules/spells/spell_types/disguise.dm new file mode 100644 index 000000000000..6fbbf00c0c35 --- /dev/null +++ b/code/modules/spells/spell_types/disguise.dm @@ -0,0 +1,78 @@ +/obj/effect/proc_holder/spell/disguise + name = "Mimicry" + desc = "Why fight your foes when you can simply outwit them? Disguises the caster as a random crewmember." + invocation = "CONJR DIS GUISE" + invocation_type = "whisper" + school = "transmutation" + charge_max = 30 SECONDS + level_max = 2 + cooldown_min = 25 SECONDS + clothes_req = FALSE + var/is_disguised = FALSE + action_icon = 'icons/mob/actions/actions_spells.dmi' + action_icon_state = "disguise" + +/obj/effect/proc_holder/spell/disguise/can_cast(mob/user = usr) + if(!iscarbon(user)) + to_chat(user, span_danger("You cannot disguise as a non-humanoid!")) + return FALSE + return TRUE + +/obj/effect/proc_holder/spell/disguise/choose_targets(mob/user = usr) + perform(user=user) + +/obj/effect/proc_holder/spell/disguise/cast(list/targets, mob/user = usr) + var/mob/living/carbon/human/C = user //Turns the user into a carbon, we'll need this later. + var/list/potentials = list() + for(var/mob/living/carbon/human/H in GLOB.carbon_list) //Checks all the humanoid mobs. + if(H.job) //Checks if they're crew. + potentials += H //Adds the crewmember to the list. + if(potentials.len == 0) + to_chat(C, span_notice("There's nobody to disguise as!")) + revert_cast(user) + return + var/mob/living/carbon/human/man = pick(potentials) //Picks a random subject from the viable targets. + cloak(C, man) + start_cooldown() + + + +/obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/man) //Code shortcut to enable the disguise. + if(is_disguised) + message_admins("[ADMIN_LOOKUPFLW(C)] just tried to disguise while disguised! That shouldn't happen!") + return + C.name_override = man.name + C.SetSpecialVoice(man.name) + new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(C), C.dir) //Cloaking disguise. + C.icon = man.icon + C.icon_state = man.icon_state + C.cut_overlays() + C.add_overlay(man.get_overlays_copy(list(HANDS_LAYER))) + C.update_inv_hands() + log_game("[C.name] has disguised as [man.name]!") + is_disguised = TRUE + addtimer(CALLBACK(src, .proc/undoCloak, C), (15 SECONDS + (spell_level * 3 SECONDS))) + return + +/obj/effect/proc_holder/spell/disguise/proc/undoCloak(var/mob/living/carbon/human/C) //Code shortcut to disable the disguise. + if(!is_disguised) + message_admins("[ADMIN_LOOKUPFLW(C)] just tried to undo their disguise while not disguised! That shouldn't happen!") + return + new /obj/effect/temp_visual/dir_setting/ninja(get_turf(C), C.dir) //Makes an animation for disguising. + C.name_override = null + C.UnsetSpecialVoice() + C.cut_overlays() + C.regenerate_icons() + log_game("[C.name] has shed their disguise!") + is_disguised = FALSE + return + +/datum/spellbook_entry/disguise //Spellbook entry, needed for the spell to be purchasable in game. + name = "Mimicry" + spell_type = /obj/effect/proc_holder/spell/disguise + category = "Assistance" + cost = 1 + + + + From 05af9abdc2107cd94173d3859653a7d9b6081b12 Mon Sep 17 00:00:00 2001 From: Photoshoot <69369461+Lichton@users.noreply.github.com> Date: Wed, 24 Aug 2022 20:33:03 -0400 Subject: [PATCH 4/6] Add files via upload --- code/modules/spells/spell_types/disguise.dm | 35 ++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/code/modules/spells/spell_types/disguise.dm b/code/modules/spells/spell_types/disguise.dm index 6fbbf00c0c35..788537ca0088 100644 --- a/code/modules/spells/spell_types/disguise.dm +++ b/code/modules/spells/spell_types/disguise.dm @@ -8,13 +8,14 @@ level_max = 2 cooldown_min = 25 SECONDS clothes_req = FALSE - var/is_disguised = FALSE + var/is_disguised = FALSE //Tells us if a disguise is currently up. action_icon = 'icons/mob/actions/actions_spells.dmi' action_icon_state = "disguise" /obj/effect/proc_holder/spell/disguise/can_cast(mob/user = usr) - if(!iscarbon(user)) - to_chat(user, span_danger("You cannot disguise as a non-humanoid!")) + if(!ishuman(user)) + to_chat(user, span_danger("You cannot disguise as a non-humanoid!")) //The mob is not a human, so they can't disguise. + //We need to undo the cloak after non-humanoid disguises because when the wizard becomes a non human during the spell, it will mess up their sprite. But since they are non human, we can't actually undo the spell. This leaves our recloaking bugged as hell, and breaks a lot of stuff. return FALSE return TRUE @@ -31,39 +32,37 @@ to_chat(C, span_notice("There's nobody to disguise as!")) revert_cast(user) return - var/mob/living/carbon/human/man = pick(potentials) //Picks a random subject from the viable targets. - cloak(C, man) - start_cooldown() + var/mob/living/carbon/human/target = pick(potentials) //Picks a random subject from the viable targets. + cloak(C, target) -/obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/man) //Code shortcut to enable the disguise. +/obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/target) //Code shortcut to enable the disguise. if(is_disguised) message_admins("[ADMIN_LOOKUPFLW(C)] just tried to disguise while disguised! That shouldn't happen!") return - C.name_override = man.name - C.SetSpecialVoice(man.name) - new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(C), C.dir) //Cloaking disguise. - C.icon = man.icon - C.icon_state = man.icon_state + C.name_override = target.name + C.SetSpecialVoice(target.name) + new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(C), C.dir) //Disguise animation. + C.icon = target.icon + C.icon_state = target.icon_state C.cut_overlays() - C.add_overlay(man.get_overlays_copy(list(HANDS_LAYER))) + C.add_overlay(target.get_overlays_copy(list(HANDS_LAYER))) C.update_inv_hands() - log_game("[C.name] has disguised as [man.name]!") + log_game("[C.name] has disguised as [target.name]!") is_disguised = TRUE - addtimer(CALLBACK(src, .proc/undoCloak, C), (15 SECONDS + (spell_level * 3 SECONDS))) + addtimer(CALLBACK(src, .proc/undocloak, C), (15 SECONDS + (spell_level * 3 SECONDS))) return -/obj/effect/proc_holder/spell/disguise/proc/undoCloak(var/mob/living/carbon/human/C) //Code shortcut to disable the disguise. +/obj/effect/proc_holder/spell/disguise/proc/undocloak(var/mob/living/carbon/human/C) //Code shortcut to disable the disguise. if(!is_disguised) - message_admins("[ADMIN_LOOKUPFLW(C)] just tried to undo their disguise while not disguised! That shouldn't happen!") + log_game("[C.name] just undid their disguise while not disguised, shouldn't cause harm but it's weird.") return new /obj/effect/temp_visual/dir_setting/ninja(get_turf(C), C.dir) //Makes an animation for disguising. C.name_override = null C.UnsetSpecialVoice() C.cut_overlays() C.regenerate_icons() - log_game("[C.name] has shed their disguise!") is_disguised = FALSE return From 8c5fd7f2e4fd0f23dc20f88a55d42817c49c92c1 Mon Sep 17 00:00:00 2001 From: Photoshoot <69369461+Lichton@users.noreply.github.com> Date: Wed, 24 Aug 2022 20:35:49 -0400 Subject: [PATCH 5/6] Update disguise.dm --- code/modules/spells/spell_types/disguise.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/modules/spells/spell_types/disguise.dm b/code/modules/spells/spell_types/disguise.dm index 788537ca0088..7365a77f4c40 100644 --- a/code/modules/spells/spell_types/disguise.dm +++ b/code/modules/spells/spell_types/disguise.dm @@ -35,8 +35,6 @@ var/mob/living/carbon/human/target = pick(potentials) //Picks a random subject from the viable targets. cloak(C, target) - - /obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/target) //Code shortcut to enable the disguise. if(is_disguised) message_admins("[ADMIN_LOOKUPFLW(C)] just tried to disguise while disguised! That shouldn't happen!") @@ -71,7 +69,3 @@ spell_type = /obj/effect/proc_holder/spell/disguise category = "Assistance" cost = 1 - - - - From b9d7d170697563baef770a2b770e9c6844f26d92 Mon Sep 17 00:00:00 2001 From: Photoshoot <69369461+Lichton@users.noreply.github.com> Date: Fri, 26 Aug 2022 21:34:48 -0400 Subject: [PATCH 6/6] Makes disguise compatible with SHAPESHIFTING BS Shapeshift makes your mob unseen, and then for some reason spawns a new mob, sends your brain into it, and buckles your regular mob to the new mob. Why? Makes shitcode to detect when the host is turned monster during disguise --- code/modules/spells/spell_types/disguise.dm | 40 ++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/code/modules/spells/spell_types/disguise.dm b/code/modules/spells/spell_types/disguise.dm index 7365a77f4c40..37e1634176cc 100644 --- a/code/modules/spells/spell_types/disguise.dm +++ b/code/modules/spells/spell_types/disguise.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/disguise name = "Mimicry" - desc = "Why fight your foes when you can simply outwit them? Disguises the caster as a random crewmember." + desc = "Why fight your foes when you can simply outwit them? Disguises the caster as a random crewmember. The body-covering shell keeps your form as is, and protects you from body-altering effects." invocation = "CONJR DIS GUISE" invocation_type = "whisper" school = "transmutation" @@ -9,14 +9,16 @@ cooldown_min = 25 SECONDS clothes_req = FALSE var/is_disguised = FALSE //Tells us if a disguise is currently up. + var/wasbeast = FALSE //We need this to make sure on can_cast, if they're found to be human and have this flag we can manually activate the uncloaking proc. action_icon = 'icons/mob/actions/actions_spells.dmi' action_icon_state = "disguise" /obj/effect/proc_holder/spell/disguise/can_cast(mob/user = usr) if(!ishuman(user)) - to_chat(user, span_danger("You cannot disguise as a non-humanoid!")) //The mob is not a human, so they can't disguise. //We need to undo the cloak after non-humanoid disguises because when the wizard becomes a non human during the spell, it will mess up their sprite. But since they are non human, we can't actually undo the spell. This leaves our recloaking bugged as hell, and breaks a lot of stuff. return FALSE + if(ishuman(user) && (wasbeast == TRUE)) + addtimer(CALLBACK(src, .proc/undocloak, user), 2) return TRUE /obj/effect/proc_holder/spell/disguise/choose_targets(mob/user = usr) @@ -33,15 +35,17 @@ revert_cast(user) return var/mob/living/carbon/human/target = pick(potentials) //Picks a random subject from the viable targets. - cloak(C, target) + cloak(C, target, user) -/obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/target) //Code shortcut to enable the disguise. + + +/obj/effect/proc_holder/spell/disguise/proc/cloak(var/mob/living/carbon/human/C, var/mob/living/carbon/human/target, mob/user) //Code shortcut to enable the disguise. if(is_disguised) message_admins("[ADMIN_LOOKUPFLW(C)] just tried to disguise while disguised! That shouldn't happen!") return + new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(C), C.dir) //Disguise animation. C.name_override = target.name C.SetSpecialVoice(target.name) - new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(C), C.dir) //Disguise animation. C.icon = target.icon C.icon_state = target.icon_state C.cut_overlays() @@ -50,22 +54,26 @@ log_game("[C.name] has disguised as [target.name]!") is_disguised = TRUE addtimer(CALLBACK(src, .proc/undocloak, C), (15 SECONDS + (spell_level * 3 SECONDS))) - return - + /obj/effect/proc_holder/spell/disguise/proc/undocloak(var/mob/living/carbon/human/C) //Code shortcut to disable the disguise. - if(!is_disguised) - log_game("[C.name] just undid their disguise while not disguised, shouldn't cause harm but it's weird.") + if((ishuman(C) && (C.mind)) || wasbeast == TRUE) //Shapeshift spell takes out your mind, buckles you to a body, and then puts your mind in a summoned animal. We need this bullshit to both check that this is not happening, and then override it when we have to fix the bullshit. + new /obj/effect/temp_visual/dir_setting/ninja(get_turf(C), C.dir) //Makes an animation for disguising. + C.name_override = null + C.UnsetSpecialVoice() + C.cut_overlays() + C.regenerate_icons() + is_disguised = FALSE + wasbeast = FALSE return - new /obj/effect/temp_visual/dir_setting/ninja(get_turf(C), C.dir) //Makes an animation for disguising. - C.name_override = null - C.UnsetSpecialVoice() - C.cut_overlays() - C.regenerate_icons() - is_disguised = FALSE - return + else + wasbeast = TRUE //Unfortunately we need this to counter shapeshifting bullshit, sets up the caster to immediatly revert when becoming human. /datum/spellbook_entry/disguise //Spellbook entry, needed for the spell to be purchasable in game. name = "Mimicry" spell_type = /obj/effect/proc_holder/spell/disguise category = "Assistance" cost = 1 + + + +