void OnTriggerEnter(Collider collider) { EntityOLD entity = collider.gameObject.GetComponentInParent <EntityOLD>(); if (entity != null) { if (entity.IsVulnerable() && (targets.Contains(entity) || damageAny == true)) { if (entity.GetComponent <AIController>() != null) { entity.TriggerEventDamagedByEntity(originEntity); } entity.ModifyHealth(-damage); entity.CommandSufferPushback(originEntity.transform.position); } } else { Destructable destructable = collider.gameObject.GetComponent <Destructable>(); if (destructable != null) { destructable.Damage(damage); } } }
/************ List of KeyValuePair<Entity, Disposition> ******************/ public List <EntityOLD> GetNearbyEnemiesAndHostiles(EntityOLD e) { List <EntityOLD> listOfEnemiesAndHostiles = new List <EntityOLD>(); listOfEnemiesAndHostiles = listOfEnemiesAndHostiles.Union <EntityOLD>( e.GetComponent <AIController>(). GetNearbyEntitiesOfDisposition(EntityOLD.Disposition.Enemy)). ToList <EntityOLD>(); listOfEnemiesAndHostiles = listOfEnemiesAndHostiles.Union <EntityOLD>( e.GetComponent <AIController>(). GetNearbyEntitiesOfDisposition(EntityOLD.Disposition.Hostile)). ToList <EntityOLD>(); return(listOfEnemiesAndHostiles); }
private void HurtEntityOnTouch(Collision collision) { EntityOLD touchedEntity = collision.collider.GetComponentInParent <EntityOLD>(); if (touchedEntity != null) { if (GetComponent <AIController>() != null) { if (GetComponent <AIController>().GetNearbyEnemiesAndHostiles(this).Contains(touchedEntity)) { if (touchedEntity.GetComponent <AIController>() != null) { touchedEntity.TriggerEventDamagedByEntity(this); } touchedEntity.ModifyHealth(-10f); touchedEntity.CommandSufferPushback(transform.position); } } } }