/// Accepts a PrimaryInfoCardResourcesEquipmentUpdate
    public void EquipmentDidChange(PubSubListenerEvent e)
    {
        PrimaryInfoCardResourcesEquipmentUpdate update = (PrimaryInfoCardResourcesEquipmentUpdate)e.value;

        derricks.SetText(update.numberOfDerricks.ToString("N0") + "/" + update.numberOfAllowedDerricks.ToString("N0"));
        rigs.SetText(update.numberOfRigs.ToString("N0") + "/" + update.numberOrAllowedRigs.ToString("N0"));
        trucks.SetText(update.numberOfTrucks.ToString("N0") + "/" + update.numberOfAllowedTrucks.ToString("N0"));
        ships.SetText(update.numberOfShips.ToString("N0") + "/" + update.numberOfAllowedShips.ToString("N0"));
    }
    void PublishEquipmentUpdate()
    {
        PrimaryInfoCardResourcesEquipmentUpdate equipmentUpdate = new PrimaryInfoCardResourcesEquipmentUpdate
        {
            numberOfAllowedDerricks = MaximumOilDerricks,
            numberOfDerricks        = CurrentOilDerricks,
            numberOrAllowedRigs     = MaximumOilRigs,
            numberOfRigs            = CurrentOilRigs,
            numberOfAllowedTrucks   = MaximumOilTrucks,
            numberOfTrucks          = CurrentOilTrucks,
            numberOfAllowedShips    = MaximumOilTankers,
            numberOfShips           = CurrentOilTankers
        };

        _sender.Publish("game.equipment.totals", equipmentUpdate);
    }