diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index 2939c59b9d2..11ef8f5e9d8 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -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) diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index d067f1cf9bd..72d522aa424 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -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 diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index ff5103473e7..1b9d7abe883 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -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." diff --git a/html/changelogs/ASmallCuteCat - Boxing Ring Expansion.yml b/html/changelogs/ASmallCuteCat - Boxing Ring Expansion.yml new file mode 100644 index 00000000000..6a1c05680ea --- /dev/null +++ b/html/changelogs/ASmallCuteCat - Boxing Ring Expansion.yml @@ -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." diff --git a/maps/sccv_horizon/code/sccv_horizon_holodeck.dm b/maps/sccv_horizon/code/sccv_horizon_holodeck.dm index 2c530d1eb8d..f44870068e2 100644 --- a/maps/sccv_horizon/code/sccv_horizon_holodeck.dm +++ b/maps/sccv_horizon/code/sccv_horizon_holodeck.dm @@ -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", diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index b8771f25487..d757d963926 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -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