Skip to content

Commit 41778d0

Browse files
committed
upgrades paging - untested
1 parent e5897ab commit 41778d0

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

src/crawler_arena/CVars.java

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public class CVars{
1010
public static int unitCap = 96;
1111
public static float tipChance = 1f / 30000f;
1212

13+
public static int unitsRows = 10;
14+
1315
public static int bossWave = 25;
1416
public static int crawlersCeiling = 10000000;
1517
public static int maxUnits = 4000;

src/crawler_arena/CrawlerArenaMod.java

+28-4
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public void init(){
210210
}
211211
if(!waveIsOver){
212212
enemyTypes.each(type -> type.speed += enemySpeedBoost * Time.delta * statScaling);
213-
}else if(respawnInterval.get(60f)){
213+
}else if(respawnInterval.get(120f)){
214214
for(int i = 0; i < toRespawn.size; i++){
215215
Building b = toRespawn.get(i);
216216
Block block = b.block;
@@ -231,6 +231,8 @@ public void init(){
231231
b.tile.setNet(block, b.team, b.rotation);
232232
toRespawn.remove(b);
233233
i--;
234+
}else{
235+
Call.effect(Fx.unitCapKill, b.x, b.y, 1, Color.white);
234236
}
235237
Call.effect(Fx.placeBlock, b.x, b.y, (float)block.size, Color.white);
236238
}
@@ -648,15 +650,37 @@ public void registerClientCommands(CommandHandler handler){
648650

649651
handler.<Player>register("info", "Show info about the Crawler Arena gamemode", (args, player) -> Bundle.bundled(player, "commands.info"));
650652

651-
handler.<Player>register("upgrades", "Show units you can upgrade to", (args, player) -> {
652-
StringBuilder upgrades = new StringBuilder(Bundle.format("commands.upgrades.header", Bundle.findLocale(player)));
653+
handler.<Player>register("upgrades", "[page]", "Show units you can upgrade to", (args, player) -> {
654+
int page;
655+
if(args.length == 0){
656+
page = 1;
657+
}else{
658+
try{
659+
page = Integer.parseInt(args[0]);
660+
}catch(NumberFormatException e){
661+
Bundle.bundled(player, "exceptions.invalid-amount");
662+
return;
663+
}
664+
}
653665
IntSeq sortedUnitCosts = unitCosts.values().toArray();
666+
int maxPage = (sortedUnitCosts.size - 1) / (unitsRows * page) + 1;
667+
if(1 > page || page > maxPage){
668+
Bundle.bundled(player, "exceptions.invalid-amount");
669+
return;
670+
}
654671
sortedUnitCosts.sort();
672+
if(page > 1){
673+
sortedUnitCosts.removeRange(0, unitsRows * (page - 1) - 1);
674+
}
675+
sortedUnitCosts.removeRange(unitsRows * page, sortedUnitCosts.size - 1);
655676
ObjectIntMap<UnitType> unitCostsCopy = new ObjectIntMap<>();
656677
unitCostsCopy.putAll(unitCosts);
678+
int i = 1;
679+
StringBuilder upgrades = new StringBuilder(Bundle.format("commands.upgrades.header", Bundle.findLocale(player)));
680+
upgrades.append(Bundle.format("commands.upgrades.header", Bundle.findLocale(player), page, maxPage)).append("/n");
657681
sortedUnitCosts.each((cost) -> {
658682
UnitType type = unitCostsCopy.findKey(cost);
659-
upgrades.append("[gold] - [accent]").append(type.name).append(" [lightgray](").append(cost).append(")\n");
683+
upgrades.append("[gold] - [accent]").append(type.name).append(" [lightgray](").append(cost).append("/n");
660684
unitCostsCopy.remove(type);
661685
});
662686
player.sendMessage(upgrades.toString());

src/resources/bundles/bundle_en.properties

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ commands.upgrade.not-enough-money = [scarlet]You don't have enough money to upgr
2525
commands.upgrade.too-many-units = [scarlet]There are too many units of that type on the map.
2626
2727
commands.upgrades.header = [accent]Available units to upgrade:\n[]
28+
commands.upgrades.page = [accent][Page {0}/{1}]
2829
2930
commands.give.player-not-found = [scarlet]Player not found! Note that you don't have to type the full name.
3031
commands.give.success = [yellow]{0} [green]coins given to {1}[green].

src/resources/bundles/bundle_ru.properties

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ commands.upgrade.not-enough-money = [scarlet]На балансе недоста
2525
commands.upgrade.too-many-units = [scarlet]На карте слишком много юнитов этого типа.
2626

2727
commands.upgrades.header = [accent]Список доступных юнитов для прокачки:\n[]
28+
commands.upgrades.page = [accent][Страница {0}/{1}]
2829

2930
commands.give.player-not-found = [scarlet]Игрок не найден! Учтите, что писать полное имя не нужно.
3031
commands.give.success = [yellow]{0} [green]монет передано {1}[green].

0 commit comments

Comments
 (0)