/* * Copyright (C) 2002-2007 The Warp Rogue Team * Part of the Warp Rogue Project * * This software is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License. * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY. * * See the license.txt file for more details. */ /* * Module Name: Psychic * Description: - */ #define MAX_CONCENTRATION_BONUS 30 #if !defined(MODULE_IMPORT) /* * evocation data structure */ typedef struct { /* the character who evoked the psychic power */ CHARACTER * evoker; /* the evoked power */ PSY_POWER power; /* the target point of the evoked power */ const AREA_POINT * target_point; } EVOCATION_DATA; #endif typedef int N_PSY_POWERS; typedef int PSY_DIFFICULTY_MODIFIER; void psy_power_screen(PSY_POWER); const char * psy_power_description(char *, PSY_POWER); void concentrate(CHARACTER *); void cancel_concentration(CHARACTER *); bool evoke_psy_power(CHARACTER *, PSY_POWER, const AREA_POINT * ); void psy_power_terminate(EVENT *); bool is_able_to_evoke_psy_powers(const CHARACTER *); N_PSY_POWERS n_psy_powers(const CHARACTER *); bool psy_power_implemented(PSY_POWER); bool psy_power_is_hostile(PSY_POWER); bool psy_power_requires_target(PSY_POWER); bool is_psychic_bolt(PSY_POWER); bool is_psyker_perk(PERK); bool psy_power_is_tricky(PSY_POWER); bool psy_power_valid_target(PSY_POWER, const AREA_POINT *); bool psy_power_in_effect(PSY_POWER, const AREA_POINT *); bool psy_power_target_is_immune(PSY_POWER, const AREA_POINT * ); const char * psy_power_name(PSY_POWER); PSY_DISCIPLINE psy_power_discipline(PSY_POWER); const char * psy_discipline_name(PSY_DISCIPLINE); PSY_DIFFICULTY_MODIFIER psy_power_difficulty(const CHARACTER *, PSY_POWER); void psy_powers_screen(const CHARACTER *); PSY_POWER name_to_psy_power(const char *);