Ajout du cookie clicker, Alban relie au reste stp
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
parent
d779403b62
commit
570ade854a
@ -0,0 +1,216 @@
|
||||
import React, { Component, useEffect, useState } from 'react'
|
||||
import {
|
||||
StyleSheet,
|
||||
TouchableOpacity,
|
||||
Text,
|
||||
View,
|
||||
Pressable,
|
||||
Image,
|
||||
TouchableHighlight,
|
||||
Alert,
|
||||
} from 'react-native'
|
||||
import { MANAGER_USER } from '../../../App';
|
||||
import { useUserStore } from '../../context/userContext';
|
||||
import { Match } from '../../core/match';
|
||||
import { User } from '../../core/User/user';
|
||||
|
||||
|
||||
function CookieClicker(props: { navigation: any, match:Match}){
|
||||
|
||||
const GAMING_TIME=15;
|
||||
|
||||
const setUser = useUserStore((state) => state.setUser);
|
||||
|
||||
const nav = props.navigation;
|
||||
const match=props.match;
|
||||
|
||||
const [count, setCount] = useState(0);
|
||||
const [money, setMoney] = useState(0);
|
||||
const [clickSpeed, setClickSpeed] = useState(1);
|
||||
const [grandmaCost, setGrandmaCost] = useState(10);
|
||||
const [farmCost, setFarmCost] = useState(250);
|
||||
const [factoryCost, setFactoryCost] = useState(2000);
|
||||
const [wizardCost, setWizardCost] = useState(25000);
|
||||
const [portalCost, setPortalCost] = useState(200000);
|
||||
|
||||
const [timer, setTimer] = useState(GAMING_TIME);
|
||||
|
||||
|
||||
function onPressCookie(){
|
||||
setMoney(money+clickSpeed);
|
||||
setCount(count+clickSpeed);
|
||||
}
|
||||
|
||||
function onPressGrandma(){
|
||||
if (money>=grandmaCost){
|
||||
setMoney(money-grandmaCost);
|
||||
setClickSpeed(clickSpeed+1);
|
||||
setGrandmaCost(grandmaCost+10);
|
||||
}
|
||||
}
|
||||
|
||||
function onPressFarm(){
|
||||
if (money>=farmCost){
|
||||
setMoney(money-farmCost);
|
||||
setClickSpeed(clickSpeed+25);
|
||||
setFarmCost(farmCost+250);
|
||||
}
|
||||
}
|
||||
|
||||
function onPressFactory(){
|
||||
if (money>=factoryCost){
|
||||
setMoney(money-factoryCost);
|
||||
setClickSpeed(clickSpeed+200);
|
||||
setFactoryCost(factoryCost+2000);
|
||||
}
|
||||
}
|
||||
|
||||
function onPressWizard(){
|
||||
if (money>=wizardCost){
|
||||
setMoney(money-wizardCost);
|
||||
setClickSpeed(clickSpeed+2500);
|
||||
setWizardCost(wizardCost+25000);
|
||||
}
|
||||
}
|
||||
|
||||
function onPressPortal(){
|
||||
if (money>=portalCost){
|
||||
setMoney(money-portalCost);
|
||||
setClickSpeed(clickSpeed+20000);
|
||||
setPortalCost(portalCost+200000);
|
||||
}
|
||||
}
|
||||
|
||||
function endGame(){
|
||||
let tmp: User | null;
|
||||
tmp=MANAGER_USER.getCurrentUser();
|
||||
if (tmp!=null){
|
||||
if (match.getTabUsers().includes(tmp)){
|
||||
match.updatePostMatch(tmp, count);
|
||||
setUser(tmp);
|
||||
nav.goBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
let counter=GAMING_TIME;
|
||||
var oneSecInterval = setInterval(() => {
|
||||
setTimer(timer => timer - 1);
|
||||
counter --;
|
||||
|
||||
if (counter == 0) {
|
||||
clearInterval(oneSecInterval);
|
||||
Alert.alert("fin du jeu");
|
||||
endGame();
|
||||
}
|
||||
}, 1000);
|
||||
},[]);
|
||||
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<View >
|
||||
<Text>
|
||||
Timer: {timer}
|
||||
</Text>
|
||||
<TouchableHighlight onPress={onPressCookie} >
|
||||
<Image style={styles.photo} source={{uri: 'https://cdn-icons-png.flaticon.com/512/614/614131.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<Text>
|
||||
Argent {money}
|
||||
</Text>
|
||||
<Text>
|
||||
Points {count}
|
||||
</Text>
|
||||
</View>
|
||||
<View style={styles.containerRight}>
|
||||
<TouchableHighlight onPress={onPressGrandma}>
|
||||
<Image style={styles.photo} source={{uri: 'https://www.pngall.com/wp-content/uploads/12/Grandma-Happy-PNG-Photo.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<View>
|
||||
<Text style={styles.cout}>
|
||||
Cost {grandmaCost}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
<TouchableHighlight onPress={onPressFarm} style={styles.photo}>
|
||||
<Image style={styles.photo} source={{uri: 'https://www.pngall.com/wp-content/uploads/8/Farming-PNG-Picture.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<View>
|
||||
<Text style={styles.cout}>
|
||||
Cost {farmCost}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
<TouchableHighlight onPress={onPressFactory}>
|
||||
<Image style={styles.photo} source={{uri: 'https://cdn.pixabay.com/photo/2018/04/16/09/12/factory-3323977_960_720.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<View>
|
||||
<Text style={styles.cout}>
|
||||
Cost {factoryCost}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
<TouchableHighlight onPress={onPressWizard}>
|
||||
<Image style={styles.photo} source={{uri: 'https://www.clasher.us/images/coc/units/Wizard_Tower7.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<View>
|
||||
<Text style={styles.cout}>
|
||||
Cost {wizardCost}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
<TouchableHighlight onPress={onPressPortal}>
|
||||
<Image style={styles.photo} source={{uri: 'https://i.pinimg.com/originals/98/29/21/9829215db6f9210c0ae4e318e854cb1f.png'}}/>
|
||||
</TouchableHighlight>
|
||||
<View>
|
||||
<Text style={styles.cout}>
|
||||
Cost {portalCost}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
</View>
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
top: 5,
|
||||
margin: 10,
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
containerRight: {
|
||||
flex: 1,
|
||||
flexWrap: "wrap",
|
||||
top: 100,
|
||||
marginBottom: 20,
|
||||
left: 100,
|
||||
},
|
||||
|
||||
button: {
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#DDDDDD',
|
||||
padding: 10,
|
||||
marginBottom: 10
|
||||
},
|
||||
button2: {
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#FFDDFF',
|
||||
padding: 10,
|
||||
marginBottom: 10
|
||||
},
|
||||
photo: {
|
||||
width: 50,
|
||||
height: 50
|
||||
},
|
||||
cout: {
|
||||
marginBottom: 20
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
export default CookieClicker;
|
Loading…
Reference in new issue