예제 #1
0
파일: War.java 프로젝트: adegie/Towny
 public void add(Town town) {
   TownyMessaging.sendTownMessage(town, TownySettings.getJoinWarMsg(town));
   townScores.put(town, 0);
   warringTowns.add(town);
   for (TownBlock townBlock : town.getTownBlocks())
     if (town.isHomeBlock(townBlock))
       warZone.put(townBlock.getWorldCoord(), TownySettings.getWarzoneHomeBlockHealth());
     else warZone.put(townBlock.getWorldCoord(), TownySettings.getWarzoneTownBlockHealth());
 }
예제 #2
0
파일: War.java 프로젝트: adegie/Towny
 public void remove(Town attacker, TownBlock townBlock) throws NotRegisteredException {
   townScored(attacker, TownySettings.getWarPointsForTownBlock());
   townBlock.getTown().addBonusBlocks(-1);
   attacker.addBonusBlocks(1);
   try {
     if (!townBlock
         .getTown()
         .payTo(TownySettings.getWartimeTownBlockLossPrice(), attacker, "War - TownBlock Loss")) {
       remove(townBlock.getTown());
       TownyMessaging.sendTownMessage(
           townBlock.getTown(), "Your town ran out of funds to support yourself in war.");
     } else
       TownyMessaging.sendTownMessage(
           townBlock.getTown(),
           "Your town lost "
               + TownySettings.getWartimeTownBlockLossPrice()
               + " "
               + TownyEconomyObject.getEconomyCurrency()
               + ".");
   } catch (EconomyException e) {
   }
   if (townBlock.getTown().isHomeBlock(townBlock)) remove(townBlock.getTown());
   else remove(townBlock.getWorldCoord());
   TownyUniverse.getDataSource().saveTown(townBlock.getTown());
   TownyUniverse.getDataSource().saveTown(attacker);
 }
예제 #3
0
파일: War.java 프로젝트: adegie/Towny
 public void damage(Town attacker, TownBlock townBlock) throws NotRegisteredException {
   WorldCoord worldCoord = townBlock.getWorldCoord();
   int hp = warZone.get(worldCoord) - 1;
   if (hp > 0) {
     warZone.put(worldCoord, hp);
     // if (hp % 10 == 0) {
     universe.sendMessageTo(
         townBlock.getTown(),
         Colors.Gray
             + "["
             + townBlock.getTown().getName()
             + "]("
             + townBlock.getCoord().toString()
             + ") HP: "
             + hp,
         "");
     universe.sendMessageTo(
         attacker,
         Colors.Gray
             + "["
             + townBlock.getTown().getName()
             + "]("
             + townBlock.getCoord().toString()
             + ") HP: "
             + hp,
         "");
     // }
   } else remove(attacker, townBlock);
 }
예제 #4
0
파일: War.java 프로젝트: adegie/Towny
 public void remove(Town town) {
   for (TownBlock townBlock : town.getTownBlocks()) remove(townBlock.getWorldCoord());
   warringTowns.remove(town);
   try {
     if (!townsLeft(town.getNation())) eliminate(town.getNation());
   } catch (NotRegisteredException e) {
   }
 }
예제 #5
0
파일: War.java 프로젝트: adegie/Towny
  public void remove(Town attacker, Town town) throws NotRegisteredException {
    townScored(attacker, TownySettings.getWarPointsForTown());

    for (TownBlock townBlock : town.getTownBlocks()) remove(townBlock.getWorldCoord());
    warringTowns.remove(town);
    try {
      if (!townsLeft(town.getNation())) eliminate(town.getNation());
    } catch (NotRegisteredException e) {
    }
  }
예제 #6
0
파일: War.java 프로젝트: adegie/Towny
 public int countActiveWarBlocks(Town town) {
   int n = 0;
   for (TownBlock townBlock : town.getTownBlocks())
     if (warZone.containsKey(townBlock.getWorldCoord())) n++;
   return n;
 }
예제 #7
0
파일: War.java 프로젝트: adegie/Towny
 public void remove(TownBlock townBlock) throws NotRegisteredException {
   if (townBlock.getTown().isHomeBlock(townBlock)) remove(townBlock.getTown());
   else remove(townBlock.getWorldCoord());
 }