Beispiel #1
0
        public Spell( Enemy targetEnemy, Tower tower, float movementSpeed )
        {

            this.targetEnemy = targetEnemy;
            this.tower = tower;
            this.movementSpeed = movementSpeed;

        }
Beispiel #2
0
 private void Awake()
 {
     Instance = this;
 }
 public void AddEnemyToList(Enemy script)
 {
     _enemies.Add(script);
 }
 public EnemyDiedEvent(Enemy enemy)
 {
     Enemy = enemy;
 }
		public void Enter(Enemy enemy)
		{
			throw new NotImplementedException();
		}
Beispiel #6
0
 public static void PutEnemyToPool(Enemy target)
 {
     _poolsEnemyDict[target.name].Push(target);
     target.transform.parent = _parentForDeactivatedGO;
     target.gameObject.SetActive(false);
 }
Beispiel #7
0
        private Vector3 CalculateVectorFromTowerToEnemy( Enemy enemy )
        {

            // Calculate vector from top of the tower to the enemy.
            Vector3 enemyPos = enemy.gameObject.transform.position;
            Vector3 towerPos = this.gameObject.transform.position + new Vector3(0, 1, 0);

            Vector3 towerToEnemyDir = enemyPos - towerPos;

            return towerToEnemyDir;

        }
Beispiel #8
0
        public void Shoot( Enemy enemy )
        {

            if (enemy == null)
            {
                return;
            }

            float towerToEnemyDistance = 0.0f;

            // Calculate vector from top of the tower to the enemy.
            Vector3 towerToEnemyDir = CalculateVectorFromTowerToEnemy(enemy);
            Vector3 towerPos = this.gameObject.transform.position + new Vector3(0, 1, 0);

            towerToEnemyDistance = towerToEnemyDir.magnitude;
            Vector3 towerToEnemyDirNorm = towerToEnemyDir.normalized;

            // If the enemy is in range - shoot at him.

            if (towerToEnemyDistance <= range)
            {
                Spell newSpell = Instantiate(spell, towerPos, Quaternion.Euler(0, 0, 0)) as Spell;
                if( newSpell != null )
                {
                    newSpell.tower = this;
                    newSpell.targetEnemy = enemy;
                    newSpell.movementSpeed = 2;
                }
            }

        }
Beispiel #9
0
 public void Reclaim(Enemy enemy)
 {
     Debug.Assert(enemy.OriginFactory == this, "Wrong factory reclaimed!");
     Destroy(enemy.gameObject);
 }