public void SetupDriverAbilityManager() { isHost = PhotonNetwork.IsMasterClient; ultimateUiManager = FindObjectOfType <UltimateUiManager>(); gamestateTracker = FindObjectOfType <GamestateTracker>(); driverPhotonView = GetComponent <PhotonView>(); NetworkPlayerVehicle npv = GetComponent <NetworkPlayerVehicle>(); if (npv != null) { driverId = npv.GetDriverID(); if (driverId == PhotonNetwork.LocalPlayer.ActorNumber) { isDriver = true; } gunnerId = npv.GetGunnerID(); if (driverId < 0) { driverBot = true; } if (gunnerId < 0) { gunnerBot = true; } AdjustDriverUltimateProgress(0); } abilityPrimary.SetupAbility(); abilitySecondary.SetupAbility(); gunnerWeaponManager = GetComponentInChildren <GunnerWeaponManager>(); isSetup = true; // abilitySecondary.SetupAbility(); }
//----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- public virtual void SetupWeapon() { // assign photon view to the gunner //Player gunnerPlayer = gunnerPhotonView.Owner; _networkPlayerVehicle = GetComponentInParent <NetworkPlayerVehicle>(); myVehicleManager = GetComponentInParent <VehicleHealthManager>(); gunnerWeaponManager = gunnerPhotonView.GetComponent <GunnerWeaponManager>(); if (_networkPlayerVehicle != null) { myNickName = _networkPlayerVehicle.GetGunnerNickName(); myPlayerId = _networkPlayerVehicle.GetGunnerID(); myTeamId = _networkPlayerVehicle.teamId; } else { Debug.LogError("Weapon does not belong to a valid vehicle!! Assigning owner to null"); } //weaponPhotonView.TransferOwnership(gunnerPlayer); weaponUi = FindObjectOfType <WeaponUi>(); _playerTransformTracker = FindObjectOfType <PlayerTransformTracker>(); if (fullSalvoOnStart) { currentSalvo = salvoSize; } isSetup = true; }
protected void ChargeDriverAbility(Weapon.WeaponDamageDetails hitDetails) { int sourceTeamId = hitDetails.sourceTeamId; Transform sourceTransform = playerTransformTracker.GetVehicleTransformFromTeamId(sourceTeamId); // now add damage dealt back to the source transform driver ability manager GunnerWeaponManager gunnerWeaponManager = sourceTransform.GetComponentInChildren <GunnerWeaponManager>(); // adjust damage dealth modifier gunnerWeaponManager.UpdateDamageDealt(hitDetails); }
public void Start() { gunnerWeaponManager = GetComponent <GunnerWeaponManager>(); turretController = GetComponent <TurretController>(); // Invoke(nameof(GetAllTargets), 1f); GetAllTargets(); if (enemies.Count == 0) { Debug.Log("Gunner AI for " + transform.root.gameObject.name + " could not find any targets."); return; } rigidbodyVehicleId = transform.root.GetComponentInChildren <PhysXRigidBody>().vehicleId; StartCoroutine(GetBestTarget()); StartCoroutine(YesOrNoFire()); StartCoroutine(FireCoroutine()); }
public override void Pickup(PhotonView otherpv) { if (this.SentPickup) { // skip sending more pickups until the original pickup-RPC got back to this client return; } this.SentPickup = true; NetworkPlayerVehicle npv = otherpv.GetComponentInParent <NetworkPlayerVehicle>(); GunnerWeaponManager gm = otherpv.gameObject.GetComponentInChildren <GunnerWeaponManager>(); if (!gm.usingUltimate) { gm.AdjustGunnerUltimateProgress(ultIncrease); this.GetComponent <PhotonView>().RPC(nameof(PunPickup), RpcTarget.AllViaServer, npv.GetDriverID(), npv.GetGunnerID()); } }
public void ResetProperties() { // Debug.Log("reset properties"); TeamEntry team = gamestateTracker.teams.Get((short)teamId); myPhotonView.RPC(nameof(SetGunnerHealth_RPC), RpcTarget.All, maxHealth); team.Release(); GunnerWeaponManager gunnerWeaponManager = GetComponentInChildren <GunnerWeaponManager>(); gunnerWeaponManager.Reset(); DriverAbilityManager driverAbilityManager = GetComponent <DriverAbilityManager>(); driverAbilityManager.Reset(); hpm.canPickupPotato = true; smokeL.Stop(); smokeM.Stop(); smokeH.Stop(); // Debug.Log("Called"); rb.linearDamping = defaultDrag; rb.angularDamping = defaultAngularDrag; rb.velocity = Vector3.zero; rb.angularVelocity = Vector3.zero; icd4.isDead = false; rb.centreOfMass = Vector3.zero; TeamEntry teamEntry = gamestateTracker.teams.Get((short)teamId); teamEntry.isDead = false; teamEntry.Increment(); myPhotonView.RPC(nameof(ResetMesh_RPC), RpcTarget.AllBuffered); myPhotonView.RPC(nameof(SetIsDead_RPC), RpcTarget.All, false); GetComponentInChildren <DriverCinematicCam>().ResetCam(); }