using System.Drawing; namespace Application.Domain; public class GameTool { /// /// 获取等级基础属性 /// /// /// public static unit_user_attr GetAttrData(int lev) { unit_user_attr data = new unit_user_attr(); data.lev = lev; data.minAtk = lev + 2; data.maxAtk = lev + Convert.ToInt32(lev * 0.05) + 4; data.defense = lev; data.agility = lev; data.upBlood = ((lev - 1) * 5) + 80; data.upMorale = 100 + (lev / 5) * 10; data.levUpdate = TimeExtend.GetTimeStampSeconds; return data; } /// /// 获取等级升级经验 /// /// /// public static long GetUserUpExp(int lev) { long result = 50 * ((lev * lev * lev) + (5 * lev)) - 80; return result; } public static bool AreaVerify(int area, string areas) { List okArea = areas.Split(',').ToList(); return okArea.Any(it => it == "0" || it == area.ToString()); } public static string GetCurrencyName(string payCode) { string result = ""; switch (payCode) { case "gold": result = "金元"; break; case "cowry": result = "金贝"; break; case "copper": result = "铜贝"; break; case "teach": result = "师德"; break; case "renown": result = "声望"; break; } return result; } public static async Task GetPropWeight(string goodsType, string parameter) { int weight = 0; if (goodsType.Equals(nameof(GameEnum.PropCode.Goods))) { var goodsService = App.GetService(); var info = await goodsService.GetGoodsInfo(Convert.ToInt32(parameter)); if (info != null) { weight = (int)info.weight; } } else if (goodsType.Equals(nameof(GameEnum.PropCode.Equ))) { var equService = App.GetService(); var info = await equService.GetEquInfo(Convert.ToInt32(parameter)); if (info != null) { weight = (int)info.weight; } } return weight; } public static int GetEquPlaceCount(string code) { int result = 0; switch (code) { case "Mouth": result = (int)EquEnum.EquPlace.Mouth; break; case "Hold": result = (int)EquEnum.EquPlace.Hold; break; case "Vice": result = (int)EquEnum.EquPlace.Vice; break; case "Head": result = (int)EquEnum.EquPlace.Head; break; case "Wear": result = (int)EquEnum.EquPlace.Wear; break; case "Waist": result = (int)EquEnum.EquPlace.Waist; break; case "Foot": result = (int)EquEnum.EquPlace.Foot; break; case "Ornaments": result = (int)EquEnum.EquPlace.Ornaments; break; case "Fashion": result = (int)EquEnum.EquPlace.Fashion; break; case "Wing": result = (int)EquEnum.EquPlace.Wing; break; } return result; } #region 距离计算 /// /// 计算海里 /// /// /// /// public static int ComputeMile(string onMap, string toMap) { string[] _OnMap = onMap.Split('_'); int sx = Convert.ToInt32(_OnMap[0]); int sy = Convert.ToInt32(_OnMap[1]); string[] _ToMap = toMap.Split('_'); int ex = Convert.ToInt32(_ToMap[0]); int ey = Convert.ToInt32(_ToMap[1]); return GetDistanceByLocation(sx, sy, ex, ey) * 10; } private static int GetDistance(PointF start, PointF end) { double value = Math.Sqrt(Math.Abs(start.X - end.X) * Math.Abs(start.X - end.X) + Math.Abs(start.Y - end.Y) * Math.Abs(start.Y - end.Y)); return Convert.ToInt32(value); } private static int GetDistanceByLocation(int onX, int onY, int toX, int toY) { PointF start = new PointF(onX, onY); PointF end = new PointF(toX, toY); return GetDistance(start, end); } #endregion 距离计算 }