public FireDictionary(Type type, IFireDelegate fireDelegate, IFireControl uiSubscriber, string userId = null, bool initWithCache = false) { List <IFireControl> controlList = new List <IFireControl>(); controlList.Add(uiSubscriber); InitDictionary(type, fireDelegate, controlList, userId, initWithCache); }
public TurretRunner(ITargetDetector targetDetector, ITargetPicker targetPicker, ITurretTurner turretTurner, IFireControl fireControl, IKnowsCurrentTarget knower) { _targetDetector = targetDetector; _targetPicker = targetPicker; _turretTurner = turretTurner; _fireControl = fireControl; _knower = knower; }
// 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() { _colerer = GetComponent <ColourSetter>(); _targetChoosingMechanism = GetComponent <IKnowsCurrentTarget>(); _enemyTagKnower = GetComponent <IKnowsEnemyTags>(); var emitterCount = EmitterParent.childCount; _emitters = new List <Transform>(); for (int i = 0; i < emitterCount; i++) { _emitters.Add(EmitterParent.GetChild(i)); } _reload = LoadTime; _fireControl = GetComponent <IFireControl>(); }
private void Awake() { GetWeapons(); IFireControl replacement = GetComponent <IFireControl>(); if (replacement != null) { _fireControl = replacement; } foreach (IWeapon weapon in _weapons) { weapon.OnFire += Weapon_OnFire; weapon.OnProjectile += Weapon_OnProjectile; weapon.OnHit += Weapon_OnHit; weapon.OnKill += Weapon_OnKill; } }
private void Awake() { _muzzles = GetMuzzles(); _fireParticles = GetFireParticles(_muzzles); _fireAnimation = GetComponent <IFireAnimation>() ?? new NoFireAnimation(); _fireControl = GetComponent <IFireSequence>() ?? new InstantFireSequence(); _fireSync = GetComponent <IFireControl>() ?? new NoFireControl(); _pool = new NoGameObjectPool <IProjectile>(ProjectilePrefab); _projectilePool = new ProjectilePool(_pool); _pool.OnNew += OnNewProjectile; if (isActiveAndEnabled) { _chambered = false; StartCoroutine(Rechamber(Cooldown)); } }
// Use this for initialization void Start() { var emitterCount = BeamsParent.childCount; _beams = new List <Beam>(); for (int i = 0; i < emitterCount; i++) { var beam = BeamsParent.GetChild(i); _beams.Add(new Beam(beam, ShootTime, LoadTime, BeamColour, HitEffectPrefab) { BeamForce = BeamForce, EffectRepeatTime = EffectRepeatTime, BeamDamage = BeamDamage, FriendlyTag = tag, InitialRadius = InitialRadius, Divergence = Divergence }); } _fireControl = GetComponent <IFireControl>(); }
public FireList(FirebaseApp firebaseApp, Type type, IFireDelegate fireDelegate, IFireControl uiSubscriber, string userId = null, bool initWithCache = false, string userIDKey = USERIDKEY) { List <IFireControl> controlList = new List <IFireControl>(); controlList.Add(uiSubscriber); InitDictionary(firebaseApp, type, fireDelegate, controlList, userId, initWithCache, userIDKey); }
// 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 }; }
public void Synchronize(IFireControl sync) { _fireSync = sync; }