Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions code/game/objects/items/quiver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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 //
//////////////
Expand Down
15 changes: 15 additions & 0 deletions code/game/objects/items/rogueweapons/melee/axe/axe_intents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
15 changes: 0 additions & 15 deletions code/game/objects/items/rogueweapons/melee/axe/axes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/rogueweapons/melee/blunt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
33 changes: 33 additions & 0 deletions code/game/objects/items/rogueweapons/melee/knives.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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. </br>''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"
Expand Down
128 changes: 128 additions & 0 deletions code/game/objects/items/rogueweapons/melee/special.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
25 changes: 25 additions & 0 deletions code/game/objects/items/rogueweapons/ranged/_ammo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Check failure on line 28 in code/game/objects/items/rogueweapons/ranged/_ammo.dm

View workflow job for this annotation

GitHub Actions / Run Linters / linters

undefined var: "COMSIG_PROJECTILE_ATTACK_EFFECT"

Check failure on line 28 in code/game/objects/items/rogueweapons/ranged/_ammo.dm

View workflow job for this annotation

GitHub Actions / Run Linters / linters

undefined var: "COMSIG_PROJECTILE_ATTACK_EFFECT"
SEND_SIGNAL(src, COMSIG_PROJECTILE_ATTACK_EFFECT_SELF, firer, affecting, victim, selzone)

Check failure on line 29 in code/game/objects/items/rogueweapons/ranged/_ammo.dm

View workflow job for this annotation

GitHub Actions / Run Linters / linters

undefined var: "COMSIG_PROJECTILE_ATTACK_EFFECT_SELF"

Check failure on line 29 in code/game/objects/items/rogueweapons/ranged/_ammo.dm

View workflow job for this annotation

GitHub Actions / Run Linters / linters

undefined var: "COMSIG_PROJECTILE_ATTACK_EFFECT_SELF"

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()
Loading
Loading