public static bool Prefix(DoctorStation __instance, Dictionary <HashedString, Tag> ___treatments_available, Storage ___storage, DoctorStation.StatesInstance ___smi) { var docStation = Traverse.Create(__instance); ___treatments_available.Clear(); foreach (var go in ___storage.items) { if (go.HasTag(GameTags.MedicalSupplies)) { var tag = go.PrefabID(); if (tag == "IntermediateCure") { docStation.CallMethod("AddTreatment", SlimeLethalSickness.ID, tag); } if (tag == "AdvancedCure") { docStation.CallMethod("AddTreatment", ZombieSickness.ID, tag); } } } ___smi.sm.hasSupplies.Set(___treatments_available.Count > 0, ___smi); return(false); }
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; }