Skip to content
Open
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
35 changes: 27 additions & 8 deletions code/_onclick/item_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -302,12 +302,15 @@
return ATTACK_FAILED

var/final_force = CALCULATE_FORCE(attacking_item, attack_modifiers)
// DARKPACK EDIT ADD START
if(isliving(user))
var/mob/living/living_user = user
var/stat_multiplier = living_user.st_get_stat(STAT_MELEE) * 0.4
final_force *= stat_multiplier
// DARKPACK EDIT ADD END
// DARKPACK EDIT ADD START - STORYTELLER_ROLLS/STORYTELLER_STATS
// This is pretty evil, but we are gonna convert all the tg force into the +# that melee weapons have listed.
// This means we can do stuff like set force of a baseball bat to 2 TTRPG_DAM and it just works.
var/bonus_dice = round(final_force / (1 TTRPG_DAMAGE))
Comment thread
chazzyjazzy marked this conversation as resolved.
var/datum/storyteller_roll/damage/damage_roll = new()
damage_roll.applicable_stats = list(attacking_item.st_damage_stat)
var/damage_roll_result = damage_roll.st_roll(user, src, bonus_dice)
final_force = damage_roll_result TTRPG_DAMAGE
// DARKPACK EDIT ADD END
if(final_force <= 0)
return 0

Expand Down Expand Up @@ -348,8 +351,24 @@
if(mob_biotypes & (MOB_ROBOTIC|MOB_MINERAL|MOB_SKELETAL)) // this should probably check hit bodypart for humanoids
final_force *= attacking_item.get_demolition_modifier(src)

// DARKPACK EDIT ADD START - (Makes Melee do Something)
final_force += final_force * (user.st_get_stat(STAT_MELEE) * 0.1)
// DARKPACK EDIT ADD START - STORYTELLER_ROLLS/STORYTELLER_STATS
var/datum/storyteller_roll/attack/attack_roll = new()
attack_roll.applicable_stats = list(attacking_item.st_attack_ability, attacking_item.st_attack_attribute)
attack_roll.difficulty = attacking_item.attack_difficulty
var/attack_roll_result = attack_roll.st_roll(user, src)

// What i want to do is acctually have it return if not success. But that creates bad visual feedback as all the FX still play. just give them them SOME damage..
Comment thread
chazzyjazzy marked this conversation as resolved.
if(attack_roll_result == ROLL_SUCCESS)
// This is pretty evil, but we are gonna convert all the tg force into the +# that melee weapons have listed.
// This means we can do stuff like set force of a baseball bat to 2 TTRPG_DAM and it just works.
var/bonus_dice = round(final_force / (1 TTRPG_DAMAGE))
var/datum/storyteller_roll/damage/damage_roll = new()
damage_roll.applicable_stats = list(attacking_item.st_damage_stat)
var/damage_roll_result = damage_roll.st_roll(user, src, bonus_dice)

final_force = max(damage_roll_result TTRPG_DAMAGE, 1 TTRPG_DAMAGE)
Comment on lines +361 to +369
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so i don't get it - say a baseball bat has original force = 40. this makes bonus dice = 4. so if i have 0 strength, then the roll becomes 4 dice rolled for damage, giving me 10-40 damage which seems good. but then if i have 4 strength, then i have 8 potential dice, no? meaning strength, the stat which affects the damage roll, is actually additive to the force, not the foundation of the damage, as now my range is 10-80.

what i'm trying to say here is that this (the usage of ttrpg accurate rolls in melee) is an additive buff to the calculation of melee force, rather than a reworking of how the damage is created in the first place (which may be the intent of the pr?)

i don't exactly have an issue with this moreso than i feel like it may unintentionally up-end the balance - i see what you were trying to do, and it is smart

then again if the point is to have a better bandaid than my 'makes melee do something' pr, then this definitely does that, i think, if a bit stronger

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my idea is so that i can use the old force varible without to much hastle and still get mostly accurate numbers. This lets me use force as a representation of the + # that weapons have.

VTM and WTA. Oh god these charts aren't the same. I think i will use wta numbers cause its more complete. We will get to that when we get to that.
Image

Image

So if i set the weilded axe damage to force = 3 TTRPG_DAMAGE it comes out to mostly ttrpg accurate. That works out to a small buff for the axe even. Skimming the numbers most weapons prob wont change too much. Most of the significate stuff also has lower difficutly (knife damage drops a ton but it has lower difficulty)

(as in the ttrpg) it means that the bonuses of weapons scales alot harder when you have shitty stats but high stat characters can kinda john-wick most weapons. Its interesting for sure.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is interesting - and what youre doing is smart even without an audit of damage numbers or whatever, but again i feel like this would make melee weapons far stronger on characters who are built for it, not that i have a problem with that per se, i just feel like perhaps that was not intended?

else
final_force = 1 TTRPG_DAMAGE // "SOME damage" in question
// DARKPACK EDIT ADD END

var/wounding = attacking_item.wound_bonus
Expand Down
6 changes: 6 additions & 0 deletions modular_darkpack/master_files/code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,9 @@
var/onflooricon
var/onflooricon_state
var/masquerade_violating

// STORYTELLR_STATS
var/datum/st_stat/st_attack_ability = STAT_DEXTERITY
var/datum/st_stat/st_attack_attribute = STAT_MELEE
var/attack_difficulty = 6
var/datum/st_stat/st_damage_stat = STAT_STRENGTH
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,9 @@
item_flags = DROPDEL
masquerade_violating = TRUE
obj_flags = NONE
st_attack_attribute = STAT_BRAWL

/obj/item/gangrel_claws/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, INNATE_TRAIT)

/obj/item/gangrel_claws/pre_attack(atom/target, mob/living/user, list/modifiers, list/attack_modifiers)
. = ..()
// Based on V20
if(isliving(user))
var/mob/living/living_user = user
force = (living_user.st_get_stat(STAT_STRENGTH) + 1) TTRPG_DAMAGE
1 change: 0 additions & 1 deletion modular_darkpack/modules/weapons/code/melee.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@
ONFLOOR_ICON_HELPER('modular_darkpack/modules/weapons/icons/weapons_onfloor.dmi')
icon_state = "rapier"


/obj/item/melee/sabre/rapier/Initialize(mapload)
. = ..()
AddComponent(/datum/component/selling, 700, "rapier", FALSE)
Expand Down
Loading