mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-21 03:15:59 +01:00
Initial commit
This commit is contained in:
211
src/main/java/emu/grasscutter/game/props/ActionReason.java
Normal file
211
src/main/java/emu/grasscutter/game/props/ActionReason.java
Normal file
@@ -0,0 +1,211 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum ActionReason {
|
||||
None(0),
|
||||
QuestItem(1),
|
||||
QuestReward(2),
|
||||
Trifle(3),
|
||||
Shop(4),
|
||||
PlayerUpgradeReward(5),
|
||||
AddAvatar(6),
|
||||
GadgetEnvAnimal(7),
|
||||
MonsterEnvAnimal(8),
|
||||
Compound(9),
|
||||
Cook(10),
|
||||
Gather(11),
|
||||
MailAttachment(12),
|
||||
CityLevelupReturn(15),
|
||||
CityLevelupReward(17),
|
||||
AreaExploreReward(18),
|
||||
UnlockPointReward(19),
|
||||
DungeonFirstPass(20),
|
||||
DungeonPass(21),
|
||||
ChangeElemType(23),
|
||||
FetterOpen(25),
|
||||
DailyTaskScore(26),
|
||||
DailyTaskHost(27),
|
||||
RandTaskHost(28),
|
||||
Expedition(29),
|
||||
Gacha(30),
|
||||
Combine(31),
|
||||
RandTaskGuest(32),
|
||||
DailyTaskGuest(33),
|
||||
ForgeOutput(34),
|
||||
ForgeReturn(35),
|
||||
InitAvatar(36),
|
||||
MonsterDie(37),
|
||||
Gm(38),
|
||||
OpenChest(39),
|
||||
GadgetDie(40),
|
||||
MonsterChangeHp(41),
|
||||
SubfieldDrop(42),
|
||||
PushTipsReward(43),
|
||||
ActivityMonsterDrop(44),
|
||||
ActivityGather(45),
|
||||
ActivitySubfieldDrop(46),
|
||||
TowerScheduleReward(47),
|
||||
TowerFloorStarReward(48),
|
||||
TowerFirstPassReward(49),
|
||||
TowerDailyReward(50),
|
||||
HitClientTrivialEntity(51),
|
||||
OpenWorldBossChest(52),
|
||||
MaterialDeleteReturn(53),
|
||||
SignInReward(54),
|
||||
OpenBlossomChest(55),
|
||||
Recharge(56),
|
||||
BonusActivityReward(57),
|
||||
TowerCommemorativeReward(58),
|
||||
TowerSkipFloorReward(59),
|
||||
RechargeBonus(60),
|
||||
RechargeCard(61),
|
||||
RechargeCardDaily(62),
|
||||
RechargeCardReplace(63),
|
||||
RechargeCardReplaceFree(64),
|
||||
RechargePlayReplace(65),
|
||||
MpPlayTakeReward(66),
|
||||
ActivityWatcher(67),
|
||||
SalesmanDeliverItem(68),
|
||||
SalesmanReward(69),
|
||||
Rebate(70),
|
||||
McoinExchangeHcoin(71),
|
||||
DailyTaskExchangeLegendaryKey(72),
|
||||
UnlockPersonLine(73),
|
||||
FetterLevelReward(74),
|
||||
BuyResin(75),
|
||||
RechargePackage(76),
|
||||
DeliveryDailyReward(77),
|
||||
CityReputationLevel(78),
|
||||
CityReputationQuest(79),
|
||||
CityReputationRequest(80),
|
||||
CityReputationExplore(81),
|
||||
OffergingLevel(82),
|
||||
RoutineHost(83),
|
||||
RoutineGuest(84),
|
||||
TreasureMapSpotToken(89),
|
||||
TreasureMapBonusLevelReward(90),
|
||||
TreasureMapMpReward(91),
|
||||
Convert(92),
|
||||
OverflowTransform(93),
|
||||
ActivityAvatarSelectionReward(96),
|
||||
ActivityWatcherBatch(97),
|
||||
HitTreeDrop(98),
|
||||
GetHomeLevelupReward(99),
|
||||
HomeDefaultFurniture(100),
|
||||
ActivityCond(101),
|
||||
BattlePassNotify(102),
|
||||
PlayerUseItem(1001),
|
||||
DropItem(1002),
|
||||
WeaponUpgrade(1011),
|
||||
WeaponPromote(1012),
|
||||
WeaponAwaken(1013),
|
||||
RelicUpgrade(1014),
|
||||
Ability(1015),
|
||||
DungeonStatueDrop(1016),
|
||||
OfflineMsg(1017),
|
||||
AvatarUpgrade(1018),
|
||||
AvatarPromote(1019),
|
||||
QuestAction(1021),
|
||||
CityLevelup(1022),
|
||||
UpgradeSkill(1024),
|
||||
UnlockTalent(1025),
|
||||
UpgradeProudSkill(1026),
|
||||
PlayerLevelLimitUp(1027),
|
||||
DungeonDaily(1028),
|
||||
ItemGiving(1030),
|
||||
ForgeCost(1031),
|
||||
InvestigationReward(1032),
|
||||
InvestigationTargetReward(1033),
|
||||
GadgetInteract(1034),
|
||||
SeaLampCiMaterial(1036),
|
||||
SeaLampContributionReward(1037),
|
||||
SeaLampPhaseReward(1038),
|
||||
SeaLampFlyLamp(1039),
|
||||
AutoRecover(1040),
|
||||
ActivityExpireItem(1041),
|
||||
SubCoinNegative(1042),
|
||||
BargainDeduct(1043),
|
||||
BattlePassPaidReward(1044),
|
||||
BattlePassLevelReward(1045),
|
||||
TrialAvatarActivityFirstPassReward(1046),
|
||||
BuyBattlePassLevel(1047),
|
||||
GrantBirthdayBenefit(1048),
|
||||
AchievementReward(1049),
|
||||
AchievementGoalReward(1050),
|
||||
FirstShareToSocialNetwork(1051),
|
||||
DestroyMaterial(1052),
|
||||
CodexLevelupReward(1053),
|
||||
HuntingOfferReward(1054),
|
||||
UseWidgetAnchorPoint(1055),
|
||||
UseWidgetBonfire(1056),
|
||||
UngradeWeaponReturnMaterial(1057),
|
||||
UseWidgetOneoffGatherPointDetector(1058),
|
||||
UseWidgetClientCollector(1059),
|
||||
UseWidgetClientDetector(1060),
|
||||
TakeGeneralReward(1061),
|
||||
AsterTakeSpecialReward(1062),
|
||||
RemoveCodexBook(1063),
|
||||
OfferingItem(1064),
|
||||
UseWidgetGadgetBuilder(1065),
|
||||
EffigyFirstPassReward(1066),
|
||||
EffigyReward(1067),
|
||||
ReunionFirstGiftReward(1068),
|
||||
ReunionSignInReward(1069),
|
||||
ReunionWatcherReward(1070),
|
||||
SalesmanMpReward(1071),
|
||||
ActionReasionAvatarPromoteReward(1072),
|
||||
BlessingRedeemReward(1073),
|
||||
ActionMiracleRingReward(1074),
|
||||
ExpeditionReward(1075),
|
||||
TreasureMapRemoveDetector(1076),
|
||||
MechanicusDungeonTicket(1077),
|
||||
MechanicusLevelupGear(1078),
|
||||
MechanicusBattleSettle(1079),
|
||||
RegionSearchReward(1080),
|
||||
UnlockCoopChapter(1081),
|
||||
TakeCoopReward(1082),
|
||||
FleurFairDungeonReward(1083),
|
||||
ActivityScore(1084),
|
||||
ChannellerSlabOneoffDungeonReward(1085),
|
||||
FurnitureMakeStart(1086),
|
||||
FurnitureMakeTake(1087),
|
||||
FurnitureMakeCancel(1088),
|
||||
FurnitureMakeFastFinish(1089),
|
||||
ChannellerSlabLoopDungeonFirstPassReward(1090),
|
||||
ChannellerSlabLoopDungeonScoreReward(1091),
|
||||
HomeLimitedShopBuy(1092),
|
||||
HomeCoinCollect(1093);
|
||||
|
||||
private final int value;
|
||||
private static final Int2ObjectMap<ActionReason> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, ActionReason> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private ActionReason(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static ActionReason getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, None);
|
||||
}
|
||||
|
||||
public static ActionReason getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, None);
|
||||
}
|
||||
}
|
||||
45
src/main/java/emu/grasscutter/game/props/ClimateType.java
Normal file
45
src/main/java/emu/grasscutter/game/props/ClimateType.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum ClimateType {
|
||||
CLIMATE_NONE(0),
|
||||
CLIMATE_SUNNY(1),
|
||||
CLIMATE_CLOUDY(2),
|
||||
CLIMATE_RAIN(3),
|
||||
CLIMATE_THUNDERSTORM(4),
|
||||
CLIMATE_SNOW(5),
|
||||
CLIMATE_MIST(6);
|
||||
|
||||
private final int value;
|
||||
private static final Int2ObjectMap<ClimateType> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, ClimateType> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private ClimateType(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static ClimateType getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, CLIMATE_NONE);
|
||||
}
|
||||
|
||||
public static ClimateType getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, CLIMATE_NONE);
|
||||
}
|
||||
}
|
||||
76
src/main/java/emu/grasscutter/game/props/ElementType.java
Normal file
76
src/main/java/emu/grasscutter/game/props/ElementType.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import emu.grasscutter.utils.Utils;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum ElementType {
|
||||
None (0, FightProperty.FIGHT_PROP_MAX_FIRE_ENERGY),
|
||||
Fire (1, FightProperty.FIGHT_PROP_MAX_FIRE_ENERGY, 10101, "TeamResonance_Fire_Lv2"),
|
||||
Water (2, FightProperty.FIGHT_PROP_MAX_WATER_ENERGY, 10201, "TeamResonance_Water_Lv2"),
|
||||
Grass (3, FightProperty.FIGHT_PROP_MAX_GRASS_ENERGY),
|
||||
Electric (4, FightProperty.FIGHT_PROP_MAX_ELEC_ENERGY, 10401, "TeamResonance_Electric_Lv2"),
|
||||
Ice (5, FightProperty.FIGHT_PROP_MAX_ICE_ENERGY, 10601, "TeamResonance_Ice_Lv2"),
|
||||
Frozen (6, FightProperty.FIGHT_PROP_MAX_ICE_ENERGY),
|
||||
Wind (7, FightProperty.FIGHT_PROP_MAX_WIND_ENERGY, 10301, "TeamResonance_Wind_Lv2"),
|
||||
Rock (8, FightProperty.FIGHT_PROP_MAX_ROCK_ENERGY, 10701, "TeamResonance_Rock_Lv2"),
|
||||
AntiFire (9, FightProperty.FIGHT_PROP_MAX_FIRE_ENERGY),
|
||||
Default (255, FightProperty.FIGHT_PROP_MAX_FIRE_ENERGY, 10801, "TeamResonance_AllDifferent");
|
||||
|
||||
private final int value;
|
||||
private final int teamResonanceId;
|
||||
private final FightProperty energyProperty;
|
||||
private final int configHash;
|
||||
private static final Int2ObjectMap<ElementType> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, ElementType> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private ElementType(int value, FightProperty energyProperty) {
|
||||
this(value, energyProperty, 0, null);
|
||||
}
|
||||
|
||||
private ElementType(int value, FightProperty energyProperty, int teamResonanceId, String configName) {
|
||||
this.value = value;
|
||||
this.energyProperty = energyProperty;
|
||||
this.teamResonanceId = teamResonanceId;
|
||||
if (configName != null) {
|
||||
this.configHash = Utils.abilityHash(configName);
|
||||
} else {
|
||||
this.configHash = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public FightProperty getEnergyProperty() {
|
||||
return energyProperty;
|
||||
}
|
||||
|
||||
public int getTeamResonanceId() {
|
||||
return teamResonanceId;
|
||||
}
|
||||
|
||||
public int getConfigHash() {
|
||||
return configHash;
|
||||
}
|
||||
|
||||
public static ElementType getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, None);
|
||||
}
|
||||
|
||||
public static ElementType getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, None);
|
||||
}
|
||||
}
|
||||
70
src/main/java/emu/grasscutter/game/props/EnterReason.java
Normal file
70
src/main/java/emu/grasscutter/game/props/EnterReason.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum EnterReason {
|
||||
None(0),
|
||||
Login(1),
|
||||
DungeonReplay(11),
|
||||
DungeonReviveOnWaypoint(12),
|
||||
DungeonEnter(13),
|
||||
DungeonQuit(14),
|
||||
Gm(21),
|
||||
QuestRollback(31),
|
||||
Revival(32),
|
||||
PersonalScene(41),
|
||||
TransPoint(42),
|
||||
ClientTransmit(43),
|
||||
ForceDragBack(44),
|
||||
TeamKick(51),
|
||||
TeamJoin(52),
|
||||
TeamBack(53),
|
||||
Muip(54),
|
||||
DungeonInviteAccept(55),
|
||||
Lua(56),
|
||||
ActivityLoadTerrain(57),
|
||||
HostFromSingleToMp(58),
|
||||
MpPlay(59),
|
||||
AnchorPoint(60),
|
||||
LuaSkipUi(61),
|
||||
ReloadTerrain(62),
|
||||
DraftTransfer(63),
|
||||
EnterHome(64),
|
||||
ExitHome(65),
|
||||
ChangeHomeModule(66),
|
||||
Gallery(67),
|
||||
HomeSceneJump(68),
|
||||
HideAndSeek(69);
|
||||
|
||||
private final int value;
|
||||
private static final Int2ObjectMap<EnterReason> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, EnterReason> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private EnterReason(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static EnterReason getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, None);
|
||||
}
|
||||
|
||||
public static EnterReason getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, None);
|
||||
}
|
||||
}
|
||||
21
src/main/java/emu/grasscutter/game/props/EntityIdType.java
Normal file
21
src/main/java/emu/grasscutter/game/props/EntityIdType.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
public enum EntityIdType {
|
||||
AVATAR (0x01),
|
||||
MONSTER (0x02),
|
||||
NPC (0x03),
|
||||
GADGET (0x04),
|
||||
WEAPON (0x06),
|
||||
TEAM (0x09),
|
||||
MPLEVEL (0x0b);
|
||||
|
||||
private final int id;
|
||||
|
||||
private EntityIdType(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
136
src/main/java/emu/grasscutter/game/props/FightProperty.java
Normal file
136
src/main/java/emu/grasscutter/game/props/FightProperty.java
Normal file
@@ -0,0 +1,136 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
100
src/main/java/emu/grasscutter/game/props/GrowCurve.java
Normal file
100
src/main/java/emu/grasscutter/game/props/GrowCurve.java
Normal file
@@ -0,0 +1,100 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum GrowCurve {
|
||||
GROW_CURVE_NONE(0),
|
||||
GROW_CURVE_HP(1),
|
||||
GROW_CURVE_ATTACK(2),
|
||||
GROW_CURVE_STAMINA(3),
|
||||
GROW_CURVE_STRIKE(4),
|
||||
GROW_CURVE_ANTI_STRIKE(5),
|
||||
GROW_CURVE_ANTI_STRIKE1(6),
|
||||
GROW_CURVE_ANTI_STRIKE2(7),
|
||||
GROW_CURVE_ANTI_STRIKE3(8),
|
||||
GROW_CURVE_STRIKE_HURT(9),
|
||||
GROW_CURVE_ELEMENT(10),
|
||||
GROW_CURVE_KILL_EXP(11),
|
||||
GROW_CURVE_DEFENSE(12),
|
||||
GROW_CURVE_ATTACK_BOMB(13),
|
||||
GROW_CURVE_HP_LITTLEMONSTER(14),
|
||||
GROW_CURVE_ELEMENT_MASTERY(15),
|
||||
GROW_CURVE_PROGRESSION(16),
|
||||
GROW_CURVE_DEFENDING(17),
|
||||
GROW_CURVE_MHP(18),
|
||||
GROW_CURVE_MATK(19),
|
||||
GROW_CURVE_TOWERATK(20),
|
||||
GROW_CURVE_HP_S5(21),
|
||||
GROW_CURVE_HP_S4(22),
|
||||
GROW_CURVE_HP_2(23),
|
||||
GROW_CURVE_ATTACK_S5(31),
|
||||
GROW_CURVE_ATTACK_S4(32),
|
||||
GROW_CURVE_ATTACK_S3(33),
|
||||
GROW_CURVE_STRIKE_S5(34),
|
||||
GROW_CURVE_DEFENSE_S5(41),
|
||||
GROW_CURVE_DEFENSE_S4(42),
|
||||
GROW_CURVE_ATTACK_101(1101),
|
||||
GROW_CURVE_ATTACK_102(1102),
|
||||
GROW_CURVE_ATTACK_103(1103),
|
||||
GROW_CURVE_ATTACK_104(1104),
|
||||
GROW_CURVE_ATTACK_105(1105),
|
||||
GROW_CURVE_ATTACK_201(1201),
|
||||
GROW_CURVE_ATTACK_202(1202),
|
||||
GROW_CURVE_ATTACK_203(1203),
|
||||
GROW_CURVE_ATTACK_204(1204),
|
||||
GROW_CURVE_ATTACK_205(1205),
|
||||
GROW_CURVE_ATTACK_301(1301),
|
||||
GROW_CURVE_ATTACK_302(1302),
|
||||
GROW_CURVE_ATTACK_303(1303),
|
||||
GROW_CURVE_ATTACK_304(1304),
|
||||
GROW_CURVE_ATTACK_305(1305),
|
||||
GROW_CURVE_CRITICAL_101(2101),
|
||||
GROW_CURVE_CRITICAL_102(2102),
|
||||
GROW_CURVE_CRITICAL_103(2103),
|
||||
GROW_CURVE_CRITICAL_104(2104),
|
||||
GROW_CURVE_CRITICAL_105(2105),
|
||||
GROW_CURVE_CRITICAL_201(2201),
|
||||
GROW_CURVE_CRITICAL_202(2202),
|
||||
GROW_CURVE_CRITICAL_203(2203),
|
||||
GROW_CURVE_CRITICAL_204(2204),
|
||||
GROW_CURVE_CRITICAL_205(2205),
|
||||
GROW_CURVE_CRITICAL_301(2301),
|
||||
GROW_CURVE_CRITICAL_302(2302),
|
||||
GROW_CURVE_CRITICAL_303(2303),
|
||||
GROW_CURVE_CRITICAL_304(2304),
|
||||
GROW_CURVE_CRITICAL_305(2305);
|
||||
|
||||
private final int id;
|
||||
private static final Int2ObjectMap<GrowCurve> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, GrowCurve> 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 GrowCurve(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public static GrowCurve getPropById(int value) {
|
||||
return map.getOrDefault(value, GROW_CURVE_NONE);
|
||||
}
|
||||
|
||||
public static GrowCurve getPropByName(String name) {
|
||||
return stringMap.getOrDefault(name, GROW_CURVE_NONE);
|
||||
}
|
||||
}
|
||||
42
src/main/java/emu/grasscutter/game/props/LifeState.java
Normal file
42
src/main/java/emu/grasscutter/game/props/LifeState.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum LifeState {
|
||||
LIFE_NONE(0),
|
||||
LIFE_ALIVE(1),
|
||||
LIFE_DEAD(2),
|
||||
LIFE_REVIVE(3);
|
||||
|
||||
private final int value;
|
||||
private static final Int2ObjectMap<LifeState> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, LifeState> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private LifeState(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static LifeState getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, LIFE_NONE);
|
||||
}
|
||||
|
||||
public static LifeState getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, LIFE_NONE);
|
||||
}
|
||||
}
|
||||
204
src/main/java/emu/grasscutter/game/props/OpenState.java
Normal file
204
src/main/java/emu/grasscutter/game/props/OpenState.java
Normal file
@@ -0,0 +1,204 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum OpenState {
|
||||
OPEN_STATE_NONE(0),
|
||||
OPEN_STATE_PAIMON(1),
|
||||
OPEN_STATE_PAIMON_NAVIGATION(2),
|
||||
OPEN_STATE_AVATAR_PROMOTE(3),
|
||||
OPEN_STATE_AVATAR_TALENT(4),
|
||||
OPEN_STATE_WEAPON_PROMOTE(5),
|
||||
OPEN_STATE_WEAPON_AWAKEN(6),
|
||||
OPEN_STATE_QUEST_REMIND(7),
|
||||
OPEN_STATE_GAME_GUIDE(8),
|
||||
OPEN_STATE_COOK(9),
|
||||
OPEN_STATE_WEAPON_UPGRADE(10),
|
||||
OPEN_STATE_RELIQUARY_UPGRADE(11),
|
||||
OPEN_STATE_RELIQUARY_PROMOTE(12),
|
||||
OPEN_STATE_WEAPON_PROMOTE_GUIDE(13),
|
||||
OPEN_STATE_WEAPON_CHANGE_GUIDE(14),
|
||||
OPEN_STATE_PLAYER_LVUP_GUIDE(15),
|
||||
OPEN_STATE_FRESHMAN_GUIDE(16),
|
||||
OPEN_STATE_SKIP_FRESHMAN_GUIDE(17),
|
||||
OPEN_STATE_GUIDE_MOVE_CAMERA(18),
|
||||
OPEN_STATE_GUIDE_SCALE_CAMERA(19),
|
||||
OPEN_STATE_GUIDE_KEYBOARD(20),
|
||||
OPEN_STATE_GUIDE_MOVE(21),
|
||||
OPEN_STATE_GUIDE_JUMP(22),
|
||||
OPEN_STATE_GUIDE_SPRINT(23),
|
||||
OPEN_STATE_GUIDE_MAP(24),
|
||||
OPEN_STATE_GUIDE_ATTACK(25),
|
||||
OPEN_STATE_GUIDE_FLY(26),
|
||||
OPEN_STATE_GUIDE_TALENT(27),
|
||||
OPEN_STATE_GUIDE_RELIC(28),
|
||||
OPEN_STATE_GUIDE_RELIC_PROM(29),
|
||||
OPEN_STATE_COMBINE(30),
|
||||
OPEN_STATE_GACHA(31),
|
||||
OPEN_STATE_GUIDE_GACHA(32),
|
||||
OPEN_STATE_GUIDE_TEAM(33),
|
||||
OPEN_STATE_GUIDE_PROUD(34),
|
||||
OPEN_STATE_GUIDE_AVATAR_PROMOTE(35),
|
||||
OPEN_STATE_GUIDE_ADVENTURE_CARD(36),
|
||||
OPEN_STATE_FORGE(37),
|
||||
OPEN_STATE_GUIDE_BAG(38),
|
||||
OPEN_STATE_EXPEDITION(39),
|
||||
OPEN_STATE_GUIDE_ADVENTURE_DAILYTASK(40),
|
||||
OPEN_STATE_GUIDE_ADVENTURE_DUNGEON(41),
|
||||
OPEN_STATE_TOWER(42),
|
||||
OPEN_STATE_WORLD_STAMINA(43),
|
||||
OPEN_STATE_TOWER_FIRST_ENTER(44),
|
||||
OPEN_STATE_RESIN(45),
|
||||
OPEN_STATE_LIMIT_REGION_FRESHMEAT(47),
|
||||
OPEN_STATE_LIMIT_REGION_GLOBAL(48),
|
||||
OPEN_STATE_MULTIPLAYER(49),
|
||||
OPEN_STATE_GUIDE_MOUSEPC(50),
|
||||
OPEN_STATE_GUIDE_MULTIPLAYER(51),
|
||||
OPEN_STATE_GUIDE_DUNGEONREWARD(52),
|
||||
OPEN_STATE_GUIDE_BLOSSOM(53),
|
||||
OPEN_STATE_AVATAR_FASHION(54),
|
||||
OPEN_STATE_PHOTOGRAPH(55),
|
||||
OPEN_STATE_GUIDE_KSLQUEST(56),
|
||||
OPEN_STATE_PERSONAL_LINE(57),
|
||||
OPEN_STATE_GUIDE_PERSONAL_LINE(58),
|
||||
OPEN_STATE_GUIDE_APPEARANCE(59),
|
||||
OPEN_STATE_GUIDE_PROCESS(60),
|
||||
OPEN_STATE_GUIDE_PERSONAL_LINE_KEY(61),
|
||||
OPEN_STATE_GUIDE_WIDGET(62),
|
||||
OPEN_STATE_GUIDE_ACTIVITY_SKILL_ASTER(63),
|
||||
OPEN_STATE_GUIDE_COLDCLIMATE(64),
|
||||
OPEN_STATE_DERIVATIVE_MALL(65),
|
||||
OPEN_STATE_GUIDE_EXITMULTIPLAYER(66),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_BUILD(67),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_REBUILD(68),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_CARD(69),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_MONSTER(70),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_MISSION_CHECK(71),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_BUILD_SELECT(72),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_CHALLENGE_START(73),
|
||||
OPEN_STATE_GUIDE_CONVERT(74),
|
||||
OPEN_STATE_GUIDE_THEATREMACHANICUS_MULTIPLAYER(75),
|
||||
OPEN_STATE_GUIDE_COOP_TASK(76),
|
||||
OPEN_STATE_GUIDE_HOMEWORLD_ADEPTIABODE(77),
|
||||
OPEN_STATE_GUIDE_HOMEWORLD_DEPLOY(78),
|
||||
OPEN_STATE_GUIDE_CHANNELLERSLAB_EQUIP(79),
|
||||
OPEN_STATE_GUIDE_CHANNELLERSLAB_MP_SOLUTION(80),
|
||||
OPEN_STATE_GUIDE_CHANNELLERSLAB_POWER(81),
|
||||
OPEN_STATE_GUIDE_HIDEANDSEEK_SKILL(82),
|
||||
OPEN_STATE_GUIDE_HOMEWORLD_MAPLIST(83),
|
||||
OPEN_STATE_GUIDE_RELICRESOLVE(84),
|
||||
OPEN_STATE_GUIDE_GGUIDE(85),
|
||||
OPEN_STATE_GUIDE_GGUIDE_HINT(86),
|
||||
OPEN_STATE_CITY_REPUATION_MENGDE(800),
|
||||
OPEN_STATE_CITY_REPUATION_LIYUE(801),
|
||||
OPEN_STATE_CITY_REPUATION_UI_HINT(802),
|
||||
OPEN_STATE_CITY_REPUATION_INAZUMA(803),
|
||||
OPEN_STATE_SHOP_TYPE_MALL(900),
|
||||
OPEN_STATE_SHOP_TYPE_RECOMMANDED(901),
|
||||
OPEN_STATE_SHOP_TYPE_GENESISCRYSTAL(902),
|
||||
OPEN_STATE_SHOP_TYPE_GIFTPACKAGE(903),
|
||||
OPEN_STATE_SHOP_TYPE_PAIMON(1001),
|
||||
OPEN_STATE_SHOP_TYPE_CITY(1002),
|
||||
OPEN_STATE_SHOP_TYPE_BLACKSMITH(1003),
|
||||
OPEN_STATE_SHOP_TYPE_GROCERY(1004),
|
||||
OPEN_STATE_SHOP_TYPE_FOOD(1005),
|
||||
OPEN_STATE_SHOP_TYPE_SEA_LAMP(1006),
|
||||
OPEN_STATE_SHOP_TYPE_VIRTUAL_SHOP(1007),
|
||||
OPEN_STATE_SHOP_TYPE_LIYUE_GROCERY(1008),
|
||||
OPEN_STATE_SHOP_TYPE_LIYUE_SOUVENIR(1009),
|
||||
OPEN_STATE_SHOP_TYPE_LIYUE_RESTAURANT(1010),
|
||||
OPEN_STATE_SHOP_TYPE_INAZUMA_SOUVENIR(1011),
|
||||
OPEN_STATE_SHOP_TYPE_NPC_TOMOKI(1012),
|
||||
OPEN_ADVENTURE_MANUAL(1100),
|
||||
OPEN_ADVENTURE_MANUAL_CITY_MENGDE(1101),
|
||||
OPEN_ADVENTURE_MANUAL_CITY_LIYUE(1102),
|
||||
OPEN_ADVENTURE_MANUAL_MONSTER(1103),
|
||||
OPEN_ADVENTURE_MANUAL_BOSS_DUNGEON(1104),
|
||||
OPEN_STATE_ACTIVITY_SEALAMP(1200),
|
||||
OPEN_STATE_ACTIVITY_SEALAMP_TAB2(1201),
|
||||
OPEN_STATE_ACTIVITY_SEALAMP_TAB3(1202),
|
||||
OPEN_STATE_BATTLE_PASS(1300),
|
||||
OPEN_STATE_BATTLE_PASS_ENTRY(1301),
|
||||
OPEN_STATE_ACTIVITY_CRUCIBLE(1400),
|
||||
OPEN_STATE_ACTIVITY_NEWBEEBOUNS_OPEN(1401),
|
||||
OPEN_STATE_ACTIVITY_NEWBEEBOUNS_CLOSE(1402),
|
||||
OPEN_STATE_ACTIVITY_ENTRY_OPEN(1403),
|
||||
OPEN_STATE_MENGDE_INFUSEDCRYSTAL(1404),
|
||||
OPEN_STATE_LIYUE_INFUSEDCRYSTAL(1405),
|
||||
OPEN_STATE_SNOW_MOUNTAIN_ELDER_TREE(1406),
|
||||
OPEN_STATE_MIRACLE_RING(1407),
|
||||
OPEN_STATE_COOP_LINE(1408),
|
||||
OPEN_STATE_INAZUMA_INFUSEDCRYSTAL(1409),
|
||||
OPEN_STATE_FISH(1410),
|
||||
OPEN_STATE_GUIDE_SUMO_TEAM_SKILL(1411),
|
||||
OPEN_STATE_GUIDE_FISH_RECIPE(1412),
|
||||
OPEN_STATE_HOME(1500),
|
||||
OPEN_STATE_ACTIVITY_HOMEWORLD(1501),
|
||||
OPEN_STATE_ADEPTIABODE(1502),
|
||||
OPEN_STATE_HOME_AVATAR(1503),
|
||||
OPEN_STATE_HOME_EDIT(1504),
|
||||
OPEN_STATE_HOME_EDIT_TIPS(1505),
|
||||
OPEN_STATE_RELIQUARY_DECOMPOSE(1600),
|
||||
OPEN_STATE_ACTIVITY_H5(1700),
|
||||
OPEN_STATE_ORAIONOKAMI(2000),
|
||||
OPEN_STATE_GUIDE_CHESS_MISSION_CHECK(2001),
|
||||
OPEN_STATE_GUIDE_CHESS_BUILD(2002),
|
||||
OPEN_STATE_GUIDE_CHESS_WIND_TOWER_CIRCLE(2003),
|
||||
OPEN_STATE_GUIDE_CHESS_CARD_SELECT(2004),
|
||||
OPEN_STATE_INAZUMA_MAINQUEST_FINISHED(2005),
|
||||
OPEN_STATE_PAIMON_LVINFO(2100),
|
||||
OPEN_STATE_TELEPORT_HUD(2101),
|
||||
OPEN_STATE_GUIDE_MAP_UNLOCK(2102),
|
||||
OPEN_STATE_GUIDE_PAIMON_LVINFO(2103),
|
||||
OPEN_STATE_GUIDE_AMBORTRANSPORT(2104),
|
||||
OPEN_STATE_GUIDE_FLY_SECOND(2105),
|
||||
OPEN_STATE_GUIDE_KAEYA_CLUE(2106),
|
||||
OPEN_STATE_CAPTURE_CODEX(2107),
|
||||
OPEN_STATE_ACTIVITY_FISH_OPEN(2200),
|
||||
OPEN_STATE_ACTIVITY_FISH_CLOSE(2201),
|
||||
OPEN_STATE_GUIDE_ROGUE_MAP(2205),
|
||||
OPEN_STATE_GUIDE_ROGUE_RUNE(2206),
|
||||
OPEN_STATE_GUIDE_BARTENDER_FORMULA(2210),
|
||||
OPEN_STATE_GUIDE_BARTENDER_MIX(2211),
|
||||
OPEN_STATE_GUIDE_BARTENDER_CUP(2212),
|
||||
OPEN_STATE_GUIDE_MAIL_FAVORITES(2400),
|
||||
OPEN_STATE_GUIDE_POTION_CONFIGURE(2401),
|
||||
OPEN_STATE_GUIDE_LANV2_FIREWORK(2402),
|
||||
OPEN_STATE_LOADINGTIPS_ENKANOMIYA(2403),
|
||||
OPEN_STATE_MICHIAE_CASKET(2500),
|
||||
OPEN_STATE_MAIL_COLLECT_UNLOCK_RED_POINT(2501),
|
||||
OPEN_STATE_LUMEN_STONE(2600),
|
||||
OPEN_STATE_GUIDE_CRYSTALLINK_BUFF(2601);
|
||||
|
||||
private final int value;
|
||||
private static final Int2ObjectMap<OpenState> map = new Int2ObjectOpenHashMap<>();
|
||||
private static final Map<String, OpenState> stringMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> {
|
||||
map.put(e.getValue(), e);
|
||||
stringMap.put(e.name(), e);
|
||||
});
|
||||
}
|
||||
|
||||
private OpenState(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static OpenState getTypeByValue(int value) {
|
||||
return map.getOrDefault(value, OPEN_STATE_NONE);
|
||||
}
|
||||
|
||||
public static OpenState getTypeByName(String name) {
|
||||
return stringMap.getOrDefault(name, OPEN_STATE_NONE);
|
||||
}
|
||||
}
|
||||
70
src/main/java/emu/grasscutter/game/props/PlayerProperty.java
Normal file
70
src/main/java/emu/grasscutter/game/props/PlayerProperty.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package emu.grasscutter.game.props;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
public enum PlayerProperty {
|
||||
PROP_EXP (1001),
|
||||
PROP_BREAK_LEVEL (1002),
|
||||
PROP_SATIATION_VAL (1003),
|
||||
PROP_SATIATION_PENALTY_TIME (1004),
|
||||
PROP_LEVEL (4001),
|
||||
PROP_LAST_CHANGE_AVATAR_TIME (10001),
|
||||
PROP_MAX_SPRING_VOLUME (10002),
|
||||
PROP_CUR_SPRING_VOLUME (10003),
|
||||
PROP_IS_SPRING_AUTO_USE (10004),
|
||||
PROP_SPRING_AUTO_USE_PERCENT (10005),
|
||||
PROP_IS_FLYABLE (10006),
|
||||
PROP_IS_WEATHER_LOCKED (10007),
|
||||
PROP_IS_GAME_TIME_LOCKED (10008),
|
||||
PROP_IS_TRANSFERABLE (10009),
|
||||
PROP_MAX_STAMINA (10010),
|
||||
PROP_CUR_PERSIST_STAMINA (10011),
|
||||
PROP_CUR_TEMPORARY_STAMINA (10012),
|
||||
PROP_PLAYER_LEVEL (10013),
|
||||
PROP_PLAYER_EXP (10014),
|
||||
PROP_PLAYER_HCOIN (10015), // Primogem
|
||||
PROP_PLAYER_SCOIN (10016), // Mora
|
||||
PROP_PLAYER_MP_SETTING_TYPE (10017),
|
||||
PROP_IS_MP_MODE_AVAILABLE (10018),
|
||||
PROP_PLAYER_WORLD_LEVEL (10019),
|
||||
PROP_PLAYER_RESIN (10020),
|
||||
PROP_PLAYER_WAIT_SUB_HCOIN (10022),
|
||||
PROP_PLAYER_WAIT_SUB_SCOIN (10023),
|
||||
PROP_IS_ONLY_MP_WITH_PS_PLAYER (10024),
|
||||
PROP_PLAYER_MCOIN (10025), // Genesis Crystal
|
||||
PROP_PLAYER_WAIT_SUB_MCOIN (10026),
|
||||
PROP_PLAYER_LEGENDARY_KEY (10027),
|
||||
PROP_IS_HAS_FIRST_SHARE (10028),
|
||||
PROP_PLAYER_FORGE_POINT (10029),
|
||||
PROP_CUR_CLIMATE_METER (10035),
|
||||
PROP_CUR_CLIMATE_TYPE (10036),
|
||||
PROP_CUR_CLIMATE_AREA_ID (10037),
|
||||
PROP_CUR_CLIMATE_AREA_CLIMATE_TYPE (10038),
|
||||
PROP_PLAYER_WORLD_LEVEL_LIMIT (10039),
|
||||
PROP_PLAYER_WORLD_LEVEL_ADJUST_CD (10040),
|
||||
PROP_PLAYER_LEGENDARY_DAILY_TASK_NUM (10041),
|
||||
PROP_PLAYER_HOME_COIN (10042),
|
||||
PROP_PLAYER_WAIT_SUB_HOME_COIN (10043);
|
||||
|
||||
private final int id;
|
||||
private static final Int2ObjectMap<PlayerProperty> map = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
static {
|
||||
Stream.of(values()).forEach(e -> map.put(e.getId(), e));
|
||||
}
|
||||
|
||||
private PlayerProperty(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public static PlayerProperty getPropById(int value) {
|
||||
return map.getOrDefault(value, null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user