/// <summary> /// Formats the spell information for a terminal window. /// </summary> /// <returns></returns> public override string ToString() { string text = String.Format("\r\nSpell: '{0}' ", Name); text += String.Format("Minimum mana: {0} Castable in battle: {1}\r\n", MinimumMana, CanCastInCombat ? "Yes" : "No"); text += String.Format("Targets: {0} Mana Type: {1} School: {2}\r\n", ValidTargets, ManaType, StringConversion.SpellSchoolString(School)); text += String.Format("Duration: {0} Save: {1} Stack: {2}\r\n", Duration, SavingThrowEffect, StackingType); text += String.Format("Dmg Type: {0} Cast Time: {1} Dmg: 1d{2}/lvl+{3} Cap: Lv {4}\r\n", DamageInflicted.ToString(), CastingTime, DamageDicePerLevel, BaseDamage, LevelCap); text += String.Format("AI Pwr: {0} AI %: {1} AI Type: {2} Detriment: {3} Scribe: {4}\r\n", AIPower, AIChance, AICategoryType, Detrimental, CanBeScribed); text += String.Format("Cast Msg: {0}\r\nCast To Vict: {1}\r\n", MessageCompleted, MessageCompletedToTarget); text += String.Format("Cast To Room: {0}\r\n", MessageCompletedToRoom); text += String.Format("Dmg To Room: {0}\r\nDmg To Vict: {1}\r\n", MessageDamageToRoom, MessageDamageToVictim); text += String.Format("Dmg To Room: {0}\r\nDmg To Self: {1}\r\n", MessageDamageSelfToRoom, MessageDamageToSelf); text += String.Format("Damage Msg: {0}\r\nKill Msg: {1}\r\n", MessageDamage, MessageKill); text += String.Format("Wear Off Msg: {0}\r\n", MessageWearOff); text += String.Format("Provides: {0}\r\n", BitvectorFlagType.AffectString(Provides, false)); text += String.Format("Negates: {0}\r\n", BitvectorFlagType.AffectString(Negates, false)); text += String.Format("Modifies: {0}\r\n", ""); text += "\r\nClass Availability:\r\n"; for (int count = 0; count < CharClass.ClassList.Length; ++count) { text += String.Format(" {0}: {1:00}", MUDString.PadStr(CharClass.ClassList[count].Name, 18), _spellCircle[count]); if (count % 3 == 2) { text += "\r\n"; } } text += "\r\n"; return(text); }