Skip to content

Commit

Permalink
sending PlayerEliminatedMessage when a player is no longer able to …
Browse files Browse the repository at this point in the history
…play in a game (whether win or lose)
  • Loading branch information
Zomis committed Aug 23, 2015
1 parent 1ac027c commit 2910928
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,7 @@
import com.cardshifter.api.incoming.StartGameRequest;
import com.cardshifter.api.incoming.TransformerMessage;
import com.cardshifter.api.incoming.UseAbilityMessage;
import com.cardshifter.api.outgoing.AvailableModsMessage;
import com.cardshifter.api.outgoing.AvailableTargetsMessage;
import com.cardshifter.api.outgoing.CardInfoMessage;
import com.cardshifter.api.outgoing.ClientDisconnectedMessage;
import com.cardshifter.api.outgoing.EntityRemoveMessage;
import com.cardshifter.api.outgoing.GameMessage;
import com.cardshifter.api.outgoing.GameOverMessage;
import com.cardshifter.api.outgoing.NewGameMessage;
import com.cardshifter.api.outgoing.PlayerMessage;
import com.cardshifter.api.outgoing.ResetAvailableActionsMessage;
import com.cardshifter.api.outgoing.ServerErrorMessage;
import com.cardshifter.api.outgoing.UpdateMessage;
import com.cardshifter.api.outgoing.UsableActionMessage;
import com.cardshifter.api.outgoing.UserStatusMessage;
import com.cardshifter.api.outgoing.WaitMessage;
import com.cardshifter.api.outgoing.WelcomeMessage;
import com.cardshifter.api.outgoing.ZoneChangeMessage;
import com.cardshifter.api.outgoing.ZoneMessage;
import com.cardshifter.api.outgoing.*;

/**
* Message Type ID Resolver.
Expand Down Expand Up @@ -71,6 +54,7 @@ public class MessageTypeIdResolver {
clazzes.put("useable", UsableActionMessage.class);
clazzes.put("targets", AvailableTargetsMessage.class);
clazzes.put("availableMods", AvailableModsMessage.class);
clazzes.put("elimination", PlayerEliminatedMessage.class);
// Messages both incoming and outgoing
clazzes.put("inviteRequest", InviteRequest.class);
clazzes.put("inviteResponse", InviteResponse.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.cardshifter.api.outgoing;

import com.cardshifter.api.messages.Message;

/** Informs players that a player has been eliminated, with the status of how that player did. */
public class PlayerEliminatedMessage extends Message {

private int id;
private boolean winner;
private int resultPosition;

/** Constructor. (no params) */
public PlayerEliminatedMessage() {
this(0, false, 0);
}

/**
* Creates a new message with the specified values
*
* @param id This entity
* @param winner Whether or not the player is considered a winner
* @param resultPosition The result position of the player
*/
public PlayerEliminatedMessage(int id, boolean winner, int resultPosition) {
super("elimination");
this.id = id;
this.winner = winner;
this.resultPosition = resultPosition;
}

public int getId() {
return id;
}

public boolean isWinner() {
return winner;
}

public int getResultPosition() {
return resultPosition;
}

@Override
public String toString() {
return "PlayerEliminatedMessage ["
+ "id=" + id
+ ", winner=" + winner
+ ", resultPosition=" + resultPosition
+ "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import java.util.stream.Stream;

import com.cardshifter.api.config.PlayerConfig;
import com.cardshifter.api.outgoing.*;
import com.cardshifter.modapi.base.*;
import com.cardshifter.modapi.resources.ResourceViewUpdate;
import net.zomis.cardshifter.ecs.EntitySerialization;
Expand All @@ -28,16 +29,6 @@
import com.cardshifter.api.both.PlayerConfigMessage;
import com.cardshifter.api.incoming.RequestTargetsMessage;
import com.cardshifter.api.incoming.UseAbilityMessage;
import com.cardshifter.api.outgoing.AvailableTargetsMessage;
import com.cardshifter.api.outgoing.CardInfoMessage;
import com.cardshifter.api.outgoing.EntityRemoveMessage;
import com.cardshifter.api.outgoing.PlayerMessage;
import com.cardshifter.api.outgoing.ResetAvailableActionsMessage;
import com.cardshifter.api.outgoing.ServerErrorMessage;
import com.cardshifter.api.outgoing.UpdateMessage;
import com.cardshifter.api.outgoing.UsableActionMessage;
import com.cardshifter.api.outgoing.ZoneChangeMessage;
import com.cardshifter.api.outgoing.ZoneMessage;
import com.cardshifter.core.replays.ReplayRecordSystem;
import com.cardshifter.modapi.actions.ActionComponent;
import com.cardshifter.modapi.actions.ActionPerformEvent;
Expand Down Expand Up @@ -331,7 +322,9 @@ public boolean preStartForConfiguration() {
private void playerEliminated(PlayerEliminatedEvent event) {
String winStatus = event.isDeclaredWinner() ? "won" : "lost";
PlayerComponent player = event.getEntity().getComponent(PlayerComponent.class);
this.sendChat(player.getName() + " " + winStatus + " game " + getId());
this.send(new PlayerEliminatedMessage(event.getEntity().getId(), event.isDeclaredWinner(),
event.getResultPosition()));
this.sendChat(player.getName() + " " + winStatus + " game " + getId());
}

public void sendChat(String message) {
Expand Down

0 comments on commit 2910928

Please sign in to comment.