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; } }
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); }
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); } } }
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); }
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); } } }
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); } }
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); }
public static bool IsCanPickUpByPlayer(this SceneObjectEntity sceneObjectEntity, PlayerEntity playerEntity) { if (!sceneObjectEntity.hasCastFlag) { return(true); } return(PlayerStateUtil.HasCastState((EPlayerCastState)sceneObjectEntity.castFlag.Flag, playerEntity.gamePlay)); }
public void CharacterDrawInterrupt() { logger.Info("[Tmp]Interrupt"); PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, entity.gamePlay); RelatedCharState.InterruptAction(); RelatedCharState.ForceFinishGrenadeThrow(); Owner.AudioController().StopPullBoltAudio(); }
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); } }
public void StopAutoMove() { if (null != _playerMove) { _playerMove.IsAutoRun = false; } if (null != _gamePlay) { PlayerStateUtil.RemoveGameState(EPlayerGameState.InterruptItem, _gamePlay); } }
public void StartAutoMove() { if (null != _playerMove) { _playerMove.IsAutoRun = true; } if (null != _gamePlay) { PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, _gamePlay); } }
public bool IsInterrupted(ISkillArgs args) { FreeData fd = (FreeData)args.GetUnit("current"); if (fd != null) { return(PlayerStateUtil.HasPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay)); } return(false); }
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(); } }
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; }
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); } } }
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(); } }
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; }
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); }
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(); }
private bool CanGlide() { if (null == MyPlayerEntity) { return(false); } if (!MyPlayerEntity.hasGamePlay) { return(false); } var result = PlayerStateUtil.HasPlayerState(EPlayerGameState.CanJump, MyPlayerEntity.gamePlay); return(result); }
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); } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); }
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); } }