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;
        }
    }
Esempio n. 2
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}";
    }
Esempio n. 4
0
    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")
        };
    }
Esempio n. 5
0
    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")
        };
    }
Esempio n. 6
0
    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")
        };
    }
Esempio n. 7
0
    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")
        };
    }
Esempio n. 8
0
    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")
        };
    }
Esempio n. 9
0
    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")
        };
    }
Esempio n. 10
0
    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")
        };
    }
Esempio n. 11
0
    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")
        };
    }
Esempio n. 12
0
    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());
    }