public bool IsSuccess(IEnhancable enhancable) { if (enhancable == null) { throw new ArgumentNullException(nameof(enhancable)); } return(!GetFailChance(enhancable.Enhancement).Chance()); }
private int GetSalvageValue(IEnhancable enhancable) { if (enhancable.Rarity == Enums.Equipment.ItemRarity.Basic) { return(0); } return((int)enhancable.Rarity * BaseValue); }
public int GetCost(IEnhancable enhancable, int desiredEnhancement) { if (desiredEnhancement <= enhancable.Enhancement) { return(0); } int gausssum = desiredEnhancement.GaussSum(); return(gausssum * RequiredParticles); }
public void Enhance(IEnhancable enhancable, IEnumerable <Item> particles, int desiredEnhancement) { if (desiredEnhancement <= enhancable.Enhancement) { return; } int cost = GetCost(enhancable, desiredEnhancement); if (particles.Where(o => o.ItemId == EmpoweredParticle.Id).Count() != cost) { throw new InsufficientEmpoweredParticlesException(); } enhancable.Enhancement = desiredEnhancement; if (enhancable.GetType() == typeof(Equipment)) { equipmentGenerator.AdjustStats((Equipment)enhancable); } }
public void Enhance(IEnhancable enhancable, IEnumerable <Item> particles) { if (particles.Where(o => o.ItemId == EmpoweredParticle.Id).Count() != ParticlesCost) { throw new InsufficientEmpoweredParticlesException(); } var success = enhancementProbability.IsSuccess(enhancable); if (success) { enhancable.Enhancement += 1; } else { enhancable.Enhancement = 0; } if (enhancable.GetType() == typeof(Equipment)) { equipmentGenerator.AdjustStats((Equipment)enhancable); } }
public IEnumerable <Item> Salvage(IEnhancable enhancable, long userId) { var value = GetSalvageValue(enhancable); for (int i = 0; i < value; i++) { yield return(new Item() { ItemId = EmpoweredParticle.Id, Rarity = Enums.Equipment.ItemRarity.Basic, UserId = userId, }); } if (enhancable.Rarity != Enums.Equipment.ItemRarity.Basic && 33F.Chance()) { yield return(new Item() { ItemId = EquipmentToken.Get(enhancable.Rarity), Rarity = enhancable.Rarity, UserId = userId, }); } }
public int GetCost(IEnhancable enhancable, int desiredEnhancement) { return(RequiredParticles); }
public void Enhance(IEnhancable enhancable, IEnumerable <Item> particles, int desiredEnhancement) { return; }
public void Enhance(IEnhancable enhancable, IEnumerable <Item> particles) { return; }