Example #1
0
        protected virtual void SetHoldingPlayer([CanBeNull] MechanicBehavior player)
        {
            _holdingPlayer = player;

            if (null != _holdingPlayer)
            {
                _holdAttachmentEffectComponent.SpineSkinHelper = _holdingPlayer.Owner.Behavior.SpineSkinHelper;
                _dropAttachmentEffectComponent.SpineSkinHelper = _holdingPlayer.Owner.Behavior.SpineSkinHelper;

                if (null != _useRumbleEffectTriggerComponent)
                {
                    _useRumbleEffectTriggerComponent.PlayerInput = _holdingPlayer.Owner.GamePlayerInput.InputHelper;
                }
            }
            else
            {
                _holdAttachmentEffectComponent.SpineSkinHelper = null;
                _dropAttachmentEffectComponent.SpineSkinHelper = null;

                if (null != _useRumbleEffectTriggerComponent)
                {
                    _useRumbleEffectTriggerComponent.PlayerInput = null;
                }
            }
        }
Example #2
0
        protected override void SetHoldingPlayer([CanBeNull] MechanicBehavior player)
        {
            base.SetHoldingPlayer(player);

            if (null != HoldingPlayer)
            {
                _loopingRumbleEffectTriggerComponent.PlayerInput = HoldingPlayer.Owner.GamePlayerInput.InputHelper;
            }
            else
            {
                _loopingRumbleEffectTriggerComponent.PlayerInput = null;
            }
        }
Example #3
0
        private void SetUsingPlayer(MechanicBehavior player)
        {
            _usingPlayer = player;

            if (null != _usingPlayer)
            {
                _loopingRumbleEffectTriggerComponent.PlayerInput = _usingPlayer.Owner.GamePlayerInput.InputHelper;
            }
            else
            {
                _loopingRumbleEffectTriggerComponent.PlayerInput = null;
            }
        }
Example #4
0
        public bool Hold(MechanicBehavior player)
        {
            if (IsHeld)
            {
                return(false);
            }

            SetHoldingPlayer(player);

            _holdEffect.Trigger();

            return(true);
        }
Example #5
0
        public void EndUse()
        {
            _holdTimer.Stop();

            if (null != _holdRoutine)
            {
                StopCoroutine(_holdRoutine);
            }
            _holdRoutine = null;

            _useEffect.KillTrigger();

            _usingPlayer = null;

            _chargingStationUI.SetUI(ChargingStationUI.EnabledUI.Robot);
        }
Example #6
0
        public bool Use(MechanicBehavior player)
        {
            if (!CanUse(player))
            {
                return(false);
            }

            SetUsingPlayer(player);

            _useEffect.Trigger();

            _holdTimer.Start(GameManager.Instance.GameGameData.ChargeTimePerPlayerCount.ElementAt(PlayerManager.Instance.PlayerCount - 1));

            _holdRoutine = StartCoroutine(HoldRoutine());

            _chargingStationUI.SetUI(ChargingStationUI.EnabledUI.PlayerInteract);

            return(true);
        }
Example #7
0
 public bool CanUse(MechanicBehavior player)
 {
     return(GameManager.Instance.MechanicsCanInteract && Enabled && !IsInUse && !_succesfulPlayers.Contains(player));
 }