aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/Actor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/Actor.java')
-rw-r--r--src/main/java/Actor.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/Actor.java b/src/main/java/Actor.java
index 207d6e6..3d81d7c 100644
--- a/src/main/java/Actor.java
+++ b/src/main/java/Actor.java
@@ -1,3 +1,61 @@
+import java.awt.Dimension;
+import java.awt.Point;
+
public class Actor {
+ public enum Type {
+ PLAYER, ENEMY
+ }
+
+
+ public final String name;
+ public final Type type;
+ protected final int MAXHP;
+ protected int hp;
+ protected int x, y;
+ protected Dimension gridSize;
+
+ public Actor(String name, int MAXHP, Type type) {
+ this.name = name;
+ this.type = type;
+ this.MAXHP = MAXHP;
+ this.hp = this.MAXHP;
+ }
+
+ public void damage(int dmg) {
+ this.hp = this.hp - dmg;
+ if (this.hp < 0) {
+ this.hp = 0;
+ }
+ }
+
+ public void heal(int life) {
+ this.hp = this.hp + life;
+ if (this.hp > this.MAXHP) {
+ this.hp = this.MAXHP;
+ }
+ }
+
+ public boolean move(int x, int y) {
+ if (x < this.gridSize.width && y < this.gridSize.height && x > 0 && y > 0) {
+ this.x = x;
+ this.y = y;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public int getHp() {
+ return this.hp;
+ }
+
+ public int getX() {
+ return this.x;
+ }
+
+ public int getY() {
+ return this.y;
+ }
+
}