/// <summary> /// Replaces the old Weapon animator with a new one. /// </summary> /// <param name="oldAnimator">The old animator.</param> /// <param name="newWeapon">The new weapon.</param> /// <returns>A reference to the new weapon animator.</returns> public static WeaponAnimator Replace(WeaponAnimator oldAnimator, Weapon newWeapon) { GameObject gObj = oldAnimator.gameObject; WeaponAnimatorType weaponAnimatorType = newWeapon ? newWeapon.WeaponAnimatorType : WeaponAnimatorType.Null; Destroy(oldAnimator); WeaponAnimator newAnimator; switch (weaponAnimatorType) { case WeaponAnimatorType.SingleHand: newAnimator = gObj.AddComponent <SingleHandWeaponAnimator>(); break; case WeaponAnimatorType.TwoHand: newAnimator = gObj.AddComponent <TwoHandWeaponAnimator>(); break; case WeaponAnimatorType.Null: newAnimator = gObj.AddComponent <NullWeaponAnimator>(); newAnimator.Animator.runtimeAnimatorController = null; return(newAnimator); default: throw new System.Exception("WeaponAnimatorType " + weaponAnimatorType + " not implemented!"); } newAnimator.Animator.runtimeAnimatorController = newWeapon.Animator; return(newAnimator); }
private void FireUsingKeyboard() { if (Input.GetKeyUp(InputManager.Instance.Fire)) { if (_holdData.HoldingDownTrigger) { PrepareHoldShot(); } else if (Time.time > _timeTillShotAllowed) { PrepareSingleShot(); } FireShot(); ResetData(); } else if (_holdData.HoldingDownTrigger) { WeaponAnimator.SetBool("HoldCharge", true); } // Determine if we should queue a hold fire shot if (Input.GetKeyDown(InputManager.Instance.Fire) && !_holdData.HoldingDownTrigger) { _holdData.HoldingQueued = true; // Wait 1/10th of a second to set the holding Invoke("InvokeHolding", 0.25f); } }
private void Update() { Damage = UltMode ? _ultModeDamage : _defaultDamage; var rightTrigger = Input.GetAxis(Player.JoystickId + GameConstants.Input_RTrigger); if (!_triggerLetGo) { if (rightTrigger <= WeaponConfig.TriggerFireThreshold && !Input.GetKey(InputManager.Instance.Fire)) { _triggerLetGo = true; } } // Degub only rendering the raycasts to see them in action for (var i = 1; i < _debugBlastRotations.Length; ++i) { Debug.DrawRay(_debugBlastRotations[0], _debugBlastRotations[i] * ShotgunConfig.RayLength, Color.green); } HandleShootingInput(rightTrigger); if (HasAmmo) { CheckAmmo(); } WeaponAnimator.SetBool("UltModeActive", UltMode); }
private void Update() { if (HasAmmo) { CheckAmmo(); } WeaponAnimator.SetBool("UltMode", UltMode); ResolveLaserType(); var fireButton = Input.GetAxis(Player.JoystickId + GameConstants.Input_RTrigger); if (Input.GetKeyDown(InputManager.Instance.Fire) || fireButton > WeaponConfig.TriggerFireThreshold || _holdingDownFire) { PrepareLaser(); GenerateLaser(); } if (Input.GetKeyUp(InputManager.Instance.Fire) || (JoystickManagerController.Instance.ConnectedControllers() > 0 && fireButton == 0)) { _holdingDownFire = false; _currentLaser.enabled = false; _laserSoundPlaying = false; AudioManager.Instance.StopSound(GameConstants.Audio_EmissionIndexShot); } }
/// <summary> /// Fire an awesome charged up bullet that explodes on impact or after it reaches its max lifetime /// </summary> private void PrepareHoldShot() { CancelInvoke("InvokeHolding"); WeaponAnimator.SetBool("HoldCharge", false); _chargeShotFired = true; BulletPrefab = BulletPrefabs[(int)BulletType.CHARGED]; AudioManager.Instance.PlaySound(GameConstants.Audio_GaussShotCharged); }
public static UnitAnimation MakeUnitAnimations(GameObject unit_mesh, WeaponMesh weapon, int index, AnimationCallbackCaster callbacks, GetBool b) { WeaponAnimator animator_right = new WeaponAnimator(weapon.AttachmentRight, weapon.FX_Right, weapon.MuzzleRight); WeaponAnimator animator_left = new WeaponAnimator(weapon.AttachmentLeft, weapon.FX_Left, weapon.MuzzleLeft); Animator unit_animator = unit_mesh.GetComponent <Animator>(); UnitAnimation_IdleController idle = unit_mesh.GetComponent <UnitAnimation_IdleController>(); return(new UnitAnimation().Init(unit_animator, animator_right, animator_left, index, callbacks, idle.GetId, b)); }
private void Update() { HandleShootingInput(); if (HasAmmo) { CheckAmmo(); } WeaponAnimator.SetBool("UltModeActive", UltMode); }
// Update is called once per frame void Update() { CamAnimator.SetBool("Running", Input.GetKey(KeyCode.W)); WeaponAnimator.SetBool("Fire", Input.GetKey(KeyCode.Space)); if (Input.GetKey(KeyCode.W)) { transform.position = transform.position + transform.forward * moveSpeed * Time.deltaTime; } }
private void Update() { if (DestinyEngineController.ExamplePlayer.IsPlayerWalking() | DestinyEngineController.ExamplePlayer.IsPlayerSprinting()) { WeaponAnimator.SetFloat("Moving", 1f); } else { WeaponAnimator.SetFloat("Moving", 0f); } }
/// <summary> /// Plays all the visual overhead of equipping (animation, sounds) /// </summary> public virtual void Equip() { if (animator == null) { animator = GetComponent <WeaponAnimator>(); } reloading = false; animator.SetAnimationId(); animator.PlayEquipAnimation(); SoundSystem.PlaySound2D(equipSound.name); }
private void Start() { if (typeWeapon == WeaponType.Gun) { _triggerWithPlayer.triggerGun += ChangeAmmo; } if (typeWeapon == WeaponType.Rifle) { _triggerWithPlayer.triggerRifle += ChangeAmmo; } _weaponAnimator = GetComponent <WeaponAnimator>(); }
public override void Fire() { if (DestinyEngineController.main.IsGamePaused) { return; } if (doFire == false) { return; } if (isSprinting) { return; } if (Is_Reloading) { return; } if (Is_Cooldown) { return; } else if (MagazineCurrent <= 0) { WeaponAnimator.SetBool("Fire", false); if (noAmmoSource != null) { if (noAmmoSource.isPlaying == false) { noAmmoSource.Play(); } } return; } internalCooldownTimer = cooldownFire; Is_Cooldown = true; if (MagazineCurrent > 0) { MagazineCurrent -= 1; } WeaponAnimator.SetBool("Fire", true); gunFireSource.Play(); SaveFlag(); Impact(); Recoil(); }
private void Update() { WeaponAnimator.SetBool("FireUlt", UltMode); if (UltMode) { HandleUltShootingInput(); } else { ResolveShootingInput(); } if (HasAmmo) { CheckAmmo(); } }
public UnitAnimation Init(Animator unit, WeaponAnimator right, WeaponAnimator left, float index, AnimationCallbackCaster callback, GetInt get_id, GetBool rs) { GetIdle = get_id; GetRage = rs; WeaponAnimator_Left = left; WeaponAnimator_Right = right; unit_animator = unit; SetWeaponIndex(index); //No multicast so we dont need to remove listeners callback.OnAbilityTrigger = AbilityCallback; callback.OnWeaponHide = WeaponHide; callback.OnWeaponShow = WeaponShow; return(this); }
void Start() { player = GameObject.Find("Player"); agent = GetComponent <NavMeshAgent>(); nextTarget = transform.position; eye = transform.Find("Eye").gameObject; statusLight = GetComponentInChildren <Light>(); animator = GetComponent <Animator>(); targetRotation = transform.rotation; weaponAnimator = GetComponentInChildren <WeaponAnimator>(); health = GetComponent <Health>(); health.NotifiyOnZeroHealth += NotifyDeath; respawnPositions = GameObject.FindGameObjectsWithTag("Respawn").ToList(); Respawn(); }
public override void Reload() { if (MagazineCurrent >= MagazineCapacity) { return; } else if (ItemDataAmmo != null) { if (ItemDataAmmo.count == 0) { return; } } else if (ItemDataAmmo == null) { } Is_Reloading = true; WeaponAnimator.SetTrigger("Reload"); }
public override void ExecuteAttack() { if (timeSinceAttack < 0) { //Set animation trigger WeaponAnimator.SetTrigger(Constants.ENEMY_FIRE_BOW); RangedWeapon weap = (RangedWeapon)weapon; //Instantiate projectile GameObject projectile = Instantiate(weap.projectile, transform.parent); projectile.transform.position = attackPos.position; Arrow arrowC = projectile.GetComponent <Arrow>(); Vector2 heading = PlayerManager.instance.transform.position - attackPos.position; float distance = heading.magnitude; arrowC.direction = heading / distance; arrowC.weapon = weap; arrowC.shooter = gameObject; arrowC.damage = (int)(weapon.damage * enemy.damageModifier); timeSinceAttack = weapon.delay * enemy.attackSpeedModifier; } }
// Use this for initialization virtual public void Start() { //get player inventory for ammo quantity inventory = GetComponentInParent <Inventory>(); anim = GetComponent <WeaponAnimator>(); crosshairImage = transform.root.Find("PlayerUI/Crosshair").gameObject.GetComponent <Image>(); cam = GetComponentInParent <Camera>(); controller = GetComponentInParent <FPSController>(); if (GetComponent <VirtualAudioSource>()) { sound = GetComponent <VirtualAudioSource>(); } else { Debug.Log("This gun has no sound attached"); } controller.speed -= weight; }
public override void ExecuteAttack() { if (timeSinceAttack <= 0) { WeaponAnimator.SetTrigger("Attack"); //Delay hitscan by .5 seconds StartCoroutine(Util.ExecuteAfterTime(0.2f, () => { //Collect things to hit on layer Collider2D[] charactersToDamage = Physics2D.OverlapCircleAll(attackPos.position, weapon.range * enemy.sizeModifier, layer); for (int i = 0; i < charactersToDamage.Length; i++) { charactersToDamage[i].GetComponent <HitManager>().TakeDamage(weapon.damage, attackPos.position, weapon.knockback, false); } })); timeSinceAttack = weapon.delay * enemy.attackSpeedModifier; } }
private void Update() { if (DestinyEngineController.ExamplePlayer.IsPlayerWalking()) { WeaponAnimator.SetFloat("Moving", 1f); } else { WeaponAnimator.SetFloat("Moving", 0f); } if (DestinyEngineController.ExamplePlayer.IsPlayerSprinting()) { isSprinting = true; } else { isSprinting = false; } if (isSprinting) { WeaponAnimator.SetBool("isSprinting", true); } else { WeaponAnimator.SetBool("isSprinting", false); } if (Is_Cooldown) { internalCooldownTimer -= 1 * Time.deltaTime; if (internalCooldownTimer < 0) { Is_Cooldown = false; } } }
public override void FireUp() { if (DestinyEngineController.main.IsGamePaused) { return; } if (Is_Cooldown | MagazineCurrent <= 0 | Is_Reloading) { return; } Is_Cooldown = true; if (MagazineCurrent > 0) { MagazineCurrent -= 1; } WeaponAnimator.SetTrigger("Fire"); SaveFlag(); Impact(); Recoil(); }
private void FireUsingController() { var rightTrigger = Input.GetAxis(Player.JoystickId + GameConstants.Input_RTrigger); if (_holdData.HoldingDownTrigger && (rightTrigger == 0)) { PrepareHoldShot(); FireShot(); ResetData(); } else if (_holdData.HoldingDownTrigger) { WeaponAnimator.SetBool("HoldCharge", true); } else if (rightTrigger > WeaponConfig.TriggerFireThreshold) { _holdData.TriggerPressed = true; } else { if (_holdData.TriggerPressed && Time.time > _timeTillShotAllowed) { PrepareSingleShot(); FireShot(); } ResetData(); } // Determine if we should queue a hold fire shot if (_holdData.TriggerPressed && !_holdData.HoldingDownTrigger && !_holdData.HoldingQueued) { _holdData.HoldingQueued = true; // Wait 1/10th of a second to set the holding Invoke("InvokeHolding", 0.25f); } }
public void OnWeaponChanged(Weapon newWeapon) { WeaponAnimator = WeaponAnimator.Replace(WeaponAnimator, newWeapon); }
public void Decolorize(WeaponAnimator weapon) { _playerWeaponSpriteRenderer = weapon.GetComponent <SpriteRenderer>(); _playerWeaponSpriteRenderer.color = Color.white; }
// Start is called before the first frame update void Start() { lastFire = Time.time; Player = GameObject.Find("Player").GetComponent <PlayerController>(); animator = GetComponent <WeaponAnimator>(); }
// Use this for initialization protected virtual void Start() { arrow = transform.GetChild(0).gameObject; animatingWeapon = true; bow = transform.parent.GetComponentInChildren<WeaponAnimator>(); // set animation variables if (arrow != null) { Material hold = arrow.GetComponent<Renderer>().material; plCol= GameObject.FindGameObjectWithTag("Manager").GetComponent<GameManager>().pColor[GetComponentInParent<PlayerController>().playerNumber]; // set the collider circle's color plCol.a = hold.GetColor("_Color").a; originalAlpha = plCol.a; hold.SetColor("_Color", plCol); // set up the start spacing startScale = arrow.transform.localScale / 10.0f; startArrowSpacing = arrowSpacing; endArrowSpacing = 0; maxScale = arrow.transform.localScale * scaleMag; if (transform.childCount > 1) { line = transform.GetChild(1).gameObject; // set the line color hold = line.GetComponent<LineRenderer>().material; hold.SetColor("_Color", plCol); } } plCont = GetComponentInParent<PlayerController>(); prevInputs = new ArrayList(); for (int i = 0; i < maxPrevInputs; i++) prevInputs.Add(0.0f); // set wwise gameobject data AkSoundEngine.PostEvent("Set_Switch_Arrow", plCont.gameObject); }
protected override void ApplyRecoil() { WeaponAnimator.SetBool("ApplyRecoil", true); StartCoroutine(ResetWeaponPosition()); AudioManager.PlaySound(GameConstants.Audio_FuzzBuster); }
void Start() { instance = this; }
protected virtual void Start() { currentMag = magSize; animator = GetComponent <WeaponAnimator>(); }
private void Awake() { WeaponAnimator = GetComponentInChildren <WeaponAnimator>(); // TODO: <-- maybe change this }
public override void Inaction() { WeaponAnimator.SetBool("Fire", false); }
protected override void ApplyRecoil() { WeaponAnimator.SetBool("ApplyRecoil", true); StartCoroutine(ResetWeaponPosition()); }