mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
[MIRROR] [ready]Heretic new path : Path of Void [sprites approved] (#1711)
* [ready]Heretic new path : Path of Void [sprites approved] (#54252) * E * E * E * E * E * E * VOID FINALLY * E * E * E * VOID STORM * e * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: Rohesie <rohesie@ gmail.com> * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: Rohesie <rohesie@ gmail.com> * Update code/modules/antagonists/eldritch_cult/eldritch_magic.dm Co-authored-by: Rohesie <rohesie@ gmail.com> * Update code/modules/antagonists/eldritch_cult/eldritch_magic.dm Co-authored-by: Rohesie <rohesie@ gmail.com> * E * FUCKING FINALLY * E * E * Voids Embrace * E * E * E * E * some changes * E * E * E * EEE * E * E * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> * Update code/modules/antagonists/eldritch_cult/eldritch_items.dm Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com> * Apply suggestions from code review Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com> * E * E * E * MERGE READY UWU * Update code/modules/clothing/suits/toggles.dm Co-authored-by: Rohesie <rohesie@ gmail.com> Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com> Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com> * [ready]Heretic new path : Path of Void [sprites approved] Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com> Co-authored-by: Rohesie <rohesie@ gmail.com> Co-authored-by: necromanceranne <40847847+necromanceranne@ users.noreply.github.com> Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com> Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
This commit is contained in:
co-authored by
Rohesie
necromanceranne
girl
ATH1909
EdgeLordExe
parent
b99196b519
commit
c9cd05f7cc
@@ -141,3 +141,9 @@
|
||||
desc = "You've summoned a piece of the Hill of rust, and so the Hills welcome you."
|
||||
database_id = MEDAL_RUST_ASCENSION
|
||||
icon = "rustascend"
|
||||
|
||||
/datum/award/achievement/misc/void_ascension
|
||||
name = "All that perish"
|
||||
desc = "Place of a diffrent being, diffrent time. Everything ends there... but maybe it is just the beginning?"
|
||||
database_id = MEDAL_VOID_ASCENSION
|
||||
icon = "voidascend"
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud)
|
||||
RegisterSignal(parent, COMSIG_JOB_RECEIVED, .proc/register_job_signals)
|
||||
|
||||
RegisterSignal(parent, COMSIG_VOID_MASK_ACT, .proc/direct_sanity_drain)
|
||||
|
||||
var/mob/living/owner = parent
|
||||
if(owner.hud_used)
|
||||
modify_hud()
|
||||
@@ -400,11 +402,19 @@
|
||||
remove_temp_moods()
|
||||
setSanity(initial(sanity), override = TRUE)
|
||||
|
||||
|
||||
///Causes direct drain of someone's sanity, call it with a numerical value corresponding how badly you want to hurt their sanity
|
||||
/datum/component/mood/proc/direct_sanity_drain(datum/source, amount)
|
||||
SIGNAL_HANDLER
|
||||
setSanity(sanity + amount, override = TRUE)
|
||||
|
||||
///Called when parent slips.
|
||||
/datum/component/mood/proc/on_slip(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
add_event(null, "slipped", /datum/mood_event/slipped)
|
||||
|
||||
|
||||
#undef MINOR_INSANITY_PEN
|
||||
#undef MAJOR_INSANITY_PEN
|
||||
|
||||
|
||||
@@ -111,3 +111,13 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass,
|
||||
/obj/item/ammo_box/a762))
|
||||
|
||||
|
||||
/datum/component/storage/concrete/pockets/void_cloak
|
||||
quickdraw = TRUE
|
||||
max_items = 3
|
||||
|
||||
/datum/component/storage/concrete/pockets/void_cloak/Initialize()
|
||||
. = ..()
|
||||
var/static/list/exception_cache = typecacheof(list(/obj/item/living_heart,/obj/item/forbidden_book))
|
||||
exception_hold = exception_cache
|
||||
|
||||
@@ -45,3 +45,12 @@
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg'
|
||||
volume = 30
|
||||
|
||||
/datum/looping_sound/void_loop
|
||||
mid_sounds = list('sound/ambience/VoidsEmbrace.ogg'=1)
|
||||
mid_length = 1669 // exact length of the music in ticks
|
||||
volume = 100
|
||||
extra_range = 30
|
||||
|
||||
/datum/looping_sound/void_loop/start(atom/add_thing)
|
||||
. = ..()
|
||||
|
||||
@@ -364,3 +364,98 @@
|
||||
/datum/status_effect/antimagic/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT)
|
||||
owner.visible_message("<span class='warning'>[owner]'s dull aura fades away...</span>")
|
||||
|
||||
/datum/status_effect/crucible_soul
|
||||
id = "Blessing of Crucible Soul"
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 15 SECONDS
|
||||
examine_text = "<span class='notice'>They don't seem to be all here.</span>"
|
||||
alert_type = /obj/screen/alert/status_effect/crucible_soul
|
||||
var/turf/location
|
||||
|
||||
/datum/status_effect/crucible_soul/on_apply()
|
||||
. = ..()
|
||||
to_chat(owner,"<span class='notice'>You phase through reality, nothing is out of bounds!</span>")
|
||||
owner.alpha = 180
|
||||
owner.pass_flags |= PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSMACHINE | PASSSTRUCTURE | PASSTABLE | PASSMOB
|
||||
location = get_turf(owner)
|
||||
|
||||
/datum/status_effect/crucible_soul/on_remove()
|
||||
to_chat(owner,"<span class='notice'>You regain your physicality, returning you to your original location...</span>")
|
||||
owner.alpha = initial(owner.alpha)
|
||||
owner.pass_flags &= ~(PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSMACHINE | PASSSTRUCTURE | PASSTABLE | PASSMOB)
|
||||
owner.forceMove(location)
|
||||
location = null
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/duskndawn
|
||||
id = "Blessing of Dusk and Dawn"
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 60 SECONDS
|
||||
alert_type =/obj/screen/alert/status_effect/duskndawn
|
||||
|
||||
/datum/status_effect/duskndawn/on_apply()
|
||||
. = ..()
|
||||
ADD_TRAIT(owner,TRAIT_XRAY_VISION,type)
|
||||
owner.update_sight()
|
||||
|
||||
/datum/status_effect/duskndawn/on_remove()
|
||||
REMOVE_TRAIT(owner,TRAIT_XRAY_VISION,type)
|
||||
owner.update_sight()
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/marshal
|
||||
id = "Blessing of Wounded Soldier"
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 60 SECONDS
|
||||
tick_interval = 1 SECONDS
|
||||
alert_type = /obj/screen/alert/status_effect/marshal
|
||||
|
||||
/datum/status_effect/marshal/on_apply()
|
||||
. = ..()
|
||||
ADD_TRAIT(owner,TRAIT_IGNOREDAMAGESLOWDOWN,type)
|
||||
|
||||
/datum/status_effect/marshal/on_remove()
|
||||
. = ..()
|
||||
REMOVE_TRAIT(owner,TRAIT_IGNOREDAMAGESLOWDOWN,type)
|
||||
|
||||
/datum/status_effect/marshal/tick()
|
||||
. = ..()
|
||||
if(!iscarbon(owner))
|
||||
return
|
||||
var/mob/living/carbon/carbie = owner
|
||||
|
||||
for(var/BP in carbie.bodyparts)
|
||||
var/obj/item/bodypart/part = BP
|
||||
for(var/W in part.wounds)
|
||||
var/datum/wound/wound = W
|
||||
var/heal_amt = 0
|
||||
|
||||
switch(wound.severity)
|
||||
if(WOUND_SEVERITY_MODERATE)
|
||||
heal_amt = 1
|
||||
if(WOUND_SEVERITY_SEVERE)
|
||||
heal_amt = 3
|
||||
if(WOUND_SEVERITY_CRITICAL)
|
||||
heal_amt = 6
|
||||
if(wound.wound_type == WOUND_BURN)
|
||||
carbie.adjustFireLoss(-heal_amt)
|
||||
else
|
||||
carbie.adjustBruteLoss(-heal_amt)
|
||||
carbie.blood_volume += carbie.blood_volume >= BLOOD_VOLUME_NORMAL ? 0 : heal_amt*3
|
||||
|
||||
|
||||
/obj/screen/alert/status_effect/crucible_soul
|
||||
name = "Blessing of Crucible Soul"
|
||||
desc = "You phased through the reality, you are halfway to your final destination..."
|
||||
icon_state = "crucible"
|
||||
|
||||
/obj/screen/alert/status_effect/duskndawn
|
||||
name = "Blessing of Dusk and Dawn"
|
||||
desc = "Many things hide beyond the horizon, with Owl's help i managed to slip past sun's guard and moon's watch."
|
||||
icon_state = "duskndawn"
|
||||
|
||||
/obj/screen/alert/status_effect/marshal
|
||||
name = "Blessing of Wounded Soldier"
|
||||
desc = "Some people seek power through redemption, one thing many people don't know is that battle is the ultimate redemption and wounds let you bask in eternal glory."
|
||||
icon_state = "wounded_soldier"
|
||||
|
||||
@@ -458,6 +458,16 @@
|
||||
I.take_damage(100)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/eldritch/void
|
||||
id = "void_mark"
|
||||
effect_sprite = "emark4"
|
||||
|
||||
/datum/status_effect/eldritch/void/on_effect()
|
||||
var/turf/open/turfie = get_turf(owner)
|
||||
turfie.TakeTemperature(-40)
|
||||
owner.adjust_bodytemperature(-20)
|
||||
return ..()
|
||||
|
||||
/// A status effect used for specifying confusion on a living mob.
|
||||
/// Created automatically with /mob/living/set_confusion.
|
||||
/datum/status_effect/confusion
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
var/barometer_predictable = FALSE
|
||||
/// For barometers to know when the next storm will hit
|
||||
var/next_hit_time = 0
|
||||
/// This causes the weather to only end if forced to
|
||||
var/perpetual = FALSE
|
||||
|
||||
/datum/weather/New(z_levels)
|
||||
..()
|
||||
@@ -135,7 +137,8 @@
|
||||
to_chat(M, weather_message)
|
||||
if(weather_sound)
|
||||
SEND_SOUND(M, sound(weather_sound))
|
||||
addtimer(CALLBACK(src, .proc/wind_down), weather_duration)
|
||||
if(!perpetual)
|
||||
addtimer(CALLBACK(src, .proc/wind_down), weather_duration)
|
||||
|
||||
/**
|
||||
* Weather enters the winding down phase, stops effects
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/datum/weather/void_storm
|
||||
name = "void storm"
|
||||
desc = "A rare and highly anomalous event often accompanied by unknown entities shredding spacetime continouum. We'd advise you to start running."
|
||||
|
||||
telegraph_duration = 2 SECONDS
|
||||
telegraph_overlay = "void"
|
||||
|
||||
weather_message = "<span class='danger'><i>You feel air around you getting colder... and void's sweet embrace...</i></span>"
|
||||
weather_overlay = "void_storm"
|
||||
weather_duration_lower = 60 SECONDS
|
||||
weather_duration_upper = 120 SECONDS
|
||||
|
||||
|
||||
end_duration = 10 SECONDS
|
||||
|
||||
area_type = /area
|
||||
protect_indoors = FALSE
|
||||
target_trait = ZTRAIT_VOIDSTORM
|
||||
|
||||
immunity_type = "void"
|
||||
|
||||
barometer_predictable = FALSE
|
||||
perpetual = TRUE
|
||||
|
||||
/datum/weather/void_storm/weather_act(mob/living/L)
|
||||
if(IS_HERETIC(L) || IS_HERETIC_MONSTER(L))
|
||||
return
|
||||
L.adjustOxyLoss(rand(1,3))
|
||||
L.adjustFireLoss(rand(1,3))
|
||||
L.adjust_blurriness(rand(0,1))
|
||||
L.adjust_bodytemperature(-rand(5,15))
|
||||
|
||||
Reference in New Issue
Block a user