/** * Rituals.h * A header file for rituals. * @author Terano. */ #define EFFECTS "/std/effects/faith/" #define ITEMS "/d/guilds/priests/items/" #define RITUALS "/obj/rituals" #define ROOMS "/d/guilds/priests/rooms" #define INHERITS RITUALS "/inherits" #define SHADOWS "/std/shadows/faith/" //Target types! #define RITUAL_DIRECT_NONE 0 #define RITUAL_DIRECT_ROOM 1 #define RITUAL_DIRECT_NON_LIVING 2 #define RITUAL_DIRECT_LIVING 4 #define RITUAL_DIRECT_SELF 8 #define RITUAL_DIRECT_MULTIPLE 16 #define RITUAL_DIRECT_EXTERN 32 //Something to show something! #define RITUAL_CALCULATE_DYNAMIC 0 //Some imbue stuff #define IMBUE_PERFORMER -1 #define IMBUE_PRIEST 1 //Special Stages #define SUCCESS -1 #define FAILURE -2 #define STOPPED -3 //Some files! #define RITUAL EFFECTS"/basic_ritual" #define SHADOW SHADOWS"/basic_ritual" //Impediments and benefits #define RELIGIOUS "religious" #define MENTAL "mental" #define SPEECH "speech" #define VISION "vision" #define MOVEMENT "movement" #define ENVIRONMENT "environment" #define MISC "misc" //A skill define #define FAMILY "faith.rituals" + info->family //Some defines to make filing a breeze! #define CURING_INHERIT INHERITS "/basic_healing" #define SHIELD_INHERIT INHERITS "/basic_shield" #define PASSAGE_INHERIT INHERITS "/basic_passage" #define ALCOHOL_INHERIT INHERITS "/basic_alcohol" #define WARD_BASE SHADOWS +"/base_ward" //Some common data structures. /** * Each ritual has one or more stages. * Each stage must have messages for both the player and external parties. * Each stage can optionally have a skill check. * Each stage can optionally have items which can be consumed. * Each stage can be optionally lengthened, this will then be modified by * other factors. [alignment and skill]. This defaults to 1 if not entered. */ class stage { int key; //The identifier for this stage. string *messages; //Messages [internal and external] string skill; //Skill required for this stage. [Optional] int level; //Power level for this stage. string *materials; //Materials required for this stage. [Optional] string *consumables; //Materials consumed for this stage. [Optional] int pause; //Mandatory Pause - Required for complex rituals. [Opt] int time_modifier; //A base modifier used to determine stage length. function success_func; //A function that will be evaluated if successful. string prayer; //The name of a prayer required for this stage. int imbue_source; //The stage is either set on imbuing or set on casting. //Options are IMBUE_PERFORMER or IMBUE_PRIEST } /** * Data Storage for Rituals */ class ritual { //Standard variables: Will be the same for every casting. string name; //Name of the ritual. string family; //Type of ritual [Defensive, Curing, etc]. int base_gp_cost; //Base cost to cast ritual int *align; //Alignment restriction int targets; //An int for the purposes of targeting! class stage *stages; //See info on stages below. int pk_check; //Is this ritual PK checked? int teach_base; //Base level for teaching int learn_base; //Base level for learning string training_skill; //Skill used for teaching int movement; //Is movement required to cast this ritual. int speech; //Is speech required to cast this ritual. int vision; //Is vision required to cast this ritual. string *materials, *consumables; //Same as for each stage. function target_check; //Can be set, returns 1 if can be targetted string resist_skill; //Skill that resists the effects. string help; //Path of the help file. int offensive; //Is this a ritual that initialises combat //Dynamic variables: Change for each instance of the ritual. object caster; //The caster object imbue; //The imbue being performed from [optional] object *rit_targets; //Targets of our ritual object *resistors; //Those who successfully made a resist check. int current_stage; //Stage the ritual is currently at. int start_time; //Time ritual commenced. int target_count; //The count of number of targets! function valid; //Function used to validate casting. int degree; //The degree of success. string deity; //Deity of the caster. mapping difficulties; //Things that make the ritual harder. mapping benefits; //Things that make the ritual easier. }