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
public void execute(Actor actor) {
Miner miner = requireMiner(actor);
miner.dig(actor);
miner.dig();
}
private Miner requireMiner(Actor actor) {

View File

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

View File

@ -1,13 +1,14 @@
import Entity.Player;
import Job.Miner;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class MinerTest {
private Player defaultPlayer() {return new Player("John"); }
@Test
void can_level_up() {
var job = new Miner();
var job = new Miner(defaultPlayer());
assertEquals(1, job.getLevel());
job.levelUp();
assertEquals(2, job.getLevel());
@ -15,29 +16,25 @@ public class MinerTest {
@Test
void can_gain_xp() {
var job = new Miner();
var job = new Miner(defaultPlayer());
job.gainExperience(25);
assertEquals(25, job.getExperience());
}
@Test
void level_up_when_experience_cap_is_reached() {
var job = new Miner();
var job = new Miner(defaultPlayer());
job.gainExperience(job.remainingXpUntilLevelUp());
assertEquals(2, job.getLevel());
}
@Test
void additional_xp_carries_over_on_level_up() {
var job = new Miner();
var job = new Miner(defaultPlayer());
job.gainExperience(job.remainingXpUntilLevelUp() + 10);
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.Matchers.hasItem;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.jupiter.api.Assertions.*;
class PlayerTest {
@ -47,15 +48,15 @@ class PlayerTest {
var p = defaultPlayer();
assertNull(p.getJob());
var job = new Miner();
var job = new Miner(p);
p.learnJob(job);
assertEquals(new Miner(), p.getJob());
assertThat(p.getJob(), instanceOf(Miner.class));
}
@Test
void miner_can_dig() {
var p = new Player("John");
p.learnJob(new Miner());
p.learnJob(new Miner(p));
p.performAction(new DigAction());
assertThat(p.getInventory().getItems(), hasItem("Stone"));
}