public bool isCritical(StandardEntity player, StandardEntity enemy = null) { if (whatEntity == WhatEntity.enemy) { if (enemy == null) { return(false); } else { switch (requirement) { case EventRequirement.isAirborne: return(false); case EventRequirement.afflictedWith: // if entity has the required status effect //true //else return(false); default: return(false); } } } else { switch (requirement) { case EventRequirement.isAirborne: return(false); case EventRequirement.afflictedWith: // if entity has the required status effect //true //else return(false); default: return(false); } } }
public List <StandardEntity> GetEntitiesInHitbox() { Collider2D[] cols = Physics2D.OverlapCircleAll(transform.position, range, mask); List <StandardEntity> entities = new List <StandardEntity>(); foreach (var c in cols) { StandardEntity e = c.GetComponentInParent <StandardEntity>(); if (e && !entities.Contains(e)) { Vector3 dirToTarget = (e.transform.position - transform.position).normalized; if (Vector3.Angle(transform.right, dirToTarget) <= angle / 2) { entities.Add(e); } } } return(entities); }
private void OnTriggerEnter2D(Collider2D other) { if (targetLayer != (targetLayer | (1 << other.gameObject.layer))) { return; } StandardEntity e = other.GetComponent <StandardEntity>(); if (e) { switch (type) { case HitboxType.basic: default: //e.Hit(); break; case HitboxType.knockback: e.Hit(damage, hitForce); break; } } }
//if x happens to to entity y then run z public bool Test(StandardEntity host, StandardEntity target) { return(false); }