mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 06:00:16 +01:00
Small spear change: slightly better stats but they fall apart (#93685)
This commit is contained in:
@@ -8,13 +8,14 @@
|
||||
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
|
||||
icon_angle = -45
|
||||
force = 10
|
||||
reach = 2
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
throwforce = 20
|
||||
throw_speed = 4
|
||||
demolition_mod = 0.75
|
||||
demolition_mod = 0.75 // Note: This is significant, as this needs to be low enough that any possible force adjustments from better spears does not go over airlock deflection. See AIRLOCK_DAMAGE_DEFLECTION_N.
|
||||
embed_type = /datum/embedding/spear
|
||||
armour_penetration = 10
|
||||
armour_penetration = 5
|
||||
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass= HALF_SHEET_MATERIAL_AMOUNT * 2)
|
||||
hitsound = 'sound/items/weapons/bladeslice.ogg'
|
||||
attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores")
|
||||
@@ -32,6 +33,10 @@
|
||||
var/force_unwielded = 10
|
||||
/// How much damage to do wielded
|
||||
var/force_wielded = 18
|
||||
/// Whether or not hitting with this spear causes damage to the spear itself
|
||||
var/improvised_construction = TRUE
|
||||
/// What is left over when a spear breaks
|
||||
var/spear_leftovers = /obj/item/stack/rods
|
||||
|
||||
/datum/embedding/spear
|
||||
impact_pain_mult = 2
|
||||
@@ -59,6 +64,8 @@
|
||||
force_unwielded = force_unwielded, \
|
||||
force_wielded = force_wielded, \
|
||||
icon_wielded = "[icon_prefix]1", \
|
||||
wield_callback = CALLBACK(src, PROC_REF(on_wield)), \
|
||||
unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \
|
||||
)
|
||||
add_headpike_component()
|
||||
update_appearance()
|
||||
@@ -91,36 +98,90 @@
|
||||
throwforce = 21
|
||||
custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT, /datum/material/alloy/plasmaglass= HALF_SHEET_MATERIAL_AMOUNT * 2)
|
||||
icon_prefix = "spearplasma"
|
||||
modify_max_integrity(220)
|
||||
wound_bonus = -10
|
||||
force_unwielded = 11
|
||||
force_wielded = 19
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=force_unwielded, force_wielded=force_wielded, icon_wielded="[icon_prefix]1")
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
force_unwielded = force_unwielded, \
|
||||
force_wielded = force_wielded, \
|
||||
icon_wielded = "[icon_prefix]1", \
|
||||
wield_callback = CALLBACK(src, PROC_REF(on_wield)), \
|
||||
unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \
|
||||
)
|
||||
|
||||
if(/obj/item/shard/titanium)
|
||||
force = 13
|
||||
throwforce = 21
|
||||
force = 12
|
||||
throwforce = 22
|
||||
throw_range = 8
|
||||
throw_speed = 5
|
||||
custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT, /datum/material/alloy/titaniumglass= HALF_SHEET_MATERIAL_AMOUNT * 2)
|
||||
wound_bonus = -10
|
||||
force_unwielded = 13
|
||||
force_wielded = 18
|
||||
modify_max_integrity(230)
|
||||
wound_bonus = -5
|
||||
force_unwielded = 12
|
||||
force_wielded = 20
|
||||
armour_penetration = 10
|
||||
icon_prefix = "speartitanium"
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=force_unwielded, force_wielded=force_wielded, icon_wielded="[icon_prefix]1")
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
force_unwielded = force_unwielded, \
|
||||
force_wielded = force_wielded, \
|
||||
icon_wielded = "[icon_prefix]1", \
|
||||
wield_callback = CALLBACK(src, PROC_REF(on_wield)), \
|
||||
unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \
|
||||
)
|
||||
|
||||
if(/obj/item/shard/plastitanium)
|
||||
force = 13
|
||||
throwforce = 22
|
||||
throwforce = 23
|
||||
throw_range = 9
|
||||
throw_speed = 5
|
||||
custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT, /datum/material/alloy/plastitaniumglass= HALF_SHEET_MATERIAL_AMOUNT * 2)
|
||||
wound_bonus = -10
|
||||
modify_max_integrity(240)
|
||||
wound_bonus = 0
|
||||
exposed_wound_bonus = 20
|
||||
force_unwielded = 13
|
||||
force_wielded = 20
|
||||
force_wielded = 21
|
||||
armour_penetration = 15
|
||||
icon_prefix = "spearplastitanium"
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=force_unwielded, force_wielded=force_wielded, icon_wielded="[icon_prefix]1")
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
force_unwielded = force_unwielded, \
|
||||
force_wielded = force_wielded, \
|
||||
icon_wielded = "[icon_prefix]1", \
|
||||
wield_callback = CALLBACK(src, PROC_REF(on_wield)), \
|
||||
unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \
|
||||
)
|
||||
|
||||
update_appearance()
|
||||
return ..()
|
||||
|
||||
/obj/item/spear/afterattack(atom/target, mob/user, list/modifiers, list/attack_modifiers)
|
||||
if(improvised_construction)
|
||||
return
|
||||
take_damage(force/2, sound_effect = FALSE)
|
||||
|
||||
/obj/item/spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
. = ..()
|
||||
if (.) //spear was caught
|
||||
return
|
||||
if(!improvised_construction)
|
||||
return
|
||||
take_damage(throwforce/2, sound_effect = FALSE)
|
||||
|
||||
/obj/item/spear/atom_destruction(damage_flag)
|
||||
playsound(src, 'sound/effects/grillehit.ogg', 50)
|
||||
new spear_leftovers(get_turf(src))
|
||||
if(isliving(loc))
|
||||
loc.balloon_alert(loc, "spear broken!")
|
||||
return ..()
|
||||
|
||||
/obj/item/spear/proc/on_wield(obj/item/source, mob/living/carbon/user)
|
||||
reach = 1
|
||||
armour_penetration *= 2
|
||||
|
||||
/obj/item/spear/proc/on_unwield(obj/item/source, mob/living/carbon/user)
|
||||
reach = 2
|
||||
armour_penetration /= 2
|
||||
|
||||
/obj/item/spear/explosive
|
||||
name = "explosive lance"
|
||||
icon_state = "spearbomb0"
|
||||
@@ -196,6 +257,7 @@
|
||||
attack_verb_simple = list("gore")
|
||||
force_unwielded = 15
|
||||
force_wielded = 25
|
||||
improvised_construction = FALSE
|
||||
|
||||
/obj/item/spear/grey_tide/afterattack(atom/movable/target, mob/living/user, list/modifiers, list/attack_modifiers)
|
||||
user.faction |= "greytide([REF(user)])"
|
||||
@@ -226,6 +288,7 @@
|
||||
throw_range = 9
|
||||
throw_speed = 5
|
||||
sharpness = NONE // we break bones instead of cutting flesh
|
||||
improvised_construction = FALSE
|
||||
|
||||
/obj/item/spear/military/add_headpike_component()
|
||||
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikemilitary)
|
||||
@@ -239,17 +302,17 @@
|
||||
* Bone Spear
|
||||
*/
|
||||
/obj/item/spear/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification.
|
||||
name = "bone spear"
|
||||
desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology."
|
||||
icon_state = "bone_spear0"
|
||||
base_icon_state = "bone_spear0"
|
||||
icon_prefix = "bone_spear"
|
||||
name = "bone spear"
|
||||
desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology."
|
||||
|
||||
throwforce = 22
|
||||
armour_penetration = 15 //Enhanced armor piercing
|
||||
armour_penetration = 20 //Enhanced armor piercing
|
||||
custom_materials = list(/datum/material/bone = HALF_SHEET_MATERIAL_AMOUNT * 7)
|
||||
force_unwielded = 12
|
||||
force_wielded = 20
|
||||
spear_leftovers = /obj/item/stack/sheet/bone
|
||||
|
||||
/obj/item/spear/bonespear/add_headpike_component()
|
||||
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikebone)
|
||||
@@ -269,11 +332,9 @@
|
||||
name = "bamboo spear"
|
||||
desc = "A haphazardly-constructed bamboo stick with a sharpened tip, ready to poke holes into unsuspecting people."
|
||||
|
||||
throwforce = 22 //Better to throw
|
||||
throwforce = 23 //Better to throw
|
||||
custom_materials = list(/datum/material/bamboo = SHEET_MATERIAL_AMOUNT * 20)
|
||||
force_unwielded = 10
|
||||
force_wielded = 18
|
||||
|
||||
spear_leftovers = /obj/item/stack/sheet/mineral/bamboo
|
||||
|
||||
/obj/item/spear/bamboospear/add_headpike_component()
|
||||
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikebamboo)
|
||||
@@ -305,6 +366,7 @@
|
||||
)
|
||||
action_slots = ITEM_SLOT_HANDS
|
||||
actions_types = list(/datum/action/item_action/skybulge)
|
||||
improvised_construction = FALSE
|
||||
|
||||
///The action button the spear gives, usable once a minute.
|
||||
/datum/action/item_action/skybulge
|
||||
|
||||
Reference in New Issue
Block a user