コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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");
            }
        }
コード例 #4
0
ファイル: Pickable.cs プロジェクト: TylerRsT/launchbreak_code
        /// <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);
            }
        }
コード例 #5
0
        /// <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);
                }
            }
        }
コード例 #6
0
        /// <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();
        }
コード例 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="response"></param>
        protected override void OnPickup(PickupResponse response)
        {
            base.OnPickup(response);

            BeginOpenChest();
        }
コード例 #8
0
ファイル: Pickable.cs プロジェクト: TylerRsT/launchbreak_code
 /// <summary>
 ///
 /// </summary>
 /// <param name="response"></param>
 protected virtual void OnPickup(PickupResponse response)
 {
 }
コード例 #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="response"></param>
 private void OnPickup(PickupResponse response)
 {
     DoCheck(SoundEventEmitterMessage.OnPickup);
 }