示例#1
0
    public void addItem(Item item)
    {
        Debug.Log("This got called");

        StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);;

        StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType);

        StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType);

        HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat;
        ArmorStat  armor  = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat;
        DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat;

        statController.AddModifier(healthMod);
        statController.AddModifier(armorMod);
        statController.AddModifier(damageMod);

        Debug.Log("Health total is " + health.CalculateFinalValue());
        Debug.Log("Damage total is " + damage.CalculateFinalValue());
        Debug.Log("Armor total is " + armor.CalculateFinalValue());


        items[(int)item.equipmentSlot] = item;

        for (int i = 0; i < equipmentUISlots.Length; i++)
        {
            if (item.equipmentSlot == equipmentUISlots[i].equipmentSlot)
            {
                equipmentUISlots[i].addItem(item);
            }
        }
    }
示例#2
0
    // do something on collision
    public override void onCollision(GameObject projectile, Collision2D collision)
    {
        Collider2D collider = collision.GetContact(0).collider;

        //Debug.Log(User.name + " hit " + collider.name);


        if (collider.gameObject == User)
        {
            return;
        }


        if (breakWalls)
        {
            Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f;

            if (collision.GetContact(0).collider.name == "Walls")
            {
                FindObjectsOfType <Map.MapManager>()[0].DamageTile(hitPos.x, hitPos.y, damage);
                Destroy(projectile);
            }
        }

        StatControler sC;
        StatControler sCUser = User.GetComponent <StatControler>();

        if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null)
        {
            int finalDamage = 0;
            finalDamage += damage;

            HealthStat health      = sC.GetStatOfType(StatType.HealthStat) as HealthStat;
            ArmorStat  armor       = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat;
            DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat;

            if (armor != null)
            {
                finalDamage -= (int)armor.CalculateFinalValue();
            }
            if (damageBonus != null)
            {
                finalDamage += (int)damageBonus.CalculateFinalValue();
            }

            //Debug.Log(health);

            if (health != null)
            {
                //Debug.Log(finalDamage);
                health.addValue(-finalDamage);
                Destroy(projectile);
            }
        }
    }
示例#3
0
    public void removeItem(Item item)
    {
        StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);;

        StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType);

        StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType);

        HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat;
        ArmorStat  armor  = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat;
        DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat;

        statController.RemoveModifier(healthMod);
        statController.RemoveModifier(armorMod);
        statController.RemoveModifier(damageMod);

        Debug.Log("Health total is " + health.CalculateFinalValue());
        Debug.Log("Damage total is " + damage.CalculateFinalValue());
        Debug.Log("Armor total is " + armor.CalculateFinalValue());

        items[(int)item.equipmentSlot] = null;
    }
示例#4
0
    // do something on collision
    public override void onCollision(GameObject attack, Collision2D collider)
    {
        //Debug.Log(User.name + " hit " + collider.gameObject.name);

        if (collider.gameObject == User)
        {
            return;
        }

        StatControler sC;
        StatControler sCUser = User.GetComponent <StatControler>();

        if ((sC = collider.gameObject.GetComponent <StatControler>()) != null)
        {
            int finalDamage = 0;
            finalDamage += damage;

            HealthStat health      = sC.GetStatOfType(StatType.HealthStat) as HealthStat;
            ArmorStat  armor       = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat;
            DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat;

            if (armor != null)
            {
                finalDamage -= (int)armor.CalculateFinalValue();
            }
            if (damageBonus != null)
            {
                finalDamage += (int)damageBonus.CalculateFinalValue();
            }

            //Debug.Log(health);

            if (health != null)
            {
                health.addValue(-finalDamage);
                //Debug.Log("Players health is = " + health.CurrentValue);
            }
        }
    }
示例#5
0
    //DO damage on colision like magic bolt
    private void OnCollisionEnter2D(Collision2D col)
    {
        StatControler sC;

        if ((sC = col.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null && col.gameObject.tag == "Player")
        {
            int finalDamage = 0;
            finalDamage += damage;

            HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat;
            ArmorStat  armor  = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat;

            if (armor != null)
            {
                finalDamage -= (int)armor.CalculateFinalValue();
            }

            if (health != null)
            {
                health.addValue(-finalDamage);
                Die();
            }
        }
    }
示例#6
0
    // do something on collision
    public override void onCollision(GameObject projectile, Collision2D collision)
    {
        Collider2D collider = collision.GetContact(0).collider;

        //Debug.Log(User.name + " hit " + collider.name);


        if (collider.gameObject == User)
        {
            return;
        }


        if (breakWalls)
        {
            Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f;

            if (collision.GetContact(0).collider.name == "Walls")
            {
                Instantiate(explosion, hitPos, new Quaternion());

                for (float i = -explosionRaidius; i <= explosionRaidius; ++i)
                {
                    for (float j = -explosionRaidius; j <= explosionRaidius; ++j)
                    {
                        var d = i * i + j * j;
                        if (d <= sqrR)
                        {
                            Map.MapManager.instance.DamageTile(hitPos.x + i, hitPos.y + j, damage / d);
                        }
                    }
                }

                Destroy(projectile);
            }
        }

        StatControler sC;
        StatControler sCUser = User.GetComponent <StatControler>();

        if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null)
        {
            int finalDamage = 0;
            finalDamage += damage;

            HealthStat health      = sC.GetStatOfType(StatType.HealthStat) as HealthStat;
            ArmorStat  armor       = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat;
            DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat;

            if (armor != null)
            {
                finalDamage -= (int)armor.CalculateFinalValue();
            }
            if (damageBonus != null)
            {
                finalDamage += (int)damageBonus.CalculateFinalValue();
            }

            //Debug.Log(health);

            if (health != null)
            {
                //Debug.Log(finalDamage);
                health.addValue(-finalDamage);
                Destroy(projectile);
            }
        }
    }