예제 #1
0
        /// <summary>
        /// 获取装备信息
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <returns></returns>
        public static WlyEquipInfo GetEquipInfo(string dmGuid)
        {
            var info = new WlyEquipInfo
            {
                Quality = WlyUtilityBiz.GetQuality(dmGuid, new WxRect(710, 290, 801, 312))
            };

            if (info.Quality > WlyQualityType.Unknow)
            {
                info.Type = GetEquipTypeCore(dmGuid, new WxRect(712, 339, 808, 358));
                var levelStr = DMService.Instance.GetWords(dmGuid, new WxRect(713, 289, 812, 313), "e9e7cf-000000");
                info.Level = int.Parse(levelStr.Substring(0, levelStr.Length - 1));

                levelStr        = DMService.Instance.GetWords(dmGuid, new WxRect(711, 314, 807, 336), $"{WlyColor.White}|ff0000-000000", 1);
                info.EquipLevel = int.Parse(levelStr.Substring(2));
            }

            return(info);
        }
예제 #2
0
        /// <summary>
        /// 顿悟武将到指定的品级
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="staff"></param>
        /// <param name="quality"></param>
        /// <returns></returns>
        public static bool EnvolveStaff(string dmGuid, WlyStaffType staff, WlyQualityType quality)
        {
            SelectStaff(dmGuid, staff, WlyViewType.功能_武将);

            var currentQuality = WlyUtilityBiz.GetQuality(dmGuid, new WxRect(715, 308, 796, 326));

            if (currentQuality >= quality)
            {
                return(true);
            }

            // 点击进入顿悟
            var wait = FlowLogicHelper.RepeatRun(() =>
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(764, 275), TimeSpan.FromSeconds(2));
                if (DMService.Instance.FindStr(dmGuid, new WxRect(477, 96, 523, 120), "顿悟", WlyColor.Normal))
                {
                    return(true);
                }

                return(false);
            }, TimeSpan.FromSeconds(10));

            if (!wait)
            {
                throw new InvalidOperationException("无法点开顿悟界面");
            }

            while (DMService.Instance.FindColor(WlyColor.Normal, new WxRect(244, 414, 699, 454), dmGuid, out var x, out var y))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(x, y));
                if (DMService.Instance.FindStr(dmGuid, new WxRect(521, 266, 600, 313), staff.ToString(), WlyColor.StaffColor))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(456, 329));
                }
                else
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(543, 329));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(801, 120));
                    return(false);
                }
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(769, 415));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(452, 334));

            wait = FlowLogicHelper.RepeatRun(() =>
            {
                var result = DMService.Instance.FindStr(dmGuid, new WxRect(444, 371, 546, 443), "顿悟", WlyColor.Normal);
                if (result)
                {
                    return(true);
                }

                Thread.Sleep(1000);
                return(false);
            }, TimeSpan.FromSeconds(20));

            if (wait)
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(496, 403));
                return(true);
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(804, 117));
            return(false);
        }
예제 #3
0
 /// <summary>
 /// 获取武将的品质
 /// </summary>
 /// <param name="dmGuid"></param>
 /// <param name="staff"></param>
 /// <returns></returns>
 public static WlyQualityType GetStaffQuality(string dmGuid, WlyStaffType staff)
 {
     SelectStaff(dmGuid, staff, WlyViewType.功能_武将);
     return(WlyUtilityBiz.GetQuality(dmGuid, new WxRect(715, 308, 796, 326)));
 }