Skip to content

Commit

Permalink
add + bugfix: тактическая кувалда для СБ + фикс замедления у Гатлинг-…
Browse files Browse the repository at this point in the history
…лазера (#6602)

* квлд

* стйк

* спрайты

* целе

* цере

* крб

* длт

* нова
  • Loading branch information
PlayerUnknown14 authored Feb 25, 2025
1 parent 500941b commit d438626
Show file tree
Hide file tree
Showing 11 changed files with 167 additions and 3 deletions.
4 changes: 3 additions & 1 deletion _maps/map_files/Delta/delta.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -119641,7 +119641,9 @@
/turf/simulated/floor/plating,
/area/maintenance/tourist)
"wCY" = (
/obj/item/twohanded/required/kirbyplants,
/obj/structure/closet/sechammercabinet{
pixel_y = -30
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
Expand Down
11 changes: 10 additions & 1 deletion _maps/map_files/celestation/celestation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -19141,6 +19141,15 @@
icon_state = "brownfull"
},
/area/teleporter/quantum/engi)
"czI" = (
/obj/structure/closet/sechammercabinet{
pixel_x = 30
},
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkred"
},
/area/security/armory)
"czK" = (
/obj/structure/disposalpipe/segment{
dir = 4
Expand Down Expand Up @@ -285669,7 +285678,7 @@ rmd
puS
pus
nxd
iWY
czI
gRJ
pNG
aeM
Expand Down
3 changes: 3 additions & 0 deletions _maps/map_files/cerestation/cerestation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -24905,6 +24905,9 @@
"dlB" = (
/obj/effect/decal/warning_stripes/red/hollow,
/obj/vehicle/ridden/secway,
/obj/structure/closet/sechammercabinet{
pixel_x = 30
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
Expand Down
3 changes: 3 additions & 0 deletions _maps/map_files/cyberiad/cyberiad.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -77064,6 +77064,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/closet/sechammercabinet{
pixel_y = -30
},
/turf/simulated/floor/plasteel{
icon_state = "darkred"
},
Expand Down
3 changes: 3 additions & 0 deletions _maps/map_files/nova/nova.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -45272,6 +45272,9 @@
/area/crew_quarters/chief)
"gxr" = (
/obj/effect/decal/warning_stripes/northwest,
/obj/structure/closet/sechammercabinet{
pixel_x = -30
},
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "darkred"
Expand Down
71 changes: 70 additions & 1 deletion code/game/objects/items/weapons/twohanded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,7 @@
user.visible_message("<span class='danger'>[user] blasts \the [target] with \the [src]!</span>")
playsound(target, 'sound/magic/Disintegrate.ogg', 100, 1)
W.devastate_wall(TRUE)
return 1
return TRUE
..()

/obj/item/twohanded/bamboospear
Expand Down Expand Up @@ -1092,3 +1092,72 @@
used = FALSE
REMOVE_TRAIT(src, TRAIT_NODROP, PYRO_CLAWS_TRAIT)
atom_say("Internal plasma canisters recharged. Gloves sufficiently cooled")


/obj/item/twohanded/sechammer
name = "tactical sledgehammer"
desc = "Тяжёлая кувалда, используемая силовыми структурами Нанотрейзен. Удобная эргономичная рукоятка обеспечивает надёжный хват, а боёк кувалды увеличенной массы позволяет наносить мощные и точные удары, что делает её отличным инструментом для разрушения препятствий и создания брешей в стенах. Хотя конструкция и является слишком неудобной для эффективного использования в качестве оружия, силы удара достаточно, чтобы раздробить любую кость в теле гуманоида."
ru_names = list(
NOMINATIVE = "тактическая кувалда",
GENITIVE = "тактической кувалды",
DATIVE = "тактической кувалде",
ACCUSATIVE = "тактическую кувалду",
INSTRUMENTAL = "тактической кувалдой",
PREPOSITIONAL = "тактической кувалде"
)
gender = FEMALE
icon_state = "sechammer0"
throwforce = 20
throw_range = 2
w_class = WEIGHT_CLASS_BULKY
attack_speed = 16
force_unwielded = 15
force_wielded = 35
armour_penetration = 40
attack_verb = list("атаковал", "ударил", "шибанул", "долбанул", "припечатал")
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
item_flags = SLOWS_WHILE_IN_HAND

var/wall_damage = 35
var/extra_girder_damage = 65
var/extra_door_damage = 25

var/stamina_drain = 8
var/max_stamina_damage = 40

/obj/item/twohanded/sechammer/update_icon_state()
icon_state = "sechammer[HAS_TRAIT(src, TRAIT_WIELDED)]"

/obj/item/twohanded/sechammer/wield(obj/item/source, mob/living/carbon/user)
slowdown = 0.5


/obj/item/twohanded/sechammer/unwield(obj/item/source, mob/living/carbon/user)
slowdown = 0

/obj/item/twohanded/sechammer/pre_attackby(atom/target, mob/living/user, params)
. = ..()
if(user.getStaminaLoss() >= max_stamina_damage)
balloon_alert(user, "вы слишком устали!")
return .|ATTACK_CHAIN_BLOCKED

/obj/item/twohanded/sechammer/afterattack(atom/A, mob/living/user, proximity, params)
if(!proximity || !HAS_TRAIT(src, TRAIT_WIELDED))
return
if(iswallturf(A))
var/turf/simulated/wall/W = A
user.changeNext_move(attack_speed)
user.do_attack_animation(src)
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
W.take_damage(wall_damage)
if(user.getStaminaLoss() < max_stamina_damage)
if(istype(A, /obj/structure/girder))
var/obj/structure/G = A
G.take_damage(extra_girder_damage)
else if(istype(A, /obj/machinery/door))
var/obj/machinery/D = A
D.take_damage(extra_door_damage)
user.adjustStaminaLoss(stamina_drain)
..()
75 changes: 75 additions & 0 deletions code/game/objects/structures/crates_lockers/closets/fireaxe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -272,3 +272,78 @@
olreliable = null
update_icon(UPDATE_OVERLAYS)

/obj/structure/closet/sechammercabinet
name = "tactical sledgehammer cabinet"
desc = "Стойка, предназначенная для хранения тактической кувалды. Надпись гласит: \"Для особых случаев\"."
ru_names = list(
NOMINATIVE = "стойка для тактической кувалды",
GENITIVE = "стойки для тактической кувалды",
DATIVE = "стойке для тактической кувалды",
ACCUSATIVE = "стойку для тактической кувалды",
INSTRUMENTAL = "стойкой для тактической кувалды",
PREPOSITIONAL = "стойке для тактической кувалды"
)
gender = MALE
icon = 'icons/obj/closet.dmi'
icon_state = "sechammer_full"
anchored = TRUE
density = FALSE
no_overlays = TRUE
armor = list(MELEE = 50, BULLET = 20, LASER = 0, ENERGY = 100, BOMB = 10, RAD = 100, FIRE = 90, ACID = 50)
var/obj/item/twohanded/sechammer/sledgehammer
opened = TRUE


/obj/structure/closet/sechammercabinet/Destroy()
if(!obj_integrity)
if(sledgehammer)
sledgehammer.forceMove(loc)
sledgehammer = null
else
QDEL_NULL(sledgehammer)
return ..()


/obj/structure/closet/sechammercabinet/populate_contents()
sledgehammer = new(src)
update_icon_state() // So its initial icon doesn't show it without the fireaxe


/obj/structure/closet/sechammercabinet/attackby(obj/item/I, mob/living/user, params)
if(user.a_intent == INTENT_HARM)
return ..()

if(istype(I, /obj/item/twohanded/sechammer))
var/obj/item/twohanded/sechammer/hammer = I
if(!user.drop_transfer_item_to_loc(hammer, src))
return ..()
balloon_alert(user, "кувалда закреплена")
sledgehammer = hammer
update_icon_state()
return ATTACK_CHAIN_BLOCKED_ALL

return ..()


/obj/structure/closet/sechammercabinet/attack_hand(mob/user)
if(!sledgehammer)
return

add_fingerprint(user)
sledgehammer.forceMove_turf()
user.put_in_hands(sledgehammer, ignore_anim = FALSE)
balloon_alert(user, "кувалда извлечена")
sledgehammer = null
update_icon_state()


/obj/structure/closet/sechammercabinet/blob_act(obj/structure/blob/B)
if(sledgehammer)
sledgehammer.forceMove(loc)
qdel(src)

/obj/structure/closet/sechammercabinet/update_icon_state()
if(sledgehammer)
icon_state = "sechammer_full"
else
icon_state = "sechammer_empty"
Binary file modified icons/mob/inhands/twohanded_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/twohanded_righthand.dmi
Binary file not shown.
Binary file modified icons/obj/closet.dmi
Binary file not shown.
Binary file modified icons/obj/items.dmi
Binary file not shown.

0 comments on commit d438626

Please sign in to comment.