namespace ET { [FriendClass(typeof(Menu))] public static class MenuComponentSystem { public static Menu initMenu(this MenuComponent self, int id) { if (self.CheckoutMenu(id) != 0) { return null; } Menu menu= self.Add(id, 0); menu.Proficiency = 0; menu.State = Constant.ConstMenuState.NOT_FULL; return menu; } public static Menu Add(this MenuComponent self, int id, int state) { Menu menu = self.GetChild(id); if (menu == null) { menu = self.AddChildWithId(id); menu.ConfigId = id; menu.Proficiency = 0; menu.State = Constant.ConstMenuState.NOT_FULL; } var prof = menu.Config.ProficiencyPerItem; if (state == 2 && menu.Config.QualityProficiencyPerItem > 0) { prof = menu.Config.QualityProficiencyPerItem; } menu.Proficiency += prof; if (menu.Proficiency >= menu.Config.NeedProficiency) { menu.State = Constant.ConstMenuState.FULL; } return menu; } public static int CheckoutMenu(this MenuComponent self, int id) { Menu menu = self.GetChild(id); if (menu == null) { return 0; } return menu.State; } } }