An expansion for the boxing ring (not literally, it's still the same size) that adds punching bags and two new types of holodeck swords. (#20715)

Adds two kinds of swords intended for the holodeck. They are less sci-fi
lightsaber than the Thunderdome energy swords, but like the Thunderdome
swords, they only deal pain damage.

You can use these two practice swords on Punching Bags.

Two Punching Bags have been added to the (renamed) boxing ring, for when
you want to warm up or practice alone.

Renamed the Boxing Ring to the Sparring Ring, now that it can
accommodate more than just boxing.
This commit is contained in:
ASmallCuteCat
2025-05-07 09:37:44 -04:00
committed by GitHub
parent af6ef668fa
commit 1b65e5ac2a
6 changed files with 146 additions and 13 deletions
+8 -1
View File
@@ -189,11 +189,18 @@ GLOBAL_LIST_EMPTY_TYPED(holodeck_controls, /obj/machinery/computer/holodeck_cont
item_power_usage = 2500
for(var/obj/item/holo/esword/H in linkedholodeck)
H.damtype = DAMAGE_BRUTE
for(var/obj/item/holo/practicesword/P in linkedholodeck)
P.damtype = DAMAGE_BRUTE
for(var/obj/item/holo/practicesword/holorapier/R in linkedholodeck)
R.damtype = DAMAGE_BRUTE
else
item_power_usage = initial(item_power_usage)
for(var/obj/item/holo/esword/H in linkedholodeck)
H.damtype = initial(H.damtype)
for(var/obj/item/holo/practicesword/P in linkedholodeck)
P.damtype = initial(P.damtype)
for(var/obj/item/holo/practicesword/holorapier/R in linkedholodeck)
R.damtype = initial(R.damtype)
for(var/mob/living/simple_animal/hostile/carp/holodeck/C in holographic_mobs)
C.set_safety(!safety_disabled)
if (last_to_emag)
+38
View File
@@ -313,6 +313,44 @@
add_fingerprint(user)
return
// ASCC holodeck practice sword
/obj/item/holo/practicesword
name = "practice sword"
desc = "A holographic fascimile of a sword, except this one has no sharp points or edges that might cause injury."
icon = 'icons/obj/sword.dmi'
icon_state = "longsword"
item_state = "longsword"
contained_sprite = TRUE
slot_flags = SLOT_BELT|SLOT_BACK
w_class = WEIGHT_CLASS_BULKY
atom_flags = ATOM_FLAG_NO_BLOOD
force = 1
throw_speed = 1
throw_range = 3
hitsound = 'sound/weapons/bladeslice.ogg'
can_embed = 0
drop_sound = 'sound/items/drop/sword.ogg'
pickup_sound = /singleton/sound_category/sword_pickup_sound
equip_sound = /singleton/sound_category/sword_equip_sound
/obj/item/holo/practicesword/holorapier
name = "fencing rapier"
desc = "A light sword with a cupped hilt which protects the hand, and a very thin blade that ends in a fine point. This one is but a hologram, unable to inflict actual wounds. Hopefully."
icon = 'icons/obj/sword.dmi'
icon_state = "rapier"
item_state = "rapier"
slot_flags = SLOT_BELT
/obj/item/holo/practicesword/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(default_parry_check(user, attacker, damage_source) && prob(50))
user.visible_message(SPAN_DANGER("\The [user] parries [attack_text] with \the [src]!"))
playsound(user.loc, 'sound/weapons/bladeparry.ogg', 50, 1)
return BULLET_ACT_BLOCK
return BULLET_ACT_HIT
// end
//BASKETBALL OBJECTS