//:://///////////////////////////////////////////// //:: Dragon Breath Lightning //:: NW_S1_DragLightn //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Calculates the proper damage and DC Save for the breath weapon based on the HD of the dragon. */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: May 9, 2001 //::////////////////////////////////////////////// const string DRAGBREATHLOCK = "DragonBreathLock"; //modified to use the breath include - Fox #include "prc_inc_spells" #include "prc_inc_breath" void main() { // Check the dragon breath delay lock if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK)) { SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon"); return; } //Declare major variables int nAge = GetHitDice(OBJECT_SELF); int nDCBoost = nAge / 2; int nDamageDice; struct breath ElecBreath; //Use the HD of the creature to determine damage and save DC if (nAge <= 6) //Wyrmling { nDamageDice = 2; } else if (nAge >= 7 && nAge <= 9) //Very Young { nDamageDice = 4; } else if (nAge >= 10 && nAge <= 12) //Young { nDamageDice = 6; } else if (nAge >= 13 && nAge <= 15) //Juvenile { nDamageDice = 8; } else if (nAge >= 16 && nAge <= 18) //Young Adult { nDamageDice = 10; } else if (nAge >= 19 && nAge <= 21) //Adult { nDamageDice = 12; } else if (nAge >= 22 && nAge <= 24) //Mature Adult { nDamageDice = 14; } else if (nAge >= 25 && nAge <= 27) //Old { nDamageDice = 16; } else if (nAge >= 28 && nAge <= 30) //Very Old { nDamageDice = 18; } else if (nAge >= 31 && nAge <= 33) //Ancient { nDamageDice = 20; } else if (nAge >= 34 && nAge <= 37) //Wyrm { nDamageDice = 22; } else if (nAge >= 38 && nAge <= 41) //Great Wyrm { nDamageDice = 24; } else if (nAge >= 42 && nAge <= 45) //Great Wyrm { nDamageDice = 26; } else if (nAge >= 46 && nAge <= 49) //Great Wyrm { nDamageDice = 28; } else if (nAge >= 50 && nAge <= 53) //Great Wyrm { nDamageDice = 30; } else if (nAge >= 54 && nAge <= 57) //Great Wyrm { nDamageDice = 32; } else if (nAge >= 58 && nAge <= 61) //Great Wyrm { nDamageDice = 34; } else if (nAge >= 62 && nAge <= 65) //Great Wyrm { nDamageDice = 36; } else if (nAge >= 66 && nAge <= 69) //Great Wyrm { nDamageDice = 38; } else if (nAge >= 70 && nAge <= 73) //Great Wyrm { nDamageDice = 40; } else if (nAge >= 74 && nAge <= 77) //Great Wyrm { nDamageDice = 42; } else if (nAge >= 78 && nAge <= 81) //Great Wyrm { nDamageDice = 44; } else if (nAge >= 82 && nAge <= 85) //Great Wyrm { nDamageDice = 46; } else if (nAge >= 86 && nAge <= 89) //Great Wyrm { nDamageDice = 48; } else if (nAge >= 90 && nAge <= 93) //Great Wyrm { nDamageDice = 50; } else if (nAge >= 94 && nAge <= 97) //Great Wyrm { nDamageDice = 52; } else if (nAge >= 98 && nAge <= 101) //Great Wyrm { nDamageDice = 54; } else if (nAge >= 102 && nAge <= 105) //Great Wyrm { nDamageDice = 56; } else if (nAge >= 106 && nAge <= 109) //Great Wyrm { nDamageDice = 58; } else if (nAge >= 110 && nAge <= 113) //Great Wyrm { nDamageDice = 60; } else if (nAge >= 114 && nAge <= 117) //Great Wyrm { nDamageDice = 62; } else if (nAge >= 118 && nAge <= 121) //Great Wyrm { nDamageDice = 64; } else if (nAge >= 122 && nAge <= 125) //Great Wyrm { nDamageDice = 66; } else if (nAge >= 126 && nAge <= 129) //Great Wyrm { nDamageDice = 68; } else if (nAge >= 130 && nAge <= 133) //Great Wyrm { nDamageDice = 70; } else if (nAge >= 134 && nAge <= 137) //Great Wyrm { nDamageDice = 72; } else if (nAge >= 138 && nAge <= 141) //Great Wyrm { nDamageDice = 74; } else if (nAge >= 142 && nAge <= 145) //Great Wyrm { nDamageDice = 76; } else if (nAge >= 146 && nAge <= 149) //Great Wyrm { nDamageDice = 78; } else if (nAge >= 150 && nAge <= 153) //Great Wyrm { nDamageDice = 80; } else if (nAge >= 154 && nAge <= 157) //Great Wyrm { nDamageDice = 82; } else if (nAge >= 158 && nAge <= 161) //Great Wyrm { nDamageDice = 84; } else if (nAge >= 162 && nAge <= 165) //Great Wyrm { nDamageDice = 86; } else if (nAge >= 166 && nAge <= 169) //Great Wyrm { nDamageDice = 88; } else if (nAge >= 170 && nAge <= 173) //Great Wyrm { nDamageDice = 90; } else if (nAge >= 174 && nAge <= 177) //Great Wyrm { nDamageDice = 92; } else if (nAge > 178 ) //Great Wyrm { nDamageDice = 94; } //create the breath - 40' ~ 14m? - should set it based on size later //was implemented using a cone before, changed to line ElecBreath = CreateBreath(OBJECT_SELF, TRUE, 80.0, DAMAGE_TYPE_ELECTRICAL, 8, nDamageDice, ABILITY_CONSTITUTION, nDCBoost); //Apply the breath PRCPlayDragonBattleCry(); ApplyBreath(ElecBreath, PRCGetSpellTargetLocation()); //Apply the recharge lock SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE); // Schedule opening the delay lock float fDelay = RoundsToSeconds(ElecBreath.nRoundsUntilRecharge); SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(ElecBreath.nRoundsUntilRecharge) + " rounds."); DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK)); DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now")); }