UBEY UBEY UBEY (#20640)

* sledgehammer

* oops

* readjust damage numbers

* Update sledgehammer.dm

* slowdown is now only on self

* map changes

* Fix whitespace

This partially reverts commit 014b85e4db.

* Revert "Fix whitespace"

This reverts commit 38f62ec680.

* fix whitespace real

* Update DonutStation.dmm

* icemeta
This commit is contained in:
ynot01
2023-10-20 09:03:05 -04:00
committed by GitHub
parent d395ea9d76
commit 5ffa08bf5b
15 changed files with 103 additions and 5 deletions

View File

@@ -439,6 +439,8 @@
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"mm" = (

View File

@@ -361,6 +361,8 @@
/obj/item/clothing/glasses/meson/engine,
/obj/item/clothing/glasses/meson/engine,
/obj/item/clothing/glasses/meson/engine,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"sm" = (

View File

@@ -356,6 +356,8 @@
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"mC" = (

View File

@@ -73081,6 +73081,8 @@
/obj/structure/sign/warning/electricshock{
pixel_x = 32
},
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"wjC" = (

View File

@@ -16794,6 +16794,8 @@
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/pipe_dispenser,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"hnb" = (

View File

@@ -18237,6 +18237,8 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/structure/table,
/obj/item/storage/belt/utility,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"iNL" = (

View File

@@ -12288,6 +12288,8 @@
/obj/structure/table,
/obj/item/stack/sheet/glass/fifty,
/obj/item/stack/sheet/metal/fifty,
/obj/item/melee/sledgehammer,
/obj/item/melee/sledgehammer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"bRu" = (

View File

@@ -138,7 +138,7 @@
name = "Makeshift Bow"
result = /obj/item/gun/ballistic/bow/maint
reqs = list(/obj/item/pipe = 5,
/obj/item/stack/tape = 3,
/obj/item/stack/tape = 3,
/obj/item/stack/cable_coil = 10)
time = 10 SECONDS
category = CAT_WEAPON_RANGED
@@ -188,6 +188,17 @@
time = 12
category = CAT_WEAPON_RANGED
/datum/crafting_recipe/sledgehammer
name = "Sledgehammer"
result = /obj/item/melee/sledgehammer
reqs = list(/obj/item/stack/sheet/mineral/wood = 4,
/obj/item/stack/sheet/plasteel = 3,
/obj/item/stack/sheet/metal = 1)
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WELDER)
result = /obj/item/melee/sledgehammer
time = 8 SECONDS
category = CAT_WEAPON_MELEE
/datum/crafting_recipe/chainsaw
name = "Chainsaw"
result = /obj/item/melee/chainsaw
@@ -487,8 +498,8 @@
name = "Glass Arrow"
result = /obj/item/ammo_casing/reusable/arrow/glass
time = 1.5 SECONDS
reqs = list(/obj/item/shard = 1,
/obj/item/stack/rods = 1,
reqs = list(/obj/item/shard = 1,
/obj/item/stack/rods = 1,
/obj/item/stack/cable_coil = 3)
category = CAT_WEAPON_AMMO
@@ -497,6 +508,6 @@
result = /obj/item/ammo_casing/reusable/arrow/glass/plasma
time = 1.5 SECONDS
reqs = list(/obj/item/shard/plasma = 1,
/obj/item/stack/rods = 1,
/obj/item/stack/rods = 1,
/obj/item/stack/cable_coil = 3)
category = CAT_WEAPON_AMMO

View File

@@ -194,7 +194,11 @@
if(try_clean(W, user, T) || try_wallmount(W, user, T) || try_decon(W, user, T))
return
return ..()
. = ..()
if(!.)
to_chat(user, span_notice("You hit the wall with \the [W] but nothing happens!"))
playsound(src, 'sound/weapons/genhit.ogg', 25, 1)
/turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T)
if((user.a_intent != INTENT_HELP) || !LAZYLEN(dent_decals))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -3927,6 +3927,7 @@
#include "yogstation\code\game\objects\items\storage\toolbox.dm"
#include "yogstation\code\game\objects\items\storage\uplink_kits.dm"
#include "yogstation\code\game\objects\items\wielded\big_spoon.dm"
#include "yogstation\code\game\objects\items\wielded\sledgehammer.dm"
#include "yogstation\code\game\objects\items\wielded\vxtvulhammer.dm"
#include "yogstation\code\game\objects\structures\bedsheet_bin.dm"
#include "yogstation\code\game\objects\structures\fireaxe.dm"

View File

@@ -0,0 +1,68 @@
#define SLEDGEHAMMER_THROWN_STAGGER "sledgehammer_throw"
#define SLEDGEHAMMER_HIT_STAGGER "sledgehammer_hit"
/obj/item/melee/sledgehammer
name = "sledgehammer"
desc = "An archaic tool used to drive nails and break down hollow walls."
icon = 'icons/obj/weapons/misc.dmi'
mob_overlay_icon = 'yogstation/icons/mob/clothing/back.dmi'
icon_state = "sledgehammer"
item_state = "sledgehammer"
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
force = 3 /// The weapon requires two hands
throwforce = 18
throw_range = 3 /// Doesn't throw very far
sharpness = SHARP_NONE
armour_penetration = -20
hitsound = 'sound/weapons/smash.ogg' /// Hitsound when thrown at someone
attack_verb = list("attacked", "hit", "struck", "bludgeoned", "bashed", "smashed")
materials = list(/datum/material/iron=6000)
w_class = WEIGHT_CLASS_HUGE
slot_flags = ITEM_SLOT_BACK
wound_bonus = -15
bare_wound_bonus = 15
/obj/item/melee/sledgehammer/Initialize(mapload)
. = ..()
AddComponent(/datum/component/two_handed, \
force_unwielded = 3, \
force_wielded = 18, \
wield_callback = CALLBACK(src, PROC_REF(on_wield)), \
unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \
require_twohands = TRUE, \
wielded_stats = list(SWING_SPEED = 1.5, ENCUMBRANCE = 0.5, ENCUMBRANCE_TIME = 1 SECONDS, REACH = 1, DAMAGE_LOW = 0, DAMAGE_HIGH = 0), \
)
/obj/item/melee/sledgehammer/proc/on_wield(atom/source, mob/living/user)
hitsound = "swing_hit"
/obj/item/melee/sledgehammer/proc/on_unwield(atom/source, mob/living/user)
hitsound = initial(hitsound)
/obj/item/melee/sledgehammer/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(!HAS_TRAIT(src, TRAIT_WIELDED) && user)
/// This will already do low damage, so it doesn't need to be intercepted earlier
to_chat(user, span_danger("\The [src] is too heavy to attack effectively without being wielded!"))
return
if(!proximity_flag)
return
if(isstructure(target) || ismachinery(target))
if(!QDELETED(target))
var/obj/structure/S = target
if(istype(S, /obj/structure/window)) // Sledgehammer really good at smashing windows. 2-7 hits to kill a window
S.take_damage(S.max_integrity/2, BRUTE, MELEE, FALSE, null, armour_penetration)
else // Sledgehammer can kill airlocks in 17-23 hits, against most other things it's almost as good as a fireaxe
S.take_damage(force*2, BRUTE, MELEE, FALSE, null, armour_penetration)
playsound(src, 'sound/effects/bang.ogg', 50, 1)
/obj/item/melee/sledgehammer/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, quickstart)
. = ..()
if(iscarbon(thrower))
var/mob/living/carbon/C = thrower
C.add_movespeed_modifier(SLEDGEHAMMER_THROWN_STAGGER, update=TRUE, priority=101, multiplicative_slowdown=1)
addtimer(CALLBACK(C, TYPE_PROC_REF(/mob, remove_movespeed_modifier), SLEDGEHAMMER_THROWN_STAGGER), 2 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE)
to_chat(target, span_danger("You are staggered from throwing such a heavy object!"))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB