private void ResetFighter(Fighter fighter, Random random, DatabaseContext context) { fighter.Level = 0; if (fighter.Configuration != null) { fighter.Configuration.AttunementId = null; } fighterLevelUpHandler.Up(fighter); var armorHead = equipmentGenerator.GenerateArmorHead(fighter.Level, ItemRarity.Basic, fighter.UserId); var armorShoulders = equipmentGenerator.GenerateArmorShoulders(fighter.Level, ItemRarity.Basic, fighter.UserId); var armorChest = equipmentGenerator.GenerateArmorChest(fighter.Level, ItemRarity.Basic, fighter.UserId); var armorHands = equipmentGenerator.GenerateArmorHands(fighter.Level, ItemRarity.Basic, fighter.UserId); var armorLegs = equipmentGenerator.GenerateArmorLegs(fighter.Level, ItemRarity.Basic, fighter.UserId); var armorShoes = equipmentGenerator.GenerateArmorShoes(fighter.Level, ItemRarity.Basic, fighter.UserId); var weaponType = EquipmentConstants.Weapons.Random(random); var weapon = equipmentGenerator.GenerateEquipment(weaponType, fighter.Level, ItemRarity.Basic, fighter.UserId); fighterOutfitter.Equip(fighter, armorHead, true); fighterOutfitter.Equip(fighter, armorShoulders, true); fighterOutfitter.Equip(fighter, armorChest, true); fighterOutfitter.Equip(fighter, armorHands, true); fighterOutfitter.Equip(fighter, armorLegs, true); fighterOutfitter.Equip(fighter, armorShoes, true); fighterOutfitter.Equip(fighter, weapon, true); context.AddRange(armorHead, armorShoulders, armorChest, armorHands, armorLegs, armorShoes, weapon); }
public override IEnumerable <Equipment> Claim(Reward reward) { var level = (reward.Level ?? 1).NearestBase(8); if (level == 0) { level = 1; } var head = equipmentGenerator.GenerateArmorHead(level, ItemRarity.Basic, reward.UserId); var shoulders = equipmentGenerator.GenerateArmorShoulders(level, ItemRarity.Basic, reward.UserId); var chest = equipmentGenerator.GenerateArmorChest(level, ItemRarity.Basic, reward.UserId); var hands = equipmentGenerator.GenerateArmorHands(level, ItemRarity.Basic, reward.UserId); var legs = equipmentGenerator.GenerateArmorLegs(level, ItemRarity.Basic, reward.UserId); var shoes = equipmentGenerator.GenerateArmorShoes(level, ItemRarity.Basic, reward.UserId); var greatsword = equipmentGenerator.GenerateWeaponGreatsword(level, ItemRarity.Basic, reward.UserId); var bow = equipmentGenerator.GenerateWeaponBow(level, ItemRarity.Basic, reward.UserId); var dagger = equipmentGenerator.GenerateWeaponDagger(level, ItemRarity.Basic, reward.UserId); var glaive = equipmentGenerator.GenerateWeaponGlaive(level, ItemRarity.Basic, reward.UserId); return(new Equipment[] { head, shoulders, chest, hands, legs, shoes, greatsword, bow, dagger, glaive, }); }
public async Task <ActionResult <FighterDto> > CreateFighter( [FromBody] FighterDto dto, [FromServices] IFighterLevelUpHandler fighterLevelUpHandler, [FromServices] IFighterOutfitter fighterOutfitter, [FromServices] IEquipmentGenerator equipmentGenerator) { var userId = User.Claims.GetUserId(); if (userId == null) { return(Forbid()); } var name = dto.Name; if (string.IsNullOrEmpty(name) || await Context.Fighters.AnyAsync(o => o.Name == name)) { return(BadRequest()); } if (await Context.Fighters.AnyAsync(o => o.UserId == userId)) { return(BadRequest()); } var fighter = new Fighter() { Name = name, UserId = userId.Value, Created = dateTimeProvider.Now, Equipment = new List <Equipment>(), }; fighterLevelUpHandler.Up(fighter); var armorHead = equipmentGenerator.GenerateArmorHead(fighter.Level, ItemRarity.Basic, userId.Value); var armorShoulders = equipmentGenerator.GenerateArmorShoulders(fighter.Level, ItemRarity.Basic, userId.Value); var armorChest = equipmentGenerator.GenerateArmorChest(fighter.Level, ItemRarity.Basic, userId.Value); var armorHands = equipmentGenerator.GenerateArmorHands(fighter.Level, ItemRarity.Basic, userId.Value); var armorLegs = equipmentGenerator.GenerateArmorLegs(fighter.Level, ItemRarity.Basic, userId.Value); var armorShoes = equipmentGenerator.GenerateArmorShoes(fighter.Level, ItemRarity.Basic, userId.Value); var weapon = equipmentGenerator.GenerateWeaponGreatsword(fighter.Level, ItemRarity.Basic, userId.Value); fighterOutfitter.Equip(fighter, armorHead, false); fighterOutfitter.Equip(fighter, armorShoulders, false); fighterOutfitter.Equip(fighter, armorChest, false); fighterOutfitter.Equip(fighter, armorHands, false); fighterOutfitter.Equip(fighter, armorLegs, false); fighterOutfitter.Equip(fighter, armorShoes, false); fighterOutfitter.Equip(fighter, weapon, false); Context.Fighters.Add(fighter); Context.Equipment.AddRange(armorHead, armorShoulders, armorChest, armorHands, armorLegs, armorShoes, weapon); await Context.SaveChangesAsync(); return(Mapper.Map <FighterDto>(fighter)); }