private static BattlerActionTarget ParseTarget(string targetStr) { BattlerActionTarget t = BattlerActionTarget.None; switch (targetStr) { case "None": break; case "TargetWeakestEnemy": t = BattlerActionTarget.TargetWeakestEnemy; break; case "RandomTarget": t = BattlerActionTarget.RandomTarget; break; case "RandomTarget_ButOnlyCasters": t = BattlerActionTarget.RandomTarget_ButOnlyCasters; break; case "TargetSelf": t = BattlerActionTarget.TargetSelf; break; case "TargetOwnSide": t = BattlerActionTarget.TargetOwnSide; break; case "TargetActingBattler": t = BattlerActionTarget.TargetActingBattler; break; case "TargetEndangeredAlly": t = BattlerActionTarget.TargetEndangeredAlly; break; case "HitAll": t = BattlerActionTarget.HitAll; break; default: throw new System.NotSupportedException("BattlerActionData entry has a bad targeting type: " + targetStr); } return(t); }
private BattlerActionData(int index, string line) { actionID = (BattlerAction)index; string[] terms = line.Split(','); name = terms[0]; cooldownTurns = int.Parse(terms[1]); effectPower = int.Parse(terms[2]); interruptType = ParseInterruptType(terms[3]); anim = ParseAnim(terms[4]); target = ParseTarget(terms[5]); baseDamage = int.Parse(terms[6]); numberOfSubtargets = int.Parse(terms[7]); flags = ParseListOfFlags(terms); if ((flags & BattlerActionEffectFlags.Healing) == BattlerActionEffectFlags.Healing) { baseDamage = baseDamage * -1; } }