Switched to playersList
The players are generated brand-new, as if they were just created
This commit is contained in:
parent
ce44393121
commit
aebb20542e
14 changed files with 440 additions and 262 deletions
|
@ -26,26 +26,29 @@ class AttackAdapter extends ArrayAdapter<Power> {
|
|||
View mView = mInflater.inflate(R.layout.attack_row, parent, false);
|
||||
|
||||
final Power attack = getItem(position);
|
||||
|
||||
((TextView) mView.findViewById(R.id.name)).setText(attack.getName());
|
||||
((TextView) mView.findViewById(R.id.keywords)).setText(attack.getKeywords());
|
||||
((TextView) mView.findViewById(R.id.frequency)).setText(attack.getFrequencyString());
|
||||
((TextView) mView.findViewById(R.id.extra)).setText(attack.getRangeString() + " " + attack.getDistance());
|
||||
final AttackAdapter current = this;
|
||||
((ImageView) mView.findViewById(R.id.delete)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SnackbarManager.show(
|
||||
Snackbar.with(getContext()).text("¿Quieres borrarlo?").actionLabel("Sí").actionListener(new ActionClickListener() {
|
||||
@Override
|
||||
public void onActionClicked(Snackbar snackbar) {
|
||||
current.remove(attack);
|
||||
}
|
||||
})
|
||||
);
|
||||
//TODO: convert text to resource
|
||||
}
|
||||
});
|
||||
if ( attack != null ) {
|
||||
((TextView) mView.findViewById(R.id.name)).setText(attack.getName());
|
||||
((TextView) mView.findViewById(R.id.keywords)).setText(attack.getKeywords());
|
||||
((TextView) mView.findViewById(R.id.frequency)).setText(attack.getFrequencyString());
|
||||
((TextView) mView.findViewById(R.id.extra)).setText(attack.getRangeString() + " " + attack.getDistance());
|
||||
final AttackAdapter current = this;
|
||||
((ImageView) mView.findViewById(R.id.delete)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SnackbarManager.show(
|
||||
Snackbar.with(getContext()).text("¿Quieres borrarlo?").actionLabel("Sí").actionListener(new ActionClickListener() {
|
||||
@Override
|
||||
public void onActionClicked(Snackbar snackbar) {
|
||||
current.remove(attack);
|
||||
}
|
||||
})
|
||||
);
|
||||
//TODO: convert text to resource
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.remove(attack);
|
||||
}
|
||||
|
||||
return mView;
|
||||
}
|
||||
|
|
|
@ -3,13 +3,18 @@ package com.kauron.dungeonmanager;
|
|||
import android.content.SharedPreferences;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.nispok.snackbar.Snackbar;
|
||||
import com.nispok.snackbar.SnackbarManager;
|
||||
|
||||
|
||||
public class Introduction extends ActionBarActivity {
|
||||
|
||||
|
@ -23,6 +28,8 @@ public class Introduction extends ActionBarActivity {
|
|||
super.onCreate(savedInstanceState);
|
||||
// getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
setContentView(R.layout.activity_introduction);
|
||||
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
|
||||
|
||||
name = (EditText) findViewById(R.id.editNameIntro);
|
||||
name.requestFocus();
|
||||
level = (EditText) findViewById(R.id.editPxIntro);
|
||||
|
@ -96,9 +103,20 @@ public class Introduction extends ActionBarActivity {
|
|||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public void finishButton(View view){
|
||||
if(finished()) {
|
||||
finish();
|
||||
} else {
|
||||
SnackbarManager.show(
|
||||
Snackbar.with(getApplicationContext()).text(R.string.missing_info_error), this
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean finished() {
|
||||
SharedPreferences p = getSharedPreferences(Welcome.PREFERENCES, MODE_PRIVATE);
|
||||
SharedPreferences.Editor ed = p.edit();
|
||||
int i = p.getInt("players", 0);
|
||||
SharedPreferences.Editor ed = getSharedPreferences("player" + i, MODE_PRIVATE).edit();
|
||||
String nameString = name.getText().toString().trim();
|
||||
int classInt = classSpinner.getSelectedItemPosition();
|
||||
int raceInt = raceSpinner.getSelectedItemPosition();
|
||||
|
@ -146,8 +164,6 @@ public class Introduction extends ActionBarActivity {
|
|||
ed.putInt("sab", sab);
|
||||
ed.putInt("con", con);
|
||||
ed.putInt("des", des);
|
||||
|
||||
ed.putBoolean("saved", true);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
@ -165,6 +181,8 @@ public class Introduction extends ActionBarActivity {
|
|||
if (des != 0) ed.putInt("des", des);
|
||||
}
|
||||
ed.apply();
|
||||
getSharedPreferences(Welcome.PREFERENCES, MODE_PRIVATE).edit()
|
||||
.putInt("players", i + 1).apply();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.kauron.dungeonmanager;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
|
@ -43,11 +44,10 @@ public class MainActivity extends ActionBarActivity {
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
p = getSharedPreferences(Welcome.PREFERENCES, MODE_PRIVATE);
|
||||
p = getSharedPreferences("player" + getIntent().getIntExtra("player", 0), MODE_PRIVATE);
|
||||
xpBar = (ProgressBar) findViewById(R.id.xpBar);
|
||||
curativeEffortsBar = (ProgressBar) findViewById(R.id.curativeEffortsBar);
|
||||
pgBar = (ProgressBar) findViewById(R.id.pgBar);
|
||||
|
@ -60,11 +60,11 @@ public class MainActivity extends ActionBarActivity {
|
|||
currentXp = (TextView) findViewById(R.id.currentXp);
|
||||
currentCurativeEfforts = (TextView) findViewById(R.id.currentCurativeEfforts);
|
||||
|
||||
//TODO: change references to xml and do not change progressbar background
|
||||
//TODO: do not change progressbar background
|
||||
xpBar.getProgressDrawable()
|
||||
.setColorFilter(Color.parseColor("#62BACE"), PorterDuff.Mode.SRC_IN);
|
||||
.setColorFilter(getResources().getColor(R.color.px_bar), PorterDuff.Mode.SRC_IN);
|
||||
curativeEffortsBar.getProgressDrawable()
|
||||
.setColorFilter(Color.parseColor("#FFD700"), PorterDuff.Mode.SRC_IN);
|
||||
.setColorFilter(getResources().getColor(R.color.surges_bar), PorterDuff.Mode.SRC_IN);
|
||||
undo = false;
|
||||
//begin
|
||||
restoreData();
|
||||
|
@ -257,6 +257,9 @@ public class MainActivity extends ActionBarActivity {
|
|||
|
||||
alert.setView(input);
|
||||
|
||||
final Context context = getApplicationContext();
|
||||
final MainActivity activity = this;
|
||||
|
||||
alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
try {
|
||||
|
@ -274,15 +277,16 @@ public class MainActivity extends ActionBarActivity {
|
|||
undoPreviousValue = preValue;
|
||||
undoObject = CURRENT_PG;
|
||||
SnackbarManager.show(
|
||||
Snackbar.with(getApplicationContext()).text("Lost " + damage + " PG's")
|
||||
Snackbar.with(context).text("Lost " + damage + " PG's")
|
||||
.actionLabel("Undo") // action button label
|
||||
.actionListener(new ActionClickListener() {
|
||||
@Override
|
||||
public void onActionClicked(Snackbar snackbar) {
|
||||
undo();
|
||||
}
|
||||
})
|
||||
,getParent()); // action button's
|
||||
})
|
||||
.actionColor(getResources().getColor(R.color.yellow))
|
||||
,activity); // action button's
|
||||
p.edit().putInt("pg", player.getPg()).apply();
|
||||
pgUpdate();
|
||||
invalidateOptionsMenu();
|
||||
|
@ -383,12 +387,14 @@ public class MainActivity extends ActionBarActivity {
|
|||
}
|
||||
|
||||
private void restoreData(){
|
||||
int i = getIntent().getIntExtra("player", 0);
|
||||
if (!p.getBoolean("saved", false)) {
|
||||
Intent intent = new Intent(this, Introduction.class);
|
||||
startActivity(intent.putExtra(
|
||||
"first_time",
|
||||
!p.getBoolean("saved", false)
|
||||
));
|
||||
if (i == -1) {
|
||||
Intent intent = new Intent(this, Introduction.class);
|
||||
startActivity(intent.putExtra(
|
||||
"first_time",
|
||||
!p.getBoolean("saved", false)
|
||||
));
|
||||
}
|
||||
if (player == null) {
|
||||
player = new Player(
|
||||
|
@ -431,6 +437,7 @@ public class MainActivity extends ActionBarActivity {
|
|||
}
|
||||
player.setCurativeEffort(p.getInt("curativeEfforts", player.getMaxCurativeEfforts()));
|
||||
player.setPg(p.getInt("pg", player.getMaxPg()));
|
||||
|
||||
pgBar.setMax(player.getMaxPg());
|
||||
negPgBar.setMax(player.getMaxPg() / 2);
|
||||
// incrementProgressBar(
|
||||
|
|
|
@ -57,7 +57,7 @@ class Player {
|
|||
* Names for the races
|
||||
*/
|
||||
public static final String[] RACE_STRINGS = new String[] {
|
||||
"Raza", "Dracónido", "Eladrín", "Elfo", "Enano", "Gitzherai", "Humanos", "Medianos",
|
||||
"Raza", "Dracónido", "Eladrín", "Elfo", "Enano", "Gitzherai", "Humano", "Mediano",
|
||||
"Mente del Fragmento", "Minotauro", "Salvaje", "Semielfo", "Tiflin"
|
||||
};
|
||||
|
||||
|
@ -110,6 +110,7 @@ class Player {
|
|||
//TODO: implement fully operational powers displayed as cards
|
||||
private Power[] powers;
|
||||
|
||||
/** Constructor for creating a new character*/
|
||||
Player(
|
||||
String name, int classInt, int raceInt,
|
||||
int px, int[] atk, int[] abilities,
|
||||
|
@ -130,6 +131,25 @@ class Player {
|
|||
this.powers = powers;
|
||||
}
|
||||
|
||||
/** Constructor for restoring the Player in the middle of the game*/
|
||||
Player(
|
||||
int pg, int maxPg, int px, int curativeEfforts, int maxCurativeEfforts, int classInt,
|
||||
int raceInt, String name, int[] atk, int[] def, int[] abilities, Power[] powers) {
|
||||
this.pg = pg;
|
||||
this.maxPg = maxPg;
|
||||
this.px = px;
|
||||
setLevel();
|
||||
setState();
|
||||
this.curativeEfforts = curativeEfforts;
|
||||
this.maxCurativeEfforts = maxCurativeEfforts;
|
||||
this.classInt = classInt;
|
||||
this.raceInt = raceInt;
|
||||
this.name = name;
|
||||
this.atk = atk;
|
||||
this.def = def;
|
||||
this.abilities = abilities;
|
||||
this.powers = powers;
|
||||
}
|
||||
|
||||
int getPx() {return px;}
|
||||
void setPx (int px) {this.px = px; setLevel();}
|
||||
|
@ -216,7 +236,7 @@ class Player {
|
|||
String getClassName() {return CLASS_STRINGS[classInt];}
|
||||
|
||||
String getRaceName() {return RACE_STRINGS[raceInt];}
|
||||
void setRaceInt(int raceInt) {this.raceInt= raceInt;}
|
||||
void setRaceInt(int raceInt) {this.raceInt = raceInt;}
|
||||
int getRaceInt() {return raceInt;}
|
||||
|
||||
//TODO: implement turns (for bonuses and continuous damage in the app
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package com.kauron.dungeonmanager;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.AvoidXfermode;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -28,10 +31,27 @@ class PlayerAdapter extends ArrayAdapter<Player> {
|
|||
.setText(
|
||||
getContext().getResources().getString(R.string.level) + " " + player.getLevel()
|
||||
);
|
||||
int pg = player.getPg();
|
||||
int maxPg = player.getMaxPg();
|
||||
ProgressBar neg = (ProgressBar) mView.findViewById(R.id.negPgBar);
|
||||
ProgressBar pos = (ProgressBar) mView.findViewById(R.id.pgBar);
|
||||
|
||||
ProgressBar pg = (ProgressBar) mView.findViewById(R.id.progressBar);
|
||||
pg.setMax(player.getMaxPg());
|
||||
pg.setProgress(player.getPg());
|
||||
neg.setMax(maxPg / 2);
|
||||
pos.setMax(maxPg);
|
||||
|
||||
neg.setProgress(pg < 0 ? -pg : 0);
|
||||
pos.setProgress(pg > 0 ? pg : 0);
|
||||
|
||||
int c;
|
||||
if ( pg <= 0 )
|
||||
c = getContext().getResources().getColor(R.color.red);
|
||||
else if ( pg <= maxPg / 2 )
|
||||
c = getContext().getResources().getColor(R.color.yellow);
|
||||
else
|
||||
c = getContext().getResources().getColor(R.color.green);
|
||||
|
||||
neg.getProgressDrawable().setColorFilter(c, PorterDuff.Mode.SRC_IN);
|
||||
pos.getProgressDrawable().setColorFilter(c, PorterDuff.Mode.SRC_IN);
|
||||
}
|
||||
|
||||
return mView;
|
||||
|
|
|
@ -4,41 +4,90 @@ import android.content.Intent;
|
|||
import android.content.SharedPreferences;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.nispok.snackbar.Snackbar;
|
||||
import com.nispok.snackbar.SnackbarManager;
|
||||
|
||||
|
||||
public class Welcome extends ActionBarActivity {
|
||||
|
||||
public static final String PREFERENCES = "basics";
|
||||
|
||||
private Button load;
|
||||
private SharedPreferences p;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_welcome);
|
||||
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
|
||||
p = getSharedPreferences(PREFERENCES, MODE_PRIVATE);
|
||||
load = (Button) findViewById(R.id.loadCharacter);
|
||||
if (p.getBoolean("saved", false)) {
|
||||
load.setEnabled(true);
|
||||
load.setText(String.format(getString(R.string.load_text), p.getString("playerName", "")));
|
||||
} else {
|
||||
load.setEnabled(false);
|
||||
load.setText(R.string.load_character);
|
||||
load();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menu_welcome, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
if ( id == R.id.action_add_player ) {
|
||||
startActivity(new Intent(this, Introduction.class).putExtra("first_time", true));
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
load();
|
||||
}
|
||||
|
||||
private void load() {
|
||||
int n = p.getInt("players",0);
|
||||
if ( n != 0 ) {
|
||||
ListView playerList = (ListView) findViewById(R.id.listView);
|
||||
PlayerAdapter adapter = (PlayerAdapter) playerList.getAdapter();
|
||||
int elements = 0;
|
||||
if ( adapter != null )
|
||||
elements = adapter.getCount();
|
||||
if ( elements < n && adapter != null ) {
|
||||
playerList.setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.no_players_text).setVisibility(View.GONE);
|
||||
for ( int i = elements; i < n; i++ ) {
|
||||
SharedPreferences sav = getSharedPreferences("player" + i, MODE_PRIVATE);
|
||||
adapter.add(
|
||||
new Player(
|
||||
sav.getString(Player.NAME, "player" + i),
|
||||
sav.getInt(Player.CLASS, 0),
|
||||
sav.getInt(Player.RACE, 0),
|
||||
sav.getInt(Player.PX, 0),
|
||||
new int[] {
|
||||
sav.getInt("fue", 10),
|
||||
sav.getInt("con", 10),
|
||||
sav.getInt("des", 10),
|
||||
sav.getInt("int", 10),
|
||||
sav.getInt("sab", 10),
|
||||
sav.getInt("car", 10)
|
||||
},
|
||||
new int[18],
|
||||
new Power[4]
|
||||
));
|
||||
}
|
||||
} else if ( n != 0 ) {
|
||||
playerList.setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.no_players_text).setVisibility(View.GONE);
|
||||
Player[] players = new Player[n];
|
||||
for ( int i = 0; i < n; i++ ) {
|
||||
//TODO: fill the information for the player creation
|
||||
|
@ -60,9 +109,8 @@ public class Welcome extends ActionBarActivity {
|
|||
new Power[4]
|
||||
);
|
||||
}
|
||||
ListView playerList = (ListView) findViewById(R.id.listView);
|
||||
ListAdapter adapter = new PlayerAdapter(this, players);
|
||||
playerList.setAdapter(adapter);
|
||||
|
||||
playerList.setAdapter(new PlayerAdapter(this, players));
|
||||
|
||||
playerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
|
@ -73,49 +121,8 @@ public class Welcome extends ActionBarActivity {
|
|||
}
|
||||
});
|
||||
} else {
|
||||
findViewById(R.id.listView).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
public void onNewClick(View view) {startActivity(new Intent(this, Introduction.class).putExtra("first_time", true));}
|
||||
public void onLoadClick(View view) {startActivity(new Intent(this, MainActivity.class).putExtra("player", -1));}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menu_welcome, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
if (id == R.id.action_settings) {
|
||||
SnackbarManager.show(
|
||||
Snackbar.with(getApplicationContext()).text("This doesn't work yet")
|
||||
);
|
||||
return true;
|
||||
} else if ( id == R.id.action_add_player ) {
|
||||
startActivity(new Intent(this, Introduction.class).putExtra("first_time", true));
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (p.getBoolean("saved", false)) {
|
||||
load.setEnabled(true);
|
||||
load.setText(String.format(getString(R.string.load_text), p.getString("playerName", "")));
|
||||
} else {
|
||||
load.setEnabled(false);
|
||||
load.setText(R.string.load_character);
|
||||
playerList.setVisibility(View.GONE);
|
||||
findViewById(R.id.no_players_text).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue