From 84bf78324389c2b1777a2e9fd322814266e820c3 Mon Sep 17 00:00:00 2001
From: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 5 Nov 2022 12:49:35 +0000
Subject: [PATCH] Fix whitespace [skip actions]

---
 .../data/excels/BattlePassMissionData.java    |  62 ++--
 .../grasscutter/data/excels/DungeonData.java  |  22 +-
 .../grasscutter/data/excels/MonsterData.java  |  36 +-
 .../data/excels/RewardPreviewData.java        |  34 +-
 .../grasscutter/game/props/FightProperty.java | 294 +++++++--------
 .../java/emu/grasscutter/task/TaskMap.java    | 348 +++++++++---------
 6 files changed, 398 insertions(+), 398 deletions(-)

diff --git a/src/main/java/emu/grasscutter/data/excels/BattlePassMissionData.java b/src/main/java/emu/grasscutter/data/excels/BattlePassMissionData.java
index 15a65bcd..979d1f2b 100644
--- a/src/main/java/emu/grasscutter/data/excels/BattlePassMissionData.java
+++ b/src/main/java/emu/grasscutter/data/excels/BattlePassMissionData.java
@@ -21,46 +21,46 @@ public class BattlePassMissionData extends GameResource {
     private int progress;
     private TriggerConfig triggerConfig;
     private BattlePassMissionRefreshType refreshType;
-    
+
     private transient Set<Integer> mainParams;
-    
+
     public WatcherTriggerType getTriggerType() {
-		return this.getTriggerConfig().getTriggerType();
-	}
-    
-	public boolean isCycleRefresh() {
-		return getRefreshType() == null || getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE;
-	}
-    
+        return this.getTriggerConfig().getTriggerType();
+    }
+
+    public boolean isCycleRefresh() {
+        return getRefreshType() == null || getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE;
+    }
+
     public boolean isValidRefreshType() {
-    	return getRefreshType() == null || 
-    		getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE || 
-    		getScheduleId() == 2701;
+        return getRefreshType() == null ||
+            getRefreshType() == BattlePassMissionRefreshType.BATTLE_PASS_MISSION_REFRESH_CYCLE_CROSS_SCHEDULE ||
+            getScheduleId() == 2701;
     }
-    
+
     @Override
     public void onLoad() {
-    	if (this.getTriggerConfig() != null && getTriggerConfig().getParamList()[0].length() > 0) {
-    		this.mainParams = Arrays.stream(getTriggerConfig().getParamList()[0].split("[:;,]")).map(Integer::parseInt).collect(Collectors.toSet());
-    	}
+        if (this.getTriggerConfig() != null && getTriggerConfig().getParamList()[0].length() > 0) {
+            this.mainParams = Arrays.stream(getTriggerConfig().getParamList()[0].split("[:;,]")).map(Integer::parseInt).collect(Collectors.toSet());
+        }
     }
-    
+
     @Getter
     public static class TriggerConfig {
-    	private WatcherTriggerType triggerType;
-    	private String[] paramList;
+        private WatcherTriggerType triggerType;
+        private String[] paramList;
     }
-    
+
     public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission toProto() {
-		var protoBuilder = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.newBuilder();
-		
-		protoBuilder
-			.setMissionId(getId())
-			.setTotalProgress(this.getProgress())
-			.setRewardBattlePassPoint(this.getAddPoint())
-			.setMissionStatus(MissionStatus.MISSION_STATUS_UNFINISHED)
-			.setMissionType(this.getRefreshType() == null ? 0 : this.getRefreshType().getValue());
-		
-		return protoBuilder.build();
-	}
+        var protoBuilder = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.newBuilder();
+
+        protoBuilder
+            .setMissionId(getId())
+            .setTotalProgress(this.getProgress())
+            .setRewardBattlePassPoint(this.getAddPoint())
+            .setMissionStatus(MissionStatus.MISSION_STATUS_UNFINISHED)
+            .setMissionType(this.getRefreshType() == null ? 0 : this.getRefreshType().getValue());
+
+        return protoBuilder.build();
+    }
 }
diff --git a/src/main/java/emu/grasscutter/data/excels/DungeonData.java b/src/main/java/emu/grasscutter/data/excels/DungeonData.java
index 47567226..c52cdc16 100644
--- a/src/main/java/emu/grasscutter/data/excels/DungeonData.java
+++ b/src/main/java/emu/grasscutter/data/excels/DungeonData.java
@@ -8,23 +8,23 @@ import lombok.Getter;
 @ResourceType(name = "DungeonExcelConfigData.json")
 public class DungeonData extends GameResource {
     @Getter(onMethod = @__(@Override))
-	private int id;
+    private int id;
     @Getter private int sceneId;
     @Getter private int showLevel;
-	private int passRewardPreviewID;
-	private String involveType; // TODO enum
-	
-	private RewardPreviewData previewData;
+    private int passRewardPreviewID;
+    private String involveType; // TODO enum
+
+    private RewardPreviewData previewData;
 
     @Getter private int statueCostID;
     @Getter private int statueCostCount;
 
     public RewardPreviewData getRewardPreview() {return previewData;}
 
-	@Override
-	public void onLoad() {
-		if (this.passRewardPreviewID > 0) {
-			this.previewData = GameData.getRewardPreviewDataMap().get(this.passRewardPreviewID);
-		}
-	}
+    @Override
+    public void onLoad() {
+        if (this.passRewardPreviewID > 0) {
+            this.previewData = GameData.getRewardPreviewDataMap().get(this.passRewardPreviewID);
+        }
+    }
 }
diff --git a/src/main/java/emu/grasscutter/data/excels/MonsterData.java b/src/main/java/emu/grasscutter/data/excels/MonsterData.java
index de31c338..08ce1098 100644
--- a/src/main/java/emu/grasscutter/data/excels/MonsterData.java
+++ b/src/main/java/emu/grasscutter/data/excels/MonsterData.java
@@ -56,7 +56,7 @@ public class MonsterData extends GameResource {
     private List<PropGrowCurve> propGrowCurves;
     private long nameTextMapHash;
     private int campID;
-    
+
     // Transient
     private int weaponId;
     private MonsterDescribeData describeData;
@@ -78,23 +78,23 @@ public class MonsterData extends GameResource {
         };
     }
 
-	@Override
-	public void onLoad() {
-		this.describeData = GameData.getMonsterDescribeDataMap().get(this.getDescribeId());
-		
-		for (int id : this.equips) {
-			if (id == 0) {
-				continue;
-			}
-			GadgetData gadget = GameData.getGadgetDataMap().get(id);
-			if (gadget == null) {
-				continue;
-			}
-			if (gadget.getItemJsonName().equals("Default_MonsterWeapon")) {
-				this.weaponId = id;
-			}
-		}
-	}
+    @Override
+    public void onLoad() {
+        this.describeData = GameData.getMonsterDescribeDataMap().get(this.getDescribeId());
+
+        for (int id : this.equips) {
+            if (id == 0) {
+                continue;
+            }
+            GadgetData gadget = GameData.getGadgetDataMap().get(id);
+            if (gadget == null) {
+                continue;
+            }
+            if (gadget.getItemJsonName().equals("Default_MonsterWeapon")) {
+                this.weaponId = id;
+            }
+        }
+    }
 
     @Getter
     public class HpDrops {
diff --git a/src/main/java/emu/grasscutter/data/excels/RewardPreviewData.java b/src/main/java/emu/grasscutter/data/excels/RewardPreviewData.java
index 866bf037..81271cc4 100644
--- a/src/main/java/emu/grasscutter/data/excels/RewardPreviewData.java
+++ b/src/main/java/emu/grasscutter/data/excels/RewardPreviewData.java
@@ -13,23 +13,23 @@ import emu.grasscutter.data.common.ItemParamStringData;
 @ResourceType(name = "RewardPreviewExcelConfigData.json", loadPriority = LoadPriority.HIGH)
 public class RewardPreviewData extends GameResource {
     @Getter(onMethod = @__(@Override))
-	private int id;
-	private ItemParamStringData[] previewItems;
-	private ItemParamData[] previewItemsArray;
+    private int id;
+    private ItemParamStringData[] previewItems;
+    private ItemParamData[] previewItemsArray;
 
-	public ItemParamData[] getPreviewItems() {
-		return previewItemsArray;
-	}
+    public ItemParamData[] getPreviewItems() {
+        return previewItemsArray;
+    }
 
-	@Override
-	public void onLoad() {
-		if (this.previewItems != null && this.previewItems.length > 0) {
-			this.previewItemsArray = Arrays.stream(this.previewItems)
-					.filter(d -> d.getId() > 0 && d.getCount() != null && !d.getCount().isEmpty())
-					.map(ItemParamStringData::toItemParamData)
-					.toArray(size -> new ItemParamData[size]);
-		} else {
-			this.previewItemsArray = new ItemParamData[0];
-		}
-	}
+    @Override
+    public void onLoad() {
+        if (this.previewItems != null && this.previewItems.length > 0) {
+            this.previewItemsArray = Arrays.stream(this.previewItems)
+                    .filter(d -> d.getId() > 0 && d.getCount() != null && !d.getCount().isEmpty())
+                    .map(ItemParamStringData::toItemParamData)
+                    .toArray(size -> new ItemParamData[size]);
+        } else {
+            this.previewItemsArray = new ItemParamData[0];
+        }
+    }
 }
diff --git a/src/main/java/emu/grasscutter/game/props/FightProperty.java b/src/main/java/emu/grasscutter/game/props/FightProperty.java
index 599b1564..32c45f1b 100644
--- a/src/main/java/emu/grasscutter/game/props/FightProperty.java
+++ b/src/main/java/emu/grasscutter/game/props/FightProperty.java
@@ -16,131 +16,131 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
 import lombok.Getter;
 
 public enum FightProperty {
-	FIGHT_PROP_NONE(0),
-	FIGHT_PROP_BASE_HP(1),
-	FIGHT_PROP_HP(2),
-	FIGHT_PROP_HP_PERCENT(3),
-	FIGHT_PROP_BASE_ATTACK(4),
-	FIGHT_PROP_ATTACK(5),
-	FIGHT_PROP_ATTACK_PERCENT(6),
-	FIGHT_PROP_BASE_DEFENSE(7),
-	FIGHT_PROP_DEFENSE(8),
-	FIGHT_PROP_DEFENSE_PERCENT(9),
-	FIGHT_PROP_BASE_SPEED(10),
-	FIGHT_PROP_SPEED_PERCENT(11),
-	FIGHT_PROP_HP_MP_PERCENT(12),
-	FIGHT_PROP_ATTACK_MP_PERCENT(13),
-	FIGHT_PROP_CRITICAL(20),
-	FIGHT_PROP_ANTI_CRITICAL(21),
-	FIGHT_PROP_CRITICAL_HURT(22),
-	FIGHT_PROP_CHARGE_EFFICIENCY(23),
-	FIGHT_PROP_ADD_HURT(24),
-	FIGHT_PROP_SUB_HURT(25),
-	FIGHT_PROP_HEAL_ADD(26),
-	FIGHT_PROP_HEALED_ADD(27),
-	FIGHT_PROP_ELEMENT_MASTERY(28),
-	FIGHT_PROP_PHYSICAL_SUB_HURT(29),
-	FIGHT_PROP_PHYSICAL_ADD_HURT(30),
-	FIGHT_PROP_DEFENCE_IGNORE_RATIO(31),
-	FIGHT_PROP_DEFENCE_IGNORE_DELTA(32),
-	FIGHT_PROP_FIRE_ADD_HURT(40),
-	FIGHT_PROP_ELEC_ADD_HURT(41),
-	FIGHT_PROP_WATER_ADD_HURT(42),
-	FIGHT_PROP_GRASS_ADD_HURT(43),
-	FIGHT_PROP_WIND_ADD_HURT(44),
-	FIGHT_PROP_ROCK_ADD_HURT(45),
-	FIGHT_PROP_ICE_ADD_HURT(46),
-	FIGHT_PROP_HIT_HEAD_ADD_HURT(47),
-	FIGHT_PROP_FIRE_SUB_HURT(50),
-	FIGHT_PROP_ELEC_SUB_HURT(51),
-	FIGHT_PROP_WATER_SUB_HURT(52),
-	FIGHT_PROP_GRASS_SUB_HURT(53),
-	FIGHT_PROP_WIND_SUB_HURT(54),
-	FIGHT_PROP_ROCK_SUB_HURT(55),
-	FIGHT_PROP_ICE_SUB_HURT(56),
-	FIGHT_PROP_EFFECT_HIT(60),
-	FIGHT_PROP_EFFECT_RESIST(61),
-	FIGHT_PROP_FREEZE_RESIST(62),
-	FIGHT_PROP_TORPOR_RESIST(63),
-	FIGHT_PROP_DIZZY_RESIST(64),
-	FIGHT_PROP_FREEZE_SHORTEN(65),
-	FIGHT_PROP_TORPOR_SHORTEN(66),
-	FIGHT_PROP_DIZZY_SHORTEN(67),
-	FIGHT_PROP_MAX_FIRE_ENERGY(70),
-	FIGHT_PROP_MAX_ELEC_ENERGY(71),
-	FIGHT_PROP_MAX_WATER_ENERGY(72),
-	FIGHT_PROP_MAX_GRASS_ENERGY(73),
-	FIGHT_PROP_MAX_WIND_ENERGY(74),
-	FIGHT_PROP_MAX_ICE_ENERGY(75),
-	FIGHT_PROP_MAX_ROCK_ENERGY(76),
-	FIGHT_PROP_SKILL_CD_MINUS_RATIO(80),
-	FIGHT_PROP_SHIELD_COST_MINUS_RATIO(81),
-	FIGHT_PROP_CUR_FIRE_ENERGY(1000),
-	FIGHT_PROP_CUR_ELEC_ENERGY(1001),
-	FIGHT_PROP_CUR_WATER_ENERGY(1002),
-	FIGHT_PROP_CUR_GRASS_ENERGY(1003),
-	FIGHT_PROP_CUR_WIND_ENERGY(1004),
-	FIGHT_PROP_CUR_ICE_ENERGY(1005),
-	FIGHT_PROP_CUR_ROCK_ENERGY(1006),
-	FIGHT_PROP_CUR_HP(1010),
-	FIGHT_PROP_MAX_HP(2000),
-	FIGHT_PROP_CUR_ATTACK(2001),
-	FIGHT_PROP_CUR_DEFENSE(2002),
-	FIGHT_PROP_CUR_SPEED(2003),
-	FIGHT_PROP_NONEXTRA_ATTACK(3000),
-	FIGHT_PROP_NONEXTRA_DEFENSE(3001),
-	FIGHT_PROP_NONEXTRA_CRITICAL(3002),
-	FIGHT_PROP_NONEXTRA_ANTI_CRITICAL(3003),
-	FIGHT_PROP_NONEXTRA_CRITICAL_HURT(3004),
-	FIGHT_PROP_NONEXTRA_CHARGE_EFFICIENCY(3005),
-	FIGHT_PROP_NONEXTRA_ELEMENT_MASTERY(3006),
-	FIGHT_PROP_NONEXTRA_PHYSICAL_SUB_HURT(3007),
-	FIGHT_PROP_NONEXTRA_FIRE_ADD_HURT(3008),
-	FIGHT_PROP_NONEXTRA_ELEC_ADD_HURT(3009),
-	FIGHT_PROP_NONEXTRA_WATER_ADD_HURT(3010),
-	FIGHT_PROP_NONEXTRA_GRASS_ADD_HURT(3011),
-	FIGHT_PROP_NONEXTRA_WIND_ADD_HURT(3012),
-	FIGHT_PROP_NONEXTRA_ROCK_ADD_HURT(3013),
-	FIGHT_PROP_NONEXTRA_ICE_ADD_HURT(3014),
-	FIGHT_PROP_NONEXTRA_FIRE_SUB_HURT(3015),
-	FIGHT_PROP_NONEXTRA_ELEC_SUB_HURT(3016),
-	FIGHT_PROP_NONEXTRA_WATER_SUB_HURT(3017),
-	FIGHT_PROP_NONEXTRA_GRASS_SUB_HURT(3018),
-	FIGHT_PROP_NONEXTRA_WIND_SUB_HURT(3019),
-	FIGHT_PROP_NONEXTRA_ROCK_SUB_HURT(3020),
-	FIGHT_PROP_NONEXTRA_ICE_SUB_HURT(3021),
-	FIGHT_PROP_NONEXTRA_SKILL_CD_MINUS_RATIO(3022),
-	FIGHT_PROP_NONEXTRA_SHIELD_COST_MINUS_RATIO(3023),
-	FIGHT_PROP_NONEXTRA_PHYSICAL_ADD_HURT(3024);
-	
-	private final int id;
-	private static final Int2ObjectMap<FightProperty> map = new Int2ObjectOpenHashMap<>();
-	private static final Map<String, FightProperty> stringMap = new HashMap<>();
-	
-	public static final int[] fightProps = new int[] {1, 4, 7, 20, 21, 22, 23, 26, 27, 28, 29, 30, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 53, 54, 55, 56, 2000, 2001, 2002, 2003, 1010};
-	
-	static {
-		Stream.of(values()).forEach(e -> {
-			map.put(e.getId(), e);
-			stringMap.put(e.name(), e);
-		});
-	}
-	
-	private FightProperty(int id) {
-		this.id = id;
-	}
-
-	public int getId() {
-		return id;
-	}
-	
-	public static FightProperty getPropById(int value) {
-		return map.getOrDefault(value, FIGHT_PROP_NONE);
-	}
-	
-	public static FightProperty getPropByName(String name) {
-		return stringMap.getOrDefault(name, FIGHT_PROP_NONE);
-	}
+    FIGHT_PROP_NONE(0),
+    FIGHT_PROP_BASE_HP(1),
+    FIGHT_PROP_HP(2),
+    FIGHT_PROP_HP_PERCENT(3),
+    FIGHT_PROP_BASE_ATTACK(4),
+    FIGHT_PROP_ATTACK(5),
+    FIGHT_PROP_ATTACK_PERCENT(6),
+    FIGHT_PROP_BASE_DEFENSE(7),
+    FIGHT_PROP_DEFENSE(8),
+    FIGHT_PROP_DEFENSE_PERCENT(9),
+    FIGHT_PROP_BASE_SPEED(10),
+    FIGHT_PROP_SPEED_PERCENT(11),
+    FIGHT_PROP_HP_MP_PERCENT(12),
+    FIGHT_PROP_ATTACK_MP_PERCENT(13),
+    FIGHT_PROP_CRITICAL(20),
+    FIGHT_PROP_ANTI_CRITICAL(21),
+    FIGHT_PROP_CRITICAL_HURT(22),
+    FIGHT_PROP_CHARGE_EFFICIENCY(23),
+    FIGHT_PROP_ADD_HURT(24),
+    FIGHT_PROP_SUB_HURT(25),
+    FIGHT_PROP_HEAL_ADD(26),
+    FIGHT_PROP_HEALED_ADD(27),
+    FIGHT_PROP_ELEMENT_MASTERY(28),
+    FIGHT_PROP_PHYSICAL_SUB_HURT(29),
+    FIGHT_PROP_PHYSICAL_ADD_HURT(30),
+    FIGHT_PROP_DEFENCE_IGNORE_RATIO(31),
+    FIGHT_PROP_DEFENCE_IGNORE_DELTA(32),
+    FIGHT_PROP_FIRE_ADD_HURT(40),
+    FIGHT_PROP_ELEC_ADD_HURT(41),
+    FIGHT_PROP_WATER_ADD_HURT(42),
+    FIGHT_PROP_GRASS_ADD_HURT(43),
+    FIGHT_PROP_WIND_ADD_HURT(44),
+    FIGHT_PROP_ROCK_ADD_HURT(45),
+    FIGHT_PROP_ICE_ADD_HURT(46),
+    FIGHT_PROP_HIT_HEAD_ADD_HURT(47),
+    FIGHT_PROP_FIRE_SUB_HURT(50),
+    FIGHT_PROP_ELEC_SUB_HURT(51),
+    FIGHT_PROP_WATER_SUB_HURT(52),
+    FIGHT_PROP_GRASS_SUB_HURT(53),
+    FIGHT_PROP_WIND_SUB_HURT(54),
+    FIGHT_PROP_ROCK_SUB_HURT(55),
+    FIGHT_PROP_ICE_SUB_HURT(56),
+    FIGHT_PROP_EFFECT_HIT(60),
+    FIGHT_PROP_EFFECT_RESIST(61),
+    FIGHT_PROP_FREEZE_RESIST(62),
+    FIGHT_PROP_TORPOR_RESIST(63),
+    FIGHT_PROP_DIZZY_RESIST(64),
+    FIGHT_PROP_FREEZE_SHORTEN(65),
+    FIGHT_PROP_TORPOR_SHORTEN(66),
+    FIGHT_PROP_DIZZY_SHORTEN(67),
+    FIGHT_PROP_MAX_FIRE_ENERGY(70),
+    FIGHT_PROP_MAX_ELEC_ENERGY(71),
+    FIGHT_PROP_MAX_WATER_ENERGY(72),
+    FIGHT_PROP_MAX_GRASS_ENERGY(73),
+    FIGHT_PROP_MAX_WIND_ENERGY(74),
+    FIGHT_PROP_MAX_ICE_ENERGY(75),
+    FIGHT_PROP_MAX_ROCK_ENERGY(76),
+    FIGHT_PROP_SKILL_CD_MINUS_RATIO(80),
+    FIGHT_PROP_SHIELD_COST_MINUS_RATIO(81),
+    FIGHT_PROP_CUR_FIRE_ENERGY(1000),
+    FIGHT_PROP_CUR_ELEC_ENERGY(1001),
+    FIGHT_PROP_CUR_WATER_ENERGY(1002),
+    FIGHT_PROP_CUR_GRASS_ENERGY(1003),
+    FIGHT_PROP_CUR_WIND_ENERGY(1004),
+    FIGHT_PROP_CUR_ICE_ENERGY(1005),
+    FIGHT_PROP_CUR_ROCK_ENERGY(1006),
+    FIGHT_PROP_CUR_HP(1010),
+    FIGHT_PROP_MAX_HP(2000),
+    FIGHT_PROP_CUR_ATTACK(2001),
+    FIGHT_PROP_CUR_DEFENSE(2002),
+    FIGHT_PROP_CUR_SPEED(2003),
+    FIGHT_PROP_NONEXTRA_ATTACK(3000),
+    FIGHT_PROP_NONEXTRA_DEFENSE(3001),
+    FIGHT_PROP_NONEXTRA_CRITICAL(3002),
+    FIGHT_PROP_NONEXTRA_ANTI_CRITICAL(3003),
+    FIGHT_PROP_NONEXTRA_CRITICAL_HURT(3004),
+    FIGHT_PROP_NONEXTRA_CHARGE_EFFICIENCY(3005),
+    FIGHT_PROP_NONEXTRA_ELEMENT_MASTERY(3006),
+    FIGHT_PROP_NONEXTRA_PHYSICAL_SUB_HURT(3007),
+    FIGHT_PROP_NONEXTRA_FIRE_ADD_HURT(3008),
+    FIGHT_PROP_NONEXTRA_ELEC_ADD_HURT(3009),
+    FIGHT_PROP_NONEXTRA_WATER_ADD_HURT(3010),
+    FIGHT_PROP_NONEXTRA_GRASS_ADD_HURT(3011),
+    FIGHT_PROP_NONEXTRA_WIND_ADD_HURT(3012),
+    FIGHT_PROP_NONEXTRA_ROCK_ADD_HURT(3013),
+    FIGHT_PROP_NONEXTRA_ICE_ADD_HURT(3014),
+    FIGHT_PROP_NONEXTRA_FIRE_SUB_HURT(3015),
+    FIGHT_PROP_NONEXTRA_ELEC_SUB_HURT(3016),
+    FIGHT_PROP_NONEXTRA_WATER_SUB_HURT(3017),
+    FIGHT_PROP_NONEXTRA_GRASS_SUB_HURT(3018),
+    FIGHT_PROP_NONEXTRA_WIND_SUB_HURT(3019),
+    FIGHT_PROP_NONEXTRA_ROCK_SUB_HURT(3020),
+    FIGHT_PROP_NONEXTRA_ICE_SUB_HURT(3021),
+    FIGHT_PROP_NONEXTRA_SKILL_CD_MINUS_RATIO(3022),
+    FIGHT_PROP_NONEXTRA_SHIELD_COST_MINUS_RATIO(3023),
+    FIGHT_PROP_NONEXTRA_PHYSICAL_ADD_HURT(3024);
+
+    private final int id;
+    private static final Int2ObjectMap<FightProperty> map = new Int2ObjectOpenHashMap<>();
+    private static final Map<String, FightProperty> stringMap = new HashMap<>();
+
+    public static final int[] fightProps = new int[] {1, 4, 7, 20, 21, 22, 23, 26, 27, 28, 29, 30, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 53, 54, 55, 56, 2000, 2001, 2002, 2003, 1010};
+
+    static {
+        Stream.of(values()).forEach(e -> {
+            map.put(e.getId(), e);
+            stringMap.put(e.name(), e);
+        });
+    }
+
+    private FightProperty(int id) {
+        this.id = id;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public static FightProperty getPropById(int value) {
+        return map.getOrDefault(value, FIGHT_PROP_NONE);
+    }
+
+    public static FightProperty getPropByName(String name) {
+        return stringMap.getOrDefault(name, FIGHT_PROP_NONE);
+    }
 
     public static FightProperty getPropByShortName(String name) {
         return shortNameMap.getOrDefault(name, FIGHT_PROP_NONE);
@@ -153,28 +153,28 @@ public enum FightProperty {
     // This was originally for relic properties so some names might not be applicable for e.g. setstats
     private static final Map<String, FightProperty> shortNameMap = Map.ofEntries(
         // Normal relic stats
-		entry("hp", FIGHT_PROP_HP),
-		entry("atk", FIGHT_PROP_ATTACK),
-		entry("def", FIGHT_PROP_DEFENSE),
-		entry("hp%", FIGHT_PROP_HP_PERCENT),
-		entry("atk%", FIGHT_PROP_ATTACK_PERCENT),
-		entry("def%", FIGHT_PROP_DEFENSE_PERCENT),
-		entry("em", FIGHT_PROP_ELEMENT_MASTERY),
-		entry("er", FIGHT_PROP_CHARGE_EFFICIENCY),
-		entry("hb", FIGHT_PROP_HEAL_ADD),
+        entry("hp", FIGHT_PROP_HP),
+        entry("atk", FIGHT_PROP_ATTACK),
+        entry("def", FIGHT_PROP_DEFENSE),
+        entry("hp%", FIGHT_PROP_HP_PERCENT),
+        entry("atk%", FIGHT_PROP_ATTACK_PERCENT),
+        entry("def%", FIGHT_PROP_DEFENSE_PERCENT),
+        entry("em", FIGHT_PROP_ELEMENT_MASTERY),
+        entry("er", FIGHT_PROP_CHARGE_EFFICIENCY),
+        entry("hb", FIGHT_PROP_HEAL_ADD),
         entry("heal", FIGHT_PROP_HEAL_ADD),
-		entry("cd", FIGHT_PROP_CRITICAL_HURT),
-		entry("cdmg", FIGHT_PROP_CRITICAL_HURT),
-		entry("cr", FIGHT_PROP_CRITICAL),
-		entry("crate", FIGHT_PROP_CRITICAL),
-		entry("phys%", FIGHT_PROP_PHYSICAL_ADD_HURT),
-		entry("dendro%", FIGHT_PROP_GRASS_ADD_HURT),
-		entry("geo%", FIGHT_PROP_ROCK_ADD_HURT),
-		entry("anemo%", FIGHT_PROP_WIND_ADD_HURT),
-		entry("hydro%", FIGHT_PROP_WATER_ADD_HURT),
-		entry("cryo%", FIGHT_PROP_ICE_ADD_HURT),
-		entry("electro%", FIGHT_PROP_ELEC_ADD_HURT),
-		entry("pyro%", FIGHT_PROP_FIRE_ADD_HURT),
+        entry("cd", FIGHT_PROP_CRITICAL_HURT),
+        entry("cdmg", FIGHT_PROP_CRITICAL_HURT),
+        entry("cr", FIGHT_PROP_CRITICAL),
+        entry("crate", FIGHT_PROP_CRITICAL),
+        entry("phys%", FIGHT_PROP_PHYSICAL_ADD_HURT),
+        entry("dendro%", FIGHT_PROP_GRASS_ADD_HURT),
+        entry("geo%", FIGHT_PROP_ROCK_ADD_HURT),
+        entry("anemo%", FIGHT_PROP_WIND_ADD_HURT),
+        entry("hydro%", FIGHT_PROP_WATER_ADD_HURT),
+        entry("cryo%", FIGHT_PROP_ICE_ADD_HURT),
+        entry("electro%", FIGHT_PROP_ELEC_ADD_HURT),
+        entry("pyro%", FIGHT_PROP_FIRE_ADD_HURT),
         // Other stats
         entry("maxhp", FIGHT_PROP_MAX_HP),
         entry("dmg", FIGHT_PROP_ADD_HURT),  // This seems to get reset after attacks
@@ -191,7 +191,7 @@ public enum FightProperty {
         entry("reshydro", FIGHT_PROP_WATER_SUB_HURT),
         entry("respyro", FIGHT_PROP_FIRE_SUB_HURT),
         entry("resphys", FIGHT_PROP_PHYSICAL_SUB_HURT)
-	);
+    );
 
     private static final List<FightProperty> flatProps = Arrays.asList(
         FIGHT_PROP_BASE_HP, FIGHT_PROP_HP, FIGHT_PROP_BASE_ATTACK, FIGHT_PROP_ATTACK, FIGHT_PROP_BASE_DEFENSE,
diff --git a/src/main/java/emu/grasscutter/task/TaskMap.java b/src/main/java/emu/grasscutter/task/TaskMap.java
index 27e83c53..99201d98 100644
--- a/src/main/java/emu/grasscutter/task/TaskMap.java
+++ b/src/main/java/emu/grasscutter/task/TaskMap.java
@@ -1,174 +1,174 @@
-package emu.grasscutter.task;
-
-import emu.grasscutter.Grasscutter;
-
-import org.quartz.*;
-import org.quartz.impl.StdSchedulerFactory;
-import org.reflections.Reflections;
-
-import java.util.*;
-
-@SuppressWarnings({"UnusedReturnValue", "unused"})
-public final class TaskMap {
-    private final Map<String, TaskHandler> tasks = new HashMap<>();
-    private final Map<String, Task> annotations = new HashMap<>();
-    private final Map<String, TaskHandler> afterReset = new HashMap<>();
-    private final SchedulerFactory schedulerFactory = new StdSchedulerFactory();
-    
-    public TaskMap() {
-        this(false);
-    }
-
-    public TaskMap(boolean scan) {
-        if (scan) this.scan();
-    }
-
-    public static TaskMap getInstance() {
-        return Grasscutter.getGameServer().getTaskMap();
-    }
-
-    public void resetNow() {
-        // Unregister all tasks
-        for (TaskHandler task : this.tasks.values()) {
-            unregisterTask(task);
-        }
-
-        // Run all afterReset tasks
-        for (TaskHandler task : this.afterReset.values()) {
-            try {
-                task.restartExecute();
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-
-        // Remove all afterReset tasks
-        this.afterReset.clear();
-
-        // Register all tasks
-        for (TaskHandler task : this.tasks.values()) {
-            registerTask(task.getClass().getAnnotation(Task.class).taskName(), task);
-        }
-    }
-
-    public TaskMap unregisterTask(TaskHandler task) {
-        this.tasks.remove(task.getClass().getAnnotation(Task.class).taskName());
-        this.annotations.remove(task.getClass().getAnnotation(Task.class).taskName());
-
-        try {
-            Scheduler scheduler = schedulerFactory.getScheduler();
-            scheduler.deleteJob(new JobKey(task.getClass().getAnnotation(Task.class).taskName()));
-        } catch (SchedulerException e) {
-            e.printStackTrace();
-        }
-
-        task.onDisable();
-
-        return this;
-    }
-
-    public boolean pauseTask(String taskName) {
-        try {
-            Scheduler scheduler = schedulerFactory.getScheduler();
-            scheduler.pauseJob(new JobKey(taskName));
-        } catch (SchedulerException e) {
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-    }
-
-    public boolean resumeTask(String taskName) {
-        try {
-            Scheduler scheduler = schedulerFactory.getScheduler();
-            scheduler.resumeJob(new JobKey(taskName));
-        } catch (SchedulerException e) {
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-    }
-
-    public boolean cancelTask(String taskName) {
-        Task task = this.annotations.get(taskName);
-        if (task == null) return false;
-        try {
-            this.unregisterTask(this.tasks.get(taskName));
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-    }
-
-    public TaskMap registerTask(String taskName, TaskHandler task) {
-        Task annotation = task.getClass().getAnnotation(Task.class);
-        this.annotations.put(taskName, annotation);
-        this.tasks.put(taskName, task);
-
-        // register task
-        try {
-            Scheduler scheduler = schedulerFactory.getScheduler();
-            JobDetail job = JobBuilder
-                        .newJob(task.getClass())
-                        .withIdentity(taskName)
-                        .build();
-            
-            Trigger convTrigger = TriggerBuilder.newTrigger()
-                        .withIdentity(annotation.triggerName())
-                        .withSchedule(CronScheduleBuilder.cronSchedule(annotation.taskCronExpression()))
-                        .build();
-            
-            scheduler.scheduleJob(job, convTrigger);
-
-            if (annotation.executeImmediately()) {
-                task.execute(null);
-            }
-            task.onEnable();
-        } catch (SchedulerException e) {
-            e.printStackTrace();
-        }
-
-        return this;
-    }
-
-    public List<TaskHandler> getHandlersAsList() {
-        return new ArrayList<>(this.tasks.values());
-    }
-
-    public HashMap<String, TaskHandler> getHandlers() {
-        return new LinkedHashMap<>(this.tasks);
-    }
-
-    public TaskHandler getHandler(String taskName) {
-        return this.tasks.get(taskName);
-    }
-
-    private void scan() {
-        Reflections reflector = Grasscutter.reflector;
-        Set<Class<?>> classes = reflector.getTypesAnnotatedWith(Task.class);
-        classes.forEach(annotated -> {
-            try {
-                Task taskData = annotated.getAnnotation(Task.class);
-                Object object = annotated.getDeclaredConstructor().newInstance();
-                if (object instanceof TaskHandler) {
-                    this.registerTask(taskData.taskName(), (TaskHandler) object);
-                    if (taskData.executeImmediatelyAfterReset()) {
-                        this.afterReset.put(taskData.taskName(), (TaskHandler) object);
-                    }
-                } else {
-                    Grasscutter.getLogger().error("Class " + annotated.getName() + " is not a TaskHandler!");
-                }
-            } catch (Exception exception) {
-                Grasscutter.getLogger().error("Failed to register task handler for " + annotated.getSimpleName(), exception);
-            }
-        });
-        try {
-            Scheduler scheduler = schedulerFactory.getScheduler();
-            scheduler.start();
-        } catch (SchedulerException e) {
-            e.printStackTrace();
-        }
-
-    }
-}
+package emu.grasscutter.task;
+
+import emu.grasscutter.Grasscutter;
+
+import org.quartz.*;
+import org.quartz.impl.StdSchedulerFactory;
+import org.reflections.Reflections;
+
+import java.util.*;
+
+@SuppressWarnings({"UnusedReturnValue", "unused"})
+public final class TaskMap {
+    private final Map<String, TaskHandler> tasks = new HashMap<>();
+    private final Map<String, Task> annotations = new HashMap<>();
+    private final Map<String, TaskHandler> afterReset = new HashMap<>();
+    private final SchedulerFactory schedulerFactory = new StdSchedulerFactory();
+
+    public TaskMap() {
+        this(false);
+    }
+
+    public TaskMap(boolean scan) {
+        if (scan) this.scan();
+    }
+
+    public static TaskMap getInstance() {
+        return Grasscutter.getGameServer().getTaskMap();
+    }
+
+    public void resetNow() {
+        // Unregister all tasks
+        for (TaskHandler task : this.tasks.values()) {
+            unregisterTask(task);
+        }
+
+        // Run all afterReset tasks
+        for (TaskHandler task : this.afterReset.values()) {
+            try {
+                task.restartExecute();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        // Remove all afterReset tasks
+        this.afterReset.clear();
+
+        // Register all tasks
+        for (TaskHandler task : this.tasks.values()) {
+            registerTask(task.getClass().getAnnotation(Task.class).taskName(), task);
+        }
+    }
+
+    public TaskMap unregisterTask(TaskHandler task) {
+        this.tasks.remove(task.getClass().getAnnotation(Task.class).taskName());
+        this.annotations.remove(task.getClass().getAnnotation(Task.class).taskName());
+
+        try {
+            Scheduler scheduler = schedulerFactory.getScheduler();
+            scheduler.deleteJob(new JobKey(task.getClass().getAnnotation(Task.class).taskName()));
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+        }
+
+        task.onDisable();
+
+        return this;
+    }
+
+    public boolean pauseTask(String taskName) {
+        try {
+            Scheduler scheduler = schedulerFactory.getScheduler();
+            scheduler.pauseJob(new JobKey(taskName));
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
+
+    public boolean resumeTask(String taskName) {
+        try {
+            Scheduler scheduler = schedulerFactory.getScheduler();
+            scheduler.resumeJob(new JobKey(taskName));
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
+
+    public boolean cancelTask(String taskName) {
+        Task task = this.annotations.get(taskName);
+        if (task == null) return false;
+        try {
+            this.unregisterTask(this.tasks.get(taskName));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
+
+    public TaskMap registerTask(String taskName, TaskHandler task) {
+        Task annotation = task.getClass().getAnnotation(Task.class);
+        this.annotations.put(taskName, annotation);
+        this.tasks.put(taskName, task);
+
+        // register task
+        try {
+            Scheduler scheduler = schedulerFactory.getScheduler();
+            JobDetail job = JobBuilder
+                        .newJob(task.getClass())
+                        .withIdentity(taskName)
+                        .build();
+
+            Trigger convTrigger = TriggerBuilder.newTrigger()
+                        .withIdentity(annotation.triggerName())
+                        .withSchedule(CronScheduleBuilder.cronSchedule(annotation.taskCronExpression()))
+                        .build();
+
+            scheduler.scheduleJob(job, convTrigger);
+
+            if (annotation.executeImmediately()) {
+                task.execute(null);
+            }
+            task.onEnable();
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+        }
+
+        return this;
+    }
+
+    public List<TaskHandler> getHandlersAsList() {
+        return new ArrayList<>(this.tasks.values());
+    }
+
+    public HashMap<String, TaskHandler> getHandlers() {
+        return new LinkedHashMap<>(this.tasks);
+    }
+
+    public TaskHandler getHandler(String taskName) {
+        return this.tasks.get(taskName);
+    }
+
+    private void scan() {
+        Reflections reflector = Grasscutter.reflector;
+        Set<Class<?>> classes = reflector.getTypesAnnotatedWith(Task.class);
+        classes.forEach(annotated -> {
+            try {
+                Task taskData = annotated.getAnnotation(Task.class);
+                Object object = annotated.getDeclaredConstructor().newInstance();
+                if (object instanceof TaskHandler) {
+                    this.registerTask(taskData.taskName(), (TaskHandler) object);
+                    if (taskData.executeImmediatelyAfterReset()) {
+                        this.afterReset.put(taskData.taskName(), (TaskHandler) object);
+                    }
+                } else {
+                    Grasscutter.getLogger().error("Class " + annotated.getName() + " is not a TaskHandler!");
+                }
+            } catch (Exception exception) {
+                Grasscutter.getLogger().error("Failed to register task handler for " + annotated.getSimpleName(), exception);
+            }
+        });
+        try {
+            Scheduler scheduler = schedulerFactory.getScheduler();
+            scheduler.start();
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+        }
+
+    }
+}
-- 
GitLab