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(); } }