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();
        }
示例#3
0
        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());
        }
示例#4
0
 void onTeamUpdate(FighterTeamFightStatus Alpha, FighterTeamFightStatus Beta)
 {
     UpdateTeamText(Alpha, AlphaTextObject);
     UpdateTeamText(Beta, BetaTextObject);
 }
示例#5
0
 void onFoundWinner(FighterTeamFightStatus Winner)
 {
     Debug.Log(Winner.TeamInfo.TeamName + "is the winner!!!\n" + Fight.Alpha.DebugInfo() + "\n" + Fight.Beta.DebugInfo());
 }
示例#6
0
 void UpdateTeamText(FighterTeamFightStatus team, GameObject textObject)
 {
     if (textObject != null)
     {
         textObject.GetComponent<Text>().text = TeamTextPrint(team);
     }
 }
示例#7
0
    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;
    }