Skip to content

Commit 9ef7dcb

Browse files
committed
Clear kill tracker after dying in Dodgeball
1 parent c8e6aac commit 9ef7dcb

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/main/java/com/lovetropics/minigames/common/core/game/behavior/instances/ImmediateRespawnBehavior.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@
2525
import java.util.Map;
2626
import java.util.Optional;
2727

28-
public record ImmediateRespawnBehavior(Optional<PlayerRole> role, Optional<PlayerRole> respawnAsRole, Optional<TemplatedText> deathMessage, boolean dropInventory, GameActionList<ServerPlayer> respawnAction, boolean spectateKiller) implements IGameBehavior {
28+
public record ImmediateRespawnBehavior(Optional<PlayerRole> role, Optional<PlayerRole> respawnAsRole, Optional<TemplatedText> deathMessage, boolean dropInventory, GameActionList<ServerPlayer> respawnAction, boolean spectateKiller, boolean clearKillTracker) implements IGameBehavior {
2929
public static final MapCodec<ImmediateRespawnBehavior> CODEC = RecordCodecBuilder.mapCodec(i -> i.group(
3030
PlayerRole.CODEC.optionalFieldOf("role").forGetter(c -> c.role),
3131
PlayerRole.CODEC.optionalFieldOf("respawn_as").forGetter(c -> c.respawnAsRole),
3232
TemplatedText.CODEC.optionalFieldOf("death_message").forGetter(c -> c.deathMessage),
3333
Codec.BOOL.optionalFieldOf("drop_inventory", false).forGetter(c -> c.dropInventory),
3434
GameActionList.PLAYER_CODEC.optionalFieldOf("respawn_action", GameActionList.EMPTY).forGetter(c -> c.respawnAction),
35-
Codec.BOOL.optionalFieldOf("spectate_killer", true).forGetter(c -> c.spectateKiller)
35+
Codec.BOOL.optionalFieldOf("spectate_killer", true).forGetter(c -> c.spectateKiller),
36+
Codec.BOOL.optionalFieldOf("clear_kill_tracker", false).forGetter(c -> c.clearKillTracker)
3637
).apply(i, ImmediateRespawnBehavior::new));
3738

3839
@Override
@@ -76,6 +77,14 @@ private void respawnPlayer(IGamePhase game, ServerPlayer player, @Nullable Playe
7677
player.fallDistance = 0.0f;
7778

7879
respawnAction.apply(game, GameActionContext.EMPTY, player);
80+
81+
if (clearKillTracker) {
82+
for (ServerPlayer otherPlayer : game.participants()) {
83+
if (otherPlayer.getKillCredit() == player) {
84+
otherPlayer.setLastHurtByPlayer(null);
85+
}
86+
}
87+
}
7988
}
8089

8190
private void sendDeathMessage(IGamePhase game, ServerPlayer player) {

0 commit comments

Comments
 (0)