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); }
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; } } }
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(); }
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); }
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); } } } }
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); } }
public void InitializeDeBuff(Damage_OT _dot) { dot = _dot; dotTime = dot.GetDamage_OTDuration(); ticker = 1f; }