示例#1
0
        static PlayerTable()
        {
            _table.Add("fc01", new Player()
            {
                Name      = "トゥリープFC会員01番",
                Name_e    = "Trepe Groupie #1",
                Rares     = new[] { CardTable.FindIdByName("Quistis") },
                RareLimit = 30,
                Levels    = new[] { 2, 5 },
            });

            _table.Add("fc02", new Player()
            {
                Name      = "トゥリープFC会員02番",
                Name_e    = "Trepe Groupie #2",
                Rares     = new[] { CardTable.FindIdByName("Quistis") },
                RareLimit = 20,
                Levels    = new[] { 1, 3, 5 },
            });

            _table.Add("fc03", new Player()
            {
                Name      = "トゥリープFC会員03番",
                Name_e    = "Trepe Groupie #3",
                Rares     = new[] { CardTable.FindIdByName("Quistis") },
                RareLimit = 10,
                Levels    = new[] { 1, 2, 4, 5 },
            });

            _table.Add("zellmama", new Player()
            {
                Name      = "ゼルママ",
                Name_e    = "Ma Dincht",
                Rares     = new[] { CardTable.FindIdByName("Zell") },
                RareLimit = 10,
                Levels    = new[] { 1, 2, 4, 5 },
            });

            _table.Add("running_boy1", new Player()
            {
                Name      = "走る少年(DISC 1)",
                Name_e    = "Running Boy (DISC 1)",
                Rares     = new[] { CardTable.FindIdByName("MiniMog") },
                RareLimit = 20,
                Levels    = new[] { 1, 2, 3 },
            });

            _table.Add("watts", new Player()
            {
                Name      = "ワッツ",
                Name_e    = "Watts",
                Rares     = new[] { CardTable.FindIdByName("Angelo") },
                RareLimit = 30,
                Levels    = new[] { 1, 4 },
            });
        }
示例#2
0
        static Situation OpeningSituation(uint state, Player player, bool noRare = false)
        {
            const int DECK_MAX = 5;

            var rng  = new CardRng(state);
            var deck = new List <int>();

            if (!noRare)
            {
                foreach (var rareId in player.Rares)
                {
                    var limit = deck.Count == 0 ? player.RareLimit : player.RareLimit / 2;

                    if (rng.Next() % 100 < limit)
                    {
                        deck.Add(rareId);
                    }

                    if (deck.Count >= DECK_MAX)
                    {
                        break;
                    }
                }
            }

            var pupuId = CardTable.FindIdByName("PuPu");

            while (deck.Count < DECK_MAX)
            {
                var lv     = player.Levels[rng.Next() % player.Levels.Length];
                var row    = rng.Next() % 11;
                var cardId = (lv - 1) * 11 + (int)row;

                if (cardId == pupuId || deck.Contains(cardId))
                {
                    continue;
                }

                deck.Add(cardId);
            }

            var initiative = (rng.Next() & 1) != 0;

            return(new Situation()
            {
                Deck = deck,
                Initiative = initiative,
                FirstState = state,
                LastState = rng.State,
            });
        }