Changed filenames & combat tweaking dev.
Before Width: | Height: | Size: 736 KiB After Width: | Height: | Size: 736 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
@ -1,12 +1,7 @@
|
|||||||
package com.saltosion.gladiator.gui.creators;
|
package com.saltosion.gladiator.gui.creators;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.g2d.Sprite;
|
|
||||||
import com.saltosion.gladiator.gui.nodes.ButtonNode;
|
|
||||||
import com.saltosion.gladiator.gui.nodes.TextNode;
|
import com.saltosion.gladiator.gui.nodes.TextNode;
|
||||||
import com.saltosion.gladiator.util.AppUtil;
|
import com.saltosion.gladiator.util.AppUtil;
|
||||||
import com.saltosion.gladiator.util.Log;
|
|
||||||
import com.saltosion.gladiator.util.Name;
|
|
||||||
import com.saltosion.gladiator.util.SpriteLoader;
|
|
||||||
|
|
||||||
public class InGameGUICreator implements GUICreator {
|
public class InGameGUICreator implements GUICreator {
|
||||||
|
|
||||||
@ -14,30 +9,8 @@ public class InGameGUICreator implements GUICreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
Sprite img1 = SpriteLoader.loadSprite(Name.WALLIMG, 0, 0, 32, 64);
|
levelChangeText = new TextNode("Level-Change-Text", "Round X");
|
||||||
Sprite img2 = SpriteLoader.loadSprite(Name.WALLIMG, 1, 0, 32, 64);
|
levelChangeText.setPosition(0.435f, 0.5f);
|
||||||
ButtonNode button = new ButtonNode("test-button", img1, img2) {
|
|
||||||
@Override
|
|
||||||
public void pressed(int x, int y, int mouseButton) {
|
|
||||||
Log.info("I should never be pressed against my will!");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void released(int x, int y, int mouseButton) {
|
|
||||||
Log.info("And now I was even released! Blasphemy!");
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
button.setPosition(0.12f, 0.5f);
|
|
||||||
AppUtil.guiManager.getRootNode().addChild(button);
|
|
||||||
|
|
||||||
TextNode text = new TextNode("test-text", "Test!");
|
|
||||||
text.setPosition(0.8f, 0.5f);
|
|
||||||
AppUtil.guiManager.getRootNode().addChild(text);
|
|
||||||
|
|
||||||
levelChangeText = new TextNode("Level-Change-Text", "Level change");
|
|
||||||
levelChangeText.setPosition(0.4f, 0.5f);
|
|
||||||
AppUtil.guiManager.getRootNode().addChild(levelChangeText);
|
AppUtil.guiManager.getRootNode().addChild(levelChangeText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,17 +5,22 @@ import java.util.ArrayList;
|
|||||||
import com.badlogic.ashley.core.ComponentMapper;
|
import com.badlogic.ashley.core.ComponentMapper;
|
||||||
import com.badlogic.ashley.core.Entity;
|
import com.badlogic.ashley.core.Entity;
|
||||||
import com.saltosion.gladiator.components.CCombat;
|
import com.saltosion.gladiator.components.CCombat;
|
||||||
|
import com.saltosion.gladiator.components.CPhysics;
|
||||||
import com.saltosion.gladiator.systems.CombatSystem;
|
import com.saltosion.gladiator.systems.CombatSystem;
|
||||||
import com.saltosion.gladiator.util.Direction;
|
import com.saltosion.gladiator.util.Direction;
|
||||||
|
import com.saltosion.gladiator.util.Log;
|
||||||
|
|
||||||
public class SwingHitboxListener implements CollisionListener {
|
public class SwingHitboxListener implements CollisionListener {
|
||||||
|
|
||||||
private ArrayList<Entity> hitEntities = new ArrayList<Entity>();
|
private final ArrayList<Entity> hitEntities = new ArrayList<Entity>();
|
||||||
private ComponentMapper<CCombat> cm = ComponentMapper.getFor(CCombat.class);
|
private final ComponentMapper<CCombat> cm = ComponentMapper.getFor(CCombat.class);
|
||||||
private Entity source;
|
private final ComponentMapper<CPhysics> pm = ComponentMapper.getFor(CPhysics.class);
|
||||||
|
private final Entity source;
|
||||||
public SwingHitboxListener(Entity source) {
|
private final Direction direction;
|
||||||
|
|
||||||
|
public SwingHitboxListener(Entity source, Direction direction) {
|
||||||
this.source = source;
|
this.source = source;
|
||||||
|
this.direction = direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -24,13 +29,25 @@ public class SwingHitboxListener implements CollisionListener {
|
|||||||
return; // These entities don't need to take damage
|
return; // These entities don't need to take damage
|
||||||
}
|
}
|
||||||
hitEntities.add(other);
|
hitEntities.add(other);
|
||||||
|
|
||||||
CCombat otherCombat = cm.get(other);
|
CCombat otherCombat = cm.get(other);
|
||||||
if (otherCombat == null) {
|
if (otherCombat != null) {
|
||||||
return;
|
int damage = cm.get(source).getDamage();
|
||||||
|
CombatSystem.dealDamage(source, other, damage);
|
||||||
|
}
|
||||||
|
|
||||||
|
CPhysics otherPhysics = pm.get(other);
|
||||||
|
if (otherPhysics != null && otherPhysics.getCollisionListener() != null
|
||||||
|
&& otherPhysics.getCollisionListener() instanceof SwingHitboxListener) {
|
||||||
|
Log.info("Clash!");
|
||||||
|
float x = 0;
|
||||||
|
if (direction == Direction.LEFT) {
|
||||||
|
x = -1;
|
||||||
|
}
|
||||||
|
if (direction == Direction.RIGHT) {
|
||||||
|
x = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
int damage = cm.get(source).getDamage();
|
|
||||||
CombatSystem.dealDamage(source, other, damage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -71,21 +71,21 @@ public class CombatSystem extends EntitySystem {
|
|||||||
} else if (combat.getSwingDirection() == Direction.DOWN) {
|
} else if (combat.getSwingDirection() == Direction.DOWN) {
|
||||||
pos.add(0, -combat.getSwingSize().y / 3 * 2);
|
pos.add(0, -combat.getSwingSize().y / 3 * 2);
|
||||||
}
|
}
|
||||||
createSwingHitbox(e, pos);
|
createSwingHitbox(e, combat.getSwingDirection(), pos);
|
||||||
|
|
||||||
combat.swingCdCounter = combat.getSwingDuration();
|
combat.swingCdCounter = combat.getSwingDuration();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createSwingHitbox(Entity source, Vector2 position) {
|
public void createSwingHitbox(Entity source, Direction direction, Vector2 position) {
|
||||||
Entity e = new Entity();
|
Entity e = new Entity();
|
||||||
CCombat combat = cm.get(source);
|
CCombat combat = cm.get(source);
|
||||||
Sprite s = SpriteLoader.loadSprite(Name.SWINGHITBOXIMG);
|
Sprite s = SpriteLoader.loadSprite(Name.SWINGHITBOXIMG);
|
||||||
e.add(new CRenderedObject(s));
|
e.add(new CRenderedObject(s));
|
||||||
e.add(new CPhysics().setGhost(true).setGravityApplied(false).setMovable(false)
|
e.add(new CPhysics().setGhost(true).setGravityApplied(false).setMovable(false)
|
||||||
.setSize(combat.getSwingSize()));
|
.setSize(combat.getSwingSize()));
|
||||||
e.getComponent(CPhysics.class).setPosition(position).setCollisionListener(new SwingHitboxListener(source));
|
e.getComponent(CPhysics.class).setPosition(position).setCollisionListener(new SwingHitboxListener(source, direction));
|
||||||
e.add(new CDestructive(combat.getSwingDuration() / 2));
|
e.add(new CDestructive(combat.getSwingDuration() / 2));
|
||||||
AppUtil.engine.addEntity(e);
|
AppUtil.engine.addEntity(e);
|
||||||
|
|
||||||
|
@ -17,14 +17,14 @@ public class SpriteLoader {
|
|||||||
loadTexture(Name.GROUNDIMG, "sprites/ground.png");
|
loadTexture(Name.GROUNDIMG, "sprites/ground.png");
|
||||||
loadTexture(Name.WALLIMG, "sprites/wall.png");
|
loadTexture(Name.WALLIMG, "sprites/wall.png");
|
||||||
loadTexture(Name.SWINGHITBOXIMG, "sprites/swinghitbox.png");
|
loadTexture(Name.SWINGHITBOXIMG, "sprites/swinghitbox.png");
|
||||||
loadTexture(Name.AUDIENCEIMG, "sprites/Audience.png");
|
loadTexture(Name.AUDIENCEIMG, "sprites/audience.png");
|
||||||
|
|
||||||
loadTexture(Name.BUTTON_HUGE, "sprites/buttons/Button_Huge.png");
|
loadTexture(Name.BUTTON_HUGE, "sprites/buttons/button_huge.png");
|
||||||
loadTexture(Name.BUTTON_HUGE_HOVER, "sprites/buttons/Button_Huge_Hover.png");
|
loadTexture(Name.BUTTON_HUGE_HOVER, "sprites/buttons/button_huge_hover.png");
|
||||||
loadTexture(Name.BUTTON_BIG, "sprites/buttons/Button_Big.png");
|
loadTexture(Name.BUTTON_BIG, "sprites/buttons/button_big.png");
|
||||||
loadTexture(Name.BUTTON_BIG_HOVER, "sprites/buttons/Button_Big_Hover.png");
|
loadTexture(Name.BUTTON_BIG_HOVER, "sprites/buttons/button_big_hover.png");
|
||||||
loadTexture(Name.BUTTON_SMALL, "sprites/buttons/Button_Small.png");
|
loadTexture(Name.BUTTON_SMALL, "sprites/buttons/button_small.png");
|
||||||
loadTexture(Name.BUTTON_SMALL_HOVER, "sprites/buttons/Button_Small_Hover.png");
|
loadTexture(Name.BUTTON_SMALL_HOVER, "sprites/buttons/button_small_hover.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|