Esempio n. 1
0
        public void CollectSectorDirectionsEvent(Tanks.Battle.ClientCore.API.CollectSectorDirectionsEvent evt, VerticalSectorTargetingNode verticalSectorTargeting, [JoinByTank] WeaponNode weapon)
        {
            TargetingData targetingData = evt.TargetingData;
            VerticalSectorsTargetingComponent verticalSectorsTargeting = verticalSectorTargeting.verticalSectorsTargeting;

            CollectDirection(evt.TargetingData.Origin, evt.TargetingData.Dir, 0f, targetingData);
            if (evt.TargetSectors.Count != 0)
            {
                Vector3 leftDirectionWorld = new MuzzleLogicAccessor(weapon.muzzlePoint, weapon.weaponInstance).GetLeftDirectionWorld();
                TargetSectorUtils.CutSectorsByOverlap((LinkedList <TargetSector>)evt.TargetSectors, 1f / verticalSectorsTargeting.RaysPerDegree);
                IEnumerator <TargetSector> enumerator = evt.TargetSectors.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    TargetSector current = enumerator.Current;
                    float        num     = current.Length();
                    int          numRays = (int)Math.Floor((double)(verticalSectorsTargeting.RaysPerDegree * num));
                    this.CollectSectorDirections(targetingData, leftDirectionWorld, current, numRays);
                }
            }
        }
 public void ApplyTargetFocusAngles(NodeAddedEvent e, TargetFocusEffectNode effect, [JoinByTank, Context] VerticalSectorTargetingNode weapon, [JoinByTank, Context] SelfTankNode tank)
 {
     if (!weapon.Entity.HasComponent <WeaponPreparedByTargetFocusEffectComponent>())
     {
         weapon.verticalSectorsTargeting.VAngleDown += effect.targetFocusVerticalSectorTargeting.AdditionalAngleDown;
         weapon.verticalSectorsTargeting.VAngleUp   += effect.targetFocusVerticalSectorTargeting.AdditionalAngleUp;
         weapon.verticalSectorsTargeting.HAngle     += effect.targetFocusVerticalSectorTargeting.AdditionalAngleHorizontal;
         weapon.Entity.AddComponent <WeaponPreparedByTargetFocusEffectComponent>();
     }
 }