// Update is called once per frame void Update() { RaycastHit hit; if (Physics.Linecast( transform.position, transform.position + transform.forward * Speed, out hit)) { if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Karts")) { AmmoStorage hitStorage = hit.transform.GetComponentInChildren <AmmoStorage>() as AmmoStorage; if (!ReferenceEquals(hitStorage, Shooter)) { Shooter.AddScore(); } hitStorage.DealDamage(); Destroy(gameObject); } else { transform.position = hit.point; Vector3 newForward = Vector3.Reflect(transform.forward, hit.normal); newForward.y = 0f; transform.forward = Vector3.Normalize(newForward); } } transform.position += transform.forward * Speed; }
public void ShouldNotRecoverMoreThanMaxAmmunition(uint recoveryAmount) { var maxAmmuntion = 10u; var storage = new AmmoStorage(maxAmmuntion); storage.Recover(recoveryAmount); Assert.AreEqual(recoveryAmount.Clamp(0, storage.MaxAmount), storage.CurrentAmount); }
void OnTriggerEnter(Collider col) { AmmoStorage container = col.transform.GetComponent <AmmoStorage>(); if (container != null) { container.AddAmmo(); Destroy(this.gameObject); } }
public void ShouldBeEmptyWhenRequestAllStorageAmmo(uint requestAmmo) { var storage = new AmmoStorage(requestAmmo); storage.FullReffil(); var ammo = storage.GetAmmo(requestAmmo); Assert.AreEqual(requestAmmo, ammo); Assert.IsTrue(storage.Empty); }
public void ShouldGetXAmmoWhenRequested(uint requestAmmo, uint expected) { var maxAmmuntion = 10u; var storage = new AmmoStorage(maxAmmuntion); storage.FullReffil(); var ammo = storage.GetAmmo(requestAmmo); Assert.AreEqual(expected, ammo); }
void Start() { //we know in this case the prefab is just 1 GameObject loadedAmmo = ((GameObject)shootablePrefab).GetComponentsInChildren <Shootable> (true) [0]; ammoStorage = AmmoStorage.Instance; //singleton Transform baseAmmoTransform = loadedAmmo.GetComponentsInChildren <Transform> (true) [0]; baseAmmoRotation = baseAmmoTransform.rotation; triggerPulled = false; timeSinceShot = 0F; }
void CreateHud(bool Player1, PlayerType car) { Transform Hud = (Transform)Instantiate(HudPreFab); Hud.SetParent(this.gameObject.transform, false); RectTransform pos = Hud.gameObject.GetComponent <RectTransform>(); RectTransformExtensions.SetPositionOfPivot(pos, new Vector2(0, Player1 ? Screen.height / 2 : 0)); RectTransformExtensions.SetHeight(pos, Screen.height / 2); AmmoStorage storage = car.gameObject.GetComponentInChildren <AmmoStorage>(); Hud.GetComponentInChildren <AmmoDisplay>().SetAmmoStorage(storage); Hud.GetComponentInChildren <ScoreDisplay>().SetAmmoStorage(storage); }
public void SetAmmoStorage(AmmoStorage kart) { storage = kart; }