public void TargetAINull()
 {
     if (aiDestination.target == null)
     {
         aiDestination.target = GameInstances.GetPlayer().transform;
     }
 }
예제 #2
0
 public void SetScorePoints()
 {
     if (GameInstances.GetPlayer().state != ShipState.DISABLED)
     {
         GameInstances.GetPlayer().amountPoints += amountPoints;
     }
 }
    public void AddLifeBar()
    {
        if (!HasLifeBar(GameInstances.GetPlayer()))
        {
            LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
            _lifeBar.owner = GameInstances.GetPlayer();
            listLifeBarInfo.Add(_lifeBar);
        }

        for (int i = 0; i < GameInstances.instance.listShooterEnemies.Count; i++)
        {
            ShooterEnemy enemyIndex = GameInstances.instance.listShooterEnemies[i];
            if (!HasLifeBar(enemyIndex))
            {
                LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
                _lifeBar.owner = enemyIndex;
                listLifeBarInfo.Add(_lifeBar);
            }
        }

        for (int i = 0; i < GameInstances.instance.listChaserEnemies.Count; i++)
        {
            ChaserEnemy enemyIndex = GameInstances.instance.listChaserEnemies[i];
            if (!HasLifeBar(enemyIndex))
            {
                LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
                _lifeBar.owner = enemyIndex;
                listLifeBarInfo.Add(_lifeBar);
            }
        }
    }
예제 #4
0
 public void DistanceBetweenPlayer()
 {
     if (aiPath.reachedDestination && state != ShipState.DISABLED)
     {
         _lookAtdirection   = GameInstances.GetPlayer().transform.position - transform.position;
         transform.rotation = Quaternion.LookRotation(Vector3.forward, _lookAtdirection);
     }
 }
 public void DisableFindingPlayer()
 {
     if (state == ShipState.DISABLED || GameInstances.GetPlayer().state == ShipState.DISABLED || Spawner.spawnerInstance.gameFinish == true)
     {
         aiDestination.enabled = false;
         aiPath.enabled        = false;
     }
 }
예제 #6
0
    public void CheckDistanceBtwPlayer()
    {
        _distanceBetween = Vector2.Distance(transform.position, GameInstances.GetPlayer().transform.position);

        if (_distanceBetween > maxDistanceBtwShooter)
        {
            gameObject.SetActive(false);
        }
    }
    public void SetScorePoints()
    {
        scorePointsText.text = GameInstances.GetPlayer().amountPoints.ToString();

        if (GameInstances.GetPlayer().state == ShipState.DISABLED || Spawner.spawnerInstance.gameFinish == true)
        {
            endScorePointsText.text = GameInstances.GetPlayer().amountPoints.ToString();
        }
    }
예제 #8
0
    public void EnemyHitsPlayer()
    {
        _distanceBetween = Vector2.Distance(transform.position, GameInstances.GetPlayer().transform.position);

        if (_distanceBetween <= 0.5 && state != ShipState.DISABLED && GameInstances.GetPlayer().state != ShipState.DISABLED)
        {
            GameInstances.GetPlayer().TakeDamage(maxLife);
            TakeDamage(maxLife);
        }
    }
예제 #9
0
 void Update()
 {
     DisableFindingPlayer();
     if (GameInstances.GetPlayer().state == ShipState.DISABLED)
     {
         return;
     }
     SetShipGraphics();
     Dead();
 }
예제 #10
0
 public void CheckEndGame()
 {
     if (gamePlayTime >= gameMinutes * 60 || GameInstances.GetPlayer().state == ShipState.DISABLED)
     {
         EndGame();
     }
     else
     {
         if (currentCountdown >= 1 && GameInstances.GetPlayer().state != ShipState.DISABLED)
         {
             GamePlayTime();
         }
     }
 }
예제 #11
0
        protected override void Update(GameTime gameTime)
        {
            if (!GameInstances.Any(game => game.IsSnakeAlive))
            {
                Restart();
            }

            foreach (var gameInstance in GameInstances)
            {
                gameInstance.Update(gameTime);
            }

            maxScore            = ActiveGameInstances.Max(game => game.Score);
            ActiveGameInstances = GameInstances.Where(game => game.IsSnakeAlive).ToList();

            base.Update(gameTime);
        }
예제 #12
0
        void StopPlayingMap(ProgramEvents.StopPlayingMap e)
        {
            int prevSilver = GetMaxSilverYield(e.MapFileName);

            GameInstances.Add(e);

            if (e.GameState == Client.Game.GameState.Won && CurrentMap != null)
            {
                if (!Program.Settings.DeveloperMainMenu)
                {
                    if (e.SilverYield > prevSilver)
                    {
                        SilverCoins += e.SilverYield - prevSilver;
                    }

                    bool d;
                    if (!CompletedMaps.TryGetValue(CurrentMap.MapName, out d))
                    {
                        d = false;
                    }
                    CompletedMaps[CurrentMap.MapName] = true;

                    int ge = 0;
                    if (!d)
                    {
                        ge         = CurrentMap.Yield;
                        GoldCoins += CurrentMap.Yield;
                    }

                    Save();
                    if (!d)
                    {
                        Program.Instance.SignalEvent(new ProgramEvents.CompletedMap
                        {
                            MapName    = CurrentMap.MapName,
                            GoldEarned = ge
                        });
                    }
                }
            }
            CurrentMap         = null;
            currentMapFileName = null;
        }
예제 #13
0
    public void EnemyShooting()
    {
        _distanceBetween = Vector2.Distance(transform.position, GameInstances.GetPlayer().transform.position);

        if (_distanceBetween < distanceToShoot && state != ShipState.DISABLED && GameInstances.GetPlayer().state != ShipState.DISABLED && Spawner.spawnerInstance.gameFinish == false)
        {
            if (timeBtwShots <= 0)
            {
                Bullet _bullet = GameInstances.instance.poolSystemInstance.TryToGetBullet();
                _bullet.transform.position   = shotPoint.position;
                _bullet.rBodyBullet.velocity = shotPoint.up * -1 * _bullet.speed;
                _bullet.currentShooter       = transform;
                timeBtwShots = startTimeBtwShots;
            }
            else
            {
                timeBtwShots -= Time.deltaTime;
            }
        }
    }
예제 #14
0
 void Awake()
 {
     instance = this;
 }
예제 #15
0
 protected virtual void Restart()
 {
     GameInstances       = CreateGameInstances();
     ActiveGameInstances = GameInstances.ToList();
 }