diff --git a/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest1.swift b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest1.swift new file mode 100644 index 0000000000..d8f497968a --- /dev/null +++ b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest1.swift @@ -0,0 +1,50 @@ +// Leka - iOS Monorepo +// Copyright 2023 APF France handicap +// SPDX-License-Identifier: Apache-2.0 + +import GameEngineKit +import SwiftUI + +private let choicesStep1 = [ + ChoiceViewModel(item: "blue", type: .color, rightAnswer: true) +] + +private let choicesStep2 = [ + ChoiceViewModel(item: "green", type: .color, rightAnswer: true) +] + +private let choicesStep3 = [ + ChoiceViewModel(item: "pink", type: .color, rightAnswer: true) +] + +private let choicesStep4 = [ + ChoiceViewModel(item: "yellow", type: .color, rightAnswer: true) +] + +private let choicesStep5 = [ + ChoiceViewModel(item: "red", type: .color, rightAnswer: true) + +] + +private var steps: [StandardStepModel] = [ + StandardStepModel(choices: choicesStep1, gameplay: .colorQuest, interface: .oneChoice), + StandardStepModel(choices: choicesStep2, gameplay: .colorQuest, interface: .oneChoice), + StandardStepModel(choices: choicesStep3, gameplay: .colorQuest, interface: .oneChoice), + StandardStepModel(choices: choicesStep4, gameplay: .colorQuest, interface: .oneChoice), + StandardStepModel(choices: choicesStep5, gameplay: .colorQuest, interface: .oneChoice), +] + +struct ColorQuest1: View { + @StateObject private var stepManager = StepManager(steps: steps) + + var body: some View { + stepManager.interface + } +} + +struct ColorQuest1_Previews: PreviewProvider { + static var previews: some View { + ColorQuest1() + .previewInterfaceOrientation(.landscapeLeft) + } +} diff --git a/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest2.swift b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest2.swift new file mode 100644 index 0000000000..f80509dc2e --- /dev/null +++ b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest2.swift @@ -0,0 +1,54 @@ +// Leka - iOS Monorepo +// Copyright 2023 APF France handicap +// SPDX-License-Identifier: Apache-2.0 + +import GameEngineKit +import SwiftUI + +private let choicesStep1 = [ + ChoiceViewModel(item: "red", type: .color), + ChoiceViewModel(item: "green", type: .color, rightAnswer: true), +] + +private let choicesStep2 = [ + ChoiceViewModel(item: "purple", type: .color), + ChoiceViewModel(item: "blue", type: .color, rightAnswer: true), +] + +private let choicesStep3 = [ + ChoiceViewModel(item: "yellow", type: .color, rightAnswer: true), + ChoiceViewModel(item: "red", type: .color), +] + +private let choicesStep4 = [ + ChoiceViewModel(item: "pink", type: .color), + ChoiceViewModel(item: "yellow", type: .color, rightAnswer: true), +] + +private let choicesStep5 = [ + ChoiceViewModel(item: "red", type: .color, rightAnswer: true), + ChoiceViewModel(item: "green", type: .color), +] + +private var steps: [StandardStepModel] = [ + StandardStepModel(choices: choicesStep1, gameplay: .colorQuest, interface: .twoChoices), + StandardStepModel(choices: choicesStep2, gameplay: .colorQuest, interface: .twoChoices), + StandardStepModel(choices: choicesStep3, gameplay: .colorQuest, interface: .twoChoices), + StandardStepModel(choices: choicesStep4, gameplay: .colorQuest, interface: .twoChoices), + StandardStepModel(choices: choicesStep5, gameplay: .colorQuest, interface: .twoChoices), +] + +struct ColorQuest2: View { + @StateObject private var stepManager = StepManager(steps: steps) + + var body: some View { + stepManager.interface + } +} + +struct ColorQuest2_Previews: PreviewProvider { + static var previews: some View { + ColorQuest2() + .previewInterfaceOrientation(.landscapeLeft) + } +} diff --git a/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest3.swift b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest3.swift new file mode 100644 index 0000000000..2ada832f23 --- /dev/null +++ b/Apps/LekaActivityUIExplorer/Sources/NewUI/Activities/ColorQuest/ColorQuest3.swift @@ -0,0 +1,59 @@ +// Leka - iOS Monorepo +// Copyright 2023 APF France handicap +// SPDX-License-Identifier: Apache-2.0 + +import GameEngineKit +import SwiftUI + +private let choicesStep1 = [ + ChoiceViewModel(item: "red", type: .color), + ChoiceViewModel(item: "blue", type: .color, rightAnswer: true), + ChoiceViewModel(item: "yellow", type: .color), +] + +private let choicesStep2 = [ + ChoiceViewModel(item: "purple", type: .color), + ChoiceViewModel(item: "green", type: .color), + ChoiceViewModel(item: "blue", type: .color, rightAnswer: true), +] + +private let choicesStep3 = [ + ChoiceViewModel(item: "yellow", type: .color, rightAnswer: true), + ChoiceViewModel(item: "blue", type: .color), + ChoiceViewModel(item: "red", type: .color), +] + +private let choicesStep4 = [ + ChoiceViewModel(item: "green", type: .color), + ChoiceViewModel(item: "pink", type: .color), + ChoiceViewModel(item: "yellow", type: .color, rightAnswer: true), +] + +private let choicesStep5 = [ + ChoiceViewModel(item: "red", type: .color, rightAnswer: true), + ChoiceViewModel(item: "blue", type: .color), + ChoiceViewModel(item: "yellow", type: .color), +] + +private var steps: [StandardStepModel] = [ + StandardStepModel(choices: choicesStep1, gameplay: .colorQuest, interface: .threeChoicesInline), + StandardStepModel(choices: choicesStep2, gameplay: .colorQuest, interface: .threeChoicesInline), + StandardStepModel(choices: choicesStep3, gameplay: .colorQuest, interface: .threeChoicesInline), + StandardStepModel(choices: choicesStep4, gameplay: .colorQuest, interface: .threeChoicesInline), + StandardStepModel(choices: choicesStep5, gameplay: .colorQuest, interface: .threeChoicesInline), +] + +struct ColorQuest3: View { + @StateObject private var stepManager = StepManager(steps: steps) + + var body: some View { + stepManager.interface + } +} + +struct ColorQuest3_Previews: PreviewProvider { + static var previews: some View { + ColorQuest3() + .previewInterfaceOrientation(.landscapeLeft) + } +} diff --git a/Apps/LekaActivityUIExplorer/Sources/NewUI/Data/ActivityList.swift b/Apps/LekaActivityUIExplorer/Sources/NewUI/Data/ActivityList.swift index 3cad51dd7e..e1b2f2bf10 100644 --- a/Apps/LekaActivityUIExplorer/Sources/NewUI/Data/ActivityList.swift +++ b/Apps/LekaActivityUIExplorer/Sources/NewUI/Data/ActivityList.swift @@ -120,4 +120,19 @@ let kListOfAvailablesActivities: [ActivityModel] = [ instructions: "Start sequence and observe the user's behavior interacting with Leka", view: AnyView(PairingActivity()) ), + ActivityModel( + title: "ColorQuest1", + instructions: "Touch the right color", + view: AnyView(ColorQuest1()) + ), + ActivityModel( + title: "ColorQuest2", + instructions: "Touch the right color", + view: AnyView(ColorQuest2()) + ), + ActivityModel( + title: "ColorQuest3", + instructions: "Touch the right color", + view: AnyView(ColorQuest3()) + ), ]