コード例 #1
0
    public void GetItemFromCaravan(SpiceName name, int value)
    {
        int curValue = caravan.GetItemValue(name);

        if (curValue >= value && capacity >= value)
        {
            for (int i = 0; i < value; i++)
            {
                PutItem(name);
            }
            for (int i = 0; i < value; i++)
            {
                caravan.RemoveItemByOne(name);
            }
        }
    }
コード例 #2
0
ファイル: ThiefController.cs プロジェクト: s1lin/CS521_A3
    private bool StealRandomItemFromCar()
    {
        List <KeyValuePair <SpiceName, int> > values = new List <KeyValuePair <SpiceName, int> > {
            new KeyValuePair <SpiceName, int>(SpiceName.Tu, caravan.GetItemValue(SpiceName.Tu)),
            new KeyValuePair <SpiceName, int>(SpiceName.Sa, caravan.GetItemValue(SpiceName.Sa)),
            new KeyValuePair <SpiceName, int>(SpiceName.Ca, caravan.GetItemValue(SpiceName.Ca)),
            new KeyValuePair <SpiceName, int>(SpiceName.Ci, caravan.GetItemValue(SpiceName.Ci)),
            new KeyValuePair <SpiceName, int>(SpiceName.Cl, caravan.GetItemValue(SpiceName.Cl)),
            new KeyValuePair <SpiceName, int>(SpiceName.Pe, caravan.GetItemValue(SpiceName.Pe)),
            new KeyValuePair <SpiceName, int>(SpiceName.Su, caravan.GetItemValue(SpiceName.Su))
        };

        values.RemoveAll(e => (int)e.Value <= 0);

        if (values.Count != 0)
        {
            int remove = Random.Range(0, values.Count);
            caravan.RemoveItemByOne(values[remove].Key);
            stealCount++;
            StealCount.text = stealCount.ToString();
        }

        return(true);
    }