1
0
Fork 0

Added powers and powersList

Still don't have powerDisplay or deletion process
This commit is contained in:
Carlos Galindo 2015-04-22 17:50:18 +02:00
parent 8451167c94
commit 9a9af9d6e5
21 changed files with 832 additions and 798 deletions

View file

@ -13,7 +13,7 @@
<ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" /> <ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View file

@ -8,17 +8,17 @@
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/AppTheme" > android:theme="@style/AppTheme" >
<activity <activity
android:name=".MainActivity" android:name=".ShowPlayer"
android:label="@string/app_name" > android:label="@string/app_name" >
</activity> </activity>
<activity <activity
android:name=".Introduction" android:name=".PlayerEditor"
android:label="@string/title_activity_introduction" > android:label="@string/title_activity_introduction" >
<!-- android:parentActivityName=".MainActivity" --> <!-- android:parentActivityName=".ShowPlayer" -->
<!-- <meta-data --> <!-- <meta-data -->
<!-- android:name="android.support.PARENT_ACTIVITY" --> <!-- android:name="android.support.PARENT_ACTIVITY" -->
<!-- android:value=".MainActivity" /> --> <!-- android:value=".ShowPlayer" /> -->
</activity> </activity>
<activity <activity
android:name=".Welcome" android:name=".Welcome"

View file

@ -3,6 +3,8 @@ package com.kauron.dungeonmanager;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -10,11 +12,14 @@ import android.widget.ArrayAdapter;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.nispok.snackbar.Snackbar; import com.nispok.snackbar.Snackbar;
import com.nispok.snackbar.SnackbarManager; import com.nispok.snackbar.SnackbarManager;
import com.nispok.snackbar.listeners.ActionClickListener; import com.nispok.snackbar.listeners.ActionClickListener;
import java.io.File;
class AttackAdapter extends ArrayAdapter<Power> { class AttackAdapter extends ArrayAdapter<Power> {
AttackAdapter(Context context, Power[] powers) { AttackAdapter(Context context, Power[] powers) {
super(context, R.layout.attack_row, powers); super(context, R.layout.attack_row, powers);
@ -32,24 +37,45 @@ class AttackAdapter extends ArrayAdapter<Power> {
((TextView) mView.findViewById(R.id.frequency)).setText(attack.getFrequencyString()); ((TextView) mView.findViewById(R.id.frequency)).setText(attack.getFrequencyString());
((TextView) mView.findViewById(R.id.extra)).setText(attack.getRangeString() + " " + attack.getDistance()); ((TextView) mView.findViewById(R.id.extra)).setText(attack.getRangeString() + " " + attack.getDistance());
final AttackAdapter current = this; final AttackAdapter current = this;
((ImageView) mView.findViewById(R.id.delete)).setOnClickListener(new View.OnClickListener() { mView.findViewById(R.id.delete);
@Override // mView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { // @Override
SnackbarManager.show( // public void onClick(View v) {
Snackbar.with(getContext()).text("¿Quieres borrarlo?").actionLabel("").actionListener(new ActionClickListener() { // SnackbarManager.show(
@Override // Snackbar.with(getContext()).text("¿Quieres borrarlo?").actionLabel("").actionListener(new ActionClickListener() {
public void onActionClicked(Snackbar snackbar) { // @Override
current.remove(attack); // public void onActionClicked(Snackbar snackbar) {
// //delete the item
// String name = p.getString("power" + position, "");
// if (name != null && !name.isEmpty()) {
// getContext().getSharedPreferences(name, Context.MODE_PRIVATE).edit().clear().apply();
// Log.d("Tag", activity.getApplicationContext().getFilesDir().getParent()
// + File.separator + "shared_prefs" + File.separator + name + ".xml");
// try {
// if (!new File(activity.getApplicationContext().getFilesDir().getParent()
// + File.separator + "shared_prefs" + File.separator + name + ".xml").delete())
// throw new Exception();
// } catch (Exception e) {
// Toast.makeText(getContext(), "Error deleting player files", Toast.LENGTH_SHORT).show();
// }
// int max = p.getInt("powers", 0);
// SharedPreferences.Editor ed = p.edit();
// for (int i = position; i < max - 1; i++)
// ed.putString("power" + i, p.getString("power" + (i + 1), "max"));
// ed.putInt("powers", max - 1).apply();
// load();
// ed.remove("power" + (max - 1)).apply();
// }
// }
//
// ));
// //TODO: convert text to resource
// }
// }
//
// );
// };
} }
})
);
//TODO: convert text to resource
}
});
} else {
this.remove(attack);
}
return mView; return mView;
} }
} }

View file

@ -1,7 +1,6 @@
package com.kauron.dungeonmanager; package com.kauron.dungeonmanager;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import java.io.Serializable; import java.io.Serializable;
class Player implements Serializable { class Player implements Serializable {
@ -110,10 +109,8 @@ class Player implements Serializable {
private String name; private String name;
private int level; private int level;
//TODO: use dice dialogs //TODO: use dice dialogs
private int[] atk, def, abilities; private int[] atk, def;
private boolean[] abilitiesTrained;
//TODO: implement fully operational powers displayed as cards //TODO: implement fully operational powers displayed as cards
private Power[] powers;
Player (SharedPreferences p) { Player (SharedPreferences p) {
this.name = p.getString(NAME, "Player"); this.name = p.getString(NAME, "Player");
@ -133,40 +130,6 @@ class Player implements Serializable {
setState(); setState();
this.pg = p.getInt( "pg" , maxPg); this.pg = p.getInt( "pg" , maxPg);
this.curativeEfforts = p.getInt( "curativeEfforts" , maxCurativeEfforts ); this.curativeEfforts = p.getInt( "curativeEfforts" , maxCurativeEfforts );
//TODO: load powers from wherever they are saved
}
/** Constructor for creating a new character*/
Player( String name, int classInt, int raceInt,
int px, int[] atk, Power[] powers){
this.name = name;
this.px = px;
setLevel();
this.raceInt = raceInt;
this.classInt = classInt;
this.def = new int[4];
setAtk(atk);
setState();
pg = maxPg;
curativeEfforts = maxCurativeEfforts;
this.powers = powers;
}
/** Constructor for restoring the Player in the middle of the game*/
Player( int pg, int px, int curativeEfforts, int classInt, int raceInt, int[] atk, String name, Power[] powers) {
this.px = px;
setLevel();
setAtk(atk);
this.classInt = classInt;
this.raceInt = raceInt;
setClass();
this.name = name;
this.powers = powers;
this.pg = pg;
this.curativeEfforts = curativeEfforts;
setState();
} }
int getPx() {return px;} int getPx() {return px;}
@ -241,34 +204,11 @@ class Player implements Serializable {
} }
String getName() {return name;} String getName() {return name;}
void setName(String name) {this.name = name;}
int getClassInt() {return classInt;}
void setClassInt(int classInt) {
this.classInt = classInt;
if (atk != null) setClass();
}
String getClassName() {return CLASS_STRINGS[classInt];} String getClassName() {return CLASS_STRINGS[classInt];}
String getRaceName() {return RACE_STRINGS[raceInt];} String getRaceName() {return RACE_STRINGS[raceInt];}
void setRaceInt(int raceInt) {this.raceInt = raceInt;} void setRaceInt(int raceInt) {this.raceInt = raceInt;}
int getRaceInt() {return raceInt;} int getRaceInt() {return raceInt;}
//TODO: implement turns (for bonuses and continuous damage in the app
void rest(boolean isLong) {
if(isLong) {
pg = maxPg;
curativeEfforts = maxCurativeEfforts;
for (Power p : powers)
if (p != null)
p.recover(Power.DIARIO);
setState();
}
for (Power p : powers)
if (p != null)
p.recover(Power.ENCUENTRO);
}
void setAtk(int[] atk) {this.atk = atk; if(classInt != NULL) setClass();} void setAtk(int[] atk) {this.atk = atk; if(classInt != NULL) setClass();}
int getFue() {return atk[FUE];} int getFue() {return atk[FUE];}

View file

@ -15,7 +15,7 @@ import com.nispok.snackbar.Snackbar;
import com.nispok.snackbar.SnackbarManager; import com.nispok.snackbar.SnackbarManager;
public class Introduction extends ActionBarActivity { public class PlayerEditor extends ActionBarActivity {
private EditText name, level; private EditText name, level;
private EditText fue, con, des, sab, intel, car; private EditText fue, con, des, sab, intel, car;
@ -25,7 +25,7 @@ public class Introduction extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// getSupportActionBar().setDisplayHomeAsUpEnabled(true); // getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.activity_introduction); setContentView(R.layout.activity_player_editor);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
name = (EditText) findViewById(R.id.editNameIntro); name = (EditText) findViewById(R.id.editNameIntro);
@ -61,7 +61,7 @@ public class Introduction extends ActionBarActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present. // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_introduction, menu); getMenuInflater().inflate(R.menu.menu_player_editor, menu);
return true; return true;
} }

View file

@ -1,5 +1,7 @@
package com.kauron.dungeonmanager; package com.kauron.dungeonmanager;
import android.content.SharedPreferences;
import java.io.Serializable; import java.io.Serializable;
class Power implements Serializable{ class Power implements Serializable{
@ -15,37 +17,33 @@ class Power implements Serializable{
/**dies /**dies
* They are represented by its max size * They are represented by its max size
* 0 corresponds to [A], the weapon * 0 corresponds to [A], the weapon
* any other is represented by d2, d4, d6, d8, d10, d12, d20, d100 * any other is represented by [A], d2, d4, d6, d8, d10, d12, d20, d100, extra damage
*/ */
public static final int[] DIE = {0, 2, 4, 6, 8, 10, 12, 20, 100}; public static final int[] DIE = {0, 2, 4, 6, 8, 10, 12, 20, 100, 0};
private boolean used; private boolean used;
private int freq, action, distance, range, objectives; private int freq, action, distance, range, objectives;
private String name, description; private String name, impact, objective;
private String[] keywords; //fire, spell... private String keywords; //fire, spell...
private int atk, def; //constants from Player to denote atk and defense private int atk, def; //constants from Player to denote atk and defense
private int[] damage; //the max sizes of the different dies
Power ( SharedPreferences p ) {
this.name = p.getString("s0", "Name");
this.keywords = p.getString("s1", "Keywords");
this.impact = p.getString("s2", "2d10");
this.distance = Integer.parseInt(p.getString("s3", "10"));
this.objective = p.getString("s4", "One creature");
Power(String name, String desc, int freq, int action, int distance, String[] keywords, this.used = p.getBoolean("used", false);
int atk, int def, int[] damage){
used = false;
this.name = name; this.description = desc;
this.freq = freq; this.action = action;
this.distance = distance;
this.keywords = keywords;
this.freq = p.getInt("i0", 0);
this.range = p.getInt("i1", 0);
this.atk = p.getInt("i2", 0);
this.def = p.getInt("i3", 0);
this.action = p.getInt("i4", 0);
} }
String getKeywords() { String getKeywords() {return keywords;}
if ( keywords != null && keywords.length != 0 ) {
String r = keywords[0];
for (String k : keywords) r += ", " + k;
return r;
} else {
return "";
}
}
String getFrequencyString() {return FREQ[freq];} String getFrequencyString() {return FREQ[freq];}
int getFreq() {return freq;} int getFreq() {return freq;}
@ -56,7 +54,7 @@ class Power implements Serializable{
int getDistance() {return distance;} int getDistance() {return distance;}
String getName(){return name;} String getName(){return name;}
String getDescription() {return description;} String getImpact() {return impact;}
boolean isUsed(){return used;} boolean isUsed(){return used;}
@ -68,13 +66,6 @@ class Power implements Serializable{
} }
int rollAttack() {return atk + (int)(Math.random()*20) + 1;} int rollAttack() {return atk + (int)(Math.random()*20) + 1;}
int rollDamage() {
int roll = 0;
for(int i : damage) {
roll += (int)(Math.random()*i + 1);
}
return roll;
}
void recover(int type){ void recover(int type){
if(this.freq <= type) used = false; if(this.freq <= type) used = false;

View file

@ -1,23 +1,134 @@
package com.kauron.dungeonmanager; package com.kauron.dungeonmanager;
import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarActivity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
public class PowerEditor extends ActionBarActivity { public class PowerEditor extends ActionBarActivity {
public static final String NAME="name", FREQ="freq", KEYWORDS="keywords", RANGE="range", DISTANCE="distance"; public static final String NAME="name", FREQ="freq", KEYWORDS="keywords", RANGE="range", DISTANCE="distance";
private EditText [] edits = new EditText[5];
private Spinner [] spinners = new Spinner[5];
private String[] strings = new String[5];
private int[] ints = new int[5];
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_power_editor); setContentView(R.layout.activity_power_editor);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
//EditText
edits[0] = (EditText) findViewById(R.id.nameEdit);
edits[0].requestFocus();
edits[1] = (EditText) findViewById(R.id.keywordsEdit);
edits[2] = (EditText) findViewById(R.id.impactEdit);
edits[3] = (EditText) findViewById(R.id.distanceNumEdit);
edits[4] = (EditText) findViewById(R.id.objectiveEdit);
//Spinners
spinners[0] = (Spinner) findViewById(R.id.freqSpinner);
spinners[0].setAdapter(
new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.freq_array)
)
);
spinners[1] = (Spinner) findViewById(R.id.rangeSpinner);
spinners[1].setAdapter(
new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.ranges_array)
)
);
spinners[2] = (Spinner) findViewById(R.id.atkSpinner);
spinners[2].setAdapter(
new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.atk_array)
)
);
spinners[3] = (Spinner) findViewById(R.id.defSpinner);
spinners[3].setAdapter(
new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.def_array)
)
);
spinners[4] = (Spinner) findViewById(R.id.actionTypeSpinner);
spinners[4].setAdapter(
new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.actions_array)
)
);
} }
public void saveClick(View view) { public void saveClick(View view) {
//TODO: save powers //TODO: change strings per resources
boolean readyToSave = true;
for ( int i = 0; i < edits.length; i++ )
if ( edits[i].getText().toString().trim().length() == 0 ) {
edits[i].setError("This field is required");
readyToSave = false;
} else {
strings[i] = edits[i].getText().toString().trim();
}
for ( int i = 0; i < spinners.length; i++)
if ( spinners[i].getSelectedItemPosition() == 0 ) {
spinners[i].setBackgroundColor(getResources().getColor(R.color.red));
readyToSave = false;
} else {
ints[i] = spinners[i].getSelectedItemPosition();
spinners[i].setBackgroundColor(getResources().getColor(R.color.green));
}
if ( readyToSave ) {
String player = getIntent().getStringExtra("player");
SharedPreferences p = getSharedPreferences(player, MODE_PRIVATE);
int powers = p.getInt("powers", 0);
for (int i = 0; i < powers; i++) {
if ( p.getString("power" + i, "") == strings[0] ) {
edits[0].setError("This power has already been defined. Use another name.");
return;
}
}
p.edit().putString("power" + powers, strings[0])
.putInt("powers", powers + 1)
.apply();
SharedPreferences.Editor ed = getSharedPreferences(strings[0], MODE_PRIVATE).edit();
for (int i = 0; i < strings.length; i++)
ed.putString("s" + i, strings[i]);
for (int i = 0; i < ints.length; i++)
ed.putInt("i" + i, ints[i]);
ed.apply();
finish();
}
} }
} }

View file

@ -1,11 +1,10 @@
package com.kauron.dungeonmanager; package com.kauron.dungeonmanager;
import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarActivity;
import android.os.Bundle; import android.os.Bundle;
@ -15,8 +14,9 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.AdapterView;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -25,26 +25,27 @@ import com.nispok.snackbar.Snackbar;
import com.nispok.snackbar.SnackbarManager; import com.nispok.snackbar.SnackbarManager;
import com.nispok.snackbar.listeners.ActionClickListener; import com.nispok.snackbar.listeners.ActionClickListener;
public class MainActivity extends ActionBarActivity { public class ShowPlayer extends ActionBarActivity {
public static final int CURRENT_PG = 1, NULL = 0; public static final int CURRENT_PG = 1, NULL = 0;
public Player player; public Player player;
private boolean undo; private boolean undo;
//TODO: fix undo (show snackbar with button in each case, without timing).
private int undoObject, undoPreviousValue; private int undoObject, undoPreviousValue;
private ProgressBar pgBar, negPgBar, xpBar, curativeEffortsBar; private ProgressBar pgBar, negPgBar, xpBar, curativeEffortsBar;
private Button pgCurrent; private TextView currentPg, currentXp, currentCurativeEfforts;
private TextView currentPg, currentXp, currentCurativeEfforts, lvl;
private SharedPreferences p; private SharedPreferences p;
private Toolbar toolbar;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
//Initializing activity (setting toolbar as actionbar) //Initializing activity (setting toolbar as actionbar)
setContentView(R.layout.activity_main); setContentView(R.layout.activity_show_player);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
//Loading player //Loading player
@ -63,9 +64,6 @@ public class MainActivity extends ActionBarActivity {
pgBar = (ProgressBar) findViewById(R.id.pgBar); pgBar = (ProgressBar) findViewById(R.id.pgBar);
negPgBar = (ProgressBar) findViewById(R.id.negPgBar); negPgBar = (ProgressBar) findViewById(R.id.negPgBar);
pgCurrent = (Button) findViewById(R.id.pgCurrent);
lvl = (TextView) findViewById(R.id.lvl);
currentPg = (TextView) findViewById(R.id.currentPg); currentPg = (TextView) findViewById(R.id.currentPg);
currentXp = (TextView) findViewById(R.id.currentXp); currentXp = (TextView) findViewById(R.id.currentXp);
currentCurativeEfforts = (TextView) findViewById(R.id.currentCurativeEfforts); currentCurativeEfforts = (TextView) findViewById(R.id.currentCurativeEfforts);
@ -83,18 +81,19 @@ public class MainActivity extends ActionBarActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present. // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu); getMenuInflater().inflate(R.menu.menu_show_player, menu);
return true; return true;
} }
@Override @Override
public boolean onPrepareOptionsMenu (Menu menu) { public boolean onPrepareOptionsMenu (Menu menu) {
MenuItem menuUndo = menu.findItem(R.id.action_undo); MenuItem menuHeal = menu.findItem(R.id.action_cure);
menuUndo.setEnabled(undo); boolean maxed = player.getPg() == player.getMaxPg();
if (undo) menuHeal.setEnabled(!maxed);
menuUndo.getIcon().setAlpha(255); if (maxed)
menuHeal.getIcon().setAlpha(128);
else else
menuUndo.getIcon().setAlpha(128); menuHeal.getIcon().setAlpha(255);
return true; return true;
} }
@ -112,14 +111,12 @@ public class MainActivity extends ActionBarActivity {
Snackbar Snackbar
.with(this) .with(this)
.text(R.string.maxed_curative) .text(R.string.maxed_curative)
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
); );
} else { } else {
healDialog(); healDialog();
} }
return true; return true;
} else if (id == R.id.action_undo) {
undo();
return true;
} else if (id == R.id.action_time_encounter_end) { } else if (id == R.id.action_time_encounter_end) {
AlertDialog.Builder alert = new AlertDialog.Builder(this); AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.px_awarded_title); alert.setTitle(R.string.px_awarded_title);
@ -137,9 +134,6 @@ public class MainActivity extends ActionBarActivity {
//levelUp //levelUp
//TODO: improve leveling up by using a sliding guide //TODO: improve leveling up by using a sliding guide
player.setMaxPgOnLevelUp(); player.setMaxPgOnLevelUp();
lvl.setText(
String.valueOf(player.getLevel())
);
} }
p.edit().putInt("px", player.getPx()).apply(); p.edit().putInt("px", player.getPx()).apply();
if(levelUp) if(levelUp)
@ -148,12 +142,6 @@ public class MainActivity extends ActionBarActivity {
pxUpdate(); pxUpdate();
ceUpdate(); ceUpdate();
pgUpdate(); pgUpdate();
// incrementProgressBar(
// xpBar, currentXp,
// 1, levelUp, Player.LEVEL_PX[player.getLevel()] -
// Player.LEVEL_PX[player.getLevel() - 1],
// true, player.getPx() - Player.LEVEL_PX[player.getLevel() - 1]
// );
} catch(Exception e) { } catch(Exception e) {
Toast.makeText(getApplicationContext(), "There was an error leveling up", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "There was an error leveling up", Toast.LENGTH_LONG).show();
} }
@ -162,28 +150,31 @@ public class MainActivity extends ActionBarActivity {
alert.show(); alert.show();
input.requestFocus(); input.requestFocus();
return true; return true;
} else if (id == R.id.action_time_long_rest) { //TODO: the player no longer contains the powers, therefore the
player.rest(true); // } else if (id == R.id.action_time_long_rest) {
SnackbarManager.show( // player.rest(true);
Snackbar // SnackbarManager.show(
.with(this) // Snackbar
.text(R.string.long_rest_done) // .with(this)
); // .text(R.string.long_rest_done)
p.edit() // .duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
.putInt("pg", player.getPg()) // );
.putInt("curativeEfforts", player.getCurativeEfforts()) // p.edit()
.apply(); // .putInt("pg", player.getPg())
pgUpdate(); // .putInt("curativeEfforts", player.getCurativeEfforts())
ceUpdate(); // .apply();
} else if (id == R.id.action_time_rest) { // pgUpdate();
player.rest(false); // ceUpdate();
SnackbarManager.show( // } else if (id == R.id.action_time_rest) {
Snackbar // player.rest(false);
.with(this) // SnackbarManager.show(
.text(R.string.rest_done) // Snackbar
); // .with(this)
pgUpdate(); // .text(R.string.rest_done)
ceUpdate(); // .duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
// );
// pgUpdate();
// ceUpdate();
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@ -205,6 +196,7 @@ public class MainActivity extends ActionBarActivity {
Snackbar Snackbar
.with(this) .with(this)
.text(R.string.no_curative_efforts_error) .text(R.string.no_curative_efforts_error)
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
); );
} else { } else {
if(hasCured == Player.MAXED){ if(hasCured == Player.MAXED){
@ -212,17 +204,13 @@ public class MainActivity extends ActionBarActivity {
Snackbar Snackbar
.with(this) .with(this)
.text(R.string.maxed_curative) .text(R.string.maxed_curative)
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
); );
} }
SharedPreferences.Editor e = p.edit(); SharedPreferences.Editor e = p.edit();
e.putInt("pg", player.getPg()); e.putInt("pg", player.getPg());
if(usesEffort) { if(usesEffort) {
e.putInt("curativeEfforts", player.getCurativeEfforts()); e.putInt("curativeEfforts", player.getCurativeEfforts());
// incrementProgressBar(
// curativeEffortsBar, currentCurativeEfforts,
// 100, false, 0,
// true, player.getCurativeEfforts()
// );
ceUpdate(); ceUpdate();
} }
e.apply(); e.apply();
@ -266,21 +254,14 @@ public class MainActivity extends ActionBarActivity {
alert.setView(input); alert.setView(input);
final Context context = getApplicationContext(); final Context context = getApplicationContext();
final MainActivity activity = this; final ShowPlayer activity = this;
alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) { public void onClick(DialogInterface dialog, int whichButton) {
try { try {
int preValue = Integer.parseInt(pgCurrent.getText().toString()); int preValue = player.getPg();
int damage = Integer.parseInt(input.getText().toString()); int damage = Integer.parseInt(input.getText().toString());
player.losePg(damage); player.losePg(damage);
pgCurrent.setText(String.valueOf(player.getPg()));
// incrementProgressBar(
// pgBar, currentPg,
// 100, false, 0,
// true, player.getPg()
// );
//finished correctly, then apply values to undo's
undo = true; undo = true;
undoPreviousValue = preValue; undoPreviousValue = preValue;
undoObject = CURRENT_PG; undoObject = CURRENT_PG;
@ -294,6 +275,7 @@ public class MainActivity extends ActionBarActivity {
} }
}) })
.actionColor(getResources().getColor(R.color.yellow)) .actionColor(getResources().getColor(R.color.yellow))
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
,activity); // action button's ,activity); // action button's
p.edit().putInt("pg", player.getPg()).apply(); p.edit().putInt("pg", player.getPg()).apply();
pgUpdate(); pgUpdate();
@ -315,100 +297,39 @@ public class MainActivity extends ActionBarActivity {
private void pgUpdate() { private void pgUpdate() {
int status = player.getState(); int status = player.getState();
int lastState = player.getLastState();
int pg = player.getPg(); int pg = player.getPg();
if (pg < 0) { if (pg < 0) {
pgBar.setProgress(0); if (status == Player.MUERTO)
negPgBar.setProgress(negPgBar.getMax());
else
negPgBar.setProgress(-pg); negPgBar.setProgress(-pg);
} else if (pg > 0) { pgBar.setProgress(0);
} else {
pgBar.setProgress(pg); pgBar.setProgress(pg);
negPgBar.setProgress(0); negPgBar.setProgress(0);
} else {
pgBar.setProgress(0);
negPgBar.setProgress(0);
} }
currentPg.setText(player.getPg() + " / " + player.getMaxPg()); currentPg.setText(player.getPg() + " / " + player.getMaxPg());
// incrementProgressBar(
// pgBar, currentPg,
// 100, false, 0,
// true, Math.abs(player.getPg())
// );
pgCurrent.setText(String.valueOf(player.getPg()));
if (status == Player.MUERTO) { if (status == Player.MUERTO) {
pgCurrent.setTextColor(Color.BLACK); pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_IN);
pgCurrent.setBackgroundColor(getResources().getColor(R.color.red));
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(getString(R.string.reset_confirmation_title));
alert.setMessage(getString(R.string.reset_confirmation));
alert.setPositiveButton(R.string.action_undo, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
undo();
}
});
final Activity activity = this;
alert.setNegativeButton(R.string.die, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
SnackbarManager.show(
Snackbar
.with(activity)
.text(R.string.message_death)
);
p.edit().clear().apply();
restoreData();
}
});
alert.show();
} else if (status == Player.DEBILITADO) { } else if (status == Player.DEBILITADO) {
pgCurrent.setBackgroundColor(android.R.drawable.btn_default);
pgCurrent.setTextColor(getResources().getColor(R.color.red));
pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_IN); pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_IN);
negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_IN); negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_IN);
if(lastState != Player.SAME) {
SnackbarManager.show(
Snackbar
.with(this)
.text(R.string.state_changed_debilitado)
);
}
} else if (status == Player.MALHERIDO) { } else if (status == Player.MALHERIDO) {
pgCurrent.setBackgroundColor(android.R.drawable.btn_default);
pgCurrent.setTextColor(getResources().getColor(R.color.yellow));
pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.yellow), PorterDuff.Mode.SRC_IN); pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.yellow), PorterDuff.Mode.SRC_IN);
negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.yellow), PorterDuff.Mode.SRC_IN); negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.yellow), PorterDuff.Mode.SRC_IN);
if(lastState != Player.SAME) {
SnackbarManager.show(
Snackbar
.with(this)
.text(R.string.state_changed_malherido)
);
}
} else { } else {
pgCurrent.setTextColor(getResources().getColor(R.color.green));
pgCurrent.setBackgroundColor(android.R.drawable.btn_default);
pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.green), PorterDuff.Mode.SRC_IN); pgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.green), PorterDuff.Mode.SRC_IN);
negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.green), PorterDuff.Mode.SRC_IN); negPgBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.green), PorterDuff.Mode.SRC_IN);
} }
} }
private void restoreData(){ private void restoreData(){
if (player == null) { //Loading player
player = new Player( p ); player = new Player( p );
} else {
player.setName(p.getString(Player.NAME, player.getName()));
player.setClassInt(p.getInt(Player.CLASS, player.getClassInt()));
player.setRaceInt(p.getInt(Player.RACE, player.getRaceInt()));
player.setPx(p.getInt(Player.PX, player.getPx()));
player.setAtk(new int[]{
p.getInt("fue", player.getFue()),
p.getInt("con", player.getCon()),
p.getInt("des", player.getDes()),
p.getInt("int", player.getInt()),
p.getInt("sab", player.getSab()),
p.getInt("car", player.getCar())
});
}
pxUpdate(); pxUpdate();
xpBar.setMax( xpBar.setMax(
Player.LEVEL_PX[player.getLevel()] - Player.LEVEL_PX[player.getLevel()] -
@ -427,44 +348,50 @@ public class MainActivity extends ActionBarActivity {
pgUpdate(); pgUpdate();
ceUpdate(); ceUpdate();
//set restored values to the respective fields //set restored values to the respective fields
((TextView) findViewById(R.id.nameText)).setText(player.getName()); toolbar.setTitle(player.getName());
((TextView) findViewById(R.id.raceText)).setText(player.getRaceName()); toolbar.setSubtitle(
((TextView) findViewById(R.id.classText)).setText(player.getClassName()); player.getClassName() + " " + player.getRaceName() + " " + player.getLevel()
lvl.setText(String.valueOf(player.getLevel()));
//attacks
((TextView) findViewById(R.id.FUE)).setText(
getString(R.string.FUE) + ":" + player.getFue()
);
((TextView) findViewById(R.id.CON)).setText(
getString(R.string.CON) + ":" + player.getCon()
);
((TextView) findViewById(R.id.DES)).setText(
getString(R.string.DES) + ":" + player.getDes()
);
((TextView) findViewById(R.id.INT)).setText(
getString(R.string.INT) + ":" + player.getInt()
);
((TextView) findViewById(R.id.SAB)).setText(
getString(R.string.SAB) + ":" + player.getSab()
);
((TextView) findViewById(R.id.CAR)).setText(
getString(R.string.CAR) + ":" + player.getCar()
);
//defenses
((TextView) findViewById(R.id.CA)).setText(
getString(R.string.CA) + ":" + player.getCa()
);
((TextView) findViewById(R.id.FORT)).setText(
getString(R.string.FORT) + ":" + player.getFort()
);
((TextView) findViewById(R.id.REF)).setText(
getString(R.string.REF) + ":" + player.getRef()
);
((TextView) findViewById(R.id.VOL)).setText(
getString(R.string.VOL) + ":" + player.getVol()
); );
toolbar.setTitleTextColor(getResources().getColor(R.color.white));
toolbar.setSubtitleTextColor(getResources().getColor(R.color.white));
//
// //attacks
// ((TextView) findViewById(R.id.FUE)).setText(
// getString(R.string.FUE) + ":" + player.getFue()
// );
// ((TextView) findViewById(R.id.CON)).setText(
// getString(R.string.CON) + ":" + player.getCon()
// );
// ((TextView) findViewById(R.id.DES)).setText(
// getString(R.string.DES) + ":" + player.getDes()
// );
// ((TextView) findViewById(R.id.INT)).setText(
// getString(R.string.INT) + ":" + player.getInt()
// );
// ((TextView) findViewById(R.id.SAB)).setText(
// getString(R.string.SAB) + ":" + player.getSab()
// );
// ((TextView) findViewById(R.id.CAR)).setText(
// getString(R.string.CAR) + ":" + player.getCar()
// );
//
// //defenses
// ((TextView) findViewById(R.id.CA)).setText(
// getString(R.string.CA) + ":" + player.getCa()
// );
// ((TextView) findViewById(R.id.FORT)).setText(
// getString(R.string.FORT) + ":" + player.getFort()
// );
// ((TextView) findViewById(R.id.REF)).setText(
// getString(R.string.REF) + ":" + player.getRef()
// );
// ((TextView) findViewById(R.id.VOL)).setText(
// getString(R.string.VOL) + ":" + player.getVol()
// );
//
//
//Loading powers and abilities (not implemented yet)
refreshList();
} }
private void ceUpdate() { private void ceUpdate() {
@ -487,7 +414,6 @@ public class MainActivity extends ActionBarActivity {
private void undo() { private void undo() {
String message = ""; String message = "";
if(undoObject == CURRENT_PG){ if(undoObject == CURRENT_PG){
pgCurrent.setText(String.valueOf(undoPreviousValue));
player.setPg(undoPreviousValue); player.setPg(undoPreviousValue);
undoObject = NULL; undoObject = NULL;
message = getString(R.string.action_undo_current_pg); message = getString(R.string.action_undo_current_pg);
@ -497,6 +423,7 @@ public class MainActivity extends ActionBarActivity {
Snackbar Snackbar
.with(this) .with(this)
.text(message) .text(message)
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
); );
} }
pgUpdate(); pgUpdate();
@ -526,4 +453,40 @@ public class MainActivity extends ActionBarActivity {
dialog.show(); dialog.show();
input.requestFocus(); input.requestFocus();
} }
public void addToList (View view) { startActivity(new Intent(this, PowerEditor.class).putExtra("player", player.getName())); }
private void refreshList() {
//TODO: check which is active (now there is only a power list), so there is only one possibility
int n = p.getInt("powers",0);
int elements = 0;
ListView attackList = (ListView) findViewById(R.id.attackList);
AttackAdapter adapter = (AttackAdapter) attackList.getAdapter();
if ( adapter != null )
elements = adapter.getCount();
if ( elements < n && adapter != null ) {
for ( int i = elements; i < n; i++ ) {
SharedPreferences sav = getSharedPreferences(p.getString("power" + i, ""), MODE_PRIVATE);
adapter.add( new Power ( sav ) );
}
} else if ( n != 0 ) {
Power[] powers = new Power[n];
for (int i = 0; i < n; i++) {
SharedPreferences sav = getSharedPreferences(p.getString("power" + i, ""), MODE_PRIVATE);
powers[i] = new Power(sav);
}
attackList.setAdapter(new AttackAdapter(this, powers));
attackList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), ((Power)parent.getItemAtPosition(position)).getName(), Toast.LENGTH_LONG).show();
//TODO: show here dialog with power's complete information, and buttons to use, recharge or delete
}
});
}
}
} }

View file

@ -49,7 +49,7 @@ public class Welcome extends ActionBarActivity {
//noinspection SimplifiableIfStatement //noinspection SimplifiableIfStatement
if ( id == R.id.action_add_player ) { if ( id == R.id.action_add_player ) {
startActivity(new Intent(this, Introduction.class).putExtra("first_time", true)); startActivity(new Intent(this, PlayerEditor.class).putExtra("first_time", true));
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@ -61,7 +61,7 @@ public class Welcome extends ActionBarActivity {
load(); load();
} }
//TODO: load all players with secondary constructor (except the ones created by introduction and haven't passed by MainActivity) //TODO: load all players with secondary constructor (except the ones created by introduction and haven't passed by ShowPlayer)
private void load() { private void load() {
int n = p.getInt("players",0); int n = p.getInt("players",0);
ListView playerList = (ListView) findViewById(R.id.listView); ListView playerList = (ListView) findViewById(R.id.listView);
@ -86,7 +86,6 @@ public class Welcome extends ActionBarActivity {
findViewById(R.id.no_players_text).setVisibility(View.GONE); findViewById(R.id.no_players_text).setVisibility(View.GONE);
Player[] players = new Player[n]; Player[] players = new Player[n];
for ( int i = 0; i < n; i++ ) { for ( int i = 0; i < n; i++ ) {
//TODO: fill the information for the player creation
SharedPreferences sav = getSharedPreferences(p.getString("player" + i, ""), MODE_PRIVATE); SharedPreferences sav = getSharedPreferences(p.getString("player" + i, ""), MODE_PRIVATE);
if (sav.contains(Player.NAME)) if (sav.contains(Player.NAME))
players[i] = new Player( sav ); players[i] = new Player( sav );
@ -98,7 +97,7 @@ public class Welcome extends ActionBarActivity {
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startActivity(new Intent( startActivity(new Intent(
getApplicationContext(), MainActivity.class getApplicationContext(), ShowPlayer.class
).putExtra("player", position)); ).putExtra("player", position));
} }
}); });

View file

@ -1,423 +0,0 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
tools:text="Kauron"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<ScrollView
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/pgCurrent"
android:textSize="40sp"
android:onClick="damage" />
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scroll1">
<RelativeLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/basicInfoContainer">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/adventurer_name"
android:id="@+id/nameText"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/race_name"
android:id="@+id/raceText"
android:layout_alignTop="@+id/classText"
android:layout_toRightOf="@+id/classText"
android:layout_toEndOf="@+id/classText"
android:layout_marginLeft="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/class_name"
android:id="@+id/classText"
android:layout_below="@+id/nameText"
android:layout_alignParentStart="false"
android:layout_alignParentLeft="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/level"
android:id="@+id/lvlText"
android:layout_alignParentBottom="false"
android:layout_toRightOf="@+id/raceText"
android:layout_toEndOf="@+id/raceText"
android:layout_alignTop="@+id/raceText"
android:layout_marginLeft="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/lvl"
android:layout_alignParentBottom="false"
android:layout_toRightOf="@+id/lvlText"
android:layout_toEndOf="@+id/lvlText"
android:layout_alignTop="@+id/lvlText"
android:layout_marginLeft="10dp" />
</RelativeLayout>
</HorizontalScrollView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titlePgBar"
android:text="@string/pg"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_marginBottom="5dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:layout_weight="1"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:id="@+id/currentPg"
android:textSize="14sp"
android:textStyle="bold"
android:textAllCaps="true"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/negPgBar"
android:layout_weight="2"
android:rotation="180"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textStyle="bold"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:text="@string/zero"/>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/pgBar"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titleCurativeEffortsBar"
android:text="@string/curative_efforts"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textStyle="bold"
android:gravity="end"
android:id="@+id/currentCurativeEfforts"
android:textAllCaps="true"/>
</LinearLayout>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/curativeEffortsBar"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titleXpBar"
android:text="@string/px"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_marginBottom="5dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:layout_weight="1"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:id="@+id/currentXp"
android:textSize="14sp"
android:textStyle="bold"
android:textAllCaps="true"
android:layout_weight="1"/>
</LinearLayout>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/xpBar"/>
<LinearLayout
android:id="@+id/attackContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/titleAttack"
android:text="@string/attack"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/attackGrid"
android:columnCount="3"
android:rowCount="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="0"
android:id="@+id/FUE"
tools:text="@string/FUE" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="0"
android:id="@+id/CON"
tools:text="@string/CON" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="1"
android:id="@+id/DES"
tools:text="@string/DES" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="1"
android:id="@+id/INT"
tools:text="@string/INT" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="2"
android:id="@+id/SAB"
tools:text="@string/SAB" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="2"
android:id="@+id/CAR"
tools:text="@string/CAR" />
</GridLayout>
</HorizontalScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/defenseContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/titleDefense"
android:text="@string/defense"
android:textAllCaps="true"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/defenseGrid"
android:columnCount="2"
android:rowCount="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="0"
android:layout_column="0"
android:id="@+id/CA"
tools:text="@string/CA" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="0"
android:layout_column="1"
android:id="@+id/FORT"
tools:text="@string/FORT" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="1"
android:layout_column="0"
android:id="@+id/REF"
tools:text="@string/REF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="1"
android:layout_column="1"
android:id="@+id/VOL"
tools:text="@string/VOL" />
</GridLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -4,7 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context=".Introduction"> tools:context=".PlayerEditor">
<android.support.v7.widget.Toolbar <android.support.v7.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
@ -13,14 +13,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/character_creation"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</android.support.v7.widget.Toolbar> </android.support.v7.widget.Toolbar>
<RelativeLayout <RelativeLayout

View file

@ -11,15 +11,6 @@
android:background="@color/primary" android:background="@color/primary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/power_editor"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</android.support.v7.widget.Toolbar> </android.support.v7.widget.Toolbar>
<ScrollView <ScrollView
android:layout_width="fill_parent" android:layout_width="fill_parent"
@ -91,7 +82,7 @@
android:layout_below="@+id/keywordsEdit" android:layout_below="@+id/keywordsEdit"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:id="@+id/linearLayout"> android:id="@+id/spinnersLayout">
<Spinner <Spinner
android:layout_width="match_parent" android:layout_width="match_parent"
@ -118,38 +109,33 @@
android:focusableInTouchMode="true" /> android:focusableInTouchMode="true" />
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/spinnersLayout"
android:orientation="horizontal"
android:gravity="center"
android:id="@+id/vsLayout">
<Spinner <Spinner
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/atkSpinner" android:id="@+id/atkSpinner"
android:spinnerMode="dropdown" android:spinnerMode="dropdown" />
android:layout_below="@+id/linearLayout"
android:layout_alignParentLeft="true" <TextView
android:layout_alignParentStart="true" android:layout_width="wrap_content"
android:layout_toLeftOf="@+id/vsText" android:layout_height="wrap_content"
android:layout_toStartOf="@+id/vsText" /> android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/vs"
android:id="@+id/vsText" />
<Spinner <Spinner
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/defSpinner" android:id="@+id/defSpinner"
android:spinnerMode="dropdown" android:spinnerMode="dropdown" />
android:layout_below="@+id/linearLayout"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/vsText"
android:layout_toEndOf="@+id/vsText" />
<TextView </LinearLayout>
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/vs"
android:id="@+id/vsText"
android:gravity="center"
android:layout_below="@+id/linearLayout"
android:layout_centerHorizontal="true"
android:layout_alignBottom="@+id/atkSpinner" />
<EditText <EditText
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -157,13 +143,14 @@
android:inputType="textMultiLine" android:inputType="textMultiLine"
android:ems="10" android:ems="10"
android:id="@+id/impactEdit" android:id="@+id/impactEdit"
android:layout_below="@+id/defSpinner" android:layout_below="@+id/vsLayout"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:hint="@string/impactEditHint" android:hint="@string/impactEditHint"
android:layout_toRightOf="@+id/impactText" android:layout_toRightOf="@+id/impactText"
android:layout_toEndOf="@+id/impactText" /> android:layout_toEndOf="@+id/impactText" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -171,7 +158,7 @@
android:text="@string/impact" android:text="@string/impact"
android:id="@+id/impactText" android:id="@+id/impactText"
android:gravity="center_vertical" android:gravity="center_vertical"
android:layout_below="@+id/atkSpinner" android:layout_below="@+id/vsLayout"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_alignBottom="@+id/impactEdit" android:layout_alignBottom="@+id/impactEdit"
@ -220,10 +207,9 @@
android:layout_below="@+id/objectiveEdit" android:layout_below="@+id/objectiveEdit"
android:layout_alignRight="@+id/impactEdit" android:layout_alignRight="@+id/impactEdit"
android:layout_alignEnd="@+id/impactEdit" android:layout_alignEnd="@+id/impactEdit"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:onClick="saveClick"/> android:onClick="saveClick"
android:textColor="@color/primary_dark"/>
</RelativeLayout> </RelativeLayout>
</ScrollView> </ScrollView>

View file

@ -0,0 +1,382 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ShowPlayer">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:onClick="damage"
android:clickable="true"
android:layout_marginBottom="@dimen/bar_margin">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titlePgBar"
android:text="@string/pg"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:layout_weight="1"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:id="@+id/currentPg"
android:textSize="14sp"
android:textStyle="bold"
android:textAllCaps="true"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/negPgBar"
android:layout_weight="2"
android:rotation="180"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textStyle="bold"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:text="@string/zero"/>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/pgBar"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="@dimen/bar_margin">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titleCurativeEffortsBar"
android:text="@string/curative_efforts"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textStyle="bold"
android:gravity="end"
android:id="@+id/currentCurativeEfforts"
android:textAllCaps="true"/>
</LinearLayout>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/curativeEffortsBar"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="@dimen/bar_margin">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titleXpBar"
android:text="@string/px"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:layout_weight="1"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:id="@+id/currentXp"
android:textSize="14sp"
android:textStyle="bold"
android:textAllCaps="true"
android:layout_weight="1"/>
</LinearLayout>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/xpBar"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/addElement"
android:text="@string/new_attack"
android:textColor="@color/primary"
android:background="@android:color/transparent"
android:onClick="addToList"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listSelectButton"
android:textColor="@color/primary"
android:background="@android:color/transparent"
tools:text="Go to abilities"/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/attackList"
android:layout_gravity="center_horizontal"
android:choiceMode="none" />
<LinearLayout
android:id="@+id/attackContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:id="@+id/titleAttack"
android:text="@string/attack"
android:textAllCaps="true"
android:drawableBottom="?android:attr/listChoiceBackgroundIndicator"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/attackGrid"
android:columnCount="3"
android:rowCount="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="0"
android:id="@+id/FUE"
tools:text="@string/FUE" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="0"
android:id="@+id/CON"
tools:text="@string/CON" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="1"
android:id="@+id/DES"
tools:text="@string/DES" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="1"
android:id="@+id/INT"
tools:text="@string/INT" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="0"
android:layout_column="2"
android:id="@+id/SAB"
tools:text="@string/SAB" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="4"
android:layout_row="1"
android:layout_column="2"
android:id="@+id/CAR"
tools:text="@string/CAR" />
</GridLayout>
</HorizontalScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/defenseContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="gone"
android:orientation="vertical">
<TextView
android:id="@+id/titleDefense"
android:text="@string/defense"
android:textAllCaps="true"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
<GridLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/defenseGrid"
android:columnCount="2"
android:rowCount="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="0"
android:layout_column="0"
android:id="@+id/CA"
tools:text="@string/CA" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="0"
android:layout_column="1"
android:id="@+id/FORT"
tools:text="@string/FORT" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="1"
android:layout_column="0"
android:id="@+id/REF"
tools:text="@string/REF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:typeface="monospace"
android:ems="5"
android:layout_row="1"
android:layout_column="1"
android:id="@+id/VOL"
tools:text="@string/VOL" />
</GridLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -14,7 +14,8 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:contentDescription="@string/edit" /> android:contentDescription="@string/edit"
android:tint="@color/black" />
<TextView <TextView
tools:text="Happiness" tools:text="Happiness"

View file

@ -1,7 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:context="com.kauron.dungeonmanager.Introduction"> tools:context="com.kauron.dungeonmanager.PlayerEditor">
<item android:id="@+id/action_save" <item android:id="@+id/action_save"
android:title="@string/action_save" android:title="@string/action_save"
android:orderInCategory="100" android:orderInCategory="100"

View file

@ -1,13 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> xmlns:tools="http://schemas.android.com/tools" tools:context=".ShowPlayer">
<!--TODO: create fancy responsive toasts for undo's-->
<item
android:id="@+id/action_undo"
android:title="@string/action_undo"
android:orderInCategory="1"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_undo"/>
<item <item
android:id="@+id/action_cure" android:id="@+id/action_cure"
android:title="@string/action_cure" android:title="@string/action_cure"

View file

@ -2,7 +2,7 @@
<resources> <resources>
<string name="action_cure">Curar</string> <string name="action_cure">Curar</string>
<string name="action_edit_basics">Editar personaje</string> <string name="action_edit_basics">Editar personaje</string>
<string name="action_finish">PG Máx.</string> <string name="action_finish">Guardar</string>
<string name="adventurer_name">Nombre</string> <string name="adventurer_name">Nombre</string>
<string name="cancel">Cancelar</string> <string name="cancel">Cancelar</string>
<string name="class_name">Clase</string> <string name="class_name">Clase</string>
@ -76,4 +76,23 @@
<string name="load_character">Cargar personaje</string> <string name="load_character">Cargar personaje</string>
<string name="new_character_warning">Esto borrará al personaje anterior</string> <string name="new_character_warning">Esto borrará al personaje anterior</string>
<string name="new_attack">Nuevo ataque</string> <string name="new_attack">Nuevo ataque</string>
<string name="add_player">Añadir personaje</string>
<string name="character_creation">Creación de personaje</string>
<string name="delete">Borrar</string>
<string name="edit">Editar</string>
<string name="hello_world"></string>
<string name="help_welcome_text">Toca un jugador para seleccionarlo, pulsación larga para opciones</string>
<string name="impact">Impacto</string>
<string name="impactEditHint">1d6 + 4 y eres invisible</string>
<string name="keywords">Palabras clave</string>
<string name="keywordsPowerHint">Arcano, hechizo, psíquico</string>
<string name="name">Nombre</string>
<string name="no_players">No hay personajes, añade uno</string>
<string name="objective">Objetivo</string>
<string name="objectiveHint">Una criatura</string>
<string name="powerNameHint">Mordedura visual</string>
<string name="power_editor">Editor de ataques</string>
<string name="save">Guardar</string>
<string name="save_player">Guardar personaje</string>
<string name="title_activity_power_editor">Editor de poderes</string>
</resources> </resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="primary">#795548</color> <color name="primary">#5D4037</color>
<color name="primary_dark">#5D4037</color> <color name="primary_dark">#3E2723</color>
<color name="primary_light">#D7CCC8</color> <color name="primary_light">#D7CCC8</color>
<color name="accent">#FF5252</color> <color name="accent">#FF5252</color>
<color name="primary_text">#212121</color> <color name="primary_text">#212121</color>
@ -12,9 +12,11 @@
<color name="red">#9F0D0A</color> <color name="red">#9F0D0A</color>
<color name="yellow">#FFBB00</color> <color name="yellow">#FFBB00</color>
<color name="green">#0f0</color> <color name="green">#0f0</color>
<color name="white">#EEEEEE</color>
<color name="surges_bar">#989F2B</color> <color name="surges_bar">#989F2B</color>
<color name="px_bar">#005874</color> <color name="px_bar">#005874</color>
<color name="black">#000000</color>
<!--<color name="primary">#5D4037</color>--> <!--<color name="primary">#5D4037</color>-->
<!--<color name="primaryDark">#3E2723</color>--> <!--<color name="primaryDark">#3E2723</color>-->
</resources> </resources>

View file

@ -3,6 +3,8 @@
<dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="bar_margin">15dp</dimen>
<dimen name="fab_button_diameter">56dp</dimen> <dimen name="fab_button_diameter">56dp</dimen>
<dimen name="fab_button_margin_bottom">16dp</dimen> <dimen name="fab_button_margin_bottom">16dp</dimen>
<dimen name="fab_button_margin_right">16dp</dimen> <dimen name="fab_button_margin_right">16dp</dimen>

View file

@ -35,7 +35,7 @@
<string name="race_name">Race</string> <string name="race_name">Race</string>
<string name="state_changed_debilitado">You have fainted. You can\'t do anything!</string> <string name="state_changed_debilitado">You have fainted. You can\'t do anything!</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="ok">Ok</string> <string name="ok">OK</string>
<string name="yes">Yes</string> <string name="yes">Yes</string>
<string name="no">No</string> <string name="no">No</string>
@ -62,12 +62,12 @@
<string name="other">Otro</string> <string name="other">Otro</string>
<string name="px">XP</string> <string name="px">XP</string>
<string name="FUE">FUE</string> <string name="FUE">STR</string>
<string name="CON">CON</string> <string name="CON">CON</string>
<string name="DES">DES</string> <string name="DES">DEX</string>
<string name="INT">INT</string> <string name="INT">INT</string>
<string name="CAR">CAR</string> <string name="CAR">CHA</string>
<string name="SAB">SAB</string> <string name="SAB">WIS</string>
<string name="action_save">Save</string> <string name="action_save">Save</string>
<string name="dialog_resolve_max_pg_hint">Max PG</string> <string name="dialog_resolve_max_pg_hint">Max PG</string>
<string name="empty_field">Please input something</string> <string name="empty_field">Please input something</string>
@ -94,15 +94,58 @@
<string name="character_creation">Character creation</string> <string name="character_creation">Character creation</string>
<string name="name">Name</string> <string name="name">Name</string>
<string name="keywords">Keywords</string> <string name="keywords">Keywords</string>
<string name="powerNameHint">Mordedura visual</string> <string name="powerNameHint">Blasting charm</string>
<string name="keywordsPowerHint">Arcano, hechizo, psíquico</string> <string name="keywordsPowerHint">Magic, fire, weapon</string>
<string name="number10">10</string> <string name="number10" translatable="false">10</string>
<string name="vs">VS</string> <string name="vs" translatable="false">VS</string>
<string name="save">Save</string> <string name="save">Save</string>
<string name="impactEditHint">1d6 + mod. CAR y eres invisible hasta el comienzo del siguiente turno</string> <string name="impactEditHint">1d6 + mod. CHAR and you become invisible</string>
<string name="impact">Impact</string> <string name="impact">Impact</string>
<string name="objective">Objective</string> <string name="objective">Objective</string>
<string name="objectiveHint">One creature</string> <string name="objectiveHint">One creature</string>
<string name="power_editor">Power Editor</string> <string name="power_editor">Power Editor</string>
<string name="save_player">Save player</string> <string name="save_player">Save player</string>
<string-array name="freq_array">
<item>Frequency</item>
<item>Opportunity</item>
<item>At will</item>
<item>Encounter</item>
<item>Daily</item>
</string-array>
<string-array name="actions_array">
<item>Action type</item>
<item>Standard</item>
<item>Movement</item>
<item>Minor</item>
<item>Free</item>
</string-array>
<string-array name="ranges_array">
<item>Range</item>
<item>Melee</item>
<item>Ranged</item>
<item>Area</item>
<item>Close</item>
<item>Aura</item>
</string-array>
<string-array name="atk_array">
<item>ATK</item>
<item>STR</item>
<item>CON</item>
<item>DEX</item>
<item>INT</item>
<item>WIS</item>
<item>CHA</item>
</string-array>
<string-array name="def_array">
<item>DEF</item>
<item>AC</item>
<item>FORT</item>
<item>REF</item>
<item>WILL</item>
</string-array>
</resources> </resources>

View file

@ -13,4 +13,10 @@
<!--<item name="colorDivider">@color/divider</item>--> <!--<item name="colorDivider">@color/divider</item>-->
</style> </style>
<!-- TODO: fix-->
<style name="MaterialButton" parent="@android:style/Widget.Button">
<item name="android:textColor">@color/primary</item>
<item name="android:background">@android:color/transparent</item>
</style>
</resources> </resources>