private void SpellCheck_Click(object sender, RoutedEventArgs e)
        {
            List <Spell> newsp = XmlListLoader <Spell> .Load("spells.xml");

            Dictionary <String, List <Spell> > spells = new Dictionary <string, List <Spell> >();



            foreach (Spell sp in newsp)
            {
                if (spells.ContainsKey(sp.Name))
                {
                }
                else
                {
                    spells[sp.Name] = new List <Spell>();
                }
                spells[sp.Name].Add(sp);
            }

            foreach (List <Spell> spl in from sl in spells.Values where sl.Count > 1 select sl)
            {
                System.Diagnostics.Debug.Write(spl[0].Name);
                foreach (Spell sp in spl)
                {
                    System.Diagnostics.Debug.Write(" / " + sp.source);
                }
                System.Diagnostics.Debug.WriteLine("");
            }
        }
        static void SaveColors()
        {
            List <ColorListEntry> cle = new List <ColorListEntry>();

            foreach (var kv in recentColors)
            {
                ColorListEntry cl = new ColorListEntry();
                cl.Name   = kv.Key;
                cl.Colors = kv.Value;
                cle.Add(cl);
            }
            XmlListLoader <ColorListEntry> .Save(cle, "FavoriteColors.xml", true);
        }
        private ColorSchemeManager()
        {
            defaultSchemes = XmlListLoader <ColorScheme> .Load("DefaultColorSchemes.xml");

            colorSchemes = new List <ColorScheme>();
            colorSchemes.AddRange(defaultSchemes);

            schemeDictionary = new Dictionary <int, ColorScheme>();
            foreach (var v in colorSchemes)
            {
                schemeDictionary[v.ID] = v;
            }
        }
        static void LoadColors()
        {
            recentColors = new Dictionary <string, List <uint> >();

            var cle = XmlListLoader <ColorListEntry> .Load("FavoriteColors.xml", true);

            if (cle != null)
            {
                foreach (var cl in cle)
                {
                    recentColors[cl.Name] = cl.Colors;
                }
            }
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            foreach (Spell spell in Spell.Spells)
            {
                spell.PotionWeight       = NullValue(spell.PotionWeight);
                spell.ArcaneScrollWeight = NullValue(spell.ArcaneScrollWeight);
                spell.DivineScrollWeight = NullValue(spell.DivineScrollWeight);
                spell.WandWeight         = NullValue(spell.WandWeight);
            }

            List <Spell> list = new List <Spell>(Spell.Spells);

            XmlListLoader <Spell> .Save(list, "Spells.xml");
        }
        private void button3_Click(object sender, RoutedEventArgs e)
        {
            List <WeaponSpecialAbility> wsList = XmlListLoader <WeaponSpecialAbility> .Load("WeaponSpecialAbility.xml");

            foreach (WeaponSpecialAbility ws in wsList)
            {
                ws.Minor        = FixChartNum(ws.Minor);
                ws.Medium       = FixChartNum(ws.Medium);
                ws.Major        = FixChartNum(ws.Major);
                ws.RangedMinor  = FixChartNum(ws.RangedMinor);
                ws.RangedMedium = FixChartNum(ws.RangedMedium);
                ws.RangedMajor  = FixChartNum(ws.RangedMajor);
            }

            XmlListLoader <WeaponSpecialAbility> .Save(wsList, "WeaponSpecialAbility2.xml");
        }
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            List <SpecificItemChart> chartList = XmlListLoader <SpecificItemChart> .Load("APGItemChart.xml");

            foreach (SpecificItemChart chart in chartList)
            {
                chart.Major  = FixChartNum(chart.Major, chart.Type);
                chart.Medium = FixChartNum(chart.Medium, chart.Type);
                chart.Minor  = FixChartNum(chart.Minor, chart.Type);


                chart.Name = FixChartTextItem(chart.Name);
                chart.Cost = FixChartTextItem(chart.Cost);
            }
            XmlListLoader <SpecificItemChart> .Save(chartList, "APGItemChartOut.xml");
        }
        void SavePressed(LinearLayout cl, bool monsters)
        {
            FileDialog.CheckFilePermission(Activity, () =>
            {
                FileDialog fd      = new FileDialog(cl.Context, _Extensions, false);
                fd.DialogComplete += (object s, FileDialog.FileDialogEventArgs ea) =>
                {
                    string name = ea.Filename;
                    if (!name.EndsWith(".cmpt", StringComparison.CurrentCultureIgnoreCase))
                    {
                        name = name + ".cmpt";
                    }
                    string fullname = Path.Combine(fd.Folder, name);

                    XmlListLoader <Character> .Save(new List <Character>(_CombatState.Characters.Where((a) => a.IsMonster == monsters)), fullname);
                };
                fd.Show();
            });
        }
        private void SpellWeightRunButton_Click(object sender, RoutedEventArgs e)
        {
            List <WeightValue> weights = XmlListLoader <WeightValue> .Load("Weight.xml");

            foreach (WeightValue w in weights)
            {
                //find spell
                Spell spell = Spell.Spells.FirstOrDefault(a => String.Compare(a.name, w.Name, true) == 0);

                if (spell == null)
                {
                    System.Diagnostics.Debug.WriteLine(w.Name + " " + w.Type + " Level " + w.Level);
                }
                else
                {
                    if (w.Type == "Potion")
                    {
                        spell.PotionCost   = w.Price;
                        spell.PotionLevel  = w.Level;
                        spell.PotionWeight = w.Weight;
                    }
                    else if (w.Type == "Wand")
                    {
                        spell.WandCost   = w.Price;
                        spell.WandLevel  = w.Level;
                        spell.WandWeight = w.Weight;
                    }
                    else if (w.Type == "Divine")
                    {
                        spell.DivineScrollCost   = w.Price;
                        spell.DivineScrollLevel  = w.Level;
                        spell.DivineScrollWeight = w.Weight;
                    }
                    else if (w.Type == "Arcane")
                    {
                        spell.ArcaneScrollCost   = w.Price;
                        spell.ArcaneScrollLevel  = w.Level;
                        spell.ArcaneScrollWeight = w.Weight;
                    }
                }
            }
        }
        void LoadPressed(LinearLayout cl, bool monsters)
        {
            FileDialog.CheckFilePermission(Activity, () =>
            {
                FileDialog fd = new FileDialog(cl.Context, _Extensions, true);
                fd.Show();

                fd.DialogComplete += (object s, FileDialog.FileDialogEventArgs ea) =>
                {
                    string name     = ea.Filename;
                    string fullname = Path.Combine(fd.Folder, name);

                    FileInfo file = new FileInfo(fullname);

                    if (String.Compare(".por", file.Extension, true) == 0 || String.Compare(".rpgrp", file.Extension, true) == 0)
                    {
                        List <Monster> importmonsters = Monster.FromFile(fullname);

                        if (importmonsters != null)
                        {
                            foreach (Monster m in importmonsters)
                            {
                                Character ch = new Character(m, false);
                                ch.IsMonster = monsters;
                                _CombatState.AddCharacter(ch);
                            }
                        }
                    }
                    else
                    {
                        List <Character> l = XmlListLoader <Character> .Load(fullname);
                        foreach (var c in l)
                        {
                            c.IsMonster = monsters;
                            _CombatState.AddCharacter(c);
                        }
                    }
                };
            });
        }
Example #11
0
        private void AddCharacterList(LayoutInflater inflater, ViewGroup container, View v, int id, bool monsters)
        {
            LinearLayout cl = (LinearLayout)inflater.Inflate(Resource.Layout.CharacterList, container, false);

            cl.LayoutParameters = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent, 1f);

            ListView lv = cl.FindViewById <ListView>(Resource.Id.characterList);

            lv.Adapter       = (new CharacterListAdapter(_CombatState, monsters));
            lv.ItemSelected += (sender, e) => {
                Character c = ((BaseAdapter <Character>)lv.Adapter)[e.Position];
                ShowCharacter(v, c);
            };
            lv.ItemClick += (sender, e) => {
                Character c = ((BaseAdapter <Character>)lv.Adapter)[e.Position];
                ShowCharacter(v, c);
            };
            if (!monsters)
            {
                _PlayerList = lv;
            }
            else
            {
                _MonsterList = lv;
            }

            lv.SetOnDragListener(new ListOnDragListener(monsters, v));

            cl.FindViewById <ImageButton>(Resource.Id.blankButton).Click +=
                (object sender, EventArgs e) =>
            {
                _CombatState.AddBlank(monsters);
            };


            cl.FindViewById <ImageButton>(Resource.Id.monsterButton).Click +=
                (object sender, EventArgs e) =>
            {
                MonsterPickerDialog dl = new MonsterPickerDialog(v.Context, monsters, _CombatState);
                dl.Show();
            };

            cl.FindViewById <ImageButton>(Resource.Id.loadButton).Click +=
                (object sender, EventArgs e) =>
            {
                FileDialog fd = new FileDialog(cl.Context, _Extensions, true);
                fd.Show();

                fd.DialogComplete += (object s, FileDialog.FileDialogEventArgs ea) =>
                {
                    string name     = ea.Filename;
                    string fullname = Path.Combine(fd.Folder, name);

                    FileInfo file = new FileInfo(fullname);

                    if (String.Compare(".por", file.Extension, true) == 0 || String.Compare(".rpgrp", file.Extension, true) == 0)
                    {
                        List <Monster> importmonsters = Monster.FromFile(fullname);

                        if (importmonsters != null)
                        {
                            foreach (Monster m in importmonsters)
                            {
                                Character ch = new Character(m, false);
                                ch.IsMonster = monsters;
                                _CombatState.AddCharacter(ch);
                            }
                        }
                    }
                    else
                    {
                        List <Character> l = XmlListLoader <Character> .Load(fullname);

                        foreach (var c in l)
                        {
                            c.IsMonster = monsters;
                            _CombatState.AddCharacter(c);
                        }
                    }
                };
            };

            cl.FindViewById <ImageButton>(Resource.Id.saveButton).Click +=
                (object sender, EventArgs e) =>
            {
                FileDialog fd = new FileDialog(v.Context, _Extensions, false);
                fd.DialogComplete += (object s, FileDialog.FileDialogEventArgs ea) =>
                {
                    string name = ea.Filename;
                    if (!name.EndsWith(".cmpt", StringComparison.CurrentCultureIgnoreCase))
                    {
                        name = name + ".cmpt";
                    }
                    string fullname = Path.Combine(fd.Folder, name);

                    XmlListLoader <Character> .Save(new List <Character>(_CombatState.Characters.Where((a) => a.IsMonster == monsters)), fullname);
                };
                fd.Show();
            };

            cl.FindViewById <Button>(Resource.Id.clearButton).Click +=
                (object sender, EventArgs e) =>
            {
                AlertDialog.Builder bui = new AlertDialog.Builder(v.Context);
                bui.SetMessage("Clear " + (monsters?"Monsters":"Players") + " List?");
                bui.SetPositiveButton("OK", (a, x) => {
                    List <Character> removeList = new List <Character>(from c in _CombatState.Characters where c.IsMonster == monsters select c);
                    foreach (Character c in removeList)
                    {
                        _CombatState.RemoveCharacter(c);
                    }
                });
                bui.SetNegativeButton("Cancel", (a, x) => {});
                bui.Show();
            };

            if (monsters)
            {
                _XPText = cl.FindViewById <TextView>(Resource.Id.xpText);
                ReloadXPText();
            }



            v.FindViewById <LinearLayout>(id).AddView(cl);
        }
        private void button2_Click_1(object sender, RoutedEventArgs e)
        {
            Feat.LoadFeats();

            StreamReader str = new StreamReader("NewFeat.txt");

            String bigText = str.ReadToEnd();

            List <Feat> feats = new List <Feat>();

            bigText = Regex.Replace(bigText, "(\\<a href[^\\>]+>)|(\\</a\\>)|\\</?i\\>", delegate(Match asd)
            {
                return("");
            });

            bigText = Regex.Replace(bigText, " ?\\<br/\\>", "\r\n");
            bigText = Regex.Replace(bigText, "&ndash;", "-");


            Regex x = new Regex("\\<h2 id\\=\"[-\\p{L}0-9()]+\"\\>(?<name>[-\\p{L} '0-9]+)( \\((?<type>[^)]+)\\))?\\</h2\\>[ \\t\\r\\n]*" +
                                "\\<p\\>(?<short>([^\\<]|\\</?i\\>)+)\\</p\\>[ \\t\\r\\n]*" +
                                "(\\<p\\>\\<b\\>Prerequisites?\\</b\\>: (?<prereq>[^\\<]+)\\</p\\>[ \\t\\r\\n]*)?" +
                                "(\\<p\\>\\<b\\>Benefits?\\</b\\>: (?<benefit>[^\\<]+)\\</p\\>[ \\t\\r\\n]*)?" +
                                "(?<beneextra>(\\<p\\>([^\\<]|\\</?i\\>)+\\</p\\>[ \\t\\r\\n]*)+)?" +
                                "(\\<p\\>\\<b\\>Special\\</b\\>: (?<special>[^\\<]+)\\</p\\>[ \\t\\r\\n]*)?" +
                                "(\\<p id=\"normal\"\\>\\<b\\>Normal\\</b\\>: (?<normal>[^\\<]+)\\</p\\>[ \\t\\r\\n]*)?" +
                                "(\\<p id=\"note\"\\>\\<b\\>Note\\</b\\>: (?<note>[^\\<]+)\\</p\\>[ \\t\\r\\n]*)?" +

                                "");

            Match m = x.Match(bigText);

            int count     = 0;
            int prereq    = 0;
            int bene      = 0;
            int beneextra = 0;
            int special   = 0;
            int normal    = 0;
            int note      = 0;

            while (m.Success)
            {
                count++;
                if (m.Groups["prereq"].Success)
                {
                    prereq++;
                }
                if (m.Groups["benefit"].Success)
                {
                    bene++;
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine(m.Groups["name"]);
                }
                if (m.Groups["beneextra"].Success)
                {
                    beneextra++;
                }
                if (m.Groups["special"].Success)
                {
                    special++;
                }
                if (m.Groups["normal"].Success)
                {
                    normal++;
                }
                if (m.Groups["note"].Success)
                {
                    note++;
                }


                Feat f = new Feat();
                f.Name    = m.Value("name");
                f.Summary = m.Value("short");

                string benefitText = m.Value("benefit").Trim();

                if (m.GroupSuccess("beneextra"))
                {
                    string bx = m.Value("beneextra");
                    bx           = Regex.Replace(bx, "\\<p\\>", "\r\n");
                    bx           = Regex.Replace(bx, "\t|\\</p\\>", "");
                    benefitText += bx;
                }
                if (m.GroupSuccess("note"))
                {
                    benefitText += "\r\nNote: " + m.Value("note");
                }

                benefitText = Regex.Replace(benefitText, "(            )|(\\t)", "");
                benefitText = benefitText.Trim(new char[] { '\r', '\n', ' ', '\t' });

                benefitText = Regex.Replace(benefitText, "(\\r\\n)*\\r\\n", "\r\n\r\n");

                f.Benefit        = benefitText;
                f.Normal         = m.Value("normal");
                f.Special        = m.Value("special");
                f.Prerequistites = m.Value("prereq");

                if (m.GroupSuccess("type"))
                {
                    f.Type = m.Value("type");
                }
                else
                {
                    f.Type = "General";
                }

                f.Source = "APG";

                string name = m.Groups["name"].Value;
                if (!Feat.FeatMap.ContainsKey(name))
                {
                    System.Diagnostics.Debug.WriteLine(name);
                    feats.Add(f);
                }



                m = m.NextMatch();
            }



            XmlListLoader <Feat> .Save(feats, "NewFeats.xml");

            MessageBox.Show(count.ToString() + "\r\npre: " + prereq
                            + "\r\nbene: " + bene

                            + "\r\nextra: " + beneextra
                            + "\r\nspecial: " + special
                            + "\r\nnormal: " + normal
                            + "\r\nnote: " + note);
        }