public PRefreshGeneralOrder() : base("refresh_general", null, (string[] args) => { List <PSkillInfo> SkillInfoList = new List <PSkillInfo>(); int PlayerIndex = Convert.ToInt32(args[1]); string GeneralName = args[2]; int SkillCount = Convert.ToInt32(args[3]); for (int i = 4; i + 1 < args.Length; i += 2) { PSkillInfo SkillInfo = FindInstance <PSkillInfo>(args[i])?.Copy(); if (SkillInfo != null) { SkillInfo.Type = FindInstance <PSkillType>(args[i + 1]); SkillInfoList.Add(SkillInfo); } } if (PlayerIndex == PSystem.PlayerIndex) { PUIManager.AddNewUIAction("更新技能栏", () => { PUIManager.GetUI <PMapUI>().InitializeSkillButton(SkillInfoList); }); } PUIManager.AddNewUIAction("更新武将头像", () => { PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex].General = ListSubTypeInstances <PGeneral>().Find((PGeneral General) => General.Name.Equals(GeneralName)); PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex].General.SkillInfoList = SkillInfoList; PUIManager.GetUI <PMapUI>().PlayerInformationGroup.GroupUIList[PlayerIndex].UpdateInformation(); }); }) { }
protected override void InitImpl() { SetBoxCollider(); mPanel = gameObject.GetComponent <UIPanel>(); PUIManager.GetInstance().PushUIWindow(this); AddAction(OnExitImpl, EXIT_ACTION); }
public override void OnPointerEnter(PointerEventData eventData) { if (ToolTip == null || ToolTip.Length == 0) { base.OnPointerEnter(eventData); return; } PUIManager.AddNewUIAction(string.Empty, () => { float Th = 200 * PUIManager.GetUI <PMapUI>().ToolTip.UIBackgroundImage.GetComponent <RectTransform>().lossyScale.x; float PosX = 0.0f; if (Input.mousePosition.x > Screen.width - Th) { PosX = Input.mousePosition.x - Th - 10; } else { PosX = Input.mousePosition.x + 10; } PUIManager.GetUI <PMapUI>().ToolTip.Show(ToolTip, new Vector3(PosX, Input.mousePosition.y - 10, 0)); float HhtTh = PUIManager.GetUI <PMapUI>().ToolTip.UIBackgroundImage.GetComponent <RectTransform>().rect.height *PUIManager.GetUI <PMapUI>().ToolTip.UIBackgroundImage.GetComponent <RectTransform>().lossyScale.y; float PosY = PUIManager.GetUI <PMapUI>().ToolTip.UIBackgroundImage.GetComponent <RectTransform>().position.y; if (Input.mousePosition.y > Screen.height - HhtTh - 10) { PosY -= HhtTh + 10; PUIManager.GetUI <PMapUI>().ToolTip.Show(ToolTip, new Vector3(PosX, PosY, 0)); } }); }
public override void Open() { base.Open(); #region 返回按钮:回到InitialUI ReturnButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("返回:转到IUI", () => PUIManager.ChangeUI <PInitialUI>()); }); #endregion #region 加入游戏按钮:向服务器发送请求 JoinGameButton.onClick.AddListener(() => { string ServerIP = ServerIPInputField.text; string Nickname = NicknameInputField.text; if (!Regex.IsMatch(ServerIP, IPAddressPattern)) { ErrorText.text = "IP地址不正确"; } else if (Nickname.Equals(string.Empty) || Nickname.Length > 8 || Nickname.Contains(" ")) { ErrorText.text = "昵称须为1~8个字且不能有空格"; } else { if (PNetworkManager.CreateClient(ServerIP, Nickname)) { ErrorText.text = string.Empty; // 不进行任何操作,等待服务器的回应 } else { ErrorText.text = "网络连接失败"; } } }); #endregion }
public override void Open() { base.Open(); #region 创建游戏:跳转到ChooseMapUI CreateGameButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("创建游戏:转到CMUI", () => PUIManager.ChangeUI <PChooseMapUI>()); }); #endregion #region 加入游戏:跳转到JoinUI JoinGameButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("加入游戏:转到JUI", () => PUIManager.ChangeUI <PJoinUI>()); }); #endregion #region 成就按钮:跳转到ArchUI ArchievementButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("成就:转到AUI", () => PUIManager.ChangeUI <PArchUI>()); }); #endregion #region 用户按钮:跳转到UserUI UserButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("成就:转到UUI", () => PUIManager.ChangeUI <PUserUI>()); }); #endregion #region 武将按钮:跳转到GeneralUI GeneralButton.onClick.AddListener(() => { PUIManager.AddNewUIAction("武将:转到GUI", () => PUIManager.ChangeUI <PGeneralUI>()); }); #endregion }
/// <summary> /// 创建一个推送动画 /// </summary> /// <param name="StartPoint"></param> public static void PushAnimation(PPlayer Player, string PushText, PPushType PushType) { const int FrameNumber = 25; const float TotalTime = 0.5f; float Offset = 100.0f; Vector3 Speed = new Vector3(0.0f, Offset / FrameNumber, 0.0f); Text NewPush = null; Color PushColor = PushType.PushColor; AddAnimation("推送[" + PushText + "]", () => { PushColor.a -= 0.8f / FrameNumber; NewPush.color = PushColor; NewPush.rectTransform.Translate(Speed); }, FrameNumber, TotalTime, () => { PUIManager.AddNewUIAction("删除推送[" + PushText + "]", () => { UnityEngine.Object.Destroy(NewPush.gameObject); }); }, () => { NewPush = UnityEngine.Object.Instantiate(PUIManager.GetUI <PMapUI>().PushText); NewPush.transform.SetParent(PUIManager.GetUI <PMapUI>().UIBackgroundImage); NewPush.rectTransform.localScale *= PUIManager.GetUI <PMapUI>().PushText.rectTransform.lossyScale.y; NewPush.color = PushColor; NewPush.text = PushText; NewPush.rectTransform.position = PPlayerScene.GetScreenPosition(Player); NewPush.gameObject.SetActive(true); }); }
public PStartGameOrder() : base("start_game", (string[] args, string IPAddress) => { if (!PNetworkManager.NetworkServer.Game.StartGameFlag) { if (PNetworkManager.NetworkServer.Game.Room.IsFull()) { PThread.Async(() => { PNetworkManager.NetworkServer.Game.StartGame(); }); } } }, (string[] args) => { string MapName = args[1]; int PlayerIndex = Convert.ToInt32(args[2]); PMap Map = PSystem.MapList.Find((PMap TempMap) => TempMap.Name.Equals(MapName)); if (Map != null) { PSystem.PlayerIndex = PlayerIndex; PNetworkManager.NetworkClient.GameStatus = new PGameStatus(Map, PSystem.CurrentMode); PNetworkManager.NetworkClient.GameStatus.StartGame(); PUIManager.AddNewUIAction("StartGame[Client]-初始化地图切换到MUI", () => { PUIManager.ChangeUI <PMapUI>(); }); } }) { }
public PRefreshHandCardsOrder() : base("refresh_hand_cards", null, (string[] args) => { PAnimation.AddAnimation("更新手牌区", () => { PUIManager.GetUI <PMapUI>().HandCardArea.Refresh(args); }); }) { }
public PRefreshEquipmentsOrder() : base("refresh_equipments", null, (string[] args) => { PAnimation.AddAnimation("更新装备区", () => { PUIManager.GetUI <PMapUI>().EquipCardArea.Refresh(args); }); }) { }
public PRefreshAmbushOrder() : base("refresh_ambush", null, (string[] args) => { PAnimation.AddAnimation("更新伏兵区", () => { PUIManager.GetUI <PMapUI>().AmbushCardArea.Refresh(args); }); }) { }
public PShutDownOrder() : base("shut_down", null, (string[] args) => { PNetworkManager.AbortClient(); PUIManager.AddNewUIAction("ShutDown-返回InitialUI", () => { PUIManager.ChangeUI <PInitialUI>(); }); }) { }
/// <summary> /// 跟踪某个玩家的棋子 /// </summary> /// <param name="Player"></param> public void SetTracking(PPlayer Player) { PAnimation.AddAnimation("转换跟踪目标", () => { IsTracking = false; Tracking = PUIManager.GetUI <PMapUI>().Scene.PlayerGroup.GroupUIList[Player.Index].UIBackgroundImage; ChangePerspective(Tracking.position + Config.CameraLockedDistance); IsTracking = true; }); }
public PShowInformationOrder() : base("show_information", null, (string[] args) => { string Information = args[1]; PAnimation.AddAnimation("显示消息[" + Information + "]", () => { PUIManager.GetUI <PMapUI>().AddNewInformation(Information); }, 1, 0.2f); }) { }
protected void OnExitImpl() { PUIManager instance = PUIManager.GetInstance(false); if (instance != null) { instance.PopUIWindow(this); } }
public PStartTurnOrder() : base("start_turn", null, (string[] args) => { int NowPlayerIndex = int.Parse(args[1]); PNetworkManager.NetworkClient.GameStatus.NowPlayerIndex = NowPlayerIndex; PUIManager.AddNewUIAction("开始跟踪", () => { PUIManager.GetUI <PMapUI>().CameraController.SetTracking(PNetworkManager.NetworkClient.GameStatus.NowPlayer); }); }) { }
public PDieOrder() : base("die", null, (string[] args) => { int DiePlayerIndex = Convert.ToInt32(args[1]); PAnimation.AddAnimation("玩家死亡", () => { PNetworkManager.NetworkClient.GameStatus.FindPlayer(DiePlayerIndex).IsAlive = false; PUIManager.GetUI <PMapUI>().PlayerInformationGroup.GroupUIList[DiePlayerIndex].Initialize(PNetworkManager.NetworkClient.GameStatus.FindPlayer(DiePlayerIndex)); PUIManager.GetUI <PMapUI>().Scene.PlayerGroup.GroupUIList[DiePlayerIndex].Close(); }); }) { }
public PRejectOrder() : base("reject", null, (string[] args) => { if (PUIManager.IsCurrentUI <PJoinUI>()) { PUIManager.AddNewUIAction("Reject-显示拒绝信息", () => { PUIManager.GetUI <PJoinUI>().ErrorText.text = "房间已满"; }); } }) { }
/// <summary> /// 移动到达目标 /// </summary> /// <param name="Destination">移动到的目标(照相机中心目标)</param> /// <param name="Immediately">是否立即移动</param> public void ChangePerspective(Vector3 Destination) { if (!IsChangingPerspective) { IsChangingPerspective = true; PUIManager.AddNewUIAction("切换照相机视角", () => { Camera.position = Destination; IsChangingPerspective = false; }); } }
public PDiceResultOrder() : base("dice_result", null, (string[] args) => { int DiceResult = int.Parse(args[1]); if (DiceResult >= 1 && DiceResult <= 6) { PUIManager.AddNewUIAction("DiceResult-掷骰结果:" + DiceResult.ToString(), () => { PUIManager.GetUI <PMapUI>().Dice(DiceResult); }); } }) { }
void Awake() { Vector3 vector3 = transform.localEulerAngles; vector3.x = 0; transform.localEulerAngles = vector3; PUIManager.GetInstance().CreateTopLayer(transform); Vector3 localPos = transform.localPosition; localPos.z = -5000; transform.localPosition = localPos; }
public PArchButtonUI Initialize(Transform Prototype, int _Index, int LineCapacity, PArchInfo _ArchInfo) { Index = _Index; ArchInfo = _ArchInfo; UIBackgroundImage.GetComponentInChildren <Text>().text = ArchInfo.Name; UIBackgroundImage.localScale = new Vector3(1, 1, 1); UIBackgroundImage.localPosition = new Vector3(70.0f * (Index % LineCapacity) + Prototype.localPosition.x, -70.0f * (Index / LineCapacity) + Prototype.localPosition.y, 0.0f); ArchButton.onClick.AddListener(() => { PUIManager.GetUI <PArchUI>().ArchInfoInputField.text = ArchInfo.Name + "\n" + ArchInfo.Info; }); UIBackgroundImage.gameObject.SetActive(true); return(this); }
/// <summary> /// 播放掷骰子的动画 /// </summary> /// <param name="DiceResult">掷骰子的结果</param> public void Dice(int DiceResult) { PAnimation.AddAnimation("掷骰子", () => { int DiceMiddleResult = PMath.RandInt(1, 6); DiceImage.sprite = DiceSpriteList[DiceMiddleResult - 1]; }, PAnimation.DiceAnimation.FrameNumber, PAnimation.DiceAnimation.TotalTime, () => { PUIManager.AddNewUIAction("掷骰子-显示最终结果", () => { DiceImage.sprite = DiceSpriteList[DiceResult - 1]; }); }, () => { DiceImage.gameObject.SetActive(true); }); }
public override void OnPointerExit(PointerEventData eventData) { if (ToolTip == null || ToolTip.Length == 0) { base.OnPointerExit(eventData); return; } PUIManager.AddNewUIAction(string.Empty, () => { if (PUIManager.GetUI <PMapUI>().ToolTip.ToolTipText.text.Equals(ToolTip)) { PUIManager.GetUI <PMapUI>().ToolTip.Close(); } }); }
public PRefreshMoneyOrder() : base("refresh_money", null, (string[] args) => { int PlayerIndex = int.Parse(args[1]); int Money = int.Parse(args[2]); PAnimation.AddAnimation("RefreshMoney-刷新信息栏", () => { if (0 <= PlayerIndex && PlayerIndex < PNetworkManager.NetworkClient.GameStatus.PlayerNumber) { PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex].Money = Money; } PUIManager.GetUI <PMapUI>().PlayerInformationGroup.Update(PlayerIndex); }); }) { }
public PRefreshMarkStringOrder() : base("refresh_mark_string", null, (string[] args) => { int PlayerIndex = Convert.ToInt32(args[1]); string MarkString = args[2]; PAnimation.AddAnimation("RefreshMarkString-刷新信息栏", () => { if (0 <= PlayerIndex && PlayerIndex < PNetworkManager.NetworkClient.GameStatus.PlayerNumber) { PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex].MarkString = MarkString; PUIManager.GetUI <PMapUI>().PlayerInformationGroup.Update(PlayerIndex); } }); }) { }
public PRefreshHandCardNumberOrder() : base("refresh_hand_card_number", null, (string[] args) => { int PlayerIndex = Convert.ToInt32(args[1]); int HandCardNumber = Convert.ToInt32(args[2]); PAnimation.AddAnimation("RefreshHandCardNumber-刷新信息栏", () => { if (0 <= PlayerIndex && PlayerIndex < PNetworkManager.NetworkClient.GameStatus.PlayerNumber) { PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex].HandCardNumber = HandCardNumber; PUIManager.GetUI <PMapUI>().PlayerInformationGroup.Update(PlayerIndex); } }); }) { }
public PMovePositionOrder() : base("move_position", null, (string[] args) => { int PlayerIndex = int.Parse(args[1]); int DestinationIndex = int.Parse(args[2]); if (0 <= PlayerIndex && PlayerIndex < PNetworkManager.NetworkClient.GameStatus.PlayerNumber && 0 <= DestinationIndex && DestinationIndex < PNetworkManager.NetworkClient.GameStatus.Map.BlockList.Count) { PBlock DestinationBlock = PNetworkManager.NetworkClient.GameStatus.Map.BlockList[DestinationIndex]; PPlayer Player = PNetworkManager.NetworkClient.GameStatus.PlayerList[PlayerIndex]; Player.Position = DestinationBlock; Vector3 DestinationSpacePosition = PPlayerScene.GetSpacePosition(Player); PUIManager.GetUI <PMapUI>().Scene.PlayerGroup.MovePlayer(PlayerIndex, DestinationSpacePosition); } }) { }
public PGameOverOrder() : base("game_over", null, (string[] args) => { string Winners = args[1]; int WinnerBonus = Convert.ToInt32(args[2]); int GetMoney = 2 + WinnerBonus; PSystem.UserManager.Money += GetMoney; PSystem.UserManager.Write(); PAnimation.AddAnimation("游戏结束", () => { PUIManager.GetUI <PMapUI>().Ask("游戏结束,银两+" + GetMoney, new string[] { "为" + Winners + "的胜利干杯!", "天佑" + Winners + "!" }); }); }) { }
public PCloseDiceOrder() : base("close_dice", null, (string[] args) => { int Frame = 0; PAnimation.AddAnimation("关闭骰子", () => { if (Frame == 0) { Frame = 1; } else { PUIManager.GetUI <PMapUI>().DiceImage.gameObject.SetActive(false); } }, 2, 0.3f); }) { }
public PRefreshBlockBasicOrder() : base("refresh_block_basic", null, (string[] args) => { int BlockIndex = Convert.ToInt32(args[1]); int LordIndex = Convert.ToInt32(args[2]); int HouseNumber = Convert.ToInt32(args[3]); int Price = Convert.ToInt32(args[5]); PBusinessType BusinessType = FindInstance <PBusinessType>(args[4]); PBlock Block = PNetworkManager.NetworkClient.GameStatus.Map.FindBlock(BlockIndex); PPlayer Lord = PNetworkManager.NetworkClient.GameStatus.FindPlayer(LordIndex); if (Block != null && BusinessType != null) { PAnimation.AddAnimation("刷新格子基本信息", () => { PPlayer OriginalLord = Block.Lord; Block.Lord = Lord; Block.Price = Price; Block.HouseNumber = HouseNumber; Block.BusinessType = BusinessType; PUIManager.GetUI <PMapUI>().Scene.BlockGroup.GroupUIList[BlockIndex].InitializeBlock(Block); if (OriginalLord != null) { if (Block.IsBusinessLand) { OriginalLord.BusinessLandNumber--; } else { OriginalLord.NormalLandNumber--; } PUIManager.GetUI <PMapUI>().PlayerInformationGroup.Update(OriginalLord.Index); } if (Lord != null) { if (Block.IsBusinessLand) { Lord.BusinessLandNumber++; } else { Lord.NormalLandNumber++; } PUIManager.GetUI <PMapUI>().PlayerInformationGroup.Update(Lord.Index); } }); } }) { }