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
+6
View File
@@ -1360,6 +1360,12 @@ GLOBAL_LIST_INIT_TYPED(total_extraction_beacons, /obj/structure/extraction_point
flick("[icon_state]2", src)
playsound(get_turf(src), /singleton/sound_category/swing_hit_sound, 25, 1, -1)
/obj/structure/punching_bag/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/holo/practicesword))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
flick("[icon_state]2", src)
playsound(get_turf(src), 'sound/weapons/bladeparry.ogg', 25, 1, -1)
/obj/structure/weightlifter
name = "weight machine"
desc = "Just looking at this thing makes you feel tired."
@@ -0,0 +1,60 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: ASmallCuteCat
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added two new holodeck items, the Practice Sword and the Fencing Rapier. Renamed the Boxing Ring holodeck setting to Sparring Ring, where the new items can be found."
- rscadd: "Added interactions for the Practice Sword and Fencing Rapier to the Punching Bag."
- rscadd: "Added two Punching Bags to the Sparring Ring."
@@ -104,7 +104,7 @@
"Basketball Court" = "basketball",
"Animal Cafe" = "animal_cafe",
"Thunderdome Court" = "thunderdomecourt",
"Boxing Ring" = "boxingcourt",
"Sparring Ring" = "boxingcourt",
"Silversun Coast" = "beach",
"Desert" = "desert",
"Space" = "space",
+33 -11
View File
@@ -6550,6 +6550,10 @@
},
/turf/simulated/floor/tiled,
/area/operations/office)
"aTM" = (
/obj/structure/punching_bag,
/turf/simulated/floor/holofloor/tiled,
/area/horizon/holodeck/source_boxingcourt)
"aTP" = (
/obj/machinery/atmospherics/pipe/simple/visible/purple,
/turf/simulated/wall/shuttle/scc_space_ship/cardinal,
@@ -7815,10 +7819,6 @@
},
/turf/space/dynamic,
/area/horizon/exterior)
"bca" = (
/obj/random/pottedplant,
/turf/simulated/floor/holofloor/tiled,
/area/horizon/holodeck/source_boxingcourt)
"bcb" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/simulated/floor/tiled/dark,
@@ -31464,6 +31464,13 @@
},
/turf/unsimulated/floor,
/area/antag/raider)
"ewP" = (
/obj/structure/table/holotable,
/obj/item/clothing/gloves/boxing/hologlove,
/obj/item/clothing/gloves/boxing/hologlove,
/obj/item/clothing/gloves/boxing/hologlove,
/turf/simulated/floor/holofloor/tiled,
/area/horizon/holodeck/source_boxingcourt)
"ewY" = (
/obj/structure/sign/greencross,
/obj/machinery/door/blast/shutters{
@@ -91508,7 +91515,8 @@
/area/engineering/engine_room)
"nhI" = (
/obj/structure/table/holotable,
/obj/item/clothing/gloves/boxing/hologlove,
/obj/item/holo/practicesword,
/obj/item/holo/practicesword,
/turf/simulated/floor/holofloor/tiled,
/area/horizon/holodeck/source_boxingcourt)
"nhL" = (
@@ -127935,6 +127943,14 @@
/area/antag/jockey)
"syg" = (
/obj/structure/table/holotable,
/obj/item/clothing/gloves/boxing/hologlove{
icon_state = "boxinggreen";
item_state = "boxinggreen"
},
/obj/item/clothing/gloves/boxing/hologlove{
icon_state = "boxinggreen";
item_state = "boxinggreen"
},
/obj/item/clothing/gloves/boxing/hologlove{
icon_state = "boxinggreen";
item_state = "boxinggreen"
@@ -130661,6 +130677,12 @@
/obj/structure/platform/ledge,
/turf/simulated/open,
/area/operations/office)
"sTi" = (
/obj/structure/table/holotable,
/obj/item/holo/practicesword/holorapier,
/obj/item/holo/practicesword/holorapier,
/turf/simulated/floor/holofloor/tiled,
/area/horizon/holodeck/source_boxingcourt)
"sTj" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 1
@@ -402698,13 +402720,13 @@ ptz
ptz
mfO
oeZ
ewP
nhI
nhI
bca
ocC
ocC
sTi
ocC
aTM
ocC
aTM
oeZ
sbm
muE
@@ -405529,8 +405551,8 @@ ocC
ocC
ocC
ocC
bca
syg
sTi
nhI
syg
oeZ
rGQ