Пример #1
0
    void Start()
    {
        usernameToPlayerInfo = new Dictionary <string, PlayerInfo> ();
        loggedInPlayers      = new List <PlayerInfo> ();

        BeltInventory b = new BeltInventory(10);

        b.AddItemManyToSlot(new RockItem(), 42, 5);
        PlayerInfo p = new PlayerInfo(b);

        usernameToPlayerInfo.Add("chip", p);
    }
Пример #2
0
    public override void Deserialize(NetworkReader reader)
    {
        belt = new BeltInventory(0);
        belt.Deserialize(reader);

        backpack  = Item.ReadItem(reader) as BackpackItem;
        helmet    = Item.ReadItem(reader) as HelmetItem;
        upperBody = Item.ReadItem(reader) as UpperBodyItem;
        lowerBody = Item.ReadItem(reader) as LowerBodyItem;
        boots     = Item.ReadItem(reader) as BootsItem;
        leftClaw  = Item.ReadItem(reader) as ClawItem;
        rightClaw = Item.ReadItem(reader) as ClawItem;

        cursorSlot = new ItemInventorySlot();
        cursorSlot.Deserialize(reader);
    }
Пример #3
0
 public PlayerInfo(BeltInventory belt)
 {
     this.cursorSlot = new ItemInventorySlot();
     this.belt       = belt;
 }
Пример #4
0
    public static bool validateRequest(InventoryOperationRequest request, PlayerInfo info)
    {
        BackpackInventory backpack = null;

        if (info.backpack != null)
        {
            backpack = info.backpack.inventory;
        }
        BeltInventory     belt   = info.belt;
        ItemInventorySlot cursor = info.cursorSlot;

        ItemInventorySlot swapSlot      = null;
        EquipmentItem     swapEquipItem = null;
        bool drop = false;

        switch (request.swapInv)
        {
        case InventoryType.Ground:
            drop = true;
            break;

        case InventoryType.Backpack:
            swapSlot = assertSlotExists(backpack.getSlots(), request.swapInvSlot);
            if (swapSlot == null)
            {
                Debug.Log("InventoryOperation validation error: trying to swap to bad backpack slot");
                return(false);
            }
            break;

        case InventoryType.Belt:
            swapSlot = assertSlotExists(belt.getSlots(), request.swapInvSlot);
            if (swapSlot == null)
            {
                Debug.Log("InventoryOperation validation error: trying to swap to bad belt slot");
                return(false);
            }
            break;

        case InventoryType.Equip:
            swapEquipItem = getEquipItem(info, request.swapInvSlot);
            break;

        default:
            Debug.Log("InventoryOperation validation error: unsupported inventory detected");
            return(false);
        }

        switch (request.op)
        {
        case Operation.ToCursor:
            return(validateToCursorOperation(swapSlot, swapEquipItem, request.quantity, info));

        case Operation.FromCursor:
            return(validateFromCursorOperation(swapSlot, swapEquipItem, request.swapInvSlot, drop, request.quantity, info));

        default:
            Debug.Log("InventoryOperation validation error: unsupported operation detected");
            return(false);
        }
    }