From 9ae48734ef64d67eae2db893e314320f2f70097f Mon Sep 17 00:00:00 2001 From: Bjarl <94164348+Bjarl@users.noreply.github.com> Date: Thu, 29 Jun 2023 19:27:30 -0700 Subject: [PATCH] Overmap 4.6: Anomalous Activity (#1991) ## About The Pull Request https://github.com/shiptest-ss13/Shiptest/assets/94164348/591dd5bc-c90a-40d0-a578-54b9a0abe90d Anomalies will now spawn on planets and remain static there, posing a passive threat to anyone who comes across them. If you're feeling daring, you can use an analyzer and signaller, or an anomaly neutralizer, to harvest their cores, and put them in an R&D console for research points. Anomaly effects have also been expanded, you'll have to find out how in game though. As a side effect to make bluespace anomalies work, removes the noteleport flag on planets ## Why It's Good For The Game More exploration content ## Changelog :cl: Bjarl, Ghilker, Comyx, Assorted /tg/ contributors add: anomalies will now randomly spawn on planets add: bioscrambler anomalies, they randomly change your organs and bodyparts add: hallucination anomalies, they cause hallucinations add: big anomalies, they're like normal anomalies but big. fix: disk renaming should only work with pens now /:cl: --------- Signed-off-by: Bjarl <94164348+Bjarl@users.noreply.github.com> Co-authored-by: Mark Suckerberg --- code/__DEFINES/anomalies.dm | 7 + code/__DEFINES/maths.dm | 11 + .../mapgen/planetary/JungleGenerator.dm | 3 +- code/datums/mapgen/planetary/LavaGenerator.dm | 9 +- code/datums/mapgen/planetary/RockGenerator.dm | 22 +- code/datums/mapgen/planetary/SandGenerator.dm | 25 +- code/datums/mapgen/planetary/SnowGenerator.dm | 37 +- .../datums/mapgen/planetary/WasteGenerator.dm | 10 +- code/game/objects/effects/anomalies.dm | 383 ------------------ .../objects/effects/anomalies/_anomalies.dm | 148 +++++++ .../effects/anomalies/anomalies_bluespace.dm | 119 ++++++ .../effects/anomalies/anomalies_flux.dm | 98 +++++ .../effects/anomalies/anomalies_gravity.dm | 122 ++++++ .../anomalies/anomalies_hallucination.dm | 52 +++ .../effects/anomalies/anomalies_heartbeat.dm | 42 ++ .../effects/anomalies/anomalies_melter.dm | 47 +++ .../effects/anomalies/anomalies_phantom.dm | 46 +++ .../effects/anomalies/anomalies_plasmasoul.dm | 52 +++ .../effects/anomalies/anomalies_pulsar.dm | 32 ++ .../anomalies/anomalies_pyroclastic.dm | 86 ++++ .../effects/anomalies/anomalies_sparkler.dm | 37 ++ .../effects/anomalies/anomalies_static.dm | 90 ++++ .../effects/anomalies/anomalies_veins.dm | 55 +++ .../effects/anomalies/anomalies_vortex.dm | 69 ++++ .../game/objects/effects/spawners/lootdrop.dm | 212 ++++++++++ code/modules/antagonists/cult/runes.dm | 11 +- code/modules/assembly/signaler.dm | 64 ++- code/modules/disks/disk.dm | 20 +- code/modules/events/anomaly.dm | 50 --- code/modules/events/anomaly_bluespace.dm | 14 - code/modules/events/anomaly_flux.dm | 15 - code/modules/events/anomaly_grav.dm | 26 -- code/modules/events/anomaly_pyro.dm | 14 - code/modules/events/anomaly_vortex.dm | 15 - .../modules/mob/living/carbon/status_procs.dm | 4 + code/modules/mob/mob_defines.dm | 2 +- code/modules/overmap/objects/dynamic_datum.dm | 2 +- .../projectiles/projectile/special/curse.dm | 5 + code/modules/research/rdconsole.dm | 16 +- icons/effects/anomalies.dmi | Bin 0 -> 145218 bytes icons/obj/assemblies/new_assemblies.dmi | Bin 18243 -> 23336 bytes shiptest.dme | 23 +- sound/health/fastbeat2.ogg | Bin 0 -> 13404 bytes sound/health/slowbeat2.ogg | Bin 0 -> 15474 bytes 44 files changed, 1508 insertions(+), 587 deletions(-) create mode 100644 code/__DEFINES/anomalies.dm delete mode 100644 code/game/objects/effects/anomalies.dm create mode 100644 code/game/objects/effects/anomalies/_anomalies.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_bluespace.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_flux.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_gravity.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_hallucination.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_heartbeat.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_melter.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_phantom.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_plasmasoul.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_pulsar.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_pyroclastic.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_sparkler.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_static.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_veins.dm create mode 100644 code/game/objects/effects/anomalies/anomalies_vortex.dm delete mode 100644 code/modules/events/anomaly.dm delete mode 100644 code/modules/events/anomaly_bluespace.dm delete mode 100644 code/modules/events/anomaly_flux.dm delete mode 100644 code/modules/events/anomaly_grav.dm delete mode 100644 code/modules/events/anomaly_pyro.dm delete mode 100644 code/modules/events/anomaly_vortex.dm create mode 100644 icons/effects/anomalies.dmi create mode 100644 sound/health/fastbeat2.ogg create mode 100644 sound/health/slowbeat2.ogg diff --git a/code/__DEFINES/anomalies.dm b/code/__DEFINES/anomalies.dm new file mode 100644 index 000000000000..5214c38f93c8 --- /dev/null +++ b/code/__DEFINES/anomalies.dm @@ -0,0 +1,7 @@ +///Defines for the different types of explosion a flux anomaly can have +#define FLUX_NO_EXPLOSION 0 +#define FLUX_EXPLOSIVE 1 +#define FLUX_LOW_EXPLOSIVE 2 + +/// Chance of anomalies moving every process tick +#define ANOMALY_MOVECHANCE 45 diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index d4db0e343da8..35f0a32e798e 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -272,3 +272,14 @@ . += 180 else if(dx < 0) . += 360 + + +/// Converts a probability/second chance to probability/seconds_per_tick chance +/// For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do `if(prob(100*SPT_PROB_RATE(0.1, 5)))` +#define SPT_PROB_RATE(prob_per_second, seconds_per_tick) (1 - (1 - (prob_per_second)) ** (seconds_per_tick)) + +//make spawners use this -Erika + +/// Like SPT_PROB_RATE but easier to use, simply put `if(SPT_PROB(10, 5))` +#define SPT_PROB(prob_per_second_percent, seconds_per_tick) (prob(100*SPT_PROB_RATE((prob_per_second_percent)/100, (seconds_per_tick)))) +// ) diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm index b40f26b12a88..86c40769cd11 100644 --- a/code/datums/mapgen/planetary/JungleGenerator.dm +++ b/code/datums/mapgen/planetary/JungleGenerator.dm @@ -180,7 +180,8 @@ feature_spawn_chance = 0.5 feature_spawn_list = list( /obj/item/pickaxe/rusted = 1, - /obj/structure/spawner/ice_moon = 1 + /obj/structure/spawner/ice_moon = 1, + /obj/effect/spawner/lootdrop/anomaly/jungle = 1 ) /datum/biome/cave/jungle/dirt diff --git a/code/datums/mapgen/planetary/LavaGenerator.dm b/code/datums/mapgen/planetary/LavaGenerator.dm index 0305fe7b6480..d154063bdc17 100644 --- a/code/datums/mapgen/planetary/LavaGenerator.dm +++ b/code/datums/mapgen/planetary/LavaGenerator.dm @@ -98,7 +98,9 @@ feature_spawn_list = list( /obj/structure/flora/rock/hell = 5, /obj/structure/elite_tumor = 1, - /obj/structure/geyser/random = 1 + /obj/structure/geyser/random = 1, + /obj/effect/spawner/lootdrop/anomaly/lava = 0.5 + ) mob_spawn_chance = 4 mob_spawn_list = list( @@ -157,8 +159,9 @@ ) feature_spawn_chance = 5 feature_spawn_list = list( - /obj/structure/flora/tree/dead/barren = 1, - /obj/structure/flora/tree/dead/tall/grey = 1, + /obj/structure/flora/tree/dead/barren = 50, + /obj/structure/flora/tree/dead/tall/grey = 45, + /obj/effect/spawner/lootdrop/anomaly/lava = 5 ) /datum/biome/lavaland/plains/dense/mixed diff --git a/code/datums/mapgen/planetary/RockGenerator.dm b/code/datums/mapgen/planetary/RockGenerator.dm index 29836edc6187..5496984db43a 100644 --- a/code/datums/mapgen/planetary/RockGenerator.dm +++ b/code/datums/mapgen/planetary/RockGenerator.dm @@ -83,8 +83,13 @@ /datum/biome/rock open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/lit = 1) - feature_spawn_chance = 0.1 - feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2) + feature_spawn_chance = 0.25 + feature_spawn_list = list( + /obj/structure/geyser/random = 8, + /obj/structure/elite_tumor = 4, + /obj/effect/spawner/lootdrop/anomaly/rock = 1, + /obj/effect/spawner/lootdrop/anomaly/big = 0.1 //get out of here stalker + ) flora_spawn_chance = 5 mob_spawn_chance = 3 @@ -105,7 +110,9 @@ ) /datum/biome/rock/icecap - open_turf_types = list(/turf/open/floor/plating/asteroid/snow/lit/rockplanet = 1, /turf/open/floor/plating/asteroid/snow/lit/rockplanet = 5) + open_turf_types = list( + /turf/open/floor/plating/asteroid/snow/lit/rockplanet = 1, + /turf/open/floor/plating/asteroid/snow/lit/rockplanet = 5) flora_spawn_chance = 1 mob_spawn_chance = 2 @@ -138,8 +145,13 @@ /obj/structure/flora/ash/fern = 2, /obj/structure/flora/ash/puce = 1, ) - feature_spawn_chance = 0.3 - feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2, /obj/structure/spawner/ice_moon/rockplanet = 4) + feature_spawn_chance = 0.5 + feature_spawn_list = list( + /obj/structure/geyser/random = 2, + /obj/structure/elite_tumor = 1, + /obj/structure/spawner/ice_moon/rockplanet = 4, + /obj/effect/spawner/lootdrop/anomaly/rock/cave = 1, + ) mob_spawn_chance = 6 mob_spawn_list = list( /mob/living/simple_animal/hostile/netherworld/asteroid = 20, diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm index de79ace8d68d..e50223744a7c 100644 --- a/code/datums/mapgen/planetary/SandGenerator.dm +++ b/code/datums/mapgen/planetary/SandGenerator.dm @@ -90,7 +90,11 @@ /obj/structure/flora/ash/stem_shroom = 4 , ) feature_spawn_chance = 0.1 - feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2) + feature_spawn_list = list( + /obj/structure/geyser/random = 8, + /obj/structure/elite_tumor = 4, + /obj/effect/spawner/lootdrop/anomaly/sand = 1, + ) mob_spawn_chance = 4 mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, @@ -100,7 +104,13 @@ ) /datum/biome/sand/wasteland - open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/lit = 50, /turf/open/floor/plating/asteroid/whitesands/dried/lit = 40, /turf/closed/mineral/random/whitesands = 20, /turf/closed/wall/mineral/titanium/survival/pod = 1, /turf/closed/wall/rust = 1) + open_turf_types = list( + /turf/open/floor/plating/asteroid/whitesands/lit = 50, + /turf/open/floor/plating/asteroid/whitesands/dried/lit = 40, + /turf/closed/mineral/random/whitesands = 20, + /turf/closed/wall/mineral/titanium/survival/pod = 1, + /turf/closed/wall/rust = 1 + ) flora_spawn_chance = 20 flora_spawn_list = list( /obj/structure/flora/ash/leaf_shroom = 4, @@ -170,7 +180,10 @@ /datum/biome/cave/sand closed_turf_types = list(/turf/closed/mineral/random/whitesands = 1) - open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands = 5, /turf/open/floor/plating/asteroid/whitesands/dried = 1) + open_turf_types = list( + /turf/open/floor/plating/asteroid/whitesands = 5, + /turf/open/floor/plating/asteroid/whitesands/dried = 1 + ) flora_spawn_chance = 4 flora_spawn_list = list( /obj/structure/flora/rock = 4, @@ -178,7 +191,11 @@ /obj/structure/flora/ash/fern = 2, /obj/structure/flora/ash/puce = 1, ) - feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2) + feature_spawn_list = list( + /obj/structure/geyser/random = 4, + /obj/structure/elite_tumor = 4, + /obj/effect/spawner/lootdrop/anomaly/sand/cave = 1 + ) mob_spawn_chance = 4 mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, diff --git a/code/datums/mapgen/planetary/SnowGenerator.dm b/code/datums/mapgen/planetary/SnowGenerator.dm index 872e91a33fd2..c021ecfce9bf 100644 --- a/code/datums/mapgen/planetary/SnowGenerator.dm +++ b/code/datums/mapgen/planetary/SnowGenerator.dm @@ -112,9 +112,11 @@ ) feature_spawn_chance = 0.1 feature_spawn_list = list( - /obj/structure/spawner/ice_moon/demonic_portal = 1, - /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1, - /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1 + /obj/effect/spawner/lootdrop/anomaly/ice = 12, + /obj/effect/spawner/lootdrop/anomaly/big = 1, + /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 25, + /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 50, + /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 13 ) /datum/biome/snow/lush @@ -205,10 +207,12 @@ ) feature_spawn_chance = 0.3 feature_spawn_list = list( - /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 25, - /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 50, - /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 13, - /obj/structure/spawner/ice_moon/demonic_portal/extreme_threat = 12 + /obj/effect/spawner/lootdrop/anomaly/ice = 1, + /obj/effect/spawner/lootdrop/anomaly/big = 0.01, + /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 3, + /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 5, + /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 0.5, + /obj/structure/spawner/ice_moon/demonic_portal/extreme_threat = 0.01 ) @@ -256,11 +260,13 @@ ) feature_spawn_chance = 0.2 feature_spawn_list = list( - /obj/structure/spawner/ice_moon/demonic_portal = 1, - /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1, - /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1, - /obj/structure/spawner/ice_moon = 1, - /obj/structure/spawner/ice_moon/polarbear = 1 + /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 3, + /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 5, + /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 0.6, + /obj/structure/spawner/ice_moon/demonic_portal/extreme_threat = 0.2, + /obj/structure/spawner/ice_moon = 3, + /obj/structure/spawner/ice_moon/polarbear = 3, + /obj/effect/spawner/lootdrop/anomaly/ice/cave = 1 ) /datum/biome/cave/snow/thawed @@ -304,13 +310,6 @@ /obj/structure/flora/ash/stem_shroom = 1, ) feature_spawn_chance = 0.2 - feature_spawn_list = list( - /obj/structure/spawner/ice_moon/demonic_portal = 1, - /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1, - /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1, - /obj/structure/spawner/ice_moon = 3, - /obj/structure/spawner/ice_moon/polarbear = 3, - ) /datum/biome/cave/volcanic/lava open_turf_types = list( diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index 9135c75cd73e..a660e3d35321 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -131,7 +131,8 @@ feature_spawn_list = list( /obj/effect/radiation/waste = 30, /obj/effect/radiation/waste/intense = 10, - /obj/structure/geyser/random = 1 + /obj/structure/geyser/random = 1, + /obj/effect/spawner/lootdrop/anomaly/waste = 1 ) mob_spawn_list = list( @@ -313,7 +314,8 @@ feature_spawn_list = list( /obj/effect/radiation/waste = 30, /obj/effect/radiation/waste/intense = 10, - /obj/structure/geyser/random = 1 + /obj/structure/geyser/random = 1, + /obj/effect/spawner/lootdrop/anomaly/waste/cave = 1 ) mob_spawn_list = list( /mob/living/simple_animal/hostile/hivebot/strong/rockplanet = 70, @@ -324,9 +326,7 @@ /mob/living/simple_animal/hostile/abandoned_minebot = 15, /mob/living/simple_animal/bot/floorbot/rockplanet = 15, ) - feature_spawn_list = list( - /obj/effect/radiation = 30, - ) + flora_spawn_chance = 30 feature_spawn_chance = 4 mob_spawn_chance = 5 diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm deleted file mode 100644 index 84dee081a6c8..000000000000 --- a/code/game/objects/effects/anomalies.dm +++ /dev/null @@ -1,383 +0,0 @@ -//Anomalies, used for events. Note that these DO NOT work by themselves; their procs are called by the event datum. - -/obj/effect/anomaly - name = "anomaly" - desc = "A mysterious anomaly, seen commonly only in the far frontier of space..." - icon_state = "bhole3" - density = FALSE - anchored = TRUE - light_range = 3 - var/movechance = 70 - var/obj/item/assembly/signaler/anomaly/aSignal = /obj/item/assembly/signaler/anomaly - var/area/impact_area - - var/lifespan = 990 - var/death_time - - var/countdown_colour - var/obj/effect/countdown/anomaly/countdown - -/obj/effect/anomaly/Initialize(mapload, new_lifespan) - . = ..() - GLOB.poi_list |= src - START_PROCESSING(SSobj, src) - impact_area = get_area(src) - - if (!impact_area) - return INITIALIZE_HINT_QDEL - - aSignal = new aSignal(src) - aSignal.code = rand(1,100) - aSignal.anomaly_type = type - - var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ) - if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven! - frequency++ - aSignal.set_frequency(frequency) - - if(new_lifespan) - lifespan = new_lifespan - death_time = world.time + lifespan - countdown = new(src) - if(countdown_colour) - countdown.color = countdown_colour - countdown.start() - -/obj/effect/anomaly/process() - anomalyEffect() - if(death_time < world.time) - if(loc) - detonate() - qdel(src) - -/obj/effect/anomaly/Destroy() - GLOB.poi_list.Remove(src) - STOP_PROCESSING(SSobj, src) - qdel(countdown) - return ..() - -/obj/effect/anomaly/proc/anomalyEffect() - if(prob(movechance)) - step(src,pick(GLOB.alldirs)) - -/obj/effect/anomaly/proc/detonate() - return - -/obj/effect/anomaly/ex_act(severity, target) - if(severity == 1) - qdel(src) - -/obj/effect/anomaly/proc/anomalyNeutralize() - new /obj/effect/particle_effect/smoke/bad(loc) - - for(var/atom/movable/O in src) - O.forceMove(drop_location()) - - qdel(src) - - -/obj/effect/anomaly/attackby(obj/item/I, mob/user, params) - if(I.tool_behaviour == TOOL_ANALYZER) - to_chat(user, "Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code].") - -/////////////////////// - -/obj/effect/anomaly/grav - name = "gravitational anomaly" - icon_state = "shield2" - density = FALSE - var/boing = 0 - aSignal = /obj/item/assembly/signaler/anomaly/grav - -/obj/effect/anomaly/grav/Initialize(mapload, new_lifespan, drops_core) - . = ..() - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/effect/anomaly/grav/anomalyEffect() - ..() - boing = 1 - for(var/obj/O in orange(4, src)) - if(!O.anchored) - step_towards(O,src) - for(var/mob/living/M in range(0, src)) - gravShock(M) - for(var/mob/living/M in orange(4, src)) - if(!M.mob_negates_gravity()) - step_towards(M,src) - for(var/obj/O in range(0,src)) - if(!O.anchored) - if(isturf(O.loc)) - var/turf/T = O.loc - if(T.intact && HAS_TRAIT(O, TRAIT_T_RAY_VISIBLE)) - continue - var/mob/living/target = locate() in view(4,src) - if(target && !target.stat) - O.throw_at(target, 5, 10) - -/obj/effect/anomaly/grav/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - - gravShock(AM) - -/obj/effect/anomaly/grav/Bump(atom/A) - gravShock(A) - -/obj/effect/anomaly/grav/Bumped(atom/movable/AM) - gravShock(AM) - -/obj/effect/anomaly/grav/proc/gravShock(mob/living/A) - if(boing && isliving(A) && !A.stat) - A.Paralyze(40) - var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) - A.throw_at(target, 5, 1) - boing = 0 - -/obj/effect/anomaly/grav/high - var/grav_field - -/obj/effect/anomaly/grav/high/Initialize(mapload, new_lifespan) - . = ..() - INVOKE_ASYNC(src, .proc/setup_grav_field) - -/obj/effect/anomaly/grav/high/proc/setup_grav_field() - grav_field = make_field(/datum/proximity_monitor/advanced/gravity, list("current_range" = 7, "host" = src, "gravity_value" = rand(0,3))) - -/obj/effect/anomaly/grav/high/Destroy() - QDEL_NULL(grav_field) - . = ..() - -///////////////////// - -/obj/effect/anomaly/flux - name = "flux wave anomaly" - icon_state = "electricity2" - density = TRUE - aSignal = /obj/item/assembly/signaler/anomaly/flux - var/canshock = FALSE - var/shockdamage = 20 - var/explosive = TRUE - -/obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, drops_core = TRUE, _explosive = TRUE) - . = ..() - explosive = _explosive - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, - ) - AddElement(/datum/element/connect_loc, loc_connections) - - -/obj/effect/anomaly/flux/anomalyEffect() - ..() - canshock = TRUE - for(var/mob/living/M in range(0, src)) - mobShock(M) - -/obj/effect/anomaly/flux/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - - mobShock(AM) - -/obj/effect/anomaly/flux/Bump(atom/A) - mobShock(A) - -/obj/effect/anomaly/flux/Bumped(atom/movable/AM) - mobShock(AM) - -/obj/effect/anomaly/flux/proc/mobShock(mob/living/M) - if(canshock && istype(M)) - canshock = FALSE - M.electrocute_act(shockdamage, name, flags = SHOCK_NOGLOVES) - -/obj/effect/anomaly/flux/detonate() - if(explosive) - explosion(src, 1, 4, 16, 18) //Low devastation, but hits a lot of stuff. - else - new /obj/effect/particle_effect/sparks(loc) - - -///////////////////// - -/obj/effect/anomaly/bluespace - name = "bluespace anomaly" - icon = 'icons/obj/projectiles.dmi' - icon_state = "bluespace" - density = TRUE - aSignal = /obj/item/assembly/signaler/anomaly/bluespace - -/obj/effect/anomaly/bluespace/anomalyEffect() - ..() - for(var/mob/living/M in range(1,src)) - do_teleport(M, locate(M.x, M.y, M.z), 4, channel = TELEPORT_CHANNEL_BLUESPACE) - -/obj/effect/anomaly/bluespace/Bumped(atom/movable/AM) - if(isliving(AM)) - do_teleport(AM, locate(AM.x, AM.y, AM.z), 8, channel = TELEPORT_CHANNEL_BLUESPACE) - -/obj/effect/anomaly/bluespace/detonate() - var/turf/T = pick(get_area_turfs(impact_area)) - if(T) - // Calculate new position (searches through beacons in world) - var/obj/item/beacon/chosen - var/list/possible = list() - for(var/obj/item/beacon/W in GLOB.teleportbeacons) - possible += W - - if(possible.len > 0) - chosen = pick(possible) - - if(chosen) - // Calculate previous position for transition - - var/turf/FROM = T // the turf of origin we're travelling FROM - var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO - - playsound(TO, 'sound/effects/phasein.ogg', 100, TRUE) - priority_announce("Massive bluespace translocation detected.", "Anomaly Alert", zlevel = virtual_z()) - - var/list/flashers = list() - for(var/mob/living/carbon/C in viewers(TO, null)) - if(C.flash_act()) - flashers += C - - var/y_distance = TO.y - FROM.y - var/x_distance = TO.x - FROM.x - for (var/atom/movable/A in urange(12, FROM)) // iterate thru list of mobs in the area - if(istype(A, /obj/item/beacon)) - continue // don't teleport beacons because that's just insanely stupid - if(A.anchored) - continue - - var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place - if(!A.Move(newloc) && newloc) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving - A.forceMove(newloc) - - if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect - var/mob/M = A - if(M.client) - INVOKE_ASYNC(src, .proc/blue_effect, M) - -/obj/effect/anomaly/bluespace/proc/blue_effect(mob/M) - var/obj/blueeffect = new /obj(src) - blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH" - blueeffect.icon = 'icons/effects/effects.dmi' - blueeffect.icon_state = "shieldsparkles" - blueeffect.layer = FLASH_LAYER - blueeffect.plane = FULLSCREEN_PLANE - blueeffect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - M.client.screen += blueeffect - sleep(20) - M.client.screen -= blueeffect - qdel(blueeffect) - -///////////////////// - -/obj/effect/anomaly/pyro - name = "pyroclastic anomaly" - icon_state = "mustard" - var/ticks = 0 - aSignal = /obj/item/assembly/signaler/anomaly/pyro - -/obj/effect/anomaly/pyro/anomalyEffect() - ..() - ticks++ - if(ticks < 25) //WS Edit - Pyroclastic Rebalance - return - else - ticks = 0 - var/turf/open/T = get_turf(src) - if(istype(T)) - T.atmos_spawn_air("o2=5;plasma=5;TEMP=500") //WS Edit - Pyroclastic Rebalance - -/obj/effect/anomaly/pyro/detonate() - INVOKE_ASYNC(src, .proc/makepyroslime) - -/obj/effect/anomaly/pyro/proc/makepyroslime() - var/turf/open/T = get_turf(src) - if(istype(T)) - T.atmos_spawn_air("o2=250;plasma=250;TEMP=700") //WS Edit - Pyroclastic Rebalance - var/new_colour = pick("red", "orange") - var/mob/living/simple_animal/slime/S = new(T, new_colour) - S.rabid = TRUE - S.amount_grown = SLIME_EVOLUTION_THRESHOLD - S.Evolve() - var/datum/action/innate/slime/reproduce/A = new - A.Grant(S) - - var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a pyroclastic anomaly slime?", ROLE_SENTIENCE, null, null, 100, S, POLL_IGNORE_PYROSLIME) - if(LAZYLEN(candidates)) - var/mob/dead/observer/chosen = pick(candidates) - S.key = chosen.key - S.mind.special_role = ROLE_PYROCLASTIC_SLIME - var/policy = get_policy(ROLE_PYROCLASTIC_SLIME) - if (policy) - to_chat(S, policy) - log_game("[key_name(S.key)] was made into a slime by pyroclastic anomaly at [AREACOORD(T)].") - -///////////////////// - -/obj/effect/anomaly/bhole - name = "vortex anomaly" - icon_state = "bhole3" - desc = "That's a nice region of spacetime you have there. It'd be a shame if something happened to it." - aSignal = /obj/item/assembly/signaler/anomaly/vortex - -/obj/effect/anomaly/bhole/anomalyEffect() - ..() - if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen - qdel(src) - return - - grav(rand(0,3), rand(2,3), 50, 25) - - //Throwing stuff around! - for(var/obj/O in range(2,src)) - if(O == src) - return //DON'T DELETE YOURSELF GOD DAMN - if(!O.anchored) - var/mob/living/target = locate() in view(4,src) - if(target && !target.stat) - O.throw_at(target, 7, 5) - else - SSexplosions.medobj += O - -/obj/effect/anomaly/bhole/proc/grav(r, ex_act_force, pull_chance, turf_removal_chance) - for(var/t = -r, t < r, t++) - affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) - -/obj/effect/anomaly/bhole/proc/affect_coord(x, y, ex_act_force, pull_chance, turf_removal_chance) - //Get turf at coordinate - var/turf/T = locate(x, y, z) - if(isnull(T)) - return - - //Pulling and/or ex_act-ing movable atoms in that turf - if(prob(pull_chance)) - for(var/obj/O in T.contents) - if(O.anchored) - switch(ex_act_force) - if(EXPLODE_DEVASTATE) - SSexplosions.highobj += O - if(EXPLODE_HEAVY) - SSexplosions.medobj += O - if(EXPLODE_LIGHT) - SSexplosions.lowobj += O - else - step_towards(O,src) - for(var/mob/living/M in T.contents) - step_towards(M,src) - - //Damaging the turf - if(T && prob(turf_removal_chance)) - switch(ex_act_force) - if(EXPLODE_DEVASTATE) - SSexplosions.highturf += T - if(EXPLODE_HEAVY) - SSexplosions.medturf += T - if(EXPLODE_LIGHT) - SSexplosions.lowturf += T diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm new file mode 100644 index 000000000000..6d1c3ad7f082 --- /dev/null +++ b/code/game/objects/effects/anomalies/_anomalies.dm @@ -0,0 +1,148 @@ +//Anomalies, used for anomaly events. Anomalies cause adverse effects on their surroundings and can be mitigated by signalling their respective frequency. +/obj/effect/anomaly + name = "anomaly" + desc = "A mysterious anomaly, seen commonly in the Frontier" + icon = 'icons/effects/anomalies.dmi' + icon_state = "vortex" + density = FALSE + anchored = TRUE + light_range = 3 + + //aSignal drops as the core, bSignal allows people to signal to detonate + var/obj/item/assembly/signaler/anomaly/aSignal = /obj/item/assembly/signaler/anomaly + var/obj/item/assembly/signaler/anomaly/bSignal = /obj/item/assembly/signaler/anomaly/det_signal + var/area/impact_area + + var/lifespan = 990 + var/death_time + var/research_value + + //for anomaly effects, range is how far the effects can reach, the cooldown lets us wire in effects that happen every pulse delay seconds + var/effectrange = 6 + + COOLDOWN_DECLARE(pulse_cooldown) + COOLDOWN_DECLARE(pulse_secondary_cooldown) + var/pulse_delay = 15 SECONDS + + var/countdown_colour + var/obj/effect/countdown/anomaly/countdown + + /// Do we drop a core when we're neutralized? + var/drops_core = TRUE + ///Do we keep on living forever? + var/immortal = FALSE + ///Do we stay in one place? + var/immobile = FALSE + +/obj/effect/anomaly/Initialize(mapload, new_lifespan, drops_core = TRUE) + . = ..() + START_PROCESSING(SSobj, src) + impact_area = get_area(src) + + if (!impact_area) + return INITIALIZE_HINT_QDEL + + research_value = rand(500,4000) + pulse_delay = rand(pulse_delay*0.5, pulse_delay*1.5) + + src.drops_core = drops_core + if(aSignal) + aSignal = new aSignal(src) + aSignal.code = rand(1,100) + aSignal.anomaly_type = type + aSignal.research = rand(500,4000) + + var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ) + if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven! + frequency++ + aSignal.set_frequency(frequency) + + if(bSignal) + bSignal = new bSignal(src) + bSignal.code = rand(1,100) + bSignal.anomaly_type = type + var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ) + if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven! + frequency++ + bSignal.set_frequency(frequency) + + + + if(lifespan) + if(new_lifespan) + lifespan = new_lifespan + death_time = world.time + lifespan + countdown = new(src) + if(countdown_colour) + countdown.color = countdown_colour + if(immortal) + return + countdown.start() + +/obj/effect/anomaly/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, immortal)) + if(vval) + countdown.stop() + else + countdown.start() + +/obj/effect/anomaly/process(seconds_per_tick) + anomalyEffect(seconds_per_tick) + if(death_time < world.time && !immortal) + if(loc) + detonate() + qdel(src) + +/obj/effect/anomaly/Destroy() + STOP_PROCESSING(SSobj, src) + QDEL_NULL(countdown) + QDEL_NULL(aSignal) + return ..() + +/obj/effect/anomaly/proc/anomalyEffect(seconds_per_tick) + if(!immobile && SPT_PROB(ANOMALY_MOVECHANCE, seconds_per_tick)) + step(src,pick(GLOB.alldirs)) + +/obj/effect/anomaly/proc/detonate() + new /obj/effect/particle_effect/smoke/bad(loc) + qdel(src) + return + +/obj/effect/anomaly/ex_act(severity, target) + if(severity >= EXPLODE_DEVASTATE) + qdel(src) + return TRUE + + return FALSE + +/obj/effect/anomaly/proc/anomalyNeutralize() + new /obj/effect/particle_effect/smoke/bad(loc) + + if(drops_core) + if(isnull(aSignal)) + stack_trace("An anomaly ([src]) exists that drops a core, yet has no core!") + else + aSignal.forceMove(drop_location()) + aSignal = null + // else, anomaly core gets deleted by qdel(src). + + qdel(src) + + +/obj/effect/anomaly/attackby(obj/item/weapon, mob/user, params) + if(weapon.tool_behaviour == TOOL_ANALYZER && aSignal) + to_chat(user, span_notice("You start analyzing [src].")) + if(do_after(user, 20, TRUE, src)) + to_chat(user, span_notice("[src]'s primary field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code].")) + if(bSignal) + to_chat(user, span_notice("A second field is fluctuating along [format_frequency(bSignal.frequency)], code [bSignal.code]. It is highly unstable." )) + return TRUE + + return ..() + + +/obj/effect/anomaly/examine(mob/user) + . = ..() + if(user.research_scanner == TRUE) + to_chat(user, span_notice("If harvested, this anomaly would be worth [research_value] research points.")) diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm new file mode 100644 index 000000000000..58267030960e --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm @@ -0,0 +1,119 @@ + +/obj/effect/anomaly/bluespace + name = "jumper" + icon_state = "bluespace" + desc = "A mysterious anomaly that causes teleportation around it." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/bluespace + ///range from which we can teleport someone + effectrange = 3 + var/reagent_amount = 3 + ///Distance we can teleport someone passively + var/teleport_distance = 6 + +/obj/effect/anomaly/bluespace/anomalyEffect() + ..() + for(var/mob/living/Mob in range(effectrange,src)) + do_teleport(Mob, locate(Mob.x, Mob.y, Mob.z), teleport_distance, channel = TELEPORT_CHANNEL_BLUESPACE) + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + for(var/mob/living/Mob in range(effectrange,src)) + if(iscarbon(Mob)) + var/mob/living/carbon/carbon = Mob + carbon.reagents?.add_reagent(/datum/reagent/bluespace, reagent_amount) + +/obj/effect/anomaly/bluespace/Bumped(atom/movable/AM) + do_teleport(AM, locate(AM.x, AM.y, AM.z), 8, channel = TELEPORT_CHANNEL_BLUESPACE) + +/obj/effect/anomaly/bluespace/detonate() + var/turf/T = pick(get_area_turfs(impact_area)) + if(!T) + return + + // Calculate new position (searches through beacons in world) + var/obj/item/beacon/chosen + var/list/possible = list() + for(var/obj/item/beacon/W in GLOB.teleportbeacons) + possible += W + + if(possible.len > 0) + chosen = pick(possible) + + if(!chosen) + return + + // Calculate previous position for transition + var/turf/FROM = T // the turf of origin we're travelling FROM + var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO + + playsound(TO, 'sound/effects/phasein.ogg', 100, TRUE) + priority_announce("Massive bluespace translocation detected.", "Anomaly Alert") + + var/list/flashers = list() + for(var/mob/living/carbon/C in viewers(TO, null)) + if(C.flash_act()) + flashers += C + + var/y_distance = TO.y - FROM.y + var/x_distance = TO.x - FROM.x + for (var/atom/movable/A in urange(12, FROM)) // iterate thru list of mobs in the area + if(istype(A, /obj/item/beacon)) + continue // don't teleport beacons because that's just insanely stupid + if(iscameramob(A)) + continue // Don't mess with AI eye, blob eye, xenobio or advanced cameras + if(A.anchored) + continue + + var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place + if(!A.Move(newloc) && newloc) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving + A.forceMove(newloc) + + if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect + var/mob/give_sparkles = A + if(give_sparkles.client) + blue_effect(give_sparkles) + . = ..() + +/obj/effect/anomaly/bluespace/proc/blue_effect(mob/M) + var/obj/blueeffect = new /obj(src) + blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH" + blueeffect.icon = 'icons/effects/effects.dmi' + blueeffect.icon_state = "shieldsparkles" + blueeffect.layer = FLASH_LAYER + blueeffect.plane = FULLSCREEN_PLANE + blueeffect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + M.client.screen += blueeffect + stoplag(20) + M.client.screen -= blueeffect + qdel(blueeffect) + +/obj/effect/anomaly/bluespace/big + immortal = TRUE + effectrange = 4 + teleport_distance = 12 + reagent_amount = 20 + +/obj/effect/anomaly/bluespace/big/Initialize(mapload, new_lifespan, drops_core) + . = ..() + + transform *= 1.5 + +/obj/effect/anomaly/bluespace/big/Bumped(atom/movable/bumpee) + . = ..() + if(iscarbon(bumpee)) + var/mob/living/carbon/carbon = bumpee + carbon.reagents?.add_reagent(/datum/reagent/bluespace, reagent_amount) + + if(!isliving(bumpee)) + return ..() + +/obj/effect/anomaly/bluespace/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/anomaly/bluespace/big/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_flux.dm b/code/game/objects/effects/anomalies/anomalies_flux.dm new file mode 100644 index 000000000000..56e6f2c4c15e --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_flux.dm @@ -0,0 +1,98 @@ +/obj/effect/anomaly/flux + name = "tesla" + icon_state = "flux" + desc = "A mysterious anomaly that sends out a near constant stream of electrical arcs." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/flux + pulse_delay = 2 SECONDS + effectrange = 0 + var/canshock = FALSE + var/shockdamage = 20 + var/explosive = FLUX_EXPLOSIVE + var/zap_range = 1 + var/zap_power = 1500 + var/zap_flags = ZAP_MOB_DAMAGE + +/obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, drops_core = TRUE, explosive = FLUX_EXPLOSIVE) + . = ..() + src.explosive = explosive + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + ) + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/effect/anomaly/flux/anomalyEffect() + ..() + canshock = TRUE + for(var/mob/living/Mob in range(effectrange, src)) + mobShock(Mob) + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + tesla_zap(src, zap_range, zap_power, zap_flags) + +/obj/effect/anomaly/flux/proc/on_entered(datum/source, atom/movable/AM) + SIGNAL_HANDLER + mobShock(AM) + tesla_zap(src, zap_range, zap_power, zap_flags) + new /obj/effect/particle_effect/sparks(loc) + +/obj/effect/anomaly/flux/Bump(atom/Atom) + mobShock(Atom) + tesla_zap(src, zap_range, zap_power, zap_flags) + +/obj/effect/anomaly/flux/Bumped(atom/movable/AM) + mobShock(AM) + tesla_zap(src, zap_range, zap_power, zap_flags) + +/obj/effect/anomaly/flux/proc/mobShock(mob/living/Mob) + if(canshock && istype(Mob)) + canshock = FALSE + Mob.electrocute_act(shockdamage, name, flags = SHOCK_NOGLOVES) + +/obj/effect/anomaly/flux/detonate() + switch(explosive) + if(FLUX_EXPLOSIVE) + explosion(src, devastation_range = 1, heavy_impact_range = 4, light_impact_range = 16, flash_range = 18) //Low devastation, but hits a lot of stuff. + if(FLUX_LOW_EXPLOSIVE) + explosion(src, heavy_impact_range = 1, light_impact_range = 4, flash_range = 6) + if(FLUX_NO_EXPLOSION) + new /obj/effect/particle_effect/sparks(loc) + + . = ..() + +/obj/effect/anomaly/flux/minor/Initialize(mapload, new_lifespan, drops_core = FALSE, explosive = FLUX_NO_EXPLOSION) + return ..() + + +/obj/effect/anomaly/flux/big + immortal = TRUE + shockdamage = 30 + pulse_delay = 2 + effectrange = 1 + + zap_range = 2 + zap_power = 3000 + zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE + +/obj/effect/anomaly/flux/big/Initialize(mapload, new_lifespan, drops_core) + . = ..() + + transform *= 1.5 + + +/obj/effect/anomaly/flux/big/Bumped(atom/movable/bumpee) + . = ..() + + if(isliving(bumpee)) + new /obj/effect/particle_effect/sparks(loc) + +/obj/effect/anomaly/flux/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/anomaly/flux/big/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm new file mode 100644 index 000000000000..b5668732f52b --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm @@ -0,0 +1,122 @@ + +/atom/movable/warp_effect + appearance_flags = PIXEL_SCALE|LONG_GLIDE // no tile bound so you can see it around corners and so + icon = 'icons/effects/light_overlays/light_352.dmi' + icon_state = "light" + pixel_x = -176 + pixel_y = -176 + +/obj/effect/anomaly/grav + name = "throngler" + icon_state = "gravity" + desc = "A mysterious anomaly that sucks things towards it with a gravitational field, ending in what has been termed a 'throngling'." + density = FALSE + aSignal = /obj/item/assembly/signaler/anomaly/grav + bSignal = null + effectrange = 4 + var/boing = 0 + ///Warp effect holder for displacement filter to "pulse" the anomaly + var/atom/movable/warp_effect/warp + +/obj/effect/anomaly/grav/Initialize(mapload, new_lifespan, drops_core) + . = ..() + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = .proc/on_entered, + ) + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/effect/anomaly/grav/anomalyEffect() + ..() + boing = 1 + for(var/obj/O in orange(effectrange, src)) + if(!O.anchored) + step_towards(O,src) + for(var/mob/living/Mob in range(0, src)) + gravShock(Mob) + for(var/mob/living/Mob in orange(effectrange, src)) + if(!Mob.mob_negates_gravity()) + step_towards(Mob,src) + for(var/obj/O in range(0,src)) + if(!O.anchored) + if(isturf(O.loc)) + var/turf/T = O.loc + if(T.intact && HAS_TRAIT(O, TRAIT_T_RAY_VISIBLE)) + continue + var/mob/living/target = locate() in view(effectrange,src) + if(target && !target.stat) + O.throw_at(target, 5, 10) + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + for(var/mob/living/carbon/carbon in orange(effectrange/2, src)) + if(carbon.run_armor_check(attack_flag = "melee") >= 40) + carbon.break_random_bone() + if(carbon.run_armor_check(attack_flag = "melee") >= 60) + carbon.break_all_bones() //crunch + carbon.apply_damage(10, BRUTE) + +/obj/effect/anomaly/grav/proc/on_entered(datum/source, atom/movable/AM) + SIGNAL_HANDLER + + gravShock(AM) + +/obj/effect/anomaly/grav/Bump(atom/A) + gravShock(A) + +/obj/effect/anomaly/grav/Bumped(atom/movable/AM) + gravShock(AM) + +/obj/effect/anomaly/grav/proc/gravShock(mob/living/Guy) + if(boing && isliving(Guy) && !Guy.stat) + Guy.Paralyze(40) + var/atom/target = get_edge_target_turf(Guy, get_dir(src, get_step_away(Guy, src))) + Guy.throw_at(target, 5, 1) + boing = 0 + if(iscarbon(Guy)) + for(var/mob/living/carbon/carbon in range(0,src)) + if(carbon.run_armor_check(attack_flag = "melee") >= 20) + carbon.break_random_bone() + else if(carbon.run_armor_check(attack_flag = "melee") >= 40) + carbon.break_all_bones() //crunch + carbon.apply_damage(10, BRUTE) + +/obj/effect/anomaly/grav/high + effectrange = 5 + var/grav_field + +/obj/effect/anomaly/grav/high/Initialize(mapload, new_lifespan) + . = ..() + INVOKE_ASYNC(src, .proc/setup_grav_field) + +/obj/effect/anomaly/grav/high/proc/setup_grav_field() + grav_field = make_field(/datum/proximity_monitor/advanced/gravity, list("current_range" = effectrange, "host" = src, "gravity_value" = 2)) + +/obj/effect/anomaly/grav/high/Destroy() + QDEL_NULL(grav_field) + . = ..() + +///Bigger, meaner, immortal gravity anomaly. although this is just the super grav anomaly but bigger and shattering move force +/obj/effect/anomaly/grav/high/big + immortal = TRUE + effectrange = 7 + move_force = MOVE_FORCE_OVERPOWERING + +/obj/effect/anomaly/grav/high/big/Initialize(mapload, new_lifespan, drops_core) + . = ..() + + transform *= 1.5 + + +/obj/effect/anomaly/grav/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/anomaly/grav/high/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/anomaly/grav/high/big/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm new file mode 100644 index 000000000000..fc7e4e3c9859 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm @@ -0,0 +1,52 @@ + +/obj/effect/anomaly/hallucination + name = "hallucination anomaly" + icon_state = "hallucination" + aSignal = /obj/item/assembly/signaler/anomaly/hallucination + /// Time passed since the last effect, increased by delta_time of the SSobj + var/ticks = 0 + /// How many seconds between each small hallucination pulses + pulse_delay = 5 SECONDS + effectrange = 5 + +/obj/effect/anomaly/hallucination/anomalyEffect(delta_time) + . = ..() + ticks += delta_time + if(ticks < pulse_delay) + return + ticks -= pulse_delay + var/turf/open/our_turf = get_turf(src) + if(istype(our_turf)) + hallucination_pulse(our_turf, 5) + +/obj/effect/anomaly/hallucination/detonate() + var/turf/open/our_turf = get_turf(src) + if(istype(our_turf)) + hallucination_pulse(our_turf, 10) + . = ..() + +/obj/effect/anomaly/hallucination/proc/hallucination_pulse(turf/open/location, effectrange) + for(var/mob/living/carbon/human/user in view(location, effectrange)) + // If they are immune to the anomaly + if (iscarbon(user) && !user.research_scanner) + continue + + // Blind people don't get hallucinations. + if (user.is_blind()) + continue + + // Everyone else gets hallucinations. + var/dist = sqrt(1 / max(1, get_dist(user, location))) + user.hallucination += 50 * dist + user.hallucination = clamp(user.hallucination, 0, 150) + var/list/messages = list( + "You feel your conscious mind fall apart!", + "Reality warps around you!", + "Something's wispering around you!", + "You are going insane!", + ) + to_chat(user, span_warning(pick(messages))) + +/obj/effect/anomaly/hallucination/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_heartbeat.dm b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm new file mode 100644 index 000000000000..006aec55f0d6 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm @@ -0,0 +1,42 @@ +/obj/effect/anomaly/heartbeat + name = "heartbeat" + icon_state = "heartbeat" + desc = "A mysterious anomaly, it ionizes the world around it." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/heartbeat + effectrange = 3 + pulse_delay = 6 SECONDS + var/reagent_amount = 5 + +/obj/effect/anomaly/heartbeat/anomalyEffect() + ..() + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + playsound(src, 'sound/health/slowbeat2.ogg', 100) + radiation_pulse(src, 500, 2) + + + if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown)) + return + + COOLDOWN_START(src, pulse_secondary_cooldown, pulse_delay*4) + var/turf/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) + playsound(spot, 'sound/health/slowbeat2.ogg', 100) + radiation_pulse(spot, 200, effectrange) + +/obj/effect/anomaly/heartbeat/Bumped(atom/movable/AM) + var/turf/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) + playsound(spot, 'sound/health/slowbeat2.ogg', 100) + radiation_pulse(spot, 200, effectrange) + +/obj/effect/anomaly/heartbeat/detonate() + radiation_pulse(src, 5000, 2) + playsound(src, 'sound/health/fastbeat2.ogg', 300) + . = ..() + +/obj/effect/anomaly/heartbeat/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_melter.dm b/code/game/objects/effects/anomalies/anomalies_melter.dm new file mode 100644 index 000000000000..763c1f334610 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_melter.dm @@ -0,0 +1,47 @@ +/obj/effect/anomaly/melter + name = "melter" + icon_state = "melter" + desc = "A mysterious anomaly. Everburning green flames with a horrid sizzle, melting what's near" + effectrange = 2 + pulse_delay = 10 SECONDS + aSignal = /obj/item/assembly/signaler/anomaly/pyro + +/obj/effect/anomaly/melter/anomalyEffect(seconds_per_tick) + ..() + + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + + for(var/mob/living/carbon/meltee in range(effectrange, src)) + for(var/X in meltee.get_equipped_items()) + var/obj/item/I = X + I.acid_act(20, 20) + I.update_icon() + for (var/obj/item/melt in range(effectrange, src)) + melt.acid_act(20, 10) + melt.update_icon() + +/obj/effect/anomaly/melter/Bumped(atom/movable/AM) + if(isobj(AM)) + var/obj/acid = AM + acid.acid_act(100,20) + acid.update_icon() + + +/obj/effect/anomaly/melter/detonate() + for(var/mob/living/carbon/meltee in range(effectrange, src)) + for(var/X in meltee.get_equipped_items()) + var/obj/item/I = X + I.acid_act(200, 20) + I.update_icon() + for(var/obj/item in range(effectrange, src)) + item.acid_act(100,20) + item.update_icon() + . = ..() + + +/obj/effect/anomaly/melter/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_phantom.dm b/code/game/objects/effects/anomalies/anomalies_phantom.dm new file mode 100644 index 000000000000..9407bbcbf920 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_phantom.dm @@ -0,0 +1,46 @@ +/obj/effect/anomaly/phantom + name = "phantom" + icon_state = "phantom" + desc = "A mysterious anomaly, the outline of a humanoid, endlessly screaming in agony." + density = FALSE + aSignal = /obj/item/assembly/signaler/anomaly/phantom + effectrange = 3 + pulse_delay = 2 SECONDS + + +/obj/effect/anomaly/phantom/anomalyEffect() + ..() + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + +// /tg/'s helgrasp spawn_hands proc, modified to work as an anomaly effect + for(var/mob/living/carbon/handsy in range(effectrange, src)) + if(handsy.stat != DEAD) + var/grab_dir = turn(handsy.dir, pick(-90, 90, 180, 180)) + var/turf/spawn_turf = get_ranged_target_turf(handsy, grab_dir, 8) + if(!spawn_turf) + return + new /obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, handsy.dir) + playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) + var/obj/projectile/curse_hand/phantom/hand = new (spawn_turf) + hand.preparePixelProjectile(handsy, spawn_turf) + if(QDELETED(hand)) + return + hand.fire() + return + + +/obj/effect/anomaly/phantom/Bumped(atom/movable/AM) + anomalyEffect() + new /obj/effect/gibspawner/human(loc) + +/obj/effect/anomaly/phantom/detonate() + anomalyEffect() + new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested(loc) + . = ..() + +/obj/effect/anomaly/phantom/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm new file mode 100644 index 000000000000..3bb9fde4b5e0 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm @@ -0,0 +1,52 @@ +/obj/effect/anomaly/plasmasoul + name = "plasma soul" + icon_state = "plasmasoul" + desc = "A mysterious anomaly, it slowly emits plasma into the area around it." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/plasmasoul + effectrange = 3 + pulse_delay = 6 SECONDS + var/reagent_amount = 5 + +/obj/effect/anomaly/plasmasoul/anomalyEffect() + ..() + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + for(var/mob/living/Mob in range(effectrange,src)) + if(iscarbon(Mob)) + var/mob/living/carbon/carbon = Mob + carbon.reagents?.add_reagent(/datum/reagent/toxin/plasma, reagent_amount) + to_chat(Mob, span_warning("Your blood feels thick..")) + playsound(Mob, 'sound/effects/bubbles.ogg', 50) + + + if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown)) + return + + COOLDOWN_START(src, pulse_secondary_cooldown, pulse_delay*3) + var/turf/open/tile = get_turf(src) + if(istype(tile)) + tile.atmos_spawn_air("o2=250;plasma=750;TEMP=1000") + +/obj/effect/anomaly/plasmasoul/Bumped(atom/movable/AM) + var/turf/open/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) + if(istype(spot)) + spot.atmos_spawn_air("o2=50;plasma=300;TEMP=500") + +/obj/effect/anomaly/plasmasoul/detonate() + for(var/mob/living/Mob in range(effectrange*2,src)) + if(iscarbon(Mob)) + var/mob/living/carbon/carbon = Mob + if(carbon.run_armor_check(attack_flag = "bio") <= 40) + carbon.reagents?.add_reagent(/datum/reagent/toxin/plasma, reagent_amount*3) + var/turf/open/tile = get_turf(src) + if(istype(tile)) + tile.atmos_spawn_air("o2=600;plasma=3000;TEMP=2000") + . = ..() + +/obj/effect/anomaly/plasmasoul/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_pulsar.dm b/code/game/objects/effects/anomalies/anomalies_pulsar.dm new file mode 100644 index 000000000000..1f75acee56b8 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_pulsar.dm @@ -0,0 +1,32 @@ +/obj/effect/anomaly/pulsar + name = "pulsar" + icon_state = "pulsar" + desc = "A mysterious anomaly, endless electromagnetic disturbances roll out from it" + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/pulsar + effectrange = 4 + pulse_delay = 15 SECONDS + + +/obj/effect/anomaly/pulsar/anomalyEffect() + ..() + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + var/turf/spot = locate(rand(src.x-effectrange/2, src.x+effectrange/2), rand(src.y-effectrange/2, src.y+effectrange/2), src.z) + empulse(spot, effectrange/2, effectrange) //yeah it's not a thrilling effect. I think it's fine though. + + +/obj/effect/anomaly/pulsar/Bumped(atom/movable/AM) + empulse(loc, effectrange/2, effectrange) + +/obj/effect/anomaly/pulsar/detonate() + empulse(loc, effectrange, effectrange*2) + . = ..() + + +/obj/effect/anomaly/pulsar/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm new file mode 100644 index 000000000000..b4c93868e670 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm @@ -0,0 +1,86 @@ + +/obj/effect/anomaly/pyro + name = "plasmaball" + icon_state = "pyroclastic" + desc = "A mysterious anomaly, made of an everburning gas. Those who approach it tend to absorb it's heat, or even ignite." + effectrange = 4 + pulse_delay = 10 SECONDS + aSignal = /obj/item/assembly/signaler/anomaly/pyro + +/obj/effect/anomaly/pyro/anomalyEffect(seconds_per_tick) + ..() + + for(var/mob/living/carbon/nearby in range(effectrange, src)) + nearby.adjust_bodytemperature(20) + visible_message("[src] pulses!") + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + + for(var/mob/living/carbon/nearby in range(effectrange/2, src)) + nearby.fire_stacks += 3 + nearby.IgniteMob() + visible_message("[src] ignites [nearby]!") + + +/obj/effect/anomaly/pyro/Bumped(atom/movable/AM) + if(isobj(AM)) + var/obj/firething = AM + if(firething.resistance_flags & FIRE_PROOF) + firething.resistance_flags &= ~FIRE_PROOF + if(firething.armor.fire > 50) //*Me copies from lava code + firething.armor = firething.armor.setRating(fire = 50) + firething.fire_act(10000, 1000) + if(iscarbon(AM)) + var/mob/living/carbon/onfire + onfire.fire_stacks += 3 + onfire.IgniteMob() + +/obj/effect/anomaly/pyro/detonate() + INVOKE_ASYNC(src, PROC_REF(makepyroslime)) + . = ..() + +/obj/effect/anomaly/pyro/proc/makepyroslime() + var/turf/open/tile = get_turf(src) + if(istype(tile)) + tile.atmos_spawn_air("o2=250;plasma=750;TEMP=1000") //Make it hot and burny for the new slime + + var/new_colour = pick("red", "orange") + var/mob/living/simple_animal/slime/pyro = new(tile, new_colour) + pyro.rabid = TRUE + pyro.amount_grown = SLIME_EVOLUTION_THRESHOLD + pyro.Evolve() + var/datum/action/innate/slime/reproduce/repro_action = new + repro_action.Grant(pyro) + + +/obj/effect/anomaly/pyro/big + immortal = TRUE + pulse_delay = 2 + effectrange = 6 + +/obj/effect/anomaly/pyro/big/Initialize(mapload, new_lifespan, drops_core) + . = ..() + + transform *= 2 + + +/obj/effect/anomaly/pyro/big/anomalyEffect(seconds_per_tick) + . = ..() + + if(!.) + return + + var/turf/turf = get_turf(src) + if(!isgroundlessturf(turf)) + turf.TerraformTurf(/turf/open/lava/smooth, flags = CHANGETURF_INHERIT_AIR) + + +/obj/effect/anomaly/pyro/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/anomaly/pyro/big/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_sparkler.dm b/code/game/objects/effects/anomalies/anomalies_sparkler.dm new file mode 100644 index 000000000000..0b26e6fd6a1c --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_sparkler.dm @@ -0,0 +1,37 @@ +/obj/effect/anomaly/sparkler + name = "sparkler" + icon_state = "sparkler" + desc = "A mysterious anomaly, constantly throwing sparks into its vicinity." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/sparkler + effectrange = 4 + pulse_delay = 1 SECONDS + +/obj/effect/anomaly/sparkler/anomalyEffect() + ..() + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + var/turf/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) + new /obj/effect/particle_effect/sparks(spot) + return + + +/obj/effect/anomaly/sparkler/Bumped(atom/movable/AM) + tesla_zap(src, 2, 5000, ZAP_FUSION_FLAGS) + +/obj/effect/anomaly/sparkler/detonate() + var/i = 0 + while(i <= 5) + tesla_zap(src, 3, 10000, ZAP_DEFAULT_FLAGS) + anomalyEffect() + anomalyEffect() + anomalyEffect() + i = i + 1 + . = ..() + +/obj/effect/anomaly/sparkler/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm new file mode 100644 index 000000000000..31c2a2db5c47 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -0,0 +1,90 @@ +/obj/effect/anomaly/tvstatic + name = "static" + icon_state = "static" + desc = "A mysterious anomaly. A hole in the world, endless buzzing emitting from it." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/tvstatic + effectrange = 4 + pulse_delay = 4 SECONDS + var/mob/living/carbon/stored_mob = null + +/obj/effect/anomaly/tvstatic/examine(mob/user) + . = ..() + if(!iscarbon(user)) + return + if(iscarbon(user) && !user.research_scanner) //this'll probably cause some weirdness when I start using research scanner in more places / on more items. Oh well. + var/mob/living/carbon/bah = user + to_chat(bah, span_userdanger("Your head aches as you stare into the [src]!")) + bah.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) + +/obj/effect/anomaly/tvstatic/anomalyEffect() + ..() + + var/turf/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) + new /obj/effect/particle_effect/staticball(spot) + + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + + for(var/mob/living/carbon/looking in range(effectrange, src)) + playsound(src, 'sound/effects/walkietalkie.ogg', 100) + if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) + looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4, 200) + playsound(src, 'sound/effects/stall.ogg', 100) + if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) + if(prob(20)) + var/mob/living/carbon/victim = looking + var/obj/effect/anomaly/tvstatic/planetary/expansion + expansion = new(get_turf(victim)) + visible_message(" The static overtakes [victim], [expansion] taking their place!") + victim.death() + expansion.stored_mob = victim + victim.forceMove(expansion) + return + + +/obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) + anomalyEffect() + +/obj/effect/anomaly/tvstatic/detonate() + for(var/mob/living/carbon/looking in range(effectrange, src)) + visible_message(" The static lashes out, agony filling your mind as its tendrils scrape your thoughts!") + if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD) + looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200) + playsound(src, 'sound/effects/stall.ogg', 100) + anomalyEffect() + . = ..() + + +/obj/effect/anomaly/tvstatic/anomalyNeutralize() + var/turf/T = get_turf(src) + if(T) + if(stored_mob) + visible_message("The static spits out [stored_mob], their body coming out in a burst!") + stored_mob.forceMove(get_turf(src)) + stored_mob = null + . = ..() + + +/obj/effect/anomaly/tvstatic/planetary + immortal = TRUE + immobile = TRUE + +/obj/effect/particle_effect/staticball + name = "static blob" + desc = "An unsettling mass of free floating static" + icon = 'icons/effects/anomalies.dmi' + icon_state = "static" + +/obj/effect/particle_effect/staticball/Initialize() + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/effect/particle_effect/staticball/LateInitialize() + flick(icon_state, src) + playsound(src, "walkietalkie", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + QDEL_IN(src, 20) + diff --git a/code/game/objects/effects/anomalies/anomalies_veins.dm b/code/game/objects/effects/anomalies/anomalies_veins.dm new file mode 100644 index 000000000000..416e325ccdbd --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_veins.dm @@ -0,0 +1,55 @@ +/obj/effect/anomaly/veins + name = "veins" + icon_state = "veins" + desc = "A mysterious anomaly, throbbing purple veins, suspended midair." + density = TRUE + aSignal = /obj/item/assembly/signaler/anomaly/veins + effectrange = 3 + pulse_delay = 4 SECONDS + + +/obj/effect/anomaly/veins/anomalyEffect() + ..() + + if(!COOLDOWN_FINISHED(src, pulse_cooldown)) + return + + COOLDOWN_START(src, pulse_cooldown, pulse_delay) + + + for(var/mob/living/carbon/suckee in range(effectrange, src)) + if(suckee.run_armor_check(attack_flag = "melee") <= 40 ) + suckee.bleed(20) + suckee.apply_damage(5, BRUTE) + visible_message("Blood starts to fly off of [suckee], heading for the [src]!") + + return + + +/obj/effect/anomaly/veins/Bumped(atom/movable/AM) + if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown)) + return + + COOLDOWN_START(src, pulse_secondary_cooldown, 10) + + anomalyEffect() + var/turf/spot = locate(rand(src.x-effectrange/2, src.x+effectrange/2), rand(src.y-effectrange/2, src.y+effectrange/2), src.z) + var/obj/effect/gibspawner/mess = pick(list( + /obj/effect/gibspawner/human, + /obj/effect/gibspawner/xeno, + /obj/effect/gibspawner/generic/animal + )) + new mess(spot) + +/obj/effect/anomaly/veins/detonate() + for(var/mob/living/carbon/suckee in range(effectrange, src)) + suckee.bleed(200) + visible_message("[suckee] hemorrages, a fountain of blood heading for [src]!") + anomalyEffect() + anomalyEffect() + anomalyEffect() + . = ..() + +/obj/effect/anomaly/veins/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/anomalies/anomalies_vortex.dm b/code/game/objects/effects/anomalies/anomalies_vortex.dm new file mode 100644 index 000000000000..16a30cbaa9c6 --- /dev/null +++ b/code/game/objects/effects/anomalies/anomalies_vortex.dm @@ -0,0 +1,69 @@ + +/obj/effect/anomaly/vortex + name = "vortex" + icon_state = "vortex" + desc = "A mysterious anomaly, this one destroys everything around it." + aSignal = /obj/item/assembly/signaler/anomaly/vortex + bSignal = null + +/obj/effect/anomaly/vortex/anomalyEffect() + ..() + if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen + qdel(src) + return + + grav(rand(0,3), rand(2,3), 50, 25) + + //Throwing stuff around! + for(var/obj/O in range(2,src)) + if(O == src) + return //DON'T DELETE YOURSELF GOD DAMN + if(!O.anchored) + var/mob/living/target = locate() in view(4,src) + if(target && !target.stat) + O.throw_at(target, 7, 5) + else + SSexplosions.medobj += O + +/obj/effect/anomaly/vortex/proc/grav(r, ex_act_force, pull_chance, turf_removal_chance) + for(var/t in -r to r) + affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) + +/obj/effect/anomaly/vortex/proc/affect_coord(x, y, ex_act_force, pull_chance, turf_removal_chance) + //Get turf at coordinate + var/turf/T = locate(x, y, z) + if(isnull(T)) + return + + //Pulling and/or ex_act-ing movable atoms in that turf + if(prob(pull_chance)) + for(var/obj/O in T.contents) + if(O.anchored) + switch(ex_act_force) + if(EXPLODE_DEVASTATE) + SSexplosions.highobj += O + if(EXPLODE_HEAVY) + SSexplosions.medobj += O + if(EXPLODE_LIGHT) + SSexplosions.lowobj += O + else + step_towards(O,src) + for(var/mob/living/M in T.contents) + step_towards(M,src) + + //Damaging the turf + if(T && prob(turf_removal_chance)) + switch(ex_act_force) + if(EXPLODE_DEVASTATE) + SSexplosions.highturf += T + if(EXPLODE_HEAVY) + SSexplosions.medturf += T + if(EXPLODE_LIGHT) + SSexplosions.lowturf += T + +/obj/effect/anomaly/vortex/planetary + immortal = TRUE + immobile = TRUE diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 04569904a9cc..ad355b32af3d 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -807,6 +807,218 @@ ) lootcount = 1 +/obj/effect/spawner/lootdrop/anomaly + name = "random anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/safe + name = "relatively safe anomaly spawner" + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/dangerous + name = "relatively dangerous anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/big + name = "random big anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/big/planetary, + /obj/effect/anomaly/flux/big/planetary, + /obj/effect/anomaly/grav/high/big/planetary, + /obj/effect/anomaly/pyro/big/planetary + + ) + +//handpicked lists relevant to the planets they're on +// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though + +/obj/effect/spawner/lootdrop/anomaly/jungle + name = "Jungle Anomaly Spawner" + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/jungle/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some* + +/obj/effect/spawner/lootdrop/anomaly/beach + name = "Beach anomaly spawner" + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/beach/cave + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/sand + name = "Sand anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/sand/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/rock + name = "Rock anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/rock/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/lava + name = "Lava anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/lava/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/ice + name = "Ice anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/ice/cave + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/waste + name = "Waste anomaly spawner" + loot = list( + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/lootdrop/anomaly/waste/cave + loot = list( + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) +//wasteplanet things + /obj/effect/spawner/lootdrop/waste/grille_or_trash name = "wasteplanet loot spawner" loot = list( diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 4e68c4bf7fd8..acce4799bf77 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -1019,16 +1019,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(51 to 60) var/datum/round_event_control/spider_infestation/SI = new() SI.runEvent() - if(61 to 70) - var/datum/round_event_control/anomaly/anomaly_flux/AF - var/datum/round_event_control/anomaly/anomaly_grav/AG - var/datum/round_event_control/anomaly/anomaly_pyro/AP - var/datum/round_event_control/anomaly/anomaly_vortex/AV - AF.runEvent() - AG.runEvent() - AP.runEvent() - AV.runEvent() - if(71 to 80) + if(61 to 80) var/datum/round_event_control/spacevine/SV = new() var/datum/round_event_control/grey_tide/GT = new() SV.runEvent() diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index e745323efc0a..a5be27f88526 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -185,6 +185,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' resistance_flags = FIRE_PROOF var/anomaly_type = /obj/effect/anomaly + var/research /obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal) if(!signal) @@ -193,10 +194,12 @@ return FALSE if(suicider) manual_suicide(suicider) - for(var/obj/effect/anomaly/A in get_turf(src)) - A.anomalyNeutralize() + for(var/obj/effect/anomaly/Anomaly in get_turf(src)) + Anomaly.anomalyNeutralize() return TRUE + + /obj/item/assembly/signaler/anomaly/manual_suicide(mob/living/carbon/user) user.visible_message("[user]'s [src] is reacting to the radio signal, warping [user.p_their()] body!") user.set_suicide(TRUE) @@ -208,7 +211,25 @@ to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code].") ..() +/obj/item/assembly/signaler/anomaly/det_signal + name = "anomaly field" + research = null + anomaly_type = null + +/obj/item/assembly/signaler/anomaly/det_signal/receive_signal(datum/signal/signal) + if(!signal) + return FALSE + if(signal.data["code"] != code) + return FALSE + if(suicider) + manual_suicide(suicider) + for(var/obj/effect/anomaly/Anomaly in get_turf(src)) + Anomaly.detonate() + return TRUE + + //Anomaly cores + /obj/item/assembly/signaler/anomaly/pyro name = "\improper pyroclastic anomaly core" desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research." @@ -237,7 +258,44 @@ name = "\improper vortex anomaly core" desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research." icon_state = "vortex core" - anomaly_type = /obj/effect/anomaly/bhole + anomaly_type = /obj/effect/anomaly/vortex + +/obj/item/assembly/signaler/anomaly/hallucination + name = "\improper hallucination anomaly core" + desc = "The neutralized core of a hallucination anomaly. It seems to be moving, but it's probably your imagination. It'd probably be valuable for research." + icon_state = "hallucination_core" + anomaly_type = /obj/effect/anomaly/hallucination + +/obj/item/assembly/signaler/anomaly/sparkler + name = "\improper sparkler anomaly core" + desc = "The neutralized core of a sparkler anomaly. Tiny electrical sparks arc off it." + anomaly_type = /obj/effect/anomaly/sparkler + +/obj/item/assembly/signaler/anomaly/veins + name = "\improper fountain anomaly core" + desc = "The neutralized core of a fountain anomaly. Blood drips off of it." + anomaly_type = /obj/effect/anomaly/sparkler + +/obj/item/assembly/signaler/anomaly/phantom + name = "\improper phantom anomaly core" + desc = "The neutralized core of a phantom anomaly. It quietly screams." + anomaly_type = /obj/effect/anomaly/phantom + +/obj/item/assembly/signaler/anomaly/pulsar + name = "\improper pulsar anomaly core" + desc = "The neutralized core of a pulsar anomaly. Electromagnetic crackles come off it." + +/obj/item/assembly/signaler/anomaly/plasmasoul + name = "\improper plasmasoul anomaly core" + desc = "The neutralized core of a plasmasoul anomaly. The air around it hisses." + +/obj/item/assembly/signaler/anomaly/heartbeat + name = "\improper heartbeat anomaly core" + desc = "The neutralized core of a heartbeat anomaly. It's concerningly warm to the touch." + +/obj/item/assembly/signaler/anomaly/tvstatic + name = "\improper static anomaly core" + desc = "The neutralized core of a static anomaly. Your head hurts just staring at it" /obj/item/assembly/signaler/anomaly/attack_self() return diff --git a/code/modules/disks/disk.dm b/code/modules/disks/disk.dm index 5e16d48c3dc0..9d2f4aac8232 100644 --- a/code/modules/disks/disk.dm +++ b/code/modules/disks/disk.dm @@ -56,14 +56,16 @@ writing.appearance_flags = RESET_COLOR . += writing -/obj/item/disk/attackby(obj/item/pen, mob/user, params) - if(!user.is_literate()) - to_chat(user, "You scribble illegibly on the cover of [src]!") - return - var/inputvalue = stripped_input(user, "What would you like to label the Disk?", "Disk Labelling", "", MAX_NAME_LEN) +/obj/item/disk/attackby(obj/item/object, mob/user, params) + if(istype(object, /obj/item/pen)) + if(!user.is_literate()) + to_chat(user, "You scribble illegibly on the cover of [src]!") + return + var/inputvalue = stripped_input(user, "What would you like to label the Disk?", "Disk Labelling", "", MAX_NAME_LEN) - if(!inputvalue) - return + if(!inputvalue) + return - if(user.canUseTopic(src, BE_CLOSE)) - name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]" + if(user.canUseTopic(src, BE_CLOSE)) + name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]" + return diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm deleted file mode 100644 index e4306e8ec4a6..000000000000 --- a/code/modules/events/anomaly.dm +++ /dev/null @@ -1,50 +0,0 @@ -/datum/round_event_control/anomaly - name = "Anomaly: Energetic Flux" - typepath = /datum/round_event/anomaly - - min_players = 1 - max_occurrences = 0 //This one probably shouldn't occur! It'd work, but it wouldn't be very fun. - weight = 15 - -/datum/round_event/anomaly - var/area/impact_area - var/obj/effect/anomaly/anomaly_path = /obj/effect/anomaly/flux - announceWhen = 1 - - -/datum/round_event/anomaly/proc/findEventArea() - var/static/list/allowed_areas - if(!allowed_areas) - //Places that shouldn't explode - var/list/safe_area_types = typecacheof(list( - /area/ship/science/ai_chamber, - /area/ship/engineering, - /area/ship/maintenance) - ) - - //Subtypes from the above that actually should explode. - var/list/unsafe_area_subtypes = typecacheof(list()) - - allowed_areas = make_associative(typesof(/area/ship)) - safe_area_types + unsafe_area_subtypes - var/list/possible_areas = typecache_filter_list(GLOB.sortedAreas,allowed_areas) - if (length(possible_areas)) - return pick(possible_areas) - -/datum/round_event/anomaly/setup() - impact_area = findEventArea() - if(!impact_area) - CRASH("No valid areas for anomaly found.") - var/list/turf_test = get_area_turfs(impact_area) - if(!turf_test.len) - CRASH("Anomaly : No valid turfs found for [impact_area] - [impact_area.type]") - -/datum/round_event/anomaly/announce(fake) - priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert", zlevel = impact_area.virtual_z()) - -/datum/round_event/anomaly/start() - var/turf/T = pick(get_area_turfs(impact_area)) - var/newAnomaly - if(T) - newAnomaly = new anomaly_path(T) - if (newAnomaly) - announce_to_ghosts(newAnomaly) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm deleted file mode 100644 index 78ed91c9c8fe..000000000000 --- a/code/modules/events/anomaly_bluespace.dm +++ /dev/null @@ -1,14 +0,0 @@ -/datum/round_event_control/anomaly/anomaly_bluespace - name = "Anomaly: Bluespace" - typepath = /datum/round_event/anomaly/anomaly_bluespace - - max_occurrences = 1 - weight = 15 - -/datum/round_event/anomaly/anomaly_bluespace - startWhen = 3 - announceWhen = 10 - anomaly_path = /obj/effect/anomaly/bluespace - -/datum/round_event/anomaly/anomaly_bluespace/announce(fake) - priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", zlevel = impact_area.virtual_z()) diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm deleted file mode 100644 index e8691e03e4fe..000000000000 --- a/code/modules/events/anomaly_flux.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/round_event_control/anomaly/anomaly_flux - name = "Anomaly: Hyper-Energetic Flux" - typepath = /datum/round_event/anomaly/anomaly_flux - - min_players = 10 - max_occurrences = 5 - weight = 20 - -/datum/round_event/anomaly/anomaly_flux - startWhen = 10 - announceWhen = 3 - anomaly_path = /obj/effect/anomaly/flux - -/datum/round_event/anomaly/anomaly_flux/announce(fake) - priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", zlevel = impact_area.virtual_z()) diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm deleted file mode 100644 index 27e50dd45c9b..000000000000 --- a/code/modules/events/anomaly_grav.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/round_event_control/anomaly/anomaly_grav - name = "Anomaly: Gravitational" - typepath = /datum/round_event/anomaly/anomaly_grav - - max_occurrences = 5 - weight = 25 - -/datum/round_event/anomaly/anomaly_grav - startWhen = 3 - announceWhen = 20 - anomaly_path = /obj/effect/anomaly/grav - -/datum/round_event_control/anomaly/anomaly_grav/high - name = "Anomaly: Gravitational (High Intensity)" - typepath = /datum/round_event/anomaly/anomaly_grav/high - weight = 15 - max_occurrences = 1 - earliest_start = 20 MINUTES - -/datum/round_event/anomaly/anomaly_grav/high - startWhen = 3 - announceWhen = 20 - anomaly_path = /obj/effect/anomaly/grav/high - -/datum/round_event/anomaly/anomaly_grav/announce(fake) - priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", zlevel = impact_area.virtual_z()) diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm deleted file mode 100644 index 49d62899e8cc..000000000000 --- a/code/modules/events/anomaly_pyro.dm +++ /dev/null @@ -1,14 +0,0 @@ -/datum/round_event_control/anomaly/anomaly_pyro - name = "Anomaly: Pyroclastic" - typepath = /datum/round_event/anomaly/anomaly_pyro - - max_occurrences = 5 - weight = 15 //WS Edit - Pyroclastic Rebalance - -/datum/round_event/anomaly/anomaly_pyro - startWhen = 3 - announceWhen = 10 - anomaly_path = /obj/effect/anomaly/pyro - -/datum/round_event/anomaly/anomaly_pyro/announce(fake) - priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", zlevel = impact_area.virtual_z()) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm deleted file mode 100644 index f14c7d4dc134..000000000000 --- a/code/modules/events/anomaly_vortex.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/round_event_control/anomaly/anomaly_vortex - name = "Anomaly: Vortex" - typepath = /datum/round_event/anomaly/anomaly_vortex - - min_players = 20 - max_occurrences = 2 - weight = 10 - -/datum/round_event/anomaly/anomaly_vortex - startWhen = 10 - announceWhen = 3 - anomaly_path = /obj/effect/anomaly/bhole - -/datum/round_event/anomaly/anomaly_vortex/announce(fake) - priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert", zlevel = impact_area.virtual_z()) diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index 2f84bd463299..cc15c12d836e 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -94,3 +94,7 @@ /mob/living/carbon/proc/break_all_bones() for(var/obj/item/bodypart/B in bodyparts) B.break_bone() + +/mob/living/carbon/proc/break_random_bone() //this might work + var/obj/item/bodypart/limb = pick(bodyparts) + limb.break_bone() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index fcb257149d8b..03916f94be9d 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -136,7 +136,7 @@ var/datum/component/storage/active_storage /// Active hud var/datum/hud/hud_used = null - /// I have no idea tbh + /// It allows for scientific knowledge to be imparted (e.g. blob strain, if an object has research value, if it boosts a technode) var/research_scanner = FALSE /// Is the mob throw intent on diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm index df63f4d02abd..bd6a188370aa 100644 --- a/code/modules/overmap/objects/dynamic_datum.dm +++ b/code/modules/overmap/objects/dynamic_datum.dm @@ -192,7 +192,7 @@ icon_state = "away" // DO NOT PUT UNIQUE_AREA IN THESE FLAGS FOR ANY SUBTYPE. IT CAUSES WEATHER PROBLEMS // THE ONLY REASON IT DIDN'T BEFORE IS BECAUSE THE CODE DIDN'T RESPECT THE FLAG - area_flags = HIDDEN_AREA | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED | NOTELEPORT + area_flags = HIDDEN_AREA | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED flags_1 = CAN_BE_DIRTY_1 dynamic_lighting = DYNAMIC_LIGHTING_FORCED sound_environment = SOUND_ENVIRONMENT_STONEROOM diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 7d543f3aa42c..1993176de157 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -60,3 +60,8 @@ . = ..() if (. == BULLET_ACT_HIT) finale() + +/obj/projectile/curse_hand/phantom + name = "phantom hand" + damage = 15 + paralyze = 5 diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index b99960b812b5..2115a3c6aba4 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -136,7 +136,7 @@ Nothing else in the console has ID requirements. return else playsound(src, 'sound/machines/ping.ogg', 50, 3, -1) - visible_message("You insert [E] into a slot on the [src], producting [E.research] points from the extract's chemical makeup!") + visible_message("[user] inserts [E] into a slot on the [src]!", "You insert [E] into a slot on the [src], producting [E.research] points from the extract's chemical makeup!") stored_research.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = E.research)) slime_already_researched[E.type] = TRUE qdel(D) @@ -155,7 +155,7 @@ Nothing else in the console has ID requirements. return else playsound(src, 'sound/machines/ping.ogg', 50, 3, -1) - visible_message("You insert [E] into a slot on the [src], producting [E.research] points from the plant's genetic makeup!") + visible_message("[user] inserts [E] into a slot on the [src]!", "You insert [E] into a slot on the [src], producting [E.research] points from the plant's genetic makeup!") stored_research.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = E.research)) plant_already_researched[E.type] = TRUE qdel(D) @@ -164,6 +164,18 @@ Nothing else in the console has ID requirements. visible_message("[src] buzzes and displays a message: Genetic data already researched!") playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1) return + if(istype(D, /obj/item/assembly/signaler/anomaly)) + + var/obj/item/assembly/signaler/anomaly/anomaly = D + if(!stored_research) + visible_message("Warning: No Linked Server!") + return + + playsound(src, 'sound/machines/ping.ogg', 50, 3, -1) + visible_message("[user] inserts [anomaly] into a slot on the [src]!", "You insert [anomaly] into a slot on the [src], producting [anomaly.research] points!") + stored_research.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = anomaly.research)) + qdel(anomaly) + return if(istype(D, /obj/item/research_notes)) if(!stored_research) diff --git a/icons/effects/anomalies.dmi b/icons/effects/anomalies.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4cbf57f0ad5496c6c1a0d7d0f0e34869dd86f78e GIT binary patch literal 145218 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 literal 0 HcmV?d00001 diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index adb0b69c590a58a98d3f21aa31a47511f421e9eb..12f4a068582b53472148ad921461d19cfc7f06eb 100644 GIT binary patch literal 23336 zcmb@u1ymee*CyIH!IR)lAh?DE*ARjQcL?t8E{z08&=4TF2Mg|QAwYoO?(Wif15MLY zyx;fF{r_1rcV^bTS#(#Os#ASzpZz@N*{AYFMM(x1iyR9C0^!QZzEcB%kb;1ZF(x{2 zr6#mO6iCeaYUsGXvv4zWwQ+X0adHHKyfexZyB*Ud2*O8C2}`%+^8}R2ue%CdHEzGQ zg}muP&ObTPskM978G!Hk#V&%os(pR}itzu7=T{mihFEC(c{Rj%{MwJ9$o0w{@s-g@ zCroSG_BMsFysr?qUtCOLj8&UI3<(NjRAe=;bgh?7Nb5e>gk&x7v^xbn8OgO1E25eF zF@cW9svULIFa0_vlZcYYZa^cg=+4N@!@MqMvM6%0fp{3t#jsv7R1w)L#3^5b8noH?zV2fxaO9hZ;Sha`{zgP>9`(&z z!u9s-tfEG!pR*IV`6v%#$NO=o(zjM2*5pXKVIka6tkWZ7BYDjP53 z$eDeGJP-14PQ4h@z4<`g+lW>PQEN(g@$Jsmb#hU#F;?qH56) z87w6Fck~39$r8w0ubMwF^46}3@4P)BNfAxp9)(_{j+V{)Sq1vlWWh!3ME%O^HBC(D zLTEAHZshjDP*EibKHbnFNf4mYNydX{F+;xQ$btw^C1q6@K$s!449w3!K$d5OPe8yU zPa^YMX>RLN= zC4rXqV_nMpTs+}d?i@^EM0Y5Lx~3*tSB9Y5%?h-`>i6vwD&4`SWBAX~idVfOFCR<2 zlrkNki}wTl3R)i#hP>{$$b`7JI4#uK_(S|wc^QZpFxzF2gSc}90`I-slqCs1FlohP zB2j<>5xUwxC@y;&v7c8=d$rv!K{^?Pc>)n!;9CWv6XH%GODl62iX5AnC%t$7bz=;4 zb#>VUb~NwvHxoMlsThNf?{{7`FRcs`{Gpa}GkL}>yAu*R+LlDBM6fo-#JRaJnh9&O z<7W_lwh3MJ+0E>eNzRspb2HTpd&6I28@4kP(g$Y+T$A+OD7XnYS4CI)Z#$}cl!|+C z&f!0(n@+jeJ*%!p**!r5`h)DNXb@M2LGj6lHR`UWCt?htH_l>F`(hGC8` zA^V|aC<<8wc2rvkMc#-<{zfff%IEn5gBJ7nGgNV{`9iF8X9Q;d;mz~${YJ+4jKGwc zn9TI%=3%ksC+rLiP8-cMe{yijOvR zD_NiI7i%;*41ELJgTzFiO>Dc?KV@NO*JxaFjY9gGk?|M!tq(rjUV(ufCNo~pZAwPv ztPgT>PmWhN0~~+#Drm=)de1H0T^-^Eeg96Jp~NIDEgelGo`r&e$L+TBL4+DVPVBDO zX1CsUnw6fHH=(6Ph!PJ&CXU+Ta<Ub~fSr_rCqfqT5l#{phDQViKSOp-4oSF!zCRYIKrR0V_S`6@F45|S z?p_e1j4|h zTx;xvJ7`?ZRvI~JXlOX^7bL6c>o2|+{u@11l#rGtuc)Xv<@cggtNa!4kMy-QK}<}{ z(XFwQdA8&!aTk$K?M?FW;_dm~xVeSJRSO=wC>79eAC#1oer&H2K{{ZL4A0(2Rb50F z-`R}kNfVx&Zs={T0WOhFSU8=2TS^gv^fz0)a}mC7IL21lX1Zg8`D8GLe`Rj}T4zq5 zyRq!%?=R_l;}wwuFNmqpKww5mtSt6@4;&WM5G$}?ZfQ9&Hb&qQIHDnAZZt}L^uhudqJ~fqWf8G5W z2IRRngK}!&ko}s<$dHAU@n4dHK#s0${mVX*Oi<{Ap4i0{=7aC59PtMc?fK*m3OEbe zz`y`i2Be(Ln4!wFH`18gb`sxoW+D)}>?OP`27b8bE8&*>%%`cT`4kov*3Qx4`z07_ z#TfNwP`ksFQcw>MH8ZX?SIpJ^=Az>pd}}zxW0@PNWGo8|7IWO;p<%kHh zwPm8Rqy#Caq9WE>02~C=|K}UK8B$<$r)Fk6OT{h!l734_aA{p`e|P{U1h>iVD26*Z z>R)5^mDR;Pl&8Z+Q<|wim(#pf1Cpyd^<%8=zW!<8(z84rtU&B66ODSz%SSOrRd|p= z+Ei1jN(!WB(J|;4ej#!^?wF45`yU+NfFKp#75#?$VKv9Y?Jd zzZphi*kmkh(Ck_OjDj3sj*F{{_Mhn9YJyQ5MT@w5bv=&={X@4J57_u2?R{)K+Zu>1y|F`)4RwMXc{k*3WS;jOqF|^TMr*a_PK{ z=rXiaS#OL|_8iuUv$MafH2BK1#8QhcFa`wBy?*n?1@JJR9aFCF%Aq7gL|1n(*c1vV zWCZNA2k*@gL)_jHJQ2(0LRsVG+BuztDfPV*{(FCW;p5fo=FlKIZ)?OZOSsD<0rGm~P!7~PL$_|0KSy~#Ze>CU{(Pi2d7&&3`54@3LK;miD)j2b z-di~(rNS%GAnxO<9@w#`@Ot`od+scqfA{apoXG&52yoktIDzXg%c7tKyMDDs(Tm+t z$mO&U4I6#XC+jg?eA=u}`ZMe9D5#kPb&5kNp*% zQe5sA{8e0prPK22>d$3jDUtThp+!YS>gwuJfEU$}K`JOHK;pI@%W=G-n=`XsHrxL~ zjq;C!Ov=u7N=!=f@XH`e=(-zv^?YM0Oo!L!+nIkTx*WZbB``eGp*rZG z&j>w{!`VvyBTv7GH=mary|#90Q|+F1-&QtH8a=WPc*==d&Y7%YxZ5I|cE#&o9A_kk z-jdR6yUVM(ZSG&5miuADk^UjA0c)mM$mg=M04eAofSRz3OZonb%U=E$X8XVA9{*E9 z{69Qq40;-a@e%t=*j)4&)iV(KGm>7ct+yYZrax`TT}2Oi^l+fZ`hMrow=DbEJYn4~ z`gFd*qExRQ^#R|T9=h>$a4O{_3aQWqdz7Slas3QCZy=~_4TCht9aaY z{*p~z*4EU>%E@(ao{cRn;RH?F0=9@2G+CsKvI7t7;l@PZ|7vk;q)?pvGcb@_Q!`Pw z3Ksi3{COA?<+%b3myC?;A7mycC*`%ofyrOXTq|aNQwRtUO*Zsp0l>5{b1FwN6jWSN zVgmCMezEArr2ORw+el@cVJT8kPA<2hp<&nwpLg?o|IweOrIA1KlXn*(dH|xw$H#XA z4_n*Yn~!4n(Zg^;_Lp*{BF_J0iTe9oTF(HWo-+UQgu|5Al=oK`gDXBT*IxE*6lhcQ zgyU{vT&UFFUBcM+8LofsQ_HP2y(44Hw0KA5Ug{3e<#nO@y7Z&Yh6b@(83el(PCyfq1>Pf&Pi(76D%AsqfI4CLg+H@?ABfSJ_ z74O(VR>x=VB^9tWJD7#SI9ZEG9peQMRR{0Z)k7UbXcr;WBL^Uu28pdRPJ$#*J(58L?dqRDN3iY z+Q;x|NEG|xXp{lV06Jjyz4!+mFu*qegK!a`{3Mh1k@?XS0aCiZzaOt*Pthb9 z?!Fj3pBr8^nF;Nr32E`<{t>skcMEarcwT0`iqIr~{!6#Du3%X<&5|{+NnT@^zW>8# zsVDh~8++sV4tijcw~ziVjyh&9+@^BX7p$tPs!_*9Se^R2E>*gsfQQVGoGtU=rxPQU zBeK_w`~n3g$TzM(RoX8A#kqA^bv9MdZAUO>>`%N}dXicW{E=sl=gY_(_n89iNKH+B zy8Iuwve_RO7kM4_g75i+EO)w3k+Z@FN5+2nqRxYKxd=|Q$tj76 zQ~4dpby^&4y$Z>s<06Jgi^VXlIL7ZSPzz+b1{G*_t+H#njo}B+`rcBoi zNFwcqzxFJ^@18L_oUv;AS83EhX@JLPeEBlW$8G1m9?`n?$rj7sY~i@6DGl{L4HSSA zf6K}mnPO@Fkoj%V@|_%TTR=_i7ND{vWo71z-}yD`IJdX~h`T>I(yjQDjwWGHx{5C; zL%egjKdDMJK7I!#pK)oN9L*F7tE+o`4dM6FP&6X=S6eejP)Gj!!93CU*;6*iZK+s} zKgyc<%0k|p*antb0Q_i>Pc17iz^3`^Nr4n9GSVY+(an@+Q3r!zx|swYJm!u)$tfsG zii`L7YlV6(e_MVEmMgMD>h&{7x;mVt@N8}G@qOjkDC|lud=B#(LuD| ziar9Q>ZzkG-IG~V^V{cc1-ZJgZv#YrEXu2OU zdN>DpQLt%O?r}fc3)>Bx-KFRu@c>!3v##I1C?&fFKi2G(ii73$ z0a4#H^zWgokx^)uG}R;4aq=17d(ib++od}kSYs>M2Rv~8gODhgW_3y7kcPVX?{`vc zlp$u?hBnc65X6ZGmjs~c0F@%psxUNZDqk7#199*@+@8u2Bd#jj@jw$OKy^qZ{P$-L zg_a) zob*6lu?8?}cJZNB!UU}q=yvdL_R^~O2eCOl?G;Nt zw41R6_TYCNwGEw81Ww>xwPVmCzU2TcEG=>M&a{c#=pC(D1~4)SqG zYqz`E5ZE)fM_sK`=3fK@xNK~<{#_>{;!&$GGv}a{B)FrZpyAllJn$L5i^y-_R02=L z5j_LlN#v1+jR~qDsx5jp#e=upPp3ksmDc7ka`eY*7|pzwmJkxbC3kV`1Badn{>BqN zO>ttJV$c{3XV*LK$On0FF#@;K`)(;B2*1YwEiIP(^|O1inU#QK-H9g=;~Eh)MY+^B zoP7y#!6rH4=jq1H)r^e0#+@d(2OS=y%3|-=_6#rk!BJ;hX5NN~xRkwg#Y$uet3zcO zH@S%p0*Dq;5WHnN_gk>42f-T#in0N3L%7#u{qxKwjJ2T7V=HBYst0&SEbJ5ZuhS+~ zB=HBQ05bRk#uyTU-$@1q$H~lIDGwVS73K&Y8k}Z}E`_AZSXEX~%Nz5(SEnLHKM00| z^P%daN&MAAa~SDgM4d7JoFs`g=cFTbz6h%_f{xBv{*6xDlw7<^embdIP(TKP8;!mx z`!(A#VV2ys_W@y=+mG0Y>g4=Q>flhTNafJ|Wwc^kpA z^S#w9pW}CD@)4=0Sc;wQMReB)a z7bOvWi_B@iL$4CVo=gAl?y+9PZH$xu^d(*A^7I9eeRpmBmHL(bxZnMiF((hJHXNb1bX1UkO=1S!b#%iZ4n-e^M2^s*m zYrBGG79KJQojE2g^SC$z?d{|5ux$yK^g~@L#MT5Z;Fo^O`r}A1D$B zKbvd{w4M1?x9&bmnCU3yx?1uj*^u9+hR)F#)f5nem*fdIUzF>SYkX$U{a3t zf21tb-u>)z6RnyVKywY_pdm^N>>I>MaIt768arNMopP8KHT5Z&=Eg}1BQ^oO&^ai+)&xRr;JeA}!Zv@FC8X_9_Ty_U&VKP3XrINA1g6EnRlO?7O)4dh*MSoPk#~rx6`P zw9fZZeX$R&N8b&eptU#cHv*z`Tg)UEAPo3tiTJz%&ClyIgDr`HLy*4T{Rl99T|6!W zXf0Le(@@8DLO!!guk)7@5k_~f7hnV#-_b82a z5@LNrzwrq$!G#Q?vf17*9;Icqcl=>m9ETS_5zLqJoW&3MbG#}I=GHdI`tnm97j0LY zRi{Rto}RzwBPJ!+N4K}Pchw|Dk3x=C0(OJ+@Pyt{>Z1*wpen|FG!D-9qgR+>O~9Ef z79#!VUPi>khJUtTryt7E)uQfBT!112HFU;ec0LMS3-Qa$)Lt%e<2SxY<~E&caszwa z_pG5kces-(EsMJ2N9i#jYU_0CxS~NrmVsu0;YP;BvA$TFYwd(>WI7{8HP zmq-4l@&>QT($Jm@-s5!}N;pLXH(j*}7v# zxpLF)w#$Dv)a}cY>RmS|Qt60OsP(J-aAw;&f1gAHF)oX=ABVVZJ6t_&8rA1t8J*eV z8ugs3vq?A@+NxX;0+Z$-(Pov0V3Vo3t$g}ULG3oQOq$gqTOsU!7Di>XWy#R}gc=|Z z2F|u`hteo-vrfHa9D~sB9VQ6OW<}oRoF^Cy^(|T}sl>XKvd<{7+~=fTlq0MQf<_u2 zMjH(`;2QPbhmA#CO6^=YO(23%Ey=d%yv=r15QOlnh0~#&bMj2@TaNZr=?5`y|tRe$#?kT)_tZ@1-MSN zTkdnWD?Bcz&EGqoT#e;A>f1<%sC?$*-`GYHgi~wk=#WC(2wG@Yp1W+6XYc)nA!wWe zy8Zvn{7EJ^InV%oNbG+MgznLg`;&$OoK7SjG$yk%63+yF65{OQtcnVw^Hq!>#?UfTq*vnCWtN zxzD%wikJ6xUm47b{qac%xADHa;GW+}bN|ilD4263Cg(y~QPJYp&6)qsARChRPO8<0 zzt-EbruA@&Xdq?-ELxE;lZ^tdrc*xBe5v3{Q7B@`X=!QE$(G611xknq#Kcd#k5My< z!CEa?}2;29OUz;QF5vw7>>gUe3}#K_ESd;}j4>%YR- zIk>EV!xC_-a8&fkAxYf?mn<#(A-XiM>Y$8LDxkgA)o7mp^lu=qHd3y@Y8>1hN$v6K zxS)EB-F^ik5*}2Ii^GbGfuFXW8cl8&9irjOw!cbpf{ds=U3i{*27+p7)gZNRVUv@S ziXI{5S6=lKt3((9dixPP`kmsNwxne$))nF1X{9Dr#H{`7m`&v9hs^fC6+Z1AWBp=( zL&+RPtm5`b2n%LPsuv{kv5};&%w>OQc5Jpo|NQ-HK9V8WX7vj*(*w~`JiKdPlV3r1 zX{3}bM&;5Xk?vY{S&6oS8IU#oladYY{qXP*UdkdRC52HY(L_{?!ckF(12#EN4H~%P zd;Kl=b=UI+dyIpRie!pm16FMTw;i$|>*IfcJHmP6_m{#||6?4W!D$A{7k;bMpuQ8) zp>?8eE7bIHR>Xee$`>H$*z_NJ0j%etS=*;h8&HuA?z530#+JacFO4XURPLr!K|=XC zIbCyaI5Tx4Lat~y#qX<{m8sn7aWr+tb{)OPT459HmehhM65}a2=XhFGX2)^%72k8; z=hhD zmf9Q79Hlt3VM}6>QBgi#OC$p$529#jXyLk&T?I9Se09xnB5Umj*V{*@%3HkH_^N7J zN*C57y1GuUpkJK)y!P49ToT�=MI{4S=*AvaK+a)cl(P8%O!0g8u*O19(!erH{#*? zQ>HkmaWucFNk9#~Dvm-)Qt~p(Y$=?MQ7@*_h|y|1V-%up+>LqOvfu)zsF~k95@4)eY~S&nR7| z-dLhUh{D}}SWx%<)w<1%6N^mM@~TsY)p7O9iyQua#ntY8X4>Ge*av)y%gTN5;YcWoq4S*Fiyx3GGi>iO3b9id><7&gP&%K3T0rVO z5!dc&noj+o{_aE1Z#J|kqw`;9GyK9_@PpFIpQp}~BS6#50molxfbykcm8jKdDbhoY zn2oxPtHz->6soElNGV`NGhXPtiSxZS<{qOlmC=sb6~^tzj}<-_Z_4W5fIh0bh2O=A_qpB?zDX)#UTWUF4-dY^ zC|aQ~oo5B-CqPy%x-nc}M!mvZ>9ThwOmj<1AJo*;($}70?a5_*o~Tsit$`O zF2vmk=mwFiDfPk`L~kJ%k}>ERq|H9>5c{kE@VeHS4^PY*F4{@2{@Gx~z z(H2%Redfd325_syy;)I^wt9GYq3&26!|P#k-

I#K499-4olvs$3hq*Bs9k74X|% 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

@w3xVpJ>1y| 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 literal 18243 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

+~x@@V5l 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 diff --git a/shiptest.dme b/shiptest.dme index d038cbfc22a6..116581d97b2c 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -25,6 +25,7 @@ #include "code\__DEFINES\access.dm" #include "code\__DEFINES\achievements.dm" #include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\anomalies.dm" #include "code\__DEFINES\antagonists.dm" #include "code\__DEFINES\aquarium.dm" #include "code\__DEFINES\atmospherics.dm" @@ -1009,7 +1010,6 @@ #include "code\game\objects\objs.dm" #include "code\game\objects\structures.dm" #include "code\game\objects\effects\alien_acid.dm" -#include "code\game\objects\effects\anomalies.dm" #include "code\game\objects\effects\blessing.dm" #include "code\game\objects\effects\bump_teleporter.dm" #include "code\game\objects\effects\contraband.dm" @@ -1030,6 +1030,21 @@ #include "code\game\objects\effects\step_triggers.dm" #include "code\game\objects\effects\turf_fire.dm" #include "code\game\objects\effects\wanted_poster.dm" +#include "code\game\objects\effects\anomalies\_anomalies.dm" +#include "code\game\objects\effects\anomalies\anomalies_bluespace.dm" +#include "code\game\objects\effects\anomalies\anomalies_flux.dm" +#include "code\game\objects\effects\anomalies\anomalies_gravity.dm" +#include "code\game\objects\effects\anomalies\anomalies_hallucination.dm" +#include "code\game\objects\effects\anomalies\anomalies_heartbeat.dm" +#include "code\game\objects\effects\anomalies\anomalies_phantom.dm" +#include "code\game\objects\effects\anomalies\anomalies_plasmasoul.dm" +#include "code\game\objects\effects\anomalies\anomalies_pyroclastic.dm" +#include "code\game\objects\effects\anomalies\anomalies_melter.dm" +#include "code\game\objects\effects\anomalies\anomalies_pulsar.dm" +#include "code\game\objects\effects\anomalies\anomalies_sparkler.dm" +#include "code\game\objects\effects\anomalies\anomalies_static.dm" +#include "code\game\objects\effects\anomalies\anomalies_veins.dm" +#include "code\game\objects\effects\anomalies\anomalies_vortex.dm" #include "code\game\objects\effects\decals\cleanable.dm" #include "code\game\objects\effects\decals\crayon.dm" #include "code\game\objects\effects\decals\decal.dm" @@ -1998,12 +2013,6 @@ #include "code\modules\events\_event.dm" #include "code\modules\events\abductor.dm" #include "code\modules\events\alien_infestation.dm" -#include "code\modules\events\anomaly.dm" -#include "code\modules\events\anomaly_bluespace.dm" -#include "code\modules\events\anomaly_flux.dm" -#include "code\modules\events\anomaly_grav.dm" -#include "code\modules\events\anomaly_pyro.dm" -#include "code\modules\events\anomaly_vortex.dm" #include "code\modules\events\aurora_caelus.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\borers.dm" diff --git a/sound/health/fastbeat2.ogg b/sound/health/fastbeat2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..93f26c2195b856c7b6dc7ab7a6d843cddcf17cf6 GIT binary patch literal 13404 zcmaia1z1!~+wkntNH-ELNG*Z_(gLo42unzVAR*nIO01NCh?GbwjdZubD$)(o(jrI* zih>Hre-@wjd*A>2|LgnCH9Obr+%xyg+VjBwY#Duk#Nv_E`+;UkI7{iNbBBxTFQ z8|#rJWv?Mwh#-pAT9P7p`-8{QrJ%OJ(Paq9O-z1=06=s>DRYF=Y2zx3NR9|5sCvZe z(Zf-g;X%s(Dl3Fkqz4hICh|EiQA7IktK3-WO}^R@`E!D`V`w$u34P1*Rzi~i&mpPx zjDISUvvVMzy~q@hvD~_BK|2q0~Zf*GgIc_0Ij(0{zuwXG0*K;^TG$ zvh33e{-0uVC)xUcFDSbnet?2#+3n8S?ap;mo2%PHfar|EJpkef zRBm}G_9m$fepjRX7ZY%72LL6^+Ud^P3sFN`aNI-8z*Bb0Q+)~|1&$*B^YidbUZ8_; zWZEPKV`uLkD-E`ijqLlPA z4mu4nuR^>;_N8`arH-U|4yll(<^OH@)1(uX6^%iC%dB0Y@Uc*HenbEa4tx9{ZD6C3I1!rZzKgzE{ZE$q@jAQJqQgzp67) z{wu|K3DNw0d^H0i{Q|hEv|~tmtFnViflL^ZVgWHoil5Yddf{0vrR*n z%>S!V5K|FWaW@E=&y*x0#iI{d2x-NCGH#D+n3`?$Kg#e|RxKKCsEmpT>Rgr8)73NZ zalZ51d#)keWZHXiDsXY?i5X+We;2I((i{LOP1u=ECRxM?cV~oZ$dmkK@V_+2ovu5c zwKtwiwVF$POknVv=fp_Zv zQJBAKvpD7bADV+x5l*StRpkWye``(_U+jux>_wFXt~&`l{>ipcX+^0oJ{RSX{x{9B zi!MxwE{u#`kBsGuO16(mD{jhh>MP%B{$I;~Y0fPVE~r47bJK(CKQsp`%&GusQ?-El z{@*jojzR?Wy2<#T3;+NdN2YpaN3^sBC$z;Tv<3BaW&dZ5fuIwj>f@piVV?oO48TQ* z$zfE{9&z$6vWCRMpSTFJr3ka%F@+UUT_uwu=k$uZ!7JOCAk{&(zogAauc#LKgj*sO zLH@SjuF9GuF=Y1efffK5;U3|4Oddljy;+Jw!X%kVJyN{+iDN2A!DObZNbUj}%hinB zF_qrDBqr79%sd*)s4{30AcB79vPa_RVJJEPEXcG;k>N?&LY+I_-ntlDU)!VH}u zDPp#;K4HSlP%30TtIiOzn>B3U##%<`$PGRK5Lg)Wljjq)x(TRw!IB%-aH6Ox9k(j& z&0#w0DO&ZZXQG3mVp_U-{j_=$x_WaA>U#Cu>a^a} z%`@mt)LYLn1Q{fIFJ4u@1O1(Zpx#r-fo7A=CMo}*Ql~pZC9XGBFQ(yknvRb@@O(U zY%XeUcG+rnAE0)qJJan?p;_dp^lz)c`t&vzhM;F!{sIP1P()D|ivH7-X&`yiX(u+&Bs$DL1ly1pu=>?iRvtE=i zxx?tPC=qKs^(3cwvzfoY4O&R}LzgRSix8{HoHzu?tS&njXxVc}GVD0l<$ff+df=T~ zK}OR36p{@XPBv)!P}v-p;2235Ammu5)1l(;M0inYZzA$^g$X%4HPD@`Nt$Q}j->be zT?pM+m7a`58nhiUX-u0aJ6{v+n4L7K?O0Xt-eL!l$AGpMOd2zCDC&A|6hm!EC9Q0?=%^IcL8$Wc7*x^1^>oHA!jr7f zj651+6=WBkj1W&xo}(2jv-7&|o;Bs)NWH0{TApJqLs#17sYmEzV=g*=4k z)21K#kk!H90ThPBItyn)aB6!aQhP|np2}lDil0P&K#I4>Lroru)El@#%w0Dmg+z8v zN)dDCGpO`%fcr`RJkEhuqk_&VgyC7+t7x#&+G^{ zh$8|hrd()UDO)Ow0jUjEQOGi~hEec$WrR}56VpT6fPB?}6jV{kLjWk=%MOLA{G>4) zKpXuT0resCy>NgeZBhXE-Jpo5Qp?ISBt8qWnQ-8bvzcfqqU3 zv*M}@&)9zlCjV}c{C^Hn1jSj@`jEHoVqziw8NX>^hiI@MEKo1Z&B8D~1)8=(au+(g{@liCi@D$>OHweN9DP2W&P=1&?u7KBs| z4gIx<5sT1pqj&D+tXGhTB*!M6MvwQ-4oHpGi8oV0K#q9Lim$p}Xn#D>3pVR8S}Mm=4_SPq zAsG#A@xvSoX<&HQyoU%w_T)+J<8vD#SOSv|-iR;+K1XCHj4lonO6%gcLVmmP4T<#4 ze2TvbFbuE*kU);$nMn>Ai=60;&aVc7b z<-Ple&wU2QRm8-9Qx*KP_TK~<_2MrWmmuSoS+TP@L2^rp#HPQjzR4T-H1VYy40_U2 z_`P0c6g}tENXy7h^@n;Ai{yEqCNVcK>$aL!rj7Er!R*bF#OYd7I678a6*u`uk4lkm zN}n3A!|y*n3BKDcM6brOF+3N1`~}MnyrgieF4__)n0@&4#^s>qWd{Kwl^H9cM!aw% zMv)Msj0c>+pY)S<_SGjc@L0U><4hPjJZR2OcgK>dufqjj`ztQU5m$b?^(KNC4+xNA z>QkGjq!7;ycHJ@@ED=BNXxGCBpHU?EJ2%h!BDRw->q|Hg(!W{pRYso<+b2T=`1rWZ?@IAyG8I_JJ0=R%2ZYXu?aOyis&$8c|KOjwCf9`K zob#lXrrRMtRm&?ZqAJq8w(|Z4>&aXw*VmhN91(?ou3t1GrI=EmBm7-Awf;7CjGq-^ z?t-uxfw=nUbi|&6f22Y#%$y{J5C%}^eA8gh?%lGMOlF}dQqLb@!ENnz!_(%63t&+U zU=8iZMAb+OKrEhSaWCo@KX2gO0ipMYg5`!ygL8)RW;ciXoFaCkqAi{w1GW{Hn|m}h z)bWJ-XxFs+$~s)Ow(-}+lgSg++eI?hzLcG-n~hN|)NAzeS~JUrG100p>WGBrucIii zObj#ji|88*G`3c1d@+y6Y%X@o=_>v7Y*=i22;eiH=QLwtOB;?^=o zoYsXoI+lm_nE6sd>l`6wnNgfF!ui1?{21Dzt|Gh81wYcS_Gx=wk1}kXN+rwvd{EI@ zd%X8QcK1adg!+N4X7*&gNkva~4a!G%qDy@u{52k@xr zlPdxSaRdgoo0m$Yxx^NxCZdo)#SLELggfZNN$}!$1`U?*casJu42J6?9%meR_%z*Y zQTDszoLw~xRfxCn`#AV=#pjVHsov(we6;7yghShBa1-X4~8WKK{m&2&+)TESo>MNw9*3%eOBMTOu~02 z@TH@^N)=$yWeqD^b&Do7!KF|BW zn9Xkdmp|NBk)-U7?n;%;*u`h8q)}d%>3>9Di`=Bhq37U z_?*x6#b?T!)U*)Bh^n)#h7nl_=}P2T&Vji&|9n{CQ~?N!ohJd$30r5Rqpb40FyHv& zL7R1e^E%}iplyU_3dWe1q7tT*gz>N>Suz~w4lFlY>yONRmrVlpexFd?pWrO;PEI|L zE=N(wq}6x3mYbn|#i|Z8o@b;YQ@XqbDhL&pUfU65`F5oKeU3szhxg=m+gH!rRmT;&dsqlw{Vq+n1Ax{;aeSHs}F_Sz*6e>*5OOTccU{N7{r>ZnIQ;V{B8i*L%NJ!HHeFUg`B*{wDur z!)Dcj{?ooSgGYu8eqf;qQl?lRKWY?c&nMMfJ9^RmA|F()xjaaIv9$Z+R6?9WO;+@W zCw^h4z5C_aob9|Jf!jtq);*#hXla`&Ur>fFf1k}ATM!WE4n)?y6=p8_E-{|AHAQz= z^ED;c!>Ij1bY{B5mbGjZ&F?h|-_U~;tvI^{hv(%7cN-)tKZP%GK3SJ~>V)WF=!NU2I z;Gyz0j3$Ybc{v#iAs5Y@w^Xt@z^=VM)+tIC(P-(!!cnkkqpC}98`C4h=IY&*H1!{} zHacd~4qB4>z3*zx`B0jwNCV#>!(xO3p(LV!3(Lt5 zl;9gc&h9uk_-K^_z>bp*CcL^74`he;!*akvklF0(wLf!sb35DP&O7gp;OtkHci%uL zO`N1r2|*8jk=Y+Hy~R%I>xkL>NNa(+SDCaO8F)>9FYQ`UUQ&Lx?zqAs^7VyeWS75y zfZf8sM)+t(ht$-d zWTD{^!K2sohv^Pl?eJ528Qq}}z0WD8t;Jh8ITzK-6;EnzR{#)xKqpD1&&d}b<$=}yHCOatzm*qo0m1+{z>8O` zghF8q4WRi$fW>QrM1AOG&>xyF^Qbv$Jjl;P<3>fYPU z9(2xV>%B)M_LrJ>C#N1-Xm&T1vc0XM-FeIv;xqk%wx!&%B{`6%X`UkV`>y?tAxwtg z;OLQ1(KNVlY^F5WkCz%&9VVOel|TztMqApji) zz?_!O0aM%K-HxYUmWfhpF9saR08DLyo$OOjHJFna3{j~o&l#ppRPctD-&w!0{L{hh z!4F+FaKo>S_x-PLC$njM|J-lpu8_kt)<{Bh!QEK9UAb>@;;Oa#H4FXSk#j7+FXP|M zq3D>1xYMON{E4>80AKYLA@&lUTf$2v9_9$kJF2GinO)mF1b8;D0QLLyXfsE-i2Rpz zL1MNhsM}D086Y#6s7<6^wbW1wKdz0g?IOJi3y>sJ9za*~tgmf#1k)fi-(wi6Ikn23 z>uFbfpm}a2V#BPGxxP)OvQkNRNt3@S(PpU4|A{vLGD|^WyoS|xuR&y*Usb~zpYX`b zAIRVD!pLjg3X|TyL*o^`&2!ReGtrdFfU{?~Mm@>>(bljGHV2#2Uk^Mxs?!$qX$z3< z6Y7_aEe``FvJ!OQkM(imj;|(`u)K@b3Z~~_aj}RGEUAKZp0Byd>_<8*9W zV_OkJu8T+OR4UtF|4fC&pRI}+8&HD*REtIB)<%hgJw5Ve{9F}1D@LfFl5N(5)~R28 zAkO}4SeLLuqAH=^{V$B)zu0z;CZ=UZXWZ^h3$XRANiE(W>AN_Jp=>EOi@_Sdf2*uC zP3b4(aqSIKbz}Wurv`yo5J8Ri%Kgf0804oHtdBpGFHX`a&M|PoVpM(^kqiRNN*Vl#M~n;=xPwHsSSg@y>jQdX#JPQ zb#5ac2M@;7SuM*q2gK*J;T2&2lRvy}^_onwh9xiM>2(R>f z$3|tIpv=37OFi*j%_Lz8e90t}=eU3fV_5b5+1SJm zH~xL8ir6g!{)Wwc1u zMuKUYx|`CIV6J-qooIUp?}Qy7rwh0y;)b`&suNp=*@*iI=f4Ob;){>_2Uo+!!l;v7T8% zI7LAfcRh2p0v{uBElXGE71<*8H8z4Ab|ni=1i8Gs*%(Q?rFUPptZTN%NVmgg0Q&+i zExzFWN2Q@VTJzlE7(Z-Bk)K3z>>@pZP*C%4hqV1NnY}my%sFYkE2T8g<q~f&Q0usoclliaZ zA?j|aMsi=-uMe2H30}P=op6crgT}TFS>3|Cs<}$*z-qJe%#QQKUDKf$#r%h^L(8=C zOL~^Xl(Nj&KM}_i_j(rLYJ7k~hHME|c?)2mPcSg9R45qahYv4N$h@Xj34ZH(2_w$R zGF+1^2%J=j@C#LQ;u5n@dpnc5i4)lU$H;~gWH!|fgnS#hdK0@I=hMtoXA!9jUj0ar zRnoiewspVpxrM6XeE5~9pIsUWJ z^dr1s!jYJ9F7x_#?{7{?z9u~_JKBWp{l;gvc|G6d=+nT#qkn3Rr?wVNZm(iPx-?4Y zmbw@>a;PJu5n+8SVccsqr}AC6<+34#rS7JcXKvnzVTYBMi?vWc_ucCeF~5#J$h>?T z$f|LTGA-$2%(W^PrAuD7bgx|St5mRTT#Jw1JGRLQpXBzl4O8~MNx;YMrime_e?nMb zH4?l0{E3R5tRl=2>ohc#Y2-uRmnYby9KlsESnwNIo=JbMp7_ z-F!(0*O!5Uy9{c-#wR@mPX=WJ^Vf2JG4Fffsvez*9_kHCwvlR+)tp%O0nI*`#fHh0rzVb zTS|*=q=7X&Xd?RMbNl0u7#6=Eo~1i@=0C|_!7f0~w$1v(F`sK1a6#2@LT`Tn_!F(# z+-NIKi!FR!`7!cV=SihgJoqx>75nir^7I<~J3B6Sm;O}3fguqBvg^WV zFdF_y?9qVbli>Bt0?Yg2!uP412>Q1F+zs(teagt+N!w9Vyho$9F*d_IZFDVrutoLt z=Y!A4UJ6`qj=B;>3cI|wt1zE@kiqpS6VnQx+b zQ^FVVbbdQr=Kj|FBM+);Ig=&ZQ$nHC6Kd=-BpNq;-vs*JjemNb1Y`>xE)KwY-4waQG=?K~3ewB}0P&D|bgT?FxMU`RfT{zGd(_NJdO!G!8dW|??Gg-NB1M7Q7f#G=$g!yWWW;>D z4QPmg>ii@i2NB0lC?Kn`ZV~L8N zKDI6u%(}-}_?m|7t=KnS1()bgc3GE9@1T^oC9ZJFO=AcvpSU^Daby7hgN?0x}MvRA^(Yo@Of^MhNyfL6(|e{#VVI>*kZ>c#h~c%M&kn4;g!`%mne;%Je}G5KTRD3@AEx$-8Gyo8!8CvB(k#|Qqf&Lh!6ce zIvo=i{95rE#m-i~+1fXL*GAYhy}2l?hwI|cE*P*AMbt)6ECL`%2`3}m1)!e4hK>h! z@%Z|?9aEwJ;>aYM(#Z~Ms6vY%?~R80*{6GaoqsxPEJzu2@_Bb>-{3OO;+?KJvRIa_ z6H0{7&_ThQE`wH-K!9Q5(&NSaybE+EE-KN2ZOgmsAEx4n znqaRR1}aGkvKPUPAz z26}JTJ!(H+5b3hQCFhDpkz)B^a+cU=2VbL)4{}`)6tWn*+LkI13~9bPUY4^ z1qph~7aj%8K2fL2S@%wkle`53zP6`9r^kkyn}b7=WLWV(SDWhX!pXQEVADetuiA9i z6Sh6LS#tI3yhpcHLLdSxTm!qrNr2rt4tO8v0>Dj0KvMf&TCxxvN5Md2?f|JM2!ax9 zjdn}vSQb5!MUM|(JHjrh%MM%ilVRKM2lyY=KDfX1t+isud4oYe;eH7U!^95)V%hZJ z0nasAe5}j@>ki~gniLhj|9KGqX7RdPO)fcx{Sv`ixqtfgo#79FrcUOEvyVGdl-;d@ z((wmrwgtew#6=bv{>j=yD01Iph#9{+8xBOx@y-K$9#}nI{vPIjwr1Ov&pR5LeM%~C z@fM)?w6vAF4dw82=NBBgI`z`h$|btn#+JC@k`Yn?hIcPYT~;(zs(T zL5W8FN2LeyTA)&vjB3`ZF8#DFz5z|Pz!WFgyV#qWG=DsCuijOz@kW}ld|JVdKj%A> zIGP3_S8YX(rvr@&(}poaP)6wlIo9I$aV0~yQ+uJ2k?|5MjVT-XF8PTf2ZmF<58{ISEZp8l4?9k;*)QeYWJp? z5a&t*4=A%S~neg4fb zB@8=i?&=UaH0s{CB5c^Q2hdee)a_d*`~vRrlE;7=RxLd3ws z(;e+AD&2kC%Fp+%d!AHq6|V1G&rs94i>~PAE=cPHpLVbR!3)2uS$~>}X~A!Ua*6WY zQ7QWrbKTHs`WK7$jhY;Ase!q3yHYlTVKZ#l|_AR+xr$L zT`Zf?>Yl^{vkNXk+7!8A{gdNTTm5ue_V#0kFK^9%3Q3LUvwzhRb&)py+?H~z`*WiZ zs>PeBae|t5CjtETX8OFJb@XM`l0HKvzp7s4#!pb@^P_CcI0;u6uzWdC`|dZTB;O~s ziO%mjuEPOW*`@8kpOTZ{*?K7*K(w(gS49+-gv&7ZT4YKj%9=>6yn3+6I39xU~q`lLH`wH#hJ{=K1f3Cg$^L8UU*3JnO+(B}Xz{2^2Hd?kj{3C3YUa5ysoP&BuO_mxFZNX+B(* z=iN6N(YxYOyk*`*@tYbdI-2;lp`GV0mp269XByOahDoN2lLRikiW$&l7xH+s-B)_8 zdRd`~S%mlN_5%{E{6!Q2j2JY@@9|Wc-6P+QfiJ${!vs_iy^6)Z+XExq9GMP);dDLU zG)w|)>%f2^j9;bHR*)HBI<63cQa-kD-fxBV8>C|f?<>tIq$J;qE2|!h)93Er_{oq% zPU7WZ%gudme!ecIeE~B!f7ked&k6h)eO$cUY;lfZiOk?QvuRi!e%1$`S~%N}6Qj5- zah5FmgnOod>h<&v^(&jV5?Oc>-0Y~j8_T_fP_Bc3p&+F;F^;21icnB)#jpB?ao;Rt z|9mHx4-*W%>-^jn+-k#PG1M7&k}^0#{B!^9&1{4N?b97RuF@$BkvX%wq+F77=+w1G zN;m7Kq<_Cf5I$@ba0>6XQvN=t>bbD=SbBoxJGYkkW3v#wdpEl`v~&_XFHM~HDr6~O zlNQBe$zs4?dPZo9>d@>xA0x-o>JB5^Pd>lpUh<3oQn9CW%#Vq>D8|1x68MTH|GtsH zhuH63Y7$S9dl?y@_%t`^0z34jz~$XuW=j`FdHy|PqkM2fuj^b~o+T-!b?QoxlwL&| z5R&U`T{f1XO$-d(ITF;hQsmZasTwo}*8QX;E1A1GUMn8$b9A47R}~JJPb15!yt#}n zEb#qY#1k`N5tXZ$jQI5?BCaNfcC#SmyB>Q6Y7(E~6FF0)c@Lb>bT&wsm$`%e`?0Pu z14=q&H(-2#8XZ2$r_kxsFc#G;41FrtHh{YhQc;V?nvnl)G9xC4Glz}=)~}~Nq1vp3`XmC38(l3 zgghSi4q|be9{g;Sz7J;!Xu4Q-^4*F2G*CED)i9=*Dgrf!r)6s>^P^rvV3;%Dd8^hS z`8(C|48~JTHjh;#>M(#yX}YLXCfrQh+8U+ zhpBL&WYV_oKWRydu!#i>_!vB5<|F@{-}Ea@PG!ao(*s$7%l?n4zlVwXkNpTWyi=0< znly|LpD3?!;#SS*PO|CBL`*H0nft|ErHT_JGAy}$efP@Y&`9-oo>&DTep_xz01eX& zxip4w5%A%+Jv49wlo+}Srx7x4;<%P*q=BBtivNpeS-||1 zkgvSa`J2onehDwbRsUzd8!Q(LC$&@>HXn+@jV6Zm&?|%eTQ07dT&gWZa|x>5CN?*`hFL(Ddf{{cW60xXx|URODDef%QDyQ7VHi zUpmr3`nk9a&AJ`8$ya@Ok`;ZP5#X`pv06v8URI)GW0jlhZ}%ES8l>o8Y^2*!wDRc6 zv6jHmB0aZ_-~;Bbh(mUs|>|>cw-tT5s1N%R3gm4T1 literal 0 HcmV?d00001 diff --git a/sound/health/slowbeat2.ogg b/sound/health/slowbeat2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..91143884aea90c47ecf57fc3a023db8915eab417 GIT binary patch literal 15474 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≫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 MzI3qUnoR=#1ApDE(EtDd literal 0 HcmV?d00001