/** * Melee effect handler: Poison the player. * * We can't use melee_effect_timed(), because this is both and elemental attack * and a status attack. Note the FALSE value for pure_element for * melee_effect_elemental(). */ static void melee_effect_handler_POISON(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_POIS, FALSE); /* Take "poison" effect */ if (player_inc_timed(context->p, TMD_POISONED, 5 + randint1(context->rlev), TRUE, TRUE)) context->obvious = TRUE; /* Learn about the player */ update_smart_learn(context->m_ptr, context->p, 0, 0, ELEM_POIS); }
/** * Melee effect handler: Poison the player. * * We can't use melee_effect_timed(), because this is both and elemental attack * and a status attack. Note the false value for pure_element for * melee_effect_elemental(). */ static void melee_effect_handler_POISON(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_POIS, false); /* Player is dead */ if (context->p->is_dead) return; /* Take "poison" effect */ if (player_inc_timed(context->p, TMD_POISONED, 5 + randint1(context->rlev), true, true)) context->obvious = true; /* Learn about the player */ update_smart_learn(context->mon, context->p, 0, 0, ELEM_POIS); }
/** * Melee effect handler: Attack the player with cold. */ static void melee_effect_handler_COLD(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_COLD, TRUE); }
/** * Melee effect handler: Attack the player with fire. */ static void melee_effect_handler_FIRE(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_FIRE, TRUE); }
/** * Melee effect handler: Attack the player with electricity. */ static void melee_effect_handler_ELEC(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_ELEC, TRUE); }
/** * Melee effect handler: Attack the player with acid. */ static void melee_effect_handler_ACID(melee_effect_handler_context_t *context) { melee_effect_elemental(context, GF_ACID, true); }