From 3717b9040b5b8ca2e8e605bc9d87f1f5d0bdbb42 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Thu, 23 Jan 2025 17:38:33 +1100 Subject: [PATCH] Added blacksmithy. --- maps/modpack_testing/modpack_testing.dm | 1 + maps/shaded_hills/shaded_hills-inn.dmm | 122 ++++++++-- maps/shaded_hills/shaded_hills-woods.dmm | 2 +- maps/shaded_hills/shaded_hills.dm | 1 + mods/content/blacksmithy/_blacksmithy.dm | 3 + mods/content/blacksmithy/_blacksmithy.dme | 19 ++ mods/content/blacksmithy/anvil.dm | 134 +++++++++++ mods/content/blacksmithy/billet.dm | 208 ++++++++++++++++++ mods/content/blacksmithy/boulder.dm | 23 ++ mods/content/blacksmithy/forge_fire.dm | 82 +++++++ mods/content/blacksmithy/forging_step.dm | 100 +++++++++ .../content/blacksmithy/forging_step_armor.dm | 37 ++++ .../blacksmithy/forging_step_billets.dm | 47 ++++ .../blacksmithy/forging_step_blades.dm | 59 +++++ .../blacksmithy/forging_step_components.dm | 15 ++ .../blacksmithy/forging_step_ornate.dm | 22 ++ .../content/blacksmithy/forging_step_tools.dm | 56 +++++ mods/content/blacksmithy/forging_types.dm | 41 ++++ mods/content/blacksmithy/icons/anvil.dmi | Bin 0 -> 558 bytes .../content/blacksmithy/icons/anvil_crude.dmi | Bin 0 -> 640 bytes .../blacksmithy/icons/anvil_crude_alt.dmi | Bin 0 -> 647 bytes .../blacksmithy/icons/anvil_improvised.dmi | Bin 0 -> 674 bytes mods/content/blacksmithy/icons/billet.dmi | Bin 0 -> 891 bytes mods/content/blacksmithy/icons/forge.dmi | Bin 0 -> 8551 bytes mods/content/blacksmithy/icons/tongs.dmi | Bin 0 -> 715 bytes mods/content/blacksmithy/tongs.dm | 32 +++ .../submaps/woods/bear_den/bear_den.dmm | 2 +- .../woods/chemistry_shack/chemistry_shack.dmm | 2 +- .../submaps/woods/hunter_camp/hunter_camp.dmm | 2 +- .../submaps/woods/old_cabin/old_cabin.dmm | 2 +- .../suspicious_cabin/suspicious_cabin.dmm | 2 +- mods/~compatibility/patches/fantasy.dm | 4 + .../patches/fantasy/forging_fantasy.dm | 2 + sound/effects/anvil1.ogg | Bin 0 -> 14190 bytes sound/effects/anvil2.ogg | Bin 0 -> 15947 bytes sound/effects/anvil3.ogg | Bin 0 -> 16630 bytes sound/effects/anvil4.ogg | Bin 0 -> 16206 bytes sound/effects/anvil5.ogg | Bin 0 -> 16458 bytes 38 files changed, 993 insertions(+), 27 deletions(-) create mode 100644 mods/content/blacksmithy/_blacksmithy.dm create mode 100644 mods/content/blacksmithy/_blacksmithy.dme create mode 100644 mods/content/blacksmithy/anvil.dm create mode 100644 mods/content/blacksmithy/billet.dm create mode 100644 mods/content/blacksmithy/boulder.dm create mode 100644 mods/content/blacksmithy/forge_fire.dm create mode 100644 mods/content/blacksmithy/forging_step.dm create mode 100644 mods/content/blacksmithy/forging_step_armor.dm create mode 100644 mods/content/blacksmithy/forging_step_billets.dm create mode 100644 mods/content/blacksmithy/forging_step_blades.dm create mode 100644 mods/content/blacksmithy/forging_step_components.dm create mode 100644 mods/content/blacksmithy/forging_step_ornate.dm create mode 100644 mods/content/blacksmithy/forging_step_tools.dm create mode 100644 mods/content/blacksmithy/forging_types.dm create mode 100644 mods/content/blacksmithy/icons/anvil.dmi create mode 100644 mods/content/blacksmithy/icons/anvil_crude.dmi create mode 100644 mods/content/blacksmithy/icons/anvil_crude_alt.dmi create mode 100644 mods/content/blacksmithy/icons/anvil_improvised.dmi create mode 100644 mods/content/blacksmithy/icons/billet.dmi create mode 100644 mods/content/blacksmithy/icons/forge.dmi create mode 100644 mods/content/blacksmithy/icons/tongs.dmi create mode 100644 mods/content/blacksmithy/tongs.dm create mode 100644 mods/~compatibility/patches/fantasy/forging_fantasy.dm create mode 100644 sound/effects/anvil1.ogg create mode 100644 sound/effects/anvil2.ogg create mode 100644 sound/effects/anvil3.ogg create mode 100644 sound/effects/anvil4.ogg create mode 100644 sound/effects/anvil5.ogg diff --git a/maps/modpack_testing/modpack_testing.dm b/maps/modpack_testing/modpack_testing.dm index 33b776920fb..6042deec053 100644 --- a/maps/modpack_testing/modpack_testing.dm +++ b/maps/modpack_testing/modpack_testing.dm @@ -24,6 +24,7 @@ #include "../../mods/content/shackles/_shackles.dme" #include "../../mods/content/supermatter/_supermatter.dme" #include "../../mods/content/xenobiology/_xenobiology.dme" + #include "../../mods/content/blacksmithy/_blacksmithy.dme" #include "../../mods/content/item_sharpening/_item_sharpening.dme" #include "../../mods/gamemodes/cult/_cult.dme" diff --git a/maps/shaded_hills/shaded_hills-inn.dmm b/maps/shaded_hills/shaded_hills-inn.dmm index 7dc097ab79b..0213b0de86c 100644 --- a/maps/shaded_hills/shaded_hills-inn.dmm +++ b/maps/shaded_hills/shaded_hills-inn.dmm @@ -148,6 +148,10 @@ /obj/structure/cask_rack/large/mapped, /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn/kitchen) +"fM" = ( +/obj/structure/working/bellows, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "fR" = ( /turf/floor/wood/rough/walnut, /area/shaded_hills/storehouse) @@ -214,6 +218,10 @@ }, /turf/floor/wood/rough/walnut, /area/shaded_hills/farmhouse) +"gJ" = ( +/mob/living/simple_animal/passive/horse/small, +/turf/floor/straw, +/area/shaded_hills/stable) "gL" = ( /obj/structure/reagent_dispensers/barrel/ebony/oil, /turf/floor/path/herringbone/basalt, @@ -232,6 +240,10 @@ "gU" = ( /turf/wall/brick/basalt, /area/shaded_hills/inn/kitchen) +"gW" = ( +/obj/structure/closet/crate/chest/ebony, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) "hb" = ( /obj/structure/wall_sconce/lantern{ dir = 4; @@ -446,6 +458,10 @@ /obj/item/shears, /turf/floor/wood/rough/walnut, /area/shaded_hills/farmhouse) +"mD" = ( +/obj/structure/bed/chair/rustic, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) "mG" = ( /obj/structure/railing/mapped/wooden/walnut{ dir = 4 @@ -677,6 +693,10 @@ /obj/abstract/landmark/organize/horizontal, /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn/kitchen) +"tH" = ( +/obj/structure/reagent_dispensers/barrel/ebony/wine, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) "tS" = ( /obj/structure/railing/mapped/wooden/walnut{ dir = 8 @@ -771,6 +791,21 @@ /obj/structure/closet/crate/chest/ebony, /turf/floor/path/basalt, /area/shaded_hills/general_store) +"wp" = ( +/obj/structure/wall_sconce/lantern{ + dir = 4 + }, +/obj/structure/bed/chair/rustic{ + dir = 1 + }, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) +"xa" = ( +/obj/item/stack/material/bar/mapped/iron/thirty, +/obj/structure/table/wood/reinforced/ebony, +/obj/item/tongs, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "xh" = ( /obj/structure/table/wood/ebony, /obj/item/chems/condiment/large/salt, @@ -785,6 +820,10 @@ "xH" = ( /turf/wall/brick/basalt, /area/shaded_hills/slaughterhouse) +"xI" = ( +/obj/structure/fire_source/forge, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "xJ" = ( /obj/structure/table/desk/dresser/ebony, /turf/floor/carpet/rustic, @@ -893,6 +932,9 @@ /obj/structure/wall_sconce/lantern, /turf/floor/wood/rough/walnut, /area/shaded_hills/shrine/kitchen) +"At" = ( +/turf/wall/log/walnut/shutter/open, +/area/shaded_hills/stable) "Aw" = ( /obj/structure/railing/mapped/wooden/walnut{ dir = 4 @@ -922,6 +964,10 @@ /obj/item/bag/sack, /turf/floor/wood/rough/walnut, /area/shaded_hills/farmhouse) +"AS" = ( +/mob/living/simple_animal/passive/horse, +/turf/floor/straw, +/area/shaded_hills/stable) "AW" = ( /obj/structure/railing/mapped/wooden/walnut, /obj/structure/flora/bush/brflowers, @@ -1186,6 +1232,10 @@ /obj/item/chems/glass/handmade/jar, /turf/floor/path/herringbone/basalt, /area/shaded_hills/shrine/kitchen) +"HM" = ( +/obj/structure/reagent_dispensers/barrel/ebony/water, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "HP" = ( /obj/structure/table/end/alt, /obj/item/flame/candle/handmade{ @@ -1283,6 +1333,12 @@ /obj/structure/wall_sconce/lantern, /turf/floor/path/herringbone/basalt, /area/shaded_hills/shrine) +"JS" = ( +/obj/structure/bed/chair/rustic{ + dir = 1 + }, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) "JU" = ( /obj/structure/railing/mapped/wooden/walnut, /turf/floor/wood/rough/walnut, @@ -1326,6 +1382,13 @@ }, /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn) +"LA" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/brick/mapped/graphite/forty, +/obj/item/rock/flint/striker, +/obj/item/bladed/knife/iron, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "LH" = ( /obj/structure/table/wood/ebony, /obj/item/chems/glass/bucket/wood, @@ -1419,6 +1482,10 @@ "Pa" = ( /turf/floor/path/running_bond/basalt, /area/shaded_hills/outside/downlands/poi) +"Pb" = ( +/obj/structure/closet/cabinet/wooden/ebony, +/turf/floor/wood/rough/walnut, +/area/shaded_hills/stable) "Pd" = ( /turf/floor/carpet/rustic, /area/shaded_hills/farmhouse) @@ -1450,6 +1517,10 @@ /obj/structure/reagent_dispensers/barrel/ebony/oil, /turf/floor/wood/rough/walnut, /area/shaded_hills/storehouse) +"Qa" = ( +/obj/structure/reagent_dispensers/barrel/ebony/oil, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "Qb" = ( /turf/floor/carpet, /area/shaded_hills/inn) @@ -1502,6 +1573,11 @@ /obj/abstract/landmark/start/shaded_hills/innkeeper, /turf/floor/wood/walnut, /area/shaded_hills/inn) +"Rk" = ( +/obj/structure/anvil, +/obj/item/tool/hammer/forge/iron, +/turf/floor/path/basalt, +/area/shaded_hills/stable) "Rl" = ( /turf/floor/mud, /area/shaded_hills/outside/downlands) @@ -1818,6 +1894,10 @@ /obj/machinery/portable_atmospherics/hydroponics/soil, /turf/floor/mud, /area/shaded_hills/outside/shrine) +"ZC" = ( +/obj/structure/table/wood/ebony, +/turf/floor/wood/walnut, +/area/shaded_hills/stable) "ZD" = ( /obj/abstract/landmark/start/shaded_hills/bartender, /turf/floor/path/herringbone/basalt, @@ -13138,7 +13218,7 @@ nn nn nn nn -nn +At nn nn nn @@ -13287,19 +13367,19 @@ TR nn jA HP -js +Pb nn -js -js -js +mD +ZC +JS js nn +LA Ak Ak Ak Ak -Ak -Ak +HM nn TR TR @@ -13448,10 +13528,10 @@ js kE Ak Ak +fM Ak Ak -Ak -Ak +Qa nn aU TR @@ -13590,20 +13670,20 @@ TR TR nn bu -jf +wp js nn js jf -js -js +tH +gW nn Ak Ak +xI Ak Ak -Ak -Ak +xa HE KG EV @@ -13752,7 +13832,7 @@ nn nn Ak Ak -Ak +Rk Ak Ak Ak @@ -14198,19 +14278,19 @@ HI TR nn Wk -PA +Wk Wk nn Wk -PA +Wk Wk nn Wk -PA +Wk Wk nn Wk -PA +Wk Wk nn aU @@ -14350,7 +14430,7 @@ HI TR nn PA -PA +AS PA nn PA @@ -14358,7 +14438,7 @@ PA PA nn PA -PA +gJ PA nn PA diff --git a/maps/shaded_hills/shaded_hills-woods.dmm b/maps/shaded_hills/shaded_hills-woods.dmm index 06a9695d634..854c4bb10df 100644 --- a/maps/shaded_hills/shaded_hills-woods.dmm +++ b/maps/shaded_hills/shaded_hills-woods.dmm @@ -8,7 +8,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/outside/woods) "cN" = ( -/obj/item/bladed/knife, +/obj/item/bladed/knife/iron, /turf/floor/wood/rough/walnut, /area/shaded_hills/forester_hut) "dp" = ( diff --git a/maps/shaded_hills/shaded_hills.dm b/maps/shaded_hills/shaded_hills.dm index ae5cb32e946..0d7f2b5f770 100644 --- a/maps/shaded_hills/shaded_hills.dm +++ b/maps/shaded_hills/shaded_hills.dm @@ -7,6 +7,7 @@ #include "../../mods/species/drakes/_drakes.dme" // include before _fantasy.dme so overrides work #include "../../mods/content/item_sharpening/_item_sharpening.dme" #include "../../mods/content/fantasy/_fantasy.dme" + #include "../../mods/content/blacksmithy/_blacksmithy.dme" #include "areas/_areas.dm" #include "areas/downlands.dm" diff --git a/mods/content/blacksmithy/_blacksmithy.dm b/mods/content/blacksmithy/_blacksmithy.dm new file mode 100644 index 00000000000..978dbebe0d6 --- /dev/null +++ b/mods/content/blacksmithy/_blacksmithy.dm @@ -0,0 +1,3 @@ +/decl/modpack/blacksmithy + name = "Blacksmithy" + diff --git a/mods/content/blacksmithy/_blacksmithy.dme b/mods/content/blacksmithy/_blacksmithy.dme new file mode 100644 index 00000000000..3421d65d10f --- /dev/null +++ b/mods/content/blacksmithy/_blacksmithy.dme @@ -0,0 +1,19 @@ +#ifndef MODPACK_BLACKSMITHY +#define MODPACK_BLACKSMITHY +// BEGIN_INCLUDE +#include "_blacksmithy.dm" +#include "anvil.dm" +#include "billet.dm" +#include "boulder.dm" +#include "forge_fire.dm" +#include "forging_step.dm" +#include "forging_step_armor.dm" +#include "forging_step_billets.dm" +#include "forging_step_blades.dm" +#include "forging_step_components.dm" +#include "forging_step_ornate.dm" +#include "forging_step_tools.dm" +#include "forging_types.dm" +#include "tongs.dm" +// END_INCLUDE +#endif diff --git a/mods/content/blacksmithy/anvil.dm b/mods/content/blacksmithy/anvil.dm new file mode 100644 index 00000000000..0968a7806ce --- /dev/null +++ b/mods/content/blacksmithy/anvil.dm @@ -0,0 +1,134 @@ +// Cut up from https://freesound.org/people/MrAuralization/sounds/274846/ (Avil, MrAuralization) (CC-BY-4) +/datum/composite_sound/anvil_strike + mid_sounds = list( + 'sound/effects/anvil1.ogg', + 'sound/effects/anvil2.ogg', + 'sound/effects/anvil3.ogg', + 'sound/effects/anvil4.ogg', + 'sound/effects/anvil5.ogg', + ) + mid_length = 1.5 SECONDS + var/mob/user + +/datum/composite_sound/anvil_strike/Destroy() + user = null + return ..() + +// This is a bit evil, but it should be cleaner than trying to run a second timing loop for the hammer strikes. +/datum/composite_sound/anvil_strike/play(soundfile) + . = ..() + for(var/obj/structure/anvil/anvil in output_atoms) + if(user) + user.do_attack_animation(anvil, user.get_active_held_item()) + anvil.shake_animation() + for(var/obj/item/thing in anvil.loc?.get_contained_external_atoms()) + thing.shake_animation() + spark_at(get_turf(anvil), amount = 1, spark_type = /datum/effect/effect/system/spark_spread/silent) + +/obj/structure/anvil + name = "anvil" + desc = "A heavy block of material used as support for hammering things into shape." + icon = 'mods/content/blacksmithy/icons/anvil.dmi' + icon_state = ICON_STATE_WORLD + anchored = TRUE + density = TRUE + opacity = FALSE + atom_flags = ATOM_FLAG_CLIMBABLE + w_class = ITEM_SIZE_STRUCTURE //_LARGE + material = /decl/material/solid/metal/iron + max_health = 1000 + structure_flags = STRUCTURE_FLAG_SURFACE + material_alteration = MAT_FLAG_ALTERATION_ALL + hitsound = 'sound/effects/anvil1.ogg' + var/datum/composite_sound/anvil_strike/clang + +/obj/structure/anvil/Initialize() + . = ..() + clang = new(list(src), FALSE) + +/obj/structure/anvil/Destroy() + QDEL_NULL(clang) + return ..() + +/obj/structure/anvil/proc/start_working(mob/user) + if(clang) + clang.user = user + if(!clang.started) + clang.start() + +/obj/structure/anvil/proc/stop_working() + if(clang) + clang.user = null + if(clang.started) + clang.stop() + +/obj/structure/anvil/on_update_icon() + . = ..() + icon_state = initial(icon_state) + switch(get_health_percent()) + if(0 to 0.35) + icon_state = "[icon_state]-damage-heavy" + if(0.35 to 0.65) + icon_state = "[icon_state]-damage-light" + +/obj/structure/anvil/attackby(obj/item/used_item, mob/user, click_params) + + // Put the bar from tongs onto the anvil. + if(istype(used_item, /obj/item/tongs)) + var/obj/item/tongs/tongs = used_item + if(tongs.holding_bar) + used_item = tongs.holding_bar + tongs.holding_bar.dropInto(loc) + // Flow through into procs below. + + // Put the bar onto the anvil (need to do this to avoid repairs in ..()) + if(istype(used_item, /obj/item/stack/material/bar)) + var/obj/item/stack/material/bar/bar = used_item + if(used_item.material != material || current_health >= get_max_health()) + if(bar.get_amount() > 1) + bar = bar.split(1) + if(bar.loc == user) + if(!user.try_unequip(bar, get_turf(src))) + return TRUE + else + bar.dropInto(get_turf(src)) + qdel(bar) + used_item = new /obj/item/billet(loc, used_item.material?.type) + // Flow through to billet placement below. + + // Place things onto the anvil. + if(!user.check_intent(I_FLAG_HARM) && (istype(used_item, /obj/item/tool/hammer/forge) || istype(used_item, /obj/item/tongs) || istype(used_item, /obj/item/billet))) + if(used_item.loc == user) + if(!user.try_unequip(used_item, get_turf(src))) + return TRUE + else + used_item.dropInto(get_turf(src)) + auto_align(used_item, click_params) + return TRUE + + . = ..() + +// Chipped out of a boulder with a pick. +/obj/structure/anvil/boulder + name_prefix = "crude" + icon = 'mods/content/blacksmithy/icons/anvil_crude.dmi' + desc = "A crude anvil chipped out of a chunk of stone. It probably won't last very long." + material = /decl/material/solid/stone/granite + max_health = 500 + +/obj/structure/anvil/boulder/Initialize(ml, _mat, _reinf_mat) + . = ..() + if(prob(50)) + set_icon('mods/content/blacksmithy/icons/anvil_crude_alt.dmi') + +// Improvised with spaceman materials. +/obj/structure/anvil/improvised + name_prefix = "improvised" + icon = 'mods/content/blacksmithy/icons/anvil_improvised.dmi' + desc = "A anvil roughly improvised out of scrap metal. It probably won't last very long." + material = /decl/material/solid/metal/steel + max_health = 500 + +/decl/stack_recipe/steel/furniture + result_type = /obj/structure/anvil/improvised + difficulty = MAT_VALUE_HARD_DIY diff --git a/mods/content/blacksmithy/billet.dm b/mods/content/blacksmithy/billet.dm new file mode 100644 index 00000000000..ac67f93bc68 --- /dev/null +++ b/mods/content/blacksmithy/billet.dm @@ -0,0 +1,208 @@ +// Turning billets back into bars. +/obj/item/stack/material/bar/attackby(obj/item/used_item, mob/user) + if(istype(used_item, /obj/item/billet) && used_item.material == material && !reinf_material) + var/obj/item/billet/billet = used_item + if(billet.current_forging_step && billet.current_forging_step.type != /decl/forging_step/billet) + to_chat(user, SPAN_WARNING("\The [used_item] will need to be melted down and recast before you can reuse it as a bar.")) + return TRUE + if(!user.try_unequip(used_item, loc)) + return TRUE + if(get_amount() >= get_max_amount()) + return TRUE + add(1) + qdel(used_item) + return TRUE + . = ..() + +/obj/item/proc/hot_enough_to_forge(melting_point_percent = 0.25) + if(!istype(material) || isnull(material.melting_point) || !material.forgable) + return FALSE + // Defaults to >25% of the way to melting to be considered 'forgable' + return temperature >= ((material.melting_point - T20C) * melting_point_percent) + T20C + +/obj/item/billet + name = "billet" + desc = "An unworked or partially-worked length of metal used to forge items and tools." + icon = 'mods/content/blacksmithy/icons/billet.dmi' + icon_state = ICON_STATE_WORLD + material = /decl/material/solid/metal/iron + material_alteration = MAT_FLAG_ALTERATION_ALL + var/decl/forging_step/current_forging_step = /decl/forging_step/billet + +/obj/item/billet/Initialize(ml, material_key) + if(ispath(current_forging_step)) + set_forging_step(current_forging_step, force = TRUE) + . = ..() + +/obj/item/billet/proc/set_forging_step(decl/forging_step/new_step, force) + if(ispath(new_step)) + new_step = GET_DECL(new_step) + if(!istype(new_step) || (!force && current_forging_step == new_step)) + return FALSE + current_forging_step = new_step + . = current_forging_step.apply_to(src) + if(!QDELETED(src)) + update_name() + update_icon() + update_heat_glow(anim_time = 0) // reset heat color to avoid weird visual jitter + +/obj/item/billet/attackby(obj/item/used_item, mob/user) + + // Merging billets back into bars. + if(istype(used_item, /obj/item/billet) && material == used_item.material) + if(current_forging_step && current_forging_step.type != /decl/forging_step/billet) + to_chat(user, SPAN_WARNING("\The [src] will need to be melted down and recast before you can reuse it as a bar.")) + return TRUE + var/obj/item/billet/billet = used_item + if(billet.current_forging_step && billet.current_forging_step.type != /decl/forging_step/billet) + to_chat(user, SPAN_WARNING("\The [billet] will need to be melted down and recast before you can reuse it as a bar.")) + return TRUE + if(user.try_unequip(used_item, loc)) + var/obj/item/stack/material/bar/bars = new(loc, 2, material.type) + bars.dropInto(loc) + qdel(used_item) + qdel(src) + return TRUE + + // Picking up in tongs. + if(istype(used_item, /obj/item/tongs)) + var/obj/item/tongs/tongs = used_item + if(tongs.holding_bar) + return ..() + var/mob/holder = loc + if(istype(holder)) + if(!holder.try_unequip(src, tongs)) + return TRUE + else if(loc?.storage) + if(!loc.storage.remove_from_storage(user, src, tongs)) + return TRUE + else + forceMove(tongs) + if(loc == tongs) + tongs.holding_bar = src + tongs.update_icon() + return TRUE + + if(!istype(used_item, /obj/item/tool/hammer/forge) || user.check_intent(I_FLAG_HARM)) + return ..() + + // Check for surface. + var/obj/structure/anvil/anvil = locate() in loc + if(!istype(anvil)) + to_chat(user, SPAN_WARNING("\The [src] can only be worked on an anvil.")) + return TRUE + + // Check for heat. + if(!hot_enough_to_forge()) + to_chat(user, SPAN_WARNING("\The [src] is too cold to be worked on the anvil.")) + return TRUE + + // Sanity check. + if(!length(current_forging_step?.steps)) // how tho + to_chat(user, SPAN_WARNING("You cannot see any further way to refine \the [src].")) + return TRUE + + // Handle the actual forging process. + var/last_step = current_forging_step + var/decl/forging_step/next_step = show_radial_menu(user, src, current_forging_step.get_radial_choices(), radius = 42, use_labels = RADIAL_LABELS_CENTERED, require_near = TRUE, check_locs = list(src)) + + if(!standard_forging_checks(user, used_item, last_step, next_step, anvil)) + return TRUE + + if(user.get_stamina() < 10) + to_chat(user, SPAN_WARNING("You are too exhausted to swing \the [used_item].")) + return TRUE + + user.adjust_stamina(-10) + anvil.start_working(user) + + // Skill checks! + if(!user.do_skilled(3 SECONDS, next_step.work_skill, anvil)) + anvil?.stop_working() + return TRUE + + if(!istype(next_step) || (next_step.skill_fail_prob && user.skill_fail_prob(next_step.work_skill, next_step.skill_fail_prob, next_step.skill_level, next_step.skill_factor))) + to_chat(user, SPAN_WARNING("You fumble the work and fail to reshape \the [src].")) + anvil?.stop_working() + return TRUE + + // Since we have a sleep() above, we recheck our basic conditions. + if(!standard_forging_checks(user, used_item, last_step, next_step, anvil)) + anvil?.stop_working() + return TRUE + + if(user.get_stamina() < 10) + to_chat(user, SPAN_WARNING("You are too exhausted to keep swinging \the [used_item].")) + anvil?.stop_working() + return TRUE + + user.adjust_stamina(-10) + + // Update the billet (which may produce an item!) + var/obj/item/forged_thing = set_forging_step(next_step) + if(istype(forged_thing)) + user.visible_message(SPAN_NOTICE("\The [user] has [next_step.work_verb] the billet into \a [forged_thing].")) + // Forging gradually degrades anvils. + if(!QDELETED(anvil)) + anvil.stop_working() + anvil.take_damage(rand(10, 20), BRUTE, silent = TRUE) // We are already going CLANG CLANG CLANG, don't need a THUNK + return TRUE + +/obj/item/billet/examine(mob/user, distance, infix, suffix) + . = ..() + for(var/decl/forging_step/next_step in current_forging_step?.steps) + if(user.skill_check(next_step.work_skill, next_step.skill_level)) + to_chat(user, SPAN_INFO("It can be [next_step.work_verb] into \a [next_step.get_product_name(material)] on an anvil.")) + +/obj/item/billet/proc/standard_forging_checks(mob/user, obj/item/used_item, decl/forging_step/last_step, decl/forging_step/next_step, obj/structure/anvil/anvil) + // We cancelled or changed state, abort. + if(!next_step || current_forging_step != last_step || !(next_step in current_forging_step.steps)) + return FALSE + // Something has been destroyed since we started forging. + if(QDELETED(src) || QDELETED(used_item) || QDELETED(anvil) || QDELETED(user)) + return FALSE + // Something else has changed, very unfortunate. + if(loc != anvil.loc || !CanPhysicallyInteract(user) || user.get_active_held_item() != used_item) + return FALSE + return hot_enough_to_forge() + +/obj/item/billet/on_update_icon() + . = ..() + if(!istype(current_forging_step)) + return + if(current_forging_step.billet_icon) + set_icon(current_forging_step.billet_icon) + else + set_icon(initial(icon)) + icon_state = get_world_inventory_state() + if(current_forging_step.billet_icon_state) + icon_state = "[icon_state]-[current_forging_step.billet_icon_state]" + +/obj/item/billet/get_world_inventory_state() + if(!current_forging_step?.billet_icon_state) + return ..() + if(!check_state_in_icon("[ICON_STATE_INV]-[current_forging_step.billet_icon_state]", icon)) + return ICON_STATE_WORLD + return ..() + +/obj/item/billet/update_name() + if(!istype(current_forging_step)) + base_name = initial(base_name) + name_prefix = initial(name_prefix) + desc = initial(desc) + return ..() + base_name = current_forging_step.billet_name + name_prefix = current_forging_step.billet_name_prefix + . = ..() + desc = current_forging_step.billet_desc + if(istype(material)) + desc = "[desc] This one is made of [material.solid_name]." + +/obj/item/billet/ProcessAtomTemperature() + . = ..() + update_heat_glow() + +// Arbitrary value to give people enough time to forge the bloody thing. +/obj/item/billet/get_thermal_mass_coefficient(delta) + // Only delay cooling if we're over our forging point. + return delta < 0 && hot_enough_to_forge() ? 0.01 : ..() diff --git a/mods/content/blacksmithy/boulder.dm b/mods/content/blacksmithy/boulder.dm new file mode 100644 index 00000000000..73ce542cf98 --- /dev/null +++ b/mods/content/blacksmithy/boulder.dm @@ -0,0 +1,23 @@ +/obj/structure/boulder/get_alt_interactions(mob/user) + . = ..() + LAZYADD(., /decl/interaction_handler/chip_anvil) + +/decl/interaction_handler/chip_anvil + name = "Chip Into Anvil" + expected_target_type = /obj/structure/boulder + var/work_skill = SKILL_CONSTRUCTION + +/decl/interaction_handler/chip_anvil/is_possible(atom/target, mob/user, obj/item/prop) + . = ..() && istype(prop) && IS_PICK(prop) && prop.material?.hardness >= target.get_material()?.hardness && user.skill_check(work_skill, SKILL_BASIC) + +/decl/interaction_handler/chip_anvil/invoked(atom/target, mob/user, obj/item/prop) + user.visible_message(SPAN_NOTICE("\The [user] begins chipping \the [target] into a rough anvil using \the [prop].")) + if(!user.do_skilled(10 SECONDS, work_skill, target)) + return FALSE + if(QDELETED(user) || QDELETED(target) || QDELETED(prop) || user.get_active_held_item() != prop || !CanPhysicallyInteractWith(user, target)) + return FALSE + if(!is_possible(target, user, prop)) + return FALSE + user.visible_message(SPAN_NOTICE("\The [user] chips \the [target] into a rough anvil using \the [prop].")) + new /obj/structure/anvil/boulder(get_turf(target), target.get_material()?.type) + return TRUE diff --git a/mods/content/blacksmithy/forge_fire.dm b/mods/content/blacksmithy/forge_fire.dm new file mode 100644 index 00000000000..437c9cd1c1c --- /dev/null +++ b/mods/content/blacksmithy/forge_fire.dm @@ -0,0 +1,82 @@ +/datum/storage/forge + can_hold = list( + /obj/item/stack/material/bar, + /obj/item/billet + ) + max_storage_space = ITEM_SIZE_NORMAL * 10 // Fairly spacious + max_w_class = ITEM_SIZE_LARGE + +/datum/storage/forge/consolidate_stacks() + return // We want to keep them as single bars. + +/obj/structure/fire_source/forge + name = "forge fire" + desc = "A sturdy hearth used to heat metal bars for forging on an anvil." + density = TRUE + icon = 'mods/content/blacksmithy/icons/forge.dmi' + icon_state = "forge" + storage = /datum/storage/forge + +/obj/structure/fire_source/forge/proc/get_forgable_contents() + . = list() + for(var/obj/item/thing in get_stored_inventory()) + if(thing.material?.forgable && (istype(thing, /obj/item/billet) || istype(thing, /obj/item/stack/material/bar))) + . += thing + +/obj/structure/fire_source/forge/attackby(obj/item/used_item, mob/user) + + // Raw materials. + if(istype(used_item, /obj/item/stack/material/bar)) + var/obj/item/stack/material/bar/bar = used_item + if(used_item.material != material || current_health >= get_max_health()) + if(bar.get_amount() > 1) + bar = bar.split(1) + if(bar.loc == user) + if(!user.try_unequip(bar, get_turf(src))) + return TRUE + else + bar.dropInto(get_turf(src)) + qdel(bar) + used_item = new /obj/item/billet(loc, used_item.material?.type) + // Flows through to below. + + // Partially worked billets. + if(istype(used_item, /obj/item/billet)) + if(used_item.loc == user) + user.try_unequip(used_item, loc) + else + used_item.dropInto(loc) + if(storage.can_be_inserted(used_item, user)) + storage.handle_item_insertion(user, used_item) + update_icon() + return TRUE + + // Tongs holding bars or partially worked billets. + if(istype(used_item, /obj/item/tongs) && !user.check_intent(I_FLAG_HARM)) + + // Put whatever's in the tongs into storage. + var/obj/item/tongs/tongs = used_item + if(tongs.holding_bar) + return attackby(tongs.holding_bar, user) + + // Check if we have any bars. + var/list/bars = get_forgable_contents() + if(!length(bars)) + to_chat(user, SPAN_WARNING("There are no bars in \the [src] to retrieve.")) + return TRUE + + // Get the hottest bar. + var/obj/item/hottest_bar + for(var/obj/item/bar in bars) + if(!hottest_bar || bar.temperature > hottest_bar) + hottest_bar = bar + + // Extract a single bar from the forge with the tongs. + if(storage.remove_from_storage(user, hottest_bar, tongs)) + tongs.holding_bar = hottest_bar + if(tongs.holding_bar) + user.visible_message(SPAN_NOTICE("\The [user] pulls \the [tongs.holding_bar] from \the [src] with \the [tongs].")) + tongs.update_icon() + return TRUE + + return ..() diff --git a/mods/content/blacksmithy/forging_step.dm b/mods/content/blacksmithy/forging_step.dm new file mode 100644 index 00000000000..44eaa8824a7 --- /dev/null +++ b/mods/content/blacksmithy/forging_step.dm @@ -0,0 +1,100 @@ +/decl/forging_step + abstract_type = /decl/forging_step + /// Base name, generated from billet_name and billet_name_prefix. + var/name + /// Name to use for the actual billet item. + var/billet_name = "billet" + /// Name prefix to use for the billet at this stage. + var/billet_name_prefix + /// Description to use for the billet at this stage. + var/billet_desc + /// Icon state modifier to use for the billet at this stage. + var/billet_icon_state + /// Icon to use for the billet (for modpacks/downstreams) + var/billet_icon = 'mods/content/blacksmithy/icons/billet.dmi' + /// List of available /decl/forging_step instances. + var/list/steps + /// Probability of failing this step if we're below skill_level. + var/skill_fail_prob = 30 + /// Impact of skill against probability of failure. + var/skill_factor = 1 + /// Skill level where failing this step becomes impossible. + var/skill_level = SKILL_ADEPT + /// What skill this step requires. + var/work_skill = SKILL_CONSTRUCTION + /// Descriptive string for this action. + var/work_verb = "forged" + +/decl/forging_step/Initialize() + + // Resolve our types now to get it out of the way. + for(var/step in steps) + steps -= step + steps += GET_DECL(step) + + if(billet_name_prefix) + name = jointext(list(billet_name_prefix, billet_name), " ") + else + name = billet_name + + . = ..() + +/decl/forging_step/validate() + . = ..() + if(!istext(name)) + . += "null or invalid name" + if(!istext(billet_desc)) + . += "null or invalid billet_desc" + if(!length(steps) && !istype(src, /decl/forging_step/product)) + . += "null or empty steps list" + if(billet_icon_state) + if(billet_icon) + if(!check_state_in_icon("[ICON_STATE_WORLD]-[billet_icon_state]", billet_icon)) + . += "missing billet icon state '[ICON_STATE_WORLD]-[billet_icon_state]' from icon '[billet_icon]'" + else + . += "missing billet_icon" + +/decl/forging_step/proc/get_product_name(decl/material/billet_material) + . = billet_name + if(billet_material) + . = "[billet_material.adjective_name] [.]" + if(billet_name_prefix) + . = "[billet_name_prefix] [.]" + +/decl/forging_step/proc/get_radial_choices() + for(var/decl/forging_step/step in steps) + var/image/radial_button = new + radial_button.name = capitalize(step.name) + LAZYSET(., step, radial_button) + +/decl/forging_step/proc/apply_to(obj/item/billet/billet) + return billet + +// There are effectively finished products. +/decl/forging_step/product + // Dummy strings to avoid validate() fails; shouldn't be used anywhere. + name = "finished product" + billet_desc = "A finished product." + abstract_type = /decl/forging_step/product + var/product_type = /obj/item/stick + +/decl/forging_step/product/get_product_name(decl/material/billet_material) + return atom_info_repository.get_name_for(product_type, billet_material?.type) + +/decl/forging_step/product/apply_to(obj/item/billet/billet) + var/obj/item/thing = new product_type(null, billet.material?.type) + thing.dropInto(billet.loc) + thing.pixel_x = billet.pixel_x + thing.pixel_y = billet.pixel_y + thing.pixel_w = billet.pixel_w + thing.pixel_z = billet.pixel_z + thing.temperature = billet.temperature + thing.update_heat_glow(anim_time = 0) + + if(billet.paint_color) + thing.paint_color = billet.paint_color + thing.update_icon() + qdel(billet) + thing.base_name = name + thing.update_name() + return thing diff --git a/mods/content/blacksmithy/forging_step_armor.dm b/mods/content/blacksmithy/forging_step_armor.dm new file mode 100644 index 00000000000..f0633652912 --- /dev/null +++ b/mods/content/blacksmithy/forging_step_armor.dm @@ -0,0 +1,37 @@ +/decl/forging_step/armour_plates + billet_desc = "A set of worked metal plates, a few steps and fittings away from forming some kind of armour." + billet_name = "armour plates" + billet_icon_state = "armour" + steps = list( + /decl/forging_step/product/breastplate, + /decl/forging_step/product/cuirass, + /decl/forging_step/product/banded + ) + +/decl/forging_step/armour_segments + billet_desc = "A set of small worked metal plates, a few steps and fittings away from forming a helmet, or arm or leg armour." + billet_name = "armour segments" + billet_icon_state = "helmet" + steps = list( + /decl/forging_step/product/helmet, + /decl/forging_step/product/sabatons, + /decl/forging_step/product/vambraces + ) + +/decl/forging_step/product/breastplate + product_type = /obj/item/clothing/suit/armor/forged/breastplate + +/decl/forging_step/product/cuirass + product_type = /obj/item/clothing/suit/armor/forged/cuirass + +/decl/forging_step/product/banded + product_type = /obj/item/clothing/suit/armor/forged/banded + +/decl/forging_step/product/helmet + product_type = /obj/item/clothing/head/helmet/plumed + +/decl/forging_step/product/sabatons + product_type = /obj/item/clothing/shoes/sabatons + +/decl/forging_step/product/vambraces + product_type = /obj/item/clothing/gloves/vambrace diff --git a/mods/content/blacksmithy/forging_step_billets.dm b/mods/content/blacksmithy/forging_step_billets.dm new file mode 100644 index 00000000000..f1c23273b93 --- /dev/null +++ b/mods/content/blacksmithy/forging_step_billets.dm @@ -0,0 +1,47 @@ +/decl/forging_step/billet + billet_desc = "An unworked length of metal used to forge items and tools." + steps = list( + /decl/forging_step/thin_billet, + /decl/forging_step/curved_billet, + /decl/forging_step/flat_bar, + /decl/forging_step/punched_billet + ) + +/decl/forging_step/thin_billet + billet_name_prefix = "thin" + billet_icon_state = "thin" + billet_desc = "A thin, elongated length of metal used to forge items and tools." + steps = list( + /decl/forging_step/blade_blank, + /decl/forging_step/ornate_blank + ) + +/decl/forging_step/curved_billet + billet_name_prefix = "curved" + billet_icon_state = "curved" + billet_desc = "A curved length of metal used to forge items and tools." + steps = list( + /decl/forging_step/product/hook, + /decl/forging_step/product/chain, + /decl/forging_step/product/horseshoe + ) + +/decl/forging_step/flat_bar + billet_name = "bar" + billet_name_prefix = "flat" + billet_icon_state = "flat" + billet_desc = "A flattened bar of metal used to forge armour components and plates." + steps = list( + /decl/forging_step/armour_plates, + /decl/forging_step/armour_segments, + /decl/forging_step/product/shield_fasteners + ) + +/decl/forging_step/punched_billet + billet_name_prefix = "punched" + billet_icon_state = "punched" + billet_desc = "A punched bar of metal used to forge items and tools" + steps = list( + /decl/forging_step/tool_head_blank, + /decl/forging_step/product/tongs + ) diff --git a/mods/content/blacksmithy/forging_step_blades.dm b/mods/content/blacksmithy/forging_step_blades.dm new file mode 100644 index 00000000000..253a1dd7332 --- /dev/null +++ b/mods/content/blacksmithy/forging_step_blades.dm @@ -0,0 +1,59 @@ +/decl/forging_step/blade_blank + billet_name = "blade blank" + billet_icon_state = "blade" + billet_desc = "A roughly shaped, dull blade. It will need further refinement before it can be finished." + steps = list( + /decl/forging_step/long_blade_blank, + /decl/forging_step/short_sword_blank + ) + +/decl/forging_step/long_blade_blank + billet_name = "blade blank" + billet_name_prefix = "long" + billet_desc = "A long, dull and unrefined blade, only a step from being a finished product." + + steps = list( + /decl/forging_step/product/longsword_blade, + /decl/forging_step/product/broadsword_blade, + /decl/forging_step/product/rapier_blade + ) + +/decl/forging_step/short_sword_blank + billet_name = "blade blank" + billet_name_prefix = "short" + billet_desc = "A short, dull and unrefined blade, only a step from being a finished product." + steps = list( + /decl/forging_step/product/poignard_blade, + /decl/forging_step/product/knife_blade, + /decl/forging_step/product/shortsword_blade, + /decl/forging_step/product/spear_head + ) + +// TODO: make these blades, add weapon crafting. +/decl/forging_step/product/longsword_blade + billet_name = "longsword" + product_type = /obj/item/bladed/longsword/forged + +/decl/forging_step/product/broadsword_blade + billet_name = "broadsword" + product_type = /obj/item/bladed/broadsword/forged + +/decl/forging_step/product/rapier_blade + billet_name = "rapier" + product_type = /obj/item/bladed/rapier/forged + +/decl/forging_step/product/poignard_blade + billet_name = "poignard" + product_type = /obj/item/bladed/poignard/forged + +/decl/forging_step/product/knife_blade + billet_name = "knife" + product_type = /obj/item/bladed/knife/forged + +/decl/forging_step/product/shortsword_blade + billet_name = "shortsword" + product_type = /obj/item/bladed/shortsword/forged + +/decl/forging_step/product/spear_head + billet_name = "spear" + product_type = /obj/item/bladed/polearm/spear/forged diff --git a/mods/content/blacksmithy/forging_step_components.dm b/mods/content/blacksmithy/forging_step_components.dm new file mode 100644 index 00000000000..6e508d3aa52 --- /dev/null +++ b/mods/content/blacksmithy/forging_step_components.dm @@ -0,0 +1,15 @@ +/decl/forging_step/product/hook + billet_name = "hook" + product_type = /obj/item/hook + +/decl/forging_step/product/chain + billet_name = "chain" + product_type = /obj/item/chain + +/decl/forging_step/product/horseshoe + billet_name = "horseshoe" + product_type = /obj/item/horseshoe + +/decl/forging_step/product/shield_fasteners + billet_name = "shield fasteners" + product_type = /obj/item/shield_fasteners diff --git a/mods/content/blacksmithy/forging_step_ornate.dm b/mods/content/blacksmithy/forging_step_ornate.dm new file mode 100644 index 00000000000..515d9d57d21 --- /dev/null +++ b/mods/content/blacksmithy/forging_step_ornate.dm @@ -0,0 +1,22 @@ +/decl/forging_step/ornate_blank + billet_name = "blank" + billet_name_prefix = "ornate" + billet_icon_state = "ornate" + billet_desc = "An ornate piece of worked metal. It still needs some last touches to be made into something useful." + steps = list( + /decl/forging_step/product/candelabra, + /decl/forging_step/product/decanter, + /decl/forging_step/product/goblet + ) + +/decl/forging_step/product/candelabra + billet_name = "candelabra" + product_type = /obj/item/candelabra + +/decl/forging_step/product/goblet + billet_name = "goblet" + product_type = /obj/item/chems/glass/handmade/fancy/goblet + +/decl/forging_step/product/decanter + billet_name = "decanter" + product_type =/obj/item/chems/glass/handmade/fancy/decanter \ No newline at end of file diff --git a/mods/content/blacksmithy/forging_step_tools.dm b/mods/content/blacksmithy/forging_step_tools.dm new file mode 100644 index 00000000000..d7cfb50501b --- /dev/null +++ b/mods/content/blacksmithy/forging_step_tools.dm @@ -0,0 +1,56 @@ +/decl/forging_step/tool_head_blank + billet_desc = "A heavy piece of shaped metal, almost suitable for use as the head of a tool. It still needs some last touches to be made into something useful." + billet_name = "tool head blank" + billet_icon_state = "tool_head" + steps = list( + /decl/forging_step/product/hoe_head, + /decl/forging_step/product/shovel_head, + /decl/forging_step/hammer_head_blank, + /decl/forging_step/product/chisel_head + ) + +/decl/forging_step/hammer_head_blank + billet_name = "hammer head blank" + billet_desc = "A worked slab of material in the rough shape of a hammer head, only a step from being a finished product." + steps = list( + /decl/forging_step/product/pickaxe_head, + /decl/forging_step/product/sledge_head, + /decl/forging_step/product/hammer_head, + /decl/forging_step/product/forging_hammer_head + ) + +/decl/forging_step/product/tongs + billet_name = "tongs" + product_type = /obj/item/tongs + +/decl/forging_step/product/chisel_head + billet_name = "chisel head" + product_type = /obj/item/tool_component/head/chisel + +/decl/forging_step/product/hammer_head + billet_name = "hammer head" + product_type = /obj/item/tool_component/head/hammer + +/decl/forging_step/product/shovel_head + billet_name = "shovel head" + product_type = /obj/item/tool_component/head/shovel + +/decl/forging_step/product/hoe_head + billet_name = "hoe head" + product_type = /obj/item/tool_component/head/hoe + +/decl/forging_step/product/handaxe_head + billet_name = "handaxe head" + product_type = /obj/item/tool_component/head/handaxe + +/decl/forging_step/product/pickaxe_head + billet_name = "pickaxe head" + product_type = /obj/item/tool_component/head/pickaxe + +/decl/forging_step/product/sledge_head + billet_name = "sledge head" + product_type = /obj/item/tool_component/head/sledgehammer + +/decl/forging_step/product/forging_hammer_head + billet_name = "forging hammer head" + product_type = /obj/item/tool_component/head/forging_hammer diff --git a/mods/content/blacksmithy/forging_types.dm b/mods/content/blacksmithy/forging_types.dm new file mode 100644 index 00000000000..f766d39982d --- /dev/null +++ b/mods/content/blacksmithy/forging_types.dm @@ -0,0 +1,41 @@ +/obj/item/bladed/longsword/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/broadsword/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/rapier/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/poignard/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/knife/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/shortsword/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null + +/obj/item/bladed/polearm/spear/forged + material = /decl/material/solid/metal/iron + hilt_material = null + guard_material = null + pommel_material = null diff --git a/mods/content/blacksmithy/icons/anvil.dmi b/mods/content/blacksmithy/icons/anvil.dmi new file mode 100644 index 0000000000000000000000000000000000000000..403390e3251b07446c3c448e3f7d64e7d9893ddb GIT binary patch literal 558 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 Vg97Go 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 literal 0 HcmV?d00001 diff --git a/sound/effects/anvil3.ogg b/sound/effects/anvil3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ad3747c0f32fbe5f0d6f60c275e70ed9cdb6cd6d GIT binary patch literal 16630 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 ONR&I~X$+$##{U8Q#p2}v literal 0 HcmV?d00001 diff --git a/sound/effects/anvil4.ogg b/sound/effects/anvil4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..88da5eb8bb66880789be7fd18d0278b51e0d7a48 GIT binary patch literal 16206 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 V5~2G)C3d>}#lZ5jpaCoJKLFIUyC47n literal 0 HcmV?d00001 diff --git a/sound/effects/anvil5.ogg b/sound/effects/anvil5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..80533e38aebe040c69ced978ad7645330c86c1a4 GIT binary patch literal 16458 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 EAEQgt;{X5v literal 0 HcmV?d00001