It's all codersprites?

Always has been.
This commit is contained in:
lolman360
2020-08-23 16:51:55 +10:00
parent 1146ed0d1f
commit 2a3ada511e
8 changed files with 180 additions and 69 deletions

View File

@@ -263,6 +263,16 @@
time = 30
category = CAT_CLOTHING
/datum/crafting_recipe/twinsheath
name = "Twin Sword Sheath"
result = /obj/item/storage/belt/sabre/twin
reqs = list(/obj/item/stack/sheet/wood = 3,
/obj/item/stack/sheet/leather = 8)
tools = list(TOOL_WIRECUTTER)
time = 70
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_reinforcement_kit
name = "Durathread Reinforcement Kit"
result = /obj/item/armorkit

View File

@@ -492,7 +492,7 @@
icon_state = "grenadebeltnew"
item_state = "security"
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/belt/grenade/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
@@ -815,3 +815,18 @@
attack_verb = list("bashed", "slashes", "prods", "pokes")
fitting_swords = list(/obj/item/melee/rapier)
starting_sword = /obj/item/melee/rapier
/obj/item/storage/belt/sabre/twin
name = "twin sheath"
desc = "Two sheaths. One is capable of holding a katana (or bokken) and the other a wakizashi. You could put two wakizashis in if you really wanted to. Now you can really roleplay as a samurai."
icon_state = "twinsheath"
item_state = "quiver" //this'll do.
w_class = WEIGHT_CLASS_BULKY
var/list/fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken)
starting_sword = null
/obj/item/storage/belt/sabre/twin/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 2
STR.max_w_class = WEIGHT_CLASS_BULKY + WEIGHT_CLASS_NORMAL //katana and waki.

View File

@@ -7,12 +7,13 @@
#define RECIPE_LARGEPICK "ddbp" //draw draw bend punch
#define RECIPE_SHOVEL "dfup" //draw fold upset punch
#define RECIPE_HAMMER "sfp" //shrink fold punch
#define RECIPE_AXE "ufp" //upset fold punch
#define RECIPE_SMALLKNIFE "sdd" //shrink draw draw
#define RECIPE_SHORTSWORD "dff" //draw fold fold
#define RECIPE_SCIMITAR "dfb" //draw fold bend
#define RECIPE_BROADSWORD "dfufd" //draw fold upset fold draw
#define RECIPE_ZWEIHANDER "udfsf" //upset draw fold shrink fold
#define RECIPE_KATANA "fffff" //fold fold fold fold fold
@@ -23,6 +24,7 @@
#define RECIPE_JAVELIN "dbf" //draw bend fold
#define RECIPE_HALBERD "duffp" //draw upset fold fold punch
#define RECIPE_GLAIVE "usfp" //upset shrink fold punch
#define RECIPE_PIKE "ddbf" //draw draw bend fold
/obj/structure/anvil
name = "anvil"
@@ -39,8 +41,7 @@
var/outrightfailchance = 1 //todo: document this shit
var/stepsdone = ""
var/rng = FALSE
var/list/smithrecipes = list(RECIPE_AXE = /obj/item/smithing/axehead,
RECIPE_HAMMER = /obj/item/smithing/hammerhead,
var/list/smithrecipes = list(RECIPE_HAMMER = /obj/item/smithing/hammerhead,
RECIPE_SCYTHE = /obj/item/smithing/scytheblade,
RECIPE_SHOVEL = /obj/item/smithing/shovelhead,
RECIPE_COGHEAD = /obj/item/smithing/cogheadclubhead,
@@ -48,11 +49,14 @@
RECIPE_LARGEPICK = /obj/item/smithing/pickaxehead,
RECIPE_SMALLPICK = /obj/item/smithing/prospectingpickhead,
RECIPE_SHORTSWORD = /obj/item/smithing/shortswordblade,
RECIPE_SCIMITAR = /obj/item/smithing/scimitarblade,
RECIPE_SMALLKNIFE = /obj/item/smithing/knifeblade,
RECIPE_BROADSWORD = /obj/item/smithing/broadblade,
RECIPE_ZWEIHANDER = /obj/item/smithing/zweiblade,
RECIPE_KATANA = /obj/item/smithing/katanablade,
RECIPE_HALBERD = /obj/item/smithing/halberdhead,
RECIPE_GLAIVE = /obj/item/smithing/glaivehead,
RECIPE_KATANA = /obj/item/smithing/katanablade)
RECIPE_PIKE = /obj/item/smithing/pikehead)
/obj/structure/anvil/Initialize()
..()
@@ -172,7 +176,6 @@
/obj/structure/anvil/debugsuper
name = "super ultra epic anvil of debugging."
desc = "WOW. A DEBUG <del>ITEM</DEL> STRUCTURE. EPIC."
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
anvilquality = 10
outrightfailchance = 0
@@ -180,8 +183,6 @@
/obj/structure/anvil/obtainable
name = "anvil"
desc = "Base class of anvil. This shouldn't exist, but is useable."
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
anvilquality = 0
outrightfailchance = 5
rng = TRUE
@@ -189,7 +190,6 @@
/obj/structure/anvil/obtainable/table
name = "table anvil"
desc = "A slightly reinforced table. Good luck."
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
anvilquality = -2
@@ -206,38 +206,32 @@
name = "slab of bronze"
desc = "A big block of bronze. Useable as an anvil."
custom_materials = list(/datum/material/bronze=8000)
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "ratvaranvil"
anvilquality = -1
/obj/structure/anvil/obtainable/sandstone
name = "sandstone brick anvil"
desc = "A big block of sandstone. Useable as an anvil."
custom_materials = list(/datum/material/sandstone=8000)
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "sandvil"
anvilquality = -1
/obj/structure/anvil/obtainable/basalt
name = "basalt brick anvil"
desc = "A big block of basalt. Useable as an anvil, better than sandstone. Igneous!"
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "sandvilnoir"
anvilquality = -0.5
/obj/structure/anvil/obtainable/basic
name = "anvil"
desc = "An anvil. It's got wheels bolted to the bottom."
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
anvilquality = 0
/obj/structure/anvil/obtainable/ratvar
name = "brass anvil"
desc = "A big block of what appears to be brass. Useable as an anvil, if whatever's holding the brass together lets you."
custom_materials = list(/datum/material/bronze=8000)
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "ratvaranvil"
anvilquality = 1
/obj/structure/anvil/obtainable/ratvar/attackby(obj/item/I, mob/user)
@@ -251,11 +245,11 @@
desc = "An anvil made of a strange, runic metal."
custom_materials = list(/datum/material/runedmetal=8000)
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "evil"
anvilquality = 1
/obj/structure/anvil/obtainable/narsie/attackby(obj/item/I, mob/user)
if(iscultistr(user))
if(iscultist(user))
return ..()
else
to_chat(user, "<span class='narsiesmall'>That is not yours to use!</span>")

View File

@@ -1,29 +1,3 @@
//TODO: OBTAILABILITY, ANVIL TYPES, HAMMER TYPES, INGOTS
/*
sords:
broadsword [x]
gladius [x]
dirk [x]
zweihander [x]
sabre
rapier
scimitar
katana [x]
polearms:
halberd [x]
glaive [x]
javelin [x]
pike
misc:
blacksmith's hammer [x]
scythe [x]
axe
coghead club
pickaxes [x]
*/
/obj/item/melee/smith
name = "base class obj/item/melee/smith" //tin. handles overlay and quality and shit.
@@ -32,6 +6,9 @@ pickaxes [x]
icon_state = "mace_greyscale"
item_state = "mace_greyscale"
material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
total_mass = TOTAL_MASS_MEDIEVAL_WEAPON //yeah ok
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_NORMAL
force = 10
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
@@ -55,7 +32,7 @@ pickaxes [x]
/obj/item/melee/smith/twohand
item_flags = NEEDS_PERMIT //it's a bigass sword/spear. beepsky is going to give you shit for it.
wielded_mult = 1.75
w_class = WEIGHT_CLASS_BULKY
/obj/item/melee/smith/twohand/ComponentInitialize()
. = ..()
@@ -125,6 +102,7 @@ pickaxes [x]
name = "halberd"
icon_state = "halberd"
overlay_state = "spearhandle"
slot_flags = ITEM_SLOT_BACK
/obj/item/melee/smith/twohand/halberd/ComponentInitialize()
. = ..()
@@ -135,6 +113,7 @@ pickaxes [x]
icon_state = "javelin"
overlay_state = "longhandle"
wielded_mult = 1.5
slot_flags = ITEM_SLOT_BACK
/obj/item/melee/smith/twohand/javelin/ComponentInitialize()
@@ -145,17 +124,24 @@ pickaxes [x]
name = "glaive"
icon_state = "glaive"
overlay_state = "longhandle"
slot_flags = ITEM_SLOT_BACK
/obj/item/melee/smith/twohand/glaive/ComponentInitialize()
. = ..()
AddComponent(/datum/component/jousting)
/obj/item/melee/smith/twohand/pike
name = "pike"
icon_state = "pike"
overlay_state = "longhandle"
reach = 2 //yeah ok
slot_flags = ITEM_SLOT_BACK
//////////////////////////
// Other Melee //
///////////////////////////
/obj/item/melee/smith/axe
name = "axe"
item_flags = NEEDS_PERMIT
/obj/item/melee/smith/hammer//blacksmithing, not warhammer.
name = "hammer"
@@ -169,7 +155,9 @@ pickaxes [x]
/obj/item/melee/smith/cogheadclub
name = "coghead club"
icon_state = "coghead"
item_flags = NEEDS_PERMIT
overlay_state = "stick"
/obj/item/melee/smith/shortsword
name = "gladius"
@@ -177,11 +165,37 @@ pickaxes [x]
icon_state = "gladius"
overlay_state = "gladiushilt"
/obj/item/melee/smith/shortsword/scimitar
name = "scimitar"
icon_state = "scimitar"
overlay_state = "scimitarhilt"
/obj/item/melee/smith/wakizashi
name = "wakizashi"
item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY
icon_state = "waki"
overlay_state = "wakihilt"
block_parry_data = /datum/block_parry_data/waki
/datum/block_parry_data/waki //like longbokken but worse reflect
parry_stamina_cost = 6
parry_time_windup = 0
parry_time_active = 15 //decent window
parry_time_spindown = 0
parry_time_perfect = 2
parry_time_perfect_leeway = 0.75
parry_imperfect_falloff_percent = 7.5
parry_efficiency_to_counterattack = 100
parry_efficiency_considered_successful = 80
parry_efficiency_perfect = 120
parry_failed_stagger_duration = 3 SECONDS
parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1.9)
/obj/item/melee/smith/twohand/broadsword
name = "broadsword"
icon_state = "broadsword"
overlay_state = "broadhilt"
force = 11
force = 9
wielded_mult = 1.8
/obj/item/melee/smith/twohand/zweihander
@@ -189,7 +203,7 @@ pickaxes [x]
icon_state = "zweihander"
overlay_state = "zweihilt"
force = 4
wielded_mult = 3
wielded_mult = 3 //affected more by quality. a -1 is 25% less damage, a +1 is 25% more. These bonuses are tripled when wielded.
/obj/item/melee/smith/twohand/katana
name = "katana"
@@ -198,7 +212,40 @@ pickaxes [x]
force = 7
wielded_mult = 2
item_flags = ITEM_CAN_PARRY | UNIQUE_RENAME //want to name your katana "DEMON BLADE" or some shit? go ahead, idiot.
block_parry_data = /datum/block_parry_data/captain_saber
block_parry_data = /datum/block_parry_data/captain_saber //todo
/obj/item/melee/smith/sabre
name = "sabre"
icon_state = "sabre"
overlay_state = "sabrehilt"
armour_penetration = 15
force = 9
hitsound = 'sound/weapons/rapierhit.ogg'
item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY
block_parry_data = /datum/block_parry_data/captain_saber //yeah this is fine i guess
/obj/item/melee/smith/sabre/rapier
name = "rapier"
icon_state = "rapier"
overlay_state = "rapierhilt"
force = 6 //less force, stronger parry
armour_penetration = 30
block_parry_data = /datum/block_parry_data/smithrapier
/datum/block_parry_data/smithrapier //parry into riposte. i am pretty sure this is going to be nearly fucking impossible to land.
parry_stamina_cost = 12 //dont miss
parry_time_active = 4
parry_time_perfect = 2
parry_time_perfect_leeway = 2
parry_failed_stagger_duration = 3 SECONDS
parry_failed_clickcd_duration = 3 SECONDS
parry_time_windup = 0
parry_time_spindown = 0
parry_imperfect_falloff_percent = 0
parry_efficiency_to_counterattack = 100
parry_efficiency_considered_successful = 120
parry_efficiency_perfect = 120
parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 4)
//unique hammers
/obj/item/melee/smith/hammer/toolbox

View File

@@ -2,7 +2,7 @@
name = "furnace"
desc = "A furnace."
icon = 'icons/obj/smith.dmi'
icon_state = "anvil"
icon_state = "furnace0"
density = TRUE
anchored = TRUE
var/debug = FALSE //debugging only
@@ -25,8 +25,11 @@
return TRUE
if(reagents.remove_reagent(/datum/reagent/fuel, fueluse))
working = TRUE
if(icon_state == "furnace0")
icon_state = "furnace1"
else
working = FALSE
icon_state = "furnace0"
/obj/structure/furnace/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/ingot))
@@ -44,9 +47,23 @@
default_unfasten_wrench(user, I, 5)
return TRUE
/obj/structure/furnace/attackby(obj/item/W, mob/user, params)
if(W.reagents)
W.reagents.trans_to(src, 250)
else
return ..()
/obj/structure/furnace/plunger_act(obj/item/plunger/P, mob/living/user, reinforced)
to_chat(user, "<span class='notice'>You start furiously plunging [name].")
if(do_after(user, 30, target = src))
to_chat(user, "<span class='notice'>You finish plunging the [name].")
reagents.reaction(get_turf(src), TOUCH) //splash on the floor
reagents.clear_reagents()
/obj/structure/furnace/infinite
name = "fuelless furnace"
debug = TRUE
icon_state = "ratfurnace"
/obj/structure/furnace/infinite/ratvar
@@ -55,4 +72,4 @@
/obj/structure/furnace/infinite/narsie
name = "rune furnace"
desc = "A runed furnace. Powered by... something, but seems otherwise safe."//todo:sprites
desc = "A runed furnace. Powered by... something, but seems otherwise safe."

View File

@@ -124,18 +124,6 @@
mat = mat.name
finalitem.name = "[qualname] [mat] [finalitem.name]"
finalitem.forceMove(get_turf(src))
qdel(src)
/obj/item/smithing/axehead
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
..()
/obj/item/smithing/hammerhead
name = "smithed hammer head"
@@ -176,6 +164,7 @@
/obj/item/smithing/cogheadclubhead
name = "smithed coghead club head"
finalitem = /obj/item/melee/smith/cogheadclub
icon_state = "coghead"
/obj/item/smithing/cogheadclubhead/startfinish()
finalitem = new /obj/item/melee/smith/cogheadclub(src)
@@ -196,6 +185,19 @@
finalitem = finalforreal
..()
/obj/item/smithing/pikehead
name = "smithed pike head"
finalitem = /obj/item/melee/smith/twohand/pike
icon_state = "pike"
/obj/item/smithing/pikehead/startfinish()
var/obj/item/melee/smith/twohand/pike/finalforreal = new /obj/item/melee/smith/twohand/pike(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]")
finalforreal.throwforce = finalforreal.force/10 //its a pike not a javelin
finalitem = finalforreal
..()
/obj/item/smithing/pickaxehead
name = "smithed pickaxe head"
@@ -233,7 +235,7 @@
/obj/item/smithing/shortswordblade
name = "smithed shortsword blade"
name = "smithed gladius blade"
finishingitem = /obj/item/swordhandle
finalitem = /obj/item/melee/smith/shortsword
icon_state = "gladius"
@@ -243,6 +245,18 @@
finalitem.force += quality
..()
/obj/item/smithing/scimitarblade
name = "smithed scimitar blade"
finishingitem = /obj/item/swordhandle
finalitem = /obj/item/melee/smith/shortsword/scimitar
icon_state = "scimitar"
/obj/item/smithing/shortswordblade/startfinish()
finalitem = new /obj/item/melee/smith/shortsword/scimitar(src)
finalitem.force += quality
..()
/obj/item/smithing/knifeblade
name = "smithed knife blade"
finishingitem = /obj/item/swordhandle
@@ -268,6 +282,20 @@
finalitem = finalforreal
..()
/obj/item/smithing/zweiblade
name = "smithed zweihander blade"
finishingitem = /obj/item/swordhandle
finalitem = /obj/item/melee/smith/twohand/zweihander
icon_state = "zweihander"
/obj/item/smithing/zweiblade/startfinish()
var/obj/item/melee/smith/twohand/zweihander/finalforreal = new /obj/item/melee/smith/twohand/zweihander(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]")
finalitem = finalforreal
..()
/obj/item/smithing/halberdhead
name = "smithed halberd head"
finalitem = /obj/item/melee/smith/twohand/halberd

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 14 KiB