Example #1
0
        /// <summary>
        /// 升级指定的建筑到指定的等级
        /// </summary>
        /// <param name="type"></param>
        /// <param name="level"></param>
        /// <param name="dmGuid"></param>
        /// <returns>消除冷却需要花费的金币数量</returns>
        public static int Upgrade(WlyBuildingType type, int level, string dmGuid)
        {
            FlowLogicHelper.RunToTarget(() => GetBuildingLevel(type, dmGuid), current =>
            {
                if (!string.IsNullOrEmpty(DMService.Instance.GetWords(dmGuid, new WxRect(530, 244, 611, 289), "ff6600-000000")))
                {
                    return(true);
                }

                return(current >= level);
            }, () => DMService.Instance.LeftClick(dmGuid, new WxPoint(663, 228), TimeSpan.FromMilliseconds(200)));

            // 升级建筑
            var costStr = DMService.Instance.GetWords(dmGuid, new WxRect(530, 244, 611, 289), "ff6600-000000");

            if (!string.IsNullOrEmpty(costStr))
            {
                if (!costStr.Contains("金币"))
                {
                    throw new InvalidOperationException("无效的金币数量");
                }

                return(int.Parse(costStr.Substring(0, costStr.Length - 2)));
            }

            return(0);
        }
Example #2
0
        /// <summary>
        /// 获取建筑信息
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public WlyBuildingInfo GetBuildingInfo(WlyBuildingType type)
        {
            if (BuildingInfoDict.ContainsKey(type))
            {
                return(BuildingInfoDict[type]);
            }

            WlyBuildingInfo info = new WlyBuildingInfo(type);

            BuildingInfoDict.Add(type, info);
            return(info);
        }
Example #3
0
        /// <summary>
        /// 获取指定建筑的等级
        /// </summary>
        /// <param name="buildingType"></param>
        /// <param name="dmGuid"></param>
        /// <returns></returns>
        public static int GetBuildingLevel(WlyBuildingType buildingType, string dmGuid)
        {
            WlyViewMgr.GoTo(dmGuid, _typeMap[buildingType]);

            // 获取建筑等级
            var levelStr = DMService.Instance.GetWords(dmGuid, new WxRect(291, 308, 518, 333), "ffffff-000000", 1);
            var indexOf  = levelStr.IndexOf("级", StringComparison.Ordinal);

            if (indexOf == -1)
            {
                return(0);
            }

            bool result = int.TryParse(levelStr.Substring(0, indexOf), out var level);

            if (!result)
            {
                throw new InvalidOperationException("错误的等级格式");
            }

            return(level);
        }
Example #4
0
 public WlyBuildingInfo(WlyBuildingType type)
 {
     Type = type;
 }
 public 任务_升级建筑(string id, WlyBuildingType type, int targetLevel, params string[] depends) : base(id, depends)
 {
     m_targetLevel  = targetLevel;
     m_buildingType = type;
 }
 public WlyBuildingAttribute(WlyBuildingType type)
 {
     Type = type;
 }