widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #02682
Re: Meaning of the defense value
Maybe this code snippet is what you're looking for - from
src/logic/battle.cc:
uint32_t const hit = game.logic_rand() % 100;
if (hit > defender->get_evade()) {
// Attacker hits!
m_last_attack_hits = true;
assert(attacker->get_min_attack() <= attacker->get_max_attack());
uint32_t const attack =
attacker->get_min_attack() +
(game.logic_rand()
%
(1 + attacker->get_max_attack() - attacker->get_min_attack()));
m_damage = attack - (attack * defender->get_defense()) / 100;
}
15/09/2014 18:43, sgrìobh wl-zocker:
> Hello together,
>
> I am a bit confused what the defense value of the soldier means exactly:
> - The tutorial states that the damage is reduced by a certain value
> (e.g. 5) for every attack that hits the soldier. But that would mean
> that an untrained soldier would never be able to kill an Atlantean
> soldier trained in defense (see
> https://wl.widelands.org/wiki/SoldierLevels/). There is no percent sign
> after the value in this table (evade has), this implies that the value
> is absolute.
> - On the other hand, the text below the table states that those values
> are relative, e.g. “value 3, only 97% of damage is taken”.
>
> Which way is used in the game to calculate the damage a soldier takes?
>
> Thank you for your answer,
>
> wl-zocker
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~widelands-dev
> Post to : widelands-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~widelands-dev
> More help : https://help.launchpad.net/ListHelp
>
>
>
> No virus found in this message.
> Checked by AVG - www.avg.com <http://www.avg.com>
> Version: 2014.0.4765 / Virus Database: 4015/8217 - Release Date: 09/15/14
>
Follow ups
References