private void CycleReticleState() { switch (ShowReticles) { case ReticleState.NONE: ShowReticles = ReticleState.ALL; _tags = new List <string>(); _tags.AddRange(MainTags); _tags.AddRange(SecondaryTags); _detector = new ChildTagTargetDetector { Tags = _tags }; break; case ReticleState.ALL: ShowReticles = ReticleState.MAIN; _tags = MainTags; _detector = new ChildTagTargetDetector { Tags = _tags }; break; case ReticleState.MAIN: ShowReticles = ReticleState.NONE; break; } Debug.Log(ShowReticles); }
private void CycleReticleState() { switch (ShowReticles) { case ReticleState.NONE: ShowReticles = ReticleState.ALL; _detector = new ChildTagTargetDetector { Tags = Tags }; break; case ReticleState.ALL: ShowReticles = ReticleState.MAIN; _detector = new ChildTagTargetDetector { Tags = Tags }; break; case ReticleState.MAIN: ShowReticles = ReticleState.NONE; break; } Debug.Log(ShowReticles); }
public SpaceshipRunner(ITargetDetector detector, ITargetPicker picker, IPilot pilot, IKnowsCurrentTarget knower) { _detector = detector; _picker = picker; _pilot = pilot; _knower = knower; }
public TurretRunner(ITargetDetector targetDetector, ITargetPicker targetPicker, ITurretTurner turretTurner, IFireControl fireControl, IKnowsCurrentTarget knower) { _targetDetector = targetDetector; _targetPicker = targetPicker; _turretTurner = turretTurner; _fireControl = fireControl; _knower = knower; }
public RocketRunner(ITargetDetector targetDetector, ITargetPicker targetPicker, IPilot engineControl, IDetonator detonator, IKnowsCurrentTarget knower) { _targetDetector = targetDetector; _targetPicker = targetPicker; _pilot = engineControl; _detonator = detonator; _knower = knower; }
void Start() { _detector = new ChildTagTargetDetector { Tags = Tags }; _shipCam = GetComponent <ShipCam>(); }
// 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() { _rigidbody = GetComponent("Rigidbody") as Rigidbody; _detector = new ChildTagTargetDetector { Tags = _tags }; _tagPicker = new HasTagTargetPicker(null); _currentlyFollowingPicker = new PreviousTargetPicker(this) { AdditionalScore = AdditionalScoreForSameTagOrCurrentlyFllowed }; var watchPickers = new List <ITargetPicker> { _tagPicker, _currentlyFollowingPicker, new ProximityTargetPicker(transform) }; if (_rigidbody != null) { watchPickers.Add(new LookingAtTargetPicker(_rigidbody)); } if (MinimumMass > 0) { watchPickers.Add(new MassTargetPicker { MinMass = MinimumMass }); } _watchPicker = new CombinedTargetPicker(watchPickers); var followPickers = new List <ITargetPicker> { new ProximityTargetPicker(transform) }; if (_rigidbody != null) { followPickers.Add(new ApproachingTargetPicker(_rigidbody, ApproachTargetPickerWeighting)); } if (MinimumMass > 0) { followPickers.Add(new MassTargetPicker { MinMass = MinimumMass }); } _followPicker = new CombinedTargetPicker(followPickers); }
// Use this for initialization void Start() { _reload = (int)(UnityEngine.Random.value * RandomStartTime) + MinStartTime; Emitter = Emitter ?? transform; if (OnlyWithTargets) { _detector = new MultiTagTargetDetector() { EnemyTags = EnemyTags }; } _spawner = GetComponent("Rigidbody") as Rigidbody; }
private static void Logic() { for (int i = 0; i < entities.Count; i++) { //entities[i].LogicUpdate(); ITargetDetector targetDetector = entities[i].GetComponent <ITargetDetector>(); if (targetDetector != null) { if (targetDetector.Target == Object.NoId) { targetDetector.GetTarget(); } } } }
private static void Physics() { for (int i = 0; i < entities.Count; i++) { //entities[i].PhysicsUpdate(); IMoveComponent mover = entities[i].GetComponent <IMoveComponent>(); if (mover != null) { ITargetDetector targetDetector = entities[i].GetComponent <ITargetDetector>(); if (targetDetector.Target == Object.NoId) { continue; } IEntity target = (IEntity)Object.GetById(targetDetector.Target); mover.MoveTowards(target.PositionX, target.PositionY); } } // TODO: Resolve physics. }
// Use this for initialization void Start() { if (TargetPicker == null) { Debug.LogError(name + " Has no target picker"); _active = false; return; } if (Detector == null) { EnemyTagKnower = EnemyTagKnower ?? GetComponentInParent <IKnowsEnemyTags>(); if (EnemyTagKnower == null) { Debug.LogWarning(name + " Could not find enemy tag source for target picker while configuring the detector."); } else { Detector = new RepositoryTargetDetector(EnemyTagKnower); } } FilteredTargets = new List <Target>();//ensure that this isn't null. }
private static void Combat() { List <AttackCommand> attacks = new List <AttackCommand>(); for (int i = 0; i < entities.Count; i++) { //entities[i].CombatUpdate(); ITargetDetector targetDetector = entities[i].GetComponent <ITargetDetector>(); if (targetDetector != null) { if (targetDetector.IsInRange()) { var hits = entities[i].GetComponent <IAttackComponent>().Attack(); if (hits != null) { attacks.AddRange(hits); } } } } // TODO: Resolve combat. foreach (var attack in attacks) { attack.Execute(); } foreach (var entity in entities) { IHealth health = entity.GetComponent <IHealth>(); if (health.Health <= 0) { entity.Destroy(); } } }
public AverageTargetLocationDestinationChooser(ITargetDetector detector, ITargetPicker picker, Rigidbody destination) { _detector = detector; _destination = destination; _picker = picker; }
// Use this for initialization void Start() { _rigidbody = GetComponent <Rigidbody>(); _detector = new MultiTagTargetDetector() { EnemyTags = EnemyTags }; var pickers = new List <ITargetPicker> { new ProximityTargetPicker(_rigidbody) { DistanceMultiplier = PickerDistanceMultiplier, InRangeBonus = PickerInRangeBonus, Range = PickerRange }, new LookingAtTargetPicker(_rigidbody) { Multiplier = PickerAimedAtMultiplier }, new ApproachingTargetPicker(_rigidbody, PickerApproachWeighting) }; if (MinimumMass > 0 || PickerMasMultiplier != 0) { pickers.Add(new MassTargetPicker { MinMass = MinimumMass, MassMultiplier = PickerMasMultiplier, OverMinMassBonus = PickerOverMinMassBonus }); } _targetPicker = new CombinedTargetPicker(pickers); var initialAngularDrag = _rigidbody.angularDrag; var torqueApplier = new MultiTorquerTorqueAplier(_rigidbody, TorqueMultiplier, initialAngularDrag); _pilot = new RocketPilot(torqueApplier, _rigidbody, Engines, ShootAngle, StartDelay) { LocationAimWeighting = LocationAimWeighting, TurningStartDelay = TurningStartDelay, VectorArrow = VectorArrow }; var exploder = new ShrapnelAndDamageExploder(_rigidbody, Shrapnel, ExplosionEffect, ShrapnelCount) { ExplosionForce = ExplosionForce, EnemyTags = EnemyTags, TagShrapnel = TagShrapnel, SetEnemyTagOnShrapnel = SetEnemyTagOnShrapnel, ExplosionBaseDamage = ExplosionDamage, ShrapnelSpeed = ShrapnelSpeed, ExplosionRadius = ExplosionRadius }; _detonator = new ProximityApproachDetonator(exploder, _rigidbody, TimeToTargetForDetonation, ShrapnelSpeed); _runner = new RocketRunner(_detector, _targetPicker, _pilot, _detonator, this) { name = transform.name }; //Debug.Log("starting"); }
// 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 }; }