Skip to content
Snippets Groups Projects
Commit c1f5866f authored by Leonard's avatar Leonard
Browse files

Merge branch 'master' into network

parents 0da2cc42 a152be63
No related branches found
No related tags found
No related merge requests found
Showing
with 241 additions and 36 deletions
[LocalizedFileNames]
box_weapons_on.png=@box_weapons_on,0
core/assets/shipsys/weapon/laser.png

755 B

core/assets/shop/storeback.png

104 KiB

core/assets/startgame.png

3.22 KiB

core/assets/yes.png

2.93 KiB

package com.galaxytrucker.galaxytruckerreloaded.Controller; package com.galaxytrucker.galaxytruckerreloaded.Controller;
import com.badlogic.gdx.Screen;
import com.galaxytrucker.galaxytruckerreloaded.Communication.ClientControllerCommunicator;
import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew;
import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader;
import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
import com.galaxytrucker.galaxytruckerreloaded.Server.RequestObject;
import com.galaxytrucker.galaxytruckerreloaded.Server.RequestType;
import com.galaxytrucker.galaxytruckerreloaded.Server.ResponseObject;
import lombok.*; import lombok.*;
import java.util.List;
@Getter @Getter
@Setter @Setter
@RequiredArgsConstructor(access = AccessLevel.PUBLIC) @RequiredArgsConstructor(access = AccessLevel.PUBLIC)
public class TraderController extends Controller{ public class TraderController extends Controller{
/** My own ship */
@NonNull
private Ship myself;
/** the trader */ /** the trader */
@NonNull @NonNull
private Trader trader; private Trader trader;
/** ClientControllerCommunicator */
@NonNull
private ClientControllerCommunicator clientControllerCommunicator;
/** /**
* Buy a weapon from the trader * Buy a weapon from the trader
* @param weapon - the weapon to buy * @param weapon - the weapon to buy
*/ */
private void purchaseWeapon(Weapon weapon) { public boolean purchaseWeapon(Weapon weapon) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setWeapon(weapon);
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setRequestType(RequestType.TRADERBUYWEAPON);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if (responseObject.isValidRequest()) {
//remove from trader
List<Weapon> traderWeapons = trader.getWeaponStock();
traderWeapons.remove(weapon);
trader.setWeaponStock(traderWeapons);
//add to ship
Ship ship = clientControllerCommunicator.getClientShip();
List<Weapon> shipWeapons = ship.getInventory();
shipWeapons.add(weapon);
ship.setInventory(shipWeapons);
ship.setCoins(ship.getCoins() - weapon.getPrice().get(weapon.getWeaponLevel()));
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
} }
/** /**
* Buy crew from a trader * Buy crew from a trader
* @param crew - the crew to buy * @param crew - the crew to buy
*/ */
public void purchaseCrew(Crew crew) { public boolean purchaseCrew(Crew crew) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setRequestType(RequestType.TRADERBUYCREW);
requestObject.setTrader(trader);
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setCrew(crew);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//remove from trader
List<Crew> tcrew = trader.getCrewStock();
tcrew.remove(crew);
trader.setCrewStock(tcrew);
//put in room
Ship ship = clientControllerCommunicator.getClientShip();
crew.setCurrentRoom(ship.getSystems().get(0));
crew.setAssociatedUser(clientControllerCommunicator.getClientShip().getAssociatedUser());
ship.setCoins(ship.getCoins() - crew.getPrice());
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
} }
/** /**
* Buy rockets from the trader * Buy rockets from the trader
* @param amount - the amount of rockets to buy * @param amount - the amount of rockets to buy
*/ */
public void purchaseRockets(int amount) { public boolean purchaseRockets(int amount) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setRequestType(RequestType.TRADERBUYROCKETS);
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setIntAmount(amount);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//remove from trader
int tAmount = trader.getMissileStock();
tAmount -= amount;
trader.setMissileStock(tAmount);
//add to ship
Ship ship = clientControllerCommunicator.getClientShip();
ship.setMissiles(ship.getMissiles() + amount);
ship.setCoins(ship.getCoins() - 5*amount); //TODO festpreis
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
} }
/** /**
* Buy fuel from the trader * Buy fuel from the trader
* @param amount - the amount of fuel to buy * @param amount - the amount of fuel to buy
*/ */
public void purchaseFuel( int amount) { public boolean purchaseFuel( int amount) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setRequestType(RequestType.TRADERBUYFUEL);
requestObject.setIntAmount(amount);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//remove from trader
int tAmount = trader.getFuelStock();
tAmount -= amount;
trader.setFuelStock(tAmount);
//add to ship
Ship ship = clientControllerCommunicator.getClientShip();
ship.setFuel(ship.getFuel() + amount);
ship.setCoins(ship.getCoins() - 5*amount); //TODO festpreis
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
} }
/** /**
* Buy health from the trader * Buy health from the trader
* @param amount - the amount to buy * @param amount - the amount to buy
*/ */
public void purchaseHP(int amount) { public boolean purchaseHP(int amount) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setRequestType(RequestType.TRADERBUYHP);
requestObject.setIntAmount(amount);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//remove from trader
int tAmount = trader.getHpStock();
tAmount -= amount;
trader.setHpStock(tAmount);
//add to ship
Ship ship = clientControllerCommunicator.getClientShip();
ship.setHp(ship.getHp() + amount);
ship.setCoins(ship.getCoins() - 5*amount); //TODO festpreis
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
} }
/**
* Sell weapon to the trader
* @param weapon the weapon
*/
public boolean sellWeapon(Weapon weapon) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setWeapon(weapon);
requestObject.setRequestType(RequestType.TRADERSELLWEAPON);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//add to trader
List<Weapon> traderWeapon = trader.getWeaponStock();
traderWeapon.add(weapon);
trader.setWeaponStock(traderWeapon);
//remove from ship
Ship ship = clientControllerCommunicator.getClientShip();
List<Weapon> shipWeapon = ship.getInventory();
shipWeapon.remove(weapon);
ship.setInventory(shipWeapon);
ship.setCoins(ship.getCoins() + weapon.getPrice().get(weapon.getWeaponLevel()));
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
}
/**
* sell rockets to the trader
* @param amount the amount of rockets
*/
public boolean sellRockets(int amount) {
try {
RequestObject requestObject = new RequestObject();
requestObject.setShip(clientControllerCommunicator.getClientShip());
requestObject.setTrader(trader);
requestObject.setRequestType(RequestType.TRADERSELLROCKETS);
requestObject.setIntAmount(amount);
ResponseObject responseObject = clientControllerCommunicator.sendRequest(requestObject);
if(responseObject.isValidRequest()) {
//add to trader
trader.setMissileStock(trader.getMissileStock() + amount);
//remove from ship
Ship ship = clientControllerCommunicator.getClientShip();
ship.setMissiles(ship.getMissiles() - amount);
ship.setCoins(ship.getCoins() + 5*amount);
clientControllerCommunicator.setClientShip(ship);
return true;
}
return false;
}
catch(Exception e) {
e.printStackTrace();
return false;
}
}
} }
package com.galaxytrucker.galaxytruckerreloaded; package com.galaxytrucker.galaxytruckerreloaded;
import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.OrthographicCamera;
...@@ -8,7 +9,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; ...@@ -8,7 +9,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GameStateManager; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GameStateManager;
import com.galaxytrucker.galaxytruckerreloaded.View.Screen.MainMenu; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.MainMenu;
public class Main extends ApplicationAdapter { public class Main extends Game {
/** /**
* Settings * Settings
...@@ -17,39 +18,27 @@ public class Main extends ApplicationAdapter { ...@@ -17,39 +18,27 @@ public class Main extends ApplicationAdapter {
public static final int HEIGHT = 1080; public static final int HEIGHT = 1080;
public static final String TITLE = "Galaxy Trucker"; public static final String TITLE = "Galaxy Trucker";
private GameStateManager gsm;
/** /**
* Sprite batch * Sprite batch
*/ */
private SpriteBatch batch; public SpriteBatch batch;
/**
* Orthographic camera
*/
private OrthographicCamera camera;
@Override @Override
public void create() { public void create() {
batch = new SpriteBatch(); batch = new SpriteBatch();
gsm = new GameStateManager();
//this.camera = new OrthographicCamera(); setScreen(new MainMenu(this));
Gdx.gl.glClearColor(1, 0, 0, 1);
gsm.push(new MainMenu(gsm));
} }
@Override @Override
public void render() { public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); /*Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
gsm.update(Gdx.graphics.getDeltaTime()); gsm.update(Gdx.graphics.getDeltaTime());
//batch.begin(); //batch.begin();
//batch.draw("1080p.png",0,0,WIDTH, HEIGHT); //batch.draw("1080p.png",0,0,WIDTH, HEIGHT);
gsm.render(batch); gsm.render(batch);
//batch.end(); //batch.end();*/
} super.render();
@Override
public void dispose() {
} }
/** /**
...@@ -61,12 +50,11 @@ public class Main extends ApplicationAdapter { ...@@ -61,12 +50,11 @@ public class Main extends ApplicationAdapter {
return this.batch; return this.batch;
} }
/** public void setFullscreen() {
* Get the orthographic camera Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
* }
* @return the orthographic camera
*/ public void setWindowed() {
public OrthographicCamera getCamera() { Gdx.graphics.setWindowedMode(WIDTH,HEIGHT);
return this.camera;
} }
} }
...@@ -53,6 +53,11 @@ public class Crew implements Serializable { ...@@ -53,6 +53,11 @@ public class Crew implements Serializable {
@OneToOne @OneToOne
private Room currentRoom; private Room currentRoom;
/**
* The price of the different crew-members
*/
private int price;
/** /**
* The user who owns this crew member * The user who owns this crew member
*/ */
......
...@@ -43,7 +43,7 @@ public class Planet implements Serializable { ...@@ -43,7 +43,7 @@ public class Planet implements Serializable {
* Ereignis dass auf diesem Planeten eintrifft * Ereignis dass auf diesem Planeten eintrifft
*/ */
@NonNull @NonNull
private Enum<PlanetEvent> event; private PlanetEvent event;
/** /**
* If already discovered set to true * If already discovered set to true
......
...@@ -37,6 +37,10 @@ public class Trader implements Serializable { ...@@ -37,6 +37,10 @@ public class Trader implements Serializable {
@NonNull @NonNull
private int fuelStock; private int fuelStock;
/** HP for sale */
@NonNull
private int hpStock;
/** Crew for sale */ /** Crew for sale */
@OneToMany (cascade = CascadeType.ALL) @OneToMany (cascade = CascadeType.ALL)
@NonNull @NonNull
......
...@@ -5,6 +5,7 @@ import lombok.*; ...@@ -5,6 +5,7 @@ import lombok.*;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@Getter @Getter
...@@ -83,6 +84,12 @@ public abstract class Weapon implements Serializable { ...@@ -83,6 +84,12 @@ public abstract class Weapon implements Serializable {
@NonNull @NonNull
private int burst; private int burst;
/**
* Weapon price, sorted by Weapon-level 1-6
*/
@ElementCollection
private List<Integer> price;
/** Weapon system this weapon belongs to */ /** Weapon system this weapon belongs to */
@OneToOne @OneToOne
private System weaponSystem; private System weaponSystem;
......
...@@ -80,7 +80,7 @@ public class ClientHandler implements Runnable { ...@@ -80,7 +80,7 @@ public class ClientHandler implements Runnable {
/** /**
* Planet name list * Planet name list
*/ */
private List<String> planetNames; private List<String> planetNames = new ArrayList<>();
/** /**
* Used planet names list * Used planet names list
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment