Ejemplo n.º 1
0
    public static int CalculateElementDamageOTToMonster(Damage_OT dot, Monster y)
    {
        int d = 0;

        Damage_OT.Damage_OTType otype = dot.GetDamage_OTType();
        Damage_OT.Damage_OTType poi   = Damage_OT.Damage_OTType.Poison;

        //Damage_OT.Damage_OTType ble = Damage_OT.Damage_OTType.Bleeding;
        Damage_OT.Damage_OTType fir = Damage_OT.Damage_OTType.Fire;

        Damage.DamageType m = y.mobElement;

        if (otype == poi && m == Damage.DamageType.Poison)
        {
            d = (int)((dot.GetDamage_OTAmount() / 2f)) * -1;
        }
        else if (otype == fir && m == Damage.DamageType.Fire)
        {
            d = (int)((dot.GetDamage_OTAmount() / 2f)) * -1;
        }
        else
        {
            d = dot.GetDamage_OTAmount();
        }
        return(d);
    }
Ejemplo n.º 2
0
 public void OnTriggerStay2D(Collider2D col)
 {
     if (col.gameObject.tag == "Monster")
     {
         if (isReady && pM.attacking)
         {
             isReady = false;
             Damage damage = new Damage(pS.primaryDamage, pS.minDamage_P, pS.maxDamage_P);
             damage.RunCritDice(0, 100, pS.critChance, (1f + (pS.critDamage / 100f)));
             int hit = Damage_Calculator.CalculateElementDamageToMonster(damage, col.GetComponent <Monster>());
             if (pS.primaryOTDamage != Damage_OT.Damage_OTType.Normal)
             {
                 Damage_OT ot    = new Damage_OT(pS.primaryOTDamage, (int)(Random.Range(pS.minDamage_P / 5f, pS.maxDamage_P / 5)), 5f);
                 int       othit = Damage_Calculator.CalculateElementDamageOTToMonster(ot, col.GetComponent <Monster>());
                 col.GetComponent <Monster>().TakeDamageOT(ot, othit);
                 GameObject debuff = Instantiate(new GameObject(), col.transform);
                 debuff.AddComponent <De_Buff>().InitializeDeBuff(ot);
             }
             col.GetComponent <Monster>().TakeDamage(damage, hit);
             Debug.Log("Hit For : " + hit);
         }
         if (!pM.attacking)
         {
             isReady = true;
         }
     }
 }
Ejemplo n.º 3
0
    public void TakeDamageOT(Damage_OT dot, int damage)
    {
        if (cbp > 0)     // If there is a barrier attack barrier first; take damage to hp
        {
            if (cbp > damage)
            {
                cbp    = cbp - damage;
                damage = 0;
            }
            else if (damage > cbp)
            {
                damage = damage - cbp;
            }
        }

        if (cbp <= 0 && chp > 0 && damage > 0) // If there is no barrier, has more than 0 current hp, and there is damage to deal; take damage to hp
        {
            chp = chp - damage;
        }

        var        dui  = GameObject.FindGameObjectWithTag("DamageText");
        GameObject dtui = Instantiate(dui, dui.transform.parent.parent) as GameObject;
        Vector2    cam  = Camera.main.WorldToScreenPoint(transform.position);

        dtui.transform.position = cam;
        dtui.AddComponent <DamageText_UI>().SetDamage(dot, damage);
        CheckVitals();
    }
Ejemplo n.º 4
0
    public static int CalculateElementDamageOTToPlayer(int level, Damage_OT dot, Resistance y)
    {
        var ps = GameObject.Find("Player").GetComponent <Player_Stats>();

        int d = 0;

        if (dot.GetDamage_OTType() != Damage_OT.Damage_OTType.Normal)
        {
            if (dot.GetDamage_OTType() == y.GetResistanceOTType())
            {
                int r = y.GetResistanceAmount();
                if (r > 100)
                {
                    d = (int)((((r - 100f) / 100f) + 1f) * -1f);
                }
                else if (r == 0)
                {
                    d = (int)(dot.GetDamage_OTAmount() / (y.GetResistanceAmount() + 1f));
                }
                else if (r != 0)
                {
                    d = (dot.GetDamage_OTAmount() / (y.GetResistanceAmount()));
                }
            }
        }
        else
        {
            if (level >= (ps.playerLevel - 10))
            {
                d = ((dot.GetDamage_OTAmount() - (ps.armor / ps.playerLevel)));
            }
            else
            {
                d = ((dot.GetDamage_OTAmount() - (int)(ps.armor / (ps.playerLevel / (25f * ps.playerLevel)))));
            }
            if (d < 0)
            {
                d = 0;
            }
        }
        return(d);
    }
Ejemplo n.º 5
0
    public void OnTriggerStay2D(Collider2D col)
    {
        if (col.tag == "Monster" && tag == "PHITBOX")
        {
            var b = GetComponentInParent <Player_Main>();
            if (!b.invulnerable)
            {
                Damage d = null;
                var    m = col.GetComponent <Monster>();
                if (m.mobElement == Damage.DamageType.Poison)
                {
                    Damage_OT  dot    = new Damage_OT(Damage_OT.Damage_OTType.Poison, (int)(Random.Range(m.minDamage, m.maxDamage) / 5f), 1.00f);
                    GameObject debuff = Instantiate(new GameObject(), b.transform);
                    debuff.AddComponent <De_Buff>().InitializeDeBuff(dot);
                    d = new Damage(m.mobElement, m.minDamage / 3, m.maxDamage / 3);
                }

                else
                {
                    d = new Damage(m.mobElement, m.minDamage, m.maxDamage);
                }
                Resistance r = (GetComponentInParent <Player_Stats>().GetResistanceForType(m.mobElement));

                int x = Damage_Calculator.CalculateElementDamageToPlayer(m, d, r);
                b.TakeDamage(x);
                var dui = GameObject.FindGameObjectWithTag("DamageText");

                if (DamageTextManager.IsOkToCreate())
                {
                    GameObject dtui = Instantiate(dui, dui.transform.parent.parent) as GameObject;
                    Vector2    cam  = Camera.main.WorldToScreenPoint(transform.position);
                    dtui.transform.position = cam;
                    dtui.AddComponent <DamageText_UI>().SetDamage(d, x, true);
                }
            }
        }
    }
Ejemplo n.º 6
0
 public void SetDamage(Damage_OT damage, int amount, bool monster = false)
 {
     if (DamageTextManager.IsOkToCreate())
     {
         GetComponent <Rigidbody2D>().simulated = true;
         if (monster)
         {
             GetComponent <UnityEngine.UI.Text>().fontStyle = FontStyle.Italic;
         }
         else if (!monster)
         {
             GetComponent <UnityEngine.UI.Text>().fontStyle = FontStyle.Normal;
         }
         GetComponent <UnityEngine.UI.Text>().color = Color.black;
         chaserColor = (!monster) ? SetDamageOTColor(damage.GetDamage_OTType()) : Mob;
         GetComponent <UnityEngine.UI.Text>().fontSize = 4;
         GetComponent <UnityEngine.UI.Text>().text     = amount.ToString();
         GetComponent <Rigidbody2D>().velocity         = new Vector2(Random.Range(-200, 200), 200);
     }
     else
     {
         Destroy(gameObject);
     }
 }
Ejemplo n.º 7
0
 public void InitializeDeBuff(Damage_OT _dot)
 {
     dot     = _dot;
     dotTime = dot.GetDamage_OTDuration();
     ticker  = 1f;
 }