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>();
     }
 }
 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>();
     }
 }
 public void ApplyTargetFocusEffect(NodeAddedEvent e, SelfTankNode tank, [JoinByTank, Context] ConicTargetingNode weapon, [JoinByTank, Context] TargetFocusEffectNode effect)
 {
     if (!weapon.Entity.HasComponent <WeaponPreparedByTargetFocusEffectComponent>())
     {
         float halfConeAngle = weapon.conicTargeting.HalfConeAngle;
         float num2          = ((float)weapon.conicTargeting.HalfConeNumRays) / halfConeAngle;
         weapon.conicTargeting.HalfConeAngle  += effect.targetFocusConicTargeting.AdditionalHalfConeAngle;
         weapon.conicTargeting.HalfConeNumRays = Mathf.RoundToInt(num2 * weapon.conicTargeting.HalfConeAngle);
         weapon.Entity.AddComponent <WeaponPreparedByTargetFocusEffectComponent>();
     }
 }
 public void OnEnableEffect(NodeAddedEvent e, SingleNode <MapInstanceComponent> map, WeaponWithReticleNode reticleTemplate, [JoinByTank, Context] TargetFocusEffectNode effect, [JoinByTank, Context] SelfTankNode selfTank, [JoinAll] Optional <SingleNode <ReticleComponent> > reticle)
 {
     if (!reticle.IsPresent())
     {
         base.CreateEntity(reticleTemplate.reticleTemplate.Template.TemplateId, reticleTemplate.reticleTemplate.ConfigPath);
     }
     else
     {
         reticle.Get().component.Reset();
     }
 }