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); }
/// <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); }
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]); } }
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); }); }
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()); }
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; }
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); }); }