public void TestBuildItemEffect() { var ip = new ItemProvider(); var item = new Item() ; var effects = new ItemEffect[] { new ItemEffect() { Quality = 100 , Effects = new [] { new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 10}, new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 1} }}, new ItemEffect() { Quality = 80 , Effects = new [] { new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 8}, new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 2} }}, new ItemEffect() { Quality = 0 , Effects = new [] { new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 7}, new Effect() { Type = EFFECT_TYPE.ATTACK_ADD , Value = 3} }} }; item = ip.BuildItem(80, item, effects); Assert.AreEqual(EFFECT_TYPE.ATTACK_ADD , item.Effects[0].Type ); Assert.AreEqual(20, item.Effects[0].Value); }
public Item BuildItem(float quality, Item item, ItemEffect[] item_effects) { var effectss = from e in item_effects where quality >= e.Quality select e.Effects; List<Effect> effects = new List<Effect>(); foreach (var effectse in effectss) { effects.AddRange(effectse); } var groupEffects = from e in effects group e by e.Type; var resultEffect = from g in groupEffects select new Effect() { Type = g.Key, Value = g.Sum( q=> q.Value ) }; item.Effects = resultEffect.ToArray(); item.Life = _GetLife(item.Effects); return item; }
public Item BuildItem(float quality,string name , ItemEffect[] item_effects) { var item = CreateItem(name); return BuildItem(quality , item , item_effects); }