fixed enamy select and building units
This commit is contained in:
parent
ba32196429
commit
8f74ca2ee5
7 changed files with 83 additions and 24 deletions
|
|
@ -75,13 +75,13 @@ public abstract class GameEntity{
|
|||
* Sets a unit to be selected or not.
|
||||
* @param b true or false.
|
||||
*/
|
||||
public abstract void setSelected(boolean b, boolean playSound);
|
||||
public abstract void setSelected(Player p,boolean b, boolean playSound);
|
||||
|
||||
/**
|
||||
* Set if the mouse is over the unit or not
|
||||
* @param b If the mouse is over the unit or not
|
||||
*/
|
||||
public abstract void setMouseOver(boolean b);
|
||||
public abstract void setMouseOver(Player p,boolean b);
|
||||
|
||||
protected abstract SelectBox getSelection();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ public class SelectBox {
|
|||
private Node selectNode;
|
||||
private Node mouseOverNode;
|
||||
private ProgressBar bar;
|
||||
private Texture tex;
|
||||
|
||||
/**
|
||||
* Creates a selection box with health bar
|
||||
|
|
@ -26,7 +27,7 @@ public class SelectBox {
|
|||
selectNode = new Node("SelectionNode");
|
||||
mouseOverNode = new Node("MouseOverNode");
|
||||
|
||||
Texture tex = new Texture();
|
||||
tex = new Texture();
|
||||
if(color == COLOR_RED){
|
||||
tex.setColor(new Vector4f(1.0f, 0.5f, 0.5f,1));
|
||||
}
|
||||
|
|
@ -39,6 +40,7 @@ public class SelectBox {
|
|||
bar.setValueColor(25, new Vector4f(1.0f, 0f, 0f, 1f));
|
||||
bar.setValueColor(50, new Vector4f(1.0f, .95f, 0, 1f));
|
||||
bar.setValueColor(100, new Vector4f(0.3f, 1.0f, 0.3f, 1f));
|
||||
bar.setBarColor(tex.getColor());
|
||||
selectNode.add(bar.getNode());
|
||||
mouseOverNode.add(bar.getNode());
|
||||
|
||||
|
|
@ -56,6 +58,16 @@ public class SelectBox {
|
|||
return selectNode;
|
||||
}
|
||||
|
||||
public void setColor(int i){
|
||||
if(i == COLOR_RED){
|
||||
tex.setColor(new Vector4f(1.0f, 0.5f, 0.5f,1));
|
||||
bar.setBarColor(tex.getColor());
|
||||
}
|
||||
else{
|
||||
tex.setColor(new Vector4f(0.5f, 1.0f, 0.5f,1));
|
||||
bar.setBarColor(tex.getColor());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the node of the selection
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import ei.game.gamestate.InGameState;
|
|||
import ei.game.player.Player;
|
||||
import ei.game.scene.GameEntity;
|
||||
import ei.game.scene.Map;
|
||||
import ei.game.scene.SelectBox;
|
||||
import ei.game.scene.units.Unit;
|
||||
|
||||
/**
|
||||
|
|
@ -34,22 +35,38 @@ public abstract class Building extends GameEntity{
|
|||
unitNode = new Node("UnitNode");
|
||||
unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY(), this.size));
|
||||
setPos(pos.getX(), pos.getY(), this.size);
|
||||
moveFrom = Map.getPixelByPos(oldPos.getX()+size-2, oldPos.getX()+size-1);
|
||||
moveTo = Map.getPixelByPos( oldPos.getX()+size-2, oldPos.getX()+size);
|
||||
moveFrom = Map.getPixelByPos(oldPos.getX()+size-2, oldPos.getY()+size-1);
|
||||
moveTo = Map.getPixelByPos( oldPos.getX()+size-2, oldPos.getY()+size);
|
||||
}
|
||||
|
||||
public void setSelected(boolean b, boolean playSound) {
|
||||
public void setSelected(Player p,boolean b, boolean playSound) {
|
||||
if(b) {
|
||||
unitNode.add(getSelection().getSelectNode());
|
||||
SelectBox box = getSelection();
|
||||
if(getPlayer() != p){
|
||||
box.setColor(SelectBox.COLOR_RED);
|
||||
unitNode.add(box.getSelectNode());
|
||||
}
|
||||
else{
|
||||
box.setColor(SelectBox.COLOR_GREEN);
|
||||
unitNode.add(box.getSelectNode());
|
||||
}
|
||||
}
|
||||
else{
|
||||
unitNode.remove(getSelection().getSelectNode());
|
||||
}
|
||||
}
|
||||
|
||||
public void setMouseOver(boolean b) {
|
||||
public void setMouseOver(Player p,boolean b) {
|
||||
if(b) {
|
||||
unitNode.add(getSelection().getMouseOverNode());
|
||||
SelectBox box = getSelection();
|
||||
if(getPlayer() != p){
|
||||
box.setColor(SelectBox.COLOR_RED);
|
||||
unitNode.add(box.getMouseOverNode());
|
||||
}
|
||||
else{
|
||||
box.setColor(SelectBox.COLOR_GREEN);
|
||||
unitNode.add(box.getMouseOverNode());
|
||||
}
|
||||
}
|
||||
else{
|
||||
unitNode.remove(getSelection().getMouseOverNode());
|
||||
|
|
@ -152,12 +169,15 @@ public abstract class Building extends GameEntity{
|
|||
buildTime++;
|
||||
if(buildTime >= buildQueue.peek().getBuildTime()){
|
||||
if(!unitNode.contains(buildQueue.peek().getNode())){
|
||||
System.out.println(buildQueue.peek().getNode());
|
||||
System.out.println("lol1"+buildQueue.peek().getNode());
|
||||
unitNode.add(buildQueue.peek().getNode(),unitNode.size()/2);
|
||||
buildQueue.peek().getNode().setLocation(moveFrom);
|
||||
}
|
||||
Vector2i temp = Map.getPosByPixel(moveTo.getX(), moveTo.getY());
|
||||
if(InGameState.getMap().isPosEmpty(temp.getX(),temp.getY())){
|
||||
if(!InGameState.getMap().isPosEmpty(temp.getX(),temp.getY())){
|
||||
InGameState.getMap().getPos(temp.getX(),temp.getY()).move(false, oldPos.getX()+(size/2), oldPos.getY()-(size/2));
|
||||
}
|
||||
else{
|
||||
//The moving is done here.
|
||||
if(moveTo.getX() > buildQueue.peek().getNode().getLocation().getX()) {
|
||||
buildQueue.peek().getNode().getLocation().add(buildQueue.peek().getVelocity(), 0f, 0f);
|
||||
|
|
@ -171,7 +191,7 @@ public abstract class Building extends GameEntity{
|
|||
if(moveTo.getY() < buildQueue.peek().getNode().getLocation().getY()) {
|
||||
buildQueue.peek().getNode().getLocation().add(0f, -buildQueue.peek().getVelocity(), 0f);
|
||||
}
|
||||
System.out.println(buildQueue.peek().getNode().getLocation());
|
||||
System.out.println("lol2"+buildQueue.peek().getNode().getLocation());
|
||||
if(Math.abs(moveTo.getX() - buildQueue.peek().getNode().getLocation().getX()) < buildQueue.peek().getVelocity()+1
|
||||
&& Math.abs(moveTo.getY() - buildQueue.peek().getNode().getLocation().getY())< buildQueue.peek().getVelocity()+1 ){
|
||||
buildTime = 0;
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ public abstract class MapEntity extends Unit{
|
|||
|
||||
protected void move(int x, int y, boolean b) {}
|
||||
|
||||
public void setSelected(boolean b) {}
|
||||
public void setSelected(Player p, boolean b) {}
|
||||
|
||||
public void setMouseOver(boolean b) {}
|
||||
public void setMouseOver(Player p, boolean b) {}
|
||||
|
||||
@Override
|
||||
public float getVelocity() {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import ei.game.gamestate.InGameState;
|
|||
import ei.game.player.Player;
|
||||
import ei.game.scene.GameEntity;
|
||||
import ei.game.scene.Map;
|
||||
import ei.game.scene.SelectBox;
|
||||
import ei.game.scene.weapons.Weapon;
|
||||
import ei.game.scene.weapons.WeaponHandler;
|
||||
|
||||
|
|
@ -63,19 +64,35 @@ public abstract class Unit extends GameEntity{
|
|||
init();
|
||||
}
|
||||
|
||||
public void setSelected(boolean b,boolean playSound) {
|
||||
public void setSelected(Player p,boolean b,boolean playSound) {
|
||||
if(b) {
|
||||
if(playSound)getSelectSound().play();
|
||||
unitNode.add(getSelection().getSelectNode());
|
||||
SelectBox box = getSelection();
|
||||
if(getPlayer() != p){
|
||||
box.setColor(SelectBox.COLOR_RED);
|
||||
unitNode.add(box.getSelectNode());
|
||||
}
|
||||
else{
|
||||
box.setColor(SelectBox.COLOR_GREEN);
|
||||
unitNode.add(box.getSelectNode());
|
||||
}
|
||||
}
|
||||
else{
|
||||
unitNode.remove(getSelection().getSelectNode());
|
||||
}
|
||||
}
|
||||
|
||||
public void setMouseOver(boolean b) {
|
||||
public void setMouseOver(Player p,boolean b) {
|
||||
if(b) {
|
||||
unitNode.add(getSelection().getMouseOverNode());
|
||||
SelectBox box = getSelection();
|
||||
if(getPlayer() != p){
|
||||
box.setColor(SelectBox.COLOR_RED);
|
||||
unitNode.add(box.getMouseOverNode());
|
||||
}
|
||||
else{
|
||||
box.setColor(SelectBox.COLOR_GREEN);
|
||||
unitNode.add(box.getMouseOverNode());
|
||||
}
|
||||
}
|
||||
else{
|
||||
unitNode.remove(getSelection().getMouseOverNode());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue