Job terrain #12
@ -2,12 +2,17 @@ package Action;
|
||||
|
||||
import Job.HasJob;
|
||||
import Job.Miner;
|
||||
import Terrain.Biomes;
|
||||
|
||||
public class DigAction implements Action {
|
||||
Biomes biome;
|
||||
public DigAction(Biomes biome) {
|
||||
this.biome = biome;
|
||||
}
|
||||
@Override
|
||||
public void execute(Actor actor) {
|
||||
Miner miner = requireMiner(actor);
|
||||
miner.dig();
|
||||
miner.dig(biome);
|
||||
}
|
||||
|
||||
private Miner requireMiner(Actor actor) {
|
||||
|
||||
@ -1,16 +1,32 @@
|
||||
package Job;
|
||||
|
||||
import Inventory.HasInventory;
|
||||
import Terrain.Biomes;
|
||||
|
||||
|
||||
public class Miner extends Job {
|
||||
HasInventory actor;
|
||||
|
||||
public Miner(HasInventory actor) {
|
||||
super("Miner");
|
||||
this.actor = actor;
|
||||
}
|
||||
|
||||
public void dig() {
|
||||
actor.getInventory().addItem("Stone");
|
||||
public HasInventory getActor() {
|
||||
return actor;
|
||||
}
|
||||
|
||||
public void dig(Biomes biome) {
|
||||
switch (biome) {
|
||||
case COAST:
|
||||
actor.getInventory().addItem("Sand");
|
||||
break;
|
||||
case MOUNTAIN:
|
||||
actor.getInventory().addItem("Stone");
|
||||
break;
|
||||
default:
|
||||
actor.getInventory().addItem("Clay");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import Entity.Position;
|
||||
import Terrain.Biomes;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import Entity.Player;
|
||||
import Job.Miner;
|
||||
import Terrain.Biomes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
@ -41,9 +42,9 @@ public class MinerTest {
|
||||
void dig_on_biome_alters_loot() {
|
||||
var job = new Miner(defaultPlayer());
|
||||
job.dig(Biomes.COAST);
|
||||
assertThat(job.getWorker().getInventory(), hasItem("Sand"));
|
||||
assertThat(job.getActor().getInventory().getItems(), hasItem("Sand"));
|
||||
job.dig(Biomes.MOUNTAIN);
|
||||
assertThat(job.getWorker().getInventory(), hasItem("Ore"));
|
||||
assertThat(job.getActor().getInventory().getItems(), hasItem("Stone"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import Combat.OffensiveDamageSpell;
|
||||
import Entity.Position;
|
||||
import Job.Miner;
|
||||
import Entity.Player;
|
||||
import Terrain.Biomes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import Job.Wizard;
|
||||
|
||||
@ -57,8 +58,8 @@ class PlayerTest {
|
||||
void miner_can_dig() {
|
||||
var p = new Player("John");
|
||||
p.learnJob(new Miner(p));
|
||||
p.performAction(new DigAction());
|
||||
assertThat(p.getInventory().getItems(), hasItem("Stone"));
|
||||
p.performAction(new DigAction(Biomes.FOREST));
|
||||
assertThat(p.getInventory().getItems(), hasItem("Clay"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user