Archived
1
0

-Created classes for additional building types

-Restructred how buildings are represented

Signed-off-by: Tony Grosinger <tony@grosinger.net>
This commit is contained in:
Tony Grosinger 2011-09-13 15:12:14 -07:00
parent 73cd872900
commit a5e5999b4d
20 changed files with 88 additions and 61 deletions

View File

@ -5,7 +5,7 @@ A small Java based game where creating the A.I. is the fun part.
About About
----- -----
Using the API (coming soon) and the [SampleDrone](https://github.com/tgrosinger/Nomads-Sample-Drone) create a drone of your own that can destroy all the other drones. Using the [API](https://github.com/tgrosinger/Nomads/downloads) and the [SampleDrone](https://github.com/tgrosinger/Nomads-Sample-Drone) create a drone of your own that can destroy all the other drones.
A sucessful drone will be able to gather resources, avoid the law and other malicious drones, and even reproduce to increase it's forces. A sucessful drone will be able to gather resources, avoid the law and other malicious drones, and even reproduce to increase it's forces.
Wiki Wiki

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -9,9 +9,6 @@ package net.grosinger.nomads;
* UpgradeShop - 2 * UpgradeShop - 2
* PoliceStation - 3 * PoliceStation - 3
* Home - 1 * Home - 1
*
*
*
*/ */
public class Building implements GameObject { public class Building implements GameObject {
Structure structure; Structure structure;

View File

@ -155,9 +155,30 @@ public class DroneTools {
+ i, getY() + j); + i, getY() + j);
if (objectHere instanceof Building) { if (objectHere instanceof Building) {
Building buildingHere = (Building) objectHere; Building buildingHere = (Building) objectHere;
NeighborBuilding aWildNeighbor = new NeighborBuilding( NeighborBuilding aWildNeighbor;
if (buildingHere.getType() == Structure.TOWNHALL) {
aWildNeighbor = new TownHall(buildingHere.getX(),
buildingHere.getY(),
buildingHere.getName(), buildingHere);
} else if (buildingHere.getType() == Structure.REPAIRSHOP) {
aWildNeighbor = new RepairShop(buildingHere.getX(),
buildingHere.getY(),
buildingHere.getName(), buildingHere);
} else if (buildingHere.getType() == Structure.UPGRADESHOP) {
aWildNeighbor = new UpgradeShop(
buildingHere.getX(), buildingHere.getY(), buildingHere.getX(), buildingHere.getY(),
buildingHere.getName(), buildingHere); buildingHere.getName(), buildingHere);
} else if (buildingHere.getType() == Structure.POLICESTATION) {
aWildNeighbor = new PoliceStation(
buildingHere.getX(), buildingHere.getY(),
buildingHere.getName(), buildingHere);
} else {
aWildNeighbor = new NeighborBuilding(
buildingHere.getX(), buildingHere.getY(),
buildingHere.getName(), buildingHere);
}
neighbors.add(aWildNeighbor); neighbors.add(aWildNeighbor);
} }
} }
@ -212,7 +233,7 @@ public class DroneTools {
findEmptyPoint(intendedPoint); findEmptyPoint(intendedPoint);
House newHouse = new House(Structure.HOUSE, intendedPoint.getX(), House newHouse = new House(Structure.HOUSE, intendedPoint.getX(),
intendedPoint.getY(), referredDrone.getName()); intendedPoint.getY(), currentTeam);
worldReference.placeNewBuilding(newHouse); worldReference.placeNewBuilding(newHouse);
currentTeam.deductFromBalance(Nomads.HOUSEPRICE); currentTeam.deductFromBalance(Nomads.HOUSEPRICE);
listItem.setWaiting(Nomads.CREATIONTIME); listItem.setWaiting(Nomads.CREATIONTIME);

View File

@ -5,30 +5,13 @@ package net.grosinger.nomads;
* team * team
*/ */
public class House extends Building { public class House extends Building {
private String team;
private int turnCreated; private int turnCreated;
public House(Structure thisBuilding, int newX, int newY) { public House(Structure thisBuilding, int newX, int newY, DroneTeam team) {
super(thisBuilding, newX, newY); super(thisBuilding, newX, newY, team);
turnCreated = Nomads.turn; turnCreated = Nomads.turn;
} }
public House(Structure thisBuilding, int newX, int newY, String teamName) {
super(thisBuilding, newX, newY);
team = teamName;
turnCreated = Nomads.turn;
}
/**
* Retrieve the name of team that owns this house
*
* @return <code>String</code>
*/
public String getTeam() {
return team;
}
/** /**
* Calculates the age of the house * Calculates the age of the house
* *
@ -37,14 +20,4 @@ public class House extends Building {
public int getAge() { public int getAge() {
return Nomads.turn - turnCreated; return Nomads.turn - turnCreated;
} }
/**
* Sets the name of the team that owns this house
*
* @param newTeam
* <code>String</code> House owner
*/
public void setTeam(String newTeam) {
team = newTeam;
}
} }

View File

@ -29,7 +29,8 @@ public class InitializeGame {
* @throws IOException * @throws IOException
* @throws ClassNotFoundException * @throws ClassNotFoundException
*/ */
public static void initializeDrones() throws ClassNotFoundException, IOException { public static void initializeDrones() throws ClassNotFoundException,
IOException {
if (Nomads.DEBUGSTATUS) if (Nomads.DEBUGSTATUS)
System.out.println("Loading the drones into world..."); System.out.println("Loading the drones into world...");
/* /*
@ -52,9 +53,11 @@ public class InitializeGame {
if (Nomads.DEBUGSTATUS) if (Nomads.DEBUGSTATUS)
System.out.println("Loading " + filename); System.out.println("Loading " + filename);
File file = new File(System.getProperty("user.dir") + "/drones/" + filename); File file = new File(System.getProperty("user.dir") + "/drones/"
+ filename);
URLClassLoader clazzLoader = URLClassLoader.newInstance(new URL[] { file.toURI().toURL() }); URLClassLoader clazzLoader = URLClassLoader
.newInstance(new URL[] { file.toURI().toURL() });
// System.class.getClassLoader() // System.class.getClassLoader()
JarFile jarFile = new JarFile(file); JarFile jarFile = new JarFile(file);
@ -65,7 +68,8 @@ public class InitializeGame {
if (element.getName().endsWith(className + ".class")) { if (element.getName().endsWith(className + ".class")) {
try { try {
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
Class c = clazzLoader.loadClass(element.getName().replaceAll(".class", "").replaceAll("/", ".")); Class c = clazzLoader.loadClass(element.getName()
.replaceAll(".class", "").replaceAll("/", "."));
// Create new GameObject // Create new GameObject
GameObject newGameObject = (GameObject) c.newInstance(); GameObject newGameObject = (GameObject) c.newInstance();
@ -145,10 +149,11 @@ public class InitializeGame {
if (Nomads.DEBUGSTATUS) if (Nomads.DEBUGSTATUS)
System.out.println("Generating and placing required buildings..."); System.out.println("Generating and placing required buildings...");
Building townHall = new Building(Structure.TOWNHALL, 30, 40); Building townHall = new Building(Structure.TOWNHALL, 30, 40, null);
Building upgradeShop = new Building(Structure.UPGRADESHOP, 30, 60); Building upgradeShop = new Building(Structure.UPGRADESHOP, 30, 60, null);
Building policeStation = new Building(Structure.POLICESTATION, 50, 40); Building policeStation = new Building(Structure.POLICESTATION, 50, 40,
Building RepairShop = new Building(Structure.REPAIRSHOP, 50, 60); null);
Building RepairShop = new Building(Structure.REPAIRSHOP, 50, 60, null);
if (Nomads.DEBUGSTATUS) if (Nomads.DEBUGSTATUS)
System.out.println("Building generation complete"); System.out.println("Building generation complete");

View File

@ -1,7 +1,5 @@
package net.grosinger.nomads; package net.grosinger.nomads;
import net.grosinger.nomads.Building.Structure;
/** /**
* An array of NeigborBuildings will be given to a drone that is searching for * An array of NeigborBuildings will be given to a drone that is searching for
* the buildings it is near. This is typically done from the town center. * the buildings it is near. This is typically done from the town center.
@ -53,15 +51,6 @@ public class NeighborBuilding implements GameObject {
return y; return y;
} }
/**
* Retrieve type of building that this is
*
* @return <code>Structure</code>
*/
public Structure getType() {
return building.getType();
}
/** /**
* Retrieve the name of the team that owns the current building. If the * Retrieve the name of the team that owns the current building. If the
* building is a public building, the string will be "Public". * building is a public building, the string will be "Public".

View File

@ -0,0 +1,13 @@
package net.grosinger.nomads;
/**
* A representation of a PoliceStation. Allows Drones to interact with this
* building.
*/
public class PoliceStation extends NeighborBuilding {
public PoliceStation(int x, int y, String name, Building building) {
super(x, y, name, building);
}
}

View File

@ -0,0 +1,13 @@
package net.grosinger.nomads;
/**
* A representation of a RepairShop. Allows Drones to interact with this
* building.
*/
public class RepairShop extends NeighborBuilding {
public RepairShop(int x, int y, String name, Building building) {
super(x, y, name, building);
}
}

View File

@ -2,10 +2,13 @@ package net.grosinger.nomads;
import java.util.ArrayList; import java.util.ArrayList;
public class TownHall extends Building { /**
* A representation of a TownHall. Allows Drones to interact with this building.
*/
public class TownHall extends NeighborBuilding {
public TownHall(int newX, int newY) { public TownHall(int x, int y, String name, Building building) {
super(Structure.TOWNHALL, newX, newY); super(x, y, name, building);
} }
public void cashInventory(ArrayList<GameObject> inventory, DroneTeam team) { public void cashInventory(ArrayList<GameObject> inventory, DroneTeam team) {

View File

@ -0,0 +1,13 @@
package net.grosinger.nomads;
/**
* A representation of an UpgradeShop. Allows Drones to interact with this
* building.
*/
public class UpgradeShop extends NeighborBuilding {
public UpgradeShop(int x, int y, String name, Building building) {
super(x, y, name, building);
}
}