auf neue gegner umgestellt

master
Jonathan Hager 6 years ago
parent d0b985954a
commit a6a768ee54

@ -105,12 +105,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
entityMovement.scheduleTask(new Timer.Task() {
@Override
public void run() {
if(gs != null){
if(gs.player.getAttackState() == 2){
playerAttack(d.getCurrentEntities(), d.getPlayer(), d.getPlayer().getDirection());
}
for(int i = 0; i < d.getCurrentEntities().length; i++){
if(d.getCurrentEntities()[i] != null){
// Gets the collisions relevant sprites
MapObjects mapObjects = gs.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers().get(0).getObjects();
Rectangle playerSprite = gs.getPlayer().getCollisionSprite();
Rectangle playerSprite = gs.getPlayer().getFullCollisionSprite();
Entity temp = d.getCurrentEntities()[i];
@ -130,28 +136,27 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
boolean overlaps = false;
boolean delete = false;
if(d.getCurrentEntities()[i].getId() == 2){
if(Intersector.overlaps(tempObject.getCollisionSprite(), gs.getPlayer().getFullCollisionSprite())){
overlaps = true;
if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){
overlaps = true;
if(d.getCurrentEntities()[i].getType() == 2){
delete = true;
d.getCurrentEntities()[i].attack(d.getPlayer());
}
}
else if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){
overlaps = true;
if(d.getCurrentEntities()[i].getId() != 0){
switch(gs.entitySprites[i].getAttackState()){
case 0:
gs.entitySprites[i].startAttack();
break;
case 1:
break;
case 2:
d.getCurrentEntities()[i].attack(d.getPlayer());
gs.entitySprites[i].resetAttackState();
break;
default:
else{
if(d.getCurrentEntities()[i].getType() == 0){
switch(gs.entitySprites[i].getAttackState()){
case 0:
gs.entitySprites[i].startAttack();
break;
case 1:
break;
case 2:
d.getCurrentEntities()[i].attack(d.getPlayer());
gs.entitySprites[i].resetAttackState();
break;
default:
}
}
}
}
@ -162,7 +167,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(Intersector.overlaps(tempObject.getCollisionSprite(), rectangle)){
overlaps = true;
if(d.getCurrentEntities()[i].getId() == 2){
if(d.getCurrentEntities()[i].getType() == 2){
delete = true;
}
@ -170,7 +175,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
}
if(d.getCurrentEntities()[i].getId() != 2){
if(d.getCurrentEntities()[i].getType() != 2){
for(int j = 0; j < gs.entitySprites.length; j++){
if(i != j){
if(d.getCurrentEntities()[j] != null && d.getCurrentEntities()[j].getId() != 2){
@ -186,12 +191,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
if(gs.entitySprites[i].getAttackState() == 2 && d.getCurrentEntities()[i].getId() != 0){
if(gs.entitySprites[i].getAttackState() == 2 && d.getCurrentEntities()[i].getType() != 0){
gs.entitySprites[i].resetAttackState();
}
if(gs.player.getAttackState() == 2){
playerAttack(d.getCurrentEntities(), d.getPlayer(), d.getPlayer().getDirection());
}
if(overlaps){
d.getCurrentEntities()[i].setxPos(x);
d.getCurrentEntities()[i].setyPos(y);
@ -201,12 +204,11 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
gs.entitySprites[i] = tempObject;
if(d.getCurrentEntities()[i].getId() == 0 && gs.entitySprites[i].getAttackState() == 2){
if(d.getCurrentEntities()[i].getType()== 0 && gs.entitySprites[i].getAttackState() == 2){
Entity arrow = d.getCurrentEntities()[i].shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
Entity arrow = d.getCurrentEntities()[i].shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
arrow.setxPos(d.getCurrentEntities()[i].getxPos() + 32);
arrow.setyPos(d.getCurrentEntities()[i].getyPos() + 32);
d.getCurrentEntities()[k] = arrow;
gs.generateNewEntitySprite(arrow, k);
gs.entitySprites[i].resetAttackState();

@ -11,6 +11,7 @@ public abstract class Entity {
protected float movementX;
protected float movementY;
protected int id;
protected int type;
protected int direction;
protected Inventory inv;
private boolean toDelete;
@ -177,5 +178,12 @@ public abstract class Entity {
public void setToDelete(boolean toDelete) {
this.toDelete = toDelete;
}
/**
* @return the type
*/
public int getType() {
return type;
}
}

@ -14,6 +14,7 @@ public class Archer extends Entity{
this.direction = 2;
this.dmg = 3*lvl;
this.id = 0;
this.type = 1;
counter = 0;
// TODO: Sinnvolle Werte finden
@ -113,7 +114,7 @@ public class Archer extends Entity{
alpha = 2*Math.PI - alpha;
}
}
a = new Arrow(this.xPos, this.yPos, this.lvl, 0);
a = new Arrow(this.xPos + 32, this.yPos + 32, this.lvl, 0);
movementX = (int) (6 * Math.cos(alpha));
movementY = (int) (6 * Math.sin(alpha));

@ -21,6 +21,7 @@ public class Arrow extends Entity{
this.direction = direction;
this.dmg = 3*lvl;
this.id = 2;
type = 2;
this.lifetime = 0;
}

@ -27,6 +27,7 @@ public class Player extends Entity {
this.dmg = 3*lvl;
this.standartDmg = dmg;
id = -1;
type = -1;
inv = new Inventory(3,2);
// TODO: Sinnvolle Werte finden

@ -12,6 +12,7 @@ public class Swordsman extends Entity {
this.direction = 2;
this.dmg = 3*lvl;
this.id = 1;
this.type = 0;
// TODO: Sinnvolle Werte finden
direction = 2;

Loading…
Cancel
Save