Esempio n. 1
0
 def create_unit(self):
     info = {}
     info['faction'] = str(self.faction_select.currentText())
     faction = self.unit_data.factions[info['faction']]
     if faction:
         info['name'] = faction.unit_name
         info['faction_icon'] = faction.faction_icon
         info['desc'] = faction.desc
     info['level'] = int(self.level.value())
     info['gender'] = int(self.gender.value())
     info['klass'] = str(self.class_box.currentText())
     info['items'] = self.getItems()
     info['ai'] = self.get_ai()
     info['ai_group'] = str(self.ai_group.text())
     info['team'] = str(self.team_box.currentText())
     info['generic'] = True
     info['mode'] = self.get_modes()
     created_unit = DataImport.Unit(info)
     return created_unit
Esempio n. 2
0
 def create_unit(self):
     info = {}
     info['faction'] = str(self.faction_select.currentText())
     faction = self.unit_data.factions[info['faction']]
     if faction:
         info['name'] = faction.unit_name
         info['faction_icon'] = faction.faction_icon
         info['desc'] = faction.desc
     info['level'] = int(self.level.value())
     info['gender'] = int(self.gender.value())
     info['klass'] = str(self.class_box.currentText())
     info['items'] = self.getItems()
     info['ai'] = self.get_ai()
     info['ai_group'] = str(self.ai_group.text())
     info['pack'] = str(self.pack.text())
     info['event_id'] = EditorUtilities.next_available_event_id([rein for rein in self.unit_data.reinforcements if rein.pack == info['pack']])
     info['team'] = str(self.team_box.currentText())
     info['generic'] = True
     info['mode'] = self.get_modes()
     created_unit = DataImport.Unit(info)
     return created_unit
Esempio n. 3
0
    def create_unit_from_legend(self, legend, mode):
        GC.U_ID += 1

        u_i = {}
        u_i['id'] = GC.U_ID
        u_i['team'] = legend['team']
        if '_' in legend['event_id']:
            u_i['pack'], u_i['event_id'] = legend['event_id'].split('_')
            u_i['event_id'] = int(u_i['event_id'])
        elif legend['event_id'] != '0':
            u_i['pack'] = legend['event_id']
            u_i['event_id'] = 1
        else:
            u_i['pack'] = None
            u_i['event_id'] = 0
        if legend['class'].endswith('F'):
            legend['class'] = legend['class'][:-1]  # strip off the F
            u_i['gender'] = 5  # Default female gender is 5
        else:
            u_i['gender'] = 0  # Default male gender is 0
        classes = legend['class'].split(',')
        u_i['klass'] = classes[-1]
        # Give default previous class
        # default_previous_classes(u_i['klass'], classes, class_dict)

        if legend['level'].startswith('f'):
            legend['level'] = legend['level'][1:]  # Remove f at the beginning
        u_i['level'] = int(
            legend['level']
        )  # Doesn't need force_fixed since it is fixed by default in LevelEditor
        u_i['position'] = tuple([
            int(num) for num in legend['position'].split(',')
        ]) if ',' in legend['position'] else None

        u_i['faction'] = legend['faction']
        faction = self.factions[u_i['faction']]
        u_i['name'] = faction.unit_name
        u_i['faction_icon'] = faction.faction_icon
        u_i['desc'] = faction.desc

        stats, u_i['growths'], u_i['growth_points'], u_i['items'], u_i['wexp'] = \
            self.get_unit_info(Data.class_dict, u_i['klass'], u_i['level'], legend['items'])
        u_i['stats'] = self.build_stat_dict(stats)

        u_i['tags'] = Data.class_dict[u_i['klass']]['tags']
        if '_' in legend['ai']:
            u_i['ai'], u_i['ai_group'] = legend['ai'].split('_')
        else:
            u_i['ai'], u_i['ai_group'] = legend['ai'], None
        u_i['movement_group'] = Data.class_dict[u_i['klass']]['movement_group']
        u_i['skills'] = []
        u_i['generic'] = True
        u_i['mode'] = mode

        cur_unit = DataImport.Unit(u_i)

        # Reposition units
        cur_unit.position = u_i['position']
        if legend['event_id'] != '0':  # Unit does not start on board
            self.reinforcements.append(cur_unit)
        else:  # Unit does start on board
            self.units.append(cur_unit)

        # Status Effects and Skills
        # get_skills(class_dict, cur_unit, classes, u_i['level'], gameStateObj, feat=False)

        # Extra Skills
        cur_unit.extra_statuses = legend['extra_status']