/************************** * Fuse Code by Xrakisis * **************************/ #if defined(macintosh) #include <types.h> #else #include <sys/types.h> #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "merc.h" /* Demon/DRAGON- Shadow Dragon Demon/Assassin - Hell's Soldier Demon/Wraith - Shadow Fiend Vampire/Werewolf - Undead Lycan Werewolf/Drow - Stalker Werewolf/Elemental- Gaia Wolf Drow/Wraith - Shadowborn Drow/Assassin - Black Assassin Vampire/Tan - Succubus Vampire/Wraith - Vampyric Mist Tan/Elemental - Deva Tan/Hydra - Ba'atezu UK/Hydra - Nazgul UK/Assassin -Undead Assassin UK/Elemental - Necromancer Angel/Paladin - Heaven's Soldier Angel/DRAGON- Silver Dragon Angel/Hydra -Dragon Rider Paladin/Draco - Dragoon Paladin/Elemental - Druid Drow: done Assassin: demon(Hells sold), uk (undead ass), drow black ass Were: Drow, stalk vamp, UL Elem, Gaia wolf Demon: drac (shaddrag), Wraith (shad fiend), Ass (hells sold) Tan: elem-DEVA, vamp-Succubus, Hydra-Baatezu Pal: Draco-Golddrag, angel-Heav soldier, elem-druid elem: pal-druid, uk-necro, tan-deva wraith: dem-shadfiend, drow-shadborn, vamp vamp mist vamp: tan-hellspawn, were-UL, wraith-mist uk: hydra-nazgul, elem-necro, ass-undead ass hydra: uk-nazgul, angel-typhon, tan-baatezu angel: drac-silver drag, hydra-typhon, pal-heav soldier DRAGON: pal:gold drag, demon-shadow drag, angel-silver drag */ void do_fuse( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; CHAR_DATA *gch; if (IS_NPC(ch)) return; if (ch->pStatus < 5) { send_to_char("You need at least 5 status to remort.\n\r",ch); return; } // drow... wraith(suc) were(stalk) assassin(BA) if (IS_CLASS(ch, CLASS_DROW)) { if (ch->oldclass == CLASS_WEREWOLF) { clearshit(ch); ch->class = CLASS_STALKER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Stalker.\n\r",ch); sprintf(buf,"%s The Drow, Former Class Werewolf, Has Fused into a Stalker.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_WRAITH) { clearshit(ch); ch->class = CLASS_HELL_SPAWN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Hell Spawn.\n\r",ch); sprintf(buf,"%s The Drow, Former Class Wraith, Has Fused into a Hell Spawn.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_ASSASSIN) { clearshit(ch); ch->class = CLASS_BLACK_ASSASSIN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Black Assassin.\n\r",ch); sprintf(buf,"%s The Drow, Former Class Assassin, Has Fused into a Black Assassin.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } return; } // Assassin: demon(Hells sold), uk (undead ass), drow black ass if (IS_CLASS(ch, CLASS_ASSASSIN)) { if (ch->oldclass == CLASS_DROW) { clearshit(ch); ch->class = CLASS_BLACK_ASSASSIN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Black Assassin.\n\r",ch); sprintf(buf,"%s The Assassin, Former Class Drow, Has Fused into a Black Assassin.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_DEMON) { clearshit(ch); ch->class = CLASS_HELLS_SOLDIER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Hell's Soldier.\n\r",ch); sprintf(buf,"%s The Assassin, Former Class Demon, Has Fused into a Hell's Soldier.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_UNDEAD_KNIGHT) { clearshit(ch); ch->class = CLASS_UNDEAD_ASSASSIN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now An Undead Assassin.\n\r",ch); sprintf(buf,"%s The Assassin, Former Class UK, Has Fused into an Undead Assassin.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } // Were: Drow, stalk vamp, UL Elem, Gaia wolf if (IS_CLASS(ch, CLASS_WEREWOLF)) { if (ch->oldclass == CLASS_DROW) { clearshit(ch); ch->class = CLASS_STALKER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Stalker.\n\r",ch); sprintf(buf,"%s The Werewolf, Former Class Drow, Has Fused into a Stalker.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_VAMPIRE) { clearshit(ch); ch->class = CLASS_UNDEAD_LYCAN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Undead Lycan.\n\r",ch); sprintf(buf,"%s The Werewolf, Former Class Vampire, Has Fused into an Undead Lycan.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_ELEMENTAL) { clearshit(ch); ch->class = CLASS_GAIA_WOLF; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Gaia Wolf.\n\r",ch); sprintf(buf,"%s The Werewolf, Former Class Elemental, Has Fused into a Gaia Wolf.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } return; } // Demon: drac (shaddrag), Wraith (shad fiend), Ass (hells sold) if (IS_CLASS(ch, CLASS_DEMON)) { if (ch->oldclass == CLASS_DRAGON) { clearshit(ch); ch->class = CLASS_SHADOW_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Shadow Dragon.\n\r",ch); sprintf(buf,"%s The Demon, Former Class DRAGON, Has Fused into a Shadow Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_WRAITH) { clearshit(ch); ch->class = CLASS_SHADOW_FIEND; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Shadow Fiend.\n\r",ch); sprintf(buf,"%s The Demon, Former Class Wraith, Has Fused into a Shadow Fiend.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_ASSASSIN) { clearshit(ch); ch->class = CLASS_HELLS_SOLDIER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Hells Soldier.\n\r",ch); sprintf(buf,"%s The Demon, Former Class Assassin, Has Fused into a Hells Soldier.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } return; } // Tan: elem-DEVA, vamp-Succubus, Hydra-Baatezu if (IS_CLASS(ch, CLASS_TANARRI)) { if (ch->oldclass == CLASS_ELEMENTAL) { clearshit(ch); ch->class = CLASS_DEVA; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Deva.\n\r",ch); sprintf(buf,"%s The Tanarri, Former Class Elemental, Has Fused into a Deva.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_VAMPIRE) { clearshit(ch); ch->class = CLASS_HELL_SPAWN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Hell Spawn.\n\r",ch); sprintf(buf,"%s The Tanarri, Former Class Vampire, Has Fused into a Hell Spawn.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_HYDRA) { clearshit(ch); ch->class = CLASS_BAATEZU; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Ba'atezu.\n\r",ch); sprintf(buf,"%s The Tanarri, Former Class Hydra, Has Fused into a Ba'atezu.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } // Pal: Draco-Golddrag, angel-Heav soldier, elem-druid if (IS_CLASS(ch, CLASS_PALADIN)) { if (ch->oldclass == CLASS_DRAGON) { clearshit(ch); ch->class = CLASS_GOLD_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Gold Dragon.\n\r",ch); sprintf(buf,"%s The Paladin, Former Class DRAGON, Has Fused into a Gold Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_ANGEL) { clearshit(ch); ch->class = CLASS_HEAVENS_SOLDIER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Heavens Soldier.\n\r",ch); sprintf(buf,"%s The Paladin, Former Class Angel, Has Fused into a Heavens Soldier.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_ELEMENTAL) { clearshit(ch); ch->class = CLASS_DRUID; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Druid.\n\r",ch); sprintf(buf,"%s The Paladin, Former Class Elemental, Has Fused into a Druid.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } // elem: pal-druid, uk-necro, tan-deva if (IS_CLASS(ch, CLASS_ELEMENTAL)) { if (ch->oldclass == CLASS_PALADIN) { clearshit(ch); ch->class = CLASS_DRUID; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Druid.\n\r",ch); sprintf(buf,"%s The Elemental, Former Class Paladin, Has Fused into a Druid.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_UNDEAD_KNIGHT) { clearshit(ch); ch->class = CLASS_NECROMANCER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Necromancer.\n\r",ch); sprintf(buf,"%s The Elemental, Former Class UK, Has Fused into a Necromancer.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_TANARRI) { clearshit(ch); ch->class = CLASS_DEVA; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Deva.\n\r",ch); sprintf(buf,"%s The Elemental, Former Class Tanar'ri, Has Fused into a Deva.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } // wraith: dem-shadfiend, drow-shadborn, vamp vamp mist if (IS_CLASS(ch, CLASS_WRAITH)) { if (ch->oldclass == CLASS_DEMON) { clearshit(ch); ch->class = CLASS_SHADOW_FIEND; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Shadow Fiend.\n\r",ch); sprintf(buf,"%s The Wraith, Former Class Demon, Has Fused into a Shadowfiend.\n\r",ch->pcdata->switchname); set_learnable_disciplines(ch); do_info(ch,buf); } else if (ch->oldclass == CLASS_DROW) { clearshit(ch); ch->class = CLASS_SHADOWBORN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Shadowborn.\n\r",ch); sprintf(buf,"%s The Wraith, Former Class Drow, Has Fused into a Shadowborn.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_VAMPIRE) { clearshit(ch); ch->class = CLASS_VAMPIRIC_MIST; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Vampyric Mist.\n\r",ch); sprintf(buf,"%s The Wraith, Former Class Vampire, Has Fused into a Vampyric Mist.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } return; } // vamp: tan-hellspawn, were-UL, wraith-mist if (IS_CLASS(ch, CLASS_VAMPIRE)) { if (ch->oldclass == CLASS_TANARRI) { clearshit(ch); ch->class = CLASS_HELL_SPAWN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Hell Spawn.\n\r",ch); sprintf(buf,"%s The Vampire, Former Class Tanar'ri, Has Fused into a Hell Spawn.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_WEREWOLF) { clearshit(ch); ch->class = CLASS_UNDEAD_LYCAN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now An Undead Lycan.\n\r",ch); sprintf(buf,"%s The Vampire, Former Class Werewolf, Has Fused into an Undead Lycan.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_WRAITH) { clearshit(ch); ch->class = CLASS_VAMPIRIC_MIST; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Vampyric Mist.\n\r",ch); sprintf(buf,"%s The Vampire, Former Class Wraith, Has Fused into a Vampyric Mist.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } return; } // uk: hydra-nazgul, elem-necro, ass-undead ass if (IS_CLASS(ch, CLASS_UNDEAD_KNIGHT)) { if (ch->oldclass == CLASS_HYDRA) { clearshit(ch); ch->class = CLASS_NAZGUL; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Nazgul.\n\r",ch); sprintf(buf,"%s The UK, Former Class Hydra, Has Fused into a Nazgul.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } else if (ch->oldclass == CLASS_ELEMENTAL) { clearshit(ch); ch->class = CLASS_NECROMANCER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Necromancer.\n\r",ch); sprintf(buf,"%s The UK, Former Class Elemental, Has Fused into a Necromancer.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } else if (ch->oldclass == CLASS_ASSASSIN) { clearshit(ch); ch->class = CLASS_UNDEAD_ASSASSIN; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Undead Assassin.\n\r",ch); sprintf(buf,"%s The UK, Former Class Assassin, Has Fused into a Undead Assassin.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } return; } // hydra: uk-nazgul, angel-typhon, tan-baatezu if (IS_CLASS(ch, CLASS_HYDRA)) { if (ch->oldclass == 5) { clearshit(ch); ch->class = CLASS_BAATEZU; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Ba'atezu.\n\r",ch); sprintf(buf,"%s The Hydra, Former Class Tanar'ri, Has Fused into a Ba'atezu.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } else if (ch->oldclass == 6) { clearshit(ch); ch->class = CLASS_TYPHON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Typhon.\n\r",ch); sprintf(buf,"%s The Hydra, Former Class Angel, Has Fused into a Typhon.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } else if (ch->oldclass == 7) { clearshit(ch); ch->class = CLASS_NAZGUL; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Nazgul.\n\r",ch); sprintf(buf,"%s The Hydra, Former Class UK, Has Fused into a Nazgul.\n\r",ch->pcdata->switchname); do_info(ch,buf); return; } else { stc("You could not achieve fusion!\n\r", ch); return; } } // angel: drac-silver drag, hydra-typhon, pal-heav soldier if (IS_CLASS(ch, CLASS_ANGEL)) { if (ch->oldclass == CLASS_DRAGON) { clearshit(ch); ch->class = CLASS_SILVER_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Silver Dragon.\n\r",ch); sprintf(buf,"%s The Angel, Former Class DRAGON, Has Fused into a Silver Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_HYDRA) { clearshit(ch); ch->class = CLASS_TYPHON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Typhon.\n\r",ch); sprintf(buf,"%s The Angel, Former Class Hydra, Has Fused into a Typhon .\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_PALADIN) { clearshit(ch); ch->class = CLASS_HEAVENS_SOLDIER; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Heavens Soldier.\n\r",ch); sprintf(buf,"%s The Angel, Former Class Paladin, Has Fused into a Heavens Soldier.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } // DRAGON: pal:gold drag, demon-shadow drag, angel-silver drag if (IS_CLASS(ch, CLASS_DRAGON)) { if (ch->oldclass == CLASS_PALADIN) { clearshit(ch); ch->class = CLASS_GOLD_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Gold Dragon.\n\r",ch); sprintf(buf,"%s The DRAGON, Former Class Paladin, Has Fused into a Gold Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); } else if (ch->oldclass == CLASS_DEMON) { clearshit(ch); ch->class = CLASS_SHADOW_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Shadow Dragon.\n\r",ch); sprintf(buf,"%s The DRAGON, Former Class Demon, Has Fused into a Shadow Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); set_learnable_disciplines(ch); } else if (ch->oldclass == CLASS_ANGEL) { clearshit(ch); ch->class = CLASS_SILVER_DRAGON; SET_BIT(ch->immune, IMM_HYBRID); send_to_char("You Are Now A Silver Dragon.\n\r",ch); sprintf(buf,"%s The DRAGON, Former Class Angel, Has Fused into a Silver Dragon.\n\r",ch->pcdata->switchname); do_info(ch,buf); } return; } return; }