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
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 274 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 481 KiB After Width: | Height: | Size: 484 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.4 KiB |