Persistance
Thomas Chazot 2 years ago
parent 7868092e56
commit 821982fb99

@ -14,6 +14,7 @@ import LoaderMatchApi from './src/services/matchServices/loaderMatchApi'
import SaverMatchApi from './src/services/matchServices/saverMatchApi'
import LoaderGameApi from './src/services/gameService/loaderGameApi'
import ManagerGame from './src/services/gameService/managerGame'
import { Text } from 'react-native'
export const MANAGER_USER = new ManagerUser(new LoaderUserApi, new FakeSaverUser);
@ -25,9 +26,14 @@ export const MANAGER_GAME = new ManagerGame(new LoaderGameApi);
export default function App() {
return (
<Text>CC</Text>
/*
<Provider store={store}>
<MainTabNavigator/>
</Provider>
*/
);
}

@ -7,7 +7,7 @@ module.exports = function(api) {
],
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript', '@babel/preset-react'
'@babel/preset-typescript', '@babel/preset-react',
],
};
};

@ -1,7 +1,5 @@
import React from 'react'
import App from './App'
import store from './src/redux/store'
import { Provider } from 'react-redux'
// export for others scripts to use
@ -9,10 +7,5 @@ import { Provider } from 'react-redux'
export default function Index(){
return(
<App/>
/*
<Provider store={store}>
<App />
</Provider>
*/
)
}

@ -21,7 +21,7 @@ let points=0;
function CookieClicker(props: { navigation: any}){
const { navigation } = props
const GAMING_TIME=45;
const GAMING_TIME=120;
const setUser = useUserStore((state) => state.setUser);

@ -12,6 +12,12 @@ interface GameState {
tabGame: Game[] | undefined;
setTabGame: (tabGame: Game[]) => void;
resetTabGame: () => void;
tabGameSolo: Game[] | undefined;
setTabGameSolo: (tabGame: Game[]) => void;
resetTabGameSolo: () => void;
tabGameMulti: Game[] | undefined;
setTabGameMulti: (tabGame: Game[]) => void;
resetTabGameMulti: () => void;
}
// Define store data and methods
@ -19,5 +25,11 @@ export const useGameStore = create<GameState>()((set, get) => ({
tabGame: undefined,
setTabGame: (tabGame) => set((state) => ({ tabGame: tabGame })),
resetTabGame: () => set((state) => ({ tabGame: undefined })),
tabGameSolo: undefined,
setTabGameSolo: (tabGame) => set((state) => ({ tabGameSolo: tabGame })),
resetTabGameSolo: () => set((state) => ({ tabGameSolo: undefined })),
tabGameMulti: undefined,
setTabGameMulti: (tabGame) => set((state) => ({ tabGameMulti: tabGame })),
resetTabGameMulti: () => set((state) => ({ tabGameMulti: undefined })),
}));

@ -20,7 +20,6 @@ let tabConv:Conversation[]=[];
function GameChoice(props: { navigation: any}) {
const { navigation} = props
console.log(MANAGER_GAME.getTabGame());
return (
<View style={stylesScreen.container}>
<TopBar
@ -37,7 +36,7 @@ function GameChoice(props: { navigation: any}) {
</View>
<BotBar
nav={navigation}
state='Store'
state='Home'
/>
</View>
);

@ -8,6 +8,9 @@ import { Conversation } from '../core/conversation';
import { ButtonGameTypeChoice } from '../components/ButtonGameTypeChoice';
import { MANAGER_GAME } from '../../App';
import { useGameStore } from '../context/gameContext';
import { GameSolo } from '../core/gameSolo';
import { Game } from '../core/game';
import game from '../testGameSolo';
@ -18,20 +21,78 @@ function Home(props: { navigation: any; }) {
const { navigation } = props
const setTabGame = useGameStore((state) => state.setTabGame);
const setTabGameSolo = useGameStore((state) => state.setTabGameSolo);
const setTabGameMulti = useGameStore((state) => state.setTabGameMulti);
const handleGame = useCallback(async () => {
let tmp=MANAGER_GAME.getTabGame();
/*
const handleGame = useCallback(async (typeJeu: string) => {
switch(typeJeu){
case 'solo':
let tabSolo:Game[]=[]
let tmp=MANAGER_GAME.getTabGameSolo();
if (tmp==null){
let tabAll=MANAGER_GAME.getTabGame();
if (tabAll==null){
await MANAGER_GAME.getLoaderGame().loadAllGame().then((res) => {
MANAGER_GAME.setTabGame(res);
setTabGame(res);
});
}
tabAll?.forEach(game =>{
if (game.getNbPlayerMax()==1){
tabSolo.push(game);
}
})
MANAGER_GAME.setTabGameSolo(tabSolo);
setTabGameSolo(tabSolo);
navigation.navigate('GameChoiceTab')
}
else{
navigation.navigate('GameChoiceTab')
}
case 'multi':
let tabMulti:Game[]=[]
let tkt=MANAGER_GAME.getTabGameSolo();
if (tkt==null){
let tabAll=MANAGER_GAME.getTabGame();
if (tabAll==null){
await MANAGER_GAME.getLoaderGame().loadAllGame().then((res) => {
MANAGER_GAME.setTabGame(res);
setTabGame(res);
});
}
tabAll?.forEach(game =>{
if (game.getNbPlayerMax()==1){
tabSolo.push(game);
}
})
MANAGER_GAME.setTabGameMulti(tabMulti);
setTabGameMulti(tabMulti);
navigation.navigate('GameChoiceTab')
}
else{
navigation.navigate('GameChoiceTab')
}
}
}, []);
*/
const handleGame = useCallback(async (typeJeu: string) => {
let tmp=MANAGER_GAME.getTabGame();
if (tmp==null){
await MANAGER_GAME.getLoaderGame().loadAllGame().then((res) => {
MANAGER_GAME.setTabGame(res);
setTabGame(res);
navigation.navigate('GameChoiceTab')
});
}
else{
navigation.navigate('GameChoiceTab')
}
}, []);
return (
<View style={stylesScreen.container}>
@ -42,11 +103,11 @@ function Home(props: { navigation: any; }) {
<View style={stylesScreen.bodyCenter}>
<ButtonGameTypeChoice
title='Jouer Seul'
onPress={() => {handleGame()}}
onPress={() => {handleGame("solo")}}
/>
<ButtonGameTypeChoice
title='Défier mes amis'
onPress={() => handleGame()}
onPress={() => handleGame("multi")}
/>
</View>
<BotBar

@ -38,9 +38,7 @@ function SignIn(props: { navigation: any; }) {
setUser(MANAGER_USER.getCurrentUser());
navigation.navigate('HomeTab');
}
else{
console.log("wesh c'est null");
}
});
}, []);

@ -24,9 +24,7 @@ export default class LoaderGameApi implements ILoaderGame{
map.set(300,150);
map.set(450,1000);
const cookieClicker= new GameSolo(1, "Cookie Clicker", "https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/ImagesJeux/Pong.png", "/Games/CookieClicker/cookieClicker.tsx", 1, 1, map);
const test= new GameSolo(1, "Test", "https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/ImagesJeux/Pendu.jpg", "/Games/CookieClicker/cookieClicker.tsx", 1, 1, map);
tab=[cookieClicker, test];
console.log(tab);
tab=[cookieClicker];
});
return tab;

@ -5,6 +5,10 @@ export default class ManagerGame{
private tabGame: Game[] | null=null;
private tabGameSolo: Game[] | null=null;
private tabGameMulti: Game[] | null=null;
private loaderGame: ILoaderGame;
constructor(loader:ILoaderGame){
@ -19,6 +23,22 @@ export default class ManagerGame{
this.tabGame=g;
}
getTabGameSolo(){
return this.tabGame;
}
setTabGameSolo(g:Game[] | null){
this.tabGameSolo=g;
}
getTabGameMulti(){
return this.tabGameMulti;
}
setTabGameMulti(g:Game[] | null){
this.tabGameMulti=g;
}
getLoaderGame(){
return this.loaderGame;
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save