From b837528a03ae89f3b698babffb19c17f05c48db9 Mon Sep 17 00:00:00 2001 From: GammelJAN Date: Sat, 2 Jan 2021 18:55:17 +0100 Subject: [PATCH] player is being written back - code for enemies also implemented -> not working because there are no enemy actors yet --- core/src/com/trs/main/Enemy.java | 4 +-- core/src/com/trs/main/FightObject.java | 4 ++- core/src/com/trs/main/FightPlayer.java | 4 +-- core/src/com/trs/main/FightScreen.java | 9 +++++- core/src/com/trs/main/MapContainer.java | 39 +++++++++++++++++++++---- 5 files changed, 49 insertions(+), 11 deletions(-) diff --git a/core/src/com/trs/main/Enemy.java b/core/src/com/trs/main/Enemy.java index 4b30b51..bfb0a98 100644 --- a/core/src/com/trs/main/Enemy.java +++ b/core/src/com/trs/main/Enemy.java @@ -2,8 +2,8 @@ package com.trs.main; public class Enemy extends FightObject{ - public Enemy(float x, float y, AnimatedSprite sprite, Stats stats, int id) { - super(x, y, sprite, stats, id); + public Enemy(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) { + super(x, y, sprite, stats, id, isPlayer); } } diff --git a/core/src/com/trs/main/FightObject.java b/core/src/com/trs/main/FightObject.java index c1a075d..c473b68 100644 --- a/core/src/com/trs/main/FightObject.java +++ b/core/src/com/trs/main/FightObject.java @@ -6,13 +6,15 @@ public abstract class FightObject { protected int id; protected float x; protected float y; + protected boolean isPlayer; - public FightObject(float x, float y, AnimatedSprite sprite, Stats stats, int id) { + public FightObject(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) { this.sprite = sprite; this.stats = stats; this.id = id; this.x = x; this.y = y; + this.isPlayer = isPlayer; } void setX(float x) { diff --git a/core/src/com/trs/main/FightPlayer.java b/core/src/com/trs/main/FightPlayer.java index 5b116a0..f85d463 100644 --- a/core/src/com/trs/main/FightPlayer.java +++ b/core/src/com/trs/main/FightPlayer.java @@ -2,8 +2,8 @@ package com.trs.main; public class FightPlayer extends FightObject{ - public FightPlayer(float x, float y, AnimatedSprite sprite, Stats stats, int id) { - super(x, y, sprite, stats, id); + public FightPlayer(float x, float y, AnimatedSprite sprite, Stats stats, int id, boolean isPlayer) { + super(x, y, sprite, stats, id, isPlayer); } } diff --git a/core/src/com/trs/main/FightScreen.java b/core/src/com/trs/main/FightScreen.java index 75d3907..53f33e3 100644 --- a/core/src/com/trs/main/FightScreen.java +++ b/core/src/com/trs/main/FightScreen.java @@ -54,7 +54,14 @@ public class FightScreen { boolean finished = true; for(FightObject object : objects){ Vector2 POI = new Vector2((int)(Math.ceil((double)(object.x)/32.0) * 32.0) - 16, (int)(Math.ceil((double)(object.y)/32.0) * 32.0)); - Vector2 movement = new Vector2(3,0); + float speed = 3; + + if(Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y)) < 3f && Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y)) != 0) { + speed = Math.abs(Vector2.dst(object.x, object.y, POI.x, POI.y)); + } + + + Vector2 movement = new Vector2(speed,0); movement.setAngleRad(StaticMath.calculateAngle(object.x, object.y, POI.x, POI.y)); int facing; if(movement.angleDeg() < 135 && movement.angleDeg() >= 45) { diff --git a/core/src/com/trs/main/MapContainer.java b/core/src/com/trs/main/MapContainer.java index b628061..aeba2b3 100644 --- a/core/src/com/trs/main/MapContainer.java +++ b/core/src/com/trs/main/MapContainer.java @@ -176,7 +176,7 @@ public class MapContainer { // CREATING FightObject Array // Temporarily only Player - FightObject[] fightObjects = {new FightPlayer(getPlayer().getX(),getPlayer().getY(),getPlayer().playerSprite, getPlayer().stats, 0)}; + FightObject[] fightObjects = {new FightPlayer(getPlayer().getX(),getPlayer().getY(),getPlayer().playerSprite, getPlayer().stats, 0, true)}; fs = new FightScreen(stage.getBatch(), fightObjects, rects, getPlayer().getX()+32, getPlayer().getY()+32); } @@ -214,10 +214,39 @@ public class MapContainer { } if(Main.gamestate == 2){ - - - fs.act(f); - fs.draw(); + if(fs.state == 3){ + for(FightObject object : fs.objects){ + if(object.isPlayer){ + getPlayer().setX(object.x); + getPlayer().setY(object.y); + getPlayer().stats = object.stats; + } + else{ + /* + for(int i = stage.getActors().size-1; i >= 0; i--){ + if(stage.getActors().get(i) instanceof EnemyNpc){ + if(((EnemyNpc)stage.getActors().get(i)).id == object.id){ + if(object.stats.getHp() <= 0){ + stage.getActors().removeIndex(i); + } + else{ + stage.getActors().get(i).setPosition(object.x, object.y); + ((EnemyNpc)stage.getActors().get(i)).stats = object.stats; + } + } + } + } + */ + } + } + + fs = null; + Main.gamestate = 0; + } + else{ + fs.act(f); + fs.draw(); + } } renderer.render(layersAbovePlayer);