private bool checkLife(CombatAIRow row) { //Debug.Log(owner); List <CombatChar> targets = owner.GetTargetsOnRange(row.power.range, row.targets); if (targets == null) { return(false); } List <CombatChar> realTargets = new List <CombatChar>(); if (row.condition == AIConditions.Higher) { foreach (CombatChar target in targets) { if (target.C.percentLife() >= (float)row.value) { realTargets.Add(target); } } } else if (row.condition == AIConditions.Lesser) { foreach (CombatChar target in targets) { //Debug.Log(target.percentLife() + " " + (float)row.value); if (target.C.percentLife() <= (float)row.value) { realTargets.Add(target); } } } if (realTargets.Count == 0) { return(false); } else if (realTargets.Count == 1) { owner.castTarget = realTargets[0]; owner.chargedPower = row.power; owner.castingTimer = row.power.castingTime; return(true); } else { realTargets.Sort(delegate(CombatChar a, CombatChar b) { return(a.GetAggro().CompareTo(b.GetAggro())); }); owner.castTarget = realTargets[realTargets.Count - 1]; owner.chargedPower = row.power; owner.castingTimer = row.power.castingTime; return(true); } }
public CombatAIRow SaveRow() { CombatAIRow row = new CombatAIRow(); foreach (CombatAI.AIConditions condition in Enum.GetValues(typeof(CombatAI.AIConditions))) { if (condition.ToString() == conditionTab.GetComponentInChildren <Text>().text) { row.condition = condition; } } foreach (CombatManager.Targets target in Enum.GetValues(typeof(CombatManager.Targets))) { if (target.ToString() == targetTab.GetComponentInChildren <Text>().text) { row.targets = target; } } foreach (CombatAI.AIValues values in Enum.GetValues(typeof(CombatAI.AIValues))) { if (values.ToString() == valueTab.GetComponentInChildren <Text>().text) { row.value = values; } } foreach (CombatAI.AITests tests in Enum.GetValues(typeof(CombatAI.AITests))) { if (tests.ToString() == testTab.GetComponentInChildren <Text>().text) { row.test = tests; } } row.power = Owner.C.knownPowers[powerTab.GetComponentInChildren <Text>().text]; return(row); }