コード例 #1
0
        public static InventoryCard ReadNew(BinaryReader r)
        {
            var           cardId = new CardId(r.ReadUInt32());
            InventoryCard card   = cardId.Type switch
            {
                CardType.Item => new InventoryItem(),
                CardType.Spell => new InventorySpell(),
                CardType.Fairy => new InventoryFairy(),
                _ => throw new InvalidDataException($"Invalid inventory card type: {cardId.Type}")
            };

            card.cardId  = cardId;
            card.atIndex = r.ReadUInt32();
            card.dbUID   = UID.ReadNew(r);
            card.amount  = r.ReadUInt32();
            card.isInUse = r.ReadBoolean();
            card.ReadSub(r);
            return(card);
        }