Throwing (Calculations, strategy, etc)


#1

So I’ve taken a liking to throwing based characters, namely because of how stupidly fast you gain skill in it.

Can I hear a detailed explanation of how throwing range, damage, etc, is calculated? It seems the throwing skill got changed significantly from the original Cataclysm.

How does damage and range scale with skill level?

Also what is “Throwing Bonus” for the Dexterity stat? Is that applied to “To hit” or applied to damage directly like the strength melee bonus?

All I’ve noticed is that lighter weapons get much better range. As such I’ve found spikes to be a nice starting weapon superior to a bag of rocks or spears.


I think throwing weapons is kinda flawed
#2

Bump, I’m interested in this too. Has this already been discussed somewhere?


#3

Maybe it’s just me, but I’ve found javelins to be the best throwing weapon. I mainly throw when I’m hunting small game like crows or rabbits; I don’t throw when fighting zombies unless it’s something like a boomer.


#4

In previous versions, Wooden Javelins were pretty amazing at clearing out towns, as you could take out a Zombie in one or two throws if your throwing skill is decent. In this version I’ve had trouble killing Zombies with a throwing skill of 3, but I think at level 6 it’s as strong as it was before. With all throwing weapons, you have to be careful about how many enemies you take on at once, because you need to be able to pick up the items you’ve thrown


#5

Immediately on starting I smash lockers, grab a rock, craft spikes.

Not quite as potent as javelins but if you don’t start near woods they’ll tide you over.

On the plus side, though, they work with the railgun bionic.


#6

Can anyone answer the OP’s questions? I’m super interested in the details as well.


#7

If someone has a minute, a little data mining on github will probably give you the answer if you want a straight calculation.


#8

Quick search on gitHub

std::string message; int real_dam = (thrown.weight() / 452 + thrown.type->melee_dam / 2 + p.str_cur / 2) / double(2 + double(thrown.volume() / 4)); if (real_dam > thrown.weight() / 40) real_dam = thrown.weight() / 40; if (p.has_active_bionic("bio_railgun") && (thrown.made_of("iron") || thrown.made_of("steel"))) { real_dam *= 2; } int dam = real_dam;

Not being familiar with the code though, I can’t quite understand this. Dividing the weight by 452 seems really high, so I’m assuming weight is represented in smaller units than described in the wiki. Also, I dunno how melee_dam is calculated for the item (is it some combination of cutting,piercing, & bashing damage?) I assume p.str_cur is the character’s strength, and I’m not sure how the volume of the thrown item is calculated.

Man, I’m getting obsessed with this game. I’m probably going to end up downloading the code so I can step through it, and eventually start contributing :stuck_out_tongue:


#9

throwing is great for starting out. since it hink everyone should grab 3 rocks when you first leave your shelter. you throw it at rabbits and squirrels as you wander. this lets you trian throwing and butcher quickly. plus you have almost unlimited rocks. you can throw and treat from stuff to soften up. later game, its not as effective. throwing explosives is very good, but there are limited numbers.


#10

I can kill just about anything with my wooden javelins, from pretty far away. The main problem you run into is being overwhelmed by enemies, and not having the opportunity to pick your thrown items back up. But that’s what back-up weapons are for :slight_smile:


#11

my coked up survivors have often managed to pelt moose and zombie brutes to death with copious application of rock.



#12


[hr]

[quote=“Paquito, post:8, topic:3147”]Not being familiar with the code though, I can’t quite understand this. Dividing the weight by 452 seems really high, so I’m assuming weight is represented in smaller units than described in the wiki. Also, I dunno how melee_dam is calculated for the item (is it some combination of cutting,piercing, & bashing damage?) I assume p.str_cur is the character’s strength, and I’m not sure how the volume of the thrown item is calculated.

Man, I’m getting obsessed with this game. I’m probably going to end up downloading the code so I can step through it, and eventually start contributing :p[/quote]
Grams actually. And melee_dam is just bashing damage, though IIRC the amount is further modified later on to include a chance of the item’s cutting damage as well. Volume is defined in the JSON files for each item, and is currently defined in 250mL units. The damage is also modified later on based on how well you hit and a few other factors (such as enemy armor).

That said we always welcome more contributors. :smiley:


#13

Ah yup.

if (thrown.type->melee_cut > z.armor_cut()) dam += (thrown.type->melee_cut - z.armor_cut());

So to roughly answer the OP’s question:

X = (the weight of the object in grams / 452) + (weapon’s bash damage /2 ) + (your character’s strength / 2) )
X is capped at (the weight of the object in grams / 40)

Y = (weapon’s cut damage - target’s cut armor)
Y can’t be less than 0

So the damage is X + Y

If you have the railgun cybernetic active and are throwing an item that is steel or iron, the damage is 2X + Y