Example #1
0
        public int GetBonusAmount(DeliverySpell spell)
        {
            int index = _deliveries.IndexOf(spell);

            if (index < 0 || index > 1)
            {
                return(0);
            }

            return(_bonus[index]);
        }
Example #2
0
        private int GetScoreOf(DeliverySpell delivery)
        {
            int index      = _deliveries.IndexOf(delivery);
            int bonusScore = 0;

            if (index < 2)
            {
                if (_bonus[index] > 0)
                {
                    bonusScore = _bonusValue[index];
                }
            }

            return(delivery.GetScore() + bonusScore);
        }
Example #3
0
        private DeliveryCompletion DoDelivery(PlayerWitch p, DeliverySpell del)
        {
            if (!p.CanDeliver(del.Recipe))
            {
                throw new GameException("Not enough ingredients for order " + del.Id);
            }
            for (int i = 0; i < INGREDIENT_TYPE_COUNT; ++i)
            {
                p.Inventory.Add(i, del.Recipe.Delta[i]);
            }
            DeliveryCompletion delCompletion = new DeliveryCompletion(del, _deliveries.IndexOf(del), GetScoreOf(del));

            _delivered.Add(delCompletion);
            p.AddDelivery();
            p.AddScore(GetScoreOf(del));

            EventData e = new EventData();

            e.Type      = EventData.DELIVERY;
            e.PlayerIdx = p.Index;
            e.SpellId   = del.Id;
            _viewerEvents.Add(e);
            return(delCompletion);
        }
 public DeliveryCompletion(DeliverySpell delivery, int index, int earned)
 {
     _delivery = delivery;
     _index    = index;
     _earned   = earned;
 }