Exemple #1
0
 def open_slot_choices(self):
     popup = CustomPopup()
     popup.title = 'Choose Slot'
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     layout.clear_widgets()
     for slot_choice in sorted(self.slot_choices):
         slot_button = FlatButton(
             font_ramp_tuple=("slot_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=slot_choice, size_hint=(1., None),
             height=dp(30))
         slot_button.slot_choice = slot_choice
         slot_button.bind(
             on_release=lambda x: self.set_slot(x.slot_choice, popup))
         layout.add_widget(slot_button)
     popup.open()
Exemple #2
0
 def open_add_attributes(self):
     popup = CustomPopup()
     popup.title = 'Choose Attribute'
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     for attribute_id in sorted(self.get_attributes()):
         attribute = mc_objects.ATTRIBUTES[attribute_id]
         attribute_button = FlatButton(
             font_ramp_tuple=("attribute_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=attribute.attribute_id,
             size_hint=(1., None), height=dp(30))
         attribute_button.attribute_id = attribute.attribute_id
         attribute_button.bind(
             on_release=lambda x: self.add_attribute(x.attribute_id, popup))
         layout.add_widget(attribute_button)
     popup.open()
Exemple #3
0
 def open_add_potions(self):
     popup = CustomPopup()
     popup.title = 'Choose Potion'
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     for potion_id in sorted(mc_objects.POTIONS):
         potion = mc_objects.POTIONS[potion_id]
         potion_button = FlatButton(
             font_ramp_tuple=("potion_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=potion.potion_name, size_hint=(1., None),
             height=dp(30))
         potion_button.potion_id = potion_id
         potion_button.bind(
             on_release=lambda x: self.add_potion(x.potion_id, popup))
         layout.add_widget(potion_button)
     popup.open()
Exemple #4
0
 def open_add_enchants(self):
     popup = CustomPopup()
     popup.title = 'Choose Enchant'
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     layout.clear_widgets()
     for e_id in sorted(self.get_enchants()):
         enchant = mc_objects.ENCHANTS[e_id]
         enchant_button = FlatButton(
             font_ramp_tuple=("enchant_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=enchant.name, size_hint=(1., None),
             height=dp(30))
         enchant_button.e_id = enchant.e_id
         enchant_button.bind(
             on_release=lambda x: self.add_enchant(x.e_id, popup))
         layout.add_widget(enchant_button)
     popup.open()
Exemple #5
0
 def open_op_choices(self):
     popup = CustomPopup()
     popup.title = 'Choose Operation'
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     layout.clear_widgets()
     for op_choice in sorted(self.operations):
         op_button = FlatButton(
             font_ramp_tuple=("slot_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center',
             text=str(int(op_choice)) + ' (' + 
                  self.operations[op_choice] + ')',
             size_hint=(1., None), height=dp(30))
         op_button.op_choice = op_choice
         op_button.bind(
             on_release=lambda x: self.set_op(x.op_choice, popup))
         layout.add_widget(op_button)
     popup.open()
Exemple #6
0
 def open_options_popup(self, option):
     popup = CustomPopup()
     popup.title = 'Choose ' + option.tag_name
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     for option_name, option_id in sorted(option.tag_data):
         option_button = FlatButton(
             font_ramp_tuple=(option_name + "_choices", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=option_name, size_hint=(1., None),
             height=dp(30))
         option_button.option_id = option_id
         option_button.option_name = option_name
         option_button.bind(
             on_release=lambda x: self.set_option_for_additional(option, x,
                 popup)
             )
         layout.add_widget(option_button)
     popup.open()
Exemple #7
0
 def on_categories(self, instance, value):
     layout = self.ids.layout
     layout.clear_widgets()
     app = App.get_running_app()
     for key in sorted(value):
         new_button = FlatButton(
             font_ramp_tuple=("item_categories", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text=mc_objects.ITEM_TYPES[key])
         new_button.bind(size=new_button.setter('text_size'))
         new_button.ikey = key
         new_button.bind(
             on_release=lambda x: app.change_to_item_types(
                                         'item_types', x.ikey))
         layout.add_widget(new_button)
         
Exemple #8
0
 def draw_widget(self, dt):
     content_layout = self.ids.contents
     slider_layout = self.ids.slider_layout
     self.drop_chance_wid = None
     for wid in slider_layout.children:
         wid.font_group_id = 'default'
         wid.font_ramp_tuple = ('default', '1')
     for wid in content_layout.children:
         wid.font_ramp_tuple = ('default', '1')
         wid.font_group_id = 'default'
     slider_layout.clear_widgets()
     content_layout.clear_widgets()
     if self.slot_item is None:
         button = FlatButton(
             font_ramp_tuple=(self.font_group_id + "choose_item", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text="Load Item", size_hint=(.6, None),
             height=dp(35))
         button.bind(on_release=lambda x: self.load_item())
         content_layout.add_widget(button)
     else:
         content_layout.add_widget(Divider(size_hint=(.8, None),
                                           height=dp(5)))
         item = self.slot_item
         name = item.name
         if name is None:
             name = ""
         content_layout.add_widget(MobItemWidget(item_name=item.i_id,
             display_name=name, file_name=self.file_name,
             font_group_id='item_info'))
         button = FlatButton(
             font_ramp_tuple=(self.font_group_id + "delete_item", "1"),
             theme=('aqua', 'variant_2'), valign='middle',
             halign='center', text="X", size_hint=(.4, None),
             height=dp(25))
         button.bind(on_release=lambda x: self.delete_item())
         
         slider_label = FlatLabel(size_hint=(1.0, None), height=dp(25),
             text="Drop Chance: ",
             theme=('aqua', 'variant_1'), valign='middle',
             halign='left')
         slider_label.bind(size=slider_label.setter('text_size'))
         slider_label.font_ramp_tuple = (self.font_group_id + "_drop", '1')
         slider_layout.add_widget(slider_label)
         slider_wid = SliderWithValues(minimum=0.0, maximum=1.0,
             height=dp(45), step=0.01,
             font_group_id=self.font_group_id + "_sliders",
             size_hint=(1.0, None))
         self.drop_chance_wid = slider_wid
         slider_layout.add_widget(slider_wid)
         slider_layout.add_widget(button)
Exemple #9
0
 def open_options_popup(self, option):
     popup = CustomPopup()
     popup.title = 'Choose ' + option.tag_name
     popup.content = content = EnchantPopupLayout()
     layout = content.ids.layout
     for option_name, option_id in sorted(option.tag_data):
         option_button = FlatButton(font_ramp_tuple=(option_name +
                                                     "_choices", "1"),
                                    theme=('aqua', 'variant_2'),
                                    valign='middle',
                                    halign='center',
                                    text=option_name,
                                    size_hint=(1., None),
                                    height=dp(30))
         option_button.option_id = option_id
         option_button.option_name = option_name
         option_button.bind(on_release=lambda x: self.
                            set_option_for_additional(option, x, popup))
         layout.add_widget(option_button)
     popup.open()
Exemple #10
0
    def on_current_mob(self, instance, value):
        for option_key in self.additional_options:
            option = self.additional_options[option_key]
            option['option_widget'].font_group_id = 'default'
        self.clear_old()
        self.additional_options = add_options = {}
        options_layout = self.ids.options_layout
        if value is not None:
            options = value.options
            if value.has_inventory:
                self.add_mob_items()
            for tag_name, option_type, tag_data, tag_type in options:
                add_options[tag_name] = {
                    'option_type': option_type,
                    'tag_type': tag_type,
                    'tag_data': tag_data,
                }
                if option_type == 'range':
                    option_label = FlatLabel(size_hint=(1.0, None),
                                             height=dp(30),
                                             text=tag_name,
                                             valign='middle',
                                             halign='left',
                                             theme=('aqua', 'variant_1'))
                    option_label.font_ramp_tuple = ('mob_panel_options', '1')
                    option_label.bind(size=option_label.setter('text_size'))
                    options_layout.add_widget(option_label)
                    option_widget = SliderWithValues(
                        minimum=tag_data[0],
                        maximum=tag_data[1],
                        step=tag_data[2],
                        size_hint=(1.0, None),
                        height=dp(65),
                        font_group_id='mob_panel_1_option_slider')

                    options_layout.add_widget(option_widget)
                elif option_type == 'boolean':
                    option_widget = NamedCheckBox(
                        size_hint=(.9, None),
                        height=dp(35),
                        font_group_id="mob_panel_options",
                        name=tag_name)

                    options_layout.add_widget(option_widget)
                elif option_type == 'options':
                    option_label = FlatLabel(size_hint=(1.0, None),
                                             height=dp(30),
                                             text=tag_name,
                                             valign='middle',
                                             halign='left',
                                             theme=('aqua', 'variant_1'))
                    option_label.font_ramp_tuple = ('mob_panel_options', '1')
                    option_label.bind(size=option_label.setter('text_size'))
                    options_layout.add_widget(option_label)
                    option_widget = FlatButton(
                        font_ramp_tuple=("mob_panel_options", "1"),
                        theme=('aqua', 'variant_2'),
                        valign='middle',
                        halign='center',
                        size_hint=(1., None),
                        height=dp(30),
                        on_release=self.open_options_popup)
                    option_widget.tag_name = tag_name
                    option_widget.tag_data = tag_data
                    option_widget.text = tag_data[0][0]
                    option_widget.option_value = tag_data[0][1]
                    options_layout.add_widget(option_widget)

                add_options[tag_name] = {
                    'option_type': option_type,
                    'tag_type': tag_type,
                    'tag_data': tag_data,
                    'option_widget': option_widget
                }