Fix DamagedPlayerBatchOnePlayerEvent not checking the target is the player. (#11128)

This commit is contained in:
Susucre 2023-09-09 05:56:31 +02:00 committed by GitHub
parent b20c9ddf44
commit cc4a5f9959
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 124 additions and 2 deletions

View file

@ -845,7 +845,7 @@ public class GameState implements Serializable, Copyable<GameState> {
if (event instanceof DamagedPlayerBatchOnePlayerEvent) {
DamagedPlayerBatchOnePlayerEvent eventForPlayer = (DamagedPlayerBatchOnePlayerEvent) event;
if (eventForPlayer.getDamageClazz().isInstance(damagedEvent)
&& event.getPlayerId().equals(damagedEvent.getPlayerId())) {
&& event.getPlayerId().equals(damagedEvent.getTargetId())) {
// existing batch for damage of that damage class to the same player
eventForPlayer.addEvent(damagedEvent);
@ -859,7 +859,7 @@ public class GameState implements Serializable, Copyable<GameState> {
// new batch for any kind of damage, creating a fresh one with damagedEvent inside.
addSimultaneousEvent(DamagedBatchEvent.makeEvent(damagedEvent), game);
}
if (!flagBatchForPlayer && damagedEvent.getPlayerId() != null) {
if (!flagBatchForPlayer && damagedEvent.getPlayerId() != null && damagedEvent.getPlayerId().equals(damagedEvent.getTargetId())) {
// new batch for damage from any source to the specific damaged player,
// creating a fresh one with damagedEvent inside.
DamagedBatchEvent event = new DamagedPlayerBatchOnePlayerEvent(damagedEvent.getPlayerId());