… | |
… | |
1639 | arrow->stats.grace = arrow->attacktype; |
1639 | arrow->stats.grace = arrow->attacktype; |
1640 | |
1640 | |
1641 | if (arrow->slaying) |
1641 | if (arrow->slaying) |
1642 | arrow->spellarg = strdup (arrow->slaying); |
1642 | arrow->spellarg = strdup (arrow->slaying); |
1643 | |
1643 | |
1644 | if (op->type == PLAYER) |
1644 | if (player *pl = op->contr) |
1645 | { |
1645 | { |
|
|
1646 | if (!pl->has_hit) |
|
|
1647 | { |
|
|
1648 | op->speed_left -= op->speed; |
|
|
1649 | pl->has_hit = 1; |
|
|
1650 | } |
|
|
1651 | |
1646 | op->speed_left = 0.01 - (float) FABS (op->speed) * 100 / bowspeed; |
1652 | op->speed_left += 0.01f - abs (op->speed) * 100.f / bowspeed; |
1647 | op->update_stats (); |
1653 | op->update_stats (); |
1648 | } |
1654 | } |
1649 | |
1655 | |
1650 | SET_ANIMATION (arrow, arrow->direction); |
1656 | SET_ANIMATION (arrow, arrow->direction); |
1651 | |
1657 | |
… | |
… | |
2174 | * incurred a 1 tick offset. |
2180 | * incurred a 1 tick offset. |
2175 | */ |
2181 | */ |
2176 | if (!op->contr->has_hit) |
2182 | if (!op->contr->has_hit) |
2177 | { |
2183 | { |
2178 | op->speed_left += op->contr->weapon_sp - op->speed; |
2184 | op->speed_left += op->contr->weapon_sp - op->speed; |
2179 | |
|
|
2180 | op->contr->has_hit = 1; /* The last action was to hit, so use weapon_sp */ |
2185 | op->contr->has_hit = 1; /* The last action was to hit, so use weapon_sp */ |
2181 | } |
2186 | } |
2182 | |
2187 | |
2183 | skill_attack (mon, op, 0, 0, 0); |
2188 | skill_attack (mon, op, 0, 0, 0); |
2184 | |
2189 | |