Basic job implementation #5
5
src/main/java/Action/Action.java
Normal file
5
src/main/java/Action/Action.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package Action;
|
||||||
|
|
||||||
|
public abstract class Action {
|
||||||
|
public static Dig Dig = new Dig();
|
||||||
|
}
|
||||||
5
src/main/java/Action/Dig.java
Normal file
5
src/main/java/Action/Dig.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package Action;
|
||||||
|
|
||||||
|
public class Dig extends Action {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,21 @@
|
|||||||
package Job;
|
package Job;
|
||||||
|
|
||||||
public interface Job {
|
public abstract class Job {
|
||||||
void performJobAction();
|
private int level;
|
||||||
|
abstract void performJobAction();
|
||||||
|
|
||||||
|
Job() {
|
||||||
|
this.level = 1;
|
||||||
|
}
|
||||||
|
Job(int level) {
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLevel() {
|
||||||
|
return level;
|
||||||
|
};
|
||||||
|
|
||||||
|
public void levelUp() {
|
||||||
|
level++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package Job;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Miner implements Job {
|
public class Miner extends Job {
|
||||||
private final String jobName = "Miner";
|
private final String jobName = "Miner";
|
||||||
|
|
||||||
public Miner() {}
|
public Miner() {}
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
|
import Action.Dig;
|
||||||
import Job.Job;
|
import Job.Job;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class Player extends Character implements Movable {
|
public class Player extends Character implements Movable {
|
||||||
protected Job job;
|
protected Job job;
|
||||||
|
protected List<String> items = new LinkedList<>();
|
||||||
public Player(String name, Job job) {
|
public Player(String name, Job job) {
|
||||||
super(name);
|
super(name);
|
||||||
this.job = job;
|
this.job = job;
|
||||||
@@ -23,4 +29,12 @@ public class Player extends Character implements Movable {
|
|||||||
public Job getJob() {
|
public Job getJob() {
|
||||||
return job;
|
return job;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void performAction(Dig dig) {
|
||||||
|
items.add("Stone");
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getInventory() {
|
||||||
|
return items;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
29
src/test/java/MinerTest.java
Normal file
29
src/test/java/MinerTest.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import Action.Action;
|
||||||
|
import Job.Miner;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
public class MinerTest {
|
||||||
|
@Test
|
||||||
|
void miner_can_dig() {
|
||||||
|
var p = new Player("Steve");
|
||||||
|
var job = new Miner();
|
||||||
|
p.learnJob(job);
|
||||||
|
p.performAction(Action.Dig);
|
||||||
|
assertTrue(p.getInventory().contains("Stone"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void miner_can_level_up() {
|
||||||
|
var p = new Player("Steve");
|
||||||
|
var job = new Miner();
|
||||||
|
assertEquals(1, job.getLevel());
|
||||||
|
job.levelUp();
|
||||||
|
assertEquals(2, job.getLevel());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user