Пример #1
0
        void IBootable.Launch()
        {
            var provider = new ItemProvider();
            _Actor.Bag.Add(provider.BuildItem(1 , "AidKit1" , new [] {new ItemEffect()
            {
                Effects = new []{ new Effect() { Type =  EFFECT_TYPE.AID , Value = 10 } },
                Quality = 0.5f
            } }));

            _Actor.Bag.Add(provider.BuildItem(1, "Axe1", new[] {new ItemEffect()
            {
                Effects = new []{ new Effect() { Type =  EFFECT_TYPE.ATTACK_ADD , Value = 1 } },
                Quality = 0.5f
            } }));
            _ToGame(_Map);
        }
Пример #2
0
        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);
        }
Пример #3
0
        private void _Create(ItemFormula key, int[] amounts)
        {
            var quality = ItemProvider.GetQuality(key, amounts);

            var itemProvider = new ItemProvider();
            var item         = itemProvider.BuildItem(quality, key.Item, key.Effects);

            _Player.Bag.Add(item);
        }
Пример #4
0
        void IBootable.Launch()
        {
            var provider = new ItemProvider();

            _Actor.Bag.Add(provider.BuildItem(1, "AidKit", new [] { new ItemEffect()
                                                                    {
                                                                        Effects = new [] { new Effect()
                                                                                           {
                                                                                               Type = EFFECT_TYPE.AID, Value = 10
                                                                                           } },
                                                                        Quality = 0.5f
                                                                    } }));

            _Actor.Bag.Add(provider.BuildItem(1, "Axe", new[] { new ItemEffect()
                                                                {
                                                                    Effects = new [] { new Effect()
                                                                                       {
                                                                                           Type = EFFECT_TYPE.ATTACK_ADD, Value = 1
                                                                                       } },
                                                                    Quality = 0.5f
                                                                } }));
            _ToGame(_Map);
        }
Пример #5
0
        void IDevelopActor.MakeItem(string name, float quality)
        {
            var formulas = Resource.Instance.Formulas;
            var formula  = (from f in formulas where f.Id == name select f).FirstOrDefault();

            if (formula == null)
            {
                return;
            }

            var ip   = new ItemProvider();
            var item = ip.BuildItem(quality, formula.Item, formula.Effects);

            Bag.Add(item);
        }
Пример #6
0
        private void _Create(ItemFormula key, int[] amounts)
        {
            var items = key.NeedItems;

            var total1      = items.Sum(i => i.Max);
            var itemScales1 = (from i in items
                               select new
            {
                Item = i,
                Value = i.Max,
                Scale = i.Max / (float)total1
            }).ToArray();

            var total2      = amounts.Sum();
            var itemScales2 = (from i in amounts
                               select new
            {
                Value = i,
                Scale = i / (float)total2
            }).ToArray();

            var maxScale = 0.0f;

            for (int i = 0; i < itemScales2.Length && i < itemScales1.Length; i++)
            {
                var scale1 = itemScales1[i].Scale;
                var scale2 = itemScales2[i].Scale;
                var ms     = scale2 / scale1;
                if (ms > maxScale)
                {
                    maxScale = ms;
                }
            }


            var quality = 0.0f;

            for (int i = 0; i < itemScales2.Length && i < itemScales1.Length; i++)
            {
                quality += itemScales1[i].Scale * (itemScales2[i].Scale / itemScales1[i].Scale / maxScale);
            }

            var itemProvider = new ItemProvider();
            var item         = itemProvider.BuildItem(quality, key.Item, key.Effects);

            _Player.Bag.Add(item);
        }
Пример #7
0
        void IDevelopActor.MakeItem(string name, float quality)
        {
            var formulas = Resource.Instance.Formulas;
            var formula = (from f in formulas where f.Id == name select f).FirstOrDefault();
            if (formula == null)
                return;

            var ip = new ItemProvider();
            var item = ip.BuildItem(quality, formula.Item, formula.Effects);

            Bag.Add(item);
        }