Esempio n. 1
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. 2
0
 private void Load_Options(ProjectReader reader)
 {
     Options = new GMOptions(reader);
 }
Esempio n. 3
0
        public static void WriteOptions(ProjectWriter main_writer, GMOptions go)
        {
            main_writer.Write(go.FormatVersion);
            var stream = new MemoryStream();
            var writer = new ProjectWriter(stream);

            writer.Write(go.StartInFullscreen);
            writer.Write(go.InterpolatePixels);
            writer.Write(go.DontDrawBorder);
            writer.Write(go.DisplayCursor);
            writer.Write(go.Scaling);
            writer.Write(go.AllowWindowResize);
            writer.Write(go.AlwaysOnTop);
            writer.Write(go.OutsideRoom);
            writer.Write(go.SetResolution);
            writer.Write((int)go.ColorDepth);
            writer.Write((int)go.ScreenResolution);
            writer.Write((int)go.Frequency);
            writer.Write(go.Borderless);
            uint vsync = go.VSync ? 1U : 0U;

            if (go.SoftwareVertex)
            {
                vsync |= 0x80000000;
            }
            writer.Write(vsync);
            writer.Write(go.DisableScreensavers);
            writer.Write(go.LetF4Fullscreen);
            writer.Write(go.LetF1GameInfo);
            writer.Write(go.LetESCEndGame);
            writer.Write(go.LetF5F6SaveLoad);
            writer.Write(go.LetF9Screenshot);
            writer.Write(go.TreatCloseAsESC);
            writer.Write((int)go.Priority);
            writer.Write(go.FreezeWhenFocusLost);
            writer.Write((int)go.LoadingBarMode);
            string AppDir = AppDomain.CurrentDomain.BaseDirectory;

            if (go.LoadingBarMode == GMOptions.ProgBars.BAR_CUSTOM)
            {
                writer.Write(go.BackLoadingBar);
                writer.Write(go.FrontLoadingBar);
            }
            else if (go.LoadingBarMode == GMOptions.ProgBars.BAR_DEFAULT)
            {
                string back = Path.Combine(AppDir, "back.png");
                if (File.Exists(back))
                {
                    Image defBack = Image.FromFile(back);
                    writer.Write(defBack);
                    defBack.Dispose();
                }

                string front = Path.Combine(AppDir, "front.png");
                if (File.Exists(front))
                {
                    Image defFront = Image.FromFile(front);
                    writer.Write(defFront);
                    defFront.Dispose();
                }
            }

            if (go.ShowCustomLoadImage && go.LoadingImage != null)
            {
                writer.Write(go.LoadingImage);
            }
            else
            {
                string load = Path.Combine(AppDir, "load.png");
                if (File.Exists(load))
                {
                    Image defLoad = Image.FromFile(load);
                    writer.Write(defLoad);
                    defLoad.Dispose();
                }
                else
                {
                    writer.Write(false);
                }
            }

            writer.Write(go.LoadimgImagePartTransparent);
            writer.Write(go.LoadImageAlpha);
            writer.Write(go.ScaleProgressBar);
            writer.Write(go.DisplayErrors);
            writer.Write(go.WriteToLog);
            writer.Write(go.AbortOnAllErrors);
            writer.Write(go.TreatUninitAsZero);
            main_writer.WriteZlibChunk(writer);
            stream.Dispose();
            writer.Dispose();
        }
Esempio n. 4
0
        public override string ToString()
        {
            string text = string.Empty;

            switch (Type)
            {
            //magic
            case BuffType.TemporalFlux:
                text = string.Format(CMain.Tr("Temporal Flux\nIncreases cost of next Teleport by: {0} MP.\n"), (int)(MapObject.User.MaxMP * 0.3F));
                break;

            case BuffType.Hiding:
                text = CMain.Tr("Hiding\nInvisible to many monsters.\n");
                break;

            case BuffType.Haste:
                text = string.Format(CMain.Tr("Haste\nIncreases Attack Speed by: {0}.\n"), Values[0]);
                break;

            case BuffType.SwiftFeet:
                text = string.Format(CMain.Tr("Swift Feet\nIncreases Move Speed by: {0}.\n"), Values[0]);
                break;

            case BuffType.Fury:
                text = string.Format(CMain.Tr("Fury\nIncreases Attack Speed by: {0}.\n"), Values[0]);
                break;

            case BuffType.LightBody:
                text = string.Format(CMain.Tr("Light Body\nIncreases Agility by: {0}.\n"), Values[0]);
                break;

            case BuffType.SoulShield:
                text = string.Format(CMain.Tr("Soul Shield\nIncreases MAC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.BlessedArmour:
                text = string.Format(CMain.Tr("Blessed Armour\nIncreases AC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.ProtectionField:
                text = string.Format(CMain.Tr("Protection Field\nIncreases AC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.Rage:
                text = string.Format(CMain.Tr("Rage\nIncreases DC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.ImmortalSkin:
                text = string.Format(CMain.Tr("ImmortalSkin\nIncreases AC by: 0-{0}.\nDecreases DC by: 0-{1}.\n"), Values[0], Values[1]);
                break;

            case BuffType.CounterAttack:
                text = string.Format(CMain.Tr("Counter Attack\nIncreases AC/MAC by: {0}-{1}.\n"), Values[0], Values[0]);
                break;

            case BuffType.UltimateEnhancer:
                if (GameScene.User.Class == MirClass.Wizard || GameScene.User.Class == MirClass.Archer)
                {
                    text = string.Format(CMain.Tr("Ultimate Enhancer\nIncreases MC by: 0-{0}.\n"), Values[0]);
                }
                else if (GameScene.User.Class == MirClass.Taoist)
                {
                    text = string.Format(CMain.Tr("Ultimate Enhancer\nIncreases SC by: 0-{0}.\n"), Values[0]);
                }
                else
                {
                    text = string.Format(CMain.Tr("Ultimate Enhancer\nIncreases DC by: 0-{0}.\n"), Values[0]);
                }
                break;

            case BuffType.EnergyShield:
                text = string.Format(CMain.Tr("Energy Shield\n{0}% chance to gain {1} HP when attacked\n"), Math.Round((1 / (decimal)Values[0]) * 100), Values[1]);
                break;

            case BuffType.Curse:
                text = string.Format(CMain.Tr("Cursed\nDecreases DC/MC/SC/ASpeed by: {0}%.\n"), Values[0]);
                break;

            case BuffType.MoonLight:
                text = CMain.Tr("Moon Light\nInvisible to players and many\nmonsters when at a distance.\n");
                break;

            case BuffType.DarkBody:
                text = CMain.Tr("Dark Body\nInvisible to many monsters and able to move.\n");
                break;

            case BuffType.VampireShot:
                text = string.Format(CMain.Tr("Vampire Shot\nGives you a vampiric ability\nthat can be released with\ncertain skills.\n"), Values[0]);
                break;

            case BuffType.PoisonShot:
                text = string.Format(CMain.Tr("Poison Shot\nGives you a poison ability\nthat can be released with\ncertain skills.\n"), Values[0]);
                break;

            case BuffType.Concentration:
                text = CMain.Tr("Concentrating\nIncreases chance on element extraction.\n");
                break;

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

                case 1:
                    text = string.Format(CMain.Tr("Trick shot (Minimal damage)\nCan shoot over walls.\n"), Values[0]);
                    break;

                case 2:
                    text = string.Format(CMain.Tr("Group Mode (Medium damage)\nDon't steal agro.\n"), Values[0]);
                    break;
                }
                break;

            case BuffType.MagicBooster:
                text = string.Format(CMain.Tr("Magic Booster\nIncreases MC by: {0}-{0}.\nIncreases consumption by {1}%.\n"), Values[0], Values[1]);
                break;

            case BuffType.MagicShield:
                text = string.Format(CMain.Tr("Magic Shield\nReduces damage by {0}%.\n"), (Values[0] + 2) * 10);
                break;

            //special
            case BuffType.GameMaster:
                GMOptions options = (GMOptions)Values[0];
                text = CMain.Tr("GameMaster\n");

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

            case BuffType.General:
                text = string.Format(CMain.Tr("Mirian Advantage\nExpRate increased by {0}%\n"), Values[0]);

                if (Values.Length > 1)
                {
                    text += string.Format(CMain.Tr("DropRate increased by {0}%\n"), Values[1]);
                }
                if (Values.Length > 2)
                {
                    text += string.Format(CMain.Tr("GoldRate increased by {0}%\n"), Values[2]);
                }
                break;

            case BuffType.Exp:
                text = string.Format(CMain.Tr("Exp Rate\nIncreased by {0}%\n"), Values[0]);
                break;

            case BuffType.Gold:
                text = string.Format(CMain.Tr("Gold Rate\nIncreased by {0}%\n"), Values[0]);
                break;

            case BuffType.Drop:
                text = string.Format(CMain.Tr("Drop Rate\nIncreased by {0}%\n"), Values[0]);
                break;

            case BuffType.BagWeight:
                text = string.Format(CMain.Tr("Bag Weight\nIncreases BagWeight by: {0}.\n"), Values[0]);
                break;

            case BuffType.Transform:
                text = string.Format(CMain.Tr("Transform\nDisguises your appearance.\n"));
                break;

            case BuffType.RelationshipEXP:
                text = string.Format(CMain.Tr("Love is in the Air\nExpRate increased by: {0}%.\n"), Values[0]);
                break;

            case BuffType.Mentee:
                text = string.Format(CMain.Tr("In Training\nLearn skill points twice as quick.\nExpRate increased by: {0}%.\n"), Values[0]);
                break;

            case BuffType.Mentor:
                text = string.Format(CMain.Tr("Mentorship Empowerment\nDamage to monsters increased by {0}%.\n"), Values[0]);
                break;

            case BuffType.Guild:
                text  = string.Format(CMain.Tr("Guild Charge\n"));
                text += GameScene.Scene.GuildDialog.ActiveStats;
                break;

            case BuffType.Rested:
                text = string.Format(CMain.Tr("Rested\nIncreases Exp Rate by {0}%\n"), Values[0]);
                break;

            //stats
            case BuffType.Impact:
                text = string.Format(CMain.Tr("Impact\nIncreases DC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.Magic:
                text = string.Format(CMain.Tr("Magic\nIncreases MC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.Taoist:
                text = string.Format(CMain.Tr("Taoist\nIncreases SC by: 0-{0}.\n"), Values[0]);
                break;

            case BuffType.Storm:
                text = string.Format(CMain.Tr("Storm\nIncreases A.Speed by: {0}.\n"), Values[0]);
                break;

            case BuffType.HealthAid:
                text = string.Format(CMain.Tr("Health Aid\nIncreases HP by: {0}.\n"), Values[0]);
                break;

            case BuffType.ManaAid:
                text = string.Format(CMain.Tr("Mana Aid\nIncreases MP by: {0}.\n"), Values[0]);
                break;

            case BuffType.Defence:
                text = string.Format(CMain.Tr("Defence\nIncreases Max AC by: {0}-{0}.\n"), Values[0]);
                break;

            case BuffType.MagicDefence:
                text = string.Format(CMain.Tr("Magic Defence\nIncreases Max MAC by: {0}-{0}.\n"), Values[0]);
                break;

            case BuffType.WonderDrug:
                text = string.Format(CMain.Tr("Wonder Drug\n"));
                switch (Values[0])
                {
                case 0:
                    text += string.Format(CMain.Tr("Increases Exp Rate by {0}%\n"), Values[1]);
                    break;

                case 1:
                    text += string.Format(CMain.Tr("Increases Drop Rate by {0}%\n"), Values[1]);
                    break;

                case 2:
                    text += string.Format(CMain.Tr("Increases HP by: {0}.\n"), Values[1]);
                    break;

                case 3:
                    text += string.Format(CMain.Tr("Increases MP by: {0}.\n"), Values[1]);
                    break;

                case 4:
                    text += string.Format(CMain.Tr("Increases Max AC by: {0}-{0}.\n"), Values[1]);
                    break;

                case 5:
                    text += string.Format(CMain.Tr("Increases Max MAC by: {0}-{0}.\n"), Values[1]);
                    break;

                case 6:
                    text += string.Format(CMain.Tr("Increases A.Speed by: {0}.\n"), Values[1]);
                    break;
                }
                break;

            case BuffType.Knapsack:
                text = string.Format(CMain.Tr("Knapsack\nIncreases BagWeight by: {0}.\n"), Values[0]);
                break;
            }

            text += string.Format(CMain.Tr("Expire: {0}"), Infinite ? CMain.Tr("Never") : Functions.PrintTimeSpanFromSeconds(Math.Round((Expire - CMain.Time) / 1000D)));

            if (Caster.Length > 0)
            {
                text += string.Format(CMain.Tr("\nCaster: {0}"), Caster);
            }

            return(text);
        }