From 30842cc79c0a3e3566e9da61f2499fa1342c6d52 Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Sat, 10 Jan 2015 00:14:19 +0100 Subject: added "Defend" action physical and magical damages are divided by 2 when a character is on defensive state. Signed-off-by: Olivier Gayot --- actions.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'actions.c') diff --git a/actions.c b/actions.c index e356a83..ac5cc03 100644 --- a/actions.c +++ b/actions.c @@ -45,6 +45,10 @@ static int compute_damages(const struct character_t *src, const struct character } } + if (dest->defensive) { + avg /= 2; + } + min = avg - avg / 4; max = avg + avg / 4; @@ -81,6 +85,16 @@ void attack(SURFACES *surfaces, POSITIONS *positions, struct character_t *src, s __attack(surfaces, positions, src, dest->chr); } +void defend(SURFACES *surfaces, POSITIONS *positions, struct character_t *src, struct target_t *dest, void *data) +{ + (void) data; + (void) dest; + (void) surfaces; + (void) positions; + + src->defensive = true; +} + void cast_element(SURFACES *surfaces, POSITIONS *positions, struct character_t *src, struct target_t *dest, void *data) { int damages; -- cgit v1.2.3