Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 2d42791

Browse files
committed
work work work
1 parent c60ce80 commit 2d42791

File tree

2 files changed

+82
-1
lines changed

2 files changed

+82
-1
lines changed

code/datums/status_effects/debuffs/fire_stacks.dm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@
133133
var/on_fire = FALSE
134134
/// Stores current fire overlay icon state, for optimisation purposes
135135
var/last_icon_state
136+
/// The typepath of the particle used
137+
var/particle_type = /particles/embers
136138
/// Reference to the mob light emitter itself
137139
var/obj/effect/dummy/lighting_obj/moblight
138140
/// Type of mob light emitter we use when on fire
@@ -164,7 +166,7 @@
164166
/datum/status_effect/fire_handler/fire_stacks/update_particles()
165167
if(on_fire)
166168
if(!particle_effect)
167-
particle_effect = new(owner, /particles/embers)
169+
particle_effect = new(owner, particle_type)
168170
if(stacks > MOB_BIG_FIRE_STACK_THRESHOLD)
169171
particle_effect.particles.spawning = 5
170172
else

yogstation/code/modules/antagonists/darkspawn/darkspawn_abilities/warlock_abilities.dm

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,3 +693,82 @@
693693

694694
/datum/action/cooldown/spell/pointed/null_burst/proc/spawn_ground(turf/target)
695695
new /obj/effect/temp_visual/darkspawn/chasm(target)
696+
697+
//////////////////////////////////////////////////////////////////////////
698+
//----------------------I stole genetics fire breath--------------------//
699+
//////////////////////////////////////////////////////////////////////////
700+
/datum/action/cooldown/spell/cone/staggered/shadowflame
701+
name = "Fire Breath"
702+
desc = "You breathe a cone of fire directly in front of you."
703+
button_icon_state = "fireball"
704+
sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises
705+
706+
school = SCHOOL_EVOCATION
707+
cooldown_time = 40 SECONDS
708+
invocation_type = INVOCATION_NONE
709+
spell_requirements = NONE
710+
antimagic_flags = NONE
711+
712+
cone_levels = 3
713+
respect_density = TRUE
714+
/// The range our user is thrown backwards after casting the spell
715+
var/self_throw_range = 1
716+
/// The max point-blank damage dealt by the cone
717+
var/max_damage = 25
718+
719+
/datum/action/cooldown/spell/cone/staggered/shadowflame/do_turf_cone_effect(turf/target_turf, atom/caster, level)
720+
new /obj/effect/abstract/turf_fire/shadow(target_turf, power, fire_color)
721+
// Further turfs experience less exposed_temperature and exposed_volume
722+
new /obj/effect/hotspot(target_turf) // for style
723+
target_turf.hotspot_expose(max(500, 900 - (100 * level)), max(50, 200 - (50 * level)), 1)
724+
725+
/datum/action/cooldown/spell/cone/staggered/shadowflame/do_mob_cone_effect(mob/living/target_mob, atom/caster, level)
726+
target_mob.adjust_fire_stacks(20, /datum/status_effect/fire_handler/fire_stacks/shadowflame)
727+
target_mob.ignite_mob()
728+
729+
730+
/// Cold purple turf fire
731+
/obj/effect/abstract/turf_fire/shadow
732+
light_power = -1.5
733+
light_color = COLOR_VELVET
734+
interact_with_atmos = FALSE //we don't interact with atmos, but we do lose power over time, despite technically being magical
735+
hex_color = COLOR_VELVET
736+
737+
738+
//might be WAY too dark
739+
/particles/embers/shadow
740+
gradient = list(COLOR_VELVET, COLOR_DARKSPAWN_PSI, COLOR_BLACK)
741+
742+
743+
//////////////////////////////////////////////////////////////////////////
744+
//--------------------------Cold Fire instead of hot--------------------//
745+
//////////////////////////////////////////////////////////////////////////
746+
/obj/effect/dummy/lighting_obj/moblight/shadowflame
747+
name = "fire"
748+
light_color = COLOR_VELVET
749+
light_range = LIGHT_RANGE_FIRE
750+
light_power = -1
751+
752+
/datum/status_effect/fire_handler/fire_stacks/shadowflame
753+
particle_type = /particles/embers/shadow
754+
moblight_type = /obj/effect/dummy/lighting_obj/moblight/shadowflame
755+
//how cold this fire is
756+
var/temperature = 0
757+
758+
//no hotspot
759+
/datum/status_effect/fire_handler/fire_stacks/shadowflame/deal_damage(seconds_per_tick)
760+
if(is_team_darkspawn(owner))
761+
return
762+
owner.on_fire_stack(seconds_per_tick, src)
763+
764+
/datum/status_effect/fire_handler/fire_stacks/shadowflame/harm_human(seconds_per_tick, no_protection = FALSE)
765+
var/mob/living/carbon/human/victim = owner
766+
var/thermal_multiplier = 1 - victim.get_cold_protection(temperature)
767+
768+
var/calculated_cooling = (BODYTEMP_COOLING_MAX - (stacks * 12)) * 0.5 * seconds_per_tick * thermal_multiplier
769+
victim.adjust_bodytemperature(calculated_cooling, temperature)
770+
771+
if(HAS_TRAIT(victim, TRAIT_RESISTCOLD) || !calculated_cooling)
772+
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "on_fire")
773+
else
774+
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire)

0 commit comments

Comments
 (0)