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();
     });
 }) {
 }
示例#2
0
 protected override void InitImpl()
 {
     SetBoxCollider();
     mPanel = gameObject.GetComponent <UIPanel>();
     PUIManager.GetInstance().PushUIWindow(this);
     AddAction(OnExitImpl, EXIT_ACTION);
 }
示例#3
0
 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));
         }
     });
 }
示例#4
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
 }
示例#5
0
 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
 }
示例#6
0
    /// <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);
        });
    }
示例#7
0
 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);
     });
 }) {
 }
示例#9
0
 public PRefreshEquipmentsOrder() : base("refresh_equipments",
                                         null,
                                         (string[] args) => {
     PAnimation.AddAnimation("更新装备区", () => {
         PUIManager.GetUI <PMapUI>().EquipCardArea.Refresh(args);
     });
 }) {
 }
示例#10
0
 public PRefreshAmbushOrder() : base("refresh_ambush",
                                     null,
                                     (string[] args) => {
     PAnimation.AddAnimation("更新伏兵区", () => {
         PUIManager.GetUI <PMapUI>().AmbushCardArea.Refresh(args);
     });
 }) {
 }
示例#11
0
 public PShutDownOrder() : base("shut_down",
                                null,
                                (string[] args) => {
     PNetworkManager.AbortClient();
     PUIManager.AddNewUIAction("ShutDown-返回InitialUI", () => {
         PUIManager.ChangeUI <PInitialUI>();
     });
 }) {
 }
示例#12
0
 /// <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;
     });
 }
示例#13
0
 public PShowInformationOrder() : base("show_information",
                                       null,
                                       (string[] args) => {
     string Information = args[1];
     PAnimation.AddAnimation("显示消息[" + Information + "]", () => {
         PUIManager.GetUI <PMapUI>().AddNewInformation(Information);
     }, 1, 0.2f);
 }) {
 }
示例#14
0
    protected void OnExitImpl()
    {
        PUIManager instance = PUIManager.GetInstance(false);

        if (instance != null)
        {
            instance.PopUIWindow(this);
        }
    }
示例#15
0
 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);
     });
 }) {
 }
示例#16
0
 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();
     });
 }) {
 }
示例#17
0
 public PRejectOrder() : base("reject",
                              null,
                              (string[] args) => {
     if (PUIManager.IsCurrentUI <PJoinUI>())
     {
         PUIManager.AddNewUIAction("Reject-显示拒绝信息", () => {
             PUIManager.GetUI <PJoinUI>().ErrorText.text = "房间已满";
         });
     }
 }) {
 }
示例#18
0
 /// <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;
         });
     }
 }
示例#19
0
 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);
         });
     }
 }) {
 }
示例#20
0
    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;
    }
示例#21
0
 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);
 }
示例#22
0
 /// <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);
     });
 }
示例#23
0
 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();
         }
     });
 }
示例#24
0
 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);
     });
 }) {
 }
示例#25
0
 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);
         }
     });
 }) {
 }
示例#26
0
 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);
         }
     });
 }) {
 }
示例#27
0
 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);
     }
 }) {
 }
示例#28
0
 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 + "!"
         });
     });
 }) {
 }
示例#29
0
 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);
             }
         });
     }
 }) {
 }