| Object | Method | Purpose |
| Living | hit_player | used to deal damage to a player. Delegates to living->hit_player_from |
| Living | hit_player_from | used to deal damage to a player. Delegates to combat_d->hit_player_from |
| Living | attack | It performs a single combat round for the living. Delegates to combat_d->attack(). |
| Living | heartbeat | ... |
| BasePlayer | hit_player_from | Overrides living version to do hp reporting if it changes |
| Player | hit_player_from | Overrides BasePlayer version to do pk checks |
| Combat_D | hit_player_from | Does way more than it should? Checks for starts combat for the target, alters damage based on armour, alters target hp, checks for and handles target death (calls living->second_life), handles whimpy running. |
| Combat_D | attack | Handles an single attack from an attacker to a target. Will stop combat with the target if the living can not attack the target (living->query_may_attack()), will chose an alternative target in this case. Delegates to Combat_D->swing() |
| Combat_D | execute_round | Performs a single combat round for a living. Determines how many attacks the living gets and calls Combat_D->attack() for each |
| Combat_D | swing | Does one combat swing for a living against a target. Works out if the swing is a hit, determines base damage, delegates to living->hit_player() to deal the damage - which might alter it, does the "hit message", does the "You killed" message |