Throwing

From IvanWiki
Jump to navigation Jump to search

Coding: This article contains code which is for experienced users only, and may reveal game secrets

Spoiler Warning: This page contains spoilers which may affect your IVAN experience negatively


Throwing is the act of (t)hrowing any item in your inventory in any direction. It is generally best used to launch breakable containers such as bottles or gas grenades at enemies or surfaces in order to unleash their contents. However, any item can be thrown to inflict damage on an opponent.


Maximizing Effectiveness

To maximize damage:

  • Improve your ASTR
  • Improve your throwing skill
  • Improve your skill with the item to be thrown
    • e.g. higher small swords skill results in more damage from thrown daggers, short swords and sickles
  • Reduce distance to target
  • Throw heavier items or more powerful weapons
    • Do note that there is a variable point at which an item's weight will drive its thrown to-hit value below zero resulting in it always missing its target.
  • Note that thrown items will retain any special effects when thrown
    • For example, a dagger covered in poison will still poison an enemy if thrown at them


To maximize to-hit value:

  • Improve your DEX
  • Improve your PER
  • Improve your throwing skill
  • Improve your thrown item skill
  • Reduce thrown item weight
  • Reduce distance to target

Details

Damage done is dependent on the players throwing skill, the item's category and your skill in that category, the item's weapon strength, and the force with which it was thrown divided by the range it traveled.
Therefore, damage is largely dependent on the object used.
It can be improved with a higher ASTR, throwing skill and weapon skill, and reducing your distance to target.

To-hit value is also dependent on your throwing skill and item category skill, but is also influenced by your dexterity, perception, burden value, and the object's weight.
It improves with a higher DEX, PER, throwing skill and weapon skill, and a lower burden value.
It decreases with a higher item weight and distance to target.

  if(Thrower)
  {
    int Bonus = Thrower->IsHumanoid() ? Thrower->GetCWeaponSkill(GetWeaponCategory())->GetBonus() : 1000;
    BaseDamage = sqrt(5e-12 * GetWeaponStrength() * Force / Range) * Bonus;
    BaseToHitValue = 10 * Bonus * Thrower->GetMoveEase() / (500 + GetWeight()) * Thrower->GetAttribute(DEXTERITY) * sqrt(2.5e-8 * Thrower->GetAttribute(PERCEPTION)) / Range;
  }
  else
  {
    BaseDamage = sqrt(5e-6 * GetWeaponStrength() * Force / Range);
    BaseToHitValue = 10 * 100 / (500 + GetWeight()) / Range;
  }

A thrown object's range is determined by the force with which it is thrown, and the item's weight.
Range can be improved by having a higher ASTR and a lower item weight.

int Range = Force * 25 / Max(long(sqrt(GetWeight())), 1L);