Commit 635e342a authored by ImmuState's avatar ImmuState Committed by Melledy
Browse files

Make sure the hit target is actually a monster.

parent febdb998
......@@ -45,6 +45,8 @@ import com.google.protobuf.InvalidProtocolBufferException;
public class EnergyManager {
private final Player player;
private final Map<EntityAvatar, Integer> avatarNormalProbabilities;
private final static Int2ObjectMap<List<EnergyDropInfo>> energyDropData = new Int2ObjectOpenHashMap<>();
private final static Int2ObjectMap<List<SkillParticleGenerationInfo>> skillParticleGenerationData = new Int2ObjectOpenHashMap<>();
......@@ -257,8 +259,6 @@ public class EnergyManager {
entry("WEAPON_CATALYST", 10)
);
private final Map<EntityAvatar, Integer> avatarNormalProbabilities;
private void generateEnergyForNormalAndCharged(EntityAvatar avatar) {
// This logic is based on the descriptions given in
// https://genshin-impact.fandom.com/wiki/Energy#Energy_Generated_by_Normal_Attacks
......@@ -304,6 +304,18 @@ public class EnergyManager {
if (attackerEntity.isEmpty() || this.player.getTeamManager().getCurrentAvatarEntity().getId() != attackerEntity.get().getId()) {
return;
}
// Make sure the target is an actual enemy.
GameEntity targetEntity = this.player.getScene().getEntityById(attackRes.getDefenseId());
if (!(targetEntity instanceof EntityMonster)) {
return;
}
EntityMonster targetMonster = (EntityMonster)targetEntity;
String targetType = targetMonster.getMonsterData().getType();
if (!targetType.equals("MONSTER_ORDINARY") && !targetType.equals("MONSTER_BOSS")) {
return;
}
// Get the ability that caused this hit.
AbilityIdentifier ability = attackRes.getAbilityIdentifier();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment