/*private float DetermineDuration(CRT_State attack) // Set respective duration for the attack * { * switch (attack.GetName()) * { * case "Single": * if (SM.comboActive) * return Boss.PrepDur_Combo_fast; * else * return Boss.PrepDuration_Single; * case "DoubleHoz": * if (SM.comboActive) * return Boss.PrepDur_Combo_medium; * else * return Boss.PrepDuration_Double; * case "DoubleVer": * if (SM.comboActive) * return Boss.PrepDur_Combo_medium; * else * return Boss.PrepDuration_Double; * default: * return 0; * } * }*/ public override void Enter() { Boss.sp.color = Color.yellow; Location playerLoc = FindPlayer(); // Find the location the player is occupying AttackToPerform = GetNextComboStep(); // Determine which attack to perform (random, currently) //Duration = DetermineDuration(AttackToPerform); // Determine duration of the current attack Boss.targets = DetermineTargets(AttackToPerform, playerLoc); // Determine the target locations based on the current attack Boss.TargetLocations(); // Target (visually indicate - yellow) those locations SM.DetermineAnimation(AttackToPerform.GetName()); }
private List <Location> DetermineTargets(CRT_State attack, Location player) // aquire targets according to attack { List <Location> targets = new List <Location>(); switch (attack.GetName()) { case "Single": targets.Add(player); Boss.SetSound(0); return(targets); case "DoubleHoz": if (player.isUp) // if up { for (int i = 0; i < Boss.locations.Length; i++) { if (Boss.locations[i].isUp) { targets.Add(Boss.locations[i]); } } } else // if down { for (int i = 0; i < Boss.locations.Length; i++) { if (!Boss.locations[i].isUp) { targets.Add(Boss.locations[i]); } } } Boss.SetSound(0); return(targets); case "DoubleVer": if (player.isRight) // if right { for (int i = 0; i < Boss.locations.Length; i++) { if (Boss.locations[i].isRight) { targets.Add(Boss.locations[i]); } } } else // if left { for (int i = 0; i < Boss.locations.Length; i++) { if (!Boss.locations[i].isRight) { targets.Add(Boss.locations[i]); } } } Boss.SetSound(0); return(targets); case "AllSimul": foreach (Location t in Boss.locations) { targets.Add(t); } Boss.SetSound(2); return(targets); default: return(targets); } }