@Override
    public void deserialize(Buffer buf) {
        nbcollectorMax = buf.readByte();
        if (nbcollectorMax < 0)
            throw new RuntimeException("Forbidden value on nbcollectorMax = " + nbcollectorMax + ", it doesn't respect the following condition : nbcollectorMax < 0");
        taxCollectorHireCost = buf.readShort();
        if (taxCollectorHireCost < 0)
            throw new RuntimeException("Forbidden value on taxCollectorHireCost = " + taxCollectorHireCost + ", it doesn't respect the following condition : taxCollectorHireCost < 0");
        int limit = buf.readUShort();
        informations = new TaxCollectorInformations[limit];
        for (int i = 0; i < limit; i++) {
            informations[i] = ProtocolTypeManager.getInstance().build(buf.readShort());
            informations[i].deserialize(buf);
        }
        limit = buf.readUShort();
        fightersInformations = new TaxCollectorFightersInformation[limit];
        for (int i = 0; i < limit; i++) {
            fightersInformations[i] = new TaxCollectorFightersInformation();
            fightersInformations[i].deserialize(buf);
        }
    }