// Use this for initialization void Start() { var rigidbody = GetComponent <Rigidbody>(); var emitterCount = EmitterParent.childCount; _emitters = new List <Transform>(); for (int i = 0; i < emitterCount; i++) { _emitters.Add(EmitterParent.GetChild(i)); } _reload = LoadTime; _detector = new MultiTagTargetDetector() { ProjectileSpeed = ProjectileSpeed, EnemyTags = EnemyTags }; var pickers = new List <ITargetPicker> { new AboveTurnTableTargetPicker(rigidbody), new ProximityTargetPicker(rigidbody) { DistanceMultiplier = PickerDistanceMultiplier, InRangeBonus = PickerInRangeBonus, Range = PickerRange }, new LookingAtTargetPicker(ElevationHub) { ProjectileSpeed = ProjectileSpeed, Multiplier = PickerAimedAtMultiplier }, new ApproachingTargetPicker(rigidbody, PickerApproachWeighting) }; if (PickerMinimumMass > 0 || PickerMasMultiplier != 0) { pickers.Add(new MassTargetPicker { MinMass = PickerMinimumMass, MassMultiplier = PickerMasMultiplier, OverMinMassBonus = PickerOverMinMassBonus }); } _targetPicker = new CombinedTargetPicker(pickers); _turner = new UnityTurretTurner(rigidbody, TurnTable, ElevationHub, RestTarget, ProjectileSpeed); _fireControl = new UnityFireControl(this, ElevationHub.transform, ShootAngle); _runner = new TurretRunner(_detector, _targetPicker, _turner, _fireControl, this) { name = transform.name }; }
// Use this for initialization void Start() { _targetChoosingMechanism = GetComponent <IKnowsCurrentTarget>(); var speedKnower = GetComponent <IKnowsProjectileSpeed>(); var projectileSpeed = speedKnower != null ? speedKnower.KnownProjectileSpeed : null; var rigidbody = GetComponent <Rigidbody>(); _turner = new EyeballTurretTurner(rigidbody, Ball, RestTarget, projectileSpeed) { Torque = MotorForce, VectorArrow = VectorArrow }; _runner = new TurretRunner(_targetChoosingMechanism, _turner); }
// Use this for initialization void Start() { _targetChoosingMechanism = GetComponent <IKnowsCurrentTarget>(); var speedKnower = GetComponent <IKnowsProjectileSpeed>(); var projectileSpeed = speedKnower != null ? speedKnower.KnownProjectileSpeed : null; var rigidbody = GetComponent <Rigidbody>(); _turner = new UnityTurretTurner(rigidbody, TurnTable, ElevationHub, RestTarget, projectileSpeed) { TurnTableTorque = TurnTableMotorFoce, TurnTableSpeedMultiplier = TurnTableMotorSpeedMultiplier, TurnTableSpeedCap = TurnTableMotorSpeedCap, EHTorque = ElevationHubMotorFoce, EHSpeedMultiplier = ElevationHubMotorSpeedMultiplier, EHSpeedCap = ElevationHubMotorSpeedCap }; _runner = new TurretRunner(_targetChoosingMechanism, _turner); }
// Use this for initialization void Start() { var rigidbody = GetComponent <Rigidbody>(); var emitterCount = BeamsParent.childCount; _beams = new List <Beam>(); for (int i = 0; i < emitterCount; i++) { var beam = BeamsParent.GetChild(i); beam.localScale = Vector3.zero; beam.SetColor(BeamColour); _beams.Add(new Beam(beam, ShootTime, LoadTime) { BeamForce = BeamForce, HitEffect = HitEffect, BeamDamage = BeamDamage, FriendlyTag = tag, InitialRadius = InitialRadius, Divergence = Divergence }); } _detector = new MultiTagTargetDetector() { ProjectileSpeed = 0, EnemyTags = EnemyTags }; var pickers = new List <ITargetPicker> { new AboveTurnTableTargetPicker(rigidbody), new ProximityTargetPicker(rigidbody) { DistanceMultiplier = PickerDistanceMultiplier, InRangeBonus = PickerInRangeBonus, Range = PickerRange }, new LookingAtTargetPicker(ElevationHub) { Multiplier = PickerAimedAtMultiplier }, new ApproachingTargetPicker(rigidbody, PickerApproachWeighting) }; if (PickerMinimumMass > 0 || PickerMasMultiplier != 0) { pickers.Add(new MassTargetPicker { MinMass = PickerMinimumMass, MassMultiplier = PickerMasMultiplier, OverMinMassBonus = PickerOverMinMassBonus }); } _targetPicker = new CombinedTargetPicker(pickers); _turner = new UnityTurretTurner(rigidbody, TurnTable, ElevationHub, RestTarget, null); _fireControl = new UnityFireControl(this, ElevationHub.transform, ShootAngle); _runner = new TurretRunner(_detector, _targetPicker, _turner, _fireControl, this) { name = transform.name }; }