Exemple #1
0
        internal void HarvestBuffs(Dict buffDict)
        {
            buffs.INT   = 0;
            buffs.POW   = 0;
            buffs.CON   = 0;
            buffs.SIZ   = 0;
            buffs.STR   = 0;
            buffs.DEX   = 0;
            buffs.APP   = 0;
            buffs.LIFE  = 0;
            buffs.SRM   = 0;
            buffs.LUCK  = 0;
            buffs.PROT  = 0;
            buffs.ENC   = 0;
            buffs.MPMAX = 0;
            buffs.EMP   = 0;

            buffs.Communication = 0;
            buffs.Agility       = 0;
            buffs.Manipulation  = 0;
            buffs.Stealth       = 0;
            buffs.Knowledge     = 0;
            buffs.Alchemy       = 0;
            buffs.Perception    = 0;
            buffs.Magic         = 0;
            buffs.Attack        = 0;
            buffs.Parry         = 0;

            miscMods.Clear();

            var keys   = buffDict.Keys;
            var prefix = toon + "|";

            foreach (var k in keys)
            {
                if (!k.StartsWith(prefix))
                {
                    continue;
                }

                string buff = buffDict.GetRaw(k);

                if (buff.Length < 5)
                {
                    continue;
                }

                int index = buff.IndexOfAny(Dict.plusminus);
                if (index < 1)
                {
                    continue;
                }

                int val;
                if (!int.TryParse(buff.Substring(index), out val))
                {
                    continue;
                }

                string item = buff.Substring(0, index);
                switch (item)
                {
                case "EMP":
                    buffs.EMP += val;
                    break;

                case "INT":
                    buffs.INT += val;
                    break;

                case "POW":
                    buffs.POW += val;
                    break;

                case "CON":
                    buffs.CON += val;
                    break;

                case "SIZ":
                    buffs.SIZ += val;
                    break;

                case "STR":
                    buffs.STR += val;
                    break;

                case "DEX":
                    buffs.DEX += val;
                    break;

                case "APP":
                    buffs.APP += val;
                    break;

                case "SRM":
                    buffs.SRM += val;
                    break;

                case "ENC":
                    buffs.ENC += val;
                    break;

                case "LIFE":
                    buffs.LIFE += val;
                    break;

                case "LUCK":
                    buffs.LUCK += val;
                    break;

                case "PROT":
                    buffs.PROT += val;
                    break;

                case "MPMAX":
                    buffs.MPMAX += val;
                    break;

                case "Communication":
                    buffs.Communication += val;
                    break;

                case "Agility":
                    buffs.Agility += val;
                    break;

                case "Manipulation":
                    buffs.Manipulation += val;
                    break;

                case "Stealth":
                    buffs.Stealth += val;
                    break;

                case "Knowledge":
                    buffs.Knowledge += val;
                    break;

                case "Alchemy":
                    buffs.Alchemy += val;
                    break;

                case "Perception":
                    buffs.Perception += val;
                    break;

                case "Magic":
                    buffs.Magic += val;
                    break;

                case "Attack":
                    buffs.Attack += val;
                    break;

                case "Parry":
                    buffs.Parry += val;
                    break;

                default:
                    // misc buffs, not a special category, a particular skill
                    string key = toon + "/" + item;
                    key = key.Replace("|", "/");
                    key = key.Replace("//", "/");

                    while (key.EndsWith("/"))
                    {
                        key = key.Substring(0, key.Length - 1);
                    }

                    RecordBuff(key, val.ToString());
                    break;
                }
            }

            ComputeAdjustments();
        }
Exemple #2
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);
        }