Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
EmidWife-New
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2023-24-005
EmidWife-New
Commits
6e521176
Commit
6e521176
authored
May 16, 2024
by
Malsha Jayakody
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change UIs
parent
66b6c0b7
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
191 additions
and
218 deletions
+191
-218
src/screens/home/game/ChooseGame.js
src/screens/home/game/ChooseGame.js
+1
-4
src/screens/home/game/GameLevelPage.js
src/screens/home/game/GameLevelPage.js
+18
-7
src/screens/home/game/MainDetailsForm.js
src/screens/home/game/MainDetailsForm.js
+11
-36
src/screens/home/game/MainDetailsFormInSinhala.js
src/screens/home/game/MainDetailsFormInSinhala.js
+10
-38
src/screens/home/game/QuestionsInEnglish.js
src/screens/home/game/QuestionsInEnglish.js
+12
-17
src/screens/home/game/QuestionsInShinhala.js
src/screens/home/game/QuestionsInShinhala.js
+11
-15
src/screens/home/game/QuizOptions.js
src/screens/home/game/QuizOptions.js
+2
-10
src/screens/home/game/QuizScore.js
src/screens/home/game/QuizScore.js
+4
-7
src/screens/home/game/WelcomeGame.js
src/screens/home/game/WelcomeGame.js
+0
-1
src/screens/home/game/game02/level03.js
src/screens/home/game/game02/level03.js
+11
-0
src/screens/home/game/game02/level04.js
src/screens/home/game/game02/level04.js
+30
-18
src/screens/home/game/game02/level05.js
src/screens/home/game/game02/level05.js
+31
-18
src/screens/home/game/game02/level06.js
src/screens/home/game/game02/level06.js
+22
-21
src/screens/home/game/game02/level07.js
src/screens/home/game/game02/level07.js
+28
-26
No files found.
src/screens/home/game/ChooseGame.js
View file @
6e521176
/* eslint-disable react-native/no-inline-styles */
/* eslint-disable react-native/no-inline-styles */
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
{
import
{
ScrollView
,
ImageBackground
,
ImageBackground
,
Dimensions
,
Text
,
Text
,
View
,
View
,
StyleSheet
,
StyleSheet
,
TouchableOpacity
,
TouchableOpacity
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
const
ChooseGame
=
({
navigation
,
route
})
=>
{
const
ChooseGame
=
({
navigation
,
route
})
=>
{
const
{
predictedGameLevel
}
=
route
.
params
;
const
{
predictedGameLevel
}
=
route
.
params
;
...
@@ -134,7 +132,6 @@ const styles = StyleSheet.create({
...
@@ -134,7 +132,6 @@ const styles = StyleSheet.create({
brandViewText: {
brandViewText: {
color:
'
#
FFFFFF
'
,
color:
'
#
FFFFFF
'
,
fontSize: 40,
fontSize: 40,
// fontWeight:
'
bold
'
,
},
},
bottomView: {
bottomView: {
flex: 1.5,
flex: 1.5,
...
...
src/screens/home/game/GameLevelPage.js
View file @
6e521176
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
{
View
,
StyleSheet
,
TouchableOpacity
,
Text
}
from
'
react-native
'
;
import
{
View
,
StyleSheet
,
TouchableOpacity
,
Text
}
from
'
react-native
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
COLORS
,
ROUTES
}
from
'
../../../constants
'
;
const
GameLevelPage
=
({
route
,
navigation
})
=>
{
const
GameLevelPage
=
({
route
,
navigation
})
=>
{
const
{
predictedGameLevel
}
=
route
.
params
;
const
{
predictedGameLevel
}
=
route
.
params
;
...
@@ -27,17 +27,28 @@ const GameLevelPage = ({route, navigation}) => {
...
@@ -27,17 +27,28 @@ const GameLevelPage = ({route, navigation}) => {
<
/View
>
<
/View
>
<
View
style
=
{
styles
.
diamondContainer
}
>
<
View
style
=
{
styles
.
diamondContainer
}
>
<
View
style
=
{
styles
.
innerCircle
}
>
<
View
style
=
{
styles
.
innerCircle
}
>
<
Text
style
=
{
styles
.
scoreText
}
>
<
Text
{
predictedGameLevel
===
0
?
'
2
'
:
predictedGameLevel
}
style
=
{{
color
:
'
#ffffff
'
,
fontSize
:
predictedGameLevel
===
0
?
20
:
100
,
fontWeight
:
'
bold
'
,
}}
>
{
predictedGameLevel
===
0
?
'
No Depression
'
:
predictedGameLevel
}
<
/Text
>
<
/Text
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
TouchableOpacity
<
TouchableOpacity
style
=
{
styles
.
button
}
style
=
{
styles
.
button
}
onPress
=
{()
=>
onPress
=
{()
=>
{
navigation
.
navigate
(
ROUTES
.
CHOOSE_GAME
,
{
predictedGameLevel
})
if
(
predictedGameLevel
===
0
)
{
}
>
navigation
.
navigate
(
ROUTES
.
GAME_WELCOME
);
<
Text
style
=
{
styles
.
buttonText
}
>
Choose
a
Game
<
/Text
>
}
else
{
navigation
.
navigate
(
ROUTES
.
CHOOSE_GAME
,
{
predictedGameLevel
});
}
}}
>
<
Text
style
=
{
styles
.
buttonText
}
>
{
predictedGameLevel
===
0
?
'
Exit
'
:
'
Choose a Game
'
}
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/LinearGradient
>
<
/LinearGradient
>
...
...
src/screens/home/game/MainDetailsForm.js
View file @
6e521176
...
@@ -9,6 +9,7 @@ import {
...
@@ -9,6 +9,7 @@ import {
ScrollView
,
ScrollView
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
{
ROUTES
,
COLORS
}
from
'
../../../constants
'
;
import
{
ROUTES
,
COLORS
}
from
'
../../../constants
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
const
MainDetailsForm
=
({
navigation
})
=>
{
const
MainDetailsForm
=
({
navigation
})
=>
{
const
[
maritalStatus
,
setMaritalStatus
]
=
useState
(
'
single
'
);
const
[
maritalStatus
,
setMaritalStatus
]
=
useState
(
'
single
'
);
...
@@ -64,7 +65,13 @@ const MainDetailsForm = ({navigation}) => {
...
@@ -64,7 +65,13 @@ const MainDetailsForm = ({navigation}) => {
return
(
return
(
<>
<>
<
ScrollView
style
=
{
styles
.
container
}
>
<
ScrollView
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
bottomView
}
>
<
LinearGradient
style
=
{{
flex
:
1
,
width
:
'
100%
'
,
height
:
'
100%
'
,
}}
colors
=
{[
COLORS
.
light_purple
,
COLORS
.
white
,
COLORS
.
rose
]}
>
<
View
style
=
{{
padding
:
25
}}
>
<
View
style
=
{{
padding
:
25
}}
>
<
View
<
View
style
=
{{
style
=
{{
...
@@ -86,39 +93,6 @@ const MainDetailsForm = ({navigation}) => {
...
@@ -86,39 +93,6 @@ const MainDetailsForm = ({navigation}) => {
Please
answer
for
this
questions
Please
answer
for
this
questions
<
/Text
>
<
/Text
>
<
/View
>
<
/View
>
{
/* <View style={{marginTop: 5}}>
<Text
semi
style={{
fontSize: 15,
fontWeight: 'bold',
marginTop: 10,
color: COLORS.black,
}}>
Your Name:
</Text>
<TextInput
style={{
backgroundColor: '#ffffff',
borderRadius: 15,
height: 48,
marginBottom: 10,
marginTop: 10,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 8,
},
shadowOpacity: 0.46,
shadowRadius: 11.14,
fontSize: 13,
color: COLORS.black,
elevation: 17,
}}
// value={value}
// onChangeText={(text) => setValue(text)}
/>
</View> */
}
<
View
style
=
{{
marginTop
:
15
}}
>
<
View
style
=
{{
marginTop
:
15
}}
>
<
Text
<
Text
semi
semi
...
@@ -246,7 +220,7 @@ const MainDetailsForm = ({navigation}) => {
...
@@ -246,7 +220,7 @@ const MainDetailsForm = ({navigation}) => {
<
View
style
=
{{
marginTop
:
55
}}
>
<
View
style
=
{{
marginTop
:
55
}}
>
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
COLORS
.
normal_purpl
e
,
backgroundColor
:
COLORS
.
pastal_blu
e
,
height
:
50
,
height
:
50
,
marginBottom
:
20
,
marginBottom
:
20
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
...
@@ -281,13 +255,14 @@ const MainDetailsForm = ({navigation}) => {
...
@@ -281,13 +255,14 @@ const MainDetailsForm = ({navigation}) => {
style
=
{{
style
=
{{
color
:
COLORS
.
white
,
color
:
COLORS
.
white
,
fontSize
:
20
,
fontSize
:
20
,
fontWeight
:
700
,
}}
>
}}
>
Next
Next
<
/Text
>
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/
View
>
<
/
LinearGradient
>
<
/ScrollView
>
<
/ScrollView
>
<
/
>
<
/
>
);
);
...
...
src/screens/home/game/MainDetailsFormInSinhala.js
View file @
6e521176
...
@@ -9,6 +9,7 @@ import {
...
@@ -9,6 +9,7 @@ import {
ScrollView
,
ScrollView
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
{
ROUTES
,
COLORS
}
from
'
../../../constants
'
;
import
{
ROUTES
,
COLORS
}
from
'
../../../constants
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
const
MainDetailsFormInSinhala
=
({
navigation
})
=>
{
const
MainDetailsFormInSinhala
=
({
navigation
})
=>
{
const
[
maritalStatus
,
setMaritalStatus
]
=
useState
(
'
single
'
);
const
[
maritalStatus
,
setMaritalStatus
]
=
useState
(
'
single
'
);
...
@@ -64,7 +65,13 @@ const MainDetailsFormInSinhala = ({navigation}) => {
...
@@ -64,7 +65,13 @@ const MainDetailsFormInSinhala = ({navigation}) => {
return
(
return
(
<>
<>
<
ScrollView
style
=
{
styles
.
container
}
>
<
ScrollView
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
bottomView
}
>
<
LinearGradient
style
=
{{
flex
:
1
,
width
:
'
100%
'
,
height
:
'
100%
'
,
}}
colors
=
{[
COLORS
.
light_purple
,
COLORS
.
white
,
COLORS
.
rose
]}
>
<
View
style
=
{{
padding
:
25
}}
>
<
View
style
=
{{
padding
:
25
}}
>
<
View
<
View
style
=
{{
style
=
{{
...
@@ -86,39 +93,6 @@ const MainDetailsFormInSinhala = ({navigation}) => {
...
@@ -86,39 +93,6 @@ const MainDetailsFormInSinhala = ({navigation}) => {
කරුණාකර
මෙම
ප්රශ්න
සඳහා
පිළිතුරු
සපයන්න
කරුණාකර
මෙම
ප්රශ්න
සඳහා
පිළිතුරු
සපයන්න
<
/Text
>
<
/Text
>
<
/View
>
<
/View
>
{
/* <View style={{marginTop: 5}}>
<Text
semi
style={{
fontSize: 15,
fontWeight: 'bold',
marginTop: 10,
color: COLORS.black,
}}>
ඔබගේ නම:
</Text>
<TextInput
style={{
backgroundColor: '#ffffff',
borderRadius: 15,
height: 48,
marginBottom: 10,
marginTop: 10,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 8,
},
shadowOpacity: 0.46,
shadowRadius: 11.14,
fontSize: 13,
color: COLORS.black,
elevation: 17,
}}
// value={value}
// onChangeText={(text) => setValue(text)}
/>
</View> */
}
<
View
style
=
{{
marginTop
:
15
}}
>
<
View
style
=
{{
marginTop
:
15
}}
>
<
Text
<
Text
semi
semi
...
@@ -247,7 +221,7 @@ const MainDetailsFormInSinhala = ({navigation}) => {
...
@@ -247,7 +221,7 @@ const MainDetailsFormInSinhala = ({navigation}) => {
<
View
style
=
{{
marginTop
:
35
}}
>
<
View
style
=
{{
marginTop
:
35
}}
>
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
COLORS
.
normal_purpl
e
,
backgroundColor
:
COLORS
.
pastal_blu
e
,
height
:
50
,
height
:
50
,
marginBottom
:
10
,
marginBottom
:
10
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
...
@@ -288,7 +262,7 @@ const MainDetailsFormInSinhala = ({navigation}) => {
...
@@ -288,7 +262,7 @@ const MainDetailsFormInSinhala = ({navigation}) => {
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/
View
>
<
/
LinearGradient
>
<
/ScrollView
>
<
/ScrollView
>
<
/
>
<
/
>
);
);
...
@@ -304,8 +278,6 @@ const styles = StyleSheet.create({
...
@@ -304,8 +278,6 @@ const styles = StyleSheet.create({
flex
:
1
,
flex
:
1
,
height
:
860
,
height
:
860
,
backgroundColor
:
COLORS
.
purple
,
backgroundColor
:
COLORS
.
purple
,
// borderTopStartRadius: 30,
// borderTopEndRadius: 30,
},
},
radioContainer
:
{
radioContainer
:
{
flexDirection
:
'
row
'
,
flexDirection
:
'
row
'
,
...
...
src/screens/home/game/QuestionsInEnglish.js
View file @
6e521176
...
@@ -4,13 +4,12 @@ import {
...
@@ -4,13 +4,12 @@ import {
View
,
View
,
StyleSheet
,
StyleSheet
,
TouchableOpacity
,
TouchableOpacity
,
ScrollView
,
Text
,
Text
,
ActivityIndicator
,
ActivityIndicator
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
axios
from
'
axios
'
;
import
axios
from
'
axios
'
;
import
{
useNavigation
}
from
'
@react-navigation/native
'
;
import
{
useNavigation
}
from
'
@react-navigation/native
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
COLORS
,
ROUTES
}
from
'
../../../constants
'
;
import
RadioButton
from
'
../../../components/RadioButton
'
;
import
RadioButton
from
'
../../../components/RadioButton
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
...
@@ -46,18 +45,16 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -46,18 +45,16 @@ const QuestionInEnglishPage = ({navigation, route}) => {
const
loadData
=
()
=>
{
const
loadData
=
()
=>
{
axios
axios
// .get('http://192.168.8.161:8070/api/quiz/all_english')
.
get
(
'
http://16.16.97.48/api/quiz/all_english
'
)
.
get
(
'
http://16.16.97.48/api/quiz/all_english
'
)
.
then
(
response
=>
{
.
then
(
response
=>
{
// console.log(response.data);
setQuestions
(
response
.
data
.
data
);
setQuestions
(
response
.
data
.
data
);
setIsLoading
(
false
);
setIsLoading
(
false
);
})
})
.
catch
(
error
=>
{
.
catch
(
error
=>
{
console
.
error
(
error
);
console
.
error
(
error
);
2
;
2
;
// Ensure loading is set to false even if there's an error
setIsLoading
(
false
);
// Ensure loading is set to false even if there's an error
setIsLoading
(
false
);
});
});
};
};
const
handleNext
=
()
=>
{
const
handleNext
=
()
=>
{
...
@@ -75,8 +72,6 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -75,8 +72,6 @@ const QuestionInEnglishPage = ({navigation, route}) => {
const
isOnFirstQuestions
=
questionIndex
===
0
;
const
isOnFirstQuestions
=
questionIndex
===
0
;
const
isOnLastQuestions
=
questionIndex
>=
questions
.
length
-
2
;
const
isOnLastQuestions
=
questionIndex
>=
questions
.
length
-
2
;
const
appNavigation
=
useNavigation
();
// Handle navigation to the "Quiz Score" page and pass the totalScore as a parameter
// Handle navigation to the "Quiz Score" page and pass the totalScore as a parameter
const
handleNavigationToQuizScore
=
()
=>
{
const
handleNavigationToQuizScore
=
()
=>
{
// Create a new object that includes all the formData fields and adds the totalScore as depression_level
// Create a new object that includes all the formData fields and adds the totalScore as depression_level
...
@@ -117,7 +112,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -117,7 +112,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
}}
>
}}
>
<
Text
<
Text
style
=
{{
style
=
{{
color
:
'
#DE3163
'
,
color
:
COLORS
.
pastal_blue
,
fontSize
:
22
,
fontSize
:
22
,
fontWeight
:
'
bold
'
,
fontWeight
:
'
bold
'
,
}}
>
}}
>
...
@@ -127,7 +122,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -127,7 +122,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
<
View
<
View
style
=
{{
style
=
{{
backgroundColor
:
'
white
'
,
backgroundColor
:
'
white
'
,
borderColor
:
'
#FFC107
'
,
// Add this line to set the border color
borderColor
:
COLORS
.
pink
,
borderWidth
:
3
,
borderWidth
:
3
,
borderRadius
:
17
,
borderRadius
:
17
,
marginTop
:
5
,
marginTop
:
5
,
...
@@ -150,8 +145,8 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -150,8 +145,8 @@ const QuestionInEnglishPage = ({navigation, route}) => {
<
/View
>
<
/View
>
<
View
<
View
style
=
{{
style
=
{{
marginTop
:
3
0
,
marginTop
:
1
0
,
gap
:
2
,
gap
:
3
,
marginBottom
:
5
,
marginBottom
:
5
,
color
:
'
black
'
,
color
:
'
black
'
,
marginRight
:
25
,
marginRight
:
25
,
...
@@ -205,13 +200,13 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -205,13 +200,13 @@ const QuestionInEnglishPage = ({navigation, route}) => {
style
=
{{
style
=
{{
flexDirection
:
'
row
'
,
flexDirection
:
'
row
'
,
justifyContent
:
'
space-between
'
,
justifyContent
:
'
space-between
'
,
marginTop
:
25
,
marginTop
:
50
,
marginBottom
:
5
0
,
marginBottom
:
3
0
,
}}
>
}}
>
{
!
isOnFirstQuestions
&&
(
{
!
isOnFirstQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#DE3163
'
,
backgroundColor
:
COLORS
.
pastal_blue
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
@@ -237,7 +232,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -237,7 +232,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
{
!
isOnLastQuestions
&&
(
{
!
isOnLastQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#DE3163
'
,
backgroundColor
:
COLORS
.
pastal_blue
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
@@ -263,7 +258,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
...
@@ -263,7 +258,7 @@ const QuestionInEnglishPage = ({navigation, route}) => {
{
isOnLastQuestions
&&
(
{
isOnLastQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#
116A7B
'
,
backgroundColor
:
'
#
DE3163
'
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
...
src/screens/home/game/QuestionsInShinhala.js
View file @
6e521176
...
@@ -4,13 +4,12 @@ import {
...
@@ -4,13 +4,12 @@ import {
View
,
View
,
StyleSheet
,
StyleSheet
,
TouchableOpacity
,
TouchableOpacity
,
ScrollView
,
Text
,
Text
,
ActivityIndicator
,
ActivityIndicator
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
axios
from
'
axios
'
;
import
axios
from
'
axios
'
;
import
{
useNavigation
}
from
'
@react-navigation/native
'
;
import
{
useNavigation
}
from
'
@react-navigation/native
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
COLORS
,
ROUTES
}
from
'
../../../constants
'
;
import
RadioButton
from
'
../../../components/RadioButton
'
;
import
RadioButton
from
'
../../../components/RadioButton
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
...
@@ -46,7 +45,6 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -46,7 +45,6 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
const
loadData
=
()
=>
{
const
loadData
=
()
=>
{
axios
axios
// .get('http://192.168.8.161:8070/api/quiz/all_sinhala')
.
get
(
'
http://16.16.97.48/api/quiz/all_sinhala
'
)
.
get
(
'
http://16.16.97.48/api/quiz/all_sinhala
'
)
.
then
(
response
=>
{
.
then
(
response
=>
{
setQuestions
(
response
.
data
.
data
);
setQuestions
(
response
.
data
.
data
);
...
@@ -72,8 +70,6 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -72,8 +70,6 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
const
isOnFirstQuestions
=
questionIndex
===
0
;
const
isOnFirstQuestions
=
questionIndex
===
0
;
const
isOnLastQuestions
=
questionIndex
>=
questions
.
length
-
2
;
const
isOnLastQuestions
=
questionIndex
>=
questions
.
length
-
2
;
const
appNavigation
=
useNavigation
();
// Handle navigation to the "Quiz Score" page and pass the totalScore as a parameter
// Handle navigation to the "Quiz Score" page and pass the totalScore as a parameter
const
handleNavigationToQuizScore
=
()
=>
{
const
handleNavigationToQuizScore
=
()
=>
{
const
updatedFormData
=
{
const
updatedFormData
=
{
...
@@ -113,7 +109,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -113,7 +109,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
}}
>
}}
>
<
Text
<
Text
style
=
{{
style
=
{{
color
:
'
#DE3163
'
,
color
:
COLORS
.
pastal_blue
,
fontSize
:
22
,
fontSize
:
22
,
fontWeight
:
'
bold
'
,
fontWeight
:
'
bold
'
,
}}
>
}}
>
...
@@ -123,7 +119,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -123,7 +119,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
<
View
<
View
style
=
{{
style
=
{{
backgroundColor
:
'
white
'
,
backgroundColor
:
'
white
'
,
borderColor
:
'
#FFC107
'
,
// Add this line to set the border color
borderColor
:
COLORS
.
pink
,
borderWidth
:
3
,
borderWidth
:
3
,
borderRadius
:
17
,
borderRadius
:
17
,
marginTop
:
5
,
marginTop
:
5
,
...
@@ -146,9 +142,9 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -146,9 +142,9 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
<
/View
>
<
/View
>
<
View
<
View
style
=
{{
style
=
{{
marginTop
:
30
,
marginTop
:
1
,
gap
:
2
,
gap
:
3
,
marginBottom
:
5
,
marginBottom
:
1
,
color
:
'
black
'
,
color
:
'
black
'
,
marginRight
:
25
,
marginRight
:
25
,
}}
>
}}
>
...
@@ -201,13 +197,13 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -201,13 +197,13 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
style
=
{{
style
=
{{
flexDirection
:
'
row
'
,
flexDirection
:
'
row
'
,
justifyContent
:
'
space-between
'
,
justifyContent
:
'
space-between
'
,
marginTop
:
25
,
marginTop
:
50
,
marginBottom
:
5
0
,
marginBottom
:
3
0
,
}}
>
}}
>
{
!
isOnFirstQuestions
&&
(
{
!
isOnFirstQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#DE3163
'
,
backgroundColor
:
COLORS
.
pastal_blue
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
@@ -233,7 +229,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -233,7 +229,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
{
!
isOnLastQuestions
&&
(
{
!
isOnLastQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#DE3163
'
,
backgroundColor
:
COLORS
.
pastal_blue
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
@@ -259,7 +255,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
...
@@ -259,7 +255,7 @@ const QuestionInSinhalaPage = ({navigation, route}) => {
{
isOnLastQuestions
&&
(
{
isOnLastQuestions
&&
(
<
TouchableOpacity
<
TouchableOpacity
style
=
{{
style
=
{{
backgroundColor
:
'
#
116A7B
'
,
backgroundColor
:
'
#
DE3163
'
,
height
:
50
,
height
:
50
,
justifyContent
:
'
center
'
,
justifyContent
:
'
center
'
,
alignItems
:
'
center
'
,
alignItems
:
'
center
'
,
...
...
src/screens/home/game/QuizOptions.js
View file @
6e521176
/* eslint-disable react-native/no-inline-styles */
/* eslint-disable react-native/no-inline-styles */
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
{
import
{
Text
,
Image
,
View
,
StyleSheet
,
TouchableOpacity
}
from
'
react-native
'
;
ScrollView
,
import
{
COLORS
,
ROUTES
}
from
'
../../../constants
'
;
ImageBackground
,
Text
,
Image
,
View
,
StyleSheet
,
TouchableOpacity
,
}
from
'
react-native
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
const
QuizOptionsPage
=
({
navigation
})
=>
{
const
QuizOptionsPage
=
({
navigation
})
=>
{
return
(
return
(
...
...
src/screens/home/game/QuizScore.js
View file @
6e521176
...
@@ -8,11 +8,9 @@ import {
...
@@ -8,11 +8,9 @@ import {
ActivityIndicator
,
ActivityIndicator
,
}
from
'
react-native
'
;
}
from
'
react-native
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
axios
from
'
axios
'
;
import
{
gameLevelPredict
}
from
'
../../../services/games
'
;
import
{
gameLevelPredict
}
from
'
../../../services/games
'
;
const
QuizScoreDisplayPage
=
({
route
,
navigation
})
=>
{
const
QuizScoreDisplayPage
=
({
route
,
navigation
})
=>
{
// const {score} = route.params;
const
{
formData
}
=
route
.
params
||
{
const
{
formData
}
=
route
.
params
||
{
formData
:
{},
formData
:
{},
};
};
...
@@ -43,10 +41,10 @@ const QuizScoreDisplayPage = ({route, navigation}) => {
...
@@ -43,10 +41,10 @@ const QuizScoreDisplayPage = ({route, navigation}) => {
musicFields
[
musicKeys
[
randomIndex
]]
=
1
;
musicFields
[
musicKeys
[
randomIndex
]]
=
1
;
try
{
try
{
const
response
=
await
gameLevelPredict
(
const
response
=
await
gameLevelPredict
(
formData
.
age
,
// Assuming formData contains 'age'
formData
.
age
,
formData
.
depression_level
,
// Passed from previous screen
formData
.
depression_level
,
formData
.
previous_child_birth_experiences
,
// Assuming formData contains 'previous_child_birth_experiences'
formData
.
previous_child_birth_experiences
,
formData
.
marital_status_divorced
,
// Assuming formData contains boolean values for these fields
formData
.
marital_status_divorced
,
formData
.
marital_status_married
,
formData
.
marital_status_married
,
formData
.
marital_status_single
,
formData
.
marital_status_single
,
formData
.
family_background_bad
,
formData
.
family_background_bad
,
...
@@ -99,7 +97,6 @@ const QuizScoreDisplayPage = ({route, navigation}) => {
...
@@ -99,7 +97,6 @@ const QuizScoreDisplayPage = ({route, navigation}) => {
<
TouchableOpacity
<
TouchableOpacity
style
=
{
styles
.
button
}
style
=
{
styles
.
button
}
onPress
=
{
handleChooseGamePress
}
>
onPress
=
{
handleChooseGamePress
}
>
{
/* onPress={() => navigation.navigate(ROUTES.Level01Instructions)}> */
}
<
Text
bold
medium
center
style
=
{
styles
.
buttonText
}
>
<
Text
bold
medium
center
style
=
{
styles
.
buttonText
}
>
Check
Your
Gaming
Level
Check
Your
Gaming
Level
<
/Text
>
<
/Text
>
...
...
src/screens/home/game/WelcomeGame.js
View file @
6e521176
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
{
Image
,
TouchableOpacity
,
Text
,
View
}
from
'
react-native
'
;
import
{
Image
,
TouchableOpacity
,
Text
,
View
}
from
'
react-native
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
LinearGradient
from
'
react-native-linear-gradient
'
;
import
Button
from
'
../../../components/Button
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
import
{
COLORS
,
IMGS
,
ROUTES
}
from
'
../../../constants
'
;
const
WelcomePageGame
=
({
navigation
})
=>
{
const
WelcomePageGame
=
({
navigation
})
=>
{
...
...
src/screens/home/game/game02/level03.js
View file @
6e521176
...
@@ -13,6 +13,17 @@ import Sound from 'react-native-sound';
...
@@ -13,6 +13,17 @@ import Sound from 'react-native-sound';
// A simple array of names, meanings, and origins for demonstration
// A simple array of names, meanings, and origins for demonstration
const
namesData
=
[
const
namesData
=
[
{
name
:
'
Yasas
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Yasas
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Sama
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Dilshan
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Poorna
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Parami
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Randi
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Isura
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Devin
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Lili
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Ann
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Amara
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Kisuri
'
,
meaning
:
'
Fame, Glory
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Ashan
'
,
meaning
:
'
Eternal, Immortal
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Ashan
'
,
meaning
:
'
Eternal, Immortal
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Nirmala
'
,
meaning
:
'
Pure, Clean
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Nirmala
'
,
meaning
:
'
Pure, Clean
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Tharaka
'
,
meaning
:
'
Star
'
,
origin
:
'
Sinhalese
'
},
{
name
:
'
Tharaka
'
,
meaning
:
'
Star
'
,
origin
:
'
Sinhalese
'
},
...
...
src/screens/home/game/game02/level04.js
View file @
6e521176
...
@@ -92,26 +92,34 @@ const Game02Level04 = ({navigation}) => {
...
@@ -92,26 +92,34 @@ const Game02Level04 = ({navigation}) => {
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
if
(
foundBabyItemIndex
!==
-
1
)
{
if
(
foundBabyItemIndex
!==
-
1
)
{
setCollectedItems
(
currentItems
=>
[...
currentItems
,
`
${
x
}
,
${
y
}
`
]);
// Use position as a unique identifier
// Update the collected items and perform checks inside the update callback
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
setCollectedItems
(
currentItems
=>
{
const
updatedItems
=
[...
currentItems
,
`
${
x
}
,
${
y
}
`
];
// Remove the found baby item from the array to prevent recounting
// Remove the found baby item from the array to prevent recounting
const
newBabyItems
=
[...
babyItems
];
const
newBabyItems
=
[...
babyItems
];
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
setBabyItems
(
newBabyItems
);
setBabyItems
(
newBabyItems
);
// Check if two baby items have been collected
// Check if the last baby item has been collected
if
(
collectedItems
.
length
+
1
>=
2
)
{
if
(
updatedItems
.
length
>=
2
)
{
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
,
[
// This is the last item; show only the congratulations message
Alert
.
alert
(
'
Congratulations 🥳🥳! You won the game.
'
,
''
,
[
{
{
text
:
'
OK
'
,
text
:
'
OK
'
,
onPress
:
()
=>
{
onPress
:
()
=>
{
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel02
);
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel02
);
backgroundMusic
.
current
.
setVolume
(
0.0
);
},
},
},
},
]);
]);
backgroundMusic
.
current
.
setVolume
(
0.0
);
}
else
{
// Not the last item, show the generic good job message
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
}
}
return
updatedItems
;
});
}
else
if
(
foundLadyItem
)
{
}
else
if
(
foundLadyItem
)
{
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
{
{
...
@@ -151,7 +159,11 @@ const Game02Level04 = ({navigation}) => {
...
@@ -151,7 +159,11 @@ const Game02Level04 = ({navigation}) => {
<
Text
<
Text
medium
medium
center
center
style
=
{{
color
:
'
black
'
,
fontSize
:
30
,
fontWeight
:
'
bold
'
}}
>
style
=
{{
color
:
'
black
'
,
fontSize
:
30
,
fontWeight
:
'
bold
'
,
}}
>
{
isMuted
?
'
🔇
'
:
'
🔊
'
}
{
isMuted
?
'
🔇
'
:
'
🔊
'
}
<
/Text
>
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
...
...
src/screens/home/game/game02/level05.js
View file @
6e521176
...
@@ -29,7 +29,6 @@ const Game02Level05 = ({navigation}) => {
...
@@ -29,7 +29,6 @@ const Game02Level05 = ({navigation}) => {
{
x
:
6
,
y
:
1
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_38
},
{
x
:
6
,
y
:
1
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_38
},
]);
]);
const
[
selectedCandy
,
setSelectedCandy
]
=
useState
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
...
@@ -93,26 +92,36 @@ const Game02Level05 = ({navigation}) => {
...
@@ -93,26 +92,36 @@ const Game02Level05 = ({navigation}) => {
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
if
(
foundBabyItemIndex
!==
-
1
)
{
if
(
foundBabyItemIndex
!==
-
1
)
{
setCollectedItems
(
currentItems
=>
[...
currentItems
,
`
${
x
}
,
${
y
}
`
]);
// Use position as a unique identifier
// Prepare the updated list of baby items by removing the found item
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
// Remove the found baby item from the array to prevent recounting
const
newBabyItems
=
[...
babyItems
];
const
newBabyItems
=
[...
babyItems
];
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
setBabyItems
(
newBabyItems
);
// Check if two baby items have been collected
// Update the collected items state
if
(
collectedItems
.
length
+
1
>=
3
)
{
setCollectedItems
(
currentItems
=>
{
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
,
[
const
updatedItems
=
[...
currentItems
,
`
${
x
}
,
${
y
}
`
];
// Check if all baby items have been collected (assuming total items needed to win is 3)
if
(
updatedItems
.
length
===
3
)
{
// Show only the congratulations message when the last item is collected
Alert
.
alert
(
'
Congratulations 🥳🥳! You won the game!
'
,
''
,
[
{
{
text
:
'
OK
'
,
text
:
'
OK
'
,
onPress
:
()
=>
{
onPress
:
()
=>
{
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel04
);
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel04
);
backgroundMusic
.
current
.
setVolume
(
0.0
);
},
},
},
},
]);
]);
backgroundMusic
.
current
.
setVolume
(
0.0
);
}
else
{
// Show this alert if there are still items left to collect
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
}
}
return
updatedItems
;
});
// Update the baby items array state
setBabyItems
(
newBabyItems
);
}
else
if
(
foundLadyItem
)
{
}
else
if
(
foundLadyItem
)
{
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
{
{
...
@@ -151,7 +160,11 @@ const Game02Level05 = ({navigation}) => {
...
@@ -151,7 +160,11 @@ const Game02Level05 = ({navigation}) => {
<
Text
<
Text
medium
medium
center
center
style
=
{{
color
:
'
black
'
,
fontSize
:
30
,
fontWeight
:
'
bold
'
}}
>
style
=
{{
color
:
'
black
'
,
fontSize
:
30
,
fontWeight
:
'
bold
'
,
}}
>
{
isMuted
?
'
🔇
'
:
'
🔊
'
}
{
isMuted
?
'
🔇
'
:
'
🔊
'
}
<
/Text
>
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
...
...
src/screens/home/game/game02/level06.js
View file @
6e521176
...
@@ -32,7 +32,6 @@ const Game02Level06 = ({navigation}) => {
...
@@ -32,7 +32,6 @@ const Game02Level06 = ({navigation}) => {
{
x
:
2
,
y
:
5
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_29
},
{
x
:
2
,
y
:
5
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_29
},
]);
]);
const
[
selectedCandy
,
setSelectedCandy
]
=
useState
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
...
@@ -50,8 +49,8 @@ const Game02Level06 = ({navigation}) => {
...
@@ -50,8 +49,8 @@ const Game02Level06 = ({navigation}) => {
backgroundMusic
.
current
.
setNumberOfLoops
(
-
1
);
backgroundMusic
.
current
.
setNumberOfLoops
(
-
1
);
},
},
);
);
// Release the audio player resource when the component unmounts
return
()
=>
backgroundMusic
.
current
.
release
();
// Release the audio player resource when the component unmounts
return
()
=>
backgroundMusic
.
current
.
release
();
},
[]);
},
[]);
const
toggleMute
=
()
=>
{
const
toggleMute
=
()
=>
{
...
@@ -96,17 +95,18 @@ const Game02Level06 = ({navigation}) => {
...
@@ -96,17 +95,18 @@ const Game02Level06 = ({navigation}) => {
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
if
(
foundBabyItemIndex
!==
-
1
)
{
if
(
foundBabyItemIndex
!==
-
1
)
{
setCollectedItems
(
currentItems
=>
[...
currentItems
,
`
${
x
}
,
${
y
}
`
]);
// Use position as a unique identifier
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
// Remove the found baby item from the array to prevent recounting
// Remove the found baby item from the array to prevent recounting
const
newBabyItems
=
[...
babyItems
];
const
newBabyItems
=
[...
babyItems
];
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
setBabyItems
(
newBabyItems
);
setBabyItems
(
newBabyItems
);
// Check if two baby items have been collected
// Use position as a unique identifier and update the collected items
if
(
collectedItems
.
length
+
1
>=
4
)
{
setCollectedItems
(
currentItems
=>
{
Alert
.
alert
(
'
Congratulations 🥳🥳! You won the game.
'
,
[
const
updatedItems
=
[...
currentItems
,
`
${
x
}
,
${
y
}
`
];
// Check if all baby items have been collected
if
(
updatedItems
.
length
>=
4
)
{
Alert
.
alert
(
'
Congratulations 🥳🥳!
'
,
'
You won the game.
'
,
[
{
{
text
:
'
OK
'
,
text
:
'
OK
'
,
onPress
:
()
=>
{
onPress
:
()
=>
{
...
@@ -115,7 +115,12 @@ const Game02Level06 = ({navigation}) => {
...
@@ -115,7 +115,12 @@ const Game02Level06 = ({navigation}) => {
},
},
]);
]);
backgroundMusic
.
current
.
setVolume
(
0.0
);
backgroundMusic
.
current
.
setVolume
(
0.0
);
}
else
{
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
}
}
return
updatedItems
;
});
}
else
if
(
foundLadyItem
)
{
}
else
if
(
foundLadyItem
)
{
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
{
{
...
@@ -128,10 +133,6 @@ const Game02Level06 = ({navigation}) => {
...
@@ -128,10 +133,6 @@ const Game02Level06 = ({navigation}) => {
}
}
};
};
const
resetGame
=
()
=>
{
setPlayerPosition
({
x
:
0
,
y
:
0
});
setCollectedItems
([]);
};
return
(
return
(
<
ImageBackground
<
ImageBackground
source
=
{
IMGS
.
game_img_45
}
source
=
{
IMGS
.
game_img_45
}
...
...
src/screens/home/game/game02/level07.js
View file @
6e521176
...
@@ -32,7 +32,6 @@ const Game02Level07 = ({navigation}) => {
...
@@ -32,7 +32,6 @@ const Game02Level07 = ({navigation}) => {
{
x
:
2
,
y
:
7
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_29
},
{
x
:
2
,
y
:
7
,
type
:
'
ladyItem
'
,
image
:
IMGS
.
game_img_29
},
]);
]);
const
[
selectedCandy
,
setSelectedCandy
]
=
useState
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
backgroundMusic
=
useRef
(
null
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
const
[
isMuted
,
setIsMuted
]
=
useState
(
false
);
...
@@ -89,11 +88,6 @@ const Game02Level07 = ({navigation}) => {
...
@@ -89,11 +88,6 @@ const Game02Level07 = ({navigation}) => {
checkForItem
(
newX
,
newY
);
checkForItem
(
newX
,
newY
);
};
};
const
resetGame
=
()
=>
{
setPlayerPosition
({
x
:
0
,
y
:
0
});
setCollectedItems
([]);
};
const
checkForItem
=
(
x
,
y
)
=>
{
const
checkForItem
=
(
x
,
y
)
=>
{
const
foundBabyItemIndex
=
babyItems
.
findIndex
(
const
foundBabyItemIndex
=
babyItems
.
findIndex
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
,
item
=>
item
.
x
===
x
&&
item
.
y
===
y
,
...
@@ -101,33 +95,41 @@ const Game02Level07 = ({navigation}) => {
...
@@ -101,33 +95,41 @@ const Game02Level07 = ({navigation}) => {
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
const
foundLadyItem
=
ladyItems
.
find
(
item
=>
item
.
x
===
x
&&
item
.
y
===
y
);
if
(
foundBabyItemIndex
!==
-
1
)
{
if
(
foundBabyItemIndex
!==
-
1
)
{
setCollectedItems
(
currentItems
=>
[...
currentItems
,
`
${
x
}
,
${
y
}
`
]);
// Use position as a unique identifier
// Use position as a unique identifier and update the collected items
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
setCollectedItems
(
currentItems
=>
{
const
updatedItems
=
[...
currentItems
,
`
${
x
}
,
${
y
}
`
];
// Remove the found baby item from the array to prevent recounting
// Remove the found baby item from the array to prevent recounting
const
newBabyItems
=
[...
babyItems
];
const
newBabyItems
=
[...
babyItems
];
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
newBabyItems
.
splice
(
foundBabyItemIndex
,
1
);
setBabyItems
(
newBabyItems
);
setBabyItems
(
newBabyItems
);
// Check if two baby items have been collected
// Check if all baby items have been collected (assuming total items needed to win is 3)
if
(
collectedItems
.
length
+
1
>=
4
)
{
if
(
updatedItems
.
length
>=
4
)
{
Alert
.
alert
(
'
Congratulations 🥳🥳! You won the game.
'
,
[
// Only show the congratulations message when the last item is collected
Alert
.
alert
(
'
Congratulations 🥳🥳! You won the game.
'
,
''
,
[
{
{
text
:
'
OK
'
,
text
:
'
OK
'
,
onPress
:
()
=>
{
onPress
:
()
=>
{
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel02
);
navigation
.
navigate
(
ROUTES
.
Game02ProgressLevel02
);
backgroundMusic
.
current
.
setVolume
(
0.0
);
},
},
},
},
]);
]);
backgroundMusic
.
current
.
setVolume
(
0.0
);
}
else
{
// This alert is for collecting but not finishing the game
Alert
.
alert
(
'
Good job!
'
,
'
You found a baby item!
'
);
}
}
return
updatedItems
;
});
}
else
if
(
foundLadyItem
)
{
}
else
if
(
foundLadyItem
)
{
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
Alert
.
alert
(
'
Oops!
'
,
"
This is a lady's item. Try again!
"
,
[
{
{
text
:
'
OK
'
,
text
:
'
OK
'
,
onPress
:
()
=>
{
//
onPress: () => {
navigation
.
navigate
(
ROUTES
.
GAME_QUIZ_OPTIONS
);
//
navigation.navigate(ROUTES.GAME_QUIZ_OPTIONS);
},
//
},
},
},
]);
]);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment