/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); if (!response.accepted) { return; } var weapon = response.character.currentEquippable as GrenadeWeaponEquippable; Debug.Assert(weapon != null); var grenadeCountdown = GetComponent <GrenadeBehaviour>(); if (grenadeCountdown == null) { return; } var weaponGrenadeCountdown = weapon.gameObject.AddComponent <GrenadeBehaviour>(); weaponGrenadeCountdown.CopyFrom(grenadeCountdown); weaponGrenadeCountdown.spriteRenderer = weapon.GetComponent <SpriteRenderer>(); weaponGrenadeCountdown.spriteRenderer.sprite = _subRenderer.sprite; }
/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); Debug.Assert(_launchKeyEquippablePrefab != null); var character = response.character; character.SetEquippable(Instantiate(_launchKeyEquippablePrefab, character.transform.position, Quaternion.identity, character.transform).GetComponent <LaunchKeyEquippable>()); character.SetGameplayState(CharacterGameplayState.LaunchKey); response.Accept(); this.EmitSound(KeyPickupSoundKey); }
/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); if (_powerUp.CanApply(response.character)) { var emitor = Instantiate(_particleAttractor, transform.position, transform.rotation); emitor.SetTarget(response.character.transform); response.Accept(); SpawnPickupText(_powerUpDescriptor.name); this.EmitSound(_powerUpDescriptor.pickupSounds); response.character.powerUpIds.Add(_powerUpDescriptor.powerUpId); _powerUp.Apply(response.character); Telemetry.game.Incr($"{_powerUpDescriptor.name}_pickup"); } }
/// <summary> /// /// </summary> /// <param name="character"></param> /// <param name="autoPickup"></param> public void SendPickup(Character character, bool autoPickup) { if (_isPickedUp || !_isPickable) { return; } var pickupResponse = new PickupResponse(this, character, autoPickup); SendMessage(OnPickupMethodName, pickupResponse, SendMessageOptions.DontRequireReceiver); _isPickedUp = pickupResponse.accepted; if (_isPickedUp) { Destroy(gameObject); } }
/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); if (response.autoPickup) { if (response.character.gameplayState == CharacterGameplayState.LaunchKey) { return; } for (var i = 0; i < response.character.weapons.Length; ++i) { if (response.character.weapons[i] == null) { response.Accept(); response.character.SetWeapon(i, _weaponDescriptor); SpawnPickupText(_weaponDescriptor.name); Telemetry.game.Incr($"{_weaponDescriptor.name}_pickup"); return; } } } else { if (response.character.currentEquippable is WeaponEquippable) { response.Accept(); Telemetry.game.Incr($"{_weaponDescriptor.name}_pickup"); for (var i = 0; i < response.character.weapons.Length; ++i) { if (response.character.weapons[i] == null) { response.character.SetWeapon(i, _weaponDescriptor); SpawnPickupText(_weaponDescriptor.name); Telemetry.game.Incr($"{_weaponDescriptor.name}_replace"); return; } } response.character.SetWeapon(response.character.currentWeaponIndex, _weaponDescriptor); SpawnPickupText(_weaponDescriptor.name); } } }
/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); if (response.character.GetComponent <NoSupplyPickupBuff>() != null) { return; } if (response.character.resources.supply >= response.character.resources.maxSupply) { response.character.resources.SupplyAnim(CharacterResources.SupplyAnimReason.Enough, true); return; } this.EmitSound($"{PickupSoundKey}{++response.character.resources.supply}"); Telemetry.game.Incr("supply_pickup"); response.Accept(); }
/// <summary> /// /// </summary> /// <param name="response"></param> protected override void OnPickup(PickupResponse response) { base.OnPickup(response); BeginOpenChest(); }
/// <summary> /// /// </summary> /// <param name="response"></param> protected virtual void OnPickup(PickupResponse response) { }
/// <summary> /// /// </summary> /// <param name="response"></param> private void OnPickup(PickupResponse response) { DoCheck(SoundEventEmitterMessage.OnPickup); }