Ejemplo n.º 1
0
        string GetUsedMana(Dict usedMana, string pc, string manaCode)
        {
            if (usedMana == null)
            {
                return("0");
            }

            var k = pc + "|" + manaCode;

            if (!usedMana.ContainsKey(k))
            {
                return("0");
            }

            var v = usedMana[k];

            string used;
            string max;

            GameHost.Worker.Parse2(v, out used, out max);

            string u;
            string m;

            GameHost.Worker.Parse2Ex(used, out u, out m, ":");

            return(m);
        }
Ejemplo n.º 2
0
        string GetUsedFatigue(Dict usedFatigue, string pc, string fatigueCode)
        {
            if (usedFatigue == null)
            {
                return("0");
            }

            var k = pc + "|" + fatigueCode;

            if (!usedFatigue.ContainsKey(k))
            {
                return("0");
            }

            var v = usedFatigue[k];

            string used;
            string max;

            GameHost.Worker.Parse2(v, out used, out max);

            string u;
            string m;

            GameHost.Worker.Parse2Ex(used, out u, out m, ":");

            return(m);
        }
Ejemplo n.º 3
0
        private string GetWounds(Dict woundsDict, string pc, string loc)
        {
            if (woundsDict == null)
            {
                return("0");
            }

            var key = pc + "|" + loc;

            if (!woundsDict.ContainsKey(key))
            {
                return("0");
            }

            var v = woundsDict[key];

            string dmg;
            string max;

            GameHost.Worker.Parse2(v, out dmg, out max);

            string d;
            string w;

            GameHost.Worker.Parse2Ex(dmg, out d, out w, ":");

            return(w);
        }
Ejemplo n.º 4
0
        int GetInt(Dict dict, string k)
        {
            var val = dict.ContainsKey(k) ? dict[k] : "-";
            int v   = 0;

            Int32.TryParse(val, out v);

            return(v);
        }
Ejemplo n.º 5
0
        void WriteLocations(string pc, StringBuilder b)
        {
            var hitloc = pc + "/_hit_location";
            var armor  = pc + "/_armor";

            if (!master.ContainsKey(hitloc))
            {
                return;
            }

            Dict dict = master[hitloc];

            var keyC = dict.Keys;

            var keys = new string[keyC.Count];

            keyC.CopyTo(keys, 0);

            Array.Sort(keys);

            Dict armorDict  = null;
            Dict woundsDict = null;

            if (master.ContainsKey(armor))
            {
                armorDict = master[armor];
            }

            if (master.ContainsKey("_wounds"))
            {
                woundsDict = master["_wounds"];
            }

            b.Append("<TR>" +
                     "<TD><B>Location</B></TD>" +
                     "<TD><B>Full</B></TD>" +
                     "<TD><B>Wounds</B></TD>" +
                     "<TD><B>Armor</B></TD>" +
                     "</TR>");

            foreach (var k in keys)
            {
                b.Append("<TR><TD>");
                b.Append(k);
                b.Append("</TD><TD>");
                b.Append(dict[k]);
                b.Append("</TD><TD>");
                b.Append(GetWounds(woundsDict, pc, k));
                b.Append("</TD><TD>");
                b.Append((armorDict != null && armorDict.ContainsKey(k)) ? armorDict[k] : "-");
                b.Append("</TD></TR>");
            }
        }
Ejemplo n.º 6
0
        string AdjustRunemagicUsedFolder(string key)
        {
            // this is what we're going to use if anything goes wrong, and a lot can go wrong
            string result = data[key];

            // first let's figure out who this is
            string who, effect;

            Worker.Parse2Ex(key, out who, out effect, "|");

            // if we can't figure that out, then forget the whole thing
            if (effect == "")
            {
                goto Error;
            }

            // we have a hope of doing this so get our mods
            var mods = LazyInitMods(who);

            Dict dict = mods.runemagicDict;

            if (effect.StartsWith("one_use_"))
            {
                effect = effect.Substring(8);
                dict   = mods.oneuseDict;
            }

            if (dict == null)
            {
                goto Error;
            }

            // anything else might be a school type, use that.
            if (!dict.ContainsKey(effect))
            {
                goto Error;
            }

            int nMax;

            if (!int.TryParse(dict[effect], out nMax))
            {
                goto Error;
            }

            return(String.Format("used:{0} max:{1}", result, nMax));

Error:
            return(String.Format("used:{0} max:?", result));
        }
Ejemplo n.º 7
0
        static void AppendStat(Dict dictMain, Dict dictMisc, string k, StringBuilder b)
        {
            string v = dictMain.ContainsKey(k) ? dictMain[k] : "-";

            if (dictMisc != null && dictMisc.ContainsKey("MAX_" + k))
            {
                v += "/" + dictMisc["MAX_" + k];
            }
            else
            {
                v += "/-";
            }

            AppendTwoCols(k, v, b);
        }
Ejemplo n.º 8
0
        string AdjustSpiritManaUsedFolder(string key)
        {
            // this is what we're going to use if anything goes wrong, and a lot can go wrong
            string result = data[key];

            // first let's figure out who this is
            string who, effect;

            Worker.Parse2Ex(key, out who, out effect, "|");

            // if we can't figure that out, then forget the whole thing
            if (effect == "")
            {
                goto Error;
            }

            // we have a hope of doing this so get our mods
            var mods = LazyInitMods(who);

            Dict dict = mods.spiritDict;

            if (dict == null)
            {
                goto Error;
            }

            // anything else might be a school type, use that.
            if (!dict.ContainsKey(effect))
            {
                goto Error;
            }

            var value = dict[effect];

            string sc;
            string pow;
            string stored;

            GameHost.Dict.ExtractSpiritInfoParts(value, out sc, out pow, out stored);

            return(String.Format("used:{0} max:{1}", result, pow));

Error:
            return(String.Format("used:{0} max:?", result));
        }
Ejemplo n.º 9
0
        void WriteFatigue(string pc, StringBuilder b)
        {
            if (!master.ContainsKey(pc + "/_misc"))
            {
                return;
            }

            b.Append("<TR>" +
                     "<TD><B>Fatigue Type</B></TD>" +
                     "<TD><B>Full</B></TD>" +
                     "<TD><B>Used</B></TD>" +
                     "</TR>");

            Dict miscDict = master[pc + "/_misc"];

            Dict usedFatigue = null;

            if (master.ContainsKey("_fatigue"))
            {
                usedFatigue = master["_fatigue"];
            }

            if (miscDict.ContainsKey("fatigue"))
            {
                var m = miscDict["fatigue"];
                b.Append("<TR>" +
                         "<TD>" +
                         "normal" +
                         "</TD><TD>" +
                         m +
                         "</TD><TD>" +
                         GetUsedFatigue(usedFatigue, pc, "normal") +
                         "</TR>");

                b.Append("<TR>" +
                         "<TD>" +
                         "hard" +
                         "</TD><TD>" +
                         m +
                         "</TD><TD>" +
                         GetUsedFatigue(usedFatigue, pc, "hard") +
                         "</TR>");
            }
        }
Ejemplo n.º 10
0
        private void AppendExplicit(string catname, Dict dict, string[] keys, StringBuilder b)
        {
            if (b.Length > tableInit.Length)
            {
                AppendBlank(b);
            }

            AppendHeader(catname, b);

            Array.Sort(keys);

            foreach (var k in keys)
            {
                if (dict.ContainsKey(k))
                {
                    AppendKeyValueRow(dict, k, b);
                }
            }
        }
Ejemplo n.º 11
0
 string GetStr(Dict dict, string k)
 {
     return(dict.ContainsKey(k) ? dict[k] : "-");
 }
Ejemplo n.º 12
0
        static void AppendKeyValueRow(Dict dict, string k, StringBuilder b)
        {
            string v = (dict != null && dict.ContainsKey(k)) ? dict[k] : "-";

            AppendTwoCols(k, v, b);
        }
Ejemplo n.º 13
0
        static void AppendMajorItem(Dict dict, string desc, string k, StringBuilder b)
        {
            string v = (dict != null && dict.ContainsKey(k)) ? dict[k] : "-";

            AppendTwoCols("<b>" + desc + "</b>", v, b);
        }
Ejemplo n.º 14
0
        void AppendCategory(string catFormal, string cat, StringBuilder b, string pc)
        {
            if (!master.ContainsKey(pc + cat))
            {
                return;
            }

            if (b.Length > tableInit.Length)
            {
                AppendBlank(b);
            }

            AppendHeader(catFormal, b);

            Dict dict = master[pc + cat];

            var keyC = dict.Keys;

            var keys = new string[keyC.Count];

            keyC.CopyTo(keys, 0);

            Array.Sort(keys);

            foreach (var k in keys)
            {
                if (k.StartsWith("spare_"))
                {
                    continue;
                }

                bool isZero = dict.ContainsKey(k) && dict[k] == "0";

                if (isZero && catFormal == "Magic:")
                {
                    continue;
                }

                AppendKeyValueRow(dict, k, b);

                var sk = new SkillRecord();
                sk.name = k
                          .Replace("_0", "")
                          .Replace("_1", "")
                          .Replace("_2", "")
                          .Replace("_3", "")
                          .Replace("_4", "")
                          .Replace("_5", "")
                          .Replace("_6", "")
                          .Replace("_7", "")
                          .Replace("_8", "")
                          .Replace("_9", "")
                          .Replace("_10", "")
                          .Replace("_", " ");

                sk.category = cat;

                if (!isZero)
                {
                    skills.Add(sk);
                }
            }
        }
Ejemplo n.º 15
0
        void WriteMana(string pc, StringBuilder b)
        {
            if (!master.ContainsKey(pc + "/mana"))
            {
                return;
            }

            b.Append("<TR>" +
                     "<TD><B>Mana Type</B></TD>" +
                     "<TD><B>Full</B></TD>" +
                     "<TD><B>Used</B></TD>" +
                     "</TR>");

            Dict manaDict = master[pc + "/mana"];

            Dict usedMana = null;

            if (master.ContainsKey("_mana"))
            {
                usedMana = master["_mana"];
            }

            if (manaDict.ContainsKey("total_magic_points"))
            {
                var m = manaDict["total_magic_points"];
                b.Append("<TR>" +
                         "<TD>" +
                         "normal" +
                         "</TD><TD>" +
                         m +
                         "</TD><TD>" +
                         GetUsedMana(usedMana, pc, "mana") +
                         "</TR>");
            }

            var keyC = manaDict.Keys;

            var keys = new string[keyC.Count];

            keyC.CopyTo(keys, 0);

            Array.Sort(keys);

            foreach (var k in keys)
            {
                if (k == "mpts_per_day" || k == "total_magic_points" || k.StartsWith("spare_"))
                {
                    continue;
                }

                var m = manaDict[k];

                b.Append("<TR>" +
                         "<TD>" +
                         k +
                         "</TD><TD>" +
                         m +
                         "</TD><TD>" +
                         GetUsedMana(usedMana, pc, "mana|" + k) +
                         "</TR>");
            }
        }
Ejemplo n.º 16
0
        void WriteSpirits(string pc, StringBuilder col)
        {
            var spirits = pc + "/_spirits";

            if (!master.ContainsKey(spirits))
            {
                return;
            }

            Dict dict = master[spirits];

            var keyC = dict.Keys;

            var keys = new string[keyC.Count];

            keyC.CopyTo(keys, 0);

            Array.Sort(keys);

            var b = NewTable();

            b.Append("<TR><TD>&nbsp;</TD></TR>");
            b.Append("<TR>" +
                     "<TD><B>Spirit ID</B></TD>" +
                     "<TD><B>POW</B></TD>" +
                     "<TD><B>Used</B></TD>" +
                     "<TD><B>SC%</B></TD>" +
                     "<TD><B>Stored</B></TD>" +
                     "</TR>");


            Dict spiritManaDict = master["_spiritmana"];

            foreach (var k in keys)
            {
                var value = dict[k];

                string sc;
                string pow;
                string stored;
                GameHost.Dict.ExtractSpiritInfoParts(value, out sc, out pow, out stored);

                var    skey = pc + "|" + k;
                string used = "0";

                if (spiritManaDict.ContainsKey(skey))
                {
                    used = spiritManaDict.GetRaw(skey);
                }

                b.Append("<TR><TD>");
                b.Append(k);
                b.Append("</TD><TD>");
                b.Append(pow);
                b.Append("</TD><TD>");
                b.Append(used);
                b.Append("</TD><TD>");
                b.Append(sc);
                b.Append("</TD><TD>");
                b.Append(stored);
                b.Append("</TD></TR>");
            }

            EndTable(b);
            col.Append(b);
        }