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 Attack() { var m = GetComponentInParent <Monster>(); var p = GetComponentInParent <Player_Main>(); if (dot.GetDamage_OTAmount() <= 0) { dot.SetDamage_OTAmount(1); } if (m != null) { int x = Damage_Calculator.CalculateElementDamageOTToMonster(dot, m); m.TakeDamageOT(dot, x); } else if (p != null) { int x = Damage_Calculator.CalculateElementDamageOTToPlayer(level, dot, p.pS.GetResistanceForType(dot.GetDamage_OTType())); 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, x, true); p.TakeDamage(x, true); } else { } }