feat(resourcepack): add pixel-art guild menu GUI texture
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -1,76 +0,0 @@
|
|||||||
package fr.luc.gamingcore.economy;
|
|
||||||
|
|
||||||
import fr.luc.gamingcore.model.Guild;
|
|
||||||
import fr.luc.gamingcore.model.GuildClaim;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
public class ChunkPriceCalculatorTest {
|
|
||||||
|
|
||||||
private ChunkPriceCalculator calculator;
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
public void setUp() {
|
|
||||||
this.calculator = new ChunkPriceCalculator();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testFirstChunkPriceIsBasePrice() {
|
|
||||||
double firstChunk = calculator.calculatePrice(1, 0);
|
|
||||||
assertEquals(1000.0, firstChunk, 0.01);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testStructuralPriceIncreasesWithChunkCount() {
|
|
||||||
double chunk1 = calculator.calculatePrice(1, 0);
|
|
||||||
double chunk2 = calculator.calculatePrice(2, 0);
|
|
||||||
double chunk5 = calculator.calculatePrice(5, 0);
|
|
||||||
double chunk10 = calculator.calculatePrice(10, 0);
|
|
||||||
|
|
||||||
assertTrue(chunk2 > chunk1);
|
|
||||||
assertTrue(chunk5 > chunk2);
|
|
||||||
assertTrue(chunk10 > chunk5);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testOverheatMultiplierAppliesWithRecentClaims() {
|
|
||||||
// Chunk 6 with 0 claims in last 24h
|
|
||||||
double normalPrice = calculator.calculatePrice(6, 0);
|
|
||||||
|
|
||||||
// Chunk 6 with 3 claims in last 24h
|
|
||||||
double overheatedPrice = calculator.calculatePrice(6, 3);
|
|
||||||
|
|
||||||
assertTrue(overheatedPrice > normalPrice);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testLargeGuildOverheatIsMoreSevereThanSmallGuild() {
|
|
||||||
// Small guild (5 chunks): buying with 4 recent claims
|
|
||||||
double smallMultiplier = calculator.calculateOverheatMultiplier(5, 4);
|
|
||||||
|
|
||||||
// Large guild (50 chunks): buying with 4 recent claims
|
|
||||||
double largeMultiplier = calculator.calculateOverheatMultiplier(50, 4);
|
|
||||||
|
|
||||||
assertTrue(largeMultiplier > smallMultiplier, "Large guild should have a significantly higher overheat penalty");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGuildIntegrationWithCalculator() {
|
|
||||||
Guild guild = new Guild(UUID.randomUUID(), "TestGuild", "TST", "Description", 5000.0, System.currentTimeMillis());
|
|
||||||
|
|
||||||
// 1st claim (already has 0 chunks)
|
|
||||||
double nextPrice1 = calculator.calculateNextChunkPrice(guild);
|
|
||||||
assertEquals(1000.0, nextPrice1, 0.01);
|
|
||||||
|
|
||||||
// Add 1 claim created right now
|
|
||||||
guild.addClaim(new GuildClaim(1, guild.getId(), "world", 10, 20, System.currentTimeMillis()));
|
|
||||||
|
|
||||||
// Next chunk price (Chunk 2 with R = 1)
|
|
||||||
double nextPrice2 = calculator.calculateNextChunkPrice(guild);
|
|
||||||
assertTrue(nextPrice2 > 1000.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
package fr.luc.gamingcore.model;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
public class GuildModelTest {
|
|
||||||
|
|
||||||
private Guild guild;
|
|
||||||
private UUID leaderUuid;
|
|
||||||
private UUID memberUuid;
|
|
||||||
private GuildRank leaderRank;
|
|
||||||
private GuildRank memberRank;
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
public void setUp() {
|
|
||||||
UUID guildId = UUID.randomUUID();
|
|
||||||
leaderUuid = UUID.randomUUID();
|
|
||||||
memberUuid = UUID.randomUUID();
|
|
||||||
|
|
||||||
guild = new Guild(guildId, "Valhalla", "VAL", "Guilde nordique", 500.0, System.currentTimeMillis());
|
|
||||||
|
|
||||||
leaderRank = new GuildRank("leader", guildId, "Chef", 100, false, EnumSet.allOf(GuildPermission.class));
|
|
||||||
memberRank = new GuildRank("member", guildId, "Membre", 1, true, EnumSet.of(GuildPermission.HOME, GuildPermission.BANK_DEPOSIT));
|
|
||||||
|
|
||||||
guild.addRank(leaderRank);
|
|
||||||
guild.addRank(memberRank);
|
|
||||||
|
|
||||||
guild.addMember(new GuildMember(leaderUuid, guildId, "leader", System.currentTimeMillis(), System.currentTimeMillis(), 0.0));
|
|
||||||
guild.addMember(new GuildMember(memberUuid, guildId, "member", System.currentTimeMillis(), System.currentTimeMillis(), 0.0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGuildMembershipAndRanks() {
|
|
||||||
assertEquals(2, guild.getMemberCount());
|
|
||||||
assertTrue(guild.isMember(leaderUuid));
|
|
||||||
assertTrue(guild.isMember(memberUuid));
|
|
||||||
|
|
||||||
assertEquals(leaderRank, guild.getMemberRank(leaderUuid));
|
|
||||||
assertEquals(memberRank, guild.getMemberRank(memberUuid));
|
|
||||||
assertEquals(memberRank, guild.getDefaultRank());
|
|
||||||
assertEquals(leaderRank, guild.getLeaderRank());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPermissions() {
|
|
||||||
// Leader has all permissions
|
|
||||||
assertTrue(guild.hasPermission(leaderUuid, GuildPermission.CLAIM));
|
|
||||||
assertTrue(guild.hasPermission(leaderUuid, GuildPermission.KICK));
|
|
||||||
assertTrue(guild.hasPermission(leaderUuid, GuildPermission.BANK_WITHDRAW));
|
|
||||||
|
|
||||||
// Member only has HOME and BANK_DEPOSIT
|
|
||||||
assertTrue(guild.hasPermission(memberUuid, GuildPermission.HOME));
|
|
||||||
assertTrue(guild.hasPermission(memberUuid, GuildPermission.BANK_DEPOSIT));
|
|
||||||
assertFalse(guild.hasPermission(memberUuid, GuildPermission.CLAIM));
|
|
||||||
assertFalse(guild.hasPermission(memberUuid, GuildPermission.BANK_WITHDRAW));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testBankOperations() {
|
|
||||||
assertEquals(500.0, guild.getBalance());
|
|
||||||
|
|
||||||
guild.deposit(250.0);
|
|
||||||
assertEquals(750.0, guild.getBalance());
|
|
||||||
|
|
||||||
boolean withdrawSuccess = guild.withdraw(300.0);
|
|
||||||
assertTrue(withdrawSuccess);
|
|
||||||
assertEquals(450.0, guild.getBalance());
|
|
||||||
|
|
||||||
boolean withdrawTooMuch = guild.withdraw(1000.0);
|
|
||||||
assertFalse(withdrawTooMuch);
|
|
||||||
assertEquals(450.0, guild.getBalance());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testClaimManagement() {
|
|
||||||
GuildClaim claim1 = new GuildClaim(1, guild.getId(), "world", 5, 10, System.currentTimeMillis());
|
|
||||||
guild.addClaim(claim1);
|
|
||||||
|
|
||||||
assertEquals(1, guild.getClaimCount());
|
|
||||||
assertTrue(guild.isClaimed("world", 5, 10));
|
|
||||||
assertFalse(guild.isClaimed("world", 5, 11));
|
|
||||||
|
|
||||||
guild.removeClaim("world", 5, 10);
|
|
||||||
assertEquals(0, guild.getClaimCount());
|
|
||||||
assertFalse(guild.isClaimed("world", 5, 10));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user