public void Setup(EnemyDummy dummy) { speed = dummy.Speed; maxHp = dummy.MaxHp; currentHp = maxHp; damage = dummy.Damage; gold = dummy.Gold; }
public void SpawnEnemy(Enemy enemy) { EnemyDummy dummy = EnemyPool.Instance.GetObject(); Vector2 randomOffset = new Vector2(Random.Range(-1.0f, 1.0f), Random.Range(-1.0f, 1.0f)) * radius; dummy.Setup(enemy, gameObject.transform.position, randomOffset); dummy.SetDestination(nextNavEntity); }
private void OnTriggerEnter2D(Collider2D collision) { EnemyDummy something = collision.GetComponent <EnemyDummy>(); if (something != null && !targets.Contains(something)) { targets.Add(something); } }
private void Shoot(EnemyDummy target) { ProjectileDummy dummy = ProjectilePool.Instance.GetObject(); dummy.Setup(projectile, gameObject.transform.position + (Vector3)shootingPoint, target, damage, splash); Transform smokeEffectTransform = SmokeEffectPool.Instance.GetObject().transform; smokeEffectTransform.localScale = Vector3.one * blastScale; IsometricLocomotion.SetPositionElevated(smokeEffectTransform, (Vector2)gameObject.transform.position + new Vector2(shootingPoint.x, 0), shootingPoint.y); }
public static Enemy createFromDummy(EnemyDummy dummy) { switch (dummy.type) { case GreenEnemy.TYPE: return(new GreenEnemy(dummy.position)); case BlueEnemy.TYPE: return(new BlueEnemy(dummy.position)); case RedEnemy.TYPE: return(new RedEnemy(dummy.position)); } return(null); }
public void Setup(Projectile projectile, Vector3 projectileSpawnPosition, EnemyDummy target, int projectileDamage, bool splash) { //yeah this.target = target; damage = projectileDamage; speed = projectile.Speed; this.splash = splash; trajectory = projectile.TrajectoryPeak; spriteRenderer.sprite = projectile.Sprite; transform.localScale = Vector3.one * projectile.Scale; impactScale = projectile.ImpactScale; destination = target.transform.position; locomotion.ResetElevation(); IsometricLocomotion.SetPositionOnPlane(transform, projectileSpawnPosition); distanceToTarget = ((Vector2)transform.position - destination).magnitude; moveDirection = (destination - (Vector2)transform.position).normalized; distanceTraveled = 0; }
public EnemyDummy PickTarget() { float minDistance = Mathf.Infinity; EnemyDummy picked = null; for (int i = targets.Count - 1; i > -1; i--) { EnemyDummy target = targets[i]; if (!target.gameObject.activeInHierarchy) { targets.RemoveAt(i); continue; } if (target.GetGoalDistance() < minDistance) { minDistance = target.GetGoalDistance(); picked = target; } } return(picked); }
public void Tick() { if (ready) { EnemyDummy target = targetSeeker.PickTarget(); if (target != null) { Shoot(target); ready = false; } else { return; } } currentTime += Time.deltaTime; if (currentTime > interval) { currentTime = 0; ready = true; } }
private void TakeDamage(EnemyDummy slime) { slime.Kill(); _currentNumberOfSlimesUntilDeath--; }