protected override void OnSpawn()
 {
     base.OnSpawn();
     Prioritizable.AddRef(base.gameObject);
     doctor_workable = GetComponent <DoctorStationDoctorWorkable>();
     SetWorkTime(float.PositiveInfinity);
     smi = new StatesInstance(this);
     smi.StartSM();
     OnStorageChange(null);
     Subscribe(-1697596308, OnStorageChangeDelegate);
 }
    public override void DoPostConfigureComplete(GameObject go)
    {
        Storage storage = go.AddOrGet <Storage>();

        storage.showInUI = true;
        ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>();

        manualDeliveryKG.SetStorage(storage);
        manualDeliveryKG.requestedItemTag       = SUPPLY_TAG;
        manualDeliveryKG.capacity               = 10f;
        manualDeliveryKG.refillMass             = 5f;
        manualDeliveryKG.minimumMass            = 1f;
        manualDeliveryKG.choreTypeIDHash        = Db.Get().ChoreTypes.DoctorFetch.IdHash;
        manualDeliveryKG.operationalRequirement = FetchOrder2.OperationalRequirement.Functional;
        DoctorStation doctorStation = go.AddOrGet <DoctorStation>();

        doctorStation.overrideAnims = new KAnimFile[1]
        {
            Assets.GetAnim("anim_interacts_medical_bed_kanim")
        };
        doctorStation.workLayer = Grid.SceneLayer.BuildingFront;
        doctorStation.supplyTag = SUPPLY_TAG;
        RoomTracker roomTracker = go.AddOrGet <RoomTracker>();

        roomTracker.requiredRoomType   = Db.Get().RoomTypes.Hospital.Id;
        roomTracker.requirement        = RoomTracker.Requirement.CustomRecommended;
        roomTracker.customStatusItemID = Db.Get().BuildingStatusItems.ClinicOutsideHospital.Id;
        DoctorStationDoctorWorkable doctorStationDoctorWorkable = go.AddOrGet <DoctorStationDoctorWorkable>();

        doctorStationDoctorWorkable.overrideAnims = new KAnimFile[1]
        {
            Assets.GetAnim("anim_interacts_medical_bed_doctor_kanim")
        };
        doctorStationDoctorWorkable.SetWorkTime(60f);
        doctorStationDoctorWorkable.requiredSkillPerk = Db.Get().SkillPerks.CanAdvancedMedicine.Id;
    }
        private Chore CreateDoctorChore(StatesInstance smi)
        {
            DoctorStationDoctorWorkable component = smi.master.GetComponent <DoctorStationDoctorWorkable>();

            return(new WorkChore <DoctorStationDoctorWorkable>(Db.Get().ChoreTypes.Doctor, component, null, true, null, null, null, false, null, false, true, null, false, true, false, PriorityScreen.PriorityClass.high, 5, false, true));
        }