Go down
avatar
juraj.horvath
specialist
Posts : 130
Reputation : 7
Join date : 2018-08-07
Age : 40
Location : Bratislava, Slovak Republic

[Enhancement/Bug] [dnSpy] Some parameters from department configuration are ignored Empty [Enhancement/Bug] [dnSpy] Some parameters from department configuration are ignored

on Wed Jan 01, 2020 11:54 pm
Description
Some parameters (exactly MinHospitalizationDoctorsDay, MinHospitalizationDoctorNight, MinHospitalizationNursesDay, MinHospitalizationNursesNight, MinSurgeonsDay, MinAnestezilogistDay and MinSurgeryNurseDay) are ignored in validation of hospitalization part of any department.

I was investigating, if changing mentioned parameters (I want to create non-surgical department) has any effect. I found that effect is more-less none, the game ignores parameters. I dig deeper into problem with dnSpy and found surprise in Lopital.Department.ValidateInpatients method
Code:
this.m_departmentPersistentData.m_departmentValidity.m_surgeryStaff = (this.m_departmentPersistentData.m_departmentValidity.m_surgeonsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeonAssistCountDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_anesthesiologistsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeryNursesDay >= this.m_departmentPersistentData.m_departmentType.Entry.MinSurgeryNurseDay && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3);
 this.m_departmentPersistentData.m_departmentValidity.m_surgeryStaffNight = (this.m_departmentPersistentData.m_departmentValidity.m_surgeonsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeonAssistCountNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_anesthesiologistsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeryNursesNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 3);

...

this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaff = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 1);
 this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaffDay = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3);
 this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaffNight = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 1);


m_surgeryStaff and m_inpatientStaff are used in hospital part validation, so by above code, you have to have at least 1 surgeon, 1 surgeon assistant, 1 anesthesiologist, 3 nurses and (voila!) surgery nurses by configuration, also you must have at least 1 doctor at day and night, 3 nurses at day and 1 nurse at night. This can be easily fixed (more-less) by replacing hardcoded constants with configuration, the only problem is night surgical staff - in current state it does not have any configuration items.
ondrej.oxymoron
ondrej.oxymoron
developer
Posts : 304
Reputation : 33
Join date : 2018-03-23

[Enhancement/Bug] [dnSpy] Some parameters from department configuration are ignored Empty Re: [Enhancement/Bug] [dnSpy] Some parameters from department configuration are ignored

on Fri Jan 17, 2020 4:34 pm
juraj.horvath wrote:Description
Some parameters (exactly MinHospitalizationDoctorsDay, MinHospitalizationDoctorNight, MinHospitalizationNursesDay, MinHospitalizationNursesNight, MinSurgeonsDay, MinAnestezilogistDay and MinSurgeryNurseDay) are ignored in validation of hospitalization part of any department.

I was investigating, if changing mentioned parameters (I want to create non-surgical department) has any effect. I found that effect is more-less none, the game ignores parameters. I dig deeper into problem with dnSpy and found surprise in Lopital.Department.ValidateInpatients method
Code:
this.m_departmentPersistentData.m_departmentValidity.m_surgeryStaff = (this.m_departmentPersistentData.m_departmentValidity.m_surgeonsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeonAssistCountDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_anesthesiologistsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeryNursesDay >= this.m_departmentPersistentData.m_departmentType.Entry.MinSurgeryNurseDay && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3);
 this.m_departmentPersistentData.m_departmentValidity.m_surgeryStaffNight = (this.m_departmentPersistentData.m_departmentValidity.m_surgeonsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeonAssistCountNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_anesthesiologistsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_surgeryNursesNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 3);

...

this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaff = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 1);
 this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaffDay = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsDay >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesDay >= 3);
 this.m_departmentPersistentData.m_departmentValidity.m_inpatientStaffNight = (this.m_departmentPersistentData.m_departmentValidity.m_inpatientDoctorsNight >= 1 && this.m_departmentPersistentData.m_departmentValidity.m_inpatientNursesNight >= 1);


m_surgeryStaff and m_inpatientStaff are used in hospital part validation, so by above code, you have to have at least 1 surgeon, 1 surgeon assistant, 1 anesthesiologist, 3 nurses and (voila!) surgery nurses by configuration, also you must have at least 1 doctor at day and night, 3 nurses at day and 1 nurse at night. This can be easily fixed (more-less) by replacing hardcoded constants with configuration, the only problem is night surgical staff - in current state it does not have any configuration items.

Hi and thank you for noticing this. This is actually something we have on our TODO list and we plan to address that with some changes we plan in the future:)
Back to top
Permissions in this forum:
You cannot reply to topics in this forum