add: Network implementation
This commit is contained in:
parent
22950cd155
commit
6a4e157605
|
@ -8,6 +8,15 @@ public class HitResponse {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.point = point;
|
this.point = point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HitResponse (int typeIndex, Point point) {
|
||||||
|
if (typeIndex >= 0 && typeIndex < HitResponseType.values().length) {
|
||||||
|
this.type = HitResponseType.values()[typeIndex];
|
||||||
|
this.point = point;
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public HitResponseType getHitResponse() {
|
public HitResponseType getHitResponse() {
|
||||||
return this.type;
|
return this.type;
|
||||||
|
@ -20,4 +29,9 @@ public class HitResponse {
|
||||||
public void setType(HitResponseType type) {
|
public void setType(HitResponseType type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.getPoint().toString() + " " + this.type.ordinal();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,20 @@ public class LocalPlayer extends Player {
|
||||||
LocalPlayer(int size) {
|
LocalPlayer(int size) {
|
||||||
super(size);
|
super(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void receiveShoot(Point point) {
|
||||||
|
HitResponse hitResponse = board.getHitResponsOnPoint(point);
|
||||||
|
if (!(hitResponse == null)){
|
||||||
|
enemy.receiveHit(hitResponse);
|
||||||
|
} else {
|
||||||
|
enemy.receiveHit(this.board.hit(point));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void receiveHit(HitResponse hitResponse) {
|
||||||
|
enemy.board.addHits(hitResponse);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,12 +1,19 @@
|
||||||
public abstract class OnlinePlayer extends Player implements AsyncSocketListener{
|
public abstract class OnlinePlayer extends Player implements AsyncSocketListener{
|
||||||
private AsyncSocket socket;
|
protected AsyncSocket socket;
|
||||||
|
|
||||||
public OnlinePlayer(int size, AsyncSocket socket) {
|
public OnlinePlayer(int size, AsyncSocket socket) {
|
||||||
super(size);
|
super(size);
|
||||||
this.socket = socket;
|
this.socket = socket;
|
||||||
|
socket.setHandler(this);
|
||||||
//TODO Auto-generated constructor stub
|
//TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void receive(String message);
|
public abstract void receive(String message);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public abstract void receiveShoot(Point point);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public abstract void receiveHit(HitResponse hitResponse);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,49 @@ public class OnlinePlayer_1_1_0 extends OnlinePlayer {
|
||||||
super(size, socket);
|
super(size, socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(String message) {
|
public void receive(String message) {
|
||||||
SocketPackage p = new SocketPackage(message);
|
SocketPackage p = new SocketPackage(message);
|
||||||
|
|
||||||
// TODO: parse package
|
// TODO: parse package
|
||||||
|
switch (p.getName()) {
|
||||||
|
case "SHOOT":
|
||||||
|
if (Point.isValidSyntax(p.getData())){
|
||||||
|
Point point = new Point(p.getData());
|
||||||
|
this.enemy.receiveShoot(point);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "HIT":
|
||||||
|
List<String> data = p.splitData();
|
||||||
|
if (data.size()==2){
|
||||||
|
Point point = new Point(data.get(0));
|
||||||
|
int typeIndex = Integer.parseInt(data.get(1));
|
||||||
|
if (Point.isValidSyntax(data.get(0)) && typeIndex >= 0 && typeIndex < HitResponseType.values().length){
|
||||||
|
this.enemy.receiveHit(new HitResponse(typeIndex, point));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "CHAT":
|
||||||
|
//TODO CHAT
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
//nichts passier da Paket ungültig
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void receiveShoot(Point point){
|
||||||
|
super.socket.send(new SocketPackage("SHOOT",point.toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void receiveHit(HitResponse hitResponse) {
|
||||||
|
super.socket.send(new SocketPackage("HIT", hitResponse.toString()));
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue