Skip to content

Commit

Permalink
Uueoa-Esa, Part 3: Ruin Assets (#18956)
Browse files Browse the repository at this point in the history
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 <[email protected]>
Co-authored-by: Fluffy <[email protected]>
  • Loading branch information
RustingWithYou and FluffyGhoster authored Apr 19, 2024
1 parent 184abfe commit c59e636
Show file tree
Hide file tree
Showing 16 changed files with 652 additions and 0 deletions.
1 change: 1 addition & 0 deletions aurorastation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -1348,6 +1348,7 @@
#include "code\game\objects\structures\tranqcabinet.dm"
#include "code\game\objects\structures\trash_pile.dm"
#include "code\game\objects\structures\under_wardrobe.dm"
#include "code\game\objects\structures\undetonated_nuke.dm"
#include "code\game\objects\structures\urban.dm"
#include "code\game\objects\structures\warp_drive.dm"
#include "code\game\objects\structures\watercloset.dm"
Expand Down
15 changes: 15 additions & 0 deletions code/game/objects/items/weapons/material/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,18 @@
throw_speed = 2
throw_range = 3
w_class = ITEMSIZE_SMALL

/obj/item/material/scythe/sickle/warsickle
name = "war sickle"
desc = "A short and wickedly curved blade, this sickle was often used as a melee weapon by ancient Unathi civilizations."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "warsickle"
item_state = "warsickle"
contained_sprite = TRUE
slot_flags = SLOT_BELT
force_divisor = 0.7 // 42 when wielded with hardnes 60 (steel)
thrown_force_divisor = 0.5 // 10 when thrown with weight 20 (steel)
applies_material_colour = FALSE

/obj/item/material/scythe/sickle/warsickle/bronze/Initialize(newloc, material_key)
. = ..(newloc, MATERIAL_BRONZE)
24 changes: 24 additions & 0 deletions code/game/objects/items/weapons/material/twohanded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -670,3 +670,27 @@
reach = 2
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
armor_penetration = wielded_ap

/obj/item/material/twohanded/pike/halberd/warscythe
name = "war scythe"
desc = "An ancient Unathi weapon, this heavy polearm was frequently wielded by cavalry forces of pre-Hegemony kingdoms."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "warspike0"
base_icon = "warspike"
contained_sprite = TRUE
applies_material_colour = FALSE

/obj/item/material/twohanded/pike/halberd/warscythe/bronze/Initialize(newloc, material_key)
. = ..(newloc, MATERIAL_BRONZE)

/obj/item/material/twohanded/pike/mador_trident
name = "ancient trident"
desc = "An ancient weapon, this three-pointed polearm was often wielded by the ancient Sinta'Mador civilization of Moghes."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "mador_trident0"
base_icon = "mador_trident"
contained_sprite = TRUE
applies_material_colour = FALSE

/obj/item/material/twohanded/pike/mador_trident/bronze/Initialize(newloc, material_key)
. = ..(newloc, MATERIAL_BRONZE)
82 changes: 82 additions & 0 deletions code/game/objects/structures/crates_lockers/closets/gimmick.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
211 changes: 211 additions & 0 deletions code/game/objects/structures/flags_banners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Loading

0 comments on commit c59e636

Please sign in to comment.