diff --git a/code/game/objects/items/quiver.dm b/code/game/objects/items/quiver.dm index 2b32aa12092..f77ead163a2 100644 --- a/code/game/objects/items/quiver.dm +++ b/code/game/objects/items/quiver.dm @@ -560,6 +560,62 @@ arrows += A update_icon() +/obj/item/quiver/bolt/heavy/stake/Initialize() + ..() + for(var/i in 1 to max_storage) + var/obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake/A = new() + arrows += A + update_icon() + +/obj/item/quiver/bolt/heavy/stake_silver/Initialize() + ..() + for(var/i in 1 to max_storage) + var/obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake_silver/A = new() + arrows += A + update_icon() + +///////////// +// STAKES // +///////////// + +/obj/item/quiver/bolt/stake + name = "shotstake pouch" + desc = "A light leather canister with specially-tailored hoops on the inside, made for carrying heat-treated shotstakes by the dozens." + icon_state = "stakepouch0" + item_state = "stakepouch" + max_storage = 24 + allowed_ammo_type = /obj/item/ammo_casing/caseless/rogue/stake + +/obj/item/quiver/bolt/stake/attack_turf(turf/T, mob/living/user) + if(get_current_weight() >= max_storage) + to_chat(user, span_warning("My [src.name] is full!")) + return + to_chat(user, span_notice("I begin to gather the ammunition...")) + for(var/obj/item/ammo_casing/caseless/rogue/stake in T.contents) + if(do_after(user, 5)) + if(!eatarrow(stake)) + break + +/obj/item/quiver/bolt/stake/update_icon() + if(arrows.len) + icon_state = "stakepouch1" + else + icon_state = "stakepouch0" + +/obj/item/quiver/bolt/stake/standard/Initialize() + ..() + for(var/i in 1 to max_storage) + var/obj/item/ammo_casing/caseless/rogue/stake/A = new() + arrows += A + update_icon() + +/obj/item/quiver/bolt/stake/silver/Initialize() + ..() + for(var/i in 1 to max_storage) + var/obj/item/ammo_casing/caseless/rogue/stake/silver/A = new() + arrows += A + update_icon() + ////////////// // JAVELINS // ////////////// diff --git a/code/game/objects/items/rogueweapons/melee/axe/axe_intents.dm b/code/game/objects/items/rogueweapons/melee/axe/axe_intents.dm index dee04bfcd5b..ac8e836ec1b 100644 --- a/code/game/objects/items/rogueweapons/melee/axe/axe_intents.dm +++ b/code/game/objects/items/rogueweapons/melee/axe/axe_intents.dm @@ -63,6 +63,21 @@ damfactor = 1.3 reach = 2 +/datum/intent/axe/cut/long + reach = 2 + damfactor = 1.3 + demolition_mod = 1 + +/datum/intent/axe/cut/long/bronze + damfactor = 1.1 + demolition_mod = 1.3 + +/datum/intent/axe/chop/long + reach = 2 + damfactor = 1.3 + demolition_mod = 1.5 + swingdelay = 0.5 SECONDS + /datum/intent/axe/bash name = "bash" icon_state = "inbash" diff --git a/code/game/objects/items/rogueweapons/melee/axe/axes.dm b/code/game/objects/items/rogueweapons/melee/axe/axes.dm index 2fed596f0db..51d87d6bf32 100644 --- a/code/game/objects/items/rogueweapons/melee/axe/axes.dm +++ b/code/game/objects/items/rogueweapons/melee/axe/axes.dm @@ -326,21 +326,6 @@ smeltresult = /obj/item/ingot/aaslag sellprice = 10 //Ew... AASlag CC Change -/datum/intent/axe/cut/long - reach = 2 - damfactor = 1 - demolition_mod = 1 - -/datum/intent/axe/cut/long/bronze - damfactor = 0.8 - demolition_mod = 1.3 - -/datum/intent/axe/chop/long - reach = 2 - damfactor = 1 - demolition_mod = 1.5 - swingdelay = 0.5 SECONDS - /obj/item/rogueweapon/stoneaxe/woodcut/steel/woodcutter name = "woodcutter's axe" icon = 'icons/roguetown/weapons/axes64.dmi' diff --git a/code/game/objects/items/rogueweapons/melee/blunt.dm b/code/game/objects/items/rogueweapons/melee/blunt.dm index 79f1fa4fb1d..4f3d31675ef 100644 --- a/code/game/objects/items/rogueweapons/melee/blunt.dm +++ b/code/game/objects/items/rogueweapons/melee/blunt.dm @@ -912,7 +912,7 @@ pixel_x = -16 inhand_x_dimension = 64 inhand_y_dimension = 64 - dropshrink = 0.6 + //dropshrink = 0.6 bigboy = TRUE gripsprite = TRUE minstr_req = TRUE //You MUST have the required strength. No exceptions. diff --git a/code/game/objects/items/rogueweapons/melee/knives.dm b/code/game/objects/items/rogueweapons/melee/knives.dm index bed04bd52fd..33672c8b4ee 100644 --- a/code/game/objects/items/rogueweapons/melee/knives.dm +++ b/code/game/objects/items/rogueweapons/melee/knives.dm @@ -423,6 +423,39 @@ max_integrity = 170 minstr = 7 //Less strength requirement than the regular combat knife, to reflect the fact that it's a little easier to handle. +/obj/item/rogueweapon/huntingknife/combat/silver + name = "silver hunting knife" + desc = "A rare descendant of the Grenzelhoftian seax, gifted a silvered edge that is destined to stake the foulest unbeating hearts that Psydonia's yet \ + to witness.
''Come,' he said, 'come, we must see and act. Devils or no devils, or all the devils at once, it matters not; we fight them all the same.'" + force = 15 + icon_state = "silverseax" + sheathe_icon = "silverseax" + smeltresult = /obj/item/ingot/silver + wdefense = 6 + is_silver = TRUE + +/obj/item/rogueweapon/huntingknife/combat/silver/ComponentInitialize() + AddComponent(\ + /datum/component/silverbless,\ + pre_blessed = BLESSING_NONE,\ + silver_type = SILVER_TENNITE,\ + added_force = 0,\ + added_blade_int = 50,\ + added_int = 50,\ + added_def = 2,\ + ) + +/obj/item/rogueweapon/huntingknife/combat/silver/preblessed/ComponentInitialize() + AddComponent(\ + /datum/component/silverbless,\ + pre_blessed = BLESSING_TENNITE,\ + silver_type = SILVER_TENNITE,\ + added_force = 0,\ + added_blade_int = 50,\ + added_int = 50,\ + added_def = 2,\ + ) + /datum/intent/dagger/thrust/combat name = "wedged thrust" icon_state = "instab" diff --git a/code/game/objects/items/rogueweapons/melee/special.dm b/code/game/objects/items/rogueweapons/melee/special.dm index 916dc47b7ca..13016cf7ef8 100644 --- a/code/game/objects/items/rogueweapons/melee/special.dm +++ b/code/game/objects/items/rogueweapons/melee/special.dm @@ -1012,6 +1012,134 @@ desc = "Thieve the appearance of another." icon_state = "inpeculate" +//Knuckledusters. Uses the Psydonic Thorns code to swap between this and the wearable, unarmed-damage-multiplying variants. +/obj/item/rogueweapon/knuckledusters + name = "knuckledusters" //(Currenty?) inaccessable base. + desc = "An alloyed piece of pugilism, adjusted to be actively swung rather than passively worn atop the knuckles. Favored \ + by those who prefer to keep a little something-something in their pockets, whenever the Innhouse gets a bit too rowdy." + force = 25 + possible_item_intents = list(/datum/intent/mace/strike/dislocate, /datum/intent/mace/smash, /datum/intent/dagger/sucker_punch) + icon = 'icons/roguetown/weapons/unarmed32.dmi' + icon_state = "steelknuckle" + gripsprite = FALSE + wlength = WLENGTH_SHORT + w_class = WEIGHT_CLASS_SMALL + slot_flags = ITEM_SLOT_HIP + parrysound = list('sound/combat/parry/pugilism/unarmparry (1).ogg','sound/combat/parry/pugilism/unarmparry (2).ogg','sound/combat/parry/pugilism/unarmparry (3).ogg') + sharpness = IS_BLUNT + max_integrity = 160 //Doubled integrity, compared to Katars. Thicker amounts of alloy, more punishment it can take. + swingsound = list('sound/combat/wooshes/punch/punchwoosh (1).ogg','sound/combat/wooshes/punch/punchwoosh (2).ogg','sound/combat/wooshes/punch/punchwoosh (3).ogg') + associated_skill = /datum/skill/combat/unarmed + throwforce = 12 + wdefense = 0 + wbalance = WBALANCE_SWIFT + anvilrepair = /datum/skill/craft/weaponsmithing + smeltresult = /obj/item/ingot/steel + grid_width = 64 + grid_height = 32 + special = /datum/special_intent/upper_cut + +/obj/item/rogueweapon/knuckledusters/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list("shrink" = 0.2,"sx" = -7,"sy" = -4,"nx" = 7,"ny" = -4,"wx" = -3,"wy" = -4,"ex" = 1,"ey" = -4,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 110,"sturn" = -110,"wturn" = -110,"eturn" = 110,"nflip" = 0,"sflip" = 8,"wflip" = 8,"eflip" = 0) + if("onbelt") + return list("shrink" = 0.1,"sx" = -2,"sy" = -5,"nx" = 4,"ny" = -5,"wx" = 0,"wy" = -5,"ex" = 2,"ey" = -5,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0) + +/obj/item/rogueweapon/knuckledusters/get_mechanics_examine(mob/user) + . = ..() + . += span_notice("Knuckledusters, similar to Katars, can still parry oncoming blows. Note that their fragility makes this a bit more of a daunting process, however, for unskilled swingers.") + //. += span_notice("Activate - while held in your current hand - to turn these into knuckles, which can be worn as gloves to greatly improve your unarmed damage and parrying chances.") + +/obj/item/rogueweapon/knuckledusters/silver + name = "silver knuckledusters" + desc = "A simple piece of harm that has been molded from pure silver, and further studded to stop errant strikes dead in their tracks. Though ostensibly holy, these heftsome knuckleweights are \ + more strongly associated with underground pugilistic tournaments; a solid right hook could drive more-than-enough force to blow a yeoman's jaw clean off." + icon_state = "silverknuckledusters" + is_silver = TRUE + smeltresult = /obj/item/ingot/silver + +/obj/item/rogueweapon/knuckledusters/silver/ComponentInitialize() + AddComponent(\ + /datum/component/silverbless,\ + pre_blessed = BLESSING_TENNITE,\ + silver_type = SILVER_TENNITE,\ + added_force = 0,\ + added_blade_int = 0,\ + added_int = 50,\ + added_def = 0,\ + ) + +/obj/item/rogueweapon/knuckledusters/silver/attack_self(mob/living/user) + . = ..() + user.visible_message(span_warning("[user] starts adjusting their grip on [src].")) + if(do_after(user, 3 SECONDS)) + var/obj/item/rogueweapon/knuckledusters/silver/P = new /obj/item/clothing/gloves/roguetown/knuckles/silver(get_turf(src.loc)) + if(user.is_holding(src)) + user.dropItemToGround(src) + user.put_in_hands(P) + P.obj_integrity = src.obj_integrity + qdel(src) + else + user.visible_message(span_warning("[user] stops adjusting their grip on [src].")) + return + +/obj/item/rogueweapon/knuckledusters/psy + name = "psydonic knuckledusters" + desc = "A simple piece of harm molded in a holy mixture of steel and silver, finished with three stumps - Psydon's crown - to crush the heretics' garments and armor into smithereens." + icon_state = "psyknuckledusters" + is_silver = TRUE + smeltresult = /obj/item/ingot/silverblessed + +/obj/item/rogueweapon/knuckledusters/psy/ComponentInitialize() + AddComponent(\ + /datum/component/silverbless,\ + pre_blessed = BLESSING_PSYDONIAN,\ + silver_type = SILVER_PSYDONIAN,\ + added_force = 0,\ + added_blade_int = 0,\ + added_int = 50,\ + added_def = 0,\ + ) + +/obj/item/rogueweapon/knuckledusters/psy/attack_self(mob/living/user) + . = ..() + user.visible_message(span_warning("[user] starts adjusting their grip on [src].")) + if(do_after(user, 3 SECONDS)) + var/obj/item/rogueweapon/knuckledusters/psy/P = new /obj/item/clothing/gloves/roguetown/knuckles/psydon(get_turf(src.loc)) + if(user.is_holding(src)) + user.dropItemToGround(src) + user.put_in_hands(P) + P.obj_integrity = src.obj_integrity + qdel(src) + else + user.visible_message(span_warning("[user] stops adjusting their grip on [src].")) + return + +/obj/item/rogueweapon/knuckledusters/enduring + name = "enduring knuckles" + desc = "A simple piece of harm molded in a holy mixture of steel and silver, its holy blessing long since faded. You are HIS weapon, you needn't fear Aeon." + icon_state = "psyknuckle" + is_silver = FALSE + smeltresult = /obj/item/ingot/steel + color = COLOR_FLOORTILE_GRAY + +/obj/item/rogueweapon/knuckledusters/enduring/attack_self(mob/living/user) + . = ..() + user.visible_message(span_warning("[user] starts adjusting their grip on[src].")) + if(do_after(user, 3 SECONDS)) + var/obj/item/rogueweapon/knuckledusters/enduring/P = new /obj/item/clothing/gloves/roguetown/knuckles/psydon/old(get_turf(src.loc)) + if(user.is_holding(src)) + user.dropItemToGround(src) + user.put_in_hands(P) + P.obj_integrity = src.obj_integrity + qdel(src) + else + user.visible_message(span_warning("[user] stops adjusting their grip on [src].")) + return + //Unique assassin/antag dagger. /obj/item/rogueweapon/huntingknife/idagger/steel/profane name = "profane dagger" diff --git a/code/game/objects/items/rogueweapons/ranged/_ammo.dm b/code/game/objects/items/rogueweapons/ranged/_ammo.dm index 44bf9ab071a..db1ca3b0dce 100644 --- a/code/game/objects/items/rogueweapons/ranged/_ammo.dm +++ b/code/game/objects/items/rogueweapons/ranged/_ammo.dm @@ -8,3 +8,28 @@ . = ..() . += span_info("Projectiles have maximum and minimum falloff ranges, with particular falloff factors for damage.") . += span_info("If the target is hit between the maximum and minimum tile range, then the full force is delivered.") + +/obj/item/ammo_casing/caseless/rogue/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list("shrink" = 0.5,"sx" = -10,"sy" = -6,"nx" = 11,"ny" = -6,"wx" = -4,"wy" = -6,"ex" = 2,"ey" = -6,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 8,"wflip" = 8,"eflip" = 0) + if("onbelt") + return list("shrink" = 0.3,"sx" = -2,"sy" = -5,"nx" = 4,"ny" = -5,"wx" = 0,"wy" = -5,"ex" = 2,"ey" = -5,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0) + +//parent variable to projectiles +/obj/projectile + var/is_silver_proj = FALSE //Self-explanatory. + +//handles the infliction of special effects upon projectile impact, such as silver-blighting +/obj/projectile/proc/do_special_projectile_effect(firer, obj/item/bodypart/affecting, mob/living/victim, selzone) + SHOULD_CALL_PARENT(TRUE) + SEND_SIGNAL(victim, COMSIG_PROJECTILE_ATTACK_EFFECT, firer, affecting, selzone, src) + SEND_SIGNAL(src, COMSIG_PROJECTILE_ATTACK_EFFECT_SELF, firer, affecting, victim, selzone) + + if(is_silver_proj && HAS_TRAIT(victim, TRAIT_SILVER_WEAK)) + SEND_SIGNAL(victim, COMSIG_FORCE_UNDISGUISE) + to_chat(victim, span_danger("Silver rebukes my presence! My vitae smolders, and my powers wane!")) + victim.adjust_fire_stacks(1, /datum/status_effect/fire_handler/fire_stacks/sunder) // Ammunition can't be blessed. + victim.ignite_mob() diff --git a/code/game/objects/items/rogueweapons/ranged/ammo_bolts.dm b/code/game/objects/items/rogueweapons/ranged/ammo_bolts.dm index c93167b3f30..c0e1b1bbd12 100644 --- a/code/game/objects/items/rogueweapons/ranged/ammo_bolts.dm +++ b/code/game/objects/items/rogueweapons/ranged/ammo_bolts.dm @@ -15,15 +15,6 @@ force = 10 slot_flags = ITEM_SLOT_HIP|ITEM_SLOT_MOUTH -/obj/item/ammo_casing/caseless/rogue/bolt/getonmobprop(tag) - . = ..() - if(tag) - switch(tag) - if("gen") - return list("shrink" = 0.5,"sx" = -10,"sy" = -6,"nx" = 11,"ny" = -6,"wx" = -4,"wy" = -6,"ex" = 2,"ey" = -6,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 8,"wflip" = 8,"eflip" = 0) - if("onbelt") - return list("shrink" = 0.3,"sx" = -2,"sy" = -5,"nx" = 4,"ny" = -5,"wx" = 0,"wy" = -5,"ex" = 2,"ey" = -5,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0) - /obj/item/ammo_casing/caseless/rogue/bolt/light name = "light bolt" desc = "A lighter, far less sturdier bolt. Made for smaller crossbows." @@ -318,6 +309,113 @@ poisonamount = 10 npc_simple_damage_mult = 10 //..or 1000 damage against a mindless mob. If you're using this against one, you're either a fool or have no other choice left. Godspeed. +// STAKE AMMO +/obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake + name = "siegestake" + desc = "A large branch that has been broken off of a boswellia tree, sharpened to a fine point. Though its prodigious \ + size - comparable to a fencepost in length and width - makes it cumbersome for hand-to-hand stakings, siegestakes like these are perfect for disrupting \ + curses from afar.
'Vampyres, gargoyles, necromancers, they're all the same - best when cooked well.'" + projectile_type = /obj/projectile/bullet/reusable/heavy_bolt/stake + possible_item_intents = list(/datum/intent/dagger/cut, /datum/intent/dagger/thrust, /datum/intent/dagger/thrust/pick) + icon_state = "heavystake" + max_integrity = 15 + force = 20 + +/obj/projectile/bullet/reusable/heavy_bolt/stake + name = "siegestake" + damage = 60 + armor_penetration = PEN_BSTEEL + ammo_type = /obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake + icon_state = "heavystake_proj" + hitsound = 'sound/combat/hits/hi_bolt (2).ogg' + speed = 0.8 + npc_simple_damage_mult = 10 //..or 750 damage against a mindless mob. + poisontype = /datum/reagent/water/blessed + poisonamount = 6 //Deals 60 BRUTE and 30 BURN, on top of some mild afterburn. + +/obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake_silver + name = "silver-tipped siegestake" + desc = "A large branch that has been broken off of a boswellia tree, sharpened to a fine point and tipped with blessed silver. Though its prodigious \ + size - comparable to a fencepost in length and width - makes it cumbersome for hand-to-hand stakings, siegestakes like these are perfect for disrupting \ + curses from afar.
'Requiescat in pace..' - '..may thee rest in peace.'" + projectile_type = /obj/projectile/bullet/reusable/heavy_bolt/stake_silver + possible_item_intents = list(/datum/intent/dagger/cut, /datum/intent/dagger/thrust, /datum/intent/dagger/thrust/pick) + icon_state = "silvheavystake" + max_integrity = 15 + force = 20 + is_silver = TRUE + is_lesser_silver = TRUE + +/obj/projectile/bullet/reusable/heavy_bolt/stake_silver + name = "silver-tipped siegestake" + damage = 70 // In essence, a lesser version of the traditional silver siegebolts. + armor_penetration = PEN_BSTEEL + ammo_type = /obj/item/ammo_casing/caseless/rogue/heavy_bolt/stake_silver + icon_state = "silvheavystake_proj" + hitsound = 'sound/combat/hits/hi_bolt (2).ogg' + speed = 0.6 + is_silver_proj = TRUE + npc_simple_damage_mult = 10 //..or 900 damage against a mindless mob. If you're using this against one, you're either a fool or have no other choice left. Godspeed. + poisontype = /datum/reagent/water/blessed + poisonamount = 4 //Deals 70 BRUTE and 40 BURN, on top of some mild afterburn. + +// + +/obj/item/ammo_casing/caseless/rogue/stake + name = "shotstake" + desc = "A small branch that has been broken off a boswellia tree, and sharpened to a fine point. While imbalanced for hand-to-hand stakings, the \ + heat-treated wood makes it perfect for being loaded-and-launched out of a staker." + projectile_type = /obj/projectile/bullet/reusable/stake + possible_item_intents = list(/datum/intent/dagger/cut, /datum/intent/dagger/thrust, /datum/intent/dagger/thrust/pick) + caliber = "stake" + icon_state = "stake" + dropshrink = 0.6 + max_integrity = 15 + force = 15 + slot_flags = ITEM_SLOT_HIP|ITEM_SLOT_MOUTH + +/obj/projectile/bullet/reusable/stake + name = "shotstake" + damage = 25 + damage_type = BRUTE + armor_penetration = PEN_HEAVY + ammo_type = /obj/item/ammo_casing/caseless/rogue/stake + icon_state = "stake_proj" + hitsound = 'sound/combat/hits/hi_bolt (1).ogg' + npc_simple_damage_mult = 6 //..or 150 damage against a mindless mob. + poisontype = /datum/reagent/water/blessed + poisonamount = 3 //Deals 25 BRUTE and 15 BURN, on top of some mild afterburn. + range = 15 + speed = 0.4 + min_range = MIN_BOLT_RANGE - 1 + max_range = MAX_BOLT_RANGE + dam_falloff_factor = DAM_FALLOFF_BOLT + embedchance = 100 + woundclass = BCLASS_PIERCE + +/obj/item/ammo_casing/caseless/rogue/stake/silver + name = "silver-tipped shotstake" + desc = "A small branch that has been broken off a boswellia tree, sharpened to a fine point, and tipped with blessed silver. While imbalanced for \ + hand-to-hand stakings, the heat-treated wood makes it perfect for being loaded-and-launched out of a staker.
'Requiescat in pace..' - '..may thee rest in peace.'" + projectile_type = /obj/projectile/bullet/reusable/stake/silver + possible_item_intents = list(/datum/intent/dagger/cut, /datum/intent/dagger/thrust, /datum/intent/dagger/thrust/pick) + icon_state = "silverstake" + max_integrity = 15 + force = 20 + is_silver = TRUE + is_lesser_silver = TRUE + +/obj/projectile/bullet/reusable/stake/silver + name = "silver-tipped shotstake" + damage = 40 + ammo_type = /obj/item/ammo_casing/caseless/rogue/stake/silver + icon_state = "silverstake_proj" + hitsound = 'sound/combat/hits/hi_bolt (1).ogg' + npc_simple_damage_mult = 6 //..or 300 damage against a mindless mob. + poisontype = /datum/reagent/water/blessed + poisonamount = 4 //Deals 40 BRUTE and 20 BURN, on top of some mild afterburn. + is_silver_proj = TRUE + // PYRO AMMO /obj/item/ammo_casing/caseless/rogue/bolt/pyro name = "pyroclastic bolt" diff --git a/code/game/objects/items/rogueweapons/ranged/crossbows.dm b/code/game/objects/items/rogueweapons/ranged/crossbows.dm index 28c7cb0f634..c71dba28030 100644 --- a/code/game/objects/items/rogueweapons/ranged/crossbows.dm +++ b/code/game/objects/items/rogueweapons/ranged/crossbows.dm @@ -386,3 +386,40 @@ max_integrity = 130 // + +/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/staker + name = "staker" + desc = "An unorthodoxic relative to the Otavan slurbow, rarely seen beyond the grasp of those who've dedicated their lyves to smiting \ + evyl. Unlike a traditional crossbow, the staker - as the name'd imply - exclusively fires blessed stakes, capable of piercing even the \ + toughest nitecreecher-hides from afar.
Purported to've originally been crafted by one of Grenzelhoft's finest monster hunters." + icon_state = "lesserstaker0" + item_state = "lesserstaker" + possible_item_intents = list(/datum/intent/shoot/crossbow/slurbow, /datum/intent/arc/crossbow/slurbow, /datum/intent/buttstroke) + mag_type = /obj/item/ammo_box/magazine/internal/shot/staker + chargingspeed = 20 + damfactor = 1 //No damage malus, as it uses proprietary ammunition. + accfactor = 1.3 + reloadtime = 20 + force = 15 + hasloadedsprite = FALSE + movingreload = TRUE + onehanded = TRUE + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_HIP + w_class = WEIGHT_CLASS_SMALL + wdefense = 2 + max_integrity = 100 + smeltresult = /obj/item/ingot/silver + smelt_bar_num = 1 + +/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/staker/get_mechanics_examine(mob/user) + . = ..() + . += span_info("Unlike traditional crossbows, the staker can only load-and-launch shotstakes; a unique munition type.") + . += span_info("Regular stakes, silver stakes and sharpened stakes - when brought before a campfire, brazier, or hearth - can be crafted into shotstakes.") + +/obj/item/ammo_box/magazine/internal/shot/staker + ammo_type = /obj/item/ammo_casing/caseless/rogue/stake + caliber = "stake" + max_ammo = 1 + start_empty = TRUE + +// diff --git a/code/modules/cargo/packsrogue/merchant/adventure_supplies.dm b/code/modules/cargo/packsrogue/merchant/adventure_supplies.dm index 65de953ae65..5a964bb96f7 100644 --- a/code/modules/cargo/packsrogue/merchant/adventure_supplies.dm +++ b/code/modules/cargo/packsrogue/merchant/adventure_supplies.dm @@ -105,3 +105,8 @@ name = "Boars Map" cost = 50 contains = list(/obj/item/hunting_map/boars) + +/datum/supply_pack/rogue/adventure_supplies/grapplinghook + name = "Grappling Hook" + cost = 320 + contains = list(/obj/item/grapplinghook) diff --git a/code/modules/cargo/packsrogue/merchant/apparel.dm b/code/modules/cargo/packsrogue/merchant/apparel.dm index 48d3bea376f..0f0dded36c7 100644 --- a/code/modules/cargo/packsrogue/merchant/apparel.dm +++ b/code/modules/cargo/packsrogue/merchant/apparel.dm @@ -209,6 +209,13 @@ /obj/item/quiver/bolt ) +/datum/supply_pack/rogue/apparel/quiver/stake + name = "Empty Shotstake Pouch" + cost = 20 + contains = list( + /obj/item/quiver/bolt/stake + ) + /datum/supply_pack/rogue/apparel/gwstrap name = "Greatweapon Strap" cost = 30 diff --git a/code/modules/cargo/packsrogue/merchant/armor/merch_armor_steel.dm b/code/modules/cargo/packsrogue/merchant/armor/merch_armor_steel.dm index f4c17dcc3e0..61a6c69dd28 100644 --- a/code/modules/cargo/packsrogue/merchant/armor/merch_armor_steel.dm +++ b/code/modules/cargo/packsrogue/merchant/armor/merch_armor_steel.dm @@ -172,15 +172,20 @@ contains = list(/obj/item/clothing/head/roguetown/helmet/heavy/barbute/great) /datum/supply_pack/rogue/armor_steel/helmet_pigface - name = "Helmet, Pigface" + name = "Helmet, Pigface Bascinet" cost = 90 // 2 Steel contains = list(/obj/item/clothing/head/roguetown/helmet/bascinet/pigface) /datum/supply_pack/rogue/armor_steel/helmet_hounskull - name = "Helmet, Hounskull" + name = "Helmet, Hounskull Bascinet" cost = 90 // 2 Steel contains = list(/obj/item/clothing/head/roguetown/helmet/bascinet/pigface/hounskull) +/datum/supply_pack/rogue/armor_steel/helmet_roundface + name = "Helmet, Roundface Bascinet" + cost = 90 // 2 Steel + contains = list(/obj/item/clothing/head/roguetown/helmet/bascinet/pigface/roundface) + /datum/supply_pack/rogue/armor_steel/helmet_bascinet name = "Helmet, Bascinet" cost = 90 // 2 Steel diff --git a/code/modules/clothing/rogueclothes/gloves/unique.dm b/code/modules/clothing/rogueclothes/gloves/unique.dm index 135669dee54..4f74b7717d4 100644 --- a/code/modules/clothing/rogueclothes/gloves/unique.dm +++ b/code/modules/clothing/rogueclothes/gloves/unique.dm @@ -81,7 +81,7 @@ /obj/item/clothing/gloves/roguetown/knuckles/psydon/ComponentInitialize() AddComponent(\ /datum/component/silverbless,\ - pre_blessed = BLESSING_NONE,\ + pre_blessed = BLESSING_PSYDONIAN,\ silver_type = SILVER_PSYDONIAN,\ added_force = 0,\ added_blade_int = 0,\ @@ -89,6 +89,53 @@ added_def = 2,\ ) +/obj/item/clothing/gloves/roguetown/knuckles/psydon/attack_self(mob/living/user) + . = ..() + user.visible_message(span_warning("[user] starts adjusting their grip on[src].")) + if(do_after(user, 3 SECONDS)) + var/obj/item/clothing/gloves/roguetown/knuckles/psydon/P = new /obj/item/rogueweapon/knuckledusters/psy(get_turf(src.loc)) + if(user.is_holding(src)) + user.dropItemToGround(src) + user.put_in_hands(P) + P.obj_integrity = src.obj_integrity + qdel(src) + else + user.visible_message(span_warning("[user] stops adjusting their grip on [src].")) + return + +/obj/item/clothing/gloves/roguetown/knuckles/silver + name = "silver knuckles" + desc = "A simple piece of harm that has been molded from pure silver, and further studded to stop errant strikes dead in their tracks. Though ostensibly holy, these heftsome knuckleweights are \ + more strongly associated with underground pugilistic tournaments; a solid right hook could drive more-than-enough force to blow a yeoman's jaw clean off." + icon_state = "silverknuckle" + is_silver = TRUE + smeltresult = /obj/item/ingot/silver + +/obj/item/clothing/gloves/roguetown/knuckles/silver/ComponentInitialize() + AddComponent(\ + /datum/component/silverbless,\ + pre_blessed = BLESSING_TENNITE,\ + silver_type = SILVER_TENNITE,\ + added_force = 0,\ + added_blade_int = 0,\ + added_int = 50,\ + added_def = 2,\ + ) + +/obj/item/clothing/gloves/roguetown/knuckles/silver/attack_self(mob/living/user) + . = ..() + user.visible_message(span_warning("[user] starts adjusting their grip on[src].")) + if(do_after(user, 3 SECONDS)) + var/obj/item/clothing/gloves/roguetown/knuckles/silver/P = new /obj/item/rogueweapon/knuckledusters/silver(get_turf(src.loc)) + if(user.is_holding(src)) + user.dropItemToGround(src) + user.put_in_hands(P) + P.obj_integrity = src.obj_integrity + qdel(src) + else + user.visible_message(span_warning("[user] stops adjusting their grip on [src].")) + return + /obj/item/clothing/gloves/roguetown/knuckles/psydon/old name = "enduring knuckles" desc = "A simple piece of harm molded in a holy mixture of steel and silver, its holy blessing long since faded. You are HIS weapon, you needn't fear Aeon." diff --git a/code/modules/clothing/rogueclothes/headwear/helmet/medium_helmet.dm b/code/modules/clothing/rogueclothes/headwear/helmet/medium_helmet.dm index 6e624a89406..ac6a2f46cff 100644 --- a/code/modules/clothing/rogueclothes/headwear/helmet/medium_helmet.dm +++ b/code/modules/clothing/rogueclothes/headwear/helmet/medium_helmet.dm @@ -506,6 +506,22 @@ ..() AddComponent(/datum/component/adjustable_clothing, (HEAD|EARS|HAIR), (HIDEEARS|HIDEHAIR), null, 'sound/items/visor.ogg', null, UPD_HEAD) //Standard helmet +/obj/item/clothing/head/roguetown/helmet/bascinet/pigface/roundface + name = "roundface bascinet" + desc = "A bascinet with a conical visor, favored by those without snouts and whiskers. Nestle a feather onto the rim to display your allegiance." + icon_state = "roundface" + item_state = "roundface" + worn_x_dimension = 64 + worn_y_dimension = 64 + mob_overlay_icon = 'icons/roguetown/clothing/onmob/64x64/head.dmi' + bloody_icon = 'icons/effects/blood64.dmi' + +/obj/item/clothing/head/roguetown/helmet/bascinet/pigface/roundface/ComponentInitialize() + ..() + AddComponent(/datum/component/adjustable_clothing, (HEAD|EARS|HAIR), (HIDEEARS|HIDEHAIR), null, 'sound/items/visor.ogg', null, UPD_HEAD) //Standard helmet + AddComponent(/datum/component/armour_filtering/negative, TRAIT_HONORBOUND) + AddComponent(/datum/component/armour_filtering/negative, TRAIT_FENCERDEXTERITY) + /obj/item/clothing/head/roguetown/helmet/bascinet/etruscan name = "klappvisier bascinet" desc = "A steel bascinet helmet with a straight visor, or \"klappvisier\", which can greatly reduce visibility. Though it was first developed in Etrusca, it is also widely used in Grenzelhoft." diff --git a/code/modules/clothing/rogueclothes/rings.dm b/code/modules/clothing/rogueclothes/rings.dm index 1ca761a5fb8..e1a3f42d88d 100644 --- a/code/modules/clothing/rogueclothes/rings.dm +++ b/code/modules/clothing/rogueclothes/rings.dm @@ -16,6 +16,8 @@ drop_sound = 'sound/foley/coinphy (1).ogg' salvage_result = null alternate_worn_layer = NECK_LAYER + no_loot_taint = TRUE + dropshrink = 0.4 var/overarmor sellprice = 10 // CC Edit diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm index ad1fb514fa5..fbbe5f811a7 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm @@ -61,6 +61,13 @@ gloves = /obj/item/clothing/gloves/roguetown/bandages/weighted H.change_stat(STATKEY_PER, 1) H.change_stat(STATKEY_INT, 1) //Changes statblock from 3/3/3/-2/-1/0 to 3/3/3/-1/-1/1. Note that this comes at the cost of losing the 'critical resistance' trait, and retaining the unarmorable status. + if("Katar") + H.adjust_skillrank_up_to(/datum/skill/combat/wrestling, SKILL_LEVEL_EXPERT, TRUE) + r_hand = /obj/item/rogueweapon/katar/psydon/preblessed + gloves = /obj/item/clothing/gloves/roguetown/bandages/weighted + if("Knuckledusters") + H.adjust_skillrank_up_to(/datum/skill/combat/wrestling, SKILL_LEVEL_EXPERT, TRUE) + r_hand = /obj/item/rogueweapon/knuckledusters/psy var/techniques = list("Dropkick - Pushback + Extra Damage", "Chokeslam - Stamina Damage", "Stunner - Dazed Debuff", "Headbutt - Vulnerable Debuff") // cool wrestling moves for non-magic guys. var/technique_choice = input(H,"Choose your TECHNIQUE.", "TOSS THEM.") as anything in techniques switch(technique_choice) diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/sojourner.dm b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/sojourner.dm index b541fa4652d..ea9e8712ca9 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/sojourner.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/sojourner.dm @@ -78,7 +78,7 @@ if("katar") H.put_in_hands(new /obj/item/rogueweapon/katar(H)) if("knuckledusters") - H.put_in_hands(new /obj/item/clothing/gloves/roguetown/knuckles(H)) + H.put_in_hands(new /obj/item/rogueweapon/knuckledusters/psy(H)) head = /obj/item/clothing/head/roguetown/headband/naledi mask = /obj/item/clothing/mask/rogue/lordmask/naledi/sojourner diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/_classagemods.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/_classagemods.dm index 87df31eebb7..cb17d37935f 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/_classagemods.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/_classagemods.dm @@ -267,6 +267,7 @@ /datum/skill/combat/swords = SKILL_LEVEL_EXPERT, /datum/skill/combat/maces = SKILL_LEVEL_EXPERT, /datum/skill/combat/whipsflails = SKILL_LEVEL_EXPERT, + /datum/skill/combat/crossbows = SKILL_LEVEL_EXPERT, /datum/skill/combat/axes = SKILL_LEVEL_EXPERT, /datum/skill/combat/polearms = SKILL_LEVEL_EXPERT, /datum/skill/combat/staves = SKILL_LEVEL_EXPERT diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index 232558b456b..cd6d456d479 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -492,7 +492,7 @@ H.verbs |= /mob/living/carbon/human/proc/faith_test //Allows the Exorcist to interrogate others for their faith. Trait's agnostically worded, to allow more flexiable usage by Pantheoneers and Ascendants in this role. H.verbs |= /mob/living/carbon/human/proc/torture_victim //Not as scary as it sounds. Mostly. Okay, just a little bit. if(H.mind) - var/silver = list("Silver Dagger","Silver Shortsword","Silver Arming Sword","Silver Rapier","Silver Longsword","Silver Broadsword","Silver Mace","Silver Warhammer","Silver Morningstar","Silver Whip","Silver War Axe","Silver Poleaxe","Silver Spear","Silver Quarterstaff","Broadsword - Steel") + var/silver = list("Silver Dagger","Silver Shortsword","Silver Arming Sword","Silver Rapier","Silver Longsword","Silver Broadsword","Silver Executioner Sword","Silver Mace","Silver Warhammer","Silver Morningstar","Silver Whip","Silver War Axe","Silver Tomahawk","Silver Poleaxe","Silver Spear","Silver Halberd","Silver Quarterstaff","Silver Katar (+1 Athletics)","Silver Claws (+1 Athletics)","Silver Knuckledusters (+1 Athletics)", "Stake Launcher + 24 Shotstakes") var/silver_choice = input(H, "Choose your WEAPON.", "PREPARE YOUR ARMS.") as anything in silver //Trim down to five or six choices, later? See what's the most popular, first. Gives people a chance to experiment with all of the new silver weapons. switch(silver_choice) if("Silver Dagger") @@ -519,6 +519,9 @@ H.adjust_skillrank_up_to(/datum/skill/combat/swords, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/sword/long/kriegmesser/silver beltr = /obj/item/rogueweapon/scabbard/sword + if("Silver Executioner Sword") + H.adjust_skillrank_up_to(/datum/skill/combat/swords, SKILL_LEVEL_JOURNEYMAN, TRUE) + r_hand = /obj/item/rogueweapon/sword/long/exe/silver if("Silver Mace") H.adjust_skillrank_up_to(/datum/skill/combat/maces, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/mace/steel/silver @@ -534,6 +537,9 @@ if("Silver War Axe") H.adjust_skillrank_up_to(/datum/skill/combat/axes, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/stoneaxe/woodcut/silver + if("Silver Tomahawk") + H.adjust_skillrank_up_to(/datum/skill/combat/axes, SKILL_LEVEL_JOURNEYMAN, TRUE) + r_hand = /obj/item/rogueweapon/stoneaxe/handaxe/silver if("Silver Poleaxe") H.adjust_skillrank_up_to(/datum/skill/combat/axes, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/greataxe/silver @@ -542,35 +548,60 @@ H.adjust_skillrank_up_to(/datum/skill/combat/polearms, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/spear/silver backr = /obj/item/rogueweapon/scabbard/gwstrap + if("Silver Halberd") + H.adjust_skillrank_up_to(/datum/skill/combat/polearms, SKILL_LEVEL_JOURNEYMAN, TRUE) + r_hand = /obj/item/rogueweapon/halberd/silver + backr = /obj/item/rogueweapon/scabbard/gwstrap if("Silver Quarterstaff") H.adjust_skillrank_up_to(/datum/skill/combat/staves, SKILL_LEVEL_JOURNEYMAN, TRUE) r_hand = /obj/item/rogueweapon/woodstaff/quarterstaff/silver backr = /obj/item/rogueweapon/scabbard/gwstrap - if("Broadsword - Steel") - H.adjust_skillrank_up_to(/datum/skill/combat/swords, SKILL_LEVEL_JOURNEYMAN, TRUE) - r_hand = /obj/item/rogueweapon/sword/long/broadsword/steel - backr = /obj/item/rogueweapon/scabbard/gwstrap + if("Silver Katar (+1 Athletics)") //For these 2 unarmed weapon options, get a level of athletics as a consolation prize, since this class gets jman unarmed already, and expert would be OP. + if(H.age != AGE_OLD) //BUT ONLY IF THE CHARACTER IS NOT OLD, because old exorcists get expert EVERYTHING anyway, no need for compensation. + H.adjust_skillrank_up_to(/datum/skill/misc/athletics, SKILL_LEVEL_EXPERT, TRUE) + r_hand = /obj/item/rogueweapon/katar/silver + if("Silver Claws (+1 Athletics)") + if(H.age != AGE_OLD) + H.adjust_skillrank_up_to(/datum/skill/misc/athletics, SKILL_LEVEL_EXPERT, TRUE) + r_hand = /obj/item/rogueweapon/handclaw/gronn/silver + if("Silver Knuckledusters (+1 Athletics)") + if(H.age != AGE_OLD) + H.adjust_skillrank_up_to(/datum/skill/misc/athletics, SKILL_LEVEL_EXPERT, TRUE) + r_hand = /obj/item/rogueweapon/knuckledusters/silver + if("Stake Launcher + 24 Shotstakes") + H.adjust_skillrank_up_to(/datum/skill/combat/crossbows, SKILL_LEVEL_JOURNEYMAN, TRUE) + r_hand = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/staker + beltr = /obj/item/quiver/bolt/stake/standard - var/sidearm = list("Dagger - Steel", "Parrying Dagger - Steel", "Heavy Dagger - Steel", "Greatshield", "Blessed Silver Stake", "Blessed Silver Shovel") + var/sidearm = list("Dagger", "Parrying Dagger", "Heavy Dagger", "Broadsword", "Greatshield", "Stake Launcher", "Blessed Silver Stake", "Blessed Silver Hunting Knife", "Blessed Silver Shovel") var/sidearm_choice = input(H, "Choose your SIDEARM.", "SAY YOUR PRAYERS.") as anything in sidearm switch(sidearm_choice) - if("Dagger - Steel") + if("Dagger") l_hand = /obj/item/rogueweapon/huntingknife/idagger/steel H.adjust_skillrank_up_to(/datum/skill/combat/knives, SKILL_LEVEL_JOURNEYMAN, TRUE) - if("Parrying Dagger - Steel") + if("Parrying Dagger") l_hand = /obj/item/rogueweapon/huntingknife/idagger/steel/parrying H.adjust_skillrank_up_to(/datum/skill/combat/knives, SKILL_LEVEL_JOURNEYMAN, TRUE) - if("Heavy Dagger - Steel") + if("Heavy Dagger") l_hand = /obj/item/rogueweapon/huntingknife/combat H.adjust_skillrank_up_to(/datum/skill/combat/knives, SKILL_LEVEL_JOURNEYMAN, TRUE) + if("Broadsword") + H.adjust_skillrank_up_to(/datum/skill/combat/swords, SKILL_LEVEL_JOURNEYMAN, TRUE) + l_hand = /obj/item/rogueweapon/sword/long/broadsword/steel + if("Greatshield") + l_hand = /obj/item/rogueweapon/shield/tower/metal + H.adjust_skillrank_up_to(/datum/skill/combat/shields, SKILL_LEVEL_JOURNEYMAN, TRUE) + if("Stake Launcher") + l_hand = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/staker + H.adjust_skillrank_up_to(/datum/skill/combat/crossbows, SKILL_LEVEL_JOURNEYMAN, TRUE) if("Blessed Silver Stake") l_hand = /obj/item/rogueweapon/huntingknife/idagger/silver/stake/preblessed H.adjust_skillrank_up_to(/datum/skill/combat/knives, SKILL_LEVEL_JOURNEYMAN, TRUE) + if("Blessed Silver Hunting Knife") + l_hand = /obj/item/rogueweapon/huntingknife/combat/silver/preblessed + H.adjust_skillrank_up_to(/datum/skill/combat/knives, SKILL_LEVEL_JOURNEYMAN, TRUE) if("Blessed Silver Shovel") l_hand = /obj/item/rogueweapon/shovel/silver/preblessed //Unlocks the secret 'Shovel Knight' subclass. No dagger skills if you take this. Doesn't scale off anything, I think. Raw style. - if("Greatshield") - l_hand = /obj/item/rogueweapon/shield/tower/metal - H.adjust_skillrank_up_to(/datum/skill/combat/shields, SKILL_LEVEL_JOURNEYMAN, TRUE) var/discipline = list("Traditionalist - Hauberk & Alchemics (+I INT / -I LCK)", "Reformist - Chainmaille & Dodge Expert (+I SPD)", "Orthodoxist - Cuirass & Plate Training (+I CON / -I SPD)") var/discipline_choice = input(H, "Choose your DISCIPLINE.", "FACE YOUR NIGHTMARE.") as anything in discipline @@ -609,7 +640,7 @@ armor = /obj/item/clothing/suit/roguetown/armor/plate/cuirass/fluted shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/puritan belt = /obj/item/storage/belt/rogue/leather/black - var/helmets = list("Puritan's Armored Hat", "Visored Sallet", "Volfskulle Bascinet", "Fluted Armet", "Fluted Armet With Greatplume", "Sugarloaf Greathelm", "Barbute Greathelm") + var/helmets = list("Puritan's Armored Hat", "Visored Sallet", "Volfskulle Bascinet", "Fluted Armet", "Fluted Armet With Greatplume", "Sugarloaf Greathelm", "Barbute Greathelm", "Pigface Bascinet", "Roundface Bascinet") var/helmet_choice = input(H, "Choose your VISAGE.", "GET PSYCHED.") as anything in helmets switch(helmet_choice) if("Puritan's Armored Hat") @@ -626,6 +657,10 @@ head = /obj/item/clothing/head/roguetown/helmet/heavy/bucket/crusader if("Barbute Greathelm") head = /obj/item/clothing/head/roguetown/helmet/heavy/barbute/great + if("Pigface Bascinet") + head = /obj/item/clothing/head/roguetown/helmet/bascinet/pigface + if("Roundface Bascinet") + head = /obj/item/clothing/head/roguetown/helmet/bascinet/pigface/roundface shoes = /obj/item/clothing/shoes/roguetown/boots/leather/reinforced pants = /obj/item/clothing/under/roguetown/tights/puritan diff --git a/code/modules/roguetown/roguecrafting/crafting/ammo_and_ranged.dm b/code/modules/roguetown/roguecrafting/crafting/ammo_and_ranged.dm index a21b0d339fe..ef792023382 100644 --- a/code/modules/roguetown/roguecrafting/crafting/ammo_and_ranged.dm +++ b/code/modules/roguetown/roguecrafting/crafting/ammo_and_ranged.dm @@ -505,6 +505,218 @@ verbage = "smooths" craftdiff = 0 +// + +/datum/crafting_recipe/roguetown/survival/silverstake_campfire + name = "heat-treat silver stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake = 1) + structurecraft = /obj/machinery/light/rogue/campfire + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/silverstake_hearth + name = "heat-treat silver stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake = 1) + structurecraft = /obj/machinery/light/rogue/hearth + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/silverstake_brazier + name = "heat-treat silver stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake = 1) + structurecraft = /obj/machinery/light/rogue/firebowl + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/otavanstake_campfire + name = "heat-treat otavan stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy = 1) + structurecraft = /obj/machinery/light/rogue/campfire + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/otavanstake_hearth + name = "heat-treat otavan stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy = 1) + structurecraft = /obj/machinery/light/rogue/hearth + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/otavanstake_brazier + name = "heat-treat otavan stake into silver shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy = 1) + structurecraft = /obj/machinery/light/rogue/firebowl + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/silverhandstake_campfire + name = "heat-treat silver handstake into silver shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy/lesser = 1) + structurecraft = /obj/machinery/light/rogue/campfire + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/silverhandstake_hearth + name = "heat-treat silver handstake into silver shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy/lesser = 1) + structurecraft = /obj/machinery/light/rogue/hearth + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/silverhandstake_brazier + name = "heat-treat silver handstake into silver shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake/silver, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/silver/stake/psy/lesser = 1) + structurecraft = /obj/machinery/light/rogue/firebowl + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/sharpstake_campfire + name = "heat-treat sharpened stake into shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/stake = 1) + structurecraft = /obj/machinery/light/rogue/campfire + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/sharpstake_hearth + name = "heat-treat sharpened stake into shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/stake = 1) + structurecraft = /obj/machinery/light/rogue/hearth + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/sharpstake_brazier + name = "heat-treat sharpened stake into shotstakes (x3)" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/rogueweapon/huntingknife/idagger/stake = 1) + structurecraft = /obj/machinery/light/rogue/firebowl + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/stake_campfire + name = "heat-treat stake into shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/grown/log/tree/stake = 1) + structurecraft = /obj/machinery/light/rogue/campfire + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/stake_hearth + name = "heat-treat stake into shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/grown/log/tree/stake = 1) + structurecraft = /obj/machinery/light/rogue/hearth + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +/datum/crafting_recipe/roguetown/survival/stake_brazier + name = "heat-treat stake into shotstake" + result = list( + /obj/item/ammo_casing/caseless/rogue/stake, + ) + reqs = list(/obj/item/grown/log/tree/stake = 1) + structurecraft = /obj/machinery/light/rogue/firebowl + craftdiff = 0 + craftsound = 'sound/misc/frying.ogg' + req_table = FALSE + verbage_simple = "heat-treat" + verbage = "heat-treats" + +// + // Caustic Edit start // Obsidian Arrows diff --git a/code/modules/roguetown/roguecrafting/engineering.dm b/code/modules/roguetown/roguecrafting/engineering.dm index 3b3708a51c0..8c58075b65f 100644 --- a/code/modules/roguetown/roguecrafting/engineering.dm +++ b/code/modules/roguetown/roguecrafting/engineering.dm @@ -223,6 +223,34 @@ skillcraft = /datum/skill/craft/engineering craftdiff = 3 +/datum/crafting_recipe/roguetown/engineering/crossbow/slurbow + name = "slurbow" + category = "Weapons" + result = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/slurbow + reqs = list( + /obj/item/ingot/steel = 1, + /obj/item/natural/fibers = 1, + /obj/item/natural/wood/plank = 1, + /obj/item/grown/log/tree/small = 1, + ) + structurecraft = /obj/machinery/artificer_table + skillcraft = /datum/skill/craft/engineering + craftdiff = 3 + +/datum/crafting_recipe/roguetown/engineering/crossbow/staker + name = "staker" + category = "Weapons" + result = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow/staker + reqs = list( + /obj/item/ingot/silver = 1, + /obj/item/natural/fibers = 1, + /obj/item/natural/wood/plank = 1, + /obj/item/grown/log/tree/small = 1, + ) + structurecraft = /obj/machinery/artificer_table + skillcraft = /datum/skill/craft/engineering + craftdiff = 4 + /datum/crafting_recipe/roguetown/engineering/twentybolts name = "crossbow bolt (x20)" category = "Ammo" diff --git a/code/modules/roguetown/roguecrafting/leather/leather_container_recipes.dm b/code/modules/roguetown/roguecrafting/leather/leather_container_recipes.dm index cd92e7d52d8..cc78212b6c0 100644 --- a/code/modules/roguetown/roguecrafting/leather/leather_container_recipes.dm +++ b/code/modules/roguetown/roguecrafting/leather/leather_container_recipes.dm @@ -66,6 +66,12 @@ reqs = list(/obj/item/natural/hide/cured = 2, /obj/item/natural/fibers = 1) +/datum/crafting_recipe/roguetown/leather/container/stakepouch + name = "quiver, shotstake pouch" + result = /obj/item/quiver/bolt/stake + reqs = list(/obj/item/natural/hide/cured = 2, + /obj/item/natural/fibers = 1) + /datum/crafting_recipe/roguetown/leather/container/heavyboltpouch name = "quiver, heavy bolt pouch" result = /obj/item/quiver/bolt/heavy diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm index 71c04c5ec99..1ba6b0ec9e9 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm @@ -964,6 +964,13 @@ additional_items = list(/obj/item/ingot/steel) created_item = /obj/item/clothing/head/roguetown/helmet/bascinet/pigface/hounskull +/datum/anvil_recipe/armor/steel/helmetroundface + name = "Bascinet, Roundface, Steel (+1 Steel)" + req_bar = /obj/item/ingot/steel + additional_items = list(/obj/item/ingot/steel) + created_item = /obj/item/clothing/head/roguetown/helmet/bascinet/pigface/roundface + display_category = ITEM_CAT_ARMOR_HELMETS + /datum/anvil_recipe/armor/steel/etruscanbascinet name = "Bascinet, Klappvisier, Steel (+1 Steel)" req_bar = /obj/item/ingot/steel diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm index 0a30894681c..49427dcc194 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm @@ -1051,6 +1051,12 @@ req_bar = /obj/item/ingot/silver created_item = /obj/item/rogueweapon/huntingknife/idagger/silver +/datum/anvil_recipe/weapons/silver/dagger + name = "Hunting Knife, Silver" + req_bar = /obj/item/ingot/silver + created_item = /obj/item/rogueweapon/huntingknife/combat/silver + display_category = ITEM_CAT_WEAPONS_DAGGERS + /datum/anvil_recipe/weapons/silver/shortsword name = "Shortsword, Silver" req_bar = /obj/item/ingot/silver diff --git a/icons/obj/items/scabbard.dmi b/icons/obj/items/scabbard.dmi index 239f548131c..0e1c9d30199 100644 Binary files a/icons/obj/items/scabbard.dmi and b/icons/obj/items/scabbard.dmi differ diff --git a/icons/roguetown/clothing/head.dmi b/icons/roguetown/clothing/head.dmi index 98638ad76b9..141268d997a 100644 Binary files a/icons/roguetown/clothing/head.dmi and b/icons/roguetown/clothing/head.dmi differ diff --git a/icons/roguetown/clothing/onmob/64x64/head.dmi b/icons/roguetown/clothing/onmob/64x64/head.dmi index c00c6ba93fa..d38a24e8ffe 100644 Binary files a/icons/roguetown/clothing/onmob/64x64/head.dmi and b/icons/roguetown/clothing/onmob/64x64/head.dmi differ diff --git a/icons/roguetown/clothing/onmob/head.dmi b/icons/roguetown/clothing/onmob/head.dmi index 73200fed28c..b8e9c82da58 100644 Binary files a/icons/roguetown/clothing/onmob/head.dmi and b/icons/roguetown/clothing/onmob/head.dmi differ diff --git a/icons/roguetown/clothing/onmob/shirts.dmi b/icons/roguetown/clothing/onmob/shirts.dmi index be53e8ad402..52899490fd5 100644 Binary files a/icons/roguetown/clothing/onmob/shirts.dmi and b/icons/roguetown/clothing/onmob/shirts.dmi differ diff --git a/icons/roguetown/weapons/ammo.dmi b/icons/roguetown/weapons/ammo.dmi index 92645cbd52f..7a3cbd29650 100644 Binary files a/icons/roguetown/weapons/ammo.dmi and b/icons/roguetown/weapons/ammo.dmi differ diff --git a/icons/roguetown/weapons/daggers32.dmi b/icons/roguetown/weapons/daggers32.dmi index 9b9f61b90aa..0c9b6ef3777 100644 Binary files a/icons/roguetown/weapons/daggers32.dmi and b/icons/roguetown/weapons/daggers32.dmi differ diff --git a/icons/roguetown/weapons/misc32.dmi b/icons/roguetown/weapons/misc32.dmi index 3f757ffcb79..d43d54331c6 100644 Binary files a/icons/roguetown/weapons/misc32.dmi and b/icons/roguetown/weapons/misc32.dmi differ