public void refresh(Player player) { if (player == playerA.getPlayer()) { playerInfoHolder.updatePlayerComponent(playerA.getPlayer(), playerA.refreshComponentValue()); } else { playerInfoHolder.updatePlayerComponent(playerB.getPlayer(), playerB.refreshComponentValue()); } }
@Override public void onApplicationEvent(GravaEvent event) { Player player = event.getPlayer(); if (event.getClass().equals(GravaEvent.OnMakingTurn.class)) { Integer pitIndex = ((GravaEvent.OnMakingTurn) event).getPit(); if (player == playerA.getPlayer()) { playerA.makeTurn(pitIndex); } else { playerB.makeTurn(pitIndex); } } else if (event.getClass().equals(GravaEvent.OnFinishTurn.class)) { refresh(player); playerInfoHolder.changeTurn(player, player.getOpposite()); Broadcaster.broadcast(new BroadcastEvent.OnFinishTurn(event.getPlayer())); } else if (event.getClass().equals(GravaEvent.OnCapturingStone.class)) { Integer targetPit = ((GravaEvent.OnCapturingStone) event).getIndex(); Integer pitIndex = Utils.getOpponentPitIndex(targetPit); Integer stonesToGrab = 0; if (player == playerA.getPlayer()) { stonesToGrab = playerB.giveStones(pitIndex); playerA.grabStones(stonesToGrab); } else { stonesToGrab = playerA.giveStones(pitIndex); playerB.grabStones(stonesToGrab); } playerInfoHolder.updatePlayerComponent(playerA.getPlayer(), playerA.refreshComponentValue()); playerInfoHolder.updatePlayerComponent(playerB.getPlayer(), playerB.refreshComponentValue()); Broadcaster.broadcast(new BroadcastEvent.OnCapturing(player, stonesToGrab)); } else if (event.getClass().equals(GravaEvent.OnMakingOneMoreTurn.class)) { refresh(player); Broadcaster.broadcast(new BroadcastEvent.OnOneMoreTurn(player)); } else if (event.getClass().equals(GravaEvent.OnFinishingGame.class)) { if (playerA.getStones() > playerB.getStones()) { Broadcaster.broadcast( new BroadcastEvent.OnFinishing(playerA.getPlayer(), playerA.getStones())); } else if (playerB.getStones() > playerA.getStones()) { Broadcaster.broadcast( new BroadcastEvent.OnFinishing(playerB.getPlayer(), playerB.getStones())); } else if (playerB.getStones() == playerA.getStones()) { Broadcaster.broadcast( new BroadcastEvent.OnFinishing( player, playerB.getStones())); // wins the first who put all the stones to grava } } }
public void changeToIslandInventory(PlayerInfo pi) { if (pi.isPlaying()) return; if (this.settings.getAllowContent()) { pi.setIsPlaying(true); return; } // save old inventory pi.setOldInventory(pi.getPlayer().getInventory().getContents()); pi.setOldArmor(pi.getPlayer().getInventory().getArmorContents()); pi.setOldHealth(pi.getPlayer().getHealth()); pi.setOldFood(pi.getPlayer().getFoodLevel()); pi.setOldLevel(pi.getPlayer().getLevel()); pi.setOldExp(pi.getPlayer().getExp()); // set island inventory pi.getPlayer().getInventory().setContents(pi.getIslandInventory()); pi.getPlayer().getInventory().setArmorContents(pi.getIslandArmor()); if (pi.getIslandHealth() <= 0) { pi.getPlayer().setHealth(pi.getPlayer().getMaxHealth()); } else { pi.getPlayer().setHealth(pi.getIslandHealth()); } if (pi.getIslandFood() <= 0) { pi.getPlayer().setFoodLevel(20); } else { pi.getPlayer().setHealth(pi.getIslandFood()); } pi.getPlayer().setLevel(pi.getIslandLevel()); pi.getPlayer().setExp(pi.getIslandExp()); pi.setIsPlaying(true); }