OSDN Git Service

add amulet search with fixed seed2
[amulettoolsmh4/main.git] / amulettool.py
index 23ec9b9..6f2a06e 100644 (file)
@@ -166,7 +166,7 @@ class AmuletToolController(wx.App):
         self.notebook_amulet_view.set_skillminmax_dict(self._skill_names, self._amulet_names, self._minmax_dict)
         self.notebook_amulet_view.bind_button_search(self.OnClickAmuletSearch)
         self.notebook_amulet_view.bind_button_clear(self.OnClickAmuletClear)
-        self.notebook_amulet_view.bind_button_skill2(self.OnClickSkill2SearchFromAmulet)
+        self.notebook_amulet_view.bind_button_simulate(self.OnClickSimulateFromAmulet)
 
         self.notebook_amulet_view.set_selected_amulet(True, view.NAME_AMULET1)
 
@@ -360,17 +360,37 @@ class AmuletToolController(wx.App):
     def OnClickAmuletSearch(self, evt):
         u""" search seeds from amulet condition """
         search_type = self.notebook_amulet_view.get_selected_search_type()
+        skill1_name, skill2_name = self.notebook_amulet_view.get_skill_names()
+        skill1_val, skill2_val = self.notebook_amulet_view.get_skill_values()
+        slot_num = self.notebook_amulet_view.get_slot_value()
+        amulet_name = self.notebook_amulet_view.get_selected_amulet()
         if search_type == view.SEARCH_TYPE_SEED2:
-            skill1_name, skill2_name = self.notebook_amulet_view.get_skill_names()
-            skill1_val, skill2_val = self.notebook_amulet_view.get_skill_values()
-            slot_num = self.notebook_amulet_view.get_slot_value()
-            amulet_name = self.notebook_amulet_view.get_selected_amulet()
             suff_val, threshold, th1_seed2s, th2_seed2s = self.db_accessor.simple_select_seed2s_from_names(
                     amulet_name, skill1_name, skill1_val, skill2_name, skill2_val, slot_num)
             self.notebook_amulet_view.set_result_only_seed2(suff_val, threshold, th1_seed2s, th2_seed2s)
-        elif search_type == view.SEARCH_TYPE_SEED1_SEED2:
-            pass
         elif search_type == view.SEARCH_TYPE_FIXED_SEED2:
+            seed2 = self.notebook_amulet_view.get_fixed_seed2()
+            suff_val = self.db_accessor.get_sufficient_value(amulet_name, skill1_name, skill2_name, skill1_val, skill2_val)
+            threshold = self.db_accessor.select_threshold_from_sufficient(amulet_name, suff_val)[slot_num-1]
+            if seed2 is not None and skill2_name in self._skill_names:
+                seed1s_555, seed1s_888 = self.db_accessor.select_seed1s_from_fixed_seed2(seed2,
+                        amulet_name, skill1_name, skill1_val, skill2_name, skill2_val, slot_num)
+                self.notebook_amulet_view.set_result_fixed_seed2(suff_val, threshold, seed2, seed1s_555, seed1s_888)
+            elif seed2 is None:
+                self._show_message_dialog(message=u"Seed2には数字を入力して下さい")
+            else:
+                self._show_message_dialog(message=u"第2スキルに何らかのスキルを指定してください")
+        elif search_type == view.SEARCH_TYPE_SEED1_SEED2:
+            u"""
+            suff_val = self.db_accessor.get_sufficient_value(amulet_name, skill1_name, skill2_name,
+                    skill1_val, skill2_val)
+            if suff_val > 15:
+                result_dict = self.db_accessor.select_seed1s_from_names(amulet_name, 
+                        skill1_name, skill1_val, skill2_name, skill2_val, slot_num)
+                self.notebook_amulet_view.set_result_seeds(suff_val, result_dict)
+            else:
+                self._show_message_dialog(message=u"指定されたお守りの充足値が低いため、結果を表示しきれません")
+            """
             pass
 
     def OnClickAmuletClear(self, evt):
@@ -378,13 +398,19 @@ class AmuletToolController(wx.App):
         self.notebook_amulet_view.clear_grid()
         self.notebook_amulet_view.clear_input_values()
 
-    def OnClickSkill2SearchFromAmulet(self, evt):
+    def OnClickSimulateFromAmulet(self, evt):
         u""" change page to skill search from amulet"""
-        seed = self.notebook_amulet_view.get_grid_selected_seed2()
-        if seed is not None:
-            self.notebook_skill2_view.set_seed2_value(seed)
-            self.frame_view.note_book.SetSelection(view.SKILL_SEARCH_PAGE)
-            self.OnClickSkillSearch(evt)
+        values = self.notebook_amulet_view.get_selected_seeds()
+        if values is not None:
+            seed1, seed2 = values
+            self.notebook_simulator_view.set_seed_values(seed1, seed2)
+            self.frame_view.note_book.SetSelection(view.ALCHEMY_SIMULATE_PAGE)
+            if seed1 is not None and seed2 is not None:
+                tenun = self.notebook_amulet_view.get_selected_tenun_type()
+                self.notebook_simulator_view.set_tenun_radio_key(tenun)
+                self.OnClickSimulatorSearch(evt)
+        else:
+            self._show_message_dialog(message=u"有効な行を選択してください")
 
     u""" settings' event """
     def OnClickSettingOK(self, evt):