private static bool CheckPower(ISnoPower power) { if (itemSnoIds.ContainsKey(power.Sno)) { return(true); } if (blackList.Contains(power.Sno)) { return(false); } var items = Hud.Sno.GetAllSnoItems() .Where(x => x.LegendaryPower != null && x.LegendaryPower.Sno == power.Sno) .Select(x => x.Sno) .ToList(); if (!items.Any()) { //Says.Debug("blacklist {0}", power.Sno); blackList.Add(power.Sno); return(false); } //Says.Debug("add {0} : {1} : {2}", power.Sno, items.Count, string.Join(",", items)); itemSnoIds.Add(power.Sno, items); return(true); }
public static ISnoItem GetItem(this ISnoPower power) { if (!CheckPower(power)) { return(DefaultItem); } return(Hud.Inventory.GetSnoItem(itemSnoIds[power.Sno].First())); }
public static uint GetItemSno(this ISnoPower power) { if (!CheckPower(power)) { return(DefaultItem.Sno); } return(itemSnoIds[power.Sno].First()); }
public static uint GetItemSno(this ISnoPower power) { if (itemSnoIds.ContainsKey(power.Sno)) { return(itemSnoIds[power.Sno].First()); } else { return(0); } }
public static ISnoItem GetItem(this ISnoPower power) { if (itemSnoIds.ContainsKey(power.Sno)) { return(Hud.Inventory.GetSnoItem(itemSnoIds[power.Sno].First())); } else { return(null); } }
public void RemoveRule(ISnoPower snoPower) { if (!CoolDownRules.ContainsKey(snoPower)) { return; } var rule = CoolDownRules[snoPower]; rule.DisposeSoundPlayer(); CoolDownRules.Remove(snoPower); }
public void AddRule(ISnoPower snoPower, string fileName) { var soundPlayer = Hud.Sound.LoadSoundPlayer(fileName); if (soundPlayer == null) { return; } var rule = new CoolDownRule(snoPower, soundPlayer); CoolDownRules.Add(snoPower, rule); }
public static IEnumerable <uint> GetItemSnos(this ISnoPower power) { if (!CheckPower(power)) { yield return(DefaultItem.Sno); yield break; } foreach (var id in itemSnoIds[power.Sno]) { yield return(id); } }
public static IEnumerable <ISnoItem> GetItems(this ISnoPower power) { if (!CheckPower(power)) { yield return(DefaultItem); yield break; } foreach (var id in itemSnoIds[power.Sno]) { yield return(Hud.Inventory.GetSnoItem(id)); } }
public static IEnumerable <ISnoItem> GetItems(this ISnoPower power) { if (itemSnoIds.ContainsKey(power.Sno)) { foreach (var id in itemSnoIds[power.Sno]) { yield return(Hud.Inventory.GetSnoItem(id)); } } else { yield return(null); } }
public static IEnumerable <uint> GetItemSnos(this ISnoPower power) { if (itemSnoIds.ContainsKey(power.Sno)) { foreach (var id in itemSnoIds[power.Sno]) { yield return(id); } } else { yield return(0); } }
private void ShowPowerData(WorldLayer layer, uint sno, string name, string desc, IPlayer p) { string data = "BuffData:\n"; foreach (var s in p.Powers.AllBuffs) { if (s.SnoPower.Sno == sno || s.SnoPower.Code.Contains(name) || s.SnoPower.DescriptionEnglish != null && s.SnoPower.DescriptionEnglish.Contains(desc)) { data += s.SnoPower.Sno.ToString() + "\t"; data += "[" + string.Join(",", s.IconCounts) + "]" + "\t"; data += s.Active.ToString() + "\t"; data += s.SnoPower.NameEnglish + " : "; data += s.SnoPower.Code + " : "; data += s.SnoPower.DescriptionEnglish + "\n"; } } ISnoPower skill = Hud.Sno.GetSnoPower(sno); if (p.IsMe && skill != null) { data += "\nSNOData:\n"; data += skill.Sno.ToString() + "\t"; data += skill.NormalIconTextureId + "\t"; int i = 0; float x = Hud.Window.Size.Width / 2; float y = Hud.Window.Size.Height / 2 + Hud.Window.Size.Height * 0.1f; data += "["; DrawTexture(skill.NormalIconTextureId, new RectangleF(x - 55, y, 50, 50)); foreach (SnoPowerIcon si in skill.Icons) { if (si.Exists) { data += "(" + (i++) + ":" + si.TextureId.ToString() + "),"; if (si.TextureId > 0) { DrawTexture(si.TextureId, new RectangleF(x, y, 50, 50)); } x += 55; } } data += "]" + "\t"; data += skill.NameEnglish + " : "; data += skill.Code + " : "; data += skill.DescriptionEnglish + "\n"; } PlayerDecorator.Paint(layer, p, p.FloorCoordinate, data); }
public static SnoPowerId CreateSnoPowerId(this ISnoPower power, int icon) { return(new SnoPowerId(power.Sno, icon)); }
public CoolDownRule(ISnoPower snoPower, SoundPlayer soundPlayer) { SnoPower = snoPower; SoundPlayer = soundPlayer; }
public void Paint(ISnoPower power, float x, float y, int textLenght = 25) { var name = string.Empty; var items = power.GetItemSnos(); if (items.Any(xx => xx != 0) && string.IsNullOrWhiteSpace(power.NameEnglish)) { //name = Hud.Inventory.GetSnoItem(items.First()).NameEnglish; var item = Hud.Inventory.GetSnoItem(items.First()); name = item == null?power.Sno.ToString() : item.NameEnglish; } else { name = string.IsNullOrWhiteSpace(power.NameEnglish) ? power.Sno.ToString() : power.NameEnglish; } if (name.Length > textLenght) { name = name.Substring(0, textLenght); } var layout = TextFont.GetTextLayout(string.Format("{0,25} Ic:", name)); var layoutSpacer = TextFont.GetTextLayout(":"); TextFont.DrawText(layout, x, y); if (Hud.Window.CursorInsideRect(x, y, layout.Metrics.Width, layout.Metrics.Height)) { Hud.Render.SetHint(power.Sno + " : " + power.Code + " : " + power.DescriptionEnglish); } x += layout.Metrics.Width + layoutSpacer.Metrics.Width * 2; if (power.NormalIconTextureId != 0) { var texture = Hud.Texture.GetTexture(power.NormalIconTextureId); if (texture != null) { texture.Draw(x, y, StandardIconSize, StandardIconSize); } else { BackgroundBrush.DrawRectangle(x, y, StandardIconSize, StandardIconSize); } if (Hud.Window.CursorInsideRect(x, y, StandardIconSize, StandardIconSize)) { Hud.Render.SetHint("TextureId : " + power.NormalIconTextureId); } x += StandardIconSize + StandardIconSpacing; } foreach (var icon in power.Icons.Where(xxx => xxx.Exists && xxx.TextureId != 0 && xxx.TextureId != power.NormalIconTextureId).Select(xxx => xxx.TextureId).Distinct()) { var texture = Hud.Texture.GetTexture(icon); if (texture != null) { texture.Draw(x, y, StandardIconSize, StandardIconSize); } else { BackgroundBrush.DrawRectangle(x, y, StandardIconSize, StandardIconSize); } if (Hud.Window.CursorInsideRect(x, y, StandardIconSize, StandardIconSize)) { Hud.Render.SetHint("TextureId : " + icon); } x += StandardIconSize + StandardIconSpacing; } layout = TextFont.GetTextLayout(" It:"); TextFont.DrawText(layout, x, y); x += layout.Metrics.Width + layoutSpacer.Metrics.Width; foreach (var sno in items) { if (sno == 0) { continue; } var item = Hud.Inventory.GetSnoItem(sno); if (item == null) { continue; } var brush = item.SetItemBonusesSno == uint.MaxValue ? LegendaryBackgroundBrush : SetBackgroundBrush; brush.DrawRectangle(x, y, StandardIconSize, StandardIconSize); var texture = Hud.Texture.GetItemTexture(item); if (texture != null) { texture.Draw(x, y, StandardIconSize, StandardIconSize); } else { BackgroundBrush.DrawRectangle(x, y, StandardIconSize, StandardIconSize); } if (Hud.Window.CursorInsideRect(x, y, StandardIconSize, StandardIconSize)) { Hud.Render.SetHint(item.NameEnglish + " : " + item.Sno + " : i" + item.Level + " : " + item.SetItemBonusesSno); } x += StandardIconSize + StandardIconSpacing; } }
public void Remove(ISnoPower power) { Remove(power.Sno); }
public void Add(ISnoPower power, string text = null) { Add(power.Sno, text); }
public static SnoPowerId CreateSnoPowerId(this ISnoPower power) { return(new SnoPowerId(power.Sno)); }