@Override
    public void deserialize(Buffer buf) {
        nbSubOwned = buf.readInt();
        if (nbSubOwned < 0)
            throw new RuntimeException("Forbidden value on nbSubOwned = " + nbSubOwned + ", it doesn't respect the following condition : nbSubOwned < 0");
        subTotal = buf.readInt();
        if (subTotal < 0)
            throw new RuntimeException("Forbidden value on subTotal = " + subTotal + ", it doesn't respect the following condition : subTotal < 0");
        maxSub = buf.readInt();
        if (maxSub < 0)
            throw new RuntimeException("Forbidden value on maxSub = " + maxSub + ", it doesn't respect the following condition : maxSub < 0");
        int limit = buf.readUShort();
        subAreasInformation = new PrismSubAreaInformation[limit];
        for (int i = 0; i < limit; i++) {
            subAreasInformation[i] = new PrismSubAreaInformation();
            subAreasInformation[i].deserialize(buf);
        }
        nbConqsOwned = buf.readInt();
        if (nbConqsOwned < 0)
            throw new RuntimeException("Forbidden value on nbConqsOwned = " + nbConqsOwned + ", it doesn't respect the following condition : nbConqsOwned < 0");
        conqsTotal = buf.readInt();
        if (conqsTotal < 0)
            throw new RuntimeException("Forbidden value on conqsTotal = " + conqsTotal + ", it doesn't respect the following condition : conqsTotal < 0");
        limit = buf.readUShort();
        conquetesInformation = new VillageConquestPrismInformation[limit];
        for (int i = 0; i < limit; i++) {
            conquetesInformation[i] = new VillageConquestPrismInformation();
            conquetesInformation[i].deserialize(buf);
        }
    }