Ejemplo n.º 1
0
        public void CollectDirections(CollectDirectionsEvent evt, VerticalTargetingNode verticalTargeting)
        {
            TargetingData targetingData          = evt.TargetingData;
            VerticalTargetingComponent component = verticalTargeting.verticalTargeting;

            CollectDirection(targetingData.Origin, targetingData.Dir, 0f, targetingData);
            Vector3 leftDirectionWorld = new MuzzleLogicAccessor(verticalTargeting.muzzlePoint, verticalTargeting.weaponInstance).GetLeftDirectionWorld();

            if (component.NumRaysUp > 0)
            {
                base.CollectSectorDirections(targetingData.Origin, targetingData.Dir, leftDirectionWorld, component.AngleUp / ((float)component.NumRaysUp), component.NumRaysUp, targetingData);
            }
            if (component.NumRaysDown > 0)
            {
                base.CollectSectorDirections(targetingData.Origin, targetingData.Dir, leftDirectionWorld, -component.AngleDown / ((float)component.NumRaysDown), component.NumRaysDown, targetingData);
            }
        }
Ejemplo n.º 2
0
 public void ApplyTargetFocusAngles(NodeAddedEvent e, TargetFocusEffectNode effect, [JoinByTank, Context] VerticalTargetingNode weapon, [JoinByTank, Context] SelfTankNode tank)
 {
     if (!weapon.Entity.HasComponent <WeaponPreparedByTargetFocusEffectComponent>())
     {
         float angleDown = weapon.verticalTargeting.AngleDown;
         float angleUp   = weapon.verticalTargeting.AngleUp;
         float num3      = ((float)weapon.verticalTargeting.NumRaysUp) / angleUp;
         float num4      = ((float)weapon.verticalTargeting.NumRaysDown) / angleDown;
         weapon.verticalTargeting.AngleDown  += effect.targetFocusVerticalTargeting.AdditionalAngleDown;
         weapon.verticalTargeting.AngleUp    += effect.targetFocusVerticalTargeting.AdditionalAngleUp;
         weapon.verticalTargeting.NumRaysUp   = Mathf.RoundToInt(num3 * weapon.verticalTargeting.AngleUp);
         weapon.verticalTargeting.NumRaysDown = Mathf.RoundToInt(num4 * weapon.verticalTargeting.AngleDown);
         weapon.Entity.AddComponent <WeaponPreparedByTargetFocusEffectComponent>();
     }
 }