mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 03:51:49 +01:00
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:
@@ -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
|
||||
|
||||
@@ -3274,3 +3274,214 @@
|
||||
|
||||
/obj/structure/sign/flag/hiskyn/unmovable
|
||||
unmovable = TRUE
|
||||
|
||||
//Unathi Ruin Flags/Tapestries
|
||||
/obj/item/flag/unathi_tapestry
|
||||
name = "folded tapestry"
|
||||
desc = "An ancient piece of woven cloth, carefully folded."
|
||||
icon = 'icons/obj/unathi_ruins.dmi'
|
||||
icon_state = "tapestry_folded"
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry
|
||||
name = "sun tapestry"
|
||||
desc = "A worn and faded tapestry depicting a bright sun shining down on the surface of Moghes."
|
||||
icon = 'icons/obj/unathi_ruins.dmi'
|
||||
icon_state = "sun"
|
||||
flag_path = "sun"
|
||||
flag_item = /obj/item/flag/unathi_tapestry
|
||||
|
||||
/obj/item/flag/unathi_tapestry/moon
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/moon
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/moon
|
||||
name = "moon tapestry"
|
||||
desc = "A worn and faded tapestry depicting a crescent moon."
|
||||
icon_state = "moon"
|
||||
flag_path = "moon"
|
||||
flag_item = /obj/item/flag/unathi_tapestry/moon
|
||||
|
||||
/obj/item/flag/unathi_tapestry/crown
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/crown
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/crown
|
||||
name = "crown tapestry"
|
||||
desc = "A worn and faded tapestry depicting an Unathi figure, with a crown being lowered onto their head."
|
||||
icon_state = "crown"
|
||||
flag_path = "crown"
|
||||
flag_item = /obj/item/flag/unathi_tapestry/crown
|
||||
|
||||
/obj/item/flag/unathi_tapestry/warrior
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/warrior
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/warrior
|
||||
name = "warrior tapestry"
|
||||
desc = "A worn and faded tapestry depicting an Unathi figure in full battle armor."
|
||||
icon_state = "warrior"
|
||||
flag_path = "warrior"
|
||||
flag_item = /obj/item/flag/unathi_tapestry/warrior
|
||||
|
||||
/obj/item/flag/unathi_tapestry/brothers
|
||||
flag_size = TRUE
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/brothers
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/brothers
|
||||
name = "brothers tapestry"
|
||||
desc = "A large and faded tapestry depicting two Unathi wielding war scythes, standing back to back."
|
||||
icon_state = "brothers_l"
|
||||
flag_path = "brothers"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/brothers
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/brothers/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/brothers/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/brothers/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/brothers/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
/obj/item/flag/unathi_tapestry/city
|
||||
flag_size = TRUE
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/city
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/city
|
||||
name = "city tapestry"
|
||||
desc = "A large and faded tapestry depicting an ancient city, towering resplendent over the land."
|
||||
icon_state = "city_l"
|
||||
flag_path = "city"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/city
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/city/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/city/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/city/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/city/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
/obj/item/flag/unathi_tapestry/wall
|
||||
flag_size = TRUE
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/wall
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/wall
|
||||
name = "wall tapestry"
|
||||
desc = "A large and faded tapestry depicting a mighty wall, staffed by hundreds of warriors. Storm clouds gather above it."
|
||||
icon_state = "wall_l"
|
||||
flag_path = "wall"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/wall
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/wall/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/wall/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/wall/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/wall/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
/obj/item/flag/unathi_tapestry/unathi
|
||||
flag_size = TRUE
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/unathi
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/unathi
|
||||
name = "unathi tapestry"
|
||||
desc = "A large and faded tapestry depicting a single Unathi figure - regal, resplendent, and utterly alone.."
|
||||
icon_state = "unathi_l"
|
||||
flag_path = "unathi"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/unathi
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/unathi/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/unathi/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/unathi/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/unathi/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
/obj/item/flag/unathi_tapestry/mador
|
||||
icon_state = "mador_tapestry_folded"
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/mador_1
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_1
|
||||
name = "\improper Sinta'Mador tapestry"
|
||||
desc = "A worn and faded tapestry bearing script in the lost language of the Sinta'Mador."
|
||||
icon_state = "mador3"
|
||||
flag_path = "mador3"
|
||||
flag_item = /obj/item/flag/unathi_tapestry/mador
|
||||
|
||||
/obj/item/flag/unathi_tapestry/mador/mador_2
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/mador_2
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_2
|
||||
name = "\improper Sinta'Mador tapestry"
|
||||
desc = "A worn and faded tapestry bearing script in the lost language of the Sinta'Mador."
|
||||
icon_state = "mador4"
|
||||
flag_path = "mador4"
|
||||
flag_item = /obj/item/flag/unathi_tapestry/mador/mador_2
|
||||
|
||||
/obj/item/flag/unathi_tapestry/mador_3
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/mador_3
|
||||
flag_size = TRUE
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_3
|
||||
name = "large Sinta'Mador tapestry"
|
||||
desc = "A large tapestry bearing script in the lost language of the Sinta'Mador"
|
||||
icon_state = "mador1_l"
|
||||
flag_path = "mador1"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/mador_3
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_3/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_3/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_3/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_3/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
/obj/item/flag/unathi_tapestry/mador_4
|
||||
flag_structure = /obj/structure/sign/flag/unathi_tapestry/mador_4
|
||||
flag_size = TRUE
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_4
|
||||
name = "large Sinta'Mador tapestry"
|
||||
desc = "A large tapestry bearing script in the lost language of the Sinta'Mador"
|
||||
icon_state = "mador2_l"
|
||||
flag_path = "mador2"
|
||||
flag_size = TRUE
|
||||
flag_item = /obj/item/flag/unathi_tapestry/mador_4
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_4/north/Initialize(mapload)
|
||||
. = ..(mapload, NORTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_4/south/Initialize(mapload)
|
||||
. = ..(mapload, SOUTH)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_4/east/Initialize(mapload)
|
||||
. = ..(mapload, EAST)
|
||||
|
||||
/obj/structure/sign/flag/unathi_tapestry/mador_4/west/Initialize(mapload)
|
||||
. = ..(mapload, WEST)
|
||||
|
||||
@@ -6,3 +6,60 @@
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
layer = ABOVE_HUMAN_LAYER
|
||||
|
||||
//Unathi statues
|
||||
/obj/structure/unathi_pillar
|
||||
name = "pillar"
|
||||
desc = "An ancient and weathered sandstone pillar. It is covered in what looks like Sinta'Azaziba writing."
|
||||
icon = 'icons/obj/unathi_ruins.dmi'
|
||||
icon_state = "pillar"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
can_be_unanchored = FALSE
|
||||
|
||||
/obj/structure/unathi_pillar/mador
|
||||
desc = "An ancient and weathered granite pillar. It is inscribed with symbols of an unknown language."
|
||||
icon_state = "mador_pillar"
|
||||
|
||||
/obj/structure/unathi_statue
|
||||
name = "ancient statue"
|
||||
desc = "An ancient and crumbling sandstone statue of an Unathi."
|
||||
icon = 'icons/obj/unathi_ruins.dmi'
|
||||
icon_state = "statue"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
|
||||
/obj/structure/unathi_statue/warrior
|
||||
name = "warrior statue"
|
||||
desc = "An ancient and crumbling sandstone statue of an Unathi. This one is armored, and wields a war scythe."
|
||||
icon_state = "warriorstatue_left"
|
||||
|
||||
/obj/structure/unathi_statue/warrior/right
|
||||
icon_state = "warriorstatue_right"
|
||||
|
||||
/obj/structure/unathi_statue/crown
|
||||
name = "crowned statue"
|
||||
desc = "An ancient and crumbling sandstone statue of an Unathi. This one is robed, and wears a crown upon its head."
|
||||
icon_state = "crownstatue"
|
||||
|
||||
/obj/structure/unathi_statue/robe
|
||||
name = "robed statue"
|
||||
desc = "An ancient and crumbling sandstone statue of an Unathi. This one is clad in a humble robe and hood, and bears no weapons."
|
||||
icon_state = "robestatue"
|
||||
|
||||
/obj/structure/unathi_statue/mador
|
||||
desc = "An ancient and crumbling granite statue of an Unathi, worn away by time."
|
||||
icon_state = "mador_statue"
|
||||
|
||||
/obj/structure/unathi_statue/mador/armored
|
||||
name = "armored statue"
|
||||
desc = "An ancient and crumbling granite statue of an Unathi clad in strange and bulky armor."
|
||||
icon_state = "mador_statue_armored"
|
||||
|
||||
/obj/structure/unathi_statue/mador/warrior
|
||||
name = "warrior statue"
|
||||
desc = "An ancient and crumbling granite statue of an Unathi. This one is armored, and wields a trident."
|
||||
icon_state = "mador_statue_warrior_left"
|
||||
|
||||
/obj/structure/unathi_statue/mador/warrior/right
|
||||
icon_state = "mador_statue_warrior_right"
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/obj/structure/undetonated_nuke
|
||||
name = "undetonated nuclear bomb"
|
||||
desc = "This rusted bomb looks like it's been here for decades. Flaking paint on the side depicts the battle standard of the Traditionalist Coalition. Something is written in Sinta'Azaziba on the side."
|
||||
icon = 'icons/obj/unathi_ruins.dmi'
|
||||
icon_state = "bomb"
|
||||
density = TRUE
|
||||
anchored = FALSE
|
||||
///Whether this nuke will explode if caught in an explosion.
|
||||
var/can_explode = TRUE
|
||||
|
||||
/obj/structure/undetonated_nuke/get_examine_text(mob/user, distance)
|
||||
. = ..()
|
||||
if(GLOB.all_languages[LANGUAGE_AZAZIBA] in user.languages)
|
||||
. += SPAN_NOTICE("The inscription reads \"WARNING: FISSILE MATERIAL. HANDLE WITH CARE.\" Underneath are a few words, scratched into the metal. They read \"IF FOUND, RETURN TO SKALAMAR AT HIGH VELOCITY\"")
|
||||
|
||||
/obj/structure/undetonated_nuke/ex_act(severity)
|
||||
if(!can_explode)
|
||||
return
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
explode()
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
explode()
|
||||
return
|
||||
if(3.0)
|
||||
return
|
||||
|
||||
///Sets off a large conventional explosion from the trigger and spreads radioactive material. Does not set off a nuclear explosion.
|
||||
/obj/structure/undetonated_nuke/proc/explode()
|
||||
var/turf/T = get_turf(src)
|
||||
can_explode = FALSE
|
||||
visible_message(SPAN_DANGER("\The [src] explodes!"))
|
||||
explosion(T, 6, 8, 10)
|
||||
SSradiation.radiate(src, 250)
|
||||
new /obj/effect/decal/cleanable/greenglow(T)
|
||||
|
||||
/obj/structure/undetonated_nuke/buried
|
||||
name = "buried nuclear bomb"
|
||||
desc = "This rusted metal shell is half-buried in the sand, and seems to have been that way for decades. Flaking paint on the side depicts the battle standard of the Traditionalist Coalition. Something is written in Sinta'Azaziba on the side."
|
||||
anchored = TRUE
|
||||
icon_state = "bomb_buried"
|
||||
|
||||
/obj/structure/undetonated_nuke/buried/Initialize(mapload)
|
||||
. = ..()
|
||||
if(prob(50))
|
||||
can_explode = FALSE
|
||||
|
||||
/obj/structure/undetonated_nuke/buried/attackby(obj/item/attacking_item, mob/user, params)
|
||||
. = ..()
|
||||
var/turf/current_turf = get_turf(src)
|
||||
if(istype(current_turf, /turf/simulated/floor/exoplanet))
|
||||
var/turf/simulated/floor/exoplanet/T = current_turf
|
||||
if(attacking_item.is_shovel() && T.diggable)
|
||||
visible_message(SPAN_NOTICE("\The [user] begins to excavate \the [src]."))
|
||||
if(attacking_item.use_tool(src, user, 100, volume = 50))
|
||||
visible_message(SPAN_NOTICE("\The [user] finishes digging \the [src] from \the [T]!"))
|
||||
new /obj/structure/pit(T)
|
||||
var/obj/structure/undetonated_nuke/N = new(T)
|
||||
N.can_explode = can_explode
|
||||
qdel(src)
|
||||
Reference in New Issue
Block a user