Apply BASE engine improvemenst #2
This commit is contained in:
BIN
data.mv.db
BIN
data.mv.db
Binary file not shown.
@@ -3,17 +3,14 @@ package com.bartlomiejpluta.demo.entity;
|
|||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.slf4j.*;
|
import org.slf4j.*;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
|
||||||
|
|
||||||
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
|
||||||
import com.bartlomiejpluta.demo.world.weapon.Weapon;
|
import com.bartlomiejpluta.demo.world.weapon.Weapon;
|
||||||
|
|
||||||
public abstract class Character extends NamedEntity {
|
public abstract class Character extends NamedEntity {
|
||||||
private static final Logger log = LoggerFactory.getLogger(Character.class);
|
private static final Logger log = LoggerFactory.getLogger(Character.class);
|
||||||
protected final Context context;
|
|
||||||
protected final DemoRunner runner;
|
|
||||||
|
|
||||||
protected int attackCooldown = 0;
|
protected int attackCooldown = 0;
|
||||||
|
|
||||||
@@ -36,10 +33,8 @@ public abstract class Character extends NamedEntity {
|
|||||||
@Getter
|
@Getter
|
||||||
private NamedEntity lastAttacker;
|
private NamedEntity lastAttacker;
|
||||||
|
|
||||||
public Character(@NonNull Context context, @NonNull Entity entity) {
|
public Character(@NonNull Entity entity) {
|
||||||
super(entity);
|
super(entity);
|
||||||
this.context = context;
|
|
||||||
this.runner = (DemoRunner) context.getGameRunner();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void attack() {
|
public void attack() {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.bartlomiejpluta.demo.entity;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.ai.AI;
|
import com.bartlomiejpluta.base.api.ai.AI;
|
||||||
import com.bartlomiejpluta.base.api.ai.NPC;
|
import com.bartlomiejpluta.base.api.ai.NPC;
|
||||||
@@ -33,8 +33,12 @@ public class Enemy extends Character implements NPC {
|
|||||||
@Getter
|
@Getter
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
public Enemy(@NonNull Context context, @NonNull DB.model.EnemyModel template) {
|
public Enemy(@NonNull String id) {
|
||||||
super(context, context.createEntity(template.getEntset()));
|
this(DB.dao.enemy.find(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enemy(@NonNull DB.model.EnemyModel template) {
|
||||||
|
super(ContextHolder.INSTANCE.getContext().createEntity(template.getEntset()));
|
||||||
this.template = template;
|
this.template = template;
|
||||||
name = template.getName();
|
name = template.getName();
|
||||||
maxHp = DiceRoller.of(template.getHp()).roll();
|
maxHp = DiceRoller.of(template.getHp()).roll();
|
||||||
@@ -47,11 +51,11 @@ public class Enemy extends Character implements NPC {
|
|||||||
var rangedWeaponTemplate = template.getRangedWeapon();
|
var rangedWeaponTemplate = template.getRangedWeapon();
|
||||||
|
|
||||||
if(meleeWeaponTemplate != null) {
|
if(meleeWeaponTemplate != null) {
|
||||||
this.meleeWeapon = new MeleeWeapon(context, DB.dao.melee_weapon.find(meleeWeaponTemplate));
|
this.meleeWeapon = new MeleeWeapon(meleeWeaponTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rangedWeaponTemplate != null) {
|
if(rangedWeaponTemplate != null) {
|
||||||
this.rangedWeapon = new RangedWeapon(context, DB.dao.ranged_weapon.find(rangedWeaponTemplate));
|
this.rangedWeapon = new RangedWeapon(rangedWeaponTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dieAnimation = new SimpleAnimationRunner(template.getDieAnimation());
|
this.dieAnimation = new SimpleAnimationRunner(template.getDieAnimation());
|
||||||
|
|||||||
@@ -2,26 +2,33 @@ package com.bartlomiejpluta.demo.entity;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.api.move.*;
|
import com.bartlomiejpluta.base.api.move.*;
|
||||||
import com.bartlomiejpluta.base.lib.entity.EntityDelegate;
|
import com.bartlomiejpluta.base.lib.entity.EntityDelegate;
|
||||||
import com.bartlomiejpluta.base.util.path.*;
|
import com.bartlomiejpluta.base.util.path.*;
|
||||||
|
|
||||||
import com.bartlomiejpluta.demo.entity.Character;
|
import com.bartlomiejpluta.demo.entity.Character;
|
||||||
|
|
||||||
public class MapObject extends EntityDelegate {
|
public class MapObject extends NamedEntity {
|
||||||
private final PathExecutor<MapObject> pathExecutor = new PathExecutor<>(this);
|
private final PathExecutor<MapObject> pathExecutor = new PathExecutor<>(this);
|
||||||
private final Context context;
|
|
||||||
private final DB.model.MapObjectModel template;
|
private final DB.model.MapObjectModel template;
|
||||||
private final Short frame;
|
private final Short frame;
|
||||||
private final String interactSound;
|
private final String interactSound;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final String name;
|
||||||
|
|
||||||
private boolean interacting = false;
|
private boolean interacting = false;
|
||||||
|
|
||||||
public MapObject(@NonNull Context context, @NonNull DB.model.MapObjectModel template) {
|
public MapObject(@NonNull String id) {
|
||||||
super(context.createEntity(template.getEntset()));
|
this(DB.dao.map_object.find(id));
|
||||||
this.context = context;
|
}
|
||||||
|
|
||||||
|
public MapObject(@NonNull DB.model.MapObjectModel template) {
|
||||||
|
super(ContextHolder.INSTANCE.getContext().createEntity(template.getEntset()));
|
||||||
this.template = template;
|
this.template = template;
|
||||||
this.frame = template.getFrame();
|
this.frame = template.getFrame();
|
||||||
|
this.name = template.getName();
|
||||||
this.interactSound = template.getInteractSound();
|
this.interactSound = template.getInteractSound();
|
||||||
|
|
||||||
setBlocking(true);
|
setBlocking(true);
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
package com.bartlomiejpluta.demo.entity;
|
package com.bartlomiejpluta.demo.entity;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.lib.entity.EntityDelegate;
|
import com.bartlomiejpluta.base.lib.entity.EntityDelegate;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
||||||
|
|
||||||
public abstract class NamedEntity extends EntityDelegate {
|
public abstract class NamedEntity extends EntityDelegate {
|
||||||
|
protected final Context context;
|
||||||
|
protected final DemoRunner runner;
|
||||||
|
|
||||||
public NamedEntity(Entity entity) {
|
public NamedEntity(Entity entity) {
|
||||||
super(entity);
|
super(entity);
|
||||||
|
this.context = ContextHolder.INSTANCE.getContext();
|
||||||
|
this.runner = (DemoRunner) context.getGameRunner();
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract String getName();
|
public abstract String getName();
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import com.bartlomiejpluta.demo.entity.MapObject;
|
|||||||
|
|
||||||
public class Player extends Character {
|
public class Player extends Character {
|
||||||
|
|
||||||
public Player(@NonNull Context context, @NonNull Entity entity) {
|
public Player(@NonNull Entity entity) {
|
||||||
super(context, entity);
|
super(entity);
|
||||||
this.hp = 500;
|
this.hp = 500;
|
||||||
this.maxHp = 500;
|
this.maxHp = 500;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,18 +94,18 @@ public abstract class BaseMapHandler implements MapHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Enemy enemy(@NonNull String id) {
|
public Enemy enemy(@NonNull String id) {
|
||||||
return new Enemy(context, DB.dao.enemy.find(id));
|
return new Enemy(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Enemy enemy(int x, int y, @NonNull String id) {
|
public Enemy enemy(int x, int y, @NonNull String id) {
|
||||||
var enemy = new Enemy(context, DB.dao.enemy.find(id));
|
var enemy = new Enemy(id);
|
||||||
enemy.setCoordinates(x, y);
|
enemy.setCoordinates(x, y);
|
||||||
mainLayer.addEntity(enemy);
|
mainLayer.addEntity(enemy);
|
||||||
return enemy;
|
return enemy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapObject object(int x, int y, @NonNull String id) {
|
public MapObject object(int x, int y, @NonNull String id) {
|
||||||
var object = new MapObject(context, DB.dao.map_object.find(id));
|
var object = new MapObject(id);
|
||||||
object.setCoordinates(x, y);
|
object.setCoordinates(x, y);
|
||||||
mainLayer.addEntity(object);
|
mainLayer.addEntity(object);
|
||||||
return object;
|
return object;
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class DemoRunner implements GameRunner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initPlayer() {
|
private void initPlayer() {
|
||||||
this.player = new Player(context, context.createEntity(A.entsets.luna.uid));
|
this.player = new Player(context.createEntity(A.entsets.luna.uid));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetPlayer() {
|
private void resetPlayer() {
|
||||||
@@ -80,7 +80,7 @@ public class DemoRunner implements GameRunner {
|
|||||||
this.player.setAnimationSpeed(0.005f);
|
this.player.setAnimationSpeed(0.005f);
|
||||||
this.player.setBlocking(true);
|
this.player.setBlocking(true);
|
||||||
this.player.setCoordinates(0, 11);
|
this.player.setCoordinates(0, 11);
|
||||||
this.player.setWeapon(new RangedWeapon(context, DB.dao.ranged_weapon.find("wooden_bow")));
|
this.player.setWeapon(new RangedWeapon("wooden_bow"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void newGame() {
|
public void newGame() {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import java.util.Random;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.lib.animation.*;
|
import com.bartlomiejpluta.base.lib.animation.*;
|
||||||
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
import com.bartlomiejpluta.base.util.random.DiceRoller;
|
||||||
|
|
||||||
@@ -25,8 +25,12 @@ public class MeleeWeapon implements Weapon {
|
|||||||
@Getter
|
@Getter
|
||||||
private int cooldown;
|
private int cooldown;
|
||||||
|
|
||||||
public MeleeWeapon(@NonNull Context context, @NonNull DB.model.MeleeWeaponModel template) {
|
public MeleeWeapon(@NonNull String id) {
|
||||||
this.context = context;
|
this(DB.dao.melee_weapon.find(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public MeleeWeapon(@NonNull DB.model.MeleeWeaponModel template) {
|
||||||
|
this.context = ContextHolder.INSTANCE.getContext();
|
||||||
this.name = template.getName();
|
this.name = template.getName();
|
||||||
this.roller = DiceRoller.of(template.getDamage());
|
this.roller = DiceRoller.of(template.getDamage());
|
||||||
this.cooldown = template.getCooldown();
|
this.cooldown = template.getCooldown();
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.bartlomiejpluta.demo.world.weapon;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.*;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.animation.Animation;
|
import com.bartlomiejpluta.base.api.animation.Animation;
|
||||||
import com.bartlomiejpluta.base.api.move.*;
|
import com.bartlomiejpluta.base.api.move.*;
|
||||||
@@ -33,8 +33,12 @@ public class RangedWeapon implements Weapon {
|
|||||||
@Getter
|
@Getter
|
||||||
private int cooldown;
|
private int cooldown;
|
||||||
|
|
||||||
public RangedWeapon(@NonNull Context context, @NonNull DB.model.RangedWeaponModel template) {
|
public RangedWeapon(@NonNull String id) {
|
||||||
this.context = context;
|
this(DB.dao.ranged_weapon.find(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public RangedWeapon(@NonNull DB.model.RangedWeaponModel template) {
|
||||||
|
this.context = ContextHolder.INSTANCE.getContext();
|
||||||
this.name = template.getName();
|
this.name = template.getName();
|
||||||
this.dmgRoller = DiceRoller.of(template.getDamage());
|
this.dmgRoller = DiceRoller.of(template.getDamage());
|
||||||
this.rangeRoller = DiceRoller.of(template.getRange());
|
this.rangeRoller = DiceRoller.of(template.getRange());
|
||||||
|
|||||||
Reference in New Issue
Block a user