string slot_info(EncounterTemplateSlot slot)
        {
            int    level = fData.PartyLevel + slot.LevelAdjustment;
            string flag  = (slot.Flag != RoleFlag.Standard) ? " " + slot.Flag : "";

            string roles = "";

            foreach (RoleType role in slot.Roles)
            {
                if (roles != "")
                {
                    roles += " / ";
                }

                roles += role.ToString().ToLower();
            }
            if (roles == "")
            {
                roles = "any role";
            }
            if (slot.Minions)
            {
                roles += ", minion";
            }

            string count = "";

            if (slot.Count != 1)
            {
                count = " (x" + slot.Count + ")";
            }

            return("Level " + level + flag + " " + roles + count);
        }
Esempio n. 2
0
        private string slot_info(EncounterTemplateSlot slot)
        {
            int    partyLevel = this.fData.PartyLevel + slot.LevelAdjustment;
            string str        = (slot.Flag != RoleFlag.Standard ? string.Concat(" ", slot.Flag) : "");
            string str1       = "";

            foreach (RoleType role in slot.Roles)
            {
                if (str1 != "")
                {
                    str1 = string.Concat(str1, " / ");
                }
                str1 = string.Concat(str1, role.ToString().ToLower());
            }
            if (str1 == "")
            {
                str1 = "any role";
            }
            if (slot.Minions)
            {
                str1 = string.Concat(str1, ", minion");
            }
            string str2 = "";

            if (slot.Count != 1)
            {
                str2 = string.Concat(" (x", slot.Count, ")");
            }
            object[] objArray = new object[] { "Level ", partyLevel, str, " ", str1, str2 };
            return(string.Concat(objArray));
        }
 public CreatureSelectForm(EncounterTemplateSlot slot, int level)
 {
     this.InitializeComponent();
     Application.Idle  += new EventHandler(this.Application_Idle);
     this.fTemplateSlot = slot;
     this.fLevel        = level;
     this.update_list();
     this.Browser.DocumentText = "";
     this.CreatureList_SelectedIndexChanged(null, null);
 }
Esempio n. 4
0
        public static List <EncounterCard> FindCreatures(EncounterTemplateSlot slot, int party_level, string query)
        {
            int partyLevel = party_level + slot.LevelAdjustment;

            EncounterBuilder.build_creature_list(partyLevel, partyLevel, null, null, true);
            List <EncounterCard> encounterCards = new List <EncounterCard>();

            foreach (EncounterCard fCreature in EncounterBuilder.fCreatures)
            {
                if (!slot.Match(fCreature, party_level) || !EncounterBuilder.match(fCreature, query))
                {
                    continue;
                }
                encounterCards.Add(fCreature);
            }
            return(encounterCards);
        }
Esempio n. 5
0
        public static List <EncounterCard> FindCreatures(EncounterTemplateSlot slot, int party_level, string query)
        {
            int creature_level = party_level + slot.LevelAdjustment;

            build_creature_list(creature_level, creature_level, null, null, true);

            List <EncounterCard> cards = new List <EncounterCard>();

            foreach (EncounterCard card in fCreatures)
            {
                if (slot.Match(card, party_level) && match(card, query))
                {
                    cards.Add(card);
                }
            }

            return(cards);
        }
Esempio n. 6
0
        public static List <Pair <EncounterTemplateGroup, EncounterTemplate> > FindTemplates(Encounter enc, int level, bool include_individual)
        {
            build_template_list("", Difficulty.Random, level, include_individual);

            List <Pair <EncounterTemplateGroup, EncounterTemplate> > templates = new List <Pair <EncounterTemplateGroup, EncounterTemplate> >();

            foreach (EncounterTemplateGroup group in fTemplateGroups)
            {
                foreach (EncounterTemplate template in group.Templates)
                {
                    EncounterTemplate tmpl = template.Copy();

                    // Does this template fit what we've already got?
                    bool match = true;
                    foreach (EncounterSlot enc_slot in enc.Slots)
                    {
                        EncounterTemplateSlot template_slot = tmpl.FindSlot(enc_slot, level);

                        if (template_slot != null)
                        {
                            template_slot.Count -= enc_slot.CombatData.Count;
                            if (template_slot.Count <= 0)
                            {
                                tmpl.Slots.Remove(template_slot);
                            }
                        }
                        else
                        {
                            match = false;
                            break;
                        }
                    }
                    if (!match)
                    {
                        continue;
                    }

                    // Make sure there's at least one possible creature for each remaining slot
                    bool has_creatures = true;
                    foreach (EncounterTemplateSlot ets in tmpl.Slots)
                    {
                        bool found_creature = false;

                        int creature_level = level + ets.LevelAdjustment;
                        build_creature_list(creature_level, creature_level, null, null, true);
                        foreach (EncounterCard card in fCreatures)
                        {
                            if (ets.Match(card, level))
                            {
                                found_creature = true;
                                break;
                            }
                        }

                        if (!found_creature)
                        {
                            has_creatures = false;
                            break;
                        }
                    }
                    if (!has_creatures)
                    {
                        continue;
                    }

                    templates.Add(new Pair <EncounterTemplateGroup, EncounterTemplate>(group, tmpl));
                }
            }

            return(templates);
        }
Esempio n. 7
0
        public static List <Pair <EncounterTemplateGroup, EncounterTemplate> > FindTemplates(Encounter enc, int level, bool include_individual)
        {
            EncounterBuilder.build_template_list("", Difficulty.Random, level, include_individual);
            List <Pair <EncounterTemplateGroup, EncounterTemplate> > pairs = new List <Pair <EncounterTemplateGroup, EncounterTemplate> >();

            foreach (EncounterTemplateGroup fTemplateGroup in EncounterBuilder.fTemplateGroups)
            {
                foreach (EncounterTemplate template in fTemplateGroup.Templates)
                {
                    EncounterTemplate encounterTemplate = template.Copy();
                    bool flag = true;
                    foreach (EncounterSlot slot in enc.Slots)
                    {
                        EncounterTemplateSlot encounterTemplateSlot = encounterTemplate.FindSlot(slot, level);
                        if (encounterTemplateSlot == null)
                        {
                            flag = false;
                            break;
                        }
                        else
                        {
                            EncounterTemplateSlot count = encounterTemplateSlot;
                            count.Count = count.Count - slot.CombatData.Count;
                            if (encounterTemplateSlot.Count > 0)
                            {
                                continue;
                            }
                            encounterTemplate.Slots.Remove(encounterTemplateSlot);
                        }
                    }
                    if (!flag)
                    {
                        continue;
                    }
                    bool flag1 = true;
                    foreach (EncounterTemplateSlot slot1 in encounterTemplate.Slots)
                    {
                        bool flag2 = false;
                        int  num   = level + slot1.LevelAdjustment;
                        EncounterBuilder.build_creature_list(num, num, null, null, true);
                        foreach (EncounterCard fCreature in EncounterBuilder.fCreatures)
                        {
                            if (!slot1.Match(fCreature, level))
                            {
                                continue;
                            }
                            flag2 = true;
                            break;
                        }
                        if (flag2)
                        {
                            continue;
                        }
                        flag1 = false;
                        break;
                    }
                    if (!flag1)
                    {
                        continue;
                    }
                    pairs.Add(new Pair <EncounterTemplateGroup, EncounterTemplate>(fTemplateGroup, encounterTemplate));
                }
            }
            return(pairs);
        }