示例#1
0
 public void refresh(Player player) {
   if (player == playerA.getPlayer()) {
     playerInfoHolder.updatePlayerComponent(playerA.getPlayer(), playerA.refreshComponentValue());
   } else {
     playerInfoHolder.updatePlayerComponent(playerB.getPlayer(), playerB.refreshComponentValue());
   }
 }
示例#2
0
  @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);
  }