From 39e25935c742f268eb53ac6467a6b9c64b4c82c0 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Thu, 27 Feb 2020 16:03:01 -0500 Subject: [PATCH 1/9] how do i github idk my fork is freaking out because of this one linechange so poggers --- tgstation.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index 9ecf1ddd5e..8f5fb9fae0 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -79,8 +79,8 @@ #include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" -#include "code\__DEFINES\power.dm" #include "code\__DEFINES\pool.dm" +#include "code\__DEFINES\power.dm" #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" From 9ec828f1f24820a8b97748efdc1ea61bb9321417 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Thu, 27 Feb 2020 16:29:15 -0500 Subject: [PATCH 2/9] lunge & mesmerize tweaks lunge nerfed (holy FUCK) - windup reverted to 0.7s - range reverted to 3 - adjacency check fixed (must've been tired) mesmerize - now can be broken via line of sight breaking (checks for LoS every 0.5s there is probably a better way of doing this) --- .../antagonists/bloodsucker/powers/lunge.dm | 6 ++--- .../bloodsucker/powers/mesmerize.dm | 26 ++++++++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm index c3a3090d55..ea25286ba9 100644 --- a/code/modules/antagonists/bloodsucker/powers/lunge.dm +++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm @@ -7,7 +7,7 @@ button_icon_state = "power_lunge" bloodcost = 10 cooldown = 120 - target_range = 5 + target_range = 3 // artur was right power_activates_immediately = TRUE message_Trigger = "Whom will you ensnare within your grasp?" must_be_capacitated = TRUE @@ -61,7 +61,7 @@ addtimer(CALLBACK(owner, .proc/_walk, 0), 2 SECONDS) target.playsound_local(get_turf(owner), 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // target-only telegraphing owner.playsound_local(owner, 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // audio feedback to the user - if(do_mob(owner, owner, 6, TRUE, TRUE)) + if(do_mob(owner, owner, 7, TRUE, TRUE)) walk_towards(owner, T, 0.1, 10) // yes i know i shouldn't use this but i don't know how to work in anything better if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && owner.resting) var/send_dir = get_dir(owner, T) @@ -80,7 +80,7 @@ target.grabbedby(owner) // Taken from mutations.dm under changelings target.grippedby(owner, instant = TRUE) //instant aggro grab break - sleep(i*3) + sleep(3) /datum/action/bloodsucker/targeted/lunge/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // activate = FALSE diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index b238c5ba36..d715a1bb69 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -73,7 +73,7 @@ to_chat(owner, "You're too far outside your victim's view.") return FALSE - if(target.has_status_effect(STATUS_EFFECT_MESMERIZE)) // ? + if(target.has_status_effect(STATUS_EFFECT_MESMERIZE)) // ignores facing once the windup has started (now i know why i put this here!) return TRUE // Check: Facing target? @@ -97,21 +97,27 @@ var/power_time = 138 + level_current * 12 target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) user.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) - if(do_mob(user, target, 30, TRUE, TRUE)) // 3 seconds windup + for(var/i in 1 to 6) // this is a test lol success = CheckCanTarget(target) - if(success) // target just has to be out of view when it is fully charged in order to avoid - PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y - target.face_atom(user) - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) // pretty much purely cosmetic - target.Stun(power_time) - to_chat(user, "[target] is fixed in place by your hypnotic gaze.") - target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm - target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. + if(success) + if(i==6) + PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y + target.face_atom(user) + target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) // pretty much purely cosmetic + target.Stun(power_time) + to_chat(user, "[target] is fixed in place by your hypnotic gaze.") + target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm + target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. + break + sleep(5) else to_chat(user, "[target] has escaped your gaze!") + target.remove_status_effect(STATUS_EFFECT_MESMERIZE) + user.remove_status_effect(STATUS_EFFECT_MESMERIZE) DeactivatePower() DeactivateRangedAbility() StartCooldown() + break // oops! if they knew how they could just spam stun the victim and themselves. spawn(power_time) From bc882b2126587a6bfebac717dedb618b1465d0b4 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Thu, 27 Feb 2020 19:10:31 -0500 Subject: [PATCH 3/9] nerf mesmerize range lunge should have more range than mesmerize imo so let's just yoink --- code/modules/antagonists/bloodsucker/powers/mesmerize.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index d715a1bb69..09127ace1a 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -11,7 +11,7 @@ button_icon_state = "power_mez" bloodcost = 30 cooldown = 300 - target_range = 3 + target_range = 2 power_activates_immediately = TRUE message_Trigger = "Whom will you subvert to your will?" must_be_capacitated = TRUE From 43e4877a341eec55aaf591205dc6657e3d090581 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Fri, 28 Feb 2020 00:07:14 -0500 Subject: [PATCH 4/9] rearrange mesmerize end code linzolle pointed out it doesn't work which is correct and this seems to work just fine now --- .../antagonists/bloodsucker/powers/mesmerize.dm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index 09127ace1a..e904b69e12 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -108,6 +108,12 @@ to_chat(user, "[target] is fixed in place by your hypnotic gaze.") target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. + + spawn(power_time) + target.notransform = FALSE + // They Woke Up! (Notice if within view) + if(istype(user) && target.stat == CONSCIOUS && (target in view(10, get_turf(user)))) + to_chat(user, "[target] has snapped out of their trance.") break sleep(5) else @@ -120,13 +126,6 @@ break // oops! if they knew how they could just spam stun the victim and themselves. - spawn(power_time) - if(istype(target) && success) - target.notransform = FALSE - // They Woke Up! (Notice if within view) - if(istype(user) && target.stat == CONSCIOUS && (target in view(10, get_turf(user))) ) - to_chat(user, "[target] has snapped out of their trance.") - /datum/action/bloodsucker/targeted/mesmerize/ContinueActive(mob/living/user, mob/living/target) return ..() && CheckCanUse() && CheckCanTarget(target) From 8953877a69163fa059601047ab0881af1495d487 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Fri, 28 Feb 2020 01:01:45 -0500 Subject: [PATCH 5/9] makes mesmerize not shitcode woooooooo --- .../bloodsucker/powers/mesmerize.dm | 65 +++++++++++-------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index e904b69e12..07a98b24a5 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -88,44 +88,53 @@ return FALSE return TRUE +/datum/action/bloodsucker/targeted/mesmerize/proc/ContinueTarget(atom/A) + var/mob/living/carbon/target = A + var/mob/living/user = owner + + var/cancontinue=CheckCanTarget(target) + if(!cancontinue) + success=FALSE + target.remove_status_effect(STATUS_EFFECT_MESMERIZE) + user.remove_status_effect(STATUS_EFFECT_MESMERIZE) + DeactivatePower() + DeactivateRangedAbility() + StartCooldown() + to_chat(user, "[target] has escaped your gaze!") + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + /datum/action/bloodsucker/targeted/mesmerize/FireTargetedPower(atom/A) // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done. var/mob/living/carbon/target = A var/mob/living/user = owner if(istype(target)) + success=TRUE var/power_time = 138 + level_current * 12 target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) user.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) - for(var/i in 1 to 6) // this is a test lol - success = CheckCanTarget(target) - if(success) - if(i==6) - PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y - target.face_atom(user) - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) // pretty much purely cosmetic - target.Stun(power_time) - to_chat(user, "[target] is fixed in place by your hypnotic gaze.") - target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm - target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. - - spawn(power_time) - target.notransform = FALSE - // They Woke Up! (Notice if within view) - if(istype(user) && target.stat == CONSCIOUS && (target in view(10, get_turf(user)))) - to_chat(user, "[target] has snapped out of their trance.") - break - sleep(5) - else - to_chat(user, "[target] has escaped your gaze!") - target.remove_status_effect(STATUS_EFFECT_MESMERIZE) - user.remove_status_effect(STATUS_EFFECT_MESMERIZE) - DeactivatePower() - DeactivateRangedAbility() - StartCooldown() - break - // oops! if they knew how they could just spam stun the victim and themselves. + + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/ContinueTarget) + // 3 second windup + sleep(30) + if(success) + PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y + target.face_atom(user) + target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) // pretty much purely cosmetic + target.Stun(power_time) + to_chat(user, "[target] is fixed in place by your hypnotic gaze.") + target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm + target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. + + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + + spawn(power_time) + if(istype(target) && success) + target.notransform = FALSE + // They Woke Up! (Notice if within view) + if(istype(user) && target.stat == CONSCIOUS && (target in view(10, get_turf(user))) ) + to_chat(user, "[target] has snapped out of their trance.") /datum/action/bloodsucker/targeted/mesmerize/ContinueActive(mob/living/user, mob/living/target) return ..() && CheckCanUse() && CheckCanTarget(target) From 5b6da0b350af549bdd8fe32fb2538b17428b4355 Mon Sep 17 00:00:00 2001 From: raspyosu Date: Fri, 28 Feb 2020 13:29:36 -0500 Subject: [PATCH 6/9] ok changes that artur suggested guess it makes no sense to add too much flavor --- code/modules/antagonists/bloodsucker/powers/lunge.dm | 2 +- code/modules/antagonists/bloodsucker/powers/mesmerize.dm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm index ea25286ba9..12fc51d300 100644 --- a/code/modules/antagonists/bloodsucker/powers/lunge.dm +++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm @@ -7,7 +7,7 @@ button_icon_state = "power_lunge" bloodcost = 10 cooldown = 120 - target_range = 3 // artur was right + target_range = 3 power_activates_immediately = TRUE message_Trigger = "Whom will you ensnare within your grasp?" must_be_capacitated = TRUE diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index 07a98b24a5..8699e43854 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -73,7 +73,7 @@ to_chat(owner, "You're too far outside your victim's view.") return FALSE - if(target.has_status_effect(STATUS_EFFECT_MESMERIZE)) // ignores facing once the windup has started (now i know why i put this here!) + if(target.has_status_effect(STATUS_EFFECT_MESMERIZE)) // ignores facing once the windup has started return TRUE // Check: Facing target? @@ -94,7 +94,7 @@ var/cancontinue=CheckCanTarget(target) if(!cancontinue) - success=FALSE + success = FALSE target.remove_status_effect(STATUS_EFFECT_MESMERIZE) user.remove_status_effect(STATUS_EFFECT_MESMERIZE) DeactivatePower() @@ -109,7 +109,7 @@ var/mob/living/user = owner if(istype(target)) - success=TRUE + success = TRUE var/power_time = 138 + level_current * 12 target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) user.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) From d00596b49d08b80264020460980e75e64b74424b Mon Sep 17 00:00:00 2001 From: raspyosu Date: Sun, 1 Mar 2020 00:24:56 -0500 Subject: [PATCH 7/9] fix cloak not restoring initial move intent sometimes (maybe) --- .../antagonists/bloodsucker/powers/cloak.dm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm index 23b35d1eaa..1bb7b02357 100644 --- a/code/modules/antagonists/bloodsucker/powers/cloak.dm +++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm @@ -10,6 +10,7 @@ amToggle = TRUE warn_constant_cost = TRUE var/moveintent_was_run + var/runintent var/walk_threshold = 0.4 // arbitrary number, to be changed. edit in last commit: this is fine after testing on box station for a bit var/lum @@ -31,23 +32,25 @@ var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) var/mob/living/user = owner + moveintent_was_run = (user.m_intent == MOVE_INTENT_RUN) + while(bloodsuckerdatum && ContinueActive(user)) // Pay Blood Toll (if awake) owner.alpha = max(35, owner.alpha - min(75, 10 + 5 * level_current)) bloodsuckerdatum.AddBloodVolume(-0.2) - moveintent_was_run = (user.m_intent == MOVE_INTENT_RUN) + runintent = (user.m_intent == MOVE_INTENT_RUN) var/turf/T = get_turf(user) lum = T.get_lumcount() if(istype(owner.loc)) if(lum > walk_threshold) - if(moveintent_was_run) + if(runintent) user.toggle_move_intent() ADD_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") if(lum < walk_threshold) - if(!moveintent_was_run) + if(!runintent) user.toggle_move_intent() REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") @@ -65,5 +68,8 @@ ..() REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") user.alpha = 255 - if(!moveintent_was_run) + + runintent = (user.m_intent == MOVE_INTENT_RUN) + + if(!runintent && moveintent_was_run) user.toggle_move_intent() From 769662394f3452533c66da20d7175af6354e9ee8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 1 Mar 2020 07:39:06 -0600 Subject: [PATCH 8/9] Automatic changelog generation for PR #11268 [ci skip] --- html/changelogs/AutoChangeLog-pr-11268.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11268.yml diff --git a/html/changelogs/AutoChangeLog-pr-11268.yml b/html/changelogs/AutoChangeLog-pr-11268.yml new file mode 100644 index 0000000000..f8f33cfdd2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11268.yml @@ -0,0 +1,6 @@ +author: "raspyosu" +delete-after: True +changes: + - bugfix: "cloak sometimes not restoring initial move intent" + - tweak: "mesmerize (line of sight checking system and remove progress bar)" + - balance: "nerf: lunge, mesmerize" From 9a3ddaaf7b80c5c9957987d3cf8842389063473c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 1 Mar 2020 07:08:04 -0700 Subject: [PATCH 9/9] Update logging.dm --- code/__DEFINES/logging.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 7e385638c5..9693d46d00 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -41,7 +41,7 @@ //Individual logging panel pages #define INDIVIDUAL_ATTACK_LOG (LOG_ATTACK) #define INDIVIDUAL_SAY_LOG (LOG_SAY | LOG_WHISPER | LOG_DSAY) -#define INDIVIDUAL_EMOTE_LOG (LOG_EMOTE) +#define INDIVIDUAL_EMOTE_LOG (LOG_EMOTE | LOG_SUBTLER) #define INDIVIDUAL_COMMS_LOG (LOG_PDA | LOG_CHAT | LOG_COMMENT | LOG_TELECOMMS) #define INDIVIDUAL_OOC_LOG (LOG_OOC | LOG_ADMIN) #define INDIVIDUAL_OWNERSHIP_LOG (LOG_OWNERSHIP)