示例#1
0
        public void TestNoContentInEmptySlots()
        {
            EmptySlots sut = new EmptySlots(new FakeEmptyContentHistory());

            Assert.IsFalse(sut.SlotContentIsInCategory(SlotContent.Player));
            Assert.IsFalse(sut.SlotContentIsInCategory(SlotContent.Bot));
            Assert.IsTrue(sut.SlotContentIsInCategory(SlotContent.Empty));
        }
示例#2
0
 public SlotManager(ISlotContentHistory history)
 {
     Bots    = new BotSlots(history);
     All     = new AllSlots(history);
     Filled  = new FilledSlots(history);
     Empty   = new EmptySlots(history);
     Players = new PlayerSlots(history);
 }
示例#3
0
        public void Step(KeyValuePair <int, int> step)
        {
            Table[step.Key, step.Value] = Turn;

            EmptySlots.Remove(step);
            CheckForWinner(step);
            SetLimits(step);
            Turn = -Turn;
        }
示例#4
0
    private void StoreItem(CarryItem item)
    {
        var slot = EmptySlots.FirstOrDefault();

        if (slot == null)
        {
            return;
        }
        item.transform.position = slot.transform.position;
        item.transform.parent   = slot.transform;
    }
示例#5
0
    public override void TriggerEvent(GameObject obj)
    {
        var ci   = obj.GetComponent <CarriesItem>();
        var item = ci.TakeItem();

        if (item.ItemType == ItemType.Delivery)
        {
            int numItemsInDelivery = Random.Range(2, 5);
            numItemsInDelivery = Mathf.Max(EmptySlots.Count(), numItemsInDelivery);
            for (int i = 0; i < numItemsInDelivery; i++)
            {
                int idx      = Random.Range(0, DeliveredItemPrefabs.Length);
                var g        = DeliveredItemPrefabs[idx];
                var delivery = Instantiate(g).GetComponent <CarryItem>();
                StoreItem(delivery);
            }
            item.gameObject.SetActive(false);
            Destroy(item.gameObject);
        }
        else
        {
            StoreItem(item);
        }
    }