Exemplo n.º 1
0
        public void acquire_potion(Potion pt)
        {
            //search for a potion stack with a matching ID + fullness value and add to that stack.
            //If there isn't one, just add it to the inventory.
            bool stacked = false;

            for (int i = 0; i < inventory.Count; i++)
            {
                if (inventory[i] is Potion)
                {
                    Potion po = (Potion)inventory[i];
                    if (po.get_potion_code() == pt.get_potion_code() &&
                        po.is_potion_empty() == pt.is_potion_empty() &&
                        po.get_my_quantity() < 7)
                    {
                        po.adjust_quantity(pt.get_my_quantity());
                        stacked = true;
                    }
                }
            }

            if (!stacked)
            {
                int potion_type_id = -1;

                for (int i = 0; i < reserved_potion_ids.Count; i++)
                    if (reserved_potion_ids[i].Item1 == pt.get_potion_code())
                        potion_type_id = reserved_potion_ids[i].Item2;

                pt.set_ID_number(potion_type_id);

                inventory.Add(pt);
            }
        }