void Start() { rb = GetComponent <Rigidbody2D>(); isJumping = false; jumpInterval = -1; time = 0; if (movDirection.ToString() == "Izq") { direction = -1; } else { direction = 1; } if (enemyType.ToString() == "Gato") { jumpForce = 300; jumpInterval = 25; } else if (enemyType.ToString() == "Paloma") { jumpForce = 250; jumpInterval = 1; } else if (enemyType.ToString() == "Mendigo") { speed = 0; } }
public static BaseEnemy.BaseAttributes Attributes(this EnemyTypes enemyType) { if (EnemyAttributes.ContainsKey(enemyType)) { return(EnemyAttributes[enemyType]); } var enemyName = enemyType.ToString(); var csvEntry = GlobalContent.Enemy_Attributes[enemyName]; var enemyAttributes = new BaseEnemy.BaseAttributes() { Health = csvEntry.Health, Speed = csvEntry.Speed, BombardResist = csvEntry.BombardResist, PiercingResist = csvEntry.PiercingResist, ChemicalResist = csvEntry.ChemicalResist, FrostResist = csvEntry.FrostResist, FireResist = csvEntry.FireResist, ElectricResist = csvEntry.ElectricResist, }; EnemyAttributes[enemyType] = enemyAttributes; return(enemyAttributes); }
/// <summary> /// Create an empty game object with a spawner component /// </summary> /// <param name="enemyType"> The enemy that will spawn from the new /// spawner</param> private void CreateSpawner(EnemyTypes enemyType) { Stack <CombatSpawner> choosenStack = spawnerGroups[(int)enemyType]; GameObject parent = _groups[(int)enemyType]; if (parent == null) { parent = new GameObject(_groupnames[(int)enemyType]); _groups[(int)enemyType] = parent; parent.transform.position = gameObject.transform.position; parent.transform.SetParent(gameObject.transform); } SyncStackToScene(choosenStack, parent); GameObject go = new GameObject($"{enemyType.ToString()} Spawner {parent.transform.childCount} - {gameObject.name}"); CombatSpawner cs = go.AddComponent <CombatSpawner>(); cs.enemy = enemyType; go.transform.SetParent(parent.transform); // Put new spawner in the location & rotation of the last made spawner // of the same type if it exists, if it doesn't put it in the group // holder object's location if (choosenStack.Count > 1) { //print($"Position of {choosenStack.Peek().name}: {choosenStack.Peek().transform.position}"); //print($"Local Position of {choosenStack.Peek().name}: {choosenStack.Peek().transform.localPosition}"); go.transform.localPosition = choosenStack.Peek().transform.localPosition; go.transform.localRotation = choosenStack.Peek().transform.localRotation; } else { go.transform.localPosition = parent.transform.localPosition; go.transform.localRotation = parent.transform.localRotation; } choosenStack.Push(cs); // Update the parent's name to show how many children (spawners) it // has. parent.name = _groupnames[(int)enemyType] + $"- {parent.transform.childCount}"; }
public void GenerateAngel(int level) { this.EnemyType = EnemyTypes.darkAngel; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(12 + level, 25 + (2 * level)); this.AttackDamage = Random.Range(6 + (2 * level), 15 + (2 * level)); this.TimeBetweenAttacks = 60f; this.baseXP = 125 * level; this.Attacks = new Attack[] { new Attack("Hell fire", 5, 10, "attack") }; }
public void GenerateArcher(int level) { this.EnemyType = EnemyTypes.archer; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(8 + level, 20 + (2 * level)); this.AttackDamage = Random.Range(6 + (2 * level), 15 + (2 * level)); this.TimeBetweenAttacks = 60f; this.baseXP = 50 * level; this.Attacks = new Attack[] { new Attack("Arrow", 1, 3, "attack") }; }
public void GenerateGhoul(int level) { this.EnemyType = EnemyTypes.burningGhoul; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(4 + level, 12 + (2 * level)); this.AttackDamage = Random.Range(6 + (2 * level), 15 + (2 * level)); this.TimeBetweenAttacks = 120f; this.baseXP = 75 * level; this.Attacks = new Attack[] { new Attack("Slash", 2, 3, "attack") }; }
public void GenerateWarriorSkeleton(int level) { this.EnemyType = EnemyTypes.warriorSkeleton; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(12 + level, 25 + (2 * level)); this.AttackDamage = Random.Range(10 + (2 * level), 20 + (2 * level)); this.TimeBetweenAttacks = 45f; this.baseXP = 50 * level; this.Attacks = new Attack[] { new Attack("Sword", 5, 10, "attack") }; }
public void GenerateSpearSkeleton(int level) { this.EnemyType = EnemyTypes.spearmanSkeleton; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(8 + level, 18 + (2 * level)); this.AttackDamage = Random.Range(8 + (2 * level), 16 + (2 * level)); this.TimeBetweenAttacks = 60f; this.baseXP = 100 * level; this.Attacks = new Attack[] { new Attack("Spear", 2, 3, "attack") }; }
public void GenerateShieldSkeleton(int level) { this.EnemyType = EnemyTypes.shieldSkeleton; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(12 + level, 25 + (2 * level)); this.AttackDamage = Random.Range(5 + (2 * level), 16 + (2 * level)); this.TimeBetweenAttacks = 75f; this.baseXP = 100 * level; this.Attacks = new Attack[] { new Attack("Sword", 3, 3, "attack") }; }
public void GenerateMonk(int level) { this.EnemyType = EnemyTypes.monk; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(12 + level, 25 + (2 * level)); this.AttackDamage = Random.Range(5 + (2 * level), 16 + (2 * level)); this.TimeBetweenAttacks = 45f; this.baseXP = 50 * level; this.Attacks = new Attack[] { new Attack("Punch", 2, 3, "attack") }; }
public void GenerateWizard(int level) { this.EnemyType = EnemyTypes.evilWizard; this.Name = EnemyType.ToString(); this.HitPoints = Random.Range(4 + level, 12 + (2 * level)); this.AttackDamage = Random.Range(10 + (2 * level), 20 + (2 * level)); this.TimeBetweenAttacks = 75f; this.baseXP = 100 * level; this.Attacks = new Attack[] { new Attack("Fireball", 5, 10, "attack") }; }
public void Init() { var data = Root.DataManager.GetEnemiesData().enemyTypes.FirstOrDefault(e => e.Name == _type.ToString()); _enemy = new Enemy(data.MaxHealth, data.MoveSpeed, data.ShootLatency, data.BulletSpeed, data.DamageStrength, transform); _enemy.OnDied += DieEventHandler; _enemy.OnReadyToShoot += ReadyToSpawnBullet; _initialized = true; _enemy.Move(new Vector3()); }