Esempio n. 1
0
        private void CreateDynamicColumns()
        {
            foreach (Stat stat in StatEnums)
            {
                if (stat == Stat.Unknown)
                {
                    continue;
                }

                var key    = stat.ToString();
                var strKey = RegexFunctions.SeperateCamelCase(key.Replace("Rate", "").Replace("Multiplier", "").Replace("Percent", ""));

                var sign = "";

                if (key.Contains("Percent"))
                {
                    sign = "%";
                }
                else if (key.Contains("Multiplier"))
                {
                    sign = "x";
                }

                var col = new DataGridViewTextBoxColumn
                {
                    HeaderText       = $"{strKey} {sign}",
                    Name             = "Stat" + stat.ToString(),
                    ValueType        = typeof(int),
                    DataPropertyName = "Stat" + stat.ToString()
                };

                monsterInfoGridView.Columns.Add(col);
            }
        }
Esempio n. 2
0
        private string CombinedBuffText()
        {
            string text  = "Active Buffs\n";
            var    stats = new Stats();

            for (var i = 0; i < _buffList.Count; i++)
            {
                var buff = GameScene.Scene.Buffs[i];

                stats.Add(buff.Stats);
            }

            foreach (var val in stats.Values)
            {
                var c   = val.Value < 0 ? "Decreased" : "Increased";
                var key = val.Key.ToString();

                var strKey = RegexFunctions.SeperateCamelCase(key.Replace("Rate", "").Replace("Multiplier", "").Replace("Percent", ""));

                var sign = "";

                if (key.Contains("Percent"))
                {
                    sign = "%";
                }
                else if (key.Contains("Multiplier"))
                {
                    sign = "x";
                }

                var txt = $"{c} {strKey} by: {val.Value}{sign}.\n";

                text += txt;
            }

            return(text);
        }
Esempio n. 3
0
        private void CreateDynamicColumns()
        {
            foreach (Stat stat in StatEnums)
            {
                if (stat == Stat.Unknown)
                {
                    continue;
                }

                var key    = stat.ToString();
                var strKey = RegexFunctions.SeperateCamelCase(key.Replace("Rate", "").Replace("Multiplier", "").Replace("Percent", ""));

                var sign = "";

                if (key.Contains("Percent"))
                {
                    sign = "%";
                }
                else if (key.Contains("Multiplier"))
                {
                    sign = "x";
                }

                var col = new DataGridViewTextBoxColumn
                {
                    HeaderText       = $"{strKey} {sign}",
                    Name             = "Stat" + stat.ToString(),
                    ValueType        = typeof(int),
                    DataPropertyName = "Stat" + stat.ToString()
                };

                itemInfoGridView.Columns.Add(col);
            }

            foreach (BindMode bind in BindEnums)
            {
                if (bind == BindMode.None)
                {
                    continue;
                }

                var col = new DataGridViewCheckBoxColumn
                {
                    HeaderText       = bind.ToString(),
                    Name             = "Bind" + bind.ToString(),
                    ValueType        = typeof(bool),
                    DataPropertyName = "Bind" + bind.ToString()
                };

                itemInfoGridView.Columns.Add(col);
            }

            foreach (SpecialItemMode special in SpecialEnums)
            {
                if (special == SpecialItemMode.None)
                {
                    continue;
                }

                var col = new DataGridViewCheckBoxColumn
                {
                    HeaderText       = special.ToString(),
                    Name             = "Special" + special.ToString(),
                    ValueType        = typeof(bool),
                    DataPropertyName = "Special" + special.ToString()
                };

                itemInfoGridView.Columns.Add(col);
            }
        }
Esempio n. 4
0
        public string BuffString(ClientBuff buff)
        {
            string text          = RegexFunctions.SeperateCamelCase(buff.Type.ToString()) + "\n";
            bool   overridestats = false;

            switch (buff.Type)
            {
            case BuffType.GameMaster:
                GMOptions options = (GMOptions)buff.Values[0];

                if (options.HasFlag(GMOptions.GameMaster))
                {
                    text += "-Invisible\n";
                }
                if (options.HasFlag(GMOptions.Superman))
                {
                    text += "-Superman\n";
                }
                if (options.HasFlag(GMOptions.Observer))
                {
                    text += "-Observer\n";
                }
                break;

            case BuffType.MentalState:
                switch (buff.Values[0])
                {
                case 0:
                    text += "Agressive (Full damage)\nCan't shoot over walls.\n";
                    break;

                case 1:
                    text += "Trick shot (Minimal damage)\nCan shoot over walls.\n";
                    break;

                case 2:
                    text += "Group Mode (Medium damage)\nDon't steal agro.\n";
                    break;
                }
                break;

            case BuffType.Hiding:
            case BuffType.ClearRing:
                text += "Invisible to many monsters.\n";
                break;

            case BuffType.MoonLight:
                text += "Invisible to players and many\nmonsters when at a distance.\n";
                break;

            case BuffType.EnergyShield:
                overridestats = true;
                text         += string.Format("{0}% chance to gain {1} HP when attacked.\n", buff.Stats[Stat.EnergyShieldPercent], buff.Stats[Stat.EnergyShieldHPGain]);
                break;

            case BuffType.DarkBody:
                text += "Invisible to many monsters and able to move.\n";
                break;

            case BuffType.VampireShot:
                text += "Gives you a vampiric ability\nthat can be released with\ncertain skills.\n";
                break;

            case BuffType.PoisonShot:
                text += "Gives you a poison ability\nthat can be released with\ncertain skills.\n";
                break;

            case BuffType.Concentration:
                text += "Increases chance on element extraction.\n";
                break;

            case BuffType.MagicBooster:
                overridestats = true;
                text          = string.Format("Increases MC by: {0}-{1}.\nIncreases consumption by {2}%.\n", buff.Stats[Stat.MinMC], buff.Stats[Stat.MaxMC], buff.Stats[Stat.ManaPenaltyPercent]);
                break;

            case BuffType.Transform:
                text = "Disguises your appearance.\n";
                break;

            case BuffType.Mentee:
                text = "Learn skill points twice as quick.\n";
                break;

            case BuffType.Guild:
                text += GameScene.Scene.GuildDialog.ActiveStats;
                break;
            }

            if (!overridestats)
            {
                foreach (var val in buff.Stats.Values)
                {
                    var c   = val.Value < 0 ? "Decreases" : "Increases";
                    var key = val.Key.ToString();

                    var strKey = RegexFunctions.SeperateCamelCase(key.Replace("Rate", "").Replace("Multiplier", "").Replace("Percent", ""));

                    var sign = "";

                    if (key.Contains("Percent"))
                    {
                        sign = "%";
                    }
                    else if (key.Contains("Multiplier"))
                    {
                        sign = "x";
                    }

                    var txt = $"{c} {strKey} by: {val.Value}{sign}.\n";

                    text += txt;
                }
            }

            text += buff.Infinite ? GameLanguage.ExpireNever : string.Format(GameLanguage.Expire, Functions.PrintTimeSpanFromSeconds(Math.Round((buff.ExpireTime - CMain.Time) / 1000D)));

            if (!string.IsNullOrEmpty(buff.Caster))
            {
                text += string.Format("\nCaster: {0}", buff.Caster);
            }

            return(text);
        }
Esempio n. 5
0
        public string BuffString(ClientPoisonBuff buff)
        {
            string text          = RegexFunctions.SeperateCamelCase(buff.Type.ToString()) + "\n";
            bool   overridestats = false;

            switch (buff.Type)
            {
            case PoisonType.Green:
            {
                var tick     = buff.TickSpeed / 1000;
                var tickName = tick > 1 ? "seconds" : "second";

                text += $"Recieve {buff.Value} damage every {tick} {tickName}.\n";
            }
            break;

            case PoisonType.Red:
            {
                var tick     = buff.TickSpeed / 1000;
                var tickName = tick > 1 ? "seconds" : "second";

                text += $"Reduces armour rate by 10% every {tick} {tickName}.\n";
            }
            break;

            case PoisonType.Slow:
                text += "Reduces movement speed.\n";
                break;

            case PoisonType.Frozen:
                text += "Prevents casting, movin\nand attacking.\n";
                break;

            case PoisonType.Stun:
            {
                var tick     = buff.TickSpeed / 1000;
                var tickName = tick > 1 ? "seconds" : "second";

                text += $"Increases damage received by 20% every {tick} {tickName}.\n";
            }
            break;

            case PoisonType.Paralysis:
                text += "Prevents moving and attacking.\n";
                break;

            case PoisonType.DelayedExplosion:
                text += "Ticking time bomb.\n";
                break;

            case PoisonType.Bleeding:
            {
                var tick     = buff.TickSpeed / 1000;
                var tickName = tick > 1 ? "seconds" : "second";

                text += $"Recieve {buff.Value} damage every {tick} {tickName}.\n";
            }
            break;

            case PoisonType.LRParalysis:
                text += "Prevents moving and attacking.\nCancels when attacked\n";
                break;

            case PoisonType.Blindness:
                text += "Causes temporary blindness.\n";
                break;

            case PoisonType.Dazed:
                text += "Prevents attacking.\n";
                break;
            }

            text += string.Format(GameLanguage.Expire, Functions.PrintTimeSpanFromSeconds(Math.Round((buff.ExpireTime - CMain.Time) / 1000D)));

            if (!string.IsNullOrEmpty(buff.Caster))
            {
                text += string.Format("\nCaster: {0}", buff.Caster);
            }

            return(text);
        }