public override void Pick(PlanOfAttack plan) { int index = Random.Range(0, pickers.Count); BaseAbilityPicker p = pickers[index]; p.Pick(plan); }
public override void Pick(PlanOfAttack finalPlan) { PlanOfAttack optionalPlan = new PlanOfAttack(); PlanOfAttack plan = new PlanOfAttack(); for (int i = 0; i < pickers.Count; i++) { BaseAbilityPicker p = pickers[i]; p.Pick(plan); cp.Evaluate(plan); if (plan.ability == null) { optionalPlan = plan; continue; } Debug.Log(plan.ability.name); Debug.Log(plan.unit.name); string unit = plan.unit.name; string ability = plan.ability.name; Unit.Pair pair = new Unit.Pair(unit, ability); if (owner.pairings.Contains(pair)) { pair = (Unit.Pair)owner.pairings[owner.pairings.IndexOf(pair)]; } else { owner.pairings.Add(pair); max = pair.damage; abilityName = pair.ability; } if (pair.damage >= max) { max = pair.damage; abilityName = pair.ability; finalPlan.ability = plan.ability; finalPlan.target = plan.target; finalPlan.moveLocation = plan.moveLocation; finalPlan.fireLocation = plan.fireLocation; finalPlan.attackDirection = plan.attackDirection; finalPlan.unit = plan.unit; } bmc.Display("Current max: " + max + " by " + abilityName); StartCoroutine(Wait()); } max = 0; if (finalPlan.ability == null) { finalPlan.ability = optionalPlan.ability; finalPlan.target = optionalPlan.target; finalPlan.moveLocation = optionalPlan.moveLocation; finalPlan.fireLocation = optionalPlan.fireLocation; finalPlan.attackDirection = optionalPlan.attackDirection; finalPlan.unit = optionalPlan.unit; } finalPlan.complete = true; }