Exemplo n.º 1
0
 public void ShowMenu(bool visible)
 {
     if (visible)
     {
         PlayerStateUtil.AddUIState(EPlayerUIState.ExitOpen, menuUiAdapter.gamePlay);
         menuUiAdapter.SetCrossVisible(false);
         _viewModel.rootActiveSelf = true;
         RegisterReceive();
     }
     else
     {
         if (showNotice)
         {
             UiCommon.AlertManager.ClearQueueAndClose();
             showNotice = false;
         }
         PlayerStateUtil.RemoveUIState(EPlayerUIState.ExitOpen, menuUiAdapter.gamePlay);
         menuUiAdapter.SetCrossVisible(true);
         _viewModel.rootActiveSelf = false;
         UnRegisterReceive();
     }
     if (menuUiAdapter.Enable != visible)
     {
         menuUiAdapter.Enable = visible;
     }
 }
Exemplo n.º 2
0
        public virtual bool Meet(IEventArgs args)
        {
            int          realState = FreeUtil.ReplaceInt(state, args);
            PlayerEntity p         = ((FreeRuleEventArgs)args).GetPlayer(player);

            if (p != null)
            {
                if (realState > 100)
                {
                    switch (realState)
                    {
                    case InCar:
                        return(p.IsOnVehicle());

                    case Jump:
                        return(p.stateInterface.State.GetCurrentPostureState() == PostureInConfig.Jump);

                    case Stand:
                        return(p.stateInterface.State.GetCurrentMovementState() == MovementInConfig.Idle);

                    default:
                        return(false);
                    }
                }
                else
                {
                    return(PlayerStateUtil.HasPlayerState((EPlayerGameState)realState, p.gamePlay));
                }
            }

            return(false);
        }
Exemplo n.º 3
0
 public override void DoAction(IEventArgs args)
 {
     if (inter)
     {
         if (fd != null)
         {
             fd.freeInventory.StopUseItem(args, fd, inter);
             SimpleProto msg = FreePool.Allocate();
             msg.Key = FreeMessageConstant.ChickenTip;
             msg.Ss.Add("word72," + ip.key.GetName());
             FreeMessageSender.SendMessage(fd.Player, msg);
             PlayerAnimationAction.DoAnimation(args.GameContext, PlayerAnimationAction.Stop, fd.Player);
             //FreeSoundUtil.Stop("use", args, fd);
             PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
             PlayerStateUtil.RemoveGameState(EPlayerGameState.UseItem, fd.Player.gamePlay);
         }
     }
     else
     {
         if (ip != null && fd != null)
         {
             UseItem(ip, fd, (ISkillArgs)args);
             fd.freeInventory.StopUseItem(args, fd, inter);
             PlayerAnimationAction.DoAnimation(args.GameContext, PlayerAnimationAction.Interrupt, fd.Player);
             PlayerStateUtil.RemoveGameState(EPlayerGameState.UseItem, fd.Player.gamePlay);
         }
     }
 }
Exemplo n.º 4
0
        public bool IsInterrupted(ISkillArgs args)
        {
            FreeData fd = (FreeData)args.GetUnit("current");

            if (fd != null)
            {
                if (PlayerStateUtil.HasPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay))
                {
                    return(true);
                }

                var manager = SingletonManager.Get <StateTransitionConfigManager>();

                foreach (EPlayerState state in fd.Player.StateInteractController().GetCurrStates())
                {
                    StateTransitionConfigItem condition = manager.GetConditionByState(state);
                    if (condition == null)
                    {
                        continue;
                    }
                    if (!condition.GetTransition(Transition.IsUseItem) /*IsUseItem*/)
                    {
                        return(true);
                    }
                }

                return(false);
            }

            return(false);
        }
Exemplo n.º 5
0
        public override void DoAction(IEventArgs args)
        {
            if (inter)
            {
                if (fd != null)
                {
                    fd.freeInventory.StopUseItem(args, fd);
                    UseCommonAction use = new UseCommonAction();
                    use.key    = "showBottomTip";
                    use.values = new List <ArgValue>();
                    use.values.Add(new ArgValue("msg", "{desc:10072,{item.name}}"));

                    args.TempUse("current", fd);
                    args.TempUse("item", ip);
                    use.Act(args);
                    args.Resume("current");
                    args.Resume("item");
                    PlayerAnimationAction.DoAnimation(PlayerAnimationAction.Stop, fd.Player);
                    FreeSoundUtil.Stop("use", args, fd);

                    PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
                }
            }
            else
            {
                if (ip != null && fd != null)
                {
                    UseItem(ip, fd, (ISkillArgs)args);
                    fd.freeInventory.StopUseItem(args, fd);
                }
            }
        }
Exemplo n.º 6
0
        public void StartUseItem(IEventArgs args, FreeData fd, ItemPosition ip, int sing, int sound)
        {
            PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
            fd.Player.playerMove.InterruptAutoRun();

            SkillTimeTrigger trigger = (SkillTimeTrigger)itemSkill.trigger;

            trigger.SetTime(sing * 1000);
            trigger.Reset();

            UsingItemAction interAction = (UsingItemAction)trigger.interAction;

            interAction.fd = fd;
            interAction.ip = ip;

            UsingItemAction action = (UsingItemAction)itemSkill.GetEffect();

            action.fd = fd;
            action.ip = ip;

            StartCounter(args, sing, fd, true);

            startUse = true;

            FreeSoundUtil.Stop("use", args, fd);

            if (sound > 0)
            {
                FreeSoundUtil.PlayOnce("use", sound, args, fd);
            }
        }
Exemplo n.º 7
0
        public virtual bool Meet(IEventArgs args)
        {
            int          realState = FreeUtil.ReplaceInt(state, args);
            PlayerEntity p         = ((FreeRuleEventArgs)args).GetPlayer(player);

            if (p != null)
            {
                if (realState > 100)
                {
                    switch (realState)
                    {
                    case InCar:
                        return(p.IsOnVehicle());

                    default:
                        return(false);
                    }
                }
                else
                {
                    return(PlayerStateUtil.HasPlayerState((EPlayerGameState)realState, p.gamePlay));
                }
            }

            return(false);
        }
Exemplo n.º 8
0
 public static bool IsCanPickUpByPlayer(this SceneObjectEntity sceneObjectEntity, PlayerEntity playerEntity)
 {
     if (!sceneObjectEntity.hasCastFlag)
     {
         return(true);
     }
     return(PlayerStateUtil.HasCastState((EPlayerCastState)sceneObjectEntity.castFlag.Flag, playerEntity.gamePlay));
 }
Exemplo n.º 9
0
 public void CharacterDrawInterrupt()
 {
     logger.Info("[Tmp]Interrupt");
     PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, entity.gamePlay);
     RelatedCharState.InterruptAction();
     RelatedCharState.ForceFinishGrenadeThrow();
     Owner.AudioController().StopPullBoltAudio();
 }
Exemplo n.º 10
0
 public void StopUseItem(IEventArgs args, FreeData fd, bool inter)
 {
     startUse = false;
     PlayerStateUtil.RemoveGameState(EPlayerGameState.UseItem, fd.Player.gamePlay);
     if (inter)
     {
         StartCounter(args, 0, fd, false);
     }
 }
Exemplo n.º 11
0
 public void StopAutoMove()
 {
     if (null != _playerMove)
     {
         _playerMove.IsAutoRun = false;
     }
     if (null != _gamePlay)
     {
         PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, _gamePlay);
     }
 }
Exemplo n.º 12
0
 public void StartAutoMove()
 {
     if (null != _playerMove)
     {
         _playerMove.IsAutoRun = true;
     }
     if (null != _gamePlay)
     {
         PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, _gamePlay);
     }
 }
Exemplo n.º 13
0
        public bool IsInterrupted(ISkillArgs args)
        {
            FreeData fd = (FreeData)args.GetUnit("current");

            if (fd != null)
            {
                return(PlayerStateUtil.HasPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay));
            }

            return(false);
        }
Exemplo n.º 14
0
 public void CharacterInterrupt()
 {
     RelatedCharState.State.InterruptAction();
     RelatedCharState.State.InterruptSwitchWeapon();
     PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, entity.gamePlay);
     RelatedCharState.State.ForceBreakSpecialReload(null);
     RelatedCharState.State.ForceFinishGrenadeThrow();
     if (entity.hasThrowingAction)
     {
         RelatedThrowAction.ActionInfo.ClearState();
     }
 }
Exemplo n.º 15
0
 private void RegisterKeyReceiver()
 {
     _adapter.SetCrossVisible(false);
     PlayerStateUtil.AddUIState(EPlayerUIState.PaintOpen, _adapter.gamePlay);
     if (keyReveiver == null || pointerReceiver == null)
     {
         return;
     }
     _adapter.RegisterKeyReceive(keyReveiver);
     _adapter.RegisterPointerReceive(pointerReceiver);
     _haveRegister = true;
 }
Exemplo n.º 16
0
        private void PretreatCmd(PlayerEntity player, IUserCmd cmd)
        {
            var actionState      = player.stateInterface.State.GetActionState();
            var curPostureState  = player.stateInterface.State.GetCurrentPostureState();
            var nextPostureState = player.stateInterface.State.GetNextPostureState();

            if (cmd.MoveHorizontal != 0 ||
                cmd.MoveVertical != 0)
            {
                player.playerMove.InterruptAutoRun();
            }
            else if ((cmd.IsPeekRight || cmd.IsPeekLeft) &&
                     curPostureState != PostureInConfig.Prone &&
                     curPostureState != PostureInConfig.Swim &&
                     curPostureState != PostureInConfig.Dive)
            {
                player.playerMove.InterruptAutoRun();
            }
            else if (curPostureState != nextPostureState &&
                     nextPostureState != PostureInConfig.Dive &&
                     nextPostureState != PostureInConfig.Swim &&
                     nextPostureState != PostureInConfig.Land &&
                     nextPostureState != PostureInConfig.Jump &&
                     nextPostureState != PostureInConfig.Stand)
            {
                player.playerMove.InterruptAutoRun();
            }
            else
            {
                switch (actionState)
                {
                case ActionInConfig.MeleeAttack:
                case ActionInConfig.SwitchWeapon:
                case ActionInConfig.PickUp:
                case ActionInConfig.Reload:
                case ActionInConfig.SpecialReload:
                    player.playerMove.InterruptAutoRun();
                    break;

                default: break;
                }
            }

            if (cmd.IsSwitchAutoRun)
            {
                player.playerMove.IsAutoRun = !player.playerMove.IsAutoRun;
                if (player.playerMove.IsAutoRun)
                {
                    PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, player.gamePlay);
                }
            }
        }
Exemplo n.º 17
0
 public void CharacterState_Interrupt()
 {
     Core.CharacterState.ICharacterState state = entity.stateInterface.State;
     state.InterruptAction();
     state.InterruptSwitchWeapon();
     PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, entity.gamePlay);
     state.ForceBreakSpecialReload(null);
     state.ForceFinishGrenadeThrow();
     if (entity.hasThrowingAction)
     {
         entity.throwingAction.ActionInfo.ClearState();
     }
 }
Exemplo n.º 18
0
        private void UnRegisterKeyhandler()
        {
            _adapter.SetCrossVisible(true);
            PlayerStateUtil.RemoveUIState(EPlayerUIState.PaintOpen, _adapter.gamePlay);
            if (keyReveiver == null || _pointerKeyHandler == null)
            {
                return;
            }
            _adapter.UnRegisterKeyReceive(keyReveiver);
            _adapter.UnRegisterPointerReceive(_pointerKeyHandler);

            _haveRegister = false;
        }
Exemplo n.º 19
0
        private void handleToGround(string from, string to, ServerRoom room, FreeData fd)
        {
            PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
            FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, ChickenConstant.BagGround);

            SimpleProto sp = FreePool.Allocate();

            sp.Key = FreeMessageConstant.PlaySound;
            sp.Ks.Add(2);
            sp.Ins.Add(5017);
            sp.Bs.Add(false);
            FreeMessageSender.SendMessage(fd.Player, sp);
        }
Exemplo n.º 20
0
 private void SwitchToSendState()
 {
     ChatListState = EUIChatListState.Send;
     if (PlayerStateUtil.HasUIState(EPlayerUIState.ChatOpen, _chatState.gamePlay))
     {
         PlayerStateUtil.RemoveUIState(EPlayerUIState.ChatOpen, _chatState.gamePlay);
     }
     else
     {
         PlayerStateUtil.AddUIState(EPlayerUIState.ChatOpen, _chatState.gamePlay);
     }
     _chatState.SetCrossVisible(true);
     ResetCloseViewAnim();
 }
Exemplo n.º 21
0
        private bool CanGlide()
        {
            if (null == MyPlayerEntity)
            {
                return(false);
            }
            if (!MyPlayerEntity.hasGamePlay)
            {
                return(false);
            }
            var result = PlayerStateUtil.HasPlayerState(EPlayerGameState.CanJump, MyPlayerEntity.gamePlay);

            return(result);
        }
Exemplo n.º 22
0
        private void UpdatePlayerState(PlayerEntity player)
        {
            // 窒息状态
            var oxygen = player.oxygenEnergyInterface.Oxygen;

            if (oxygen.InDivingDeffState && !PlayerStateUtil.HasPlayerState(EPlayerGameState.DivingChok, player.gamePlay))
            {
                PlayerStateUtil.AddPlayerState(EPlayerGameState.DivingChok, player.gamePlay);
            }
            else if (PlayerStateUtil.HasPlayerState(EPlayerGameState.DivingChok, player.gamePlay))
            {
                PlayerStateUtil.RemoveGameState(EPlayerGameState.DivingChok, player.gamePlay);
            }
        }
Exemplo n.º 23
0
        public void ExecuteUserCmd(IUserCmdOwner owner, IUserCmd cmd)
        {
            var player = (PlayerEntity)owner.OwnerEntity;

            CheckPlayerLifeState(player);
            InterruptAutoRun(player, cmd);

            if (cmd.IsSwitchAutoRun)
            {
                player.playerMove.IsAutoRun = !player.playerMove.IsAutoRun;
                if (player.playerMove.IsAutoRun)
                {
                    PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, player.gamePlay);
                }
            }
        }
Exemplo n.º 24
0
 public void ShowMap(bool visible)
 {
     if (root != null)
     {
         if (visible && !adapter.Enable)
         {
             adapter.Enable = true;
             PlayerStateUtil.AddUIState(EPlayerUIState.MapOpen, adapter.gamePlay);
         }
         else if (!visible && adapter.Enable)
         {
             adapter.Enable = false;
             PlayerStateUtil.RemoveUIState(EPlayerUIState.MapOpen, adapter.gamePlay);
         }
     }
 }
Exemplo n.º 25
0
 private void ShowMap(bool visible)
 {
     if (_viewInitialized)
     {
         if (visible && !_adapter.Enable)
         {
             _adapter.Enable = true;
             PlayerStateUtil.AddUIState(EPlayerUIState.MapOpen, _adapter.gamePlay);
         }
         else if (!visible && _adapter.Enable)
         {
             _adapter.Enable = false;
             PlayerStateUtil.RemoveUIState(EPlayerUIState.MapOpen, _adapter.gamePlay);
         }
     }
 }
Exemplo n.º 26
0
        public void ExecuteUserCmd(IPlayerUserCmdGetter getter, IUserCmd cmd)
        {
            var player = (PlayerEntity)getter.OwnerEntity;

            CheckPlayerLifeState(player);
            InterruptAutoRun(player, cmd);
            if (cmd.IsSwitchAutoRun && CanAutoRun(player))
            {
                player.playerMove.IsAutoRun = !player.playerMove.IsAutoRun;
                if (player.playerMove.IsAutoRun)
                {
                    player.stateInterface.State.InterruptAction();
                    PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, player.gamePlay);
                }
            }
        }
Exemplo n.º 27
0
        protected override void OnGamePlay(PlayerEntity player)
        {
            var effect = player.effects.GetEffect("GodModeEffect");

            if (effect != null)
            {
                if (PlayerStateUtil.HasPlayerState(EPlayerGameState.Invincible, player.gamePlay))
                {
                    effect.SetParam("Enable", true);
                }
                else
                {
                    effect.SetParam("Enable", false);
                }
            }
        }
Exemplo n.º 28
0
        public override void DoAction(IEventArgs args)
        {
            var      castState = (EPlayerCastState)FreeUtil.ReplaceInt(state, args);
            FreeData p         = GetPlayer(args);

            if (p != null)
            {
                if (remove)
                {
                    PlayerStateUtil.RemoveCastState(castState, p.Player.gamePlay);
                }
                else
                {
                    PlayerStateUtil.AddCastState(castState, p.Player.gamePlay);
                }
            }
        }
Exemplo n.º 29
0
        public void StartUseItem(IEventArgs args, FreeData fd, ItemPosition ip, int sing, int sound)
        {
            PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
            fd.Player.autoMoveInterface.PlayerAutoMove.StopAutoMove();

            SkillTimeTrigger trigger = (SkillTimeTrigger)itemSkill.trigger;

            trigger.SetTime(sing * 1000);
            trigger.Reset();

            itemSkill.inter       = null;
            itemSkill.interAction = null;
            if (ip.key.GetClickSkill() != null)
            {
                PlayerActionSkill skill = ip.key.GetClickSkill() as PlayerActionSkill;
                if (skill != null && skill.inter != null)
                {
                    itemSkill.inter       = skill.inter;
                    itemSkill.interAction = skill.interAction;
                }
            }

            UsingItemAction interAction = (UsingItemAction)trigger.interAction;

            interAction.fd = fd;
            interAction.ip = ip;

            UsingItemAction action = (UsingItemAction)itemSkill.GetEffect();

            action.fd = fd;
            action.ip = ip;

            StartCounter(args, sing, fd, true);
            startUse = true;
            SetCurrentItem(ip, (ISkillArgs)args);
            SimpleProto data = FreePool.Allocate();

            data.Key = FreeMessageConstant.PlaySound;
            data.Ks.Add(0);
            data.Ins.Add(FreeUtil.ReplaceInt("{item.itemId}", args));
            fd.Player.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, data);
            PlayerStateUtil.AddPlayerState(EPlayerGameState.UseItem, fd.Player.gamePlay);
        }
Exemplo n.º 30
0
 public static void ShowSplitUI(ServerRoom room, FreeData fd, string key)
 {
     // 分拆道具
     if (key.StartsWith(ChickenConstant.BagDefault))
     {
         ItemPosition ip        = FreeItemManager.GetItemPosition(room.ContextsWrapper.FreeArgs, key, fd.GetFreeInventory().GetInventoryManager());
         FreeItemInfo info      = FreeItemConfig.GetItemInfo(ip.key.GetKey());
         var          stackable = true;
         if (info.cat == (int)ECategory.Weapon)
         {
             WeaponResConfigItem item = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(info.id);
             if (item.Type != (int)EWeaponType_Config.ThrowWeapon)
             {
                 stackable = false;
             }
         }
         else
         {
             if (info.stack <= 1)
             {
                 stackable = false;
             }
         }
         SimpleProto data = FreePool.Allocate();
         if (!stackable || ip.count <= 1)
         {
             data.Key = FreeMessageConstant.ChickenTip;
             data.Ss.Add("word78");
             FreeMessageSender.SendMessage(fd.Player, data);
             return;
         }
         data.Key = FreeMessageConstant.ShowSplitUI;
         data.Ins.Add(info.cat);
         data.Ins.Add(info.id);
         data.Ins.Add(ip.count);
         data.Ss.Add(key);
         data.Ss.Add(ip.GetKey().GetName());
         FreeMessageSender.SendMessage(fd.Player, data);
         PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay);
     }
 }