コード例 #1
0
        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);
        }
コード例 #2
0
        public static ISnoItem GetItem(this ISnoPower power)
        {
            if (!CheckPower(power))
            {
                return(DefaultItem);
            }

            return(Hud.Inventory.GetSnoItem(itemSnoIds[power.Sno].First()));
        }
コード例 #3
0
        public static uint GetItemSno(this ISnoPower power)
        {
            if (!CheckPower(power))
            {
                return(DefaultItem.Sno);
            }

            return(itemSnoIds[power.Sno].First());
        }
コード例 #4
0
 public static uint GetItemSno(this ISnoPower power)
 {
     if (itemSnoIds.ContainsKey(power.Sno))
     {
         return(itemSnoIds[power.Sno].First());
     }
     else
     {
         return(0);
     }
 }
コード例 #5
0
 public static ISnoItem GetItem(this ISnoPower power)
 {
     if (itemSnoIds.ContainsKey(power.Sno))
     {
         return(Hud.Inventory.GetSnoItem(itemSnoIds[power.Sno].First()));
     }
     else
     {
         return(null);
     }
 }
コード例 #6
0
        public void RemoveRule(ISnoPower snoPower)
        {
            if (!CoolDownRules.ContainsKey(snoPower))
            {
                return;
            }

            var rule = CoolDownRules[snoPower];

            rule.DisposeSoundPlayer();

            CoolDownRules.Remove(snoPower);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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));
            }
        }
コード例 #10
0
 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);
     }
 }
コード例 #11
0
 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);
     }
 }
コード例 #12
0
ファイル: SelfBuffPlugin.cs プロジェクト: hcylove0/plugins-1
        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);
        }
コード例 #13
0
 public static SnoPowerId CreateSnoPowerId(this ISnoPower power, int icon)
 {
     return(new SnoPowerId(power.Sno, icon));
 }
コード例 #14
0
ファイル: CoolDownRule.cs プロジェクト: techsupp/thplugins
 public CoolDownRule(ISnoPower snoPower, SoundPlayer soundPlayer)
 {
     SnoPower    = snoPower;
     SoundPlayer = soundPlayer;
 }
コード例 #15
0
        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;
            }
        }
コード例 #16
0
 public void Remove(ISnoPower power)
 {
     Remove(power.Sno);
 }
コード例 #17
0
 public void Add(ISnoPower power, string text = null)
 {
     Add(power.Sno, text);
 }
コード例 #18
0
 public static SnoPowerId CreateSnoPowerId(this ISnoPower power)
 {
     return(new SnoPowerId(power.Sno));
 }