Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slings updated [Discontinued] #11

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/game/mecha/mecha.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference
var/datum/effect_system/spark_spread/spark_system = new
var/lights = FALSE
var/lamp_cooldown = 0 //stores time of cooldown to force disabling. dripstation edit
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
var/completely_disabled = FALSE //stops the mech from doing anything
var/omnidirectional_attacks = FALSE //lets mech shoot anywhere, not just in front of it
Expand Down
5 changes: 5 additions & 0 deletions code/game/mecha/mecha_actions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@
/datum/action/innate/mecha/mech_toggle_lights/Activate()
if(!owner || !chassis || chassis.occupant != owner)
return
if(chassis.lamp_cooldown > world.time) //dripstation edit
chassis.set_light_on(chassis.lights) //dripstation edit
button_icon_state = "mech_lights_off" //dripstation edit
chassis.occupant_message("Something prevents toggling.") //dripstation edit
return //dripstation edit
chassis.lights = !chassis.lights
if(chassis.lights)
button_icon_state = "mech_lights_on"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/silicon/robot/robot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -835,7 +835,7 @@
*/
/mob/living/silicon/robot/proc/toggle_headlamp(turn_off = FALSE, update_color = FALSE)
//if both lamp is enabled AND the update_color flag is on, keep the lamp on. Otherwise, if anything listed is true, disable the lamp.
if(!(update_color && lamp_enabled) && (turn_off || lamp_enabled || update_color || !lamp_functional || stat || low_power_mode))
if(!(update_color && lamp_enabled) && (turn_off || lamp_enabled || update_color || !lamp_functional || stat || low_power_mode || (lamp_cooldown > world.time))) //dripstation edit
if(lamp_functional && stat != DEAD)
set_light_on(TRUE) //If the lamp isn't broken and borg isn't dead, doomsday borgs cannot disable their light fully.
set_light_color("#FF0000") //This should only matter for doomsday borgs, as any other time the lamp will be off and the color not seen
Expand Down
7 changes: 7 additions & 0 deletions code/modules/spells/spell_types/jaunt/shadow_walk.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@
return FALSE
if(is_jaunting(owner))
return TRUE
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
if(H.on_fire) //dripstation edit start
owner.visible_message(span_boldwarning("[owner]'s body shudders and flickers into darkness for a moment!"),
span_shadowling("The void rejects the flames engulfing your body, throwing you back into the burning light!"))
H.AdjustKnockdown(30)
return FALSE //dripstation edit end
var/turf/cast_turf = get_turf(owner)
if(cast_turf.get_lumcount() >= SHADOW_SPECIES_LIGHT_THRESHOLD)
if(feedback)
Expand Down
5 changes: 5 additions & 0 deletions modular_dripstation/code/_onclick/hud/alert.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/atom/movable/screen/alert/lightexposure
name = "Light Exposure"
desc = "You're exposed to light."
icon_state = "lightexposure"
icon = 'modular_dripstation/icons/mob/alert.dmi'
80 changes: 80 additions & 0 deletions modular_dripstation/code/datums/diseases/transformation.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
#define LIGHT_DAM_THRESHOLD 0.25
///////////////////////////////// SHADOW MORPHISM /////////////////////////////////////
// Shadow Morphism, also known as curse of darkness
/datum/disease/transformation/shadow
name = "Shadow Morphism"
spread_text = "Shadowlings"
cure_text = "Sunshine. Rezadone" //Uh oh
cures = list(/datum/reagent/medicine/rezadone)
cure_chance = 6
stage_prob = 2
agent = "Pure Darkness"
desc = "Shadow curse"
severity = DISEASE_SEVERITY_BIOHAZARD
visibility_flags = 0
stage1 = list("You feel... You feel chill.")
stage2 = list("A cruel sense of cold overcomes you.")
stage3 = list(span_danger("You can't feel your eyes!"), span_danger("You feel strange anger at the light."))
stage4 = list(span_danger("You can't feel your eyes. It does not bother you anymore."), span_danger("You forget how it feels like to bask in the sun."))
stage5 = list("You feel the shadows invade your skin, leaping into the center of your chest! Now you're pure darkness!")
new_form = /mob/living/carbon/human/species/shadow

/datum/disease/transformation/shadow/stage_act()
..()
var/turf/T = affected_mob.loc
var/light_amount = T.get_lumcount()
switch(stage)
if(1)
if (prob(4))
to_chat(affected_mob, "Hmm. Must have been the wind.")
if (light_amount > LIGHT_DAM_THRESHOLD && prob(10))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/medicine/rezadone = 3))
if(2)
if (prob(8))
affected_mob.emote(pick("pale","shiver"))
if (light_amount > LIGHT_DAM_THRESHOLD && prob(10))
to_chat(affected_mob, span_danger("You feel a stabbing pain in your heart."))
affected_mob.Unconscious(50)
affected_mob.reagents.add_reagent_list(list(/datum/reagent/medicine/rezadone = 5))
if (light_amount < LIGHT_DAM_THRESHOLD && prob(10))
to_chat(affected_mob, span_danger("You feel fucking frostoil in your veins."))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/consumable/frostoil = 5))
if(3)
if (prob(6))
affected_mob.say(pick("Kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...", "Mmyyy eeyyeesss..."), forced = "shadow transformation")
affected_mob.emote(pick("pale","shiver"))
if(light_amount > LIGHT_DAM_THRESHOLD && prob(30))
affected_mob.throw_alert("lightexposure", /atom/movable/screen/alert/lightexposure)
affected_mob.adjustCloneLoss(3)
affected_mob.adjustFireLoss(1)
to_chat(affected_mob, span_danger("You feel your skin turns to dust!</span>"))//Message spam to say "GET THE FUCK OUT"
affected_mob.playsound_local(get_turf(affected_mob), 'sound/weapons/sear.ogg', 150, 1, pressure_affected = FALSE)
if(light_amount < LIGHT_DAM_THRESHOLD)
affected_mob.clear_alert("lightexposure")
if (light_amount < LIGHT_DAM_THRESHOLD && prob(20))
to_chat(affected_mob, span_danger("You feel fucking frostoil in your veins."))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/consumable/frostoil = 5))
if(4)
if(light_amount > LIGHT_DAM_THRESHOLD)
affected_mob.throw_alert("lightexposure", /atom/movable/screen/alert/lightexposure)
affected_mob.adjustCloneLoss(5)
affected_mob.adjustFireLoss(2)
to_chat(affected_mob, span_danger("You feel your skin turns to dust!</span>"))//Message spam to say "GET THE FUCK OUT"
affected_mob.playsound_local(get_turf(affected_mob), 'sound/weapons/sear.ogg', 150, 1, pressure_affected = FALSE)
if(light_amount < LIGHT_DAM_THRESHOLD)
affected_mob.adjustCloneLoss(-1)
affected_mob.adjustFireLoss(-2)
affected_mob.clear_alert("lightexposure")
if(affected_mob.cloneloss >= 100)
affected_mob.visible_message(span_danger("[affected_mob] skin turns to dust!"), "<span class'boldwarning'>Your skin turns to dust!</span>")
affected_mob.dust()
if(affected_mob.reagents.has_reagent(/datum/reagent/consumable/frostoil))
affected_mob.reagents.remove_reagent(/datum/reagent/consumable/frostoil)
to_chat(affected_mob, span_notice("You feel warmer... It feels good."))
affected_mob.bodytemperature = 310
if(affected_mob.reagents.has_reagent(/datum/reagent/medicine/rezadone))
affected_mob.reagents.remove_reagent(/datum/reagent/medicine/rezadone)
to_chat(affected_mob, span_notice("Nothing can help you at this point."))
if(5)
SEND_SOUND(affected_mob, sound('sound/effects/ghost.ogg'))
do_disease_transformation(affected_mob)
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/mob/living/simple_animal/ascendant_shadowling
name = "ascendant shadowling"
desc = "HOLY SHIT RUN THE FUCK AWAY- <span class='shadowling'>RAAAAAAA!</span>"
icon = 'yogstation/icons/mob/mob.dmi'
icon_state = "shadowling_ascended"
icon_living = "shadowling_ascended"
verb_say = "telepathically thunders"
verb_ask = "telepathically thunders"
verb_exclaim = "telepathically thunders"
verb_yell = "telepathically thunders"
force_threshold = 40 //INFINITY previously couldn`t die by normal means, now just very robast. They are halfway gods, u know.
damage_coeff = list(BRUTE = -0.5, BURN = 0.5, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
health = 1000
maxHealth = 1000 // Like maybe fire 40 times with pulse or do something crasy to stop them.
del_on_death = 1
speed = 0
see_in_dark = 9
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
see_invisible = SEE_INVISIBLE_MINIMUM
response_help = "pokes"
response_disarm = "flails at"
response_harm = "flails at"
harm_intent_damage = 0
armour_penetration = 50 //Godlike attacks with claws of pure darkness
melee_damage_lower = 40 //Was 60, then 160, nerfed. Giving a chance to assistents and deathsquad members.
melee_damage_upper = 100 //Was 160, increased penetration for chadness (previously attacks do 40 damage to deathsquads)
attacktext = "rends"
attack_sound = 'sound/weapons/slash.ogg'
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = INFINITY
environment_smash = 3
faction = list("faithless")
var/obj/item/gps/internal
var/internal_type = /obj/item/gps/internal/ascendant_shadowling
speech_span = SPAN_REALLYBIG //screw it someone else can figure out how to put both SPAN_YELL and SPAN_REALLYBIG on a speech_span later

/mob/living/simple_animal/ascendant_shadowling/Initialize()
. = ..()
LoadComponent(/datum/component/walk)
internal = new internal_type(src)

/mob/living/simple_animal/ascendant_shadowling/Destroy()
QDEL_NULL(internal)
. = ..()

/mob/living/simple_animal/ascendant_shadowling/death(gibbed)
if(!gibbed)
send_to_playing_players(span_shadowling("<b><font size=4> Shadow Signature Silently Sinks Into Void, Fleeing The Battle. Regroup. Reassemble. Evil Is Timeless, After All... </font>"))
var/X
var/mob/M = X
for(X in GLOB.alive_mob_list)
M = X
to_chat(M, span_notice("<i><b>You feel a woosh as newly released energy temporarily distorts space itself...</b></i>"))
..()

/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(movement_dir = 0)
return TRUE //copypasta from carp code

/mob/living/simple_animal/ascendant_shadowling/ex_act(severity)
return FALSE //You think an ascendant can be hurt by bombs? HA

/obj/item/gps/internal/ascendant_shadowling
icon_state = null
gpstag = "Shadowy Signal"
desc = "Shadowy?.. Oh god, oh fuck..."
invisibility = 100

/mob/living/simple_animal/ascendant_shadowling/singularity_act()
to_chat(src, "<span class='shadowling>NO NO NO AAAAAAAAAAAAAAAAAAA-</span>")
send_to_playing_players(span_shadowling("<b>\"<font size=6>NO!</font> <font size=5>I will</font> <font size=4>not be.... destroyed</font> <font size=3>by a....</font> <font size=2>AAAAAAA-</font>\""))
for(var/X in GLOB.alive_mob_list)
var/mob/M = X
to_chat(M, span_notice("<i><b>You feel a woosh as newly released energy temporarily distorts space itself...</b></i>"))
sound_to_playing_players('sound/hallucinations/wail.ogg') // Ghosts have ears!!
QDEL_NULL(internal)
. = ..()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/obj/item/clothing/suit/space/shadowling
armor = list(MELEE = 30, BULLET = 30, LASER = 0, ENERGY = 0, BOMB = 55, BIO = 100, RAD = 100)

/obj/item/clothing/head/shadowling
armor = list(MELEE = 30, BULLET = 30, LASER = 0, ENERGY = 0, BOMB = 55, BIO = 100, RAD = 100)
Loading
Loading