|
@ -1,17 +1,50 @@ |
|
|
import React, { useEffect } from "react"; |
|
|
import React, { useEffect, useRef } from "react"; |
|
|
|
|
|
import { useSelector } from "react-redux"; |
|
|
import { BackHandler, SafeAreaView, Text, TouchableOpacity, View } from "react-native"; |
|
|
import { BackHandler, SafeAreaView, Text, TouchableOpacity, View } from "react-native"; |
|
|
import { styles } from './styles/AppStyles'; |
|
|
import { styles } from './styles/AppStyles'; |
|
|
import Slider from "../components/Slider"; |
|
|
import Slider from "../components/Slider"; |
|
|
import { useDispatch } from "react-redux"; |
|
|
import { useDispatch } from "react-redux"; |
|
|
import {goHome, goToScores} from '../redux/actions/SystemActions'; |
|
|
import {goHome, goToScores} from '../redux/actions/SystemActions'; |
|
|
|
|
|
|
|
|
function Score(){ |
|
|
function Score(props){ |
|
|
const dispatch = useDispatch(); |
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
const userRedux = useSelector((state) => state.user); |
|
|
|
|
|
const timerScore = useRef(calculateTimerScore()); |
|
|
|
|
|
const answerScore = useRef(calculateAnswerScore()); |
|
|
|
|
|
const finalScore = useRef(calculateFinalScore(timerScore.current, answerScore.current)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
BackHandler.addEventListener('hardwareBackPress', () => {return true}); |
|
|
BackHandler.addEventListener('hardwareBackPress', () => {return true}); |
|
|
}, []) |
|
|
}, []) |
|
|
|
|
|
|
|
|
|
|
|
function calculateTimerScore(user = userRedux){ |
|
|
|
|
|
if (user !== null){ |
|
|
|
|
|
let score = (60 - user.lastGameTime); |
|
|
|
|
|
if (score < 0) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} else { |
|
|
|
|
|
return score; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function calculateAnswerScore(user = userRedux) { |
|
|
|
|
|
if (user !== null) { |
|
|
|
|
|
let score = (user.lastGameAnswers * 1000); |
|
|
|
|
|
return score; |
|
|
|
|
|
} else { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function calculateFinalScore(timerScore, answerScore) { |
|
|
|
|
|
let score = timerScore + answerScore; |
|
|
|
|
|
return score; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
function onPressMainMenu(){ |
|
|
function onPressMainMenu(){ |
|
|
dispatch(goHome()); |
|
|
dispatch(goHome()); |
|
|
} |
|
|
} |
|
@ -30,7 +63,7 @@ function Score(){ |
|
|
TIME |
|
|
TIME |
|
|
</Text> |
|
|
</Text> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
{'(60 - 9.500) X 1000 = 50500'} |
|
|
{'(60 - ' + userRedux.lastGameTime + ') X 1000 = ' + timerScore.current} |
|
|
</Text> |
|
|
</Text> |
|
|
</Slider> |
|
|
</Slider> |
|
|
<Slider origin={400} duration={750} delay={1000}> |
|
|
<Slider origin={400} duration={750} delay={1000}> |
|
@ -38,7 +71,7 @@ function Score(){ |
|
|
ANSWERS |
|
|
ANSWERS |
|
|
</Text> |
|
|
</Text> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
{'20 X 1000 = 20000'} |
|
|
{'('+ userRedux.lastGameAnswers + ') X 1000 = ' + answerScore.current} |
|
|
</Text> |
|
|
</Text> |
|
|
</Slider> |
|
|
</Slider> |
|
|
|
|
|
|
|
@ -47,7 +80,7 @@ function Score(){ |
|
|
TOTAL |
|
|
TOTAL |
|
|
</Text> |
|
|
</Text> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
<Text style={[styles.darkText, styles.mediumFont, styles.boldText, styles.centeredText]}> |
|
|
{'70500'} |
|
|
{finalScore.current} |
|
|
</Text> |
|
|
</Text> |
|
|
</Slider> |
|
|
</Slider> |
|
|
</View> |
|
|
</View> |
|
|