/*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * Ack 2.2 improvements copyright (C) 1994 by Stephen Dooley * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * _/ _/_/_/ _/ _/ _/ ACK! MUD is modified * * _/_/ _/ _/ _/ _/ Merc2.0/2.1/2.2 code * * _/ _/ _/ _/_/ _/ (c)Stephen Zepp 1998 * * _/_/_/_/ _/ _/ _/ Version #: 4.3 * * _/ _/ _/_/_/ _/ _/ _/ * * * * http://ackmud.nuc.net/ * * zenithar@ackmud.nuc.net * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ #ifndef DEC_ACK_H #include "ack.h" #endif #define DEC_MAGIC_H #ifndef DEC_MONEY_H #include "money.h" #endif bool sp_damage( OBJ_DATA * obj, CHAR_DATA * ch, CHAR_DATA * victim, int dam, int type, int sn, bool show_msg ); void group_gain args( ( CHAR_DATA * ch, CHAR_DATA * victim ) ); bool is_safe args( ( CHAR_DATA * ch, CHAR_DATA * victim ) ); void set_fighting args( ( CHAR_DATA * ch, CHAR_DATA * victim, bool check ) ); void check_adrenaline args( ( CHAR_DATA * ch, sh_int damage ) ); /* magic.c */ int mana_cost( CHAR_DATA * ch, int sn ); #define REALM_NONE BIT_0 #define REALM_FIRE BIT_1 #define REALM_SHOCK BIT_2 #define REALM_LIGHT BIT_3 #define REALM_GAS BIT_4 #define REALM_POISON BIT_5 #define REALM_COLD BIT_6 #define REALM_SOUND BIT_7 #define REALM_ACID BIT_8 #define REALM_DRAIN BIT_9 #define REALM_IMPACT BIT_10 #define REALM_MIND BIT_11 #define REALM_HOLY BIT_12 #define NO_REFLECT BIT_30 #define NO_ABSORB BIT_31 #define RE_NONE 0 #define RE_FIRE 1 #define RE_SHOCK 2 #define RE_LIGHT 3 #define RE_GAS 4 #define RE_POISON 5 #define RE_COLD 6 #define RE_SOUND 7 #define RE_ACID 8 #define RE_DRAIN 9 #define RE_IMPACT 10 #define RE_MIND 11 #define RE_HOLY 12 struct sp_dam_str_type { int realm; char *basecol; char *invertcol; char *stresscol; char *backcol; char *formatter; char *vs; char *vs_stress; char *vp; char *vp_stress; }; extern struct sp_dam_str_type sp_dam_str[]; extern bool deathmatch; #define MAX_REALM 13 /* * Spell functions. * Defined in magicX.c. */ DECLARE_SPELL_FUN( spell_null ); DECLARE_SPELL_FUN( spell_ego_whip ); DECLARE_SPELL_FUN( spell_physic_thrust ); DECLARE_SPELL_FUN( spell_physic_crush ); DECLARE_SPELL_FUN( spell_mind_flail ); DECLARE_SPELL_FUN( spell_acid_blast ); DECLARE_SPELL_FUN( spell_animate ); DECLARE_SPELL_FUN( spell_armor ); DECLARE_SPELL_FUN( spell_badbreath ); DECLARE_SPELL_FUN( spell_bark_skin ); DECLARE_SPELL_FUN( spell_bless ); DECLARE_SPELL_FUN( spell_blindness ); DECLARE_SPELL_FUN( spell_bloody_tears ); DECLARE_SPELL_FUN( spell_burning_hands ); DECLARE_SPELL_FUN( spell_call_lightning ); DECLARE_SPELL_FUN( spell_calm ); DECLARE_SPELL_FUN( spell_cause_critical ); DECLARE_SPELL_FUN( spell_cause_light ); DECLARE_SPELL_FUN( spell_cause_serious ); DECLARE_SPELL_FUN( spell_change_sex ); DECLARE_SPELL_FUN( spell_charm_person ); DECLARE_SPELL_FUN( spell_chill_touch ); DECLARE_SPELL_FUN( spell_color_spray ); DECLARE_SPELL_FUN( spell_continual_light ); DECLARE_SPELL_FUN( spell_control_weather ); DECLARE_SPELL_FUN( spell_create_food ); DECLARE_SPELL_FUN( spell_create_spring ); DECLARE_SPELL_FUN( spell_create_water ); DECLARE_SPELL_FUN( spell_cure_blindness ); DECLARE_SPELL_FUN( spell_cure_critical ); DECLARE_SPELL_FUN( spell_cure_light ); DECLARE_SPELL_FUN( spell_cure_poison ); DECLARE_SPELL_FUN( spell_cure_serious ); DECLARE_SPELL_FUN( spell_curse ); DECLARE_SPELL_FUN( spell_detect_evil ); DECLARE_SPELL_FUN( spell_detect_hidden ); DECLARE_SPELL_FUN( spell_detect_invis ); DECLARE_SPELL_FUN( spell_detect_magic ); DECLARE_SPELL_FUN( spell_detect_poison ); DECLARE_SPELL_FUN( spell_detect_undead ); DECLARE_SPELL_FUN( spell_detection ); DECLARE_SPELL_FUN( spell_dimension_blade ); DECLARE_SPELL_FUN( spell_dispel_evil ); DECLARE_SPELL_FUN( spell_dispel_magic ); DECLARE_SPELL_FUN( spell_earthquake ); DECLARE_SPELL_FUN( spell_enchant_weapon ); DECLARE_SPELL_FUN( spell_encumber ); DECLARE_SPELL_FUN( spell_enhance_weapon ); DECLARE_SPELL_FUN( spell_energy_drain ); DECLARE_SPELL_FUN( spell_faerie_fire ); DECLARE_SPELL_FUN( spell_faerie_fog ); DECLARE_SPELL_FUN( spell_fighting_trance ); DECLARE_SPELL_FUN( spell_fireball ); DECLARE_SPELL_FUN( spell_fire_blade ); DECLARE_SPELL_FUN( spell_flamestrike ); DECLARE_SPELL_FUN( spell_fly ); DECLARE_SPELL_FUN( spell_gate ); DECLARE_SPELL_FUN( spell_general_purpose ); DECLARE_SPELL_FUN( spell_giant_strength ); DECLARE_SPELL_FUN( spell_harm ); DECLARE_SPELL_FUN( spell_heal ); DECLARE_SPELL_FUN( spell_high_explosive ); DECLARE_SPELL_FUN( spell_hypnosis ); DECLARE_SPELL_FUN( spell_identify ); DECLARE_SPELL_FUN( spell_influx ); DECLARE_SPELL_FUN( spell_infravision ); DECLARE_SPELL_FUN( spell_invis ); DECLARE_SPELL_FUN( spell_know_alignment ); DECLARE_SPELL_FUN( spell_know_weakness ); DECLARE_SPELL_FUN( spell_know_critical ); DECLARE_SPELL_FUN( spell_know_item ); DECLARE_SPELL_FUN( spell_lightning_bolt ); DECLARE_SPELL_FUN( spell_locate_object ); DECLARE_SPELL_FUN( spell_magic_missile ); DECLARE_SPELL_FUN( spell_mass_invis ); DECLARE_SPELL_FUN( spell_mind_bolt ); DECLARE_SPELL_FUN( spell_nerve_fire ); DECLARE_SPELL_FUN( spell_night_vision ); DECLARE_SPELL_FUN( spell_pass_door ); DECLARE_SPELL_FUN( spell_phase ); DECLARE_SPELL_FUN( spell_poison ); DECLARE_SPELL_FUN( spell_produce_food ); DECLARE_SPELL_FUN( spell_protection ); DECLARE_SPELL_FUN( spell_refresh ); DECLARE_SPELL_FUN( spell_remove_curse ); DECLARE_SPELL_FUN( spell_sanctuary ); DECLARE_SPELL_FUN( spell_see_magic ); DECLARE_SPELL_FUN( spell_sense_evil ); DECLARE_SPELL_FUN( spell_shocking_grasp ); DECLARE_SPELL_FUN( spell_shield ); DECLARE_SPELL_FUN( spell_sleep ); DECLARE_SPELL_FUN( spell_stalker ); DECLARE_SPELL_FUN( spell_stone_skin ); DECLARE_SPELL_FUN( spell_suffocate ); DECLARE_SPELL_FUN( spell_summon ); DECLARE_SPELL_FUN( spell_teleport ); DECLARE_SPELL_FUN( spell_ventriloquate ); DECLARE_SPELL_FUN( spell_warcry ); /* --Stephen */ DECLARE_SPELL_FUN( spell_weaken ); DECLARE_SPELL_FUN( spell_window ); DECLARE_SPELL_FUN( spell_portal ); DECLARE_SPELL_FUN( spell_beacon ); DECLARE_SPELL_FUN( spell_word_of_recall ); DECLARE_SPELL_FUN( spell_acid_breath ); DECLARE_SPELL_FUN( spell_fire_breath ); DECLARE_SPELL_FUN( spell_frost_breath ); DECLARE_SPELL_FUN( spell_gas_breath ); DECLARE_SPELL_FUN( spell_lightning_breath ); DECLARE_SPELL_FUN( spell_planergy ); DECLARE_SPELL_FUN( spell_static ); DECLARE_SPELL_FUN( spell_visit ); DECLARE_SPELL_FUN( spell_chain_lightning ); DECLARE_SPELL_FUN( spell_phobia ); DECLARE_SPELL_FUN( spell_barrier ); DECLARE_SPELL_FUN( spell_mindflame ); DECLARE_SPELL_FUN( spell_laserbolt ); DECLARE_SPELL_FUN( spell_hellspawn ); DECLARE_SPELL_FUN( spell_travel ); DECLARE_SPELL_FUN( spell_flare ); DECLARE_SPELL_FUN( spell_mystic_armor ); DECLARE_SPELL_FUN( spell_blood_leach ); DECLARE_SPELL_FUN( spell_seal_room ); DECLARE_SPELL_FUN( spell_shade ); /* Slot 542 */ DECLARE_SPELL_FUN( spell_deflect_weapon ); /* slot 600 */ DECLARE_SPELL_FUN( spell_black_hand ); /* slot 601 */ DECLARE_SPELL_FUN( spell_throw_needle ); /* slot 602 */ DECLARE_SPELL_FUN( spell_morale ); /* slot 603 */ DECLARE_SPELL_FUN( spell_leadership ); /* slot 604 */ DECLARE_SPELL_FUN( spell_ice_bolt ); /* slot 605 */ DECLARE_SPELL_FUN( spell_waterelem ); /* slot 606 */ DECLARE_SPELL_FUN( spell_skeleton ); /* slot 607 */ DECLARE_SPELL_FUN( spell_poison_weapon ); /* slot 608 */ DECLARE_SPELL_FUN( spell_embrace ); /* slot 609 */ DECLARE_SPELL_FUN( spell_mesmerise ); /* slot 610 */ DECLARE_SPELL_FUN( spell_ethereal ); /* slot 611 */ DECLARE_SPELL_FUN( spell_fireelem ); /* slot 612 */ DECLARE_SPELL_FUN( spell_rune_fire ); /* slot 613 */ DECLARE_SPELL_FUN( spell_rune_shock ); /* slot 614 */ DECLARE_SPELL_FUN( spell_rune_poison ); /* slot 615 */ DECLARE_SPELL_FUN( spell_healing_light ); /* slot 616 */ DECLARE_SPELL_FUN( spell_wither_shadow ); /* slot 617 */ DECLARE_SPELL_FUN( spell_mana_flare ); /* slot 618 */ DECLARE_SPELL_FUN( spell_mana_drain ); /* slot 619 */ DECLARE_SPELL_FUN( spell_cage ); /* slot 620 */ DECLARE_SPELL_FUN( spell_cloak_absorb ); /* slot 621 */ DECLARE_SPELL_FUN( spell_cloak_reflect ); /* slot 622 */ DECLARE_SPELL_FUN( spell_cloak_flaming ); /* slot 623 */ DECLARE_SPELL_FUN( spell_cloak_darkness ); /* slot 624 */ DECLARE_SPELL_FUN( spell_room_dispel ); /* slot 625 */ DECLARE_SPELL_FUN( spell_cloak_adept ); /* slot 626 */ DECLARE_SPELL_FUN( spell_cloak_regen ); /* slot 627 */ DECLARE_SPELL_FUN( spell_throw_star ); /* slot 628 */ DECLARE_SPELL_FUN( spell_soul_net ); /* slot 629 */ DECLARE_SPELL_FUN( spell_condense_soul ); /* slot 630 */ DECLARE_SPELL_FUN( spell_blood_walk ); /* slot 631 */ DECLARE_SPELL_FUN( spell_restoration ); /* slot 632 */ DECLARE_SPELL_FUN( spell_infuse ); /* slot 633 */ DECLARE_SPELL_FUN( spell_holy_light ); /* slot 634 */ DECLARE_SPELL_FUN( spell_divine_intervention ); /* slot 635 */ DECLARE_SPELL_FUN( spell_holy_armor ); /* slot 636 */ DECLARE_SPELL_FUN( spell_earthelem ); /* slot 637 */ DECLARE_SPELL_FUN( spell_iron_golem ); /* slot 638 */ DECLARE_SPELL_FUN( spell_diamond_golem ); /* slot 639 */ DECLARE_SPELL_FUN( spell_soul_thief ); /* slot 640 */ DECLARE_SPELL_FUN( spell_holy_avenger ); /* slot 641 */ DECLARE_SPELL_FUN( spell_heat_armor ); /* slot 642 */ DECLARE_SPELL_FUN( spell_retri_strike ); /* slot 643 */ DECLARE_SPELL_FUN( spell_lava_burst ); /* slot 644 */ DECLARE_SPELL_FUN( spell_fireshield ); /* slot 645 */ DECLARE_SPELL_FUN( spell_iceshield ); /* slot 646 */ DECLARE_SPELL_FUN( spell_shockshield ); /* slot 647 */ DECLARE_SPELL_FUN( spell_shadowshield ); /* slot 648 */ DECLARE_SPELL_FUN( spell_thoughtshield ); /* slot 649 */ /* enraged holds slot 651-654 */ DECLARE_SPELL_FUN( spell_tribe_claw ); /* slot 655 */ DECLARE_SPELL_FUN( spell_wolf_mark ); /* slot 656 */ DECLARE_SPELL_FUN( spell_blood_sign ); /* 657 */ DECLARE_SPELL_FUN( spell_blood_sense ); /* 658 */ DECLARE_SPELL_FUN( spell_summon_pegasus ); /* slot 659 */ DECLARE_SPELL_FUN( spell_summon_nightmare ); /* slot 660 */ DECLARE_SPELL_FUN( spell_summon_beast ); /* 661 */ DECLARE_SPELL_FUN( spell_summon_devourer ); /* 662 */ DECLARE_SPELL_FUN( spell_summon_shadow ); /* 663 */ DECLARE_SPELL_FUN( spell_creature_bond ); /* 664 */ DECLARE_SPELL_FUN( spell_corrupt_bond ); /* 665 */ DECLARE_SPELL_FUN( spell_fireblast ); /* 666 */ DECLARE_SPELL_FUN( spell_shockstorm ); DECLARE_SPELL_FUN( spell_cone_cold ); DECLARE_SPELL_FUN( spell_holy_wrath ); DECLARE_SPELL_FUN( spell_wraith_touch ); DECLARE_SPELL_FUN( spell_thought_vise ); /* 670 */ DECLARE_SPELL_FUN( spell_black_curse ); DECLARE_SPELL_FUN( spell_cloak_misery ); DECLARE_SPELL_FUN( spell_poison_quinine ); DECLARE_SPELL_FUN( spell_poison_arsenic ); DECLARE_SPELL_FUN( spell_sonic_blast ); DECLARE_SPELL_FUN( spell_mystical_focus ); /* 676 */