Job terrain #12

Merged
erns6604 merged 16 commits from job_terrain into main 2025-10-28 11:21:35 +01:00
4 changed files with 16 additions and 18 deletions
Showing only changes of commit 11da3ee4aa - Show all commits

View File

@ -7,7 +7,7 @@ public class DigAction implements Action {
@Override @Override
public void execute(Actor actor) { public void execute(Actor actor) {
Miner miner = requireMiner(actor); Miner miner = requireMiner(actor);
miner.dig(actor); miner.dig();
} }
private Miner requireMiner(Actor actor) { private Miner requireMiner(Actor actor) {

View File

@ -5,13 +5,13 @@ import Inventory.HasInventory;
public class Miner extends Job { public class Miner extends Job {
public Miner() { HasInventory actor;
public Miner(HasInventory actor) {
super("Miner"); super("Miner");
this.actor = actor;
} }
public void dig(Actor actor) { public void dig() {
if (actor instanceof HasInventory a) { actor.getInventory().addItem("Stone");
a.getInventory().addItem("Stone");
}
} }
} }

View File

@ -1,13 +1,14 @@
import Entity.Player;
import Job.Miner; import Job.Miner;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
public class MinerTest { public class MinerTest {
private Player defaultPlayer() {return new Player("John"); }
@Test @Test
void can_level_up() { void can_level_up() {
var job = new Miner(); var job = new Miner(defaultPlayer());
assertEquals(1, job.getLevel()); assertEquals(1, job.getLevel());
job.levelUp(); job.levelUp();
assertEquals(2, job.getLevel()); assertEquals(2, job.getLevel());
@ -15,29 +16,25 @@ public class MinerTest {
@Test @Test
void can_gain_xp() { void can_gain_xp() {
var job = new Miner(); var job = new Miner(defaultPlayer());
job.gainExperience(25); job.gainExperience(25);
assertEquals(25, job.getExperience()); assertEquals(25, job.getExperience());
} }
@Test @Test
void level_up_when_experience_cap_is_reached() { void level_up_when_experience_cap_is_reached() {
var job = new Miner(); var job = new Miner(defaultPlayer());
job.gainExperience(job.remainingXpUntilLevelUp()); job.gainExperience(job.remainingXpUntilLevelUp());
assertEquals(2, job.getLevel()); assertEquals(2, job.getLevel());
} }
@Test @Test
void additional_xp_carries_over_on_level_up() { void additional_xp_carries_over_on_level_up() {
var job = new Miner(); var job = new Miner(defaultPlayer());
job.gainExperience(job.remainingXpUntilLevelUp() + 10); job.gainExperience(job.remainingXpUntilLevelUp() + 10);
assertEquals(10, job.getExperience()); assertEquals(10, job.getExperience());
} }
@Test
void dig_on_ice_require_ice_pick() {
}

View File

@ -9,6 +9,7 @@ import Job.Wizard;
import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
class PlayerTest { class PlayerTest {
@ -47,15 +48,15 @@ class PlayerTest {
var p = defaultPlayer(); var p = defaultPlayer();
assertNull(p.getJob()); assertNull(p.getJob());
var job = new Miner(); var job = new Miner(p);
p.learnJob(job); p.learnJob(job);
assertEquals(new Miner(), p.getJob()); assertThat(p.getJob(), instanceOf(Miner.class));
} }
@Test @Test
void miner_can_dig() { void miner_can_dig() {
var p = new Player("John"); var p = new Player("John");
p.learnJob(new Miner()); p.learnJob(new Miner(p));
p.performAction(new DigAction()); p.performAction(new DigAction());
assertThat(p.getInventory().getItems(), hasItem("Stone")); assertThat(p.getInventory().getItems(), hasItem("Stone"));
} }