mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
Eye of God Update: Loads of QoL, and makes it somewhat more useful to have permanently grafted to your face. (#82053)
## About The Pull Request The eye of god now protects from the madness inducing effects of supermatter crystals and singularities. This trait is shared by the meson night vision goggles (which this is a better version of) The Scan ability has been refactored into a pointed spell. The Scan ability has a lower cooldown of 35 seconds. Scan now gives an advanced health scan readout of the target. Scanning someone alerts the target as to who is responsible, rather than being completely silent as to the culprit (much to the annoyance of anyone who is victimized by someone using this on them) The status effect that was called Stagger (not Staggered, which is separate) is now called Rebuked. Rebuked applies a x2 action delay cooldown, rather than x1.5. ## Why It's Good For The Game The eye of god is generally viewed as not particularly useful. Sure, it is a night vision meson without the flash vulnerability, which is nice. But it wasn't seen as a terribly exciting tendril drop. The scan power is so underwhelming, most people do not actually know what the effects of it are. It largely is only useful for fighting megafauna, since the stagger effect typically matters more for their cooldowns than other monster cooldowns. And even then, not by much. The action cooldown effect on anything else isn't often understood or felt by both victim or user. So, the vast majority of the time, miners use it to troll people by, and I am quoting one player who was witness to me doing so to a particularly annoying Head of Security, 'pissing on them' by making them glow yellow. Someone else described it as a 'miner's jarate'. You get the idea. I changed the highlight color to red to avoid this crude comparison. And also, I've made it more obviously an attack when someone uses it on you AND you now know who used it to begin with. And on top of all this, I've given the eye of god both useful utility and a bit of a power boost to encourage miners to actually stick the fucking thing into their skull. I think miners will appreciate health scanning bosses in particular, something you normally can't do in the middle of a fight with one. ## Changelog 🆑 qol: The eye of god now protects from the madness inducing effects of supermatter crystals and singularities. This trait is shared by the meson night vision goggles (which this is a better version of) refactor: The Scan ability has been refactored into a pointed spell. balance: The Scan ability has a lower cooldown of 35 seconds. balance: The Scan ability now gives an advanced health scan readout of the target. balance: Scanning someone alerts the target as to who is responsible, rather than being completely silent as to the culprit (much to the annoyance of anyone who is victimized by someone using this on them) code: The status effect that was called Stagger (not Staggered, which is separate) is now called Rebuked. balance: Rebuked applies a x2 action delay cooldown, rather than x1.5. /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
This commit is contained in:
co-authored by
Zephyr
parent
333e21b12c
commit
191b5b3df1
@@ -800,11 +800,12 @@
|
||||
icon_state = "godeye"
|
||||
inhand_icon_state = null
|
||||
vision_flags = SEE_TURFS
|
||||
clothing_traits = list(TRAIT_MADNESS_IMMUNE)
|
||||
// Blue, light blue
|
||||
color_cutoffs = list(15, 30, 40)
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
custom_materials = null
|
||||
var/datum/action/cooldown/scan/scan_ability
|
||||
var/datum/action/cooldown/spell/pointed/scan/scan_ability
|
||||
|
||||
/obj/item/clothing/glasses/godeye/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -835,49 +836,60 @@
|
||||
victim.emote("scream")
|
||||
victim.flash_act()
|
||||
|
||||
/datum/action/cooldown/scan
|
||||
/datum/action/cooldown/spell/pointed/scan
|
||||
name = "Scan"
|
||||
desc = "Scan an enemy, to get their location and stagger them, increasing their time between attacks."
|
||||
desc = "Scan an enemy, to get their location and rebuke them, increasing their time between attacks."
|
||||
background_icon_state = "bg_clock"
|
||||
overlay_icon_state = "bg_clock_border"
|
||||
button_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "scan"
|
||||
school = SCHOOL_HOLY
|
||||
cooldown_time = 35 SECONDS
|
||||
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC
|
||||
antimagic_flags = MAGIC_RESISTANCE_MIND //Even god cannot penetrate the tin foil hat
|
||||
|
||||
click_to_activate = TRUE
|
||||
cooldown_time = 45 SECONDS
|
||||
ranged_mousepointer = 'icons/effects/mouse_pointers/scan_target.dmi'
|
||||
|
||||
/datum/action/cooldown/scan/IsAvailable(feedback = FALSE)
|
||||
return ..() && isliving(owner)
|
||||
|
||||
/datum/action/cooldown/scan/Activate(atom/scanned)
|
||||
StartCooldown(15 SECONDS)
|
||||
|
||||
if(owner.stat != CONSCIOUS)
|
||||
/datum/action/cooldown/spell/pointed/scan/is_valid_target(atom/cast_on)
|
||||
if(!isliving(cast_on))
|
||||
owner.balloon_alert(owner, "not a valid target!")
|
||||
return FALSE
|
||||
if(!isliving(scanned) || scanned == owner)
|
||||
owner.balloon_alert(owner, "invalid scanned!")
|
||||
var/mob/living/living_cast_on = cast_on
|
||||
if(living_cast_on.stat == DEAD)
|
||||
owner.balloon_alert(owner, "target is dead!")
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/action/cooldown/spell/pointed/scan/cast(mob/living/cast_on)
|
||||
. = ..()
|
||||
|
||||
if(cast_on.can_block_magic(MAGIC_RESISTANCE_MIND, charge_cost = 0))
|
||||
to_chat(owner, span_warning("As we apply our dissecting vision, we are abruptly cut short. \
|
||||
They have some kind of enigmatic mental defense. It seems we've been foiled."))
|
||||
return
|
||||
|
||||
if(cast_on == owner)
|
||||
to_chat(owner, span_warning("The last time a god stared too closely into their own reflection, they became transfixed for all of time. Do not let us become like them."))
|
||||
return
|
||||
|
||||
var/mob/living/living_owner = owner
|
||||
var/mob/living/living_scanned = scanned
|
||||
living_scanned.apply_status_effect(/datum/status_effect/stagger)
|
||||
var/mob/living/living_scanned = cast_on
|
||||
living_scanned.apply_status_effect(/datum/status_effect/rebuked)
|
||||
var/datum/status_effect/agent_pinpointer/scan_pinpointer = living_owner.apply_status_effect(/datum/status_effect/agent_pinpointer/scan)
|
||||
scan_pinpointer.scan_target = living_scanned
|
||||
|
||||
living_scanned.set_jitter_if_lower(100 SECONDS)
|
||||
to_chat(living_scanned, span_warning("You've been staggered!"))
|
||||
living_scanned.add_filter("scan", 2, list("type" = "outline", "color" = COLOR_YELLOW, "size" = 1))
|
||||
to_chat(living_scanned, span_warning("You briefly see a flash of [living_owner]'s face before being knocked off-balance by an unseen force!"))
|
||||
living_scanned.add_filter("scan", 2, list("type" = "outline", "color" = COLOR_RED, "size" = 1))
|
||||
addtimer(CALLBACK(living_scanned, TYPE_PROC_REF(/datum, remove_filter), "scan"), 30 SECONDS)
|
||||
|
||||
healthscan(living_owner, living_scanned, 1, TRUE)
|
||||
|
||||
owner.playsound_local(get_turf(owner), 'sound/magic/smoke.ogg', 50, TRUE)
|
||||
owner.balloon_alert(owner, "[living_scanned] scanned")
|
||||
addtimer(CALLBACK(src, PROC_REF(send_cooldown_end_message), cooldown_time))
|
||||
|
||||
StartCooldown()
|
||||
return TRUE
|
||||
|
||||
/datum/action/cooldown/scan/proc/send_cooldown_end_message()
|
||||
/datum/action/cooldown/spell/pointed/scan/proc/send_cooldown_end_message()
|
||||
owner?.balloon_alert(owner, "scan recharged")
|
||||
|
||||
/datum/status_effect/agent_pinpointer/scan
|
||||
|
||||
Reference in New Issue
Block a user