/// <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); }
/// <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); }
/// <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); }
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; }