public void Init(DistanceWeapon weapon, Vector3 targetPos) { Weapon = weapon; Target = null; TargetPos = targetPos; IsLaunched = true; }
public void CheckWeapon() { if (currentWeapon != null) { if (Input.GetKey(keyAttack) && inFloor) { switch (equipedWeapon) { case EquipedWeapon.Default: DefaultWeapon.gameObject.SetActive(true); BrazosDeShokerWeapon.gameObject.SetActive(false); SableAssasinWeapon.gameObject.SetActive(false); RifleTrackerWeapon.gameObject.SetActive(false); distaceWeapon = null; currentWeapon = DefaultWeapon; break; case EquipedWeapon.BrazoDeShoker: DefaultWeapon.gameObject.SetActive(false); BrazosDeShokerWeapon.gameObject.SetActive(true); SableAssasinWeapon.gameObject.SetActive(false); RifleTrackerWeapon.gameObject.SetActive(false); distaceWeapon = null; currentWeapon = BrazosDeShokerWeapon; break; case EquipedWeapon.SableAssasin: DefaultWeapon.gameObject.SetActive(false); BrazosDeShokerWeapon.gameObject.SetActive(false); SableAssasinWeapon.gameObject.SetActive(true); RifleTrackerWeapon.gameObject.SetActive(false); distaceWeapon = null; currentWeapon = SableAssasinWeapon; break; case EquipedWeapon.RifleTracker: DefaultWeapon.gameObject.SetActive(false); BrazosDeShokerWeapon.gameObject.SetActive(false); SableAssasinWeapon.gameObject.SetActive(false); RifleTrackerWeapon.gameObject.SetActive(true); currentWeapon = RifleTrackerWeapon; distaceWeapon = RifleTrackerWeapon; break; } if (currentWeapon.CountUse <= 0) { equipedWeapon = EquipedWeapon.Default; } if (distaceWeapon != null) { if (distaceWeapon.CountUse <= 0) { equipedWeapon = EquipedWeapon.Default; } } } } }
/// <summary> /// This function update the number of ammo in UI /// </summary> public void UpdateAmmoGraphics() { DistanceWeapon info = weapon as DistanceWeapon; if (info != null) { ammoText.text = info.currentAmmo + "/" + info.maxAmmo; } else { ammoText.text = ""; } }
public void Init(DistanceWeapon weapon, GameUnit target) { Weapon = weapon; Target = target; IsLaunched = true; }
private void FixedUpdate() { timer += Time.fixedDeltaTime; animChangeTimer += Time.fixedDeltaTime; if (animChangeTimer >= TimeBeforeAnimChange) { if (crowdMembers.Length > 0) { GameObject lCrowdMember = crowdMembers[Mathf.FloorToInt(Random.Range(0, crowdMembers.Length))]; if (lCrowdMember) { Vampire lCharaScript = lCrowdMember.GetComponent <Vampire>(); if (lCharaScript != null) { lCharaScript.cycleThroughAnimations(); } } } animChangeTimer = 0.0f; } if (timer >= feedingRate) { // Get a random crowd member if (crowdMembers.Length > 0) { GameObject lCrowdMember = crowdMembers[Mathf.FloorToInt(Random.Range(0, crowdMembers.Length))]; if (lCrowdMember) { // Compute shooting direction Vector3 lTarget = new Vector3( player.transform.position.x + Random.Range(-maxInaccuracy, maxInaccuracy), player.transform.position.y, player.transform.position.z + Random.Range(-maxInaccuracy, maxInaccuracy) ); Vector3 lDirection = lTarget - lCrowdMember.transform.position; lDirection.y = 0; // Set the y axis //lDirection.y = Mathf.Clamp(Vector3.Distance(lCrowdMember.transform.position, lTarget),5, 15) + Random.Range(0,maxInaccuracy); // Compute shooting distance Vampire lCharacter = lCrowdMember.GetComponent <Vampire>(); // Character script DistanceWeapon lDistanceWeapon = lCharacter.distanceWeapon.GetComponent <DistanceWeapon>(); lDistanceWeapon.projectile = currentFoodType as GameObject; lDirection = lDistanceWeapon.transform.InverseTransformVector(lDirection); lDirection.Normalize(); lDistanceWeapon.ThrowDirection = lDirection; // shoot lCharacter.shoot(); } } timer = 0.0f; } }