Job + Spell merge #9
@@ -20,7 +20,7 @@ public abstract class Job implements HasExperience {
|
|||||||
|
|
||||||
public void levelUp() {
|
public void levelUp() {
|
||||||
level++;
|
level++;
|
||||||
experience = 0;
|
experience = experience - 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -27,4 +27,8 @@ public class Miner extends Job {
|
|||||||
levelUp();
|
levelUp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int remainingXpUntilLevelUp() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
|||||||
public class MinerTest {
|
public class MinerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void miner_can_level_up() {
|
void can_level_up() {
|
||||||
var job = new Miner();
|
var job = new Miner();
|
||||||
assertEquals(1, job.getLevel());
|
assertEquals(1, job.getLevel());
|
||||||
job.levelUp();
|
job.levelUp();
|
||||||
@@ -14,20 +14,26 @@ public class MinerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void miner_can_gain_xp() {
|
void can_gain_xp() {
|
||||||
var job = new Miner();
|
var job = new Miner();
|
||||||
job.gainExperience(25);
|
job.gainExperience(25);
|
||||||
assertEquals(25, job.getExperience());
|
assertEquals(25, job.getExperience());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void miner_level_up_when_experience_is_100() {
|
void level_up_when_experience_cap_is_reached() {
|
||||||
var job = new Miner();
|
var job = new Miner();
|
||||||
job.gainExperience(100);
|
job.gainExperience(job.remainingXpUntilLevelUp());
|
||||||
assertEquals(0, job.getExperience());
|
|
||||||
assertEquals(2, job.getLevel());
|
assertEquals(2, job.getLevel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void additional_xp_carries_over_on_level_up() {
|
||||||
|
var job = new Miner();
|
||||||
|
job.gainExperience(job.remainingXpUntilLevelUp() + 10);
|
||||||
|
assertEquals(10, job.getExperience());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user