Various fixez
This commit is contained in:
parent
91e8eed8b0
commit
7cc93f960d
8 changed files with 183 additions and 47 deletions
|
@ -9,6 +9,7 @@
|
||||||
<facet type="android" name="Android">
|
<facet type="android" name="Android">
|
||||||
<configuration>
|
<configuration>
|
||||||
<option name="SELECTED_BUILD_VARIANT" value="debug" />
|
<option name="SELECTED_BUILD_VARIANT" value="debug" />
|
||||||
|
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
|
||||||
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
|
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
|
||||||
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
|
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
|
||||||
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
|
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
|
||||||
|
|
|
@ -5,13 +5,16 @@ import android.support.v7.app.ActionBarActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
import android.widget.Spinner;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
|
||||||
public class Introduction extends ActionBarActivity {
|
public class Introduction extends ActionBarActivity {
|
||||||
|
|
||||||
EditText name, className, raceName, level, maxPg, curativeEfforts, maxCurativeEfforts, pgE;
|
EditText name, className, raceName, level, maxPg, curativeEfforts, maxCurativeEfforts, pgE;
|
||||||
|
Spinner classSpinner, raceSpinner;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -26,6 +29,24 @@ public class Introduction extends ActionBarActivity {
|
||||||
curativeEfforts = (EditText) findViewById(R.id.editEffortIntro);
|
curativeEfforts = (EditText) findViewById(R.id.editEffortIntro);
|
||||||
maxCurativeEfforts = (EditText) findViewById(R.id.editMaxEffortIntro);
|
maxCurativeEfforts = (EditText) findViewById(R.id.editMaxEffortIntro);
|
||||||
pgE = (EditText) findViewById(R.id.editPgIntro);
|
pgE = (EditText) findViewById(R.id.editPgIntro);
|
||||||
|
|
||||||
|
classSpinner = (Spinner) findViewById(R.id.classSpinner);
|
||||||
|
classSpinner.setAdapter(
|
||||||
|
new ArrayAdapter<String>(
|
||||||
|
this,
|
||||||
|
android.R.layout.simple_spinner_item,
|
||||||
|
Player.classStrings
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
raceSpinner = (Spinner) findViewById(R.id.raceSpinner);
|
||||||
|
raceSpinner.setAdapter(
|
||||||
|
new ArrayAdapter<String>(
|
||||||
|
this,
|
||||||
|
android.R.layout.simple_spinner_item,
|
||||||
|
Player.raceStrings
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ public class MainActivity extends ActionBarActivity
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
restoreData();
|
|
||||||
undo = false;
|
undo = false;
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
|
@ -74,25 +73,32 @@ public class MainActivity extends ActionBarActivity
|
||||||
restoreData();
|
restoreData();
|
||||||
return true;
|
return true;
|
||||||
} else if (id == R.id.action_undo) {
|
} else if (id == R.id.action_undo) {
|
||||||
String message = "";
|
undo();
|
||||||
if(undoObject == CURRENT_PG){
|
|
||||||
((Button) findViewById(R.id.pgCurrent)).setText(String.valueOf(undoPreviousValue));
|
|
||||||
undoObject = NULL;
|
|
||||||
message = getString(R.string.action_undo_current_pg);
|
|
||||||
}
|
|
||||||
Toast.makeText(
|
|
||||||
getApplicationContext(),
|
|
||||||
message,
|
|
||||||
Toast.LENGTH_LONG
|
|
||||||
).show();
|
|
||||||
undo = false;
|
|
||||||
invalidateOptionsMenu();
|
|
||||||
return true;
|
return true;
|
||||||
} else if (id == R.id.action_calendar_activity) {
|
} else if (id == R.id.action_reset) {
|
||||||
Intent intent = new Intent(Intent.ACTION_EDIT);
|
|
||||||
intent.setType("vnd.android.cursor.item/event");
|
AlertDialog.Builder alert = new AlertDialog.Builder(this);
|
||||||
intent.putExtra("title", R.string.dungeons_and_dragons);
|
alert.setTitle(getString(R.string.reset_confirmation_title));
|
||||||
startActivity(intent);
|
alert.setMessage(getString(R.string.reset_confirmation));
|
||||||
|
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
Toast.makeText(
|
||||||
|
getApplicationContext(),
|
||||||
|
R.string.message_reset,
|
||||||
|
Toast.LENGTH_LONG
|
||||||
|
).show();
|
||||||
|
getSharedPreferences("basics", MODE_PRIVATE).edit().clear().apply();
|
||||||
|
restoreData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
// Canceled.
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
alert.show();
|
||||||
} else if (id == R.id.action_save) {
|
} else if (id == R.id.action_save) {
|
||||||
saveData();
|
saveData();
|
||||||
} else if (id == R.id.action_load) {
|
} else if (id == R.id.action_load) {
|
||||||
|
@ -118,6 +124,7 @@ public class MainActivity extends ActionBarActivity
|
||||||
super.onResume();
|
super.onResume();
|
||||||
Log.e("UTIL", "resume");
|
Log.e("UTIL", "resume");
|
||||||
restoreData();
|
restoreData();
|
||||||
|
updateCurativeString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -129,7 +136,6 @@ public class MainActivity extends ActionBarActivity
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
saveData();
|
|
||||||
Log.e("UTIL", "destroy");
|
Log.e("UTIL", "destroy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,13 +156,7 @@ public class MainActivity extends ActionBarActivity
|
||||||
Toast.LENGTH_LONG
|
Toast.LENGTH_LONG
|
||||||
).show();
|
).show();
|
||||||
}
|
}
|
||||||
((TextView) findViewById(R.id.curativeEffortsText)).setText(
|
updateCurativeString();
|
||||||
getString(R.string.curative_display_text1) + " " +
|
|
||||||
player.getCurativeEfforts() + " " +
|
|
||||||
getString(R.string.curative_display_text2) + " " +
|
|
||||||
player.getMaxCurativeEfforts() + " " +
|
|
||||||
getString(R.string.curative_display_text3)
|
|
||||||
);
|
|
||||||
healthStatusCheck();
|
healthStatusCheck();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,10 +183,10 @@ public class MainActivity extends ActionBarActivity
|
||||||
String.valueOf(player.getPg())
|
String.valueOf(player.getPg())
|
||||||
);
|
);
|
||||||
//finished correctly, then apply values to undo's
|
//finished correctly, then apply values to undo's
|
||||||
healthStatusCheck();
|
|
||||||
undo = true;
|
undo = true;
|
||||||
undoPreviousValue = preValue;
|
undoPreviousValue = preValue;
|
||||||
undoObject = CURRENT_PG;
|
undoObject = CURRENT_PG;
|
||||||
|
healthStatusCheck();
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {}
|
||||||
}
|
}
|
||||||
|
@ -201,23 +201,48 @@ public class MainActivity extends ActionBarActivity
|
||||||
alert.show();
|
alert.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void healthStatusCheck(){
|
private void healthStatusCheck() {
|
||||||
int status = player.getState();
|
int status = player.getState();
|
||||||
Button pg = (Button) findViewById(R.id.pgCurrent);
|
Button pg = (Button) findViewById(R.id.pgCurrent);
|
||||||
pg.setText(String.valueOf(player.getPg()));
|
pg.setText(String.valueOf(player.getPg()));
|
||||||
if (status == Player.MUERTO) {
|
if (status == Player.MUERTO) {
|
||||||
pg.setTextColor(Color.BLACK);
|
pg.setTextColor(Color.BLACK);
|
||||||
pg.setBackgroundColor(Color.RED);
|
pg.setBackgroundColor(Color.RED);
|
||||||
Toast.makeText(
|
|
||||||
getApplicationContext(),
|
AlertDialog.Builder alert = new AlertDialog.Builder(this);
|
||||||
R.string.message_death,
|
alert.setTitle(getString(R.string.reset_confirmation_title));
|
||||||
Toast.LENGTH_LONG
|
alert.setMessage(getString(R.string.reset_confirmation));
|
||||||
).show();
|
alert.setPositiveButton(R.string.action_undo, new DialogInterface.OnClickListener() {
|
||||||
} else if (status == Player.DEBILITADO)
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
undo();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
alert.setNegativeButton(R.string.die, new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
Toast.makeText(
|
||||||
|
getApplicationContext(),
|
||||||
|
R.string.message_death,
|
||||||
|
Toast.LENGTH_LONG
|
||||||
|
).show();
|
||||||
|
getSharedPreferences("basics", MODE_PRIVATE).edit().clear().apply();
|
||||||
|
restoreData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
alert.show();
|
||||||
|
} else if (status == Player.DEBILITADO) {
|
||||||
|
pg.setBackgroundColor(android.R.drawable.btn_default);
|
||||||
pg.setTextColor(Color.RED);
|
pg.setTextColor(Color.RED);
|
||||||
else if (status == Player.MALHERIDO)
|
} else if (status == Player.MALHERIDO) {
|
||||||
|
pg.setBackgroundColor(android.R.drawable.btn_default);
|
||||||
pg.setTextColor(Color.YELLOW);
|
pg.setTextColor(Color.YELLOW);
|
||||||
else pg.setTextColor(getResources().getColor(R.color.abc_primary_text_material_dark));
|
} else {
|
||||||
|
pg.setTextColor(getResources().getColor(
|
||||||
|
R.color.abc_primary_text_material_dark
|
||||||
|
));
|
||||||
|
pg.setBackgroundColor(android.R.drawable.btn_default);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,7 +264,16 @@ public class MainActivity extends ActionBarActivity
|
||||||
new int[18],
|
new int[18],
|
||||||
new Power[4]);
|
new Power[4]);
|
||||||
} else {
|
} else {
|
||||||
|
player.setName(p.getString("playerName", getString(R.string.adventurer_name)));
|
||||||
|
player.setClassName(p.getString("className", getString(R.string.class_name)));
|
||||||
|
player.setRaceName(p.getString("raceName", getString(R.string.race_name)));
|
||||||
|
player.setLevel(p.getInt("level", 1));
|
||||||
|
player.setMaxPg(p.getInt("maxPg", 15));
|
||||||
|
player.setPg(p.getInt("pg", 15));
|
||||||
|
healthStatusCheck();
|
||||||
|
player.setMaxCurativeEfforts(p.getInt("maxCurativeEfforts", 5));
|
||||||
|
player.setCurativeEffort(p.getInt("curativeEfforts", 5));
|
||||||
|
updateCurativeString();
|
||||||
}
|
}
|
||||||
//set restored values to the respective fields
|
//set restored values to the respective fields
|
||||||
((TextView) findViewById(R.id.nameText)).setText(player.getName());
|
((TextView) findViewById(R.id.nameText)).setText(player.getName());
|
||||||
|
@ -261,4 +295,31 @@ public class MainActivity extends ActionBarActivity
|
||||||
.putInt("curativeEfforts", player.getCurativeEfforts())
|
.putInt("curativeEfforts", player.getCurativeEfforts())
|
||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateCurativeString() {
|
||||||
|
((TextView) findViewById(R.id.curativeEffortsText)).setText(
|
||||||
|
getString(R.string.curative_display_text1) + " " +
|
||||||
|
player.getCurativeEfforts() + " " +
|
||||||
|
getString(R.string.curative_display_text2) + " " +
|
||||||
|
player.getMaxCurativeEfforts() + " " +
|
||||||
|
getString(R.string.curative_display_text3)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void undo() {
|
||||||
|
String message = "";
|
||||||
|
if(undoObject == CURRENT_PG){
|
||||||
|
((Button) findViewById(R.id.pgCurrent)).setText(String.valueOf(undoPreviousValue));
|
||||||
|
player.setPg(undoPreviousValue);
|
||||||
|
undoObject = NULL;
|
||||||
|
message = getString(R.string.action_undo_current_pg);
|
||||||
|
}
|
||||||
|
Toast.makeText(
|
||||||
|
getApplicationContext(),
|
||||||
|
message,
|
||||||
|
Toast.LENGTH_LONG
|
||||||
|
).show();
|
||||||
|
undo = false;
|
||||||
|
invalidateOptionsMenu();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,21 @@
|
||||||
package com.ddns.kauron.dungeonmanager;
|
package com.ddns.kauron.dungeonmanager;
|
||||||
|
|
||||||
public class Player {
|
public class Player {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Names for the classes
|
||||||
|
*/
|
||||||
|
public static final String[] classStrings = new String[] {
|
||||||
|
"Selecciona una clase","Brujo", "Clérigo", "Señor de la guerra"
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Names for the races
|
||||||
|
*/
|
||||||
|
public static final String[] raceStrings = new String[] {
|
||||||
|
"Selecciona una raza", "Enano", "Elfo", "Tiflin", "Humano", "Mediano"
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Values for attack
|
* Values for attack
|
||||||
*/
|
*/
|
||||||
|
@ -36,11 +51,14 @@ public class Player {
|
||||||
private int pg, maxPg;
|
private int pg, maxPg;
|
||||||
private int state;
|
private int state;
|
||||||
private int curativeEfforts, maxCurativeEfforts;
|
private int curativeEfforts, maxCurativeEfforts;
|
||||||
private int[] atk, def, abilities;
|
//TODO: convert race and class to integer values
|
||||||
private Power[] powers;
|
private int classInt, raceInt;
|
||||||
private String name, className, raceName;
|
private String name, className, raceName;
|
||||||
private int level;
|
private int level;
|
||||||
|
|
||||||
|
private int[] atk, def, abilities;
|
||||||
|
private Power[] powers;
|
||||||
|
|
||||||
|
|
||||||
public Player(String name, String className, String raceName, int level, int maxPg, int pg,
|
public Player(String name, String className, String raceName, int level, int maxPg, int pg,
|
||||||
int maxCurativeEfforts, int curativeEfforts, int[] atk, int[] def, int[] abilities, Power[] powers){
|
int maxCurativeEfforts, int curativeEfforts, int[] atk, int[] def, int[] abilities, Power[] powers){
|
||||||
|
@ -61,17 +79,19 @@ public class Player {
|
||||||
|
|
||||||
|
|
||||||
public int getMaxCurativeEfforts() {return maxCurativeEfforts;}
|
public int getMaxCurativeEfforts() {return maxCurativeEfforts;}
|
||||||
|
public void setMaxCurativeEfforts(int maxCurativeEfforts) {this.maxCurativeEfforts = maxCurativeEfforts;}
|
||||||
|
|
||||||
public int getCurativeEfforts() {return curativeEfforts;}
|
public int getCurativeEfforts() {return curativeEfforts;}
|
||||||
public void setCurativeEffort(int curativeEfforts) {this.curativeEfforts = curativeEfforts;}
|
public void setCurativeEffort(int curativeEfforts) {this.curativeEfforts = curativeEfforts;}
|
||||||
|
|
||||||
public int getLevel() {return level;}
|
public int getLevel() {return level;}
|
||||||
|
public void setLevel(int level) {this.level = level;}
|
||||||
|
|
||||||
public int getMaxPg() {return maxPg;}
|
public int getMaxPg() {return maxPg;}
|
||||||
public void setMaxPg(int pg) {this.pg = pg;}
|
public void setMaxPg(int maxPg) {this.maxPg = maxPg;}
|
||||||
|
|
||||||
public int getPg() {return pg;}
|
public int getPg() {return pg;}
|
||||||
public void setPg(int pg) {this.pg = pg;}
|
public void setPg(int pg) {this.pg = pg; setState();}
|
||||||
public void losePg(int damage) {
|
public void losePg(int damage) {
|
||||||
pg -= damage;
|
pg -= damage;
|
||||||
setState();
|
setState();
|
||||||
|
@ -102,9 +122,13 @@ public class Player {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {return name;}
|
public String getName() {return name;}
|
||||||
public String getClassName() {return className;}
|
public void setName(String name) {this.name = name;}
|
||||||
public String getRaceName() {return raceName;}
|
|
||||||
|
|
||||||
|
public String getClassName() {return className;}
|
||||||
|
public void setClassName(String className) {this.className = className;}
|
||||||
|
|
||||||
|
public String getRaceName() {return raceName;}
|
||||||
|
public void setRaceName(String raceName) {this.raceName = raceName;}
|
||||||
|
|
||||||
public void rest(boolean length) {
|
public void rest(boolean length) {
|
||||||
if(length) {
|
if(length) {
|
||||||
|
|
|
@ -100,4 +100,20 @@
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:hint="@string/curative_efforts" />
|
android:hint="@string/curative_efforts" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/classSpinner"
|
||||||
|
android:layout_below="@+id/editPgIntro"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_alignParentStart="true" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/raceSpinner"
|
||||||
|
android:layout_below="@+id/classSpinner"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_alignParentStart="true" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -30,8 +30,8 @@
|
||||||
app:showAsAction="ifRoom"
|
app:showAsAction="ifRoom"
|
||||||
android:icon="@drawable/ic_action_edit"/>
|
android:icon="@drawable/ic_action_edit"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_calendar_activity"
|
android:id="@+id/action_reset"
|
||||||
android:title="@string/action_calendar_activity"
|
android:title="@string/action_reset"
|
||||||
android:orderInCategory="30"
|
android:orderInCategory="30"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
|
||||||
|
|
|
@ -32,4 +32,13 @@
|
||||||
<string name="action_load">Cargar</string>
|
<string name="action_load">Cargar</string>
|
||||||
<string name="curative_efforts">Esfuerzos curativos</string>
|
<string name="curative_efforts">Esfuerzos curativos</string>
|
||||||
<string name="pg">PG</string>
|
<string name="pg">PG</string>
|
||||||
|
<string name="action_reset">Borrar datos</string>
|
||||||
|
<string name="curative_display_text1">Tienes</string>
|
||||||
|
<string name="curative_display_text2">de</string>
|
||||||
|
<string name="curative_display_text3">esfuerzos curativos diarios</string>
|
||||||
|
<string name="die">Morir</string>
|
||||||
|
<string name="message_death">Has muerto</string>
|
||||||
|
<string name="message_reset">Los datos han sido borrados</string>
|
||||||
|
<string name="reset_confirmation">Todos los datos se perderán irrevocablemente</string>
|
||||||
|
<string name="reset_confirmation_title">¿Estás seguro?</string>
|
||||||
</resources>
|
</resources>
|
|
@ -5,6 +5,7 @@
|
||||||
<string name="action_cure">Cure</string>
|
<string name="action_cure">Cure</string>
|
||||||
<string name="action_undo">Undo</string>
|
<string name="action_undo">Undo</string>
|
||||||
<string name="pg">PG</string>
|
<string name="pg">PG</string>
|
||||||
|
<string name="die">Die</string>
|
||||||
<string name="curative_efforts">Curative efforts</string>
|
<string name="curative_efforts">Curative efforts</string>
|
||||||
<string name="curative_display_text1">You have</string>
|
<string name="curative_display_text1">You have</string>
|
||||||
<string name="curative_display_text2">out of</string>
|
<string name="curative_display_text2">out of</string>
|
||||||
|
@ -12,7 +13,10 @@
|
||||||
<string name="action_load">Load</string>
|
<string name="action_load">Load</string>
|
||||||
<string name="dungeons_and_dragons">Dungeons and Dragons</string>
|
<string name="dungeons_and_dragons">Dungeons and Dragons</string>
|
||||||
<string name="action_save">Save</string>
|
<string name="action_save">Save</string>
|
||||||
<string name="action_calendar_activity">Create event</string>
|
<string name="action_reset">Reset</string>
|
||||||
|
<string name="message_reset">All the data has been cleared</string>
|
||||||
|
<string name="reset_confirmation_title">Are you sure?</string>
|
||||||
|
<string name="reset_confirmation">All data will be lost!</string>
|
||||||
<string name="action_undo_current_pg">Action undone</string>
|
<string name="action_undo_current_pg">Action undone</string>
|
||||||
<string name="action_edit_basics">Edit character</string>
|
<string name="action_edit_basics">Edit character</string>
|
||||||
<string name="adventurer_name">Adventurer name</string>
|
<string name="adventurer_name">Adventurer name</string>
|
||||||
|
|
Reference in a new issue