mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Make magic disguises easier to break, reworks its spell cast (#25929)
* Make magic disguise easier to break
* add hitby
* add signal check
* update comment
* Fix check and update spell description
* Apply suggestions from code review
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* added signal to atom
* Revert "added signal to atom"
This reverts commit 79e2aa68d8.
* Update code/datums/spells/disguise_self.dm
Co-authored-by: Charlie Nolan <funnyman3595@gmail.com>
Signed-off-by: datlo <quentinkoyote@gmail.com>
* adress review, add spin casting
* linter fix
* actually fix linters
* i am so dumb
* fix typo
* Update code/modules/mob/living/carbon/human/species/_species.dm
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
---------
Signed-off-by: datlo <quentinkoyote@gmail.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Charlie Nolan <funnyman3595@gmail.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
/datum/spell/disguise_self
|
||||
name = "Disguise Self"
|
||||
desc = "Disguise yourself as a crewmember, based on your current location. Also changes your voice. \
|
||||
The disguise will not hold up to being examined directly, and will break if you're damaged."
|
||||
desc = "Disguise yourself as a crewmember, based on your current location. Also changes your voice. Takes two seconds to cast, must stand still. \
|
||||
The illusion isn't strong enough for more thorough examinations, but will fool people at a glance. \
|
||||
You will lose control over the illusion if you're attacked, shoved, or a object is thrown at you, no matter how soft."
|
||||
|
||||
school = "illusion"
|
||||
base_cooldown = 10 SECONDS
|
||||
base_cooldown = 3 SECONDS
|
||||
clothes_req = FALSE
|
||||
invocation = "Yutake Yutendes"
|
||||
invocation_type = "whisper"
|
||||
invocation_type = "none"
|
||||
level_max = 0 //cannot be improved
|
||||
action_icon_state = "disguise_self"
|
||||
sound = null
|
||||
@@ -19,4 +19,19 @@
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
H.emote("spin")
|
||||
to_chat(H, "<span class='notice'>You start spinning in place and casting [src]...</span>")
|
||||
if(do_after(H, 2 SECONDS, FALSE, H))
|
||||
finish_disguise(H)
|
||||
return TRUE
|
||||
else
|
||||
H.slip("your own foot", 1 SECONDS, 0, 0, 1, "trip")
|
||||
to_chat(H, "<span class='danger'>You must stand still to cast [src]!</span>")
|
||||
return FALSE
|
||||
|
||||
/datum/spell/disguise_self/proc/finish_disguise(mob/living/carbon/human/H)
|
||||
H.apply_status_effect(STATUS_EFFECT_MAGIC_DISGUISE)
|
||||
var/datum/effect_system/smoke_spread/smoke = new /datum/effect_system/smoke_spread
|
||||
smoke.set_up(4, FALSE, H.loc)
|
||||
smoke.start()
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
to_chat(owner, "<span class='warning'>Your spell fails to find a disguise!</span>")
|
||||
return FALSE
|
||||
|
||||
RegisterSignal(owner, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(remove_disguise))
|
||||
RegisterSignal(owner, list(COMSIG_MOB_APPLY_DAMAGE, COMSIG_HUMAN_ATTACKED, COMSIG_SPECIES_HITBY), PROC_REF(remove_disguise))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/magic_disguise/on_remove()
|
||||
@@ -78,7 +78,7 @@
|
||||
to_chat(H, "<span class='notice'>You disguise yourself as [disguise.name].</span>")
|
||||
|
||||
/datum/status_effect/magic_disguise/proc/remove_disguise()
|
||||
SIGNAL_HANDLER // COMSIG_MOB_APPLY_DAMAGE
|
||||
SIGNAL_HANDLER // COMSIG_MOB_APPLY_DAMAGE + COMSIG_HUMAN_ATTACKED + COMSIG_SPECIES_HITBY
|
||||
if(!ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/H = owner
|
||||
|
||||
Reference in New Issue
Block a user