-
+
Získali jste {client.points} / {client.possiblePointsToSeize} bodů
{#if score > 90}
@@ -23,6 +22,6 @@
{/if}
-
+
diff --git a/src/routes/game/Forms/MultiChoiceForm.svelte b/src/routes/game/Forms/MultiChoiceForm.svelte
index 1c4e6df..1000232 100644
--- a/src/routes/game/Forms/MultiChoiceForm.svelte
+++ b/src/routes/game/Forms/MultiChoiceForm.svelte
@@ -7,9 +7,6 @@
export let checkPoint: CheckPoint
export let myAnswer
- export let clear: false | true = false
- $: if (clear) myAnswers = new Array(checkPoint.CPOptions.length).fill(false)
-
let myAnswers = new Array(checkPoint.CPOptions.length).fill(false)
$: myAnswer = checkPoint.CPOptions.filter((item, i) => {
if (myAnswers[i] === true) return item
diff --git a/src/routes/game/Forms/Renderer.svelte b/src/routes/game/Forms/Renderer.svelte
index 997f6b6..adfd0d2 100644
--- a/src/routes/game/Forms/Renderer.svelte
+++ b/src/routes/game/Forms/Renderer.svelte
@@ -18,6 +18,7 @@
import LayoutImg from '$lib/components/Layouts/LayoutImg.svelte'
import { Models } from 'appwrite'
import { Writable } from 'svelte/store'
+ import { Button as FlowbiteButton } from 'flowbite-svelte'
const components = {
TEXT: TextForm,
@@ -32,7 +33,8 @@
export let control: AnswerState = null
let view: 'question' | 'map' | 'end' | 'start' | 'start-map' = 'start-map'
export let gameData: Experience //data
- $: [userProgress, userProgressLoading] = getUserProgressAsStore(gameData.$id)
+ export let userProgress
+ //$: [userProgress, userProgressLoading] = getUserProgressAsStore(gameData.$id)
let client = {
//user data about game
@@ -45,15 +47,15 @@
}),
}
- $: if (client.pos < $userProgress?.length - 1 + 1) {
+ $: if (client.pos < userProgress?.length - 1 + 1) {
// nastaví na continue
- client.pos = $userProgress?.length - 1 + 1
- client.points = $userProgress?.map((i) => (i.correct ? 2 : 0))?.reduce((accumulator, currentValue) => accumulator + currentValue)
+ client.pos = userProgress?.length - 1 + 1
+ client.points = userProgress?.map((i) => (i.correct ? 2 : 0))?.reduce((accumulator, currentValue) => accumulator + currentValue)
view = 'map'
}
- $: if (gameData.checkPoints[client.pos].CPType === 'INFO' && !$userProgressLoading) control = 'not-control'
+ $: if (gameData.checkPoints[client.pos].CPType === 'INFO') control = 'not-control'
const nextQuestion = () => {
//další otázka
@@ -99,14 +101,26 @@
} catch (error) {
console.log(error)
}
+ myAnswer = ''
answerLoading = false
}
+
+ const admins = [
+ '641b2cd262519fdd33ec',
+ '643bfde664ea0c643112',
+ '643bfdd8c64e75d0b8ea',
+ '6427218926d6ab7f8e52',
+ '641d5642c8fa96066cf2',
+ '641b42847ac86f9a306c',
+ '63daafd3355edb14483d',
+ ]
-
-
-
{#if view === 'map' || view === 'start-map'}
+ {#if admins.includes($user.$id)}
+
(view = view === 'start-map' ? 'start' : 'question')}>disappear map
+ {/if}
+
(view = view === 'start-map' ? 'start' : 'question')} {lat} {lng} {userLocation} />
diff --git a/src/routes/game/experience.svelte b/src/routes/game/experience.svelte
index 5c9fec1..0986473 100644
--- a/src/routes/game/experience.svelte
+++ b/src/routes/game/experience.svelte
@@ -6,34 +6,56 @@
import IconStar from '../../lib/svg/Star.svelte'
import IconPoint from '../../lib/svg/Point.svelte'
import Loading from '../../lib/components/Common/Loading.svelte'
- import { data } from '../../lib/stores/stores'
- import GeolocateControl from '@beyonk/svelte-mapbox/src/lib/map/controls/GeolocateControl.svelte'
import Map from '../../lib/components/Map/Map.svelte'
import Renderer from './Forms/Renderer.svelte'
import Marker from '../../lib/components/Map/Marker.svelte'
- import { onMount } from 'svelte'
- import { getExperienceIdByUrl, getExperienceIdByUrlAsStore, getUserProgress, getUserProgressAsStore, load, loadAsStore } from '$lib/utils/database/experience'
+ import { getExperienceIdByUrlAsStore, getUserProgressAsStore, loadAsStore } from '$lib/utils/database/experience'
import { getLocationDataFromLatAndLong } from '$lib/utils/locations'
- import { navigate } from '$lib/router'
import { Experience } from '$lib/TStypes/experiences'
import Progressbar from '$lib/components/erant/Progressbar.svelte'
import { writable } from 'svelte/store'
+ import Alert from '$lib/components/Common/Alert.svelte'
+ import { Button as FlowbiteButton } from 'flowbite-svelte'
+ import { databases, user } from '$lib/appwrite'
+ import { Query } from 'appwrite'
export let params: { gameurl: string }
let gameData = writable
(null)
let [id] = getExperienceIdByUrlAsStore(params.gameurl)
- $: [userProgress] = $gameData ? getUserProgressAsStore($id) : []
+ $: [userProgress, userProgressLoading] = $gameData ? getUserProgressAsStore($id) : []
$: [gameData] = $gameData ? [] : loadAsStore(params.gameurl)
- $: if ($gameData) view = 'experience-preview'
+ $: if ($gameData && !$userProgressLoading) view = 'experience-preview'
let view: 'experience-play' | 'experience-loading' | 'experience-preview' = 'experience-loading'
- const deleteProgress = () => {}
+ const deleteProgress = async () => {
+ const documentsToDelete = $userProgress.map(({ $id }) => databases.deleteDocument('63cef30d6da945dd4250', 'users-answers', $id))
+ const res = await Promise.all(documentsToDelete)
+ deleteProgressAlertVisible = false
+ $userProgress = []
+ }
+
+ let deleteProgressAlertVisible = false
+{#if deleteProgressAlertVisible}
+
+ Delete your progress
+
+ Are you sure that you want to delete your progress in experience {$gameData?.ExpName}
+ Experience Id: {$gameData?.$id}
+ Your current score is: {$userProgress?.length} checkPoints
+
+
+ Yes I'm sure
+ (deleteProgressAlertVisible = false)} outline {color}>No, I missed clicked
+
+
+{/if}
+
{#if view === 'experience-loading'}
-
+
Experience is loading...
@@ -88,11 +110,11 @@
{/if}
{#if $userProgress.length}
-
+
{/if}
{:else if view === 'experience-play'}
-
+
{/if}