prettifyCharacters function
Implementation
List<Map<String, dynamic>> prettifyCharacters(dynamic data) {
List<Map<String, dynamic>> results = [];
for (var i = 0; i < data.length; i++) {
var d = data[i];
Map<String, dynamic> player = data['icon'].includes('Player')
? {
'traveler_name': data['icon'].includes('Boy') ? 'Aether' : 'Lumin',
}
: {};
var character = {
'name': d['name'],
'rarity': d['rarity'] < 100
? d['rarity']
: d['rarity'] - 100, // aloy has 105 stars
'element': d['element'],
'level': d['level'],
'friendship': d['fetter'],
'constellation': d['constellations']
.where((value) => value['is_actived'] == true)
.toList()
.length,
'icon': d['icon'],
'image': d['image'],
'id': d['id'],
'collab': d['rarity'] >= 100,
'traveler_name': data['icon'].includes('Boy') ? 'Aether' : 'Lumin',
'weapon': {
'name': d['weapon']['name'],
'rarity': d['weapon']['rarity'],
'type': d['weapon']['type_name'],
'level': d['weapon']['level'],
'ascension': d['weapon']['promote_level'],
'refinement': d['weapon']['affix_level'],
'description': d['weapon']['desc'],
'icon': d['weapon']['icon'],
'id': d['weapon']['id'],
},
'artifacts': [],
'constellations': [],
'outfits': [],
};
var artifacts = d['reliquaries'];
for (var j = 0; j < artifacts.length; j++) {
var a = artifacts[j];
var regex = RegExp("UI_RelicIcon_(\\d+)_\\d+",
caseSensitive: false, multiLine: true);
var matches = regex.allMatches(a['icon']);
var setId = int.parse(matches.first.toString());
var artifact = {
'name': a['name'],
'pos_name': artifactType[a['pos'].toString()],
'full_pos_name': a['pos_name'],
'pos': a['pos'],
'rarity': a['rarity'],
'level': a['level'],
'set': {
'name': a['set']['name'],
'effect_type': [
'none',
'single',
'classic'
][a['set']['affixes'].length],
'effects': [],
'set_id': setId, // type: ignore
'id': a['set']['id'],
},
'icon': a['icon'],
'id': a['id'],
};
var affixes = a['set']['affixes'] ?? [];
for (var j = 0; j < affixes.length; j++) {
var e = a['set']['affixes'][j];
artifact['set']['effects'].add({
'pieces': e['activation_number'],
'effect': e['effect'],
});
}
}
var constellations = d['constellations'] ?? [];
for (var i = 0; i < constellations.length; i++) {
var c = constellations[i];
character['constellations'].add({
'name': c['name'],
'effect': c['effect'],
'is_activated': c['is_actived'],
'index': c['pos'],
'icon': c['icon'],
'id': c['id'],
});
}
var costumes = d['costumes'] ?? [];
for (var i = 0; i < costumes.length; i++) {
var c = costumes[i];
character['outfits'].add({
'name': c['name'],
'icon': c['icon'],
'id': c['id'],
});
}
results.add(character);
}
return results;
}