public void ActivateAbility(FighterTeamFightStatus OpposingTeam) { // choose ability to activate ActiveAbility = fighter.ChooseAbility(); if (ActiveAbility != null) { FighterTeamFightStatus targetTeam = ActiveAbility.TargetTeam == AbilityTeamTarget.OTHER ? OpposingTeam : this.Team; FighterTargetsGroup targets = targetTeam.findTargets(ActiveAbility); if (this.OnActivateAbility != null) { this.OnActivateAbility(this); } ActiveAbility.Effect(targets, this); if (this.OnCompleteAbility != null) { this.OnCompleteAbility(this); } targets.ForEach(f => f.isAlive()); this.SetIdle(); } }
public FighterFightStatus(Fighter fighter, FighterTeamFightStatus team) { this.fighter = fighter; this.Team = team; this.Info = fighter.Info.Clone(); // Calculate idleTime from speed. this.SetIdle(); }
public Fight(FighterTeam alpha, FighterTeam beta) { Alpha = new FighterTeamFightStatus(alpha); Beta = new FighterTeamFightStatus(beta); FightOrder = new List<FighterFightStatus>(); FightOrder.AddRange(Alpha.SetupFightStatus()); FightOrder.AddRange(Beta.SetupFightStatus()); }
void onTeamUpdate(FighterTeamFightStatus Alpha, FighterTeamFightStatus Beta) { UpdateTeamText(Alpha, AlphaTextObject); UpdateTeamText(Beta, BetaTextObject); }
void onFoundWinner(FighterTeamFightStatus Winner) { Debug.Log(Winner.TeamInfo.TeamName + "is the winner!!!\n" + Fight.Alpha.DebugInfo() + "\n" + Fight.Beta.DebugInfo()); }
void UpdateTeamText(FighterTeamFightStatus team, GameObject textObject) { if (textObject != null) { textObject.GetComponent<Text>().text = TeamTextPrint(team); } }
private string TeamTextPrint(FighterTeamFightStatus team) { string text = team.TeamInfo.TeamName + "\n"; foreach (FighterFightStatus fighter in team.TeamStatus) { text += string.Format("Name:{0, 10} Ticks: {1, 3} Health: {2, 4} Attack: {3, 2} \n", fighter.Info.Name, fighter.IdleTime(), fighter.Info.Health, fighter.RealAttack); } return text; }