Beispiel #1
0
        public override bool Execute(Arguments arguments)
        {
            if (arguments.Count != 1 && arguments.Count != 5)
            {
                return(false);
            }

            var count = int.Parse(arguments["count"]);

            MediaLibrary.LoadSets();

            MagicSet starterSet;
            MagicSet boosterSet1;
            MagicSet boosterSet2;
            MagicSet boosterSet3;

            if (arguments.Count == 1)
            {
                starterSet  = MediaLibrary.RandomSet();
                boosterSet1 = MediaLibrary.RandomSet();
                boosterSet2 = MediaLibrary.RandomSet();
                boosterSet3 = MediaLibrary.RandomSet();
            }
            else
            {
                starterSet  = MediaLibrary.GetSet(arguments["s"]);
                boosterSet1 = MediaLibrary.GetSet(arguments["b1"]);
                boosterSet2 = MediaLibrary.GetSet(arguments["b2"]);
                boosterSet3 = MediaLibrary.GetSet(arguments["b3"]);
            }

            Console.WriteLine("Starter: {0}\nBooster1: {1}\nBooster2: {2}\nBooster3: {3}\n",
                              starterSet.Name, boosterSet1.Name, boosterSet2.Name, boosterSet3.Name);

            for (var i = 0; i < count; i++)
            {
                var starter  = starterSet.GenerateTournamentPack();
                var booster1 = boosterSet1.GenerateBoosterPack();
                var booster2 = boosterSet2.GenerateBoosterPack();
                var booster3 = boosterSet3.GenerateBoosterPack();

                var library = new List <CardInfo>();

                library.AddRange(starter);
                library.AddRange(booster1);
                library.AddRange(booster2);
                library.AddRange(booster3);

                var ratings = CardRatings.Merge(CardRatings.Merge(boosterSet2.Ratings, boosterSet3.Ratings),
                                                CardRatings.Merge(starterSet.Ratings, boosterSet1.Ratings));

                var deck = DeckBuilder.BuildDeck(library, ratings);
                deck.LimitedCode = MagicSet.GetLimitedCode(starterSet.Name,
                                                           new[] { boosterSet1.Name, boosterSet2.Name, boosterSet3.Name });

                File.WriteAllBytes(Guid.NewGuid() + ".dec", DeckFile.Write(deck));
            }

            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// Used to add bonuses specific to a fighter (e.g. influenced by a decision during gameplay).
        /// This will increase either one of MagicStrengthBonus's fields or MagicResistanceBonus's fields (if magic type is a simple element),
        /// or the basic MagicStrength/MagicResistance value if magicType "none" or "all" is specified
        /// </summary>
        /// <param name="magicStatType">Determines whther it's magic attack or magic resistance being boosted</param>
        /// <param name="magicType"></param>
        /// <param name="bonus"></param>
        /// <param name="isSecretStatBoost"></param>
        public void AddMagicBonus(MagicStatType magicStatType, MagicType magicType, int bonus, bool isSecretStatBoost = false)
        {
            if (magicType == MagicType.All || magicType == MagicType.None)
            {
                if (magicStatType == MagicStatType.Power)
                {
                    MagicStrength += bonus;
                }
                else
                {
                    MagicResistance += bonus;
                }
            }
            else
            {
                MagicSet <int> bonusesSet = magicStatType == MagicStatType.Power
                    ? MagicStrengthBonuses
                    : MagicResistanceBonuses;

                bonusesSet[magicType] += bonus;
            }

            MagicBonusAppliedEventArgs e = new MagicBonusAppliedEventArgs(magicStatType, magicType, bonus, isSecretStatBoost);

            OnMagicBonusApplied(e);
        }
Beispiel #3
0
        public void MagicSetGetsAppropriateDefaults_MagicRelationshipType()
        {
            var magicSet = new MagicSet <MagicRelationshipType>();

            IEnumerable <MagicType> magicTypes = EnumHelperMethods.GetAllValuesForEnum <MagicType>();

            foreach (MagicType magicType in magicTypes)
            {
                Assert.AreEqual(MagicRelationshipType.None, magicSet[magicType]);
            }
        }
Beispiel #4
0
        public static void LoadSets(Action <long> showProgress = null)
        {
            showProgress = showProgress ?? delegate { };

            LoadResources(Folders.Sets, r =>
            {
                var setName = Path.GetFileNameWithoutExtension(r.Name);
                var set     = new MagicSet(setName, Encoding.UTF8.GetString(r.Content));
                Sets[setName.ToLowerInvariant()] = set;
                showProgress(r.Content.Length);
            });
        }
Beispiel #5
0
        public async Task <List <MagicSet> > GetSets(MagicSet parameters)
        {
            var predicate = _dbContext.MagicSets.Where(x => true);

            if (!string.IsNullOrEmpty(parameters.SetCode))
            {
                predicate = predicate.Where(x => x.SetCode == parameters.SetCode);
            }
            if (!string.IsNullOrEmpty(parameters.SetName))
            {
                predicate = predicate.Where(x => x.SetName.ToLower().Contains(parameters.SetName.ToLower()));
            }


            return(await predicate.ToListAsync());
        }
Beispiel #6
0
        protected Fighter(string name
                          , int level
                          , int health
                          , int mana
                          , int strength
                          , int defense
                          , int speed
                          , int evade
                          , int luck
                          , List <Spell> spells            = null
                          , List <BattleMove> specialMoves = null)
        {
            BaseName      = name;
            AppendText    = "";
            Level         = level;
            MaxHealth     = health;
            CurrentHealth = health;
            MaxMana       = mana;
            CurrentMana   = mana;
            Strength      = strength;
            Defense       = defense;
            Speed         = speed;
            Evade         = evade;
            Luck          = luck;

            MagicStrength = 1;

            Spells       = spells ?? new List <Spell>();
            SpecialMoves = specialMoves ?? new List <BattleMove>();

            MagicAffinities = new MagicSet <FighterMagicRelationshipType>();

            MagicStrengthBonuses   = new MagicSet <int>();
            MagicResistanceBonuses = new MagicSet <int>();

            StatusManager = new StatusManager();
            TurnEnded    += StatusManager.TurnEnded;
            RoundEnded   += StatusManager.RoundEnded;
        }
Beispiel #7
0
        public static void LoadSets(Action<long> showProgress = null)
        {
            showProgress = showProgress ?? delegate { };

              LoadResources(Folders.Sets, r =>
            {
              var setName = Path.GetFileNameWithoutExtension(r.Name);
              var set = new MagicSet(setName, Encoding.UTF8.GetString(r.Content));
              Sets[setName.ToLowerInvariant()] = set;
              showProgress(r.Content.Length);
            });
        }