Job terrain #12
@ -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) {
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user