Ejemplo n.º 1
0
        private void ProcessBuildingEvent(DestructibleBuilding building, List <BlastHitEvent> eventList, List <DestructibleBuilding> bulidingAdded)
        {
            Ray        ray = new Ray(Position, building.transform.position - Position);
            RaycastHit rayHit;

            if (Physics.Raycast(ray, out rayHit, Range, 557057))
            {
                //TODO: Maybe we are not hitting building because we are hitting explosive parts.

                DestructibleBuilding destructibleBuilding = rayHit.collider.GetComponentInParent <DestructibleBuilding>();

                // Is not a direct hit, because we are hitting a different part
                if (destructibleBuilding != null && destructibleBuilding.Equals(building))
                {
                    var distance = Vector3.Distance(Position, rayHit.point);
                    eventList.Add(new BuildingBlastHitEvent()
                    {
                        Distance = Vector3.Distance(Position, rayHit.point), Building = building, TimeToImpact = distance / ExplosionVelocity
                    });
                    bulidingAdded.Add(building);
                }
            }
        }