diff --git a/code/modules/smithing/anvil.dm b/code/modules/smithing/anvil.dm index 5ac705ee09..3326049ff2 100644 --- a/code/modules/smithing/anvil.dm +++ b/code/modules/smithing/anvil.dm @@ -15,6 +15,7 @@ #define RECIPE_COGHEAD "bsf" //bend shrink fold. #define RECIPE_BROADSWORD "dfufd" //draw fold upset fold draw #define RECIPE_HALBERD "duffp" //draw upset fold fold punch +#define RECIPE_GLAIVE "usfp" //upset shrink fold punch #define STEPS_CAP 8 /obj/structure/anvil @@ -43,7 +44,8 @@ RECIPE_SHORTSWORD = /obj/item/smithing/shortswordblade, RECIPE_SMALLKNIFE = /obj/item/smithing/knifeblade, RECIPE_BROADSWORD = /obj/item/smithing/broadblade, - RECIPE_HALBERD = /obj/item/smithing/halberdhead) + RECIPE_HALBERD = /obj/item/smithing/halberdhead, + RECIPE_GLAIVE = /obj/item/smithing/glaivehead) /obj/structure/anvil/Initialize() ..() diff --git a/code/modules/smithing/finished_items.dm b/code/modules/smithing/finished_items.dm index d0d115fca8..aaadce5106 100644 --- a/code/modules/smithing/finished_items.dm +++ b/code/modules/smithing/finished_items.dm @@ -27,12 +27,11 @@ wielded_mult = 1.75 -/obj/item/melee/smith/twohand/Initialize() - ..() +/obj/item/melee/smith/twohand/ComponentInitialize() + . = ..() AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. - AddComponent(/datum/component/jousting) AddElement(/datum/element/sword_point) - AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=wield_force, icon_wielded="[icon_state]_wield") + /////////////////////////// @@ -41,23 +40,47 @@ /obj/item/mining_scanner/prospector name = "prospector's pickaxe" desc = "A pickaxe that can sound rocks to find mineral deposits and stop gibtonite detonations." - icon = 'icons/obj/mining.dmi' + icon = 'icons/obj/smith.dmi' icon_state = "pickaxe" //todo:sprite +/obj/item/mining_scanner/prospector/Initialize() + ..() + desc = "A handmade [name]." + overlay = mutable_appearance(icon, "minihandle") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + /obj/item/pickaxe/smithed name = "pickaxe" desc = "A pickaxe." - icon = 'icons/obj/mining.dmi' + icon = 'icons/obj/smith.dmi' icon_state = "pickaxe" +/obj/item/pickaxe/smithed/Initialize() + ..() + desc = "A handmade [name]." + overlay = mutable_appearance(icon, "stick") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + /obj/item/shovel/smithed name = "shovel" desc = "A shovel." - icon = 'icons/obj/mining.dmi' + icon = 'icons/obj/smith.dmi' icon_state = "shovel" - - +/obj/item/shovel/smithed/Initialize() + ..() + desc = "A handmade [name]." + overlay = mutable_appearance(icon, "shovelhandle") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 /////////////////////////// @@ -67,21 +90,32 @@ /obj/item/melee/smith/twohand/halberd name = "halberd" + icon_state = "halberd" + overlay_state = "spearhandle" -/obj/item/melee/smith/twohand/halberd/Initialize() - ..() - throwforce = force/3 - +/obj/item/melee/smith/twohand/halberd/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) /obj/item/melee/smith/twohand/javelin name = "javelin" + icon_state = "javelin" + overlay_state = "longhandle" wielded_mult = 1.5 -/obj/item/melee/smith/twohand/javelin/Initialize() - ..() - throwforce = force*2 +/obj/item/melee/smith/twohand/javelin/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) +/obj/item/melee/smith/twohand/glaive + name = "glaive" + icon_state = "glaive" + overlay_state = "longhandle" + +/obj/item/melee/smith/twohand/glaive/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) ////////////////////////// // Other Melee // /////////////////////////// diff --git a/code/modules/smithing/smithed_items.dm b/code/modules/smithing/smithed_items.dm index a4b12002d8..9fedb6124d 100644 --- a/code/modules/smithing/smithed_items.dm +++ b/code/modules/smithing/smithed_items.dm @@ -14,7 +14,7 @@ /obj/item/ingot name = "ingot" icon = 'icons/obj/smith.dmi' - icon_state = "unfinished" + icon_state = "ingot" material_flags = MATERIAL_COLOR | MATERIAL_ADD_PREFIX var/workability = "shapeable" @@ -69,6 +69,7 @@ name = "smithed axe head" finalitem = /obj/item/melee/smith/axe + /obj/item/smithing/axehead/startfinish() finalitem = new /obj/item/melee/smith/axe(src) finalitem.force += quality @@ -77,6 +78,7 @@ /obj/item/smithing/hammerhead name = "smithed hammer head" finalitem = /obj/item/melee/smith/hammer + icon_state = "hammer" /obj/item/smithing/hammerhead/startfinish() var/obj/item/melee/smith/hammer/finalforreal = new /obj/item/melee/smith/hammer(src) @@ -90,6 +92,7 @@ /obj/item/smithing/scytheblade name = "smithed scythe head" finalitem = /obj/item/scythe/smithed + icon_state = "scythe" /obj/item/smithing/scytheblade/startfinish() finalitem = new /obj/item/scythe/smithed(src) @@ -99,6 +102,7 @@ /obj/item/smithing/shovelhead name = "smithed shovel head" finalitem = /obj/item/shovel/smithed + icon_state = "shovel" /obj/item/smithing/shovelhead/startfinish() finalitem = new /obj/item/shovel/smithed(src) @@ -119,11 +123,14 @@ /obj/item/smithing/javelinhead name = "smithed javelin head" finalitem = /obj/item/melee/smith/twohand/javelin + icon_state = "javelin" /obj/item/smithing/javelinhead/startfinish() var/obj/item/melee/smith/twohand/javelin/finalforreal = new /obj/item/melee/smith/twohand/javelin(src) finalforreal.force += quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]_wield") + finalforreal.throwforce = finalforreal.force*2 finalitem = finalforreal ..() @@ -131,6 +138,7 @@ /obj/item/smithing/pickaxehead name = "smithed pickaxe head" finalitem = /obj/item/pickaxe/smithed + icon_state = "pickaxe" /obj/item/smithing/pickaxehead/startfinish() var/obj/item/pickaxe/smithed/finalforreal = new /obj/item/pickaxe/smithed(src) @@ -151,6 +159,7 @@ /obj/item/smithing/prospectingpickhead name = "smithed prospector's pickaxe head" finalitem = /obj/item/mining_scanner/prospector + icon_state = "minipick" /obj/item/smithing/prospectingpickhead/startfinish() var/obj/item/mining_scanner/prospector/finalforreal = new /obj/item/mining_scanner/prospector(src) @@ -165,6 +174,7 @@ name = "smithed shortsword blade" finishingitem = /obj/item/swordhandle finalitem = /obj/item/melee/smith/shortsword + icon_state = "gladius" /obj/item/smithing/shortswordblade/startfinish() finalitem = new /obj/item/melee/smith/shortsword(src) @@ -175,6 +185,7 @@ name = "smithed knife blade" finishingitem = /obj/item/swordhandle finalitem = /obj/item/kitchen/knife + icon_state = "dagger" /obj/item/smithing/knifehead/startfinish() finalitem = new /obj/item/kitchen/knife(src) @@ -185,25 +196,45 @@ name = "smithed broadsword blade" finishingitem = /obj/item/swordhandle finalitem = /obj/item/melee/smith/twohand/broadsword + icon_state = "broadsword" /obj/item/smithing/broadblade/startfinish() var/obj/item/melee/smith/twohand/broadsword/finalforreal = new /obj/item/melee/smith/twohand/broadsword(src) finalforreal.force += quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]_wield") finalitem = finalforreal ..() /obj/item/smithing/halberdhead name = "smithed halberd head" finalitem = /obj/item/melee/smith/twohand/halberd + icon_state = "halberd" /obj/item/smithing/halberdhead/startfinish() var/obj/item/melee/smith/twohand/halberd/finalforreal = new /obj/item/melee/smith/twohand/halberd(src) finalforreal.force += quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.throwforce = finalforreal.force/3 + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]_wield") finalitem = finalforreal ..() +/obj/item/smithing/glaivehead + name = "smithed glaive head" + finalitem = /obj/item/melee/smith/twohand/glaive + icon_state = "glaive" + +/obj/item/smithing/glaive/startfinish() + var/obj/item/melee/smith/twohand/halberd/finalforreal = new /obj/item/melee/smith/twohand/glaive(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.throwforce = finalforreal.force + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]_wield") + finalitem = finalforreal + ..() + + /obj/item/stick name = "wooden rod" desc = "It's a rod, suitable for use of a handle of a tool. Also could serve as a weapon, in a pinch." @@ -215,4 +246,4 @@ name = "sword handle" desc = "It's a rod, suitable for use of a handle of a tool. Also could serve as a weapon, in a pinch." icon = 'icons/obj/smith.dmi' - icon_state = "stick" + icon_state = "shorthilt" diff --git a/icons/obj/smith.dmi b/icons/obj/smith.dmi index 7a34789020..4893018b23 100644 Binary files a/icons/obj/smith.dmi and b/icons/obj/smith.dmi differ