using MonoMod; namespace MU3.User; class patch_UserOption: UserOption { [MonoModEnumReplace] public new enum eRating { OFF = 0, Default = 1, ON = 1, Naive = 2, Reachable = 3, Recent = 4, MAX = 4 } [MonoModEnumReplace] public new enum eAbort { OFF = 0, S = 1, SS = 2, SSS = 3, SSS1 = 4, PB = 5, FB = 6, AA = 7, MAX = 7, Default = 0 } class patch_DataSet: DataSet { private eRating rating = eRating.ON; private eAbort abort; public extern bool orig_isMax(OptionName id); public new bool isMax(OptionName id) { if(id == OptionName.Rating) { return rating == eRating.MAX; } return orig_isMax(id); } public void set_Rating(eRating value) { if(eRating.MAX < value) { rating = eRating.MAX; } else if(value < eRating.OFF) { rating = eRating.OFF; } else { rating = value; } } public void set_Abort(eAbort value) { if(eAbort.MAX < value) { abort = eAbort.AA; } else if(value < eAbort.OFF) { abort = eAbort.OFF; } else { abort = value; } } } }