Beispiel #1
0
 def setup_skill_icons_using( self, ui_prepare_character ) :
     skills= ( get_skill( skill_id ) for skill_id in ui_prepare_character.character_data[u'skills_using'] )
     skills= filter( lambda skill : skill is not None, skills )
     len_need= len( skills )
     resize( ui_prepare_character.skill_icons_using, len_need, Factory.UIPrepareSkillIcon )
     for ui_icon, skill in izip( reversed( ui_prepare_character.skill_icons_using.children ), skills ) :
         ui_icon.source= skill.icon
Beispiel #2
0
    def character_on_select( self, ui_prepare_character ) :
        for child in self.character_list.children :
            if child == ui_prepare_character :
                child.is_selected= True
            else :
                child.is_selected= False
        self.selected_character_image= ui_prepare_character.image
        self.selected_character_name= ui_prepare_character.name
        self.selected_character_hp_max_value= ui_prepare_character.character_data[u'hp_max']
        self.selected_character_speed_value= ui_prepare_character.character_data[u'speed']
        self.selected_character_dex_value= ui_prepare_character.character_data[u'dex']
        self.selected_character_skill_points= ui_prepare_character.character_data[u'skill_points']
        self.update_selected_character_skill_value_total()

        skills= ( ( skill_id, get_skill( skill_id ), skill_id in ui_prepare_character.character_data[u'skills_using'] )
                    for skill_id in ui_prepare_character.character_data[u'skill_ids'] )
        skills= filter( lambda ( skill_id, skill, is_active ) : skill is not None, skills )
        skills.sort( key= lambda ( skill_id, skill, is_active ) : 1 if is_active else 0 )
        def create_ui_prepare_skill() :
            ui_prepare_skill= Factory.UIPrepareSkill()
            ui_prepare_skill.ui_combat_prepare= self
            ui_prepare_skill.skill_id= 0
            ui_prepare_skill.character_data= None
            return ui_prepare_skill
        resize( self.selected_character_skill_list, len( skills ), create_ui_prepare_skill )
        assert( len( self.selected_character_skill_list.children ) == len( skills ) )
        for ui_prepare_skill, ( skill_id, skill, is_active ) in izip( self.selected_character_skill_list.children, skills ) :
            ui_prepare_skill.is_active= is_active
            ui_prepare_skill.icon= skill.icon
            ui_prepare_skill.name= skill.name
            ui_prepare_skill.value= skill.value
            ui_prepare_skill.skill_id= skill_id
            ui_prepare_skill.character_data= ui_prepare_character.character_data
Beispiel #3
0
def data2character( character, data ) :
    _set_value( character, u'name', data, u'name' )

    cooldown= data.get( u'cooldown', None )
    if cooldown is not None :
        for cd_id, ( time_total, time_left ) in cooldown.iteritems() :
            character.cooldown.set_cd( cd_id, time_total, time_left )

    skill_ids= data.get( u'skill_ids', None )
    if skill_ids is not None :
        for skill_id in skill_ids :
            skill= get_skill( skill_id )
            if skill is None :
                continue
            character.id2skill[skill_id]= skill

    _set_value( character, u'image', data, u'image' )
    _set_value( character, u'auto_control', data, u'auto_control' )
    _set_value( character, u'camp', data, u'camp' )

    skills_using= data.get( u'skills_using', None )
    if skills_using is not None :
        character.skills_using.extend( skills_using )

    _set_value( character, u'hp', data, u'hp' )
    _set_value( character, u'hp_max', data, u'hp_max' )
    _set_value( character, u'speed', data, u'speed' )
    _set_value( character, u'dex', data, u'dex' )

    character.hp= character.hp
Beispiel #4
0
 def view_skill( self, ui_prepare_skill ) :
     skill= get_skill( ui_prepare_skill.skill_id )
     if skill is None :
         return
     ui_skill_desc= Factory.UISkillDesc()
     ui_skill_desc.icon= skill.icon
     ui_skill_desc.name= skill.name
     ui_skill_desc.desc= skill.desc
     ui_skill_desc.open()
Beispiel #5
0
 def update_skill_value_total( self ) :
     value_total= 0
     for ui_prepare_character in self.character_list.children :
         if ui_prepare_character.is_goto_battle :
             for skill_id in ui_prepare_character.character_data[u'skills_using'] :
                 skill= get_skill( skill_id )
                 if skill is None :
                     continue
                 value_total += skill.value
     self.skill_value_total= value_total
Beispiel #6
0
 def is_player_combat_ready( self ) :
     goto_battle_count= 0
     skill_value_total= 0
     skill_value_total_max= 0
     for character_data in self.player_data[u'characters'] :
         if character_data[u'goto_battle'] :
             goto_battle_count += 1
             skill_value_total_max += character_data[u'skill_points']
             for skill_id in character_data[u'skills_using'] :
                 skill= get_skill( skill_id )
                 if skill is not None :
                     skill_value_total += skill.value
     if not 0 < goto_battle_count <= datas.goto_battle_count_max :
         return False
     if skill_value_total > skill_value_total_max :
         return False
     return True