Adds a New Ruin - Abandoned Clockwork Monastery (#27636)
* Construction * tick * tock * ting * Update clockwork_cult_site.dmm * Update clockwork_cult_site.dmm * clockwork construct * Update paradise.dme * Update clockwork_constructs * continuation * Update clockwork_cult_site.dmm * finalization phase * Update clockwork_constructs.dm * update * Update config.toml * Send the dmm to prison for being illegal * Update space_ruins.dm * Update space_ruins.dm * Update space_ruins.dm * Update code/modules/mob/living/simple_animal/clockwork_constructs.dm Co-authored-by: warriorstar-orion <orion@snowfrost.garden> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * Update code/modules/mob/living/simple_animal/clockwork_constructs.dm Co-authored-by: warriorstar-orion <orion@snowfrost.garden> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * update based on code review * Update config.toml * Coggers * New shiny lava * Update clockwork_monastery.dmm * Update lights.dm * Update clockwork_monastery.dmm * Update clockwork_monastery.dmm * Update clockwork_monastery.dmm --------- Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
@@ -358,3 +358,11 @@
|
||||
name = "Damaged Drakehound Skiff"
|
||||
description = "A small Drakehound craft, damaged from an engine malfunction."
|
||||
allow_duplicates = FALSE
|
||||
|
||||
/datum/map_template/ruin/space/clockwork_monastery
|
||||
id = "clockwork_monastery"
|
||||
suffix = "clockwork_monastery.dmm"
|
||||
name = "Abandoned Clockwork Monastery"
|
||||
description = "A hidden monastery once used by the followers of Ratvar's clockwork cult. The original inhabitants have departed for City of Cogs, Reebe. \
|
||||
The constructs that were left behind to guard the monastery will ruthlessly cut down anyone that does not swear their fealty to Ratvar."
|
||||
allow_duplicates = FALSE
|
||||
|
||||
@@ -271,3 +271,9 @@
|
||||
|
||||
/area/ruin/space/clown_mime_ruin
|
||||
name = "\improper Derelict Transport Vessel"
|
||||
|
||||
/area/ruin/space/clockwork_monastery
|
||||
name = "\improper Abandoned Clockwork Monastery"
|
||||
there_can_be_many = FALSE
|
||||
requires_power = FALSE
|
||||
ambientsounds = list("sound/ambience/reebe_ambience_1.ogg", "sound/ambience/reebe_ambience_2.ogg", "sound/ambience/reebe_ambience_3.ogg")
|
||||
|
||||
@@ -229,4 +229,9 @@
|
||||
atom_say("Patient is now [patientStatus]")
|
||||
patientStatusHolder = table.patient.stat
|
||||
|
||||
/obj/machinery/computer/operating/clockwork
|
||||
name = "brass operating computer"
|
||||
desc = "Staring at this causes your head to fill with static."
|
||||
icon_state = "computer_clockwork"
|
||||
|
||||
#undef OP_COMPUTER_COOLDOWN
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
desc = "A brass crowbar. It feels faintly warm to the touch."
|
||||
icon_state = "crowbar_brass"
|
||||
item_state = "crowbar_brass"
|
||||
belt_icon = "crowbar_brass"
|
||||
toolspeed = 0.5
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
name = "brass screwdriver"
|
||||
desc = "A screwdriver made of brass. The handle feels freezing cold."
|
||||
icon_state = "screwdriver_brass"
|
||||
belt_icon = "screwdriver_brass"
|
||||
toolspeed = 0.5
|
||||
random_color = FALSE
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
@@ -327,6 +327,7 @@
|
||||
desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch."
|
||||
icon_state = "brasswelder"
|
||||
item_state = "brasswelder"
|
||||
belt_icon = "welder_brass"
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
#undef GET_FUEL
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
name = "brass wirecutters"
|
||||
desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch."
|
||||
icon_state = "cutters_brass"
|
||||
belt_icon = "wirecutters_brass"
|
||||
toolspeed = 0.5
|
||||
random_color = FALSE
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
name = "brass wrench"
|
||||
desc = "A brass wrench. It's faintly warm to the touch."
|
||||
icon_state = "wrench_brass"
|
||||
belt_icon = "wrench_brass"
|
||||
toolspeed = 0.5
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
|
||||
@@ -251,6 +251,15 @@ LINEN BINS
|
||||
dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure")
|
||||
nightmare_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure")
|
||||
|
||||
/obj/item/bedsheet/clockwork
|
||||
name = "Ratvarian bedsheet"
|
||||
desc = "You might dream of Ratvar if you sleep with this. The fabric has threads of brass sewn into it which eminate a pleasent warmth."
|
||||
icon_state = "sheetclockwork"
|
||||
item_state = "bedsheetclockwork"
|
||||
item_color = "brass"
|
||||
dream_messages = list("tick, tock, tick, tock, tick, tock, tick, tock", "a great shining city of brass", "men in radiant suits of brass", "a perfect blueprint of the world", "a glowing cogwheel", "a massive humanoid figure")
|
||||
nightmare_messages = list("<span_class = userdanger>\"the Nar'Sian dogs shall be CRUSHED!\"</span>", "the unenlightened, ready to hear His word", "a half-buried brass titan", "two massive humanoid figures attacking each other")
|
||||
|
||||
/obj/item/bedsheet/wiz
|
||||
name = "wizard's bedsheet"
|
||||
desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!"
|
||||
|
||||
@@ -270,13 +270,19 @@
|
||||
atmos_mode = ATMOS_MODE_SEALED
|
||||
atmos_environment = null
|
||||
|
||||
// special turf for the asteroid core on EmeraldStation
|
||||
/turf/simulated/floor/lava/plasma/fuming
|
||||
/turf/simulated/floor/lava/plasma
|
||||
name = "liquid plasma"
|
||||
desc = "A swirling pit of liquid plasma. It bubbles ominously."
|
||||
icon = 'icons/turf/floors/liquidplasma.dmi'
|
||||
icon_state = "liquidplasma-255"
|
||||
base_icon_state = "liquidplasma"
|
||||
baseturf = /turf/simulated/floor/lava/plasma
|
||||
light_range = 3
|
||||
light_power = 0.75
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
// special turf for the asteroid core on EmeraldStation
|
||||
/turf/simulated/floor/lava/plasma/fuming
|
||||
baseturf = /turf/simulated/floor/lava/plasma/fuming
|
||||
atmos_mode = ATMOS_MODE_NO_DECAY
|
||||
|
||||
@@ -286,9 +292,6 @@
|
||||
nitrogen = 0
|
||||
carbon_dioxide = 1.2
|
||||
toxins = 10
|
||||
light_range = 3
|
||||
light_power = 0.75
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
/turf/simulated/floor/lava/mapping_lava/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
#define MARAUDER_SHIELD_MAX 4
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder
|
||||
name = "clockwork marauder"
|
||||
desc = "A brass machine of destruction,"
|
||||
icon = 'icons/mob/clockwork_mobs.dmi'
|
||||
icon_state = "clockwork_marauder"
|
||||
icon_living = "clockwork_marauder"
|
||||
icon_dead = "clockwork_marauder_dead"
|
||||
a_intent = INTENT_HARM
|
||||
stop_automated_movement = TRUE
|
||||
see_in_dark = 8
|
||||
health = 140
|
||||
maxHealth = 140
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
minbodytemp = 0
|
||||
initial_traits = list(TRAIT_FLYING)
|
||||
move_resist = MOVE_FORCE_OVERPOWERING
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
pass_flags = PASSTABLE
|
||||
damage_coeff = list("brute" = 1, "fire" = 1, "tox" = 0, "clone" = 0, "stamina" = 0, "oxy" = 0)
|
||||
obj_damage = 80
|
||||
melee_damage_lower = 24
|
||||
melee_damage_upper = 24
|
||||
attacktext = "slices"
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
chat_color = "#CAA25B"
|
||||
retreat_distance = 2 // Dodge in and out of combat.
|
||||
faction = list("hostile") // We hate Nar'sie here, but no clockcult yet.
|
||||
pressure_resistance = 100
|
||||
universal_speak = TRUE
|
||||
AIStatus = AI_OFF
|
||||
loot = list(/obj/item/food/ectoplasm, /obj/item/clockwork/component/geis_capacitor/fallen_armor)
|
||||
del_on_death = TRUE
|
||||
deathmessage = "collapses in a shattered heap."
|
||||
var/playstyle_string = "<b>You are a Marauder, an instrument of destruction built to fight those that oppose the will of Ratvar. \
|
||||
You are a highly effective melee combatent but are vulnerable to holy weapons. \
|
||||
You can block up to 4 ranged attacks with your shield. It requires a welder to be repaired.</b>"
|
||||
var/list/construct_spells = list(/datum/spell/night_vision)
|
||||
var/shield_health = MARAUDER_SHIELD_MAX
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/Initialize(mapload)
|
||||
. = ..()
|
||||
name = "[name] ([rand(1, 1000)])"
|
||||
set_light(2, 3, l_color = LIGHT_COLOR_FIRE)
|
||||
for(var/spell in construct_spells)
|
||||
AddSpell(new spell(null))
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/death(gibbed)
|
||||
new /obj/effect/temp_visual/cult/sparks(get_turf(src))
|
||||
playsound(src, 'sound/effects/pylon_shatter.ogg', 40, TRUE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/attacked_by__legacy__attackchain(obj/item/I, mob/living/user)
|
||||
if(istype(I, /obj/item/nullrod))
|
||||
adjustFireLoss(15)
|
||||
if(shield_health > 0)
|
||||
damage_shield()
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg', 40, 1)
|
||||
|
||||
if((I.tool_behaviour == TOOL_WELDER) && (user.a_intent == INTENT_HELP))
|
||||
welder_act(user, I)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/bullet_act(obj/item/projectile/Proj)
|
||||
if(shield_health > 0)
|
||||
damage_shield()
|
||||
to_chat(src, "<span class='danger'>Your shield blocks the attack!</span>")
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/proc/damage_shield()
|
||||
shield_health--
|
||||
playsound(src, 'sound/magic/clockwork/anima_fragment_attack.ogg', 60, TRUE)
|
||||
if(shield_health == 0)
|
||||
to_chat(src, "<span class='userdanger'>Your shield breaks!</span>")
|
||||
to_chat(src, "<span class='danger'>You require a welding tool to repair your damaged shield!</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/welder_act(mob/living/user, obj/item/I)
|
||||
if(health >= maxHealth && shield_health >= MARAUDER_SHIELD_MAX)
|
||||
to_chat(user, "<span class='notice'>[src] has no damage to repair.</span>")
|
||||
return
|
||||
|
||||
playsound(loc, 'sound/items/welder.ogg', 150, TRUE)
|
||||
adjustBruteLoss(-10)
|
||||
user.visible_message(
|
||||
"<span class='notice'>You repair some of [src]'s damage.</span>",
|
||||
"<span class='notice'>[user] repairs some of [src]'s damage.</span>"
|
||||
)
|
||||
if(shield_health < MARAUDER_SHIELD_MAX)
|
||||
shield_health ++
|
||||
playsound(src, 'sound/magic/charge.ogg', 60, TRUE)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/narsie_act()
|
||||
visible_message(
|
||||
"<span class='danger'>[src] is instantly crushed by an unholy aura!</span>",
|
||||
"<span class='userdanger'>The uncaring gaze of a dark god looks down upon you for a single moment, and your shell is instantly pulverized into dust!</span>"
|
||||
)
|
||||
gib()
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/Life(seconds, times_fired)
|
||||
if(holy_check(src))
|
||||
throw_alert("holy_fire", /atom/movable/screen/alert/holy_fire, override = TRUE)
|
||||
visible_message(
|
||||
"<span class='danger'>[src] slowly crumbles to dust in this holy place!</span>", \
|
||||
"<span class='danger'>Your shell burns as you crumble to dust in this holy place!</span>"
|
||||
)
|
||||
playsound(loc, 'sound/items/welder.ogg', 150, TRUE)
|
||||
adjustBruteLoss(maxHealth/8)
|
||||
else
|
||||
clear_alert("holy_fire", clear_override = TRUE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/hostile
|
||||
AIStatus = AI_ON
|
||||
environment_smash = ENVIRONMENT_SMASH_STRUCTURES
|
||||
|
||||
#undef MARAUDER_SHIELD_MAX
|
||||
@@ -865,6 +865,13 @@
|
||||
name = "Lava Field Observations"
|
||||
info = "<center>Asteroid Core Observation Log 306</center><hr><br><i>We took some additional samples of the deep layers of the molten core of the asteroid. Undetermined trace elements were able to be identified in the solution. Its possible this is how the plasma remains so stable at these temperatures. None of our current filter methods have been able to properly extract it as of yet, but we're certain a breakthrough is on the horizon. We did it before, we can do it again.</i>"
|
||||
|
||||
/obj/item/paper/clockwork_cult_message
|
||||
name = "Old handwritten note"
|
||||
info = "<center>To any brothers and sisters that journey here from beyond the system:</center><br><br>\
|
||||
The Nar'Sien dogs have failed, and we have gleaned the method by which we can awake His divine mechanism. The spark shall be turned into lightning and the gears shall once again turn.<br><br>\
|
||||
We go now to purge the dogs from the hole we know they hide within, and then The Eminance shall then call us back to Reebe so that we may begin preperations for His awakening.<br><br>\
|
||||
The guardians shall protect the monastery in our stead. Make use of its supplies and prepare for our return, together we shall all finalize His vison."
|
||||
|
||||
/obj/item/paper/zombie_cure
|
||||
name = "paper - 'Research on Zombies'"
|
||||
|
||||
|
||||
@@ -331,6 +331,7 @@
|
||||
glow_icon_state = "clockwork_tube"
|
||||
base_state = "clockwork_tube"
|
||||
deconstruct_type = /obj/machinery/light_construct/clockwork
|
||||
brightness_color = "#ffbb8d"
|
||||
|
||||
/obj/machinery/light/clockwork/small
|
||||
icon_state = "clockwork_bulb1"
|
||||
|
||||
@@ -210,12 +210,15 @@
|
||||
|
||||
//Components: Used in scripture.
|
||||
/obj/item/clockwork/component
|
||||
name = "arbitrary clockwork component"
|
||||
desc = "A strange artifact and powerful of Ratvar that should not exist. Make an issue report to GitHub if you see this."
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
icon_state = "dread_ipad" // So it's visible.
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clockwork/component/belligerent_eye
|
||||
name = "belligerent eye"
|
||||
desc = "A brass construct with a rotating red center. It's as though it's looking for something to hurt."
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
icon_state = "belligerent_eye"
|
||||
|
||||
/obj/item/clockwork/component/belligerent_eye/blind_eye
|
||||
@@ -224,13 +227,70 @@
|
||||
icon_state = "blind_eye"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/belligerent_eye/lens_gem
|
||||
name = "lens gem"
|
||||
desc = "A tiny pinkish gem. It catches the light oddly, almost glowing."
|
||||
icon_state = "lens_gem"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
light_range = 1.4
|
||||
light_power = 0.4
|
||||
light_color = "#F42B9D"
|
||||
|
||||
/obj/item/clockwork/component/vanguard_cogwheel
|
||||
name = "vanguard_cogwheel"
|
||||
desc = "A sturdy brass cog with a faintly glowing blue gem in its center."
|
||||
icon_state = "vanguard_cogwheel"
|
||||
|
||||
/obj/item/clockwork/component/vanguard_cogwheel/onyx_prism
|
||||
name = "onyx prism"
|
||||
desc = "An onyx prism with a small aperture. It's very heavy."
|
||||
icon_state = "onyx_prism"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor
|
||||
name = "geis capacitor"
|
||||
desc = "A curiously cold brass doodad. It seems as though it really doesn't appreciate being held."
|
||||
icon_state = "geis_capacitor"
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor/fallen_armor
|
||||
name = "fallen armor"
|
||||
desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you."
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
icon_state = "fallen_armor"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor/antennae
|
||||
name = "mania motor antennae"
|
||||
desc = "A pair of dented and bent antennae. They constantly emit a static hiss."
|
||||
icon_state = "mania_motor_antennae"
|
||||
|
||||
/obj/item/clockwork/component/replicant_alloy
|
||||
name = "replicant alloy"
|
||||
desc = "A seemingly strong but very malleable chunk of metal. It seems as though it wants to be molded into something greater."
|
||||
icon_state = "replicant_alloy"
|
||||
|
||||
/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment
|
||||
name = "smashed anima fragment"
|
||||
desc = "Shattered chunks of metal. Damaged beyond repair and completely unusable."
|
||||
icon_state = "smashed_anime_fragment"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/replicant_alloy/replication_plate
|
||||
name = "replication plate"
|
||||
desc = "A flat, heavy disc of metal with a triangular formation on its surface."
|
||||
icon_state = "replication_plate"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/hierophant_ansible
|
||||
name = "hierophant ansible"
|
||||
desc = "Some sort of transmitter? It seems as though it's trying to say something."
|
||||
icon_state = "hierophant_ansible"
|
||||
|
||||
/obj/item/clockwork/component/hierophant_ansible/obelisk
|
||||
name = "obelisk prism"
|
||||
desc = "A prism that occasionally glows brightly. It seems not-quite there."
|
||||
icon_state = "obelisk_prism"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
//Ratvarian spear
|
||||
/obj/item/clockwork/weapon/ratvarian_spear
|
||||
name = "ratvarian spear"
|
||||
|
||||
@@ -701,6 +701,7 @@ active_space_ruins = [
|
||||
"_maps/map_files/RandomRuins/SpaceRuins/abandoned_sec_shuttle.dmm",
|
||||
"_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm",
|
||||
"_maps/map_files/RandomRuins/SpaceRuins/unathi_skiff.dmm",
|
||||
"_maps/map_files/RandomRuins/SpaceRuins/clockwork_monastery.dmm",
|
||||
|
||||
### The following ruins are based from past pre-spawned Zlevel content ###
|
||||
"_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm",
|
||||
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 144 KiB |
@@ -2384,6 +2384,7 @@
|
||||
#include "code\modules\mob\living\silicon\robot\drone\drone_update_status.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\drone\maint_drone.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animal_defense.dm"
|
||||
#include "code\modules\mob\living\simple_animal\clockwork_constructs.dm"
|
||||
#include "code\modules\mob\living\simple_animal\constructs.dm"
|
||||
#include "code\modules\mob\living\simple_animal\corpse.dm"
|
||||
#include "code\modules\mob\living\simple_animal\hide_action.dm"
|
||||
|
||||