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