mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-25 20:56:28 +00:00
Bake banner defaults into BannerType enum, and add every historic banner
This commit is contained in:
parent
da3981089d
commit
83b84408a1
@ -11,8 +11,9 @@ import emu.grasscutter.utils.Utils;
|
||||
import lombok.Getter;
|
||||
|
||||
public class GachaBanner {
|
||||
@Getter private int gachaType;
|
||||
@Getter private int scheduleId;
|
||||
@Getter private int gachaType = -1;
|
||||
@Getter int scheduleId = -1;
|
||||
@Getter int sortId = -1;
|
||||
@Getter private String prefabPath;
|
||||
@Getter private String previewPrefabPath;
|
||||
@Getter private String titlePath;
|
||||
@ -20,26 +21,40 @@ public class GachaBanner {
|
||||
private int costItemAmount = 1;
|
||||
private int costItemId10 = 0;
|
||||
private int costItemAmount10 = 10;
|
||||
@Getter private int beginTime;
|
||||
@Getter private int endTime;
|
||||
@Getter private int sortId;
|
||||
@Getter private int beginTime = 0;
|
||||
@Getter private int endTime = 1924992000;
|
||||
@Getter private int gachaTimesLimit = Integer.MAX_VALUE;
|
||||
@Getter private int[] rateUpItems4 = {};
|
||||
@Getter private int[] rateUpItems5 = {};
|
||||
@Getter private int[] fallbackItems3 = {11301, 11302, 11306, 12301, 12302, 12305, 13303, 14301, 14302, 14304, 15301, 15302, 15304};
|
||||
@Getter private int[] fallbackItems4Pool1 = {1014, 1020, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1059, 1064, 1065, 1067, 1068, 1072};
|
||||
@Getter private int[] fallbackItems4Pool2 = {11401, 11402, 11403, 11405, 12401, 12402, 12403, 12405, 13401, 13407, 14401, 14402, 14403, 14409, 15401, 15402, 15403, 15405};
|
||||
@Getter private int[] fallbackItems5Pool1 = {1003, 1016, 1042, 1035, 1041, 1069};
|
||||
@Getter private int[] fallbackItems5Pool2 = {11501, 11502, 12501, 12502, 13502, 13505, 14501, 14502, 15501, 15502};
|
||||
@Getter private boolean removeC6FromPool = false;
|
||||
@Getter private boolean autoStripRateUpFromFallback = true;
|
||||
private int[][] weights4 = {{1,510}, {8,510}, {10,10000}};
|
||||
private int[][] weights5 = {{1,75}, {73,150}, {90,10000}};
|
||||
private int[][] poolBalanceWeights4 = {{1,255}, {17,255}, {21,10455}};
|
||||
private int[][] poolBalanceWeights5 = {{1,30}, {147,150}, {181,10230}};
|
||||
private int eventChance4 = 50; // Chance to win a featured event item
|
||||
private int eventChance5 = 50; // Chance to win a featured event item
|
||||
// This now handles default values for the fields below
|
||||
@Getter private BannerType bannerType = BannerType.STANDARD;
|
||||
// Constants used by the BannerType enum
|
||||
static final int[][] DEFAULT_WEIGHTS_4 = {{1,510}, {8,510}, {10,10000}};
|
||||
static final int[][] DEFAULT_WEIGHTS_4_WEAPON = {{1, 600}, {7, 600}, {8, 6600}, {10, 12600}};
|
||||
static final int[][] DEFAULT_WEIGHTS_5 = {{1,75}, {73,150}, {90,10000}};
|
||||
static final int[][] DEFAULT_WEIGHTS_5_CHARACTER = {{1,80}, {73,80}, {90,10000}};
|
||||
static final int[][] DEFAULT_WEIGHTS_5_WEAPON = {{1,100}, {62,100}, {73,7800}, {80,10000}};
|
||||
static final int[] DEFAULT_FALLBACK_ITEMS_4_POOL_1 = {1014, 1020, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1059, 1064, 1065, 1067, 1068, 1072}; // Default avatars
|
||||
static final int[] DEFAULT_FALLBACK_ITEMS_4_POOL_2 = {11401, 11402, 11403, 11405, 12401, 12402, 12403, 12405, 13401, 13407, 14401, 14402, 14403, 14409, 15401, 15402, 15403, 15405}; // Default weapons
|
||||
static final int[] DEFAULT_FALLBACK_ITEMS_5_POOL_1 = {1003, 1016, 1042, 1035, 1041, 1069}; // Default avatars
|
||||
static final int[] DEFAULT_FALLBACK_ITEMS_5_POOL_2 = {11501, 11502, 12501, 12502, 13502, 13505, 14501, 14502, 15501, 15502}; // Default weapons
|
||||
static final int[] EMPTY_POOL = {}; // Used to remove a type of fallback
|
||||
// These don't change between banner types (apart from Standard having three extra 4star avatars)
|
||||
@Getter private int[] fallbackItems3 = {11301, 11302, 11306, 12301, 12302, 12305, 13303, 14301, 14302, 14304, 15301, 15302, 15304};
|
||||
@Getter private int[] fallbackItems4Pool1 = DEFAULT_FALLBACK_ITEMS_4_POOL_1;
|
||||
@Getter private int[] fallbackItems4Pool2 = DEFAULT_FALLBACK_ITEMS_4_POOL_2;
|
||||
// Different banner types have different defaults, see above for default values and the enum for which are used where.
|
||||
@Getter private int[] fallbackItems5Pool1;
|
||||
@Getter private int[] fallbackItems5Pool2;
|
||||
private int[][] weights4;
|
||||
private int[][] weights5;
|
||||
private int eventChance4 = -1; // Chance to win a featured event item
|
||||
private int eventChance5 = -1; // Chance to win a featured event item
|
||||
//
|
||||
@Getter private boolean removeC6FromPool = false;
|
||||
@Getter private boolean autoStripRateUpFromFallback = true; // Ensures that featured items won't "double dip" into the losing pool
|
||||
private int[][] poolBalanceWeights4 = {{1,255}, {17,255}, {21,10455}}; // Used to ensure that players won't go too many rolls without getting something from pool 1 (avatar) or pool 2 (weapon)
|
||||
private int[][] poolBalanceWeights5 = {{1,30}, {147,150}, {181,10230}};
|
||||
@Getter private int wishMaxProgress = 2;
|
||||
|
||||
// Deprecated fields that were tolerated in early May 2022 but have apparently still being circulating in new custom configs
|
||||
@ -53,12 +68,14 @@ public class GachaBanner {
|
||||
@Deprecated private int minItemType = -1;
|
||||
@Deprecated private int maxItemType = -1;
|
||||
@Getter private boolean deprecated = false;
|
||||
@Getter private boolean disabled = false;
|
||||
|
||||
private void warnDeprecated(String name, String replacement) {
|
||||
Grasscutter.getLogger().error("Deprecated field found in Banners config: "+name+" was replaced back in early May 2022, use "+replacement+" instead. You MUST remove this field from your config.");
|
||||
this.deprecated = true;
|
||||
}
|
||||
public void onLoad() {
|
||||
// Handle deprecated configs
|
||||
if (eventChance != -1)
|
||||
warnDeprecated("eventChance", "eventChance4 & eventChance5");
|
||||
if (costItem != 0)
|
||||
@ -75,12 +92,30 @@ public class GachaBanner {
|
||||
warnDeprecated("rateUpItems1", "rateUpItems5");
|
||||
if (rateUpItems2.length > 0)
|
||||
warnDeprecated("rateUpItems2", "rateUpItems4");
|
||||
|
||||
// Handle default values
|
||||
if (this.previewPrefabPath != null && this.previewPrefabPath.equals("UI_Tab_" + this.prefabPath))
|
||||
Grasscutter.getLogger().error("Redundant field found in Banners config: previewPrefabPath does not need to be specified if it is identical to prefabPath prefixed with \"UI_Tab_\".");
|
||||
if (this.previewPrefabPath == null || this.previewPrefabPath.isEmpty())
|
||||
this.previewPrefabPath = "UI_Tab_" + this.prefabPath;
|
||||
if (this.gachaType < 0)
|
||||
this.gachaType = this.bannerType.gachaType;
|
||||
if (this.costItemId == 0)
|
||||
this.costItemId = this.bannerType.costItemId;
|
||||
if (this.costItemId10 == 0)
|
||||
this.costItemId10 = this.costItemId;
|
||||
if (this.weights4 == null)
|
||||
this.weights4 = this.bannerType.weights4;
|
||||
if (this.weights5 == null)
|
||||
this.weights5 = this.bannerType.weights5;
|
||||
if (this.eventChance4 < 0)
|
||||
this.eventChance4 = this.bannerType.eventChance4;
|
||||
if (this.eventChance5 < 0)
|
||||
this.eventChance5 = this.bannerType.eventChance5;
|
||||
if (this.fallbackItems5Pool1 == null)
|
||||
this.fallbackItems5Pool1 = this.bannerType.fallbackItems5Pool1;
|
||||
if (this.fallbackItems5Pool2 == null)
|
||||
this.fallbackItems5Pool2 = this.bannerType.fallbackItems5Pool2;
|
||||
}
|
||||
|
||||
public ItemParamData getCost(int numRolls) {
|
||||
@ -196,6 +231,31 @@ public class GachaBanner {
|
||||
}
|
||||
|
||||
public enum BannerType {
|
||||
STANDARD, EVENT, WEAPON;
|
||||
STANDARD(200, 224, DEFAULT_WEIGHTS_4, DEFAULT_WEIGHTS_5, 50, 50, DEFAULT_FALLBACK_ITEMS_5_POOL_1, DEFAULT_FALLBACK_ITEMS_5_POOL_2),
|
||||
BEGINNER(100, 224, DEFAULT_WEIGHTS_4, DEFAULT_WEIGHTS_5, 50, 50, DEFAULT_FALLBACK_ITEMS_5_POOL_1, DEFAULT_FALLBACK_ITEMS_5_POOL_2),
|
||||
EVENT(301, 223, DEFAULT_WEIGHTS_4, DEFAULT_WEIGHTS_5_CHARACTER, 50, 50, DEFAULT_FALLBACK_ITEMS_5_POOL_1, DEFAULT_FALLBACK_ITEMS_5_POOL_2), // Legacy value for CHARACTER
|
||||
CHARACTER(301, 223, DEFAULT_WEIGHTS_4, DEFAULT_WEIGHTS_5_CHARACTER, 50, 50, DEFAULT_FALLBACK_ITEMS_5_POOL_1, EMPTY_POOL),
|
||||
CHARACTER2(400, 223, DEFAULT_WEIGHTS_4, DEFAULT_WEIGHTS_5_CHARACTER, 50, 50, DEFAULT_FALLBACK_ITEMS_5_POOL_1, EMPTY_POOL),
|
||||
WEAPON(302, 223, DEFAULT_WEIGHTS_4_WEAPON, DEFAULT_WEIGHTS_5_WEAPON, 75, 75, EMPTY_POOL, DEFAULT_FALLBACK_ITEMS_5_POOL_2);
|
||||
|
||||
public final int gachaType;
|
||||
public final int costItemId;
|
||||
public final int[][] weights4;
|
||||
public final int[][] weights5;
|
||||
public final int eventChance4;
|
||||
public final int eventChance5;
|
||||
public final int[] fallbackItems5Pool1;
|
||||
public final int[] fallbackItems5Pool2;
|
||||
|
||||
BannerType(int gachaType, int costItemId, int[][] weights4, int[][] weights5, int eventChance4, int eventChance5, int[] fallbackItems5Pool1, int[] fallbackItems5Pool2) {
|
||||
this.gachaType = gachaType;
|
||||
this.costItemId = costItemId;
|
||||
this.weights4 = weights4;
|
||||
this.weights5 = weights5;
|
||||
this.eventChance4 = eventChance4;
|
||||
this.eventChance5 = eventChance5;
|
||||
this.fallbackItems5Pool1 = fallbackItems5Pool1;
|
||||
this.fallbackItems5Pool2 = fallbackItems5Pool2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,8 +45,6 @@ public class GachaSystem extends BaseGameSystem {
|
||||
|
||||
private static final int starglitterId = 221;
|
||||
private static final int stardustId = 222;
|
||||
private int[] fallbackItems4Pool2Default = {11401, 11402, 11403, 11405, 12401, 12402, 12403, 12405, 13401, 13407, 14401, 14402, 14403, 14409, 15401, 15402, 15403, 15405};
|
||||
private int[] fallbackItems5Pool2Default = {11501, 11502, 12501, 12502, 13502, 13505, 14501, 14502, 15501, 15502};
|
||||
|
||||
public GachaSystem(GameServer server) {
|
||||
super(server);
|
||||
@ -69,6 +67,8 @@ public class GachaSystem extends BaseGameSystem {
|
||||
|
||||
public synchronized void load() {
|
||||
getGachaBanners().clear();
|
||||
int autoScheduleId = 1000;
|
||||
int autoSortId = 9000;
|
||||
try {
|
||||
List<GachaBanner> banners = DataLoader.loadTableToList("Banners", GachaBanner.class);
|
||||
if (banners.size() > 0) {
|
||||
@ -76,8 +76,14 @@ public class GachaSystem extends BaseGameSystem {
|
||||
banner.onLoad();
|
||||
if (banner.isDeprecated()) {
|
||||
Grasscutter.getLogger().error("A Banner has not been loaded because it contains one or more deprecated fields. Remove the fields mentioned above and reload.");
|
||||
} else if (banner.isDisabled()) {
|
||||
Grasscutter.getLogger().debug("A Banner has not been loaded because it is disabled.");
|
||||
} else {
|
||||
getGachaBanners().put(banner.getScheduleId(), banner);
|
||||
if (banner.scheduleId < 0)
|
||||
banner.scheduleId = autoScheduleId++;
|
||||
if (banner.sortId < 0)
|
||||
banner.sortId = autoSortId--;
|
||||
getGachaBanners().put(banner.scheduleId, banner);
|
||||
}
|
||||
}
|
||||
Grasscutter.getLogger().debug("Banners successfully loaded.");
|
||||
@ -160,7 +166,7 @@ public class GachaSystem extends BaseGameSystem {
|
||||
private synchronized int doFallbackRarePull(int[] fallback1, int[] fallback2, int rarity, GachaBanner banner, PlayerGachaBannerInfo gachaInfo) {
|
||||
if (fallback1.length < 1) {
|
||||
if (fallback2.length < 1) {
|
||||
return getRandom((rarity==5)? fallbackItems5Pool2Default : fallbackItems4Pool2Default);
|
||||
return getRandom((rarity==5)? GachaBanner.DEFAULT_FALLBACK_ITEMS_5_POOL_2 : GachaBanner.DEFAULT_FALLBACK_ITEMS_4_POOL_2);
|
||||
} else {
|
||||
return getRandom(fallback2);
|
||||
}
|
||||
|
@ -91,6 +91,9 @@ public final class FileUtils {
|
||||
private static final String[] TSJ_JSON_TSV = {"tsj", "json", "tsv"};
|
||||
private static final Path[] DATA_PATHS = {DATA_USER_PATH, DATA_DEFAULT_PATH};
|
||||
public static Path getDataPathTsjJsonTsv(String filename) {
|
||||
return getDataPathTsjJsonTsv(filename, true);
|
||||
}
|
||||
public static Path getDataPathTsjJsonTsv(String filename, boolean fallback) {
|
||||
val name = getFilenameWithoutExtension(filename);
|
||||
for (val data_path : DATA_PATHS) {
|
||||
for (val ext : TSJ_JSON_TSV) {
|
||||
@ -98,7 +101,7 @@ public final class FileUtils {
|
||||
if (Files.exists(path)) return path;
|
||||
}
|
||||
}
|
||||
return DATA_USER_PATH.resolve(name + ".tsj"); // Maybe they want to write to a new file
|
||||
return fallback ? DATA_USER_PATH.resolve(name + ".tsj") : null; // Maybe they want to write to a new file
|
||||
}
|
||||
|
||||
public static Path getDataPath(String path) {
|
||||
|
@ -1,6 +1,94 @@
|
||||
comment gachaType scheduleId bannerType prefabPath titlePath costItemId beginTime endTime sortId rateUpItems5 rateUpItems4 weights5 weights4 fallbackItems5Pool2 fallbackItems5Pool1 fallbackItems4Pool1 eventChance4 eventChance5 costItemId10 costItemAmount10 gachaTimesLimit removeC6FromPool
|
||||
Beginner's Banner. Do not change for no reason. 100 803 EVENT GachaShowPanel_A016 UI_GACHA_SHOW_PANEL_A016_TITLE 224 1924992000 9999 [1034] 8 20
|
||||
Standard 200 893 STANDARD GachaShowPanel_A022 UI_GACHA_SHOW_PANEL_A022_TITLE 224 1924992000 1000 [[1, 75], [73, 150], [90, 10000]] [1006, 1014, 1015, 1020, 1021, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1059, 1064, 1065, 1067, 1068, 1072]
|
||||
Character Event Banner 1 301 903 EVENT GachaShowPanel_A106 UI_GACHA_SHOW_PANEL_A071_TITLE 223 1924992000 9998 [1058] [1050, 1059, 1074] [[1, 80], [73, 80], [90, 10000]] []
|
||||
Character Event Banner 2 400 923 EVENT GachaShowPanel_A107 UI_GACHA_SHOW_PANEL_A037_TITLE 223 1924992000 9998 [1033] [1050, 1059, 1074] [[1, 80], [73, 80], [90, 10000]] []
|
||||
Weapon Event Banner 302 913 WEAPON GachaShowPanel_A108 UI_GACHA_SHOW_PANEL_A021_TITLE 223 1924992000 9997 [14509, 15507] [11401, 12402, 13401, 14401, 15402] [[1, 100], [62, 100], [73, 7800], [80, 10000]] [[1, 600], [7, 600], [8, 6600], [10, 12600]] [] 75 75
|
||||
comment bannerType prefabPath titlePath rateUpItems5 rateUpItems4 disabled costItemId scheduleId sortId beginTime endTime weights5 weights4 fallbackItems5Pool2 fallbackItems5Pool1 fallbackItems4Pool1 eventChance4 eventChance5 costItemId10 costItemAmount10 gachaTimesLimit removeC6FromPool
|
||||
Beginner's Banner. Do not change for no reason. BEGINNER GachaShowPanel_A016 UI_GACHA_SHOW_PANEL_A016_TITLE [1034] 224 803 9999 1924992000 8 20
|
||||
Standard STANDARD GachaShowPanel_A022 UI_GACHA_SHOW_PANEL_A022_TITLE 224 893 1000 1924992000 [[1, 75], [73, 150], [90, 10000]] [1006, 1014, 1015, 1020, 1021, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1059, 1064, 1065, 1067, 1068, 1072]
|
||||
Old Standard image STANDARD GachaShowPanel_A017 UI_GACHA_SHOW_PANEL_A017_TITLE true [1006, 1014, 1015, 1020, 1021, 1023, 1024, 1025, 1027, 1031, 1032, 1034, 1036, 1039, 1043, 1044, 1045, 1048, 1053, 1055, 1056, 1059, 1064, 1065, 1067, 1068, 1072]
|
||||
1.0a character CHARACTER GachaShowPanel_A019 UI_GACHA_SHOW_PANEL_A019_TITLE [1022] [1014, 1031, 1023] true 223 1924992000 [[1, 80], [73, 80], [90, 10000]] []
|
||||
1.0a weapon WEAPON GachaShowPanel_A020 UI_GACHA_SHOW_PANEL_A020_TITLE [11501, 15502] [11402, 12402, 14402, 15402, 13407] true 223 1924992000 [[1, 100], [62, 100], [73, 7800], [80, 10000]] [[1, 600], [7, 600], [8, 6600], [10, 12600]] [] 75 75
|
||||
1.0b character CHARACTER GachaShowPanel_A018 UI_GACHA_SHOW_PANEL_A018_TITLE [1029] [1025, 1034, 1043] true
|
||||
1.0b weapon WEAPON GachaShowPanel_A021 UI_GACHA_SHOW_PANEL_A021_TITLE [14502, 12502] [11403, 15403, 12403, 14403, 13401] true
|
||||
1.1a character CHARACTER GachaShowPanel_A023 UI_GACHA_SHOW_PANEL_A023_TITLE [1033] [1039, 1024, 1027] true
|
||||
1.1a weapon WEAPON GachaShowPanel_A025 UI_GACHA_SHOW_PANEL_A025_TITLE [14504, 15501] [11402, 12405, 14409, 15405, 13407] true
|
||||
1.1b character CHARACTER GachaShowPanel_A024 UI_GACHA_SHOW_PANEL_A024_TITLE [1030] [1044, 1020, 1036] true
|
||||
1.1b weapon WEAPON GachaShowPanel_A026 UI_GACHA_SHOW_PANEL_A026_TITLE [13504, 12504] [11405, 12402, 14401, 15401, 13401] true
|
||||
1.2a character CHARACTER GachaShowPanel_A027 UI_GACHA_SHOW_PANEL_A027_TITLE [1038] [1031, 1043, 1032] true
|
||||
1.2a weapon WEAPON GachaShowPanel_A029 UI_GACHA_SHOW_PANEL_A029_TITLE [11504, 14501] [11401, 12401, 13407, 14403, 15402] true
|
||||
1.2b character CHARACTER GachaShowPanel_A028 UI_GACHA_SHOW_PANEL_A028_TITLE [1037] [1023, 1025, 1034] true
|
||||
1.2b weapon WEAPON GachaShowPanel_A030 UI_GACHA_SHOW_PANEL_A030_TITLE [12501, 15502] [11403, 12402, 13401, 14409, 15401] true
|
||||
1.3a character CHARACTER GachaShowPanel_A031 UI_GACHA_SHOW_PANEL_A031_TITLE [1026] [1039, 1024, 1044] true
|
||||
1.3a weapon WEAPON GachaShowPanel_A034 UI_GACHA_SHOW_PANEL_A034_TITLE [11505, 13505] [11402, 12403, 15405, 14409, 13407] true
|
||||
1.3b character CHARACTER GachaShowPanel_A032 UI_GACHA_SHOW_PANEL_A032_TITLE [1042] [1027, 1032, 1014] true
|
||||
1.3b weapon WEAPON GachaShowPanel_A035 UI_GACHA_SHOW_PANEL_A035_TITLE [13501, 12502] [12410, 13406, 11405, 15403, 14402] true
|
||||
1.3c character CHARACTER GachaShowPanel_A033 UI_GACHA_SHOW_PANEL_A033_TITLE [1046] [1025, 1023, 1036] true
|
||||
1.4a character CHARACTER GachaShowPanel_A036 UI_GACHA_SHOW_PANEL_A036_TITLE [1022] [1043, 1020, 1034] true
|
||||
1.4a weapon WEAPON GachaShowPanel_A038 UI_GACHA_SHOW_PANEL_A038_TITLE [15503, 11502] [11410, 14410, 12401, 15401, 13401] true
|
||||
1.4b character CHARACTER GachaShowPanel_A037 UI_GACHA_SHOW_PANEL_A037_TITLE [1033] [1045, 1014, 1031] true
|
||||
1.4b weapon WEAPON GachaShowPanel_A039 UI_GACHA_SHOW_PANEL_A039_TITLE [15501, 14502] [15410, 11401, 12403, 14401, 13407] true
|
||||
1.5a character CHARACTER GachaShowPanel_A040 UI_GACHA_SHOW_PANEL_A040_TITLE [1030] [1048, 1034, 1039] true
|
||||
1.5a weapon WEAPON GachaShowPanel_A042 UI_GACHA_SHOW_PANEL_A042_TITLE [11504, 14504] [12410, 13406, 11402, 14409, 15403] true
|
||||
1.5b character CHARACTER GachaShowPanel_A041 UI_GACHA_SHOW_PANEL_A041_TITLE [1051] [1044, 1025, 1024] true
|
||||
1.5b weapon WEAPON GachaShowPanel_A043 UI_GACHA_SHOW_PANEL_A043_TITLE [12503, 11501] [11403, 12405, 13401, 14403, 15405] true
|
||||
1.6a character CHARACTER GachaShowPanel_A044 UI_GACHA_SHOW_PANEL_A018_TITLE [1029] [1014, 1043, 1031] true
|
||||
1.6a weapon WEAPON GachaShowPanel_A046 UI_GACHA_SHOW_PANEL_A021_TITLE [12501, 14502] [15412, 11405, 12402, 13407, 14402] true
|
||||
1.6b character CHARACTER GachaShowPanel_A045 UI_GACHA_SHOW_PANEL_A045_TITLE [1047] [1045, 1032, 1020] true
|
||||
1.6b weapon WEAPON GachaShowPanel_A047 UI_GACHA_SHOW_PANEL_A021_TITLE [11503, 14501] [11410, 14410, 15410, 13401, 12401] true
|
||||
2.0a character CHARACTER GachaShowPanel_A048 UI_GACHA_SHOW_PANEL_A048_TITLE [1002] [1027, 1036, 1048] true
|
||||
2.0a weapon WEAPON GachaShowPanel_A050 UI_GACHA_SHOW_PANEL_A021_TITLE [11509, 13502] [12403, 13407, 14401, 11401, 15402] true
|
||||
2.0b character CHARACTER GachaShowPanel_A049 UI_GACHA_SHOW_PANEL_A049_TITLE [1049] [1053, 1039, 1044] true
|
||||
2.0b weapon WEAPON GachaShowPanel_A051 UI_GACHA_SHOW_PANEL_A021_TITLE [15509, 11502] [11403, 12405, 13401, 14403, 15401] true
|
||||
2.1a character CHARACTER GachaShowPanel_A052 UI_GACHA_SHOW_PANEL_A052_TITLE [1052] [1056, 1023, 1043] true
|
||||
2.1a weapon WEAPON GachaShowPanel_A054 UI_GACHA_SHOW_PANEL_A021_TITLE [13509, 12504] [11405, 12402, 13407, 14402, 15403] true
|
||||
2.1b character CHARACTER GachaShowPanel_A053 UI_GACHA_SHOW_PANEL_A053_TITLE [1054] [1045, 1024, 1025] true
|
||||
2.1b weapon WEAPON GachaShowPanel_A055 UI_GACHA_SHOW_PANEL_A021_TITLE [14506, 11505] [11402, 12401, 13401, 14401, 15402] true
|
||||
2.2a character CHARACTER GachaShowPanel_A056 UI_GACHA_SHOW_PANEL_A037_TITLE [1033] [1027, 1036, 1048] true
|
||||
2.2a weapon WEAPON GachaShowPanel_A058 UI_GACHA_SHOW_PANEL_A021_TITLE [15507, 14504] [12416, 11401, 13407, 14409, 15405] true
|
||||
2.2b character CHARACTER GachaShowPanel_A057 UI_GACHA_SHOW_PANEL_A033_TITLE [1046] [1050, 1039, 1053] true
|
||||
2.2b weapon WEAPON GachaShowPanel_A059 UI_GACHA_SHOW_PANEL_A021_TITLE [13501, 15503] [13416, 15416, 11403, 12405, 14402] true
|
||||
2.3a character CHARACTER GachaShowPanel_A060 UI_GACHA_SHOW_PANEL_A027_TITLE [1038] [1032, 1034, 1045] true
|
||||
2.3a character2 CHARACTER2 GachaShowPanel_A062 UI_GACHA_SHOW_PANEL_A041_TITLE [1051] [1032, 1034, 1045] true
|
||||
2.3a weapon WEAPON GachaShowPanel_A063 UI_GACHA_SHOW_PANEL_A021_TITLE [11503, 12503] [14410, 15410, 11405, 12403, 13401] true
|
||||
2.3b character CHARACTER GachaShowPanel_A061 UI_GACHA_SHOW_PANEL_A061_TITLE [1057] [1055, 1014, 1023] true
|
||||
2.3b weapon WEAPON GachaShowPanel_A064 UI_GACHA_SHOW_PANEL_A021_TITLE [12510, 15501] [11410, 15412, 12402, 13407, 14403] true
|
||||
2.4a character CHARACTER GachaShowPanel_A065 UI_GACHA_SHOW_PANEL_A065_TITLE [1063] [1064, 1027, 1036] true
|
||||
2.4a character2 CHARACTER2 GachaShowPanel_A066 UI_GACHA_SHOW_PANEL_A031_TITLE [1026] [1064, 1027, 1036] true
|
||||
2.4a weapon WEAPON GachaShowPanel_A067 UI_GACHA_SHOW_PANEL_A021_TITLE [13507, 13505] [13406, 11402, 12401, 14402, 15401] true
|
||||
2.4b character CHARACTER GachaShowPanel_A068 UI_GACHA_SHOW_PANEL_A040_TITLE [1030] [1025, 1024, 1048] true
|
||||
2.4b character2 CHARACTER2 GachaShowPanel_A069 UI_GACHA_SHOW_PANEL_A028_TITLE [1037] [1025, 1024, 1048] true
|
||||
2.4b weapon WEAPON GachaShowPanel_A070 UI_GACHA_SHOW_PANEL_A021_TITLE [13504, 15502] [12410, 11401, 13401, 14401, 15403] true
|
||||
2.5a character CHARACTER GachaShowPanel_A071 UI_GACHA_SHOW_PANEL_A071_TITLE [1058] [1031, 1039, 1050] true
|
||||
2.5a weapon WEAPON GachaShowPanel_A072 UI_GACHA_SHOW_PANEL_A021_TITLE [14509, 11505] [13416, 11403, 12405, 14409, 15402] true
|
||||
2.5b character CHARACTER GachaShowPanel_A073 UI_GACHA_SHOW_PANEL_A052_TITLE [1052] [1032, 1044, 1056] true
|
||||
2.5b character2 CHARACTER2 GachaShowPanel_A074 UI_GACHA_SHOW_PANEL_A053_TITLE [1054] [1032, 1044, 1056] true
|
||||
2.5b weapon WEAPON GachaShowPanel_A075 UI_GACHA_SHOW_PANEL_A021_TITLE [13509, 14506] [12416, 15416, 11405, 13407, 14403] true
|
||||
2.6a character CHARACTER GachaShowPanel_A076 UI_GACHA_SHOW_PANEL_A076_TITLE [1066] [1043, 1023, 1064] true
|
||||
2.6a character2 CHARACTER2 GachaShowPanel_A077 UI_GACHA_SHOW_PANEL_A036_TITLE [1022] [1043, 1023, 1064] true
|
||||
2.6a weapon WEAPON GachaShowPanel_A078 UI_GACHA_SHOW_PANEL_A021_TITLE [11510, 15503] [11402, 12403, 13401, 14402, 15405] true
|
||||
2.6b character CHARACTER GachaShowPanel_A079 UI_GACHA_SHOW_PANEL_A048_TITLE [1002] [1020, 1045, 1053] true
|
||||
2.6b weapon WEAPON GachaShowPanel_A080 UI_GACHA_SHOW_PANEL_A021_TITLE [11509, 12504] [11401, 12402, 13407, 14401, 15401] true
|
||||
2.7a character CHARACTER GachaShowPanel_A081 UI_GACHA_SHOW_PANEL_A081_TITLE [1060] [1014, 1048, 1034] true
|
||||
2.7a character2 CHARACTER2 GachaShowPanel_A082 UI_GACHA_SHOW_PANEL_A031_TITLE [1026] [1014, 1048, 1034] true
|
||||
2.7a weapon WEAPON GachaShowPanel_A083 UI_GACHA_SHOW_PANEL_A021_TITLE [15508, 13505] [13406, 14409, 12401, 15403, 11403] true
|
||||
2.7b character CHARACTER GachaShowPanel_A084 UI_GACHA_SHOW_PANEL_A061_TITLE [1057] [1065, 1036, 1055] true
|
||||
2.7b weapon WEAPON GachaShowPanel_A085 UI_GACHA_SHOW_PANEL_A021_TITLE [12510, 14504] [12410, 11405, 13401, 14403, 15402] true
|
||||
2.8a character CHARACTER GachaShowPanel_A086 UI_GACHA_SHOW_PANEL_A045_TITLE [1047] [1059, 1027, 1050] true
|
||||
2.8a character2 CHARACTER2 GachaShowPanel_A087 UI_GACHA_SHOW_PANEL_A018_TITLE [1029] [1059, 1027, 1050] true
|
||||
2.8a weapon WEAPON GachaShowPanel_A088 UI_GACHA_SHOW_PANEL_A021_TITLE [11503, 14502] [11410, 15412, 12405, 13407, 14402] true
|
||||
2.8b character CHARACTER GachaShowPanel_A089 UI_GACHA_SHOW_PANEL_A049_TITLE [1049] [1032, 1044, 1064] true
|
||||
2.8b weapon WEAPON GachaShowPanel_A090 UI_GACHA_SHOW_PANEL_A021_TITLE [15509, 11504] [14410, 15410, 11402, 12403, 13401] true
|
||||
3.0a character CHARACTER GachaShowPanel_A091 UI_GACHA_SHOW_PANEL_A091_TITLE [1069] [1067, 1039, 1031] true
|
||||
3.0a character2 CHARACTER2 GachaShowPanel_A092 UI_GACHA_SHOW_PANEL_A040_TITLE [1030] [1067, 1039, 1031] true
|
||||
3.0a weapon WEAPON GachaShowPanel_A093 UI_GACHA_SHOW_PANEL_A021_TITLE [15511, 13504] [11401, 12402, 13407, 14401, 15402] true
|
||||
3.0b character CHARACTER GachaShowPanel_A094 UI_GACHA_SHOW_PANEL_A028_TITLE [1037] [1068, 1043, 1025] true
|
||||
3.0b character2 CHARACTER2 GachaShowPanel_A095 UI_GACHA_SHOW_PANEL_A053_TITLE [1054] [1068, 1043, 1025] true
|
||||
3.0b weapon WEAPON GachaShowPanel_A096 UI_GACHA_SHOW_PANEL_A021_TITLE [14506, 15502] [11403, 12401, 13401, 14409, 15405] true
|
||||
3.1a character CHARACTER GachaShowPanel_A097 UI_GACHA_SHOW_PANEL_A097_TITLE [1071] [1072, 1065, 1053] true
|
||||
3.1a character2 CHARACTER2 GachaShowPanel_A098 UI_GACHA_SHOW_PANEL_A036_TITLE [1022] [1072, 1065, 1053] true
|
||||
3.1a weapon WEAPON GachaShowPanel_A099 UI_GACHA_SHOW_PANEL_A021_TITLE [13511, 15503] [12415, 11405, 13407, 14403, 15401] true
|
||||
3.1b character CHARACTER GachaShowPanel_A100 UI_GACHA_SHOW_PANEL_A0100_TITLE [1070] [1014, 1024, 1023] true
|
||||
3.1b character2 CHARACTER2 GachaShowPanel_A101 UI_GACHA_SHOW_PANEL_A027_TITLE [1038] [1014, 1024, 1023] true
|
||||
3.1b weapon WEAPON GachaShowPanel_A102 UI_GACHA_SHOW_PANEL_A021_TITLE [11511, 11505] [11418, 14416, 12405, 13401, 15403] true
|
||||
3.2a character CHARACTER GachaShowPanel_A103 UI_GACHA_SHOW_PANEL_A0100_TITLE [1073] [1020, 1034, 1032] true
|
||||
3.2a character2 CHARACTER2 GachaShowPanel_A104 UI_GACHA_SHOW_PANEL_A049_TITLE [1049] [1020, 1034, 1032] true
|
||||
3.2a weapon WEAPON GachaShowPanel_A105 UI_GACHA_SHOW_PANEL_A021_TITLE [14511, 15509] [11402, 12403, 13407, 14402, 15405] true
|
||||
3.2b character CHARACTER GachaShowPanel_A106 UI_GACHA_SHOW_PANEL_A071_TITLE [1058] [1074, 1050, 1059]
|
||||
3.2b character2 CHARACTER2 GachaShowPanel_A107 UI_GACHA_SHOW_PANEL_A037_TITLE [1033] [1074, 1050, 1059]
|
||||
3.2b weapon WEAPON GachaShowPanel_A108 UI_GACHA_SHOW_PANEL_A021_TITLE [14509, 15507] [11401, 12402, 13401, 14401, 15402]
|
Loading…
Reference in New Issue
Block a user