package agile.hustler.activities;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.DatagramPacket;
import java.util.Scanner;
import agile.hustler.Battle.Battle;
import agile.hustler.Battle.LogTextBox;
import agile.hustler.Characters.Caster;
import agile.hustler.Characters.CharacterType;
import agile.hustler.Characters.Dps;
import agile.hustler.Characters.Tank;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class FightSetupClient extends Activity {
Bundle b;
String opponentData, data;
TextView txtview, txtName01, txtHp01, txtLvl01, txtName02, txtHp02, txtLvl02;
Drawable charIcon1, charIcon2;
String fightdata;
LogTextBox mText;
CharacterType player;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fight);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
b = getIntent().getExtras();
/*
byte[] buf = new byte[1000];
DatagramPacket hostPacket = new DatagramPacket(buf, buf.length);
try {
ComSetup.clientSocket.receive(hostPacket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
b.putString("key2", new String(hostPacket.getData()));
*/
byte[] buf2 = new byte[1000];
DatagramPacket logPacket = new DatagramPacket(buf2, buf2.length);
try {
ComSetup.clientSocket.receive(logPacket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fightdata = new String(logPacket.getData()).trim();
byte[] buf3 = new byte[1000];
DatagramPacket oppPacket = new DatagramPacket(buf3, buf3.length);
byte[] buf4 = new byte[1000];
DatagramPacket playerPacket = new DatagramPacket(buf4, buf4.length);
try {
ComSetup.clientSocket.receive(oppPacket);
ComSetup.clientSocket.receive(playerPacket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//opponentData = b.getString("key2");
//data = b.getString("key");
opponentData = new String(oppPacket.getData()).trim();
data = new String(playerPacket.getData()).trim();
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/SEVERINA.ttf");
Typeface face2=Typeface.createFromAsset(getAssets(), "fonts/Comic Book.ttf");
txtview = (TextView) findViewById(R.id.TextView01);
txtName01 = (TextView) findViewById(R.id.txtPlayerName01);
txtHp01 = (TextView) findViewById(R.id.txtPlayerHp01);
txtLvl01 = (TextView) findViewById(R.id.txtPlayerLvl01);
txtName02 = (TextView) findViewById(R.id.txtPlayerName02);
txtHp02 = (TextView) findViewById(R.id.txtPlayerHp02);
txtLvl02 = (TextView) findViewById(R.id.txtPlayerLvl02);
txtName01.setTypeface(face);
txtHp01.setTypeface(face);
txtLvl01.setTypeface(face);
txtName02.setTypeface(face);
txtHp02.setTypeface(face);
txtLvl02.setTypeface(face);
fightdata = new String(logPacket.getData());
//opponentData = b.getString("key2");
//data = b.getString("key");
Log.d("opponentdata", opponentData);
Log.d("data", data);
CharacterType host = createCharacter2(opponentData);
player = createCharacter1(data);
host.fromString(opponentData);
player.fromString(data);
double HP = player.getHPf();
txtHp02.setText(host.getHP());
txtHp01.setText(player.getHP());
mText = (LogTextBox) findViewById(R.id.text);
mText.setTypeface(face2);
mText.append(fightdata);
ImageView imView1 = (ImageView) findViewById(R.id.Player01);
ImageView imView2 = (ImageView) findViewById(R.id.Player02);
imView1.setBackgroundDrawable(charIcon1);
imView2.setBackgroundDrawable(charIcon2);
final android.app.AlertDialog.Builder builder = new AlertDialog.Builder(this);
if (player.getHPf() < host.getHPf()) {
//Player frlorar pengar
int money;
int playermoney = player.getMoneyInt();
money = (int) (playermoney * 0.25);
player.updateMoney(-money);
if(player.getMoneyInt() < 0)
player.updateMoney(-player.getMoneyInt());
builder.setTitle("You loose");
builder.setIcon(getResources().getDrawable(R.drawable.poo));
player.resetHP(HP);
builder.setMessage("Money: -"+money);
}
else {
//Pengar vinner pengar baserat p motstndarens pengar
int hostmoney = host.getMoneyInt();
int money = (int) (hostmoney * 0.25);
if(money < 100)
money = 100;
player.updateMoney(money);
player.updateXP(100);
builder.setTitle("You win");
builder.setIcon(getResources().getDrawable(R.drawable.trophy));
if(player.getXPf() >= player.getNextLevel()) {
player.resetHP(HP);
player.updateLevel(1);
builder.setMessage( "XP: +100\n" +
"Money: +" +money+"\n" +
"Level up!");
}
else {
player.resetHP(HP);
builder.setMessage( "XP: +100\n" +
"Money: +" +money+"\n");
}
}
data = player.toString();
writeToFile(data);
builder.setNeutralButton("Continue",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Bundle B = new Bundle();
B.putString("key", data);
B.putString("key2", opponentData);
Intent intent = new Intent(FightSetupClient.this,
CharacterScreen.class);
intent.putExtras(B);
startActivity(intent);
finish();
} });
findViewById(R.id.ButtonDone).setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
builder.show();
}
});
/*
findViewById(R.id.ButtonDone).setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
Bundle B = new Bundle();
B.putString("key", data);
B.putString("key2", opponentData);
Intent intent = new Intent(FightSetupClient.this,
CharacterScreen.class);
intent.putExtras(B);
startActivity(intent);
finish();
System.gc();
}
});*/
}
public CharacterType createCharacter1(String playerData){
CharacterType character = null;
Scanner scanner = new Scanner(playerData);
scanner.useDelimiter(" ");
String type = scanner.next();
String name = scanner.next();
int level = Integer.parseInt(scanner.next());
txtName01.setText(name);
txtLvl01.setText("Level: " + Integer.toString(level));
if (type.toUpperCase().equals("TANK")) {
character = new Tank(name,level);
charIcon1 = getResources().getDrawable(R.drawable.tankminir);
txtHp01.setText(((Tank) character).getHP());
}
else if (type.toUpperCase().equals("CASTER")) {
character = new Caster(name, level);
charIcon1 = getResources().getDrawable(R.drawable.casterminir);
txtHp01.setText(((Caster) character).getHP());
}
if (type.toUpperCase().equals("DPS")) {
character = new Dps(name,level);
charIcon1 = getResources().getDrawable(R.drawable.dpsminir);
txtHp01.setText(((Dps) character).getHP());
}
return character;
}
public CharacterType createCharacter2(String playerData){
CharacterType character = null;
Scanner scanner = new Scanner(playerData);
scanner.useDelimiter(" ");
String type = scanner.next();
String name = scanner.next();
int level = Integer.parseInt(scanner.next());
Log.d("name", name);
Log.d("type", type);
txtName02.setText(name);
txtLvl02.setText("Level: " + Integer.toString(level));
if (type.toUpperCase().equals("TANK")) {
character = new Tank(name,level);
charIcon2 = getResources().getDrawable(R.drawable.tankminil);
txtHp02.setText(((Tank) character).getHP());
}
else if (type.toUpperCase().equals("CASTER")) {
character = new Caster(name, level);
charIcon2 = getResources().getDrawable(R.drawable.casterminil);
txtHp02.setText(((Caster) character).getHP());
}
if (type.toUpperCase().equals("DPS")) {
character = new Dps(name,level);
charIcon2 = getResources().getDrawable(R.drawable.dpsminil);
txtHp02.setText(((Dps) character).getHP());
}
return character;
}
public void writeToFile(String input)
{
//Writing to a file
try {
File datadir = new File("/sdcard/hustlerdata/");
File txtfile = new File(datadir, player.getName() + ".txt");
FileWriter txtwriter = new FileWriter(txtfile);
BufferedWriter out = new BufferedWriter(txtwriter);
out.write(input);
out.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
|