Uueoa-Esa, Part 3: Ruin Assets (#18956)

Adds several new items and structures for use in Unathi ruins. These
include:
Several ancient Unathi clothing items, including two sets of armor.
Pillars and statues for ruin decoration.
Three ancient Unathi melee weapons.
Several flags/banners/tapestries.
Sarcophagi, complete with booby-traps.
An undetonated nuclear bomb, for, uh... don't worry about it.

Bomb sprite by @nauticall, other ruin sprites by Gecko

---------

Signed-off-by: RustingWithYou <63625389+RustingWithYou@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
RustingWithYou
2024-04-19 11:06:35 +00:00
committed by GitHub
co-authored by Fluffy
parent 184abfe6b7
commit c59e636746
16 changed files with 652 additions and 0 deletions
@@ -134,3 +134,85 @@
canbemoved = FALSE
open_sound = 'sound/machines/wooden_closet_open.ogg'
close_sound = 'sound/machines/wooden_closet_close.ogg'
/obj/structure/closet/sarcophagus
name = "sandstone sarcophagus"
desc = "An ancient sarcophagus made of sandstone."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "wc_sarcophagus"
dense_when_open = TRUE
anchored = TRUE
canbemoved = FALSE
open_sound = 'sound/effects/stonedoor_openclose.ogg'
close_sound = 'sound/effects/stonedoor_openclose.ogg'
///Icon state for the open sarcophagus
var/open_state = "wc_sarcophagus_open"
///Icon state for the closed sarcophagus
var/closed_state = "wc_sarcophagus"
///Does this sarcophagus have a booby trap?
var/trapped = FALSE
///Has this sarcophagus's trap been triggered?
var/triggered = FALSE
/obj/structure/closet/sarcophagus/update_icon()
if(!opened)
layer = OBJ_LAYER
icon_state = closed_state
else
layer = BELOW_OBJ_LAYER
icon_state = open_state
/obj/structure/closet/sarcophagus/animate_door(var/closing = FALSE)
return
/obj/structure/closet/sarcophagus/attack_hand(mob/user)
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(trapped && !triggered)
do_trap_effect(H)
///Sets off the sarcophagus's trap if not already triggered.
/obj/structure/closet/sarcophagus/proc/do_trap_effect(var/mob/living/carbon/human/H)
if(triggered)
return
if(prob(33))
var/turf/T = get_turf(src)
var/obj/item/arrow/arrow = new(T)
playsound(usr.loc, 'sound/weapons/crossbow.ogg', 75, 1)
arrow.throw_at(H, 10, 9, src) //same values as a full draw crossbow shot would have
else if(prob(33))
visible_message(SPAN_DANGER("Flames engulf \the [H]!"))
H.apply_damage(30, DAMAGE_BURN)
H.IgniteMob(5)
else
var/datum/reagents/R = new/datum/reagents(20)
R.my_atom = src
R.add_reagent(/singleton/reagent/toxin,20)
var/datum/effect/effect/system/smoke_spread/chem/S = new /datum/effect/effect/system/smoke_spread/chem(/singleton/reagent/toxin) // have to explicitly say the type to avoid issues with warnings
S.show_log = 0
S.set_up(R, 10, 0, src, 40)
S.start()
qdel(R)
triggered = TRUE
/obj/structure/closet/sarcophagus/random/Initialize() //low chance of being trapped
. = ..()
if(prob(10))
trapped = TRUE
/obj/structure/closet/sarcophagus/mador
name = "granite sarcophagus"
desc = "An ancient sarcophagus made of granite."
icon_state = "mador_sarcophagus"
closed_state = "mador_sarcophagus"
open_state = "mador_sarcophagus_open"
/obj/structure/closet/sarcophagus/mador/random/Initialize()
. = ..()
if(prob(10))
trapped = TRUE