Add female trainer and male rival
This commit is contained in:
1 parent
806c33d009
commit
e62bb6e225
9 files changed
+220
-69
No files matched your search
@@ -31,6 +31,12 @@ export enum GameDataType {
|
||||
SETTINGS
|
||||
}
|
||||
|
||||
export enum PlayerGender {
|
||||
UNSET,
|
||||
MALE,
|
||||
FEMALE
|
||||
}
|
||||
|
||||
export function getDataTypeKey(dataType: GameDataType): string {
|
||||
switch (dataType) {
|
||||
case GameDataType.SYSTEM:
|
||||
@@ -45,6 +51,7 @@ export function getDataTypeKey(dataType: GameDataType): string {
|
||||
interface SystemSaveData {
|
||||
trainerId: integer;
|
||||
secretId: integer;
|
||||
gender: PlayerGender;
|
||||
dexData: DexData;
|
||||
gameStats: GameStats;
|
||||
unlocks: Unlocks;
|
||||
@@ -136,6 +143,8 @@ export class GameData {
|
||||
|
||||
public trainerId: integer;
|
||||
public secretId: integer;
|
||||
|
||||
public gender: PlayerGender;
|
||||
|
||||
public dexData: DexData;
|
||||
private defaultDexData: DexData;
|
||||
@@ -185,6 +194,7 @@ export class GameData {
|
||||
const data: SystemSaveData = {
|
||||
trainerId: this.trainerId,
|
||||
secretId: this.secretId,
|
||||
gender: this.gender,
|
||||
dexData: this.dexData,
|
||||
gameStats: this.gameStats,
|
||||
unlocks: this.unlocks,
|
||||
@@ -239,6 +249,10 @@ export class GameData {
|
||||
this.trainerId = systemData.trainerId;
|
||||
this.secretId = systemData.secretId;
|
||||
|
||||
this.gender = systemData.gender;
|
||||
|
||||
this.saveSetting(Setting.Player_Gender, systemData.gender === PlayerGender.FEMALE ? 1 : 0);
|
||||
|
||||
if (systemData.gameStats)
|
||||
this.gameStats = systemData.gameStats;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import BattleScene from "../battle-scene";
|
||||
import { updateWindowType } from "../ui/window";
|
||||
import { PlayerGender } from "./game-data";
|
||||
|
||||
export enum Setting {
|
||||
Game_Speed = "GAME_SPEED",
|
||||
@@ -8,6 +9,7 @@ export enum Setting {
|
||||
SE_Volume = "SE_VOLUME",
|
||||
Show_Stats_on_Level_Up = "SHOW_LEVEL_UP_STATS",
|
||||
Window_Type = "WINDOW_TYPE",
|
||||
Player_Gender = "PLAYER_GENDER",
|
||||
Touch_Controls = "TOUCH_CONTROLS",
|
||||
Vibration = "VIBRATION"
|
||||
}
|
||||
@@ -27,6 +29,7 @@ export const settingOptions: SettingOptions = {
|
||||
[Setting.SE_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute'),
|
||||
[Setting.Show_Stats_on_Level_Up]: [ 'Off', 'On' ],
|
||||
[Setting.Window_Type]: new Array(4).fill(null).map((_, i) => (i + 1).toString()),
|
||||
[Setting.Player_Gender]: [ 'Boy', 'Girl' ],
|
||||
[Setting.Touch_Controls]: [ 'Auto', 'Disabled' ],
|
||||
[Setting.Vibration]: [ 'Auto', 'Disabled' ]
|
||||
};
|
||||
@@ -38,6 +41,7 @@ export const settingDefaults: SettingDefaults = {
|
||||
[Setting.SE_Volume]: 10,
|
||||
[Setting.Show_Stats_on_Level_Up]: 1,
|
||||
[Setting.Window_Type]: 0,
|
||||
[Setting.Player_Gender]: 0,
|
||||
[Setting.Touch_Controls]: 0,
|
||||
[Setting.Vibration]: 0
|
||||
};
|
||||
@@ -65,6 +69,14 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
|
||||
case Setting.Window_Type:
|
||||
updateWindowType(scene, parseInt(settingOptions[setting][value]));
|
||||
break;
|
||||
case Setting.Player_Gender:
|
||||
if (scene.gameData) {
|
||||
const female = settingOptions[setting][value] === 'Girl';
|
||||
scene.gameData.gender = female ? PlayerGender.FEMALE : PlayerGender.MALE;
|
||||
scene.trainer.setTexture(scene.trainer.texture.key.replace(female ? 'm' : 'f', female ? 'f' : 'm'));
|
||||
} else
|
||||
return false;
|
||||
break;
|
||||
case Setting.Touch_Controls:
|
||||
scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen();
|
||||
const touchControls = document.getElementById('touchControls');
|
||||
|
||||
Reference in new issue
Block a user