Beispiel #1
0
    private void Awake()
    {
        foreach (var shootPoint in ShootPoints)
        {
            shootPoint.Initialize(WeaponPrefab.MuzzlePrefab);
        }

        _velocityReference = new VelocityReference(Vector3.zero);
        if (Targetable == null)
        {
            Targetable = GetComponent<Targetable>();
        }

        _weaponInstance = Utility.InstantiateInParent(WeaponPrefab.gameObject, transform).GetComponent<Weapon>();
        _weaponInstance.Initialize(gameObject, ShootPoints, _velocityReference, Targetable.Team);

        _recoilCooldowns = new List<float>();
        _barrelOffsets = new List<Vector3>();
        for (var i = 0; i < ShootPoints.Count; i++)
        {
            _recoilCooldowns.Add(RecoilTime);
            _barrelOffsets.Add(RecoilBarrels[i].localPosition);
        }
        _weaponInstance.OnShoot += (shootPointIndex) =>
        {
            _recoilCooldowns[shootPointIndex] = RecoilTime;
        };
    }
Beispiel #2
0
 public void SetVelocityReference(VelocityReference velocityReference)
 {
     velocity = velocityReference;
 }
Beispiel #3
0
    private void Awake()
    {
        _shiftable = GetComponent<Shiftable>();

        foreach (var shootPoint in PrimaryShootPoints)
        {
            if (PrimaryWeaponPrefab != null)
                shootPoint.Initialize(PrimaryWeaponPrefab.MuzzlePrefab);
        }
        foreach (var shootPoint in SecondaryShootPoints)
        {
            if (SecondaryWeaponPrefab != null)
                shootPoint.Initialize(SecondaryWeaponPrefab.MuzzlePrefab);
        }

        _velocityReference = new VelocityReference(_velocity);

        _killable = GetComponent<Killable>();
        _killable.OnDamage += VehicleDamage;
        _killable.OnDie += VehicleDie;

        _allowBoost = true;

        _targetRotation = transform.rotation;

        _environmentMask = LayerMask.GetMask("Environment");
    }
Beispiel #4
0
 public void Initialize(GameObject owner, List<ShootPoint> shootPoints, VelocityReference velocityReference, Team ownerTeam)
 {
     _owner = owner;
     _shootPoints = shootPoints;
     _shootPointIndex = 0;
     _velocityReference = velocityReference;
     _ownerTeam = ownerTeam;
     _targetTeam = Targeting.GetEnemyTeam(_ownerTeam);
     foreach (var shootPoint in shootPoints)
     {
         shootPoint.Initialize(MuzzlePrefab);
     }
     heatValue = 0f;
     isCoolingDown = false;
     heatCooldown = 0f;
 }
Beispiel #5
0
 public void SetVelocityReference(VelocityReference velocityReference)
 {
     velocity = velocityReference;
 }