Improved Ashwalker Armory: Bone Equipment (#30600)

* Adds Bone Sword, Bone Shield, Bone Sword Sheath. Todo: Light Bone Armor, Sword Inhand fix

* sword inhands

* Adds Light Bone Armor

* Linters

* Species sprites

* Fixes my crap grammar

* Updates belt icon sprite
This commit is contained in:
PollardTheDragon
2025-10-19 19:06:58 +00:00
committed by GitHub
parent 5cb7eec5ad
commit 3e149e8e6b
25 changed files with 101 additions and 1 deletions
@@ -70,6 +70,23 @@
"<span class='suicide'>[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>"))
return BRUTELOSS
// MARK: BONE SWORD
/obj/item/melee/bone_sword
name = "bone sword"
desc = "A curved blade made of sharpened bone and bound with sinew."
icon_state = "bone_sword"
force = 18
throwforce = 14
w_class = WEIGHT_CLASS_BULKY
sharp = TRUE
attack_verb = list("slashed", "sliced", "chopped")
hitsound = 'sound/weapons/bladeslice.ogg'
/obj/item/melee/bone_sword/Initialize(mapload)
. = ..()
AddComponent(/datum/component/parry, _stamina_constant = 4, _stamina_coefficient = 0.6, _parryable_attack_types = NON_PROJECTILE_ATTACKS)
#define SECSWORD_OFF 0
#define SECSWORD_STUN 1
#define SECSWORD_BURN 2
@@ -65,6 +65,17 @@
/obj/item/shield/riot/buckler/add_parry_component()
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.7, _parryable_attack_types = ALL_ATTACK_TYPES, _parry_cooldown = (10 / 3) SECONDS) // 2.3333 seconds of cooldown for 30% uptime
/obj/item/shield/riot/bone
name = "bone shield"
desc = "A primitive yet durable shield made from bone."
icon_state = "bone_shield"
materials = list()
origin_tech = "materials=1;combat=3;biotech=4"
resistance_flags = FLAMMABLE
/obj/item/shield/riot/bone/add_parry_component()
AddComponent(/datum/component/parry, _stamina_constant = 3, _stamina_coefficient = 0.6, _parryable_attack_types = ALL_ATTACK_TYPES)
/obj/item/shield/energy
name = "energy combat shield"
desc = "A shield that reflects almost all energy projectiles, but is useless against physical attacks. It can be retracted, expanded, and stored anywhere."
@@ -785,12 +785,14 @@
if(!..())
return
playsound(src, 'sound/weapons/blade_sheath.ogg', 20)
update_appearance(UPDATE_ICON_STATE)
/obj/item/storage/belt/sheath/remove_from_storage(obj/item/W, atom/new_location)
if(!..())
return
if(!length(contents)) // telekinesis grab spawns inside of the sheath and leaves it immediately...
playsound(src, 'sound/weapons/blade_unsheath.ogg', 20)
update_appearance(UPDATE_ICON_STATE)
/obj/item/storage/belt/sheath/update_icon_state()
if(length(contents))
@@ -808,6 +810,19 @@
new /obj/item/melee/saber(src)
update_appearance(UPDATE_ICON_STATE)
/obj/item/storage/belt/sheath/bone_sword
name = "bone sword sheath"
desc = "Can hold bone swords."
base_icon_state = "bonesword_sheath"
can_hold = list(/obj/item/melee/bone_sword)
/obj/item/storage/belt/sheath/bone_sword/Initialize(mapload)
. = ..()
update_appearance(UPDATE_ICON_STATE)
/obj/item/storage/belt/sheath/bone_sword/prefilled/populate_contents()
new /obj/item/melee/bone_sword(src)
/obj/item/storage/belt/sheath/secsword
name = "securiblade scabbard"
desc = "Can hold securiblades."
@@ -832,6 +832,39 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/obj/item/clothing/suit/hooded/bone_light
name = "light bone armor"
desc = "A lightweight set of bone armor, crafted crudely from animal products."
icon_state = "light_bone_armor"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear)
armor = list(MELEE = 15, BULLET = 10, LASER = 10, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 50, ACID = 50)
hoodtype = /obj/item/clothing/head/hooded/bone_light
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
sprite_sheets = list(
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi',
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
)
/obj/item/clothing/head/hooded/bone_light
name = "light bone helmet"
desc = "A crude helmet crafted from the bones of animals."
icon_state = "light_bone_helmet"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
armor = list(MELEE = 15, BULLET = 10, LASER = 10, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
heat_protection = HEAD
sprite_sheets = list(
"Drask" = 'icons/mob/clothing/species/drask/head.dmi',
"Grey" = 'icons/mob/clothing/species/grey/head.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/head.dmi',
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
)
/obj/item/clothing/suit/armor/bone
name = "bone armor"
desc = "A tribal armor plate, crafted from animal bone."
+24
View File
@@ -733,6 +733,14 @@
reqs = list(/obj/item/stack/sheet/bone = 6)
category = CAT_PRIMAL
/datum/crafting_recipe/light_bone_armor
name = "Light Bone Armor"
result = list(/obj/item/clothing/suit/hooded/bone_light)
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonetalisman
name = "Bone Talisman"
result = list(/obj/item/clothing/accessory/talisman)
@@ -826,6 +834,22 @@
/obj/item/stack/sheet/sinew = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/bonesword
name = "Bone Sword"
result = list(/obj/item/melee/bone_sword)
time = 45
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonesword_sheath
name = "Bone Sword Sheath"
result = list(/obj/item/storage/belt/sheath/bone_sword)
time = 45
reqs = list(/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/boneaxe
name = "Bone Axe"
result = list(/obj/item/fireaxe/boneaxe)
@@ -85,7 +85,7 @@
/datum/outfit/ashwalker
name = "Ashwalker"
head = /obj/item/clothing/head/helmet/gladiator
uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
suit = /obj/item/clothing/suit/hooded/bone_light
#undef ASH_WALKER_SPAWN_THRESHOLD
Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB