From 8ef4aa727efb68cdbb4e6129bbbf71d96c5c489d Mon Sep 17 00:00:00 2001 From: Charlie <69320440+hal9000PR@users.noreply.github.com> Date: Thu, 29 Dec 2022 17:26:37 +0000 Subject: [PATCH] Adds Shadow demons (#19732) * reshuffle * shared base type * moves this to the base type * the monster * event * FUCK * better sprites * refactors bloodcrawl, more nice sprites * review stuff * Apply suggestions from code review Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * heart of darkness * pre TM tweaks * ARGH * hopefully fixes double hits * tweaks * derp * tweaks * TEMP RUNTIME REMOVE LATER * fixes * runtime fixes * cig runtime fix * review + another runtime fix * re adds sprite * removes runtime * oop I forgor * DRUNK CODING * SPRITES Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> --- code/__DEFINES/gamemode.dm | 2 +- code/__DEFINES/mobs.dm | 3 +- code/__DEFINES/role_preferences.dm | 2 +- code/datums/spell_targeting/aoe.dm | 3 +- code/datums/spells/bloodcrawl.dm | 239 +++++++++++++++++- code/game/gamemodes/cult/cult_actions.dm | 2 +- code/game/gamemodes/cult/cult_items.dm | 2 +- .../game/gamemodes/miniantags/demons/demon.dm | 36 +++ .../demons/shadow_demon/shadow_demon.dm | 122 +++++++++ .../slaughter demon}/slaughter.dm | 88 +++---- .../miniantags/slaughter/bloodcrawl.dm | 180 ------------- code/game/machinery/computer/computer.dm | 2 +- code/game/machinery/doors/firedoor.dm | 2 +- code/game/machinery/dye_generator.dm | 2 +- code/game/machinery/floodlight.dm | 2 +- code/game/machinery/vendors/vending.dm | 2 +- code/game/objects/effects/glowshroom.dm | 4 +- code/game/objects/items/candle.dm | 7 + code/game/objects/items/devices/flashlight.dm | 18 +- code/game/objects/items/devices/paicard.dm | 2 +- code/game/objects/items/tools/welder.dm | 7 + code/game/objects/items/weapons/cigs.dm | 8 + code/game/objects/items/weapons/lighters.dm | 16 +- .../game/turfs/simulated/floor/light_floor.dm | 3 +- .../antagonists/_common/antag_spawner.dm | 9 +- code/modules/clothing/head/hardhat.dm | 4 +- code/modules/clothing/spacesuits/hardsuit.dm | 2 +- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- code/modules/events/event_container.dm | 1 + code/modules/events/slaughterevent.dm | 48 ++-- .../kitchen_machinery/smartfridge.dm | 2 +- code/modules/hydroponics/grown.dm | 6 + code/modules/hydroponics/growninedible.dm | 7 + code/modules/lighting/lighting_atom.dm | 2 +- code/modules/mob/dead/observer/orbit.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/mob/living/living.dm | 4 +- code/modules/mob/living/living_defines.dm | 2 - code/modules/mob/living/silicon/pai/pai.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 2 +- code/modules/pda/PDA.dm | 2 +- code/modules/power/lighting.dm | 2 +- code/modules/projectiles/gun.dm | 13 +- icons/effects/beam.dmi | Bin 24906 -> 25140 bytes icons/mob/actions/actions.dmi | Bin 136784 -> 137857 bytes icons/mob/mob.dmi | Bin 198857 -> 200403 bytes icons/obj/projectiles.dmi | Bin 40514 -> 40633 bytes paradise.dme | 5 +- 48 files changed, 563 insertions(+), 312 deletions(-) create mode 100644 code/game/gamemodes/miniantags/demons/demon.dm create mode 100644 code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm rename code/game/gamemodes/miniantags/{slaughter => demons/slaughter demon}/slaughter.dm (86%) delete mode 100644 code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm index 98d009ef143..d9ca290f684 100644 --- a/code/__DEFINES/gamemode.dm +++ b/code/__DEFINES/gamemode.dm @@ -37,7 +37,7 @@ #define SPECIAL_ROLE_NUKEOPS "Syndicate" #define SPECIAL_ROLE_PYROCLASTIC_SLIME "Pyroclastic Anomaly Slime" #define SPECIAL_ROLE_REVENANT "Revenant" -#define SPECIAL_ROLE_SLAUGHTER_DEMON "Slaughter Demon" +#define SPECIAL_ROLE_DEMON "Demon" #define SPECIAL_ROLE_SUPER "Super" #define SPECIAL_ROLE_SYNDICATE_DEATHSQUAD "Syndicate Commando" #define SPECIAL_ROLE_TRAITOR "Traitor" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index bb4e7e4d30c..e7aae77bc2a 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -244,7 +244,8 @@ #define isnymph(A) (istype((A), /mob/living/simple_animal/diona)) #define ishostile(A) (istype((A), /mob/living/simple_animal/hostile)) #define isterrorspider(A) (istype((A), /mob/living/simple_animal/hostile/poison/terror_spider)) -#define isslaughterdemon(A) (istype((A), /mob/living/simple_animal/slaughter)) +#define isslaughterdemon(A) (istype((A), /mob/living/simple_animal/demon/slaughter)) +#define isdemon(A) (istype((A), /mob/living/simple_animal/demon)) #define issilicon(A) (istype((A), /mob/living/silicon)) #define isAI(A) (istype((A), /mob/living/silicon/ai)) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 89847fe1246..55d9dce7968 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -28,7 +28,7 @@ #define ROLE_TRADER "trader" #define ROLE_VAMPIRE "vampire" // Role tags for EVERYONE! -#define ROLE_DEMON "slaughter demon" +#define ROLE_DEMON "demon" #define ROLE_SENTIENT "sentient animal" #define ROLE_POSIBRAIN "positronic brain" #define ROLE_GUARDIAN "guardian" diff --git a/code/datums/spell_targeting/aoe.dm b/code/datums/spell_targeting/aoe.dm index e3369de737d..306a59798d1 100644 --- a/code/datums/spell_targeting/aoe.dm +++ b/code/datums/spell_targeting/aoe.dm @@ -8,8 +8,9 @@ /datum/spell_targeting/aoe/choose_targets(mob/user, obj/effect/proc_holder/spell/spell, params, atom/clicked_atom) var/list/targets = list() + var/spell_center = use_turf_of_user ? get_turf(user) : user - for(var/atom/target in view_or_range(range, user, selection_type)) + for(var/atom/target in view_or_range(range, spell_center, selection_type)) if(valid_target(target, user, spell, FALSE)) targets += target if(inner_radius >= 0) diff --git a/code/datums/spells/bloodcrawl.dm b/code/datums/spells/bloodcrawl.dm index d8299e43ac2..6c3b770e817 100644 --- a/code/datums/spells/bloodcrawl.dm +++ b/code/datums/spells/bloodcrawl.dm @@ -9,12 +9,13 @@ action_icon_state = "bloodcrawl" action_background_icon_state = "bg_demon" panel = "Demon" + var/allowed_type = /obj/effect/decal/cleanable var/phased = FALSE /obj/effect/proc_holder/spell/bloodcrawl/create_new_targeting() var/datum/spell_targeting/targeted/T = new() T.selection_type = SPELL_SELECTION_RANGE - T.allowed_type = /obj/effect/decal/cleanable + T.allowed_type = allowed_type T.random_target = TRUE T.range = 1 T.use_turf_of_user = TRUE @@ -31,11 +32,241 @@ return FALSE /obj/effect/proc_holder/spell/bloodcrawl/cast(list/targets, mob/living/user) - var/obj/effect/decal/cleanable/target = targets[1] // TODO Test this spell + var/atom/target = targets[1] if(phased) - if(user.phasein(target)) + if(phasein(target, user)) phased = FALSE else - if(user.phaseout(target)) + if(phaseout(target, user)) phased = TRUE cooldown_handler.start_recharge() + +//Travel through pools of blood. Slaughter Demon powers for everyone! +#define BLOODCRAWL 1 +#define BLOODCRAWL_EAT 2 + + +/obj/item/bloodcrawl + name = "blood crawl" + desc = "You are unable to hold anything while in this form." + icon = 'icons/effects/blood.dmi' + flags = NODROP|ABSTRACT + +/obj/effect/dummy/slaughter //Can't use the wizard one, blocked by jaunt/slow + name = "odd blood" + icon = 'icons/effects/effects.dmi' + icon_state = "nothing" + density = FALSE + anchored = TRUE + invisibility = 60 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/dummy/slaughter/relaymove(mob/user, direction) + forceMove(get_step(src, direction)) + +/obj/effect/dummy/slaughter/ex_act() + return + +/obj/effect/dummy/slaughter/bullet_act() + return + +/obj/effect/dummy/slaughter/singularity_act() + return + + +/obj/effect/proc_holder/spell/bloodcrawl/proc/block_hands(mob/living/carbon/C) + if(C.l_hand || C.r_hand) + to_chat(C, "You may not hold items while blood crawling!") + return FALSE + var/obj/item/bloodcrawl/B1 = new(C) + var/obj/item/bloodcrawl/B2 = new(C) + B1.icon_state = "bloodhand_left" + B2.icon_state = "bloodhand_right" + C.put_in_hands(B1) + C.put_in_hands(B2) + C.regenerate_icons() + return TRUE + +/obj/effect/proc_holder/spell/bloodcrawl/proc/sink_animation(atom/A, mob/living/L) + var/turf/mob_loc = get_turf(L) + visible_message("[L] sinks into [A].") + playsound(mob_loc, 'sound/misc/enter_blood.ogg', 100, 1, -1) + var/atom/movable/overlay/animation = new(mob_loc) + animation.name = "odd blood" + animation.density = FALSE + animation.anchored = TRUE + animation.icon = 'icons/mob/mob.dmi' + animation.icon_state = "jaunt" + animation.layer = 5 + animation.master = mob_loc + animation.dir = L.dir + QDEL_IN(animation, 0.6 SECONDS) + +/obj/effect/proc_holder/spell/bloodcrawl/proc/handle_consumption(mob/living/L, mob/living/victim, atom/A, obj/effect/dummy/slaughter/holder) + if(!HAS_TRAIT(L, TRAIT_BLOODCRAWL_EAT)) + return + + if(!istype(victim)) + return + if(victim.stat == CONSCIOUS) + A.visible_message("[victim] kicks free of [A] just before entering it!") + L.stop_pulling() + return + + victim.forceMove(holder) + victim.emote("scream") + A.visible_message("[L] drags [victim] into [A]!") + L.stop_pulling() + to_chat(L, "You begin to feast on [victim]. You can not move while you are doing this.") + A.visible_message("Loud eating sounds come from the blood...") + var/sound + if(isslaughterdemon(L)) + var/mob/living/simple_animal/demon/slaughter/SD = L + sound = SD.feast_sound + else + sound = 'sound/misc/demon_consume.ogg' + + for(var/i in 1 to 3) + playsound(get_turf(L), sound, 100, 1) + sleep(3 SECONDS) + + if(!victim) + to_chat(L, "You happily devour... nothing? Your meal vanished at some point!") + return + + if(ishuman(victim) || isrobot(victim)) + to_chat(L, "You devour [victim]. Your health is fully restored.") + L.adjustBruteLoss(-1000) + L.adjustFireLoss(-1000) + L.adjustOxyLoss(-1000) + L.adjustToxLoss(-1000) + else + to_chat(L, "You devour [victim], but this measly meal barely sates your appetite!") + L.adjustBruteLoss(-25) + L.adjustFireLoss(-25) + + if(isslaughterdemon(L)) + var/mob/living/simple_animal/demon/slaughter/demon = L + demon.devoured++ + to_chat(victim, "You feel teeth sink into your flesh, and the--") + victim.adjustBruteLoss(1000) + victim.forceMove(demon) + demon.consumed_mobs.Add(victim) + if(ishuman(victim)) + var/mob/living/carbon/human/H = victim + if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/U = H.w_uniform + U.sensor_mode = SENSOR_OFF + else + victim.ghostize() + qdel(victim) + +/obj/effect/proc_holder/spell/bloodcrawl/proc/post_phase_in(mob/living/L, obj/effect/dummy/slaughter/holder) + L.notransform = FALSE + +/obj/effect/proc_holder/spell/bloodcrawl/proc/phaseout(obj/effect/decal/cleanable/B, mob/living/L) + + if(iscarbon(L) && !block_hands(L)) + return FALSE + + L.notransform = TRUE + INVOKE_ASYNC(src, PROC_REF(async_phase), B, L) + return TRUE + +/obj/effect/proc_holder/spell/bloodcrawl/proc/async_phase(obj/effect/decal/cleanable/B, mob/living/L) + var/turf/mobloc = get_turf(L) + sink_animation(B, L) + var/obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(mobloc) + L.forceMove(holder) + L.ExtinguishMob() + handle_consumption(L, L.pulling, B, holder) + post_phase_in(L, holder) + +/obj/effect/proc_holder/spell/bloodcrawl/proc/rise_animation(turf/tele_loc, mob/living/L, atom/A) + var/atom/movable/overlay/animation = new(tele_loc) + animation.name = "odd blood" + animation.density = FALSE + animation.anchored = TRUE + animation.icon = 'icons/mob/mob.dmi' + animation.icon_state = "jauntup" //Paradise Port:I reversed the jaunt animation so it looks like its rising up + animation.layer = 5 + animation.master = tele_loc + animation.dir = L.dir + if(prob(25) && isdemon(L)) + var/list/voice = list('sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/i_see_you1.ogg') + playsound(tele_loc, pick(voice),50, 1, -1) + A.visible_message("[L] rises out of [A]!") + playsound(get_turf(tele_loc), 'sound/misc/exit_blood.ogg', 100, 1, -1) + QDEL_IN(animation, 0.6 SECONDS) + +/obj/effect/proc_holder/spell/bloodcrawl/proc/unblock_hands(mob/living/carbon/C) + if(!istype(C)) + return + for(var/obj/item/bloodcrawl/BC in C) + qdel(BC) + +/obj/effect/proc_holder/spell/bloodcrawl/proc/rise_message(atom/A) + A.visible_message("[A] starts to bubble...") + +/obj/effect/proc_holder/spell/bloodcrawl/proc/post_phase_out(atom/A, mob/living/L) + if(isslaughterdemon(L)) + var/mob/living/simple_animal/demon/slaughter/S = L + S.speed = 0 + S.boost = world.time + 6 SECONDS + L.color = A.color + addtimer(VARSET_CALLBACK(L, color, null), 6 SECONDS) + + +/obj/effect/proc_holder/spell/bloodcrawl/proc/phasein(atom/A, mob/living/L) + + if(L.notransform) + to_chat(L, "Finish eating first!") + return FALSE + rise_message(A) + if(!do_after(L, 2 SECONDS, target = A)) + return FALSE + if(!A) + return FALSE + var/turf/tele_loc = isturf(A) ? A : A.loc + var/holder = L.loc + L.forceMove(tele_loc) + L.client.eye = L + + rise_animation(tele_loc, L, A) + + unblock_hands(L) + + QDEL_NULL(holder) + + post_phase_out(A, L) + return TRUE + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl + name = "Shadow Crawl" + desc = "Use darkness to phase out of existence." + allowed_type = /turf + action_background_icon_state = "shadow_demon_bg" + action_icon_state = "shadow_crawl" + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/valid_target(turf/target, user) + return target.get_lumcount() < 0.2 + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/rise_message(atom/A) + return + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/rise_animation(turf/tele_loc, mob/living/L, atom/A) + return + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/handle_consumption(mob/living/L, mob/living/victim, atom/A, obj/effect/dummy/slaughter/holder) + return + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/sink_animation(atom/A, mob/living/L) + A.visible_message("[L] sinks into the shadows...") + +/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/post_phase_in(mob/living/L, obj/effect/dummy/slaughter/holder) + ..() + if(!istype(L, /mob/living/simple_animal/demon/shadow)) + return + var/mob/living/simple_animal/demon/shadow/S = L + S.RegisterSignal(holder, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/living/simple_animal/demon/shadow, check_darkness)) + diff --git a/code/game/gamemodes/cult/cult_actions.dm b/code/game/gamemodes/cult/cult_actions.dm index 449a109f315..26c08709a2d 100644 --- a/code/game/gamemodes/cult/cult_actions.dm +++ b/code/game/gamemodes/cult/cult_actions.dm @@ -47,7 +47,7 @@ var/title var/large = FALSE var/living_message - if(istype(user, /mob/living/simple_animal/slaughter/cult)) //Harbringers of the Slaughter + if(istype(user, /mob/living/simple_animal/demon/slaughter/cult)) //Harbringers of the Slaughter title = "Harbringer of the Slaughter" large = TRUE else diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 2b1487db3ed..22eeda637d8 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -303,7 +303,7 @@ if(curselimit > 1) to_chat(user, "We have exhausted our ability to curse the shuttle.") return - if(locate(/obj/singularity/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/slaughter/cult) in GLOB.mob_list) + if(locate(/obj/singularity/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/demon/slaughter/cult) in GLOB.mob_list) to_chat(user, "Nar'Sie or her avatars are already on this plane, there is no delaying the end of all things.") return diff --git a/code/game/gamemodes/miniantags/demons/demon.dm b/code/game/gamemodes/miniantags/demons/demon.dm new file mode 100644 index 00000000000..e75851d9c4a --- /dev/null +++ b/code/game/gamemodes/miniantags/demons/demon.dm @@ -0,0 +1,36 @@ +/mob/living/simple_animal/demon + name = "a generic demon" + desc = "you shouldnt be reading this, file a github report" + speak_emote = list("gurgles") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "punches" + speed = 1 + a_intent = INTENT_HARM + mob_biotypes = MOB_ORGANIC | MOB_HUMANOID + stop_automated_movement = TRUE + status_flags = CANPUSH + attack_sound = 'sound/misc/demon_attack1.ogg' + death_sound = 'sound/misc/demon_dies.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 + faction = list("demon") + attacktext = "wildly tears into" + maxHealth = 200 + health = 200 + environment_smash = ENVIRONMENT_SMASH_STRUCTURES + obj_damage = 50 + melee_damage_lower = 30 + melee_damage_upper = 30 + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + del_on_death = TRUE + var/datum/action/innate/demon/whisper/whisper_action + +/mob/living/simple_animal/demon/Initialize(mapload) + . = ..() + whisper_action = new() + whisper_action.Grant(src) + diff --git a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm new file mode 100644 index 00000000000..34869d46d84 --- /dev/null +++ b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm @@ -0,0 +1,122 @@ +/mob/living/simple_animal/demon/shadow + name = "shadow demon" + desc = "A creature that's barely tangible, you can feel its gaze piercing you" + icon = 'icons/mob/mob.dmi' + icon_state = "shadow_demon" + icon_living = "shadow_demon" + move_resist = MOVE_FORCE_STRONG + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE // so they can tell where the darkness is + loot = list(/obj/item/organ/internal/heart/demon/shadow) + var/thrown_alert = FALSE + +/mob/living/simple_animal/demon/shadow/Life(seconds, times_fired) + . = ..() + var/lum_count = check_darkness() + var/damage_mod = istype(loc, /obj/effect/dummy/slaughter) ? 0.5 : 1 + if(lum_count > 0.2) + adjustBruteLoss(40 * damage_mod) // 10 seconds in light + SEND_SOUND(src, sound('sound/weapons/sear.ogg')) + to_chat(src, "The light scalds you!") + else + adjustBruteLoss(-20) + + +/mob/living/simple_animal/demon/shadow/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + if(isliving(AM)) // when a living creature is thrown at it, dont knock it back + return + ..() + + +/mob/living/simple_animal/demon/shadow/Initialize(mapload) + . = ..() + AddSpell(new /obj/effect/proc_holder/spell/fireball/shadow_grapple) + var/obj/effect/proc_holder/spell/bloodcrawl/shadow_crawl/S = new + AddSpell(S) + if(istype(loc, /obj/effect/dummy/slaughter)) + S.phased = TRUE + RegisterSignal(loc, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/living/simple_animal/demon/shadow, check_darkness)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(check_darkness)) + +/mob/living/simple_animal/demon/shadow/proc/check_darkness() + var/turf/T = get_turf(src) + var/lum_count = T.get_lumcount() + if(lum_count > 0.2) + if(!thrown_alert) + thrown_alert = TRUE + throw_alert("light", /obj/screen/alert/lightexposure) + alpha = 255 + else + if(thrown_alert) + thrown_alert = FALSE + clear_alert("light") + alpha = 125 + return lum_count + + +/obj/effect/proc_holder/spell/fireball/shadow_grapple + name = "Shadow Grapple" + desc = "Fire one of your hands, if it hits a person it pulls them in. If you hit a structure you get pulled to the structure." + base_cooldown = 10 SECONDS + fireball_type = /obj/item/projectile/magic/shadow_hand + + selection_activated_message = "You raise your hand, full of demonic energy! Left-click to cast at a target!" + selection_deactivated_message = "You re-absorb the energy...for now." + + action_background_icon_state = "shadow_demon_bg" + action_icon_state = "shadow_grapple" + panel = "Demon" + + sound = null + invocation_type = "none" + invocation = null + +/obj/effect/proc_holder/spell/fireball/shadow_grapple/update_icon_state() + return + +/obj/item/projectile/magic/shadow_hand + name = "shadow hand" + icon_state = "shadow_hand" + plane = FLOOR_PLANE + var/hit = FALSE + +/obj/item/projectile/magic/shadow_hand/fire(setAngle) + if(firer) + firer.Beam(src, icon_state = "grabber_beam", time = INFINITY, maxdistance = INFINITY, beam_sleep_time = 1, beam_type = /obj/effect/ebeam/floor) + return ..() + +/obj/item/projectile/magic/shadow_hand/on_hit(atom/target, blocked, hit_zone) + if(hit) + return + hit = TRUE // to prevent double hits from the pull + . = ..() + if(!isliving(target)) + firer.throw_at(get_step(target, get_dir(target, firer)), 50, 10) + else + var/mob/living/L = target + L.Immobilize(2 SECONDS) + L.apply_damage(40, BRUTE, BODY_ZONE_CHEST) + L.throw_at(get_step(firer, get_dir(firer, target)), 50, 10) + target.extinguish_light(TRUE) + +/obj/effect/ebeam/floor + plane = FLOOR_PLANE + +/obj/item/organ/internal/heart/demon/shadow + name = "heart of darkness" + desc = "It still beats furiously, emitting an aura of fear." + color = COLOR_BLACK + +/obj/item/organ/internal/heart/demon/shadow/attack_self(mob/living/user) + . = ..() + user.drop_item() + insert(user) + +/obj/item/organ/internal/heart/demon/shadow/insert(mob/living/carbon/M, special = 0) + . = ..() + if(M.mind) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball/shadow_grapple) + +/obj/item/organ/internal/heart/demon/shadow/remove(mob/living/carbon/M, special = 0) + ..() + if(M.mind) + M.mind.RemoveSpell(/obj/effect/proc_holder/spell/fireball/shadow_grapple) diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm similarity index 86% rename from code/game/gamemodes/miniantags/slaughter/slaughter.dm rename to code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm index 019cc987c05..6f00c71c91d 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm @@ -1,42 +1,15 @@ //////////////////The Monster -/mob/living/simple_animal/slaughter +/mob/living/simple_animal/demon/slaughter name = "slaughter demon" real_name = "slaughter demon" desc = "A large, menacing creature covered in armored black scales. You should run." speak = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar", "karazet", "geeri", "orkan", "allaq") - speak_emote = list("gurgles") - emote_hear = list("wails","screeches") - response_help = "thinks better of touching" - response_disarm = "flails at" - response_harm = "punches" icon = 'icons/mob/mob.dmi' icon_state = "daemon" icon_living = "daemon" - speed = 1 - a_intent = INTENT_HARM - mob_biotypes = MOB_ORGANIC | MOB_HUMANOID - stop_automated_movement = TRUE - status_flags = CANPUSH - attack_sound = 'sound/misc/demon_attack1.ogg' - var/feast_sound = 'sound/misc/demon_consume.ogg' - death_sound = 'sound/misc/demon_dies.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 - faction = list("slaughter") - attacktext = "wildly tears into" - maxHealth = 200 - health = 200 - environment_smash = 1 - obj_damage = 50 - melee_damage_lower = 30 - melee_damage_upper = 30 - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE var/boost = 0 - - + var/feast_sound = 'sound/misc/demon_consume.ogg' var/devoured = 0 var/list/consumed_mobs = list() @@ -44,7 +17,7 @@ var/cooldown = 0 var/gorecooldown = 0 var/vialspawned = FALSE - loot = list(/obj/effect/decal/cleanable/blood/innards, /obj/effect/decal/cleanable/blood, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic, /obj/item/organ/internal/heart/demon) + loot = list(/obj/effect/decal/cleanable/blood/innards, /obj/effect/decal/cleanable/blood, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic, /obj/item/organ/internal/heart/demon/slaughter) var/playstyle_string = "You are the Slaughter Demon, a terrible creature from another existence. You have a single desire: to kill. \ You may use the blood crawl icon when on blood pools to travel through them, appearing and dissapearing from the station at will. \ Pulling a dead or critical mob while you enter a pool will pull them in with you, allowing you to feast. \ @@ -52,30 +25,26 @@ del_on_death = TRUE deathmessage = "screams in anger as it collapses into a puddle of viscera!" - var/datum/action/innate/demon/whisper/whisper_action - -/mob/living/simple_animal/slaughter/New() +/mob/living/simple_animal/demon/slaughter/New() ..() remove_from_all_data_huds() ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "bloodcrawl_eat") var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new AddSpell(bloodspell) - whisper_action = new() - whisper_action.Grant(src) if(istype(loc, /obj/effect/dummy/slaughter)) bloodspell.phased = TRUE addtimer(CALLBACK(src, PROC_REF(attempt_objectives)), 5 SECONDS) -/mob/living/simple_animal/slaughter/Life(seconds, times_fired) +/mob/living/simple_animal/demon/slaughter/Life(seconds, times_fired) ..() if(boost < world.time) speed = 1 else speed = 0 -/mob/living/simple_animal/slaughter/proc/attempt_objectives() +/mob/living/simple_animal/demon/slaughter/proc/attempt_objectives() if(mind) to_chat(src, src.playstyle_string) to_chat(src, "You are not currently in the same plane of existence as the station. Use the blood crawl action at a blood pool to manifest.") @@ -100,28 +69,24 @@ name = "pile of viscera" desc = "A repulsive pile of guts and gore." -/mob/living/simple_animal/slaughter/Destroy() +/mob/living/simple_animal/demon/slaughter/Destroy() // Only execute the below if we successfully died for(var/mob/living/M in consumed_mobs) release_consumed(M) . = ..() -/mob/living/simple_animal/slaughter/proc/release_consumed(mob/living/M) +/mob/living/simple_animal/demon/slaughter/proc/release_consumed(mob/living/M) M.forceMove(get_turf(src)) -/mob/living/simple_animal/slaughter/phasein() - . = ..() - speed = 0 - boost = world.time + 60 // Midround slaughter demon, less tanky -/mob/living/simple_animal/slaughter/lesser +/mob/living/simple_animal/demon/slaughter/lesser maxHealth = 130 health = 130 // Cult slaughter demon -/mob/living/simple_animal/slaughter/cult //Summoned as part of the cult objective "Bring the Slaughter" +/mob/living/simple_animal/demon/slaughter/cult //Summoned as part of the cult objective "Bring the Slaughter" name = "harbinger of the slaughter" real_name = "harbinger of the Slaughter" desc = "An awful creature from beyond the realms of madness." @@ -163,10 +128,10 @@ return 0 to_chat(user, "You sense a terrified soul at [A]. Show [A.p_them()] the error of [A.p_their()] ways.") -/mob/living/simple_animal/slaughter/cult/New() +/mob/living/simple_animal/demon/slaughter/cult/New() ..() spawn(5) - var/list/demon_candidates = SSghost_spawns.poll_candidates("Do you want to play as a slaughter demon?", ROLE_DEMON, TRUE, 10 SECONDS, source = /mob/living/simple_animal/slaughter/cult) + var/list/demon_candidates = SSghost_spawns.poll_candidates("Do you want to play as a slaughter demon?", ROLE_DEMON, TRUE, 10 SECONDS, source = /mob/living/simple_animal/demon/slaughter/cult) if(!demon_candidates.len) visible_message("[src] disappears in a flash of red light!") qdel(src) @@ -174,7 +139,7 @@ if(QDELETED(src)) // Just in case return var/mob/M = pick(demon_candidates) - var/mob/living/simple_animal/slaughter/cult/S = src + var/mob/living/simple_animal/demon/slaughter/cult/S = src if(!M || !M.client) visible_message("[src] disappears in a flash of red light!") qdel(src) @@ -240,7 +205,7 @@ //////////The Loot -//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl +// Demon heart base type /obj/item/organ/internal/heart/demon name = "demon heart" desc = "Still it beats furiously, emanating an aura of utter hate." @@ -254,11 +219,22 @@ /obj/item/organ/internal/heart/demon/prepare_eat() return // Just so people don't accidentally waste it +/obj/item/organ/internal/heart/demon/Stop() + return 0 // Always beating. + /obj/item/organ/internal/heart/demon/attack_self(mob/living/user) user.visible_message("[user] raises [src] to [user.p_their()] mouth and tears into it with [user.p_their()] teeth!", \ "An unnatural hunger consumes you. You raise [src] to your mouth and devour it!") playsound(user, 'sound/misc/demon_consume.ogg', 50, 1) +//////////The Loot + +//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl +/// SLAUGHTER DEMON HEART + +/obj/item/organ/internal/heart/demon/slaughter/attack_self(mob/living/user) + ..() + // Eating the heart for the first time. Gives basic bloodcrawling. This is the only time we need to insert the heart. if(!HAS_TRAIT(user, TRAIT_BLOODCRAWL)) user.visible_message("[user]'s eyes flare a deep crimson!", \ @@ -279,23 +255,19 @@ to_chat(user, "...and you don't feel any different.") qdel(src) -/obj/item/organ/internal/heart/demon/insert(mob/living/carbon/M, special = 0) +/obj/item/organ/internal/heart/demon/slaughter/insert(mob/living/carbon/M, special = 0) . = ..() if(M.mind) M.mind.AddSpell(new /obj/effect/proc_holder/spell/bloodcrawl(null)) -/obj/item/organ/internal/heart/demon/remove(mob/living/carbon/M, special = 0) +/obj/item/organ/internal/heart/demon/slaughter/remove(mob/living/carbon/M, special = 0) ..() if(M.mind) REMOVE_TRAIT(M, TRAIT_BLOODCRAWL, "bloodcrawl") REMOVE_TRAIT(M, TRAIT_BLOODCRAWL_EAT, "bloodcrawl_eat") M.mind.RemoveSpell(/obj/effect/proc_holder/spell/bloodcrawl) -/obj/item/organ/internal/heart/demon/Stop() - return 0 // Always beating. - - -/mob/living/simple_animal/slaughter/laughter +/mob/living/simple_animal/demon/slaughter/laughter // The laughter demon! It's everyone's best friend! It just wants to hug // them so much, it wants to hug everyone at once! name = "laughter demon" @@ -324,7 +296,7 @@ deathmessage = "fades out, as all of its friends are released from its prison of hugs." loot = list(/mob/living/simple_animal/pet/cat/kitten{name = "Laughter"}) -/mob/living/simple_animal/slaughter/laughter/release_consumed(mob/living/M) +/mob/living/simple_animal/demon/slaughter/laughter/release_consumed(mob/living/M) if(M.revive()) M.grab_ghost(force = TRUE) playsound(get_turf(src), feast_sound, 50, 1, -1) @@ -348,7 +320,7 @@ for(var/datum/mind/M in get_owners()) if(!isslaughterdemon(M.current) || QDELETED(M.current)) continue - var/mob/living/simple_animal/slaughter/R = M.current + var/mob/living/simple_animal/demon/slaughter/R = M.current kill_count += R.devoured if(kill_count >= targetKill) return TRUE diff --git a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm b/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm deleted file mode 100644 index 988ff1f4595..00000000000 --- a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm +++ /dev/null @@ -1,180 +0,0 @@ -//Travel through pools of blood. Slaughter Demon powers for everyone! -#define BLOODCRAWL 1 -#define BLOODCRAWL_EAT 2 - -/mob/living/proc/phaseout(obj/effect/decal/cleanable/B) - - if(iscarbon(src)) - var/mob/living/carbon/C = src - if(C.l_hand || C.r_hand) - to_chat(C, "You may not hold items while blood crawling!") - return 0 - var/obj/item/bloodcrawl/B1 = new(C) - var/obj/item/bloodcrawl/B2 = new(C) - B1.icon_state = "bloodhand_left" - B2.icon_state = "bloodhand_right" - C.put_in_hands(B1) - C.put_in_hands(B2) - C.regenerate_icons() - - var/mob/living/kidnapped = null - var/turf/mobloc = get_turf(loc) - notransform = TRUE - spawn(0) - visible_message("[src] sinks into [B].") - playsound(get_turf(src), 'sound/misc/enter_blood.ogg', 100, 1, -1) - var/obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(mobloc) - var/atom/movable/overlay/animation = new /atom/movable/overlay(mobloc) - animation.name = "odd blood" - animation.density = FALSE - animation.anchored = TRUE - animation.icon = 'icons/mob/mob.dmi' - animation.icon_state = "jaunt" - animation.layer = 5 - animation.master = holder - animation.dir = dir - - ExtinguishMob() - if(pulling && HAS_TRAIT(src, TRAIT_BLOODCRAWL_EAT)) - if(isliving(pulling)) - var/mob/living/victim = pulling - if(victim.stat == CONSCIOUS) - visible_message("[victim] kicks free of [B] just before entering it!") - stop_pulling() - else - victim.forceMove(holder)//holder - victim.emote("scream") - visible_message("[src] drags [victim] into [B]!") - kidnapped = victim - stop_pulling() - flick("jaunt",animation) - - src.holder = holder - forceMove(holder) - - if(kidnapped) - to_chat(src, "You begin to feast on [kidnapped]. You can not move while you are doing this.") - visible_message("Loud eating sounds come from the blood...") - sleep(6) - if(animation) - qdel(animation) - var/sound - if(isslaughterdemon(src)) - var/mob/living/simple_animal/slaughter/SD = src - sound = SD.feast_sound - else - sound = 'sound/misc/demon_consume.ogg' - - for(var/i in 1 to 3) - playsound(get_turf(src), sound, 100, 1) - sleep(30) - - if(kidnapped) - if(ishuman(kidnapped) || isrobot(kidnapped)) - to_chat(src, "You devour [kidnapped]. Your health is fully restored.") - adjustBruteLoss(-1000) - adjustFireLoss(-1000) - adjustOxyLoss(-1000) - adjustToxLoss(-1000) - else - to_chat(src, "You devour [kidnapped], but this measly meal barely sates your appetite!") - adjustBruteLoss(-25) - adjustFireLoss(-25) - if(istype(src, /mob/living/simple_animal/slaughter)) //rason, do not want humans to get this - var/mob/living/simple_animal/slaughter/demon = src - demon.devoured++ - to_chat(kidnapped, "You feel teeth sink into your flesh, and the--") - kidnapped.adjustBruteLoss(1000) - kidnapped.forceMove(src) - demon.consumed_mobs.Add(kidnapped) - if(ishuman(kidnapped)) - var/mob/living/carbon/human/H = kidnapped - if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = H.w_uniform - U.sensor_mode = SENSOR_OFF - else - kidnapped.ghostize() - qdel(kidnapped) - else - to_chat(src, "You happily devour... nothing? Your meal vanished at some point!") - else - sleep(6) - if(animation) - qdel(animation) - notransform = FALSE - return 1 - -/obj/item/bloodcrawl - name = "blood crawl" - desc = "You are unable to hold anything while in this form." - icon = 'icons/effects/blood.dmi' - flags = NODROP|ABSTRACT - -/mob/living/proc/phasein(obj/effect/decal/cleanable/B) - - if(notransform) - to_chat(src, "Finish eating first!") - return 0 - B.visible_message("[B] starts to bubble...") - if(!do_after(src, 20, target = B)) - return - if(!B) - return - forceMove(B.loc) - client.eye = src - - var/atom/movable/overlay/animation = new /atom/movable/overlay( B.loc ) - animation.name = "odd blood" - animation.density = FALSE - animation.anchored = TRUE - animation.icon = 'icons/mob/mob.dmi' - animation.icon_state = "jauntup" //Paradise Port:I reversed the jaunt animation so it looks like its rising up - animation.layer = 5 - animation.master = B.loc - animation.dir = dir - - if(prob(25) && isslaughterdemon(src)) - var/list/voice = list('sound/hallucinations/behind_you1.ogg','sound/hallucinations/im_here1.ogg','sound/hallucinations/turn_around1.ogg','sound/hallucinations/i_see_you1.ogg') - playsound(get_turf(src), pick(voice),50, 1, -1) - visible_message("\The [src] rises out of \the [B]!") - playsound(get_turf(src), 'sound/misc/exit_blood.ogg', 100, 1, -1) - - flick("jauntup",animation) - QDEL_NULL(holder) - - if(iscarbon(src)) - var/mob/living/carbon/C = src - for(var/obj/item/bloodcrawl/BC in C) - C.flags = null - C.unEquip(BC) - qdel(BC) - - var/oldcolor = color - color = B.color - sleep(6)//wait for animation to finish - if(animation) - qdel(animation) - spawn(30) - color = oldcolor - return 1 - -/obj/effect/dummy/slaughter //Can't use the wizard one, blocked by jaunt/slow - name = "odd blood" - icon = 'icons/effects/effects.dmi' - icon_state = "nothing" - density = FALSE - anchored = TRUE - invisibility = 60 - resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/effect/dummy/slaughter/relaymove(mob/user, direction) - forceMove(get_step(src,direction)) - -/obj/effect/dummy/slaughter/ex_act() - return - -/obj/effect/dummy/slaughter/bullet_act() - return - -/obj/effect/dummy/slaughter/singularity_act() - return diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index df331cda39c..e4ecff59ca6 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -30,7 +30,7 @@ return FALSE return TRUE -/obj/machinery/computer/extinguish_light() +/obj/machinery/computer/extinguish_light(force = FALSE) set_light(0) underlays.Cut() visible_message("[src] grows dim, its screen barely readable.") diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index dd349be81fe..68c16ce8be7 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -97,7 +97,7 @@ else set_light(1, LIGHTING_MINIMUM_POWER) -/obj/machinery/door/firedoor/extinguish_light() +/obj/machinery/door/firedoor/extinguish_light(force = FALSE) set_light(0) update_icon(UPDATE_OVERLAYS) diff --git a/code/game/machinery/dye_generator.dm b/code/game/machinery/dye_generator.dm index fb2551c3e45..8a0def9bb5b 100644 --- a/code/game/machinery/dye_generator.dm +++ b/code/game/machinery/dye_generator.dm @@ -26,7 +26,7 @@ set_light(0) update_icon(UPDATE_OVERLAYS) -/obj/machinery/dye_generator/extinguish_light() +/obj/machinery/dye_generator/extinguish_light(force = FALSE) set_light(0) underlays.Cut() diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 635608a0fe9..b780768ad90 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -145,7 +145,7 @@ update_icon(UPDATE_ICON_STATE) return TRUE -/obj/machinery/floodlight/extinguish_light() +/obj/machinery/floodlight/extinguish_light(force = FALSE) on = FALSE set_light(0) update_icon(UPDATE_ICON_STATE) diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index 7470e1d1373..f3e354b37f7 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -785,7 +785,7 @@ if(shoot_inventory && prob(shoot_chance)) throw_item() -/obj/machinery/economy/vending/extinguish_light() +/obj/machinery/economy/vending/extinguish_light(force = FALSE) set_light(0) underlays.Cut() diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 27e791024d4..562c7390b6c 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -13,7 +13,7 @@ var/floor = 0 var/obj/item/seeds/myseed = /obj/item/seeds/glowshroom -/obj/structure/glowshroom/extinguish_light() +/obj/structure/glowshroom/extinguish_light(force = FALSE) visible_message("[src] withers away!") qdel(src) @@ -29,7 +29,7 @@ icon_state = "shadowshroom" myseed = /obj/item/seeds/glowshroom/shadowshroom -/obj/structure/glowshroom/shadowshroom/extinguish_light() +/obj/structure/glowshroom/shadowshroom/extinguish_light(force = FALSE) return /obj/structure/glowshroom/Destroy() diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index c3d4c366d0e..dda80c6fef4 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -141,6 +141,13 @@ if(lit) set_light(CANDLE_LUM * 2) + +/obj/item/candle/extinguish_light(force) + if(!force) + return + infinite = FALSE + wax = 1 // next process will burn it out + #undef TALL_CANDLE #undef MID_CANDLE #undef SHORT_CANDLE diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 21eca98f149..ef4561b5720 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -82,7 +82,7 @@ else return ..() -/obj/item/flashlight/extinguish_light() +/obj/item/flashlight/extinguish_light(force = FALSE) if(on) on = FALSE update_brightness() @@ -283,8 +283,12 @@ new T(loc) qdel(src) // return INITIALIZE_HINT_QDEL <-- Doesn't work -/obj/item/flashlight/flare/extinguish_light() - visible_message("[src] dims slightly before scattering the shadows around it.") +/obj/item/flashlight/flare/extinguish_light(force = FALSE) + if(force) + fuel = 0 + visible_message("[src] burns up rapidly!") + else + visible_message("[src] dims slightly before scattering the shadows around it.") /obj/item/flashlight/flare/torch name = "torch" @@ -321,8 +325,12 @@ /obj/item/flashlight/slime/attack_self(mob/user) return //Bio-luminescence does not toggle. -/obj/item/flashlight/slime/extinguish_light() - visible_message("[src] dims slightly before scattering the shadows around it.") +/obj/item/flashlight/slime/extinguish_light(force = FALSE) + if(force) + visible_message("[src] withers away.") + qdel(src) + else + visible_message("[src] dims slightly before scattering the shadows around it.") /obj/item/flashlight/emp origin_tech = "magnets=3;syndicate=1" diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 800f4163ed6..3610a8b4919 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -329,7 +329,7 @@ M.emp_act(severity) ..() -/obj/item/paicard/extinguish_light() +/obj/item/paicard/extinguish_light(force = FALSE) if(pai) pai.extinguish_light() set_light(0) diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm index af6f10c8f66..9faa226cbd5 100644 --- a/code/game/objects/items/tools/welder.dm +++ b/code/game/objects/items/tools/welder.dm @@ -72,6 +72,13 @@ reagents.add_reagent("fuel", 1) ..() +/obj/item/weldingtool/extinguish_light(force) + if(!force) + return + if(!tool_enabled) + return + remove_fuel(maximum_fuel) + /obj/item/weldingtool/attack_self(mob/user) if(tool_enabled) //Turn off the welder if it's on to_chat(user, "You switch off [src].") diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index f789c869865..3ef91574a60 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -189,6 +189,11 @@ LIGHTERS ARE IN LIGHTERS.DM smoke() +/obj/item/clothing/mask/cigarette/extinguish_light(force) + if(!force) + return + die() + /obj/item/clothing/mask/cigarette/attack_self(mob/user) if(lit) user.visible_message("[user] calmly drops and treads on [src], putting it out instantly.") @@ -362,6 +367,9 @@ LIGHTERS ARE IN LIGHTERS.DM chem_volume = 200 list_reagents = list("nicotine" = 200) +/obj/item/clothing/mask/cigarette/pipe/die() + return + /obj/item/clothing/mask/cigarette/pipe/light(flavor_text = null) if(!lit) lit = TRUE diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index fae9a68e9ae..256f9656863 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -69,10 +69,16 @@ force = 0 attack_verb = null //human_defense.dm takes care of it - show_off_message(user) + if(user) + show_off_message(user) set_light(0) STOP_PROCESSING(SSobj, src) +/obj/item/lighter/extinguish_light(force) + if(!force) + return + turn_off_lighter() + /obj/item/lighter/proc/show_off_message(mob/living/user) to_chat(user, "You shut off [src].") @@ -124,6 +130,9 @@ /obj/item/lighter/zippo/turn_off_lighter(mob/living/user) . = ..() + if(!user) + return + if(world.time > next_off_message) user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.") playsound(src.loc, 'sound/items/zippoclose.ogg', 25, 1) @@ -201,6 +210,11 @@ ..() matchignite() +/obj/item/match/extinguish_light(force) + if(!force) + return + matchburnout() + /obj/item/match/proc/matchignite() if(!lit && !burnt) lit = TRUE diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm index 033e8ac8bef..5c8fd14852c 100644 --- a/code/game/turfs/simulated/floor/light_floor.dm +++ b/code/game/turfs/simulated/floor/light_floor.dm @@ -103,8 +103,7 @@ A.addStaticPower(100, STATIC_LIGHT) update_icon() - -/turf/simulated/floor/light/extinguish_light() +/turf/simulated/floor/light/extinguish_light(force = FALSE) toggle_light(FALSE) visible_message("[src] flickers and falls dark.") diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 2d8d485df45..efd2d781047 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -165,7 +165,7 @@ var/veil_msg = "You sense a dark presence lurking \ just beyond the veil..." var/objective_verb = "Kill" - var/mob/living/demon_type = /mob/living/simple_animal/slaughter + var/mob/living/demon_type = /mob/living/simple_animal/demon/slaughter /obj/item/antag_spawner/slaughter_demon/attack_self(mob/user) if(level_blocks_magic(user.z)) //this is to make sure the wizard does NOT summon a demon from the Den.. @@ -179,7 +179,7 @@ to_chat(user, "You break the seal on the bottle, calling upon the dire spirits of the underworld...") var/type = "slaughter" - if(demon_type == /mob/living/simple_animal/slaughter/laughter) + if(demon_type == /mob/living/simple_animal/demon/slaughter/laughter) type = "laughter" var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a [type] demon summoned by [user.real_name]?", ROLE_DEMON, TRUE, 10 SECONDS, source = demon_type) @@ -196,9 +196,8 @@ /obj/item/antag_spawner/slaughter_demon/spawn_antag(client/C, turf/T, type = "", mob/user) var/obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(T) - var/mob/living/simple_animal/slaughter/S = new demon_type(holder) + var/mob/living/simple_animal/demon/slaughter/S = new demon_type(holder) S.vialspawned = TRUE - S.holder = holder S.key = C.key S.mind.assigned_role = S.name S.mind.special_role = S.name @@ -226,7 +225,7 @@ veil_msg = "You sense an adorable presence \ lurking just beyond the veil..." objective_verb = "Hug and tickle" - demon_type = /mob/living/simple_animal/slaughter/laughter + demon_type = /mob/living/simple_animal/demon/slaughter/laughter ///////////MORPH diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 0b198442e12..14fd62bb2b6 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -44,10 +44,10 @@ /obj/item/clothing/head/hardhat/proc/turn_off(mob/user) set_light(0) -/obj/item/clothing/head/hardhat/extinguish_light(mob/living/user) +/obj/item/clothing/head/hardhat/extinguish_light(force = FALSE) if(on) on = FALSE - turn_off(user) + turn_off() update_icon(UPDATE_ICON_STATE) visible_message("[src]'s light fades and turns off.") diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 28f39c2f5f7..7e09f75ab8d 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -68,7 +68,7 @@ var/datum/action/A = X A.UpdateButtonIcon() -/obj/item/clothing/head/helmet/space/hardsuit/extinguish_light() +/obj/item/clothing/head/helmet/space/hardsuit/extinguish_light(force = FALSE) if(on) toggle_light() visible_message("[src]'s light fades and turns off.") diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 5bc889da767..b5f7cc3a583 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -82,7 +82,7 @@ set_light(brightness_on) -/obj/item/clothing/head/helmet/space/plasmaman/extinguish_light() +/obj/item/clothing/head/helmet/space/plasmaman/extinguish_light(force = FALSE) if(on) toggle_light() diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 6b21388b23b..8c9e77b8bc2 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -197,6 +197,7 @@ GLOBAL_LIST_EMPTY(event_last_fired) new /datum/event_meta(EVENT_LEVEL_MAJOR, "Traders", /datum/event/traders, 85, is_one_shot = TRUE), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Terror Spiders", /datum/event/spider_terror, 20, list(ASSIGNMENT_SECURITY = 4), TRUE), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Slaughter Demon", /datum/event/spawn_slaughter, 10, is_one_shot = TRUE), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 50, is_one_shot = TRUE) //new /datum/event_meta(EVENT_LEVEL_MAJOR, "Floor Cluwne", /datum/event/spawn_floor_cluwne, 15, is_one_shot = TRUE) ) diff --git a/code/modules/events/slaughterevent.dm b/code/modules/events/slaughterevent.dm index 018cfe636c9..30332a91e39 100644 --- a/code/modules/events/slaughterevent.dm +++ b/code/modules/events/slaughterevent.dm @@ -1,9 +1,9 @@ /datum/event/spawn_slaughter var/key_of_slaughter - var/demon = /mob/living/simple_animal/slaughter/lesser + var/mob/living/simple_animal/demon/demon = /mob/living/simple_animal/demon/slaughter/lesser /datum/event/spawn_slaughter/proc/get_slaughter() - var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a slaughter demon?", ROLE_DEMON, TRUE, source = /mob/living/simple_animal/slaughter) + var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a [initial(demon.name)]?", ROLE_DEMON, TRUE, source = demon) if(!length(candidates)) kill() return @@ -17,25 +17,41 @@ var/datum/mind/player_mind = new /datum/mind(key_of_slaughter) player_mind.active = TRUE - var/list/spawn_locs = list() + var/turf/spawn_loc = get_spawn_loc(player_mind.current) + var/obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(spawn_loc) + var/mob/living/simple_animal/demon/S = new demon(holder) + player_mind.transfer_to(S) + player_mind.assigned_role = "Demon" + player_mind.special_role = SPECIAL_ROLE_DEMON + message_admins("[key_name_admin(S)] has been made into a [S.name] by an event.") + log_game("[key_name_admin(S)] was spawned as a [S.name] by an event.") + +/datum/event/spawn_slaughter/proc/get_spawn_loc(mob/player) + RETURN_TYPE(/turf) + var/list/spawn_centers = list() for(var/obj/effect/landmark/spawner/rev/L in GLOB.landmarks_list) - spawn_locs += get_turf(L) - if(!spawn_locs) //If we can't find a good place, just spawn the revenant at the player's location - spawn_locs += get_turf(player_mind.current) - if(!spawn_locs) //If we can't find THAT, then give up + spawn_centers += get_turf(L) + if(!spawn_centers) //If we can't find a good place, just spawn the revenant at the player's location + spawn_centers += get_turf(player) + if(!spawn_centers) //If we can't find THAT, then give up kill() return - var/obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(pick(spawn_locs)) - var/mob/living/simple_animal/slaughter/S = new demon(holder) - S.holder = holder - player_mind.transfer_to(S) - player_mind.assigned_role = "Slaughter Demon" - player_mind.special_role = SPECIAL_ROLE_SLAUGHTER_DEMON - message_admins("[key_name_admin(S)] has been made into a Slaughter Demon by an event.") - log_game("[key_name_admin(S)] was spawned as a Slaughter Demon by an event.") + return pick(spawn_centers) + /datum/event/spawn_slaughter/start() INVOKE_ASYNC(src, PROC_REF(get_slaughter)) /datum/event/spawn_slaughter/greater - demon = /mob/living/simple_animal/slaughter + demon = /mob/living/simple_animal/demon/slaughter + +/datum/event/spawn_slaughter/shadow + demon = /mob/living/simple_animal/demon/shadow + +/datum/event/spawn_slaughter/shadow/get_spawn_loc() + var/turf/spawn_center = ..() + for(var/turf/T in range(50, spawn_center)) + if(T.get_lumcount()) // if the turf is not pitch black + continue + return T // return the first turf that is dark nearby. + kill() diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 8582dba71de..6bd4cbc4b7c 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -115,7 +115,7 @@ if(old_stat != stat) update_icon(UPDATE_OVERLAYS) -/obj/machinery/smartfridge/extinguish_light() +/obj/machinery/smartfridge/extinguish_light(force = FALSE) set_light(0) underlays.Cut() diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index b3baeb01333..df6604dedb2 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -206,3 +206,9 @@ add_attack_logs(user, target, "[what_done] ([reagent_str] | [genes_str])") +/obj/item/reagent_containers/food/snacks/grown/extinguish_light(force = FALSE) + if(!force) + return + if(seed.get_gene(/datum/plant_gene/trait/glow/shadow)) + return + set_light(0) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index e87af235d02..71063fde945 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -61,3 +61,10 @@ if(seed) for(var/datum/plant_gene/trait/T in seed.genes) T.on_throw_impact(src, hit_atom) + +/obj/item/grown/extinguish_light(force = FALSE) + if(!force) + return + if(seed.get_gene(/datum/plant_gene/trait/glow/shadow)) + return + set_light(0) diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 3870fb5937e..d2d4c87eadd 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -54,7 +54,7 @@ else light = new/datum/light_source(src, .) -/atom/proc/extinguish_light() +/atom/proc/extinguish_light(force = FALSE) return // If we have opacity, make sure to tell (potentially) affected light sources. diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index e328e3be8b8..2687876d69e 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -134,9 +134,9 @@ var/list/antag_serialized = serialized.Copy() antag_serialized["antag"] = "Xenomorph" antagonists += list(antag_serialized) - else if(isslaughterdemon(M)) + else if(isdemon(M)) var/list/antag_serialized = serialized.Copy() - antag_serialized["antag"] = "Slaughter Demon" + antag_serialized["antag"] = "Demon" antagonists += list(antag_serialized) else if(length(orbiters) >= 0.2 * length_of_ghosts) // If a bunch of people are orbiting an object, like the nuke disk. diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6187846e42d..04fed84f41f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1966,7 +1966,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X to_chat(src, "[pick(GLOB.boo_phrases)]") return TRUE -/mob/living/carbon/human/extinguish_light() +/mob/living/carbon/human/extinguish_light(force = FALSE) // Parent function handles stuff the human may be holding ..() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 47778fc9f91..c2ceab12a72 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1092,10 +1092,10 @@ /mob/living/proc/fakefire() return -/mob/living/extinguish_light() +/mob/living/extinguish_light(force = FALSE) for(var/atom/A in src) if(A.light_range > 0) - A.extinguish_light() + A.extinguish_light(force) /mob/living/vv_edit_var(var_name, var_value) switch(var_name) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index d46d69b08af..a7fbd9182f5 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -42,8 +42,6 @@ var/mob_biotypes = MOB_ORGANIC var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. - var/holder = null //The holder for blood crawling - var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always var/list/icon/pipes_shown = list() var/last_played_vent diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 5d1ea76cd4c..1edeb2a30f2 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -515,7 +515,7 @@ CRASH("pAI without card") loc = card -/mob/living/silicon/pai/extinguish_light() +/mob/living/silicon/pai/extinguish_light(force = FALSE) flashlight_on = FALSE set_light(0) card.set_light(0) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 97e03355bfc..60cdacafe29 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1473,7 +1473,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( overlays += "[base_icon]-shield" -/mob/living/silicon/robot/extinguish_light() +/mob/living/silicon/robot/extinguish_light(force = FALSE) update_headlamp(1, 150) /mob/living/silicon/robot/rejuvenate() diff --git a/code/modules/pda/PDA.dm b/code/modules/pda/PDA.dm index d6800fdf19a..099f88acfec 100644 --- a/code/modules/pda/PDA.dm +++ b/code/modules/pda/PDA.dm @@ -390,7 +390,7 @@ GLOBAL_LIST_EMPTY(PDAs) if(current_app) current_app.program_process() -/obj/item/pda/extinguish_light() +/obj/item/pda/extinguish_light(force = FALSE) var/datum/data/pda/utility/flashlight/FL = find_program(/datum/data/pda/utility/flashlight) if(FL && FL.fon) FL.start() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 8b33d819f3b..d12a46a07c1 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -941,7 +941,7 @@ limb.droplimb(0, DROPLIMB_BURN) return FIRELOSS -/obj/machinery/light/extinguish_light() +/obj/machinery/light/extinguish_light(force = FALSE) on = FALSE extinguished = TRUE emergency_mode = FALSE diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f786178214c..1735648efbf 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -368,14 +368,11 @@ if(!gun_light) return - - var/mob/living/carbon/human/user = usr - if(!isturf(user.loc)) - to_chat(user, "You cannot turn the light on while in this [user.loc]!") gun_light.on = !gun_light.on - to_chat(user, "You toggle the gun light [gun_light.on ? "on":"off"].") - - playsound(user, 'sound/weapons/empty.ogg', 100, 1) + var/mob/living/carbon/human/user = usr + if(user) + to_chat(user, "You toggle the gun light [gun_light.on ? "on":"off"].") + playsound(src, 'sound/weapons/empty.ogg', 100, 1) update_gun_light(user) /obj/item/gun/proc/update_gun_light(mob/user = null) @@ -401,7 +398,7 @@ knife_overlay = null return TRUE -/obj/item/gun/extinguish_light() +/obj/item/gun/extinguish_light(force = FALSE) if(gun_light?.on) toggle_gunlight() visible_message("[src]'s light fades and turns off.") diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index f3195929c8cbc4c7151a9c6d3d9712ae94bfb58a..24940ee6a833c5ff9226375288e8be426999ace3 100644 GIT binary patch delta 5631 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 Z{vRcy{f39!g6;qS002ovPDHLkV1mc3>7D=p delta 5395 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 diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index ef27b7fc377aa30edfb4a2bb7bf605af71de360a..4a939231c99e819ea5a7313eb4f6cfbcfb21105f 100644 GIT binary patch delta 26246 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 z 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 diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index c485661b91f59d559a29f01f642c02d04f4c5d91..9d8d4181dce6d6b83ac5b382745c4b0768a6c53e 100644 GIT binary patch delta 25058 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 z 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 M4{sIUeCqpu0E1)J0RR91 delta 23500 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 diff --git a/paradise.dme b/paradise.dme index 03271c7c0ba..32e2adb15ce 100644 --- a/paradise.dme +++ b/paradise.dme @@ -617,6 +617,9 @@ #include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" #include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" #include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" +#include "code\game\gamemodes\miniantags\demons\demon.dm" +#include "code\game\gamemodes\miniantags\demons\shadow_demon\shadow_demon.dm" +#include "code\game\gamemodes\miniantags\demons\slaughter demon\slaughter.dm" #include "code\game\gamemodes\miniantags\guardian\guardian.dm" #include "code\game\gamemodes\miniantags\guardian\host_actions.dm" #include "code\game\gamemodes\miniantags\guardian\types\assassin.dm" @@ -638,8 +641,6 @@ #include "code\game\gamemodes\miniantags\revenant\revenant.dm" #include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm" #include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm" -#include "code\game\gamemodes\miniantags\slaughter\bloodcrawl.dm" -#include "code\game\gamemodes\miniantags\slaughter\slaughter.dm" #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\nuclear\nuclear_challenge.dm" #include "code\game\gamemodes\nuclear\nuclearbomb.dm"