public void Cast(HeroTypes.Team targetTeam, Action onCompletedCallback)
 {
     _targetTeam                = targetTeam;
     _onCompletedCallback       = onCompletedCallback;
     _detectionCollider.enabled = true;
     _animatorController.CastAbility(ApplyAbility);
 }
Пример #2
0
 public Hero(int instanceId, HeroStatsConfig stats)
 {
     InstanceId       = instanceId;
     Team             = stats.Team;
     HealthPoints     = new HealthPoints(stats.HealthPoints);
     MaxMovementForce = stats.MaxMovementForce;
     Attack           = AttackFactory.GetAttack(stats.AttackConfig);
     Ability          = AbilityFactory.GetAbility(stats.AbilityConfig);
 }
Пример #3
0
        public static HeroTypes.Team GetRivalTeam(this HeroTypes.Team myTeam)
        {
            switch (myTeam)
            {
            case HeroTypes.Team.Player_1:
                return(HeroTypes.Team.Player_2);

            case HeroTypes.Team.Player_2:
                return(HeroTypes.Team.Player_1);

            default:
                throw new ArgumentOutOfRangeException(nameof(myTeam), myTeam, null);
            }
        }
Пример #4
0
 public GameOverSignal(HeroTypes.Team teamWinner)
 {
     TeamWinner = teamWinner;
 }
Пример #5
0
 private void LaunchGameOverSignal(HeroTypes.Team teamWinner)
 {
     _eventDispatcher.Dispatch(new GameOverSignal(teamWinner));
 }
Пример #6
0
        private bool CheckPlayerVictory(int heroInstanceId, List <HeroController> opponentHeroes, HeroTypes.Team teamWinner)
        {
            var deathHero = opponentHeroes.Find(heroHealth => heroHealth.HeroInstanceId == heroInstanceId);

            if (deathHero == null)
            {
                return(false);
            }

            opponentHeroes.Remove(deathHero);
            if (opponentHeroes.Count != 0)
            {
                return(false);
            }

            LaunchGameOverSignal(teamWinner);
            return(true);
        }