From 1deb26474ad4631d872f66248ba45a53e176ab0a Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Sat, 2 Jan 2021 12:02:33 +0100 Subject: [PATCH] FightScreen --- core/src/com/trs/main/Enemy.java | 8 ++++ core/src/com/trs/main/FightObject.java | 13 ++++++ core/src/com/trs/main/FightPlayer.java | 8 ++++ core/src/com/trs/main/FightScreen.java | 45 +++++++++++++++++++++ core/src/com/trs/main/MapContainer.java | 38 ++++++++--------- core/src/com/trs/main/Stats.java | 54 +++++++++++++++++++++++++ 6 files changed, 148 insertions(+), 18 deletions(-) create mode 100644 core/src/com/trs/main/Enemy.java create mode 100644 core/src/com/trs/main/FightObject.java create mode 100644 core/src/com/trs/main/FightPlayer.java create mode 100644 core/src/com/trs/main/FightScreen.java create mode 100644 core/src/com/trs/main/Stats.java diff --git a/core/src/com/trs/main/Enemy.java b/core/src/com/trs/main/Enemy.java new file mode 100644 index 0000000..ad4c02c --- /dev/null +++ b/core/src/com/trs/main/Enemy.java @@ -0,0 +1,8 @@ +package com.trs.main; + +public class Enemy extends FightObject{ + + public Enemy(AnimatedSprite sprite, Stats stats, int id) { + super(sprite, stats, id); + } +} diff --git a/core/src/com/trs/main/FightObject.java b/core/src/com/trs/main/FightObject.java new file mode 100644 index 0000000..ca2d8a8 --- /dev/null +++ b/core/src/com/trs/main/FightObject.java @@ -0,0 +1,13 @@ +package com.trs.main; + +public abstract class FightObject { + protected AnimatedSprite sprite; + protected Stats stats; + protected int id; + + public FightObject(AnimatedSprite sprite, Stats stats, int id) { + this.sprite = sprite; + this.stats = stats; + this.id = id; + } +} diff --git a/core/src/com/trs/main/FightPlayer.java b/core/src/com/trs/main/FightPlayer.java new file mode 100644 index 0000000..83c5b03 --- /dev/null +++ b/core/src/com/trs/main/FightPlayer.java @@ -0,0 +1,8 @@ +package com.trs.main; + +public class FightPlayer extends FightObject{ + + public FightPlayer(AnimatedSprite sprite, Stats stats, int id) { + super(sprite, stats, id); + } +} diff --git a/core/src/com/trs/main/FightScreen.java b/core/src/com/trs/main/FightScreen.java new file mode 100644 index 0000000..de8c005 --- /dev/null +++ b/core/src/com/trs/main/FightScreen.java @@ -0,0 +1,45 @@ +package com.trs.main; + +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.math.Rectangle; + +public class FightScreen { + + Batch batch; + FightObject[] objects; + Rectangle[] collisionRects; + + // 0: player turn, 1: enemy turn, 2: fight ends + int state = 0; + + public FightScreen(Batch batch, FightObject[] objects, Rectangle[] collisionRects) { + this.batch = batch; + this.objects = objects; + this.collisionRects = collisionRects; + + for(int j = 0; j < objects.length-1; j++){ + for(int i = objects.length-1; i >= 0; i--){ + if(i > 0 && objects[i].stats.getInit() > objects[i-1].stats.getInit()){ + FightObject temp = objects[i-1]; + objects[i-1] = objects[i]; + objects[i] = temp; + } + } + } + } + + public void act(float deltatime) { + + } + + public void draw() { + batch.begin(); + + for(FightObject object : objects) { + object.sprite.draw(batch); + } + + batch.end(); + } + +} diff --git a/core/src/com/trs/main/MapContainer.java b/core/src/com/trs/main/MapContainer.java index 04e91fc..6e149c5 100644 --- a/core/src/com/trs/main/MapContainer.java +++ b/core/src/com/trs/main/MapContainer.java @@ -158,27 +158,29 @@ public class MapContainer { renderer.render(layersBelowPlayer); - Actor[] old = stage.getActors().toArray(); - stage.clear(); - for(Actor a : sort(old)){ - stage.addActor(a); - } - for(Actor a : stage.getActors()) { - if(a instanceof Player) { - Rectangle rect = ((Player) a).collisionRect; - - for(Door d : doors) { - if(Intersector.overlaps(rect, d.rect)) { - collidingDoor = d; - break; - } - } + if(Main.gamestate == 0) { + Actor[] old = stage.getActors().toArray(); + stage.clear(); + for(Actor a : sort(old)){ + stage.addActor(a); + } + for(Actor a : stage.getActors()) { + if(a instanceof Player) { + Rectangle rect = ((Player) a).collisionRect; + + for(Door d : doors) { + if(Intersector.overlaps(rect, d.rect)) { + collidingDoor = d; + break; + } + } + } } + + stage.act(f); + stage.draw(); } - stage.act(f); - stage.draw(); - renderer.render(layersAbovePlayer); for(Actor a : stage.getActors()){ diff --git a/core/src/com/trs/main/Stats.java b/core/src/com/trs/main/Stats.java new file mode 100644 index 0000000..1b116c2 --- /dev/null +++ b/core/src/com/trs/main/Stats.java @@ -0,0 +1,54 @@ +package com.trs.main; + +public class Stats { + private int level; + private int hp; + private int def; + private int atk; + private int init; + + public Stats() { + + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getHp() { + return hp; + } + + public void setHp(int hp) { + this.hp = hp; + } + + public int getDef() { + return def; + } + + public void setDef(int def) { + this.def = def; + } + + public int getAtk() { + return atk; + } + + public void setAtk(int atk) { + this.atk = atk; + } + + public int getInit() { + return init; + } + + public void setInit(int init) { + this.init = init; + } + +}