Job terrain #12

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

View File

@ -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) {

View File

@ -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() {
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;
}
}
}

View File

@ -1,4 +1,5 @@
import Entity.Position;
import Terrain.Biomes;
import java.util.*;

View File

@ -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"));
}

View File

@ -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