import model
SETTING_FILE = u"settings"
-SETTING_THRESHOLD = u"threshold"
+SETTING_THRESHOLD1 = u"threshold1"
SETTING_SKILLS = u"skills"
def _get_base_dir():
skill_names = [self._skill_id2name_dict[x] for x in skill_ids]
for combo in combo_dict[amu_key]:
combo.Clear()
- combo.Append(u"なし")
+ combo.Append(view.VAL_NO_SKILL)
for name in skill_names:
combo.Append(name)
combo.SetSelection(0)
def _set_skill_list_from_amulet(self, amulet_id):
u""" お守り種類の選択が変わった時の動作 """
- skill_selected = []
for i, (combo, skill_dict) in enumerate(zip(
[self.frame_view.combo_box_amulet_search_skill1,
self.frame_view.combo_box_amulet_search_skill2],
[self._amulet_id2skill1_id_dict, self._amulet_id2skill2_id_dict]
)):
- combo.Clear()
skill_ids = skill_dict[amulet_id]
+ combo.Clear()
+ if i == 1:
+ combo.Append(view.VAL_NO_SKILL)
+ else:
+ skill1_selected = skill_ids[0]
for skill_id in skill_ids:
combo.Append(self._skill_id2name_dict[skill_id])
- skill_selected.append(skill_ids[i])
- combo.SetSelection(i)
- self._set_spin_range(amulet_id, skill_selected[0], skill_selected[1])
+ combo.SetSelection(0) # combo1 = skill1, combo2 = No Skill
+ self._set_spin_range(amulet_id, skill1_selected, None)
def _set_spin_views(self):
u""" Spin Ctrlの最大最小をセット"""
min1, max1, min2, max2 = self.db_accessor.get_skill_minmax()
self.frame_view.spin_ctrl_amulet_search_slot_num.SetRange(view.SLOT_MIN, view.SLOT_MAX)
- self.frame_view.spin_ctrl_highlight.SetRange(view.THRESHOLD2_MIN, view.THRESHOLD2_MAX)
- self.frame_view.spin_ctrl_highlight.SetValue(self._highlight_threshold)
+ self.frame_view.spin_ctrl_highlight.SetRange(view.THRESHOLD1_MIN, view.THRESHOLD1_MAX)
+ self.frame_view.spin_ctrl_highlight.SetValue(self._highlight_threshold1)
def _set_check_list_views(self):
u""" CheckListBoxの値のセット """
def _set_spin_range(self, amulet_id, skill1_id, skill2_id):
u""" スキルに応じてSpinCtrlの最大最小をセットする """
- minmax_dict = self.db_accessor.select_minmax_from_skill_ids(amulet_id, [skill1_id, skill2_id])
- min1, max1 = minmax_dict[skill1_id][0], minmax_dict[skill1_id][1]
- min2, max2 = minmax_dict[skill2_id][2], minmax_dict[skill2_id][3]
+ if skill2_id is None:
+ minmax_dict = self.db_accessor.select_minmax_from_skill_ids(amulet_id, [skill1_id])
+ min1, max1 = minmax_dict[skill1_id][0], minmax_dict[skill1_id][1]
+ min2, max2 = 0, 0
+ else:
+ minmax_dict = self.db_accessor.select_minmax_from_skill_ids(amulet_id, [skill1_id, skill2_id])
+ min1, max1 = minmax_dict[skill1_id][0], minmax_dict[skill1_id][1]
+ min2, max2 = minmax_dict[skill2_id][2], minmax_dict[skill2_id][3]
self.frame_view.spin_ctrl_amulet_search_skill1_val.SetRange(min1, max1)
self.frame_view.spin_ctrl_amulet_search_skill2_val.SetRange(min2, max2)
seed_sets = self.db_accessor.select_seeds(amu_id2skill_id_list_dict)
self.frame_view.text_ctrl_seed_result.SetValue(u"""Seedの候補は{0}個です。""".format(len(seed_sets)))
+ self.frame_view.list_box_seed.Clear()
if len(seed_sets) > 0:
for seed in seed_sets:
self.frame_view.list_box_seed.Append(u"{0}".format(seed))
seed = self.frame_view.text_ctrl_seed_select.GetValue()
if seed.isdigit():
seed = int(seed)
- skill_dict, threshold2_dict = self.db_accessor.select_skills_from_seeds([seed])
+ skill_dict, threshold1_dict = self.db_accessor.select_skills_from_seeds([seed])
try:
text_ctrl_dict = self.frame_view.text_ctrl_seed_skill_dict
amu_id = self._amulet_name2id_dict[amu_name]
for txt_ctr, skill_id in zip(text_ctrl_dict[amu_key], skill_dict[amu_id][seed]):
txt_ctr.SetValue(self._skill_id2name_dict[skill_id])
- for txt_ctr, threshold2 in zip(text_ctrl_dict[view.KEY_THRESHOLD2], threshold2_dict[seed]):
- txt_ctr.SetValue(u"{0}".format(threshold2))
+ for txt_ctr, threshold1 in zip(text_ctrl_dict[view.KEY_THRESHOLD1], threshold1_dict[seed]):
+ txt_ctr.SetValue(u"{0}".format(threshold1))
self._update_highlight()
except KeyError, e:
amu_id = self._amulet_name2id_dict[amu_name]
for txt_ctr in text_ctrl_dict[amu_key]:
txt_ctr.Clear()
- for txt_ctr in text_ctrl_dict[view.KEY_THRESHOLD2]:
+ for txt_ctr in text_ctrl_dict[view.KEY_THRESHOLD1]:
txt_ctr.Clear()
self.frame_view.list_box_seed_skill_amulet_prospect.Clear()
skill1_name = self.frame_view.combo_box_amulet_search_skill1.GetStringSelection()
skill2_name = self.frame_view.combo_box_amulet_search_skill2.GetStringSelection()
skill1_id = self._skill_name2id_dict[skill1_name]
- skill2_id = self._skill_name2id_dict[skill2_name]
+ if skill2_name in self._skill_name2id_dict:
+ skill2_id = self._skill_name2id_dict[skill2_name]
+ else:
+ skill2_id = None
if self.frame_view.amulet2radio_button_dict[view.NAME_AMULET1].GetValue():
amu_id = self._amulet_name2id_dict[view.NAME_AMULET1]
elif self.frame_view.amulet2radio_button_dict[view.NAME_AMULET2].GetValue():
raise IndexError(u"amulet id is unknown")
self._set_spin_range(amu_id, skill1_id, skill2_id)
-
def OnClickAmuletSearch(self, evt):
u""" search seeds from amulet condition """
skill1_name = self.frame_view.combo_box_amulet_search_skill1.GetStringSelection()
list_box = self.frame_view.list_box_amulet_search_seeds
if skill1_name == skill2_name:
self._show_message_dialog(message=u"異なるスキルを選択してください")
- elif skill1_val == 0 or skill2_val == 0:
- self._show_message_dialog(message=u"スキルの値には0以外を指定してください")
+ elif skill1_val == 0:
+ self._show_message_dialog(message=u"第1スキルの値には0以外を指定してください")
else:
skill1_id = self._skill_name2id_dict[skill1_name]
- skill2_id = self._skill_name2id_dict[skill2_name]
+ if skill2_name in self._skill_name2id_dict:
+ skill2_id = self._skill_name2id_dict[skill2_name]
+ else:
+ skill2_id = None # for skill2 is 0
suff_dict = {}
tup = self.db_accessor.get_sufficient_value(
amu_id, skill1_id, skill2_id, skill1_val, skill2_val)
def OnClickSettingOK(self, evt):
u""" get settings of setting tab """
- self._highlight_threshold = self.frame_view.spin_ctrl_highlight.GetValue()
+ self._highlight_threshold1 = self.frame_view.spin_ctrl_highlight.GetValue()
self._highlight_skills = set([self._skill_name2id_dict[x] for x in
self.frame_view.check_list_box_highlight_skill.GetCheckedStrings()
if x in self._skill_name2id_dict])
def OnClickSettingClear(self, evt):
u""" reset settings of setting tab """
- self._highlight_threshold = view.HIGHLIGHT_THRESHOLD
- self.frame_view.spin_ctrl_highlight.SetValue(view.HIGHLIGHT_THRESHOLD)
+ self._highlight_threshold1 = view.HIGHLIGHT_THRESHOLD1
+ self.frame_view.spin_ctrl_highlight.SetValue(view.HIGHLIGHT_THRESHOLD1)
self._highlight_skills = set()
for idx in self.frame_view.check_list_box_highlight_skill.GetChecked():
self.frame_view.check_list_box_highlight_skill.Check(idx, False)
text_ctrl.SetBackgroundColour("Yellow")
else:
text_ctrl.SetBackgroundColour(wx.NullColor)
- for text_ctrl in text_dict[view.KEY_THRESHOLD2]:
+ for text_ctrl in text_dict[view.KEY_THRESHOLD1]:
val = text_ctrl.GetValue()
- if val.isdigit() and int(val) >= self._highlight_threshold:
+ if val.isdigit() and int(val) >= self._highlight_threshold1:
text_ctrl.SetBackgroundColour("Yellow")
else:
text_ctrl.SetBackgroundColour(wx.NullColor)
def _write_settings(self):
with open(SETTING_FILE, mode="w") as f:
- data = {SETTING_THRESHOLD:self._highlight_threshold,
+ data = {SETTING_THRESHOLD1:self._highlight_threshold1,
SETTING_SKILLS:self._highlight_skills}
pickle.dump(data, f)
with open(SETTING_FILE, mode="r") as f:
try:
data = pickle.load(f)
- self._highlight_threshold = data[SETTING_THRESHOLD]
+ self._highlight_threshold1 = data[SETTING_THRESHOLD1]
self._highlight_skills = data[SETTING_SKILLS]
except EOFError, e:
- self._highlight_threshold = view.HIGHLIGHT_THRESHOLD
+ self._highlight_threshold1 = view.HIGHLIGHT_THRESHOLD1
self._highlight_skills = set()
else:
- self._highlight_threshold = view.HIGHLIGHT_THRESHOLD
+ self._highlight_threshold1 = view.HIGHLIGHT_THRESHOLD1
self._highlight_skills = set()
if __name__ == "__main__":