diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c548071fa8c0f8d5b851b50e55160cab5989ccef Binary files /dev/null and b/.DS_Store differ diff --git a/Lets Literate.xcodeproj/project.pbxproj b/Lets Literate.xcodeproj/project.pbxproj index bbdd3c72cfd4c5bfdad296f809e6f451dadb9eb3..8425f39295f5c5c50b3fec3d34c07b5fda36a3b7 100755 --- a/Lets Literate.xcodeproj/project.pbxproj +++ b/Lets Literate.xcodeproj/project.pbxproj @@ -35,6 +35,12 @@ A672B65627B1944D000A9007 /* ranking_passwords.png in Resources */ = {isa = PBXBuildFile; fileRef = A672B65427B1944D000A9007 /* ranking_passwords.png */; }; A672B65927B19455000A9007 /* types_of_usage.png in Resources */ = {isa = PBXBuildFile; fileRef = A672B65727B19455000A9007 /* types_of_usage.png */; }; A672B65A27B19455000A9007 /* good_idea_bad_idea.png in Resources */ = {isa = PBXBuildFile; fileRef = A672B65827B19455000A9007 /* good_idea_bad_idea.png */; }; + A675CC9F27B80FCF003B3C58 /* bruteForce_mask_scan_four_stones.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CC9E27B80FCF003B3C58 /* bruteForce_mask_scan_four_stones.png */; }; + A675CCA127B81174003B3C58 /* explore_disclaimer.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CCA027B81174003B3C58 /* explore_disclaimer.png */; }; + A675CCA327B8149F003B3C58 /* bruteForce_btn_use.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CCA227B8149F003B3C58 /* bruteForce_btn_use.png */; }; + A675CCA527B818B2003B3C58 /* explore_btn_menu_hamburger.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CCA427B818B2003B3C58 /* explore_btn_menu_hamburger.png */; }; + A675CCA727B818C1003B3C58 /* explore_btn_reflect.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CCA627B818C1003B3C58 /* explore_btn_reflect.png */; }; + A675CCA927B81A39003B3C58 /* reflect_slide.png in Resources */ = {isa = PBXBuildFile; fileRef = A675CCA827B81A39003B3C58 /* reflect_slide.png */; }; A680413627B5857000314DE6 /* inventory_not_collected.png in Resources */ = {isa = PBXBuildFile; fileRef = A680413527B5857000314DE6 /* inventory_not_collected.png */; }; A6A78BF427A9579800675532 /* Avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = A6A78BF327A9579800675532 /* Avatar.png */; }; A6B94B2127B5557300861198 /* inventory_collected2.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B94B2027B5557300861198 /* inventory_collected2.png */; }; @@ -44,6 +50,7 @@ A6C0A3A527AE95FD00146E18 /* bruteForce_mask_scan_single_stone.png in Resources */ = {isa = PBXBuildFile; fileRef = A6C0A3A427AE95FD00146E18 /* bruteForce_mask_scan_single_stone.png */; }; A6C0A3A727AEA8AC00146E18 /* station_passwords_scan_cube_plane.png in Resources */ = {isa = PBXBuildFile; fileRef = A6C0A3A627AEA8AC00146E18 /* station_passwords_scan_cube_plane.png */; }; A6C0A3AC27AED97200146E18 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C0A3AB27AED97200146E18 /* Task.swift */; }; + A6E5FCE927BABD7D008EF9E1 /* mainmenu_btn_ar.png in Resources */ = {isa = PBXBuildFile; fileRef = A6E5FCE827BABD7D008EF9E1 /* mainmenu_btn_ar.png */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -71,11 +78,18 @@ A664716D27A8399900417BF1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; A664717627A83AB000417BF1 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; }; A664717A27A840E200417BF1 /* Letsliterate.rcproject */ = {isa = PBXFileReference; lastKnownFileType = file.rcproject; path = Letsliterate.rcproject; sourceTree = "<group>"; }; + A6703EC427BB69130039D279 /* ar-mode.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ar-mode.mp4"; sourceTree = "<group>"; }; A672B65127B19391000A9007 /* ImagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagesViewController.swift; sourceTree = "<group>"; }; A672B65327B1944C000A9007 /* strong_password.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = strong_password.png; sourceTree = "<group>"; }; A672B65427B1944D000A9007 /* ranking_passwords.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ranking_passwords.png; sourceTree = "<group>"; }; A672B65727B19455000A9007 /* types_of_usage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = types_of_usage.png; sourceTree = "<group>"; }; A672B65827B19455000A9007 /* good_idea_bad_idea.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = good_idea_bad_idea.png; sourceTree = "<group>"; }; + A675CC9E27B80FCF003B3C58 /* bruteForce_mask_scan_four_stones.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bruteForce_mask_scan_four_stones.png; sourceTree = "<group>"; }; + A675CCA027B81174003B3C58 /* explore_disclaimer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = explore_disclaimer.png; sourceTree = "<group>"; }; + A675CCA227B8149F003B3C58 /* bruteForce_btn_use.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bruteForce_btn_use.png; sourceTree = "<group>"; }; + A675CCA427B818B2003B3C58 /* explore_btn_menu_hamburger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = explore_btn_menu_hamburger.png; sourceTree = "<group>"; }; + A675CCA627B818C1003B3C58 /* explore_btn_reflect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = explore_btn_reflect.png; sourceTree = "<group>"; }; + A675CCA827B81A39003B3C58 /* reflect_slide.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = reflect_slide.png; sourceTree = "<group>"; }; A680413527B5857000314DE6 /* inventory_not_collected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = inventory_not_collected.png; sourceTree = "<group>"; }; A6A78BF327A9579800675532 /* Avatar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Avatar.png; sourceTree = "<group>"; }; A6B94B2027B5557300861198 /* inventory_collected2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = inventory_collected2.png; sourceTree = "<group>"; }; @@ -85,6 +99,7 @@ A6C0A3A427AE95FD00146E18 /* bruteForce_mask_scan_single_stone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bruteForce_mask_scan_single_stone.png; sourceTree = "<group>"; }; A6C0A3A627AEA8AC00146E18 /* station_passwords_scan_cube_plane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = station_passwords_scan_cube_plane.png; sourceTree = "<group>"; }; A6C0A3AB27AED97200146E18 /* Task.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = "<group>"; }; + A6E5FCE827BABD7D008EF9E1 /* mainmenu_btn_ar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mainmenu_btn_ar.png; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -133,14 +148,20 @@ A664717A27A840E200417BF1 /* Letsliterate.rcproject */, A633CDC527A8757400450383 /* PasswordsIntro.m4v */, A633CDC727A93E3500450383 /* mainmenu_background02.png */, + A6E5FCE827BABD7D008EF9E1 /* mainmenu_btn_ar.png */, A633CDCB27A93ED600450383 /* mainmenu_btn_explore.png */, A633CDC927A93ED500450383 /* mainmenu_btn_reset.png */, A633CDCA27A93ED600450383 /* mainmenu_btn_tutorial.png */, A6A78BF327A9579800675532 /* Avatar.png */, A623508E27AAE8360030D490 /* mainmenu_background03.png */, + A675CCA027B81174003B3C58 /* explore_disclaimer.png */, A63DDDAA27AC0607007CB857 /* explore_mask_scan.png */, A63DDDAC27AC07F8007CB857 /* explore_btn_inventory.png */, + A675CCA427B818B2003B3C58 /* explore_btn_menu_hamburger.png */, + A675CCA627B818C1003B3C58 /* explore_btn_reflect.png */, + A675CCA227B8149F003B3C58 /* bruteForce_btn_use.png */, A6C0A3A427AE95FD00146E18 /* bruteForce_mask_scan_single_stone.png */, + A675CC9E27B80FCF003B3C58 /* bruteForce_mask_scan_four_stones.png */, A6C0A3A627AEA8AC00146E18 /* station_passwords_scan_cube_plane.png */, A6005B8E27B03704009E2967 /* passwordsIntro.mp4 */, A6005B8C27B03632009E2967 /* passwordsBruteForceIntro.m4v */, @@ -153,6 +174,8 @@ A672B65727B19455000A9007 /* types_of_usage.png */, A680413527B5857000314DE6 /* inventory_not_collected.png */, A6B94B2027B5557300861198 /* inventory_collected2.png */, + A675CCA827B81A39003B3C58 /* reflect_slide.png */, + A6703EC427BB69130039D279 /* ar-mode.mp4 */, A6B94B2227B55C4500861198 /* tutorial.mp4 */, ); path = "Lets Literate"; @@ -223,6 +246,7 @@ A6005B8F27B03704009E2967 /* passwordsIntro.mp4 in Resources */, A63DDDAD27AC07F8007CB857 /* explore_btn_inventory.png in Resources */, A6B94B2327B55C4500861198 /* tutorial.mp4 in Resources */, + A675CCA327B8149F003B3C58 /* bruteForce_btn_use.png in Resources */, A623508F27AAE8360030D490 /* mainmenu_background03.png in Resources */, A633CDC627A8757400450383 /* PasswordsIntro.m4v in Resources */, A664716B27A8399900417BF1 /* Assets.xcassets in Resources */, @@ -232,15 +256,21 @@ A672B65627B1944D000A9007 /* ranking_passwords.png in Resources */, A672B65A27B19455000A9007 /* good_idea_bad_idea.png in Resources */, A6C0A3A527AE95FD00146E18 /* bruteForce_mask_scan_single_stone.png in Resources */, + A675CCA127B81174003B3C58 /* explore_disclaimer.png in Resources */, A633CDCC27A93ED600450383 /* mainmenu_btn_reset.png in Resources */, A6B94B2727B56D4900861198 /* passwordsOutro.mp4 in Resources */, A672B65927B19455000A9007 /* types_of_usage.png in Resources */, + A675CCA527B818B2003B3C58 /* explore_btn_menu_hamburger.png in Resources */, + A6E5FCE927BABD7D008EF9E1 /* mainmenu_btn_ar.png in Resources */, A633CDCE27A93ED600450383 /* mainmenu_btn_explore.png in Resources */, A6B94B2127B5557300861198 /* inventory_collected2.png in Resources */, A6B94B2527B56A5E00861198 /* passwordsBruteForceOutro.mp4 in Resources */, + A675CCA927B81A39003B3C58 /* reflect_slide.png in Resources */, A6A78BF427A9579800675532 /* Avatar.png in Resources */, + A675CCA727B818C1003B3C58 /* explore_btn_reflect.png in Resources */, A6005B8D27B03632009E2967 /* passwordsBruteForceIntro.m4v in Resources */, A633CDC827A93E3500450383 /* mainmenu_background02.png in Resources */, + A675CC9F27B80FCF003B3C58 /* bruteForce_mask_scan_four_stones.png in Resources */, A672B65527B1944D000A9007 /* strong_password.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Lets Literate.xcodeproj/project.xcworkspace/xcuserdata/aljoscha.xcuserdatad/UserInterfaceState.xcuserstate b/Lets Literate.xcodeproj/project.xcworkspace/xcuserdata/aljoscha.xcuserdatad/UserInterfaceState.xcuserstate index 1aa98d87c7a58786a26397f64ac939a641bd868b..469b0d94e168b1d8ab069188c38d0604b0229881 100755 Binary files a/Lets Literate.xcodeproj/project.xcworkspace/xcuserdata/aljoscha.xcuserdatad/UserInterfaceState.xcuserstate and b/Lets Literate.xcodeproj/project.xcworkspace/xcuserdata/aljoscha.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Lets Literate/.DS_Store b/Lets Literate/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..104787f1f0cbb53a898c89e43644431dd4c627bc Binary files /dev/null and b/Lets Literate/.DS_Store differ diff --git a/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/Contents.json b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/Contents.json index a38527f5300710351d60dbb76f2f14d16cea5bd8..e7ba22e448af9fb43af60e076671e73a97f9610a 100755 --- a/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/Contents.json +++ b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/Contents.json @@ -9,6 +9,9 @@ }, { "filename" : "stones_wrong01.arreferenceimage" + }, + { + "filename" : "stones_wrong02.arreferenceimage" } ] } diff --git a/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Anker_falsch02.png b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Anker_falsch02.png new file mode 100644 index 0000000000000000000000000000000000000000..704fd1e0ba5be84a2cab342695f3fe70cdbf0b5a Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Anker_falsch02.png differ diff --git a/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..6704e29d7602945a5c36de2867535bf6e0efba51 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Complex Passwords.arresourcegroup/stones_wrong02.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "Anker_falsch02.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 50 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/Contents.json b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/Contents.json index 1ef3cc15b03a3353c556057d782136fdd2f39967..99504371ecb09c12771f7b8bd4d45a2e5535807c 100755 --- a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/Contents.json +++ b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/Contents.json @@ -10,6 +10,9 @@ { "filename" : "anchor_passwords_task1.arreferenceimage" }, + { + "filename" : "anchor_passwords_task2_old.arreferenceimage" + }, { "filename" : "anchor_passwords_task2.arreferenceimage" }, diff --git a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Contents.json old mode 100755 new mode 100644 index 40310740e30c648acdfdba4969c8e5f2873fade8..42209b8a0398b4e18f1e0146e6aac4429e3d9ee3 --- a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Contents.json +++ b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "anchor_passwords_task2.png", + "filename" : "Gelb_Scan.png", "idiom" : "universal" } ], @@ -10,7 +10,6 @@ "version" : 1 }, "properties" : { - "unit" : "centimeters", "width" : 8 } } diff --git a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Gelb_Scan.png b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Gelb_Scan.png new file mode 100644 index 0000000000000000000000000000000000000000..2314463cac6cdef85f281fcdfa236b1a3ab67a90 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/Gelb_Scan.png differ diff --git a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2_old.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2_old.arreferenceimage/Contents.json new file mode 100755 index 0000000000000000000000000000000000000000..40310740e30c648acdfdba4969c8e5f2873fade8 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2_old.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "anchor_passwords_task2.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 8 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/anchor_passwords_task2.png b/Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2_old.arreferenceimage/anchor_passwords_task2.png similarity index 100% rename from Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2.arreferenceimage/anchor_passwords_task2.png rename to Lets Literate/Assets.xcassets/AR Passwords.arresourcegroup/anchor_passwords_task2_old.arreferenceimage/anchor_passwords_task2.png diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/Contents.json b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..b2854a7300668c621d9ccb008a22837e349a8a7a --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/Contents.json @@ -0,0 +1,20 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "resources" : [ + { + "filename" : "stone_1_schwarz.arreferenceimage" + }, + { + "filename" : "stone_Fragezeichen.arreferenceimage" + }, + { + "filename" : "stone_H_schwarz.arreferenceimage" + }, + { + "filename" : "stone_i_schwarz.arreferenceimage" + } + ] +} diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..67084282ad4bf6f76ecadef26b9f4427c604f394 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_1_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 4.1246612466124661 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..6f64c2f12b34854eed09e88af9185d6be811fec9 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..4a52f3f1fd33d67902db796d2da35006b32c2acc --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_Fragezeichen.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 8 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/stone_Fragezeichen.png b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/stone_Fragezeichen.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc3df5caf94135a80d31899a4057a2cd0d2fa58 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_Fragezeichen.arreferenceimage/stone_Fragezeichen.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..64590b8aaf060e40581da88fd62dd4c1612b083d --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_H_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 8 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..0b625d80bd70c227f04026278acac4aa8e4f9a43 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..d2d2e2bd38edf77fab2f582c2fa310c514a3ee37 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_i_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 5.4022491349480974 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..36c5b5424d27594a4ff1b713a3310254b816352a Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stones Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/Contents.json b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/Contents.json index ebc3f3fbf45c954c618ee82fc57b59c463044d55..b42407ed4bfe79b23dd73f4b914720b260e167e1 100755 --- a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/Contents.json +++ b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/Contents.json @@ -15,6 +15,18 @@ }, { "filename" : "demo_stone_texture06.arreferenceimage" + }, + { + "filename" : "stone_1_schwarz.arreferenceimage" + }, + { + "filename" : "stone_Fragezeichen_schwarz.arreferenceimage" + }, + { + "filename" : "stone_H_schwarz.arreferenceimage" + }, + { + "filename" : "stone_i_schwarz.arreferenceimage" } ] } diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..67084282ad4bf6f76ecadef26b9f4427c604f394 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_1_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 4.1246612466124661 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..6f64c2f12b34854eed09e88af9185d6be811fec9 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_1_schwarz.arreferenceimage/stone_1_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..0573ac7c1d14288fe6712f5917d4343f346c8afb --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_Fragezeichen_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 8 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/stone_Fragezeichen_schwarz.png b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/stone_Fragezeichen_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc3df5caf94135a80d31899a4057a2cd0d2fa58 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_Fragezeichen_schwarz.arreferenceimage/stone_Fragezeichen_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..cdba5e0284cc09d9749bbbf86b16d3d10b475fab --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_H_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 0 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..0b625d80bd70c227f04026278acac4aa8e4f9a43 Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_H_schwarz.arreferenceimage/stone_H_schwarz.png differ diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..4ab5a7be2d3d6197be85980a25c8c138cc5436e2 --- /dev/null +++ b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "stone_i_schwarz.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "unit" : "centimeters", + "width" : 8.6435986159169556 + } +} diff --git a/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png new file mode 100644 index 0000000000000000000000000000000000000000..36c5b5424d27594a4ff1b713a3310254b816352a Binary files /dev/null and b/Lets Literate/Assets.xcassets/AR Stonetextures Demo.arresourcegroup/stone_i_schwarz.arreferenceimage/stone_i_schwarz.png differ diff --git a/Lets Literate/Base.lproj/Main.storyboard b/Lets Literate/Base.lproj/Main.storyboard index 03d99e5d3a4aa4a98dad5aa14c4cbbb73f471a8b..b3e04d2f0bbccf1312226a55e2d17ad20583a382 100755 --- a/Lets Literate/Base.lproj/Main.storyboard +++ b/Lets Literate/Base.lproj/Main.storyboard @@ -4,7 +4,6 @@ <dependencies> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/> - <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> @@ -50,6 +49,15 @@ <action selector="btnResetGame:" destination="181-DP-seY" eventType="touchUpInside" id="Vzc-53-VU3"/> </connections> </button> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ye2-ib-5ya"> + <rect key="frame" x="318" y="39" width="36" height="26"/> + <autoresizingMask key="autoresizingMask"/> + <state key="normal" title="Button"/> + <buttonConfiguration key="configuration" style="plain" image="mainmenu_btn_ar.png"/> + <connections> + <action selector="btnShowAR:" destination="181-DP-seY" eventType="touchUpInside" id="ZKp-LQ-mxu"/> + </connections> + </button> </subviews> <viewLayoutGuide key="safeArea" id="O3L-ny-7bN"/> <constraints> @@ -89,7 +97,7 @@ </imageView> </subviews> <viewLayoutGuide key="safeArea" id="qAL-el-en3"/> - <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <color key="backgroundColor" red="0.8481633663" green="0.99272233249999997" blue="0.96470469240000001" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> </view> <connections> <outlet property="tasksImages" destination="LwO-ar-Tgb" id="3P6-1p-pIT"/> @@ -116,7 +124,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> </imageView> <button opaque="NO" contentMode="scaleAspectFit" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q3d-yX-5Zb"> - <rect key="frame" x="20" y="773" width="27" height="17"/> + <rect key="frame" x="20" y="608" width="27" height="17"/> <autoresizingMask key="autoresizingMask"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="plain" image="explore_btn_inventory.png" imagePlacement="top"/> @@ -125,26 +133,37 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xia-PE-98c"> - <rect key="frame" x="24" y="44" width="99" height="31"/> + <rect key="frame" x="24" y="44" width="23" height="31"/> <autoresizingMask key="autoresizingMask"/> <state key="normal" title="Button"/> - <buttonConfiguration key="configuration" style="plain" title="Menu"/> + <buttonConfiguration key="configuration" style="plain" image="explore_btn_menu_hamburger.png"/> <connections> <action selector="btnMenu:" destination="i7I-eI-Nkw" eventType="touchUpInside" id="3Nh-CY-n6Z"/> </connections> </button> <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="This is the "A"." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wyk-sH-5t1"> - <rect key="frame" x="24" y="570" width="350" height="61"/> + <rect key="frame" x="24" y="480" width="350" height="61"/> <autoresizingMask key="autoresizingMask"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="0.8481633663" green="0.99272233249999997" blue="0.96470469240000001" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> + <fontDescription key="fontDescription" type="system" pointSize="21"/> + <color key="textColor" red="0.99999600649999998" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> + <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FlW-aR-DhF"> + <rect key="frame" x="119" y="495" width="152" height="31"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Button"/> + <buttonConfiguration key="configuration" style="plain" image="explore_btn_reflect.png"/> + <connections> + <action selector="btnReflectAction:" destination="i7I-eI-Nkw" eventType="touchUpInside" id="3OA-l1-W92"/> + </connections> + </button> <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PLd-VN-hME"> - <rect key="frame" x="125" y="639" width="130" height="31"/> + <rect key="frame" x="130" y="549" width="130" height="31"/> <autoresizingMask key="autoresizingMask"/> <state key="normal" title="Button"/> - <buttonConfiguration key="configuration" style="plain" title="Use"/> + <buttonConfiguration key="configuration" style="plain" image="bruteForce_btn_use.png"> + <preferredSymbolConfiguration key="preferredSymbolConfigurationForImage"/> + </buttonConfiguration> <connections> <action selector="btnUseAction:" destination="i7I-eI-Nkw" eventType="touchUpInside" id="cHk-Yg-gQq"/> </connections> @@ -153,6 +172,7 @@ <viewLayoutGuide key="safeArea" id="1G2-d4-lGi"/> </view> <connections> + <outlet property="btnReflect" destination="FlW-aR-DhF" id="4UG-43-eIo"/> <outlet property="btnUse" destination="PLd-VN-hME" id="RlJ-3a-0zv"/> <outlet property="imageScanMask" destination="Hg8-ZO-JZR" id="VlB-tW-gp3"/> <outlet property="labelDecoded" destination="Wyk-sH-5t1" id="t0B-2y-6ck"/> @@ -173,7 +193,7 @@ <rect key="frame" x="0.0" y="0.0" width="390" height="790"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="inventory_collected2.png" translatesAutoresizingMaskIntoConstraints="NO" id="wRa-6t-xft"> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="inventory_not_collected.png" translatesAutoresizingMaskIntoConstraints="NO" id="wRa-6t-xft"> <rect key="frame" x="16" y="23" width="358" height="650"/> </imageView> </subviews> @@ -196,15 +216,16 @@ </scene> </scenes> <resources> + <image name="bruteForce_btn_use.png" width="16.319999694824219" height="13.439999580383301"/> <image name="explore_btn_inventory.png" width="3" height="3"/> + <image name="explore_btn_menu_hamburger.png" width="5.7600002288818359" height="5.7600002288818359"/> + <image name="explore_btn_reflect.png" width="82.319999694824219" height="13.439999580383301"/> <image name="explore_mask_scan.png" width="375" height="667"/> - <image name="inventory_collected2.png" width="362" height="656"/> + <image name="inventory_not_collected.png" width="362" height="656"/> <image name="mainmenu_background03.png" width="512" height="911"/> + <image name="mainmenu_btn_ar.png" width="11.520000457763672" height="11.760000228881836"/> <image name="mainmenu_btn_explore.png" width="375" height="71"/> <image name="mainmenu_btn_reset.png" width="61" height="42"/> <image name="mainmenu_btn_tutorial.png" width="375" height="71"/> - <systemColor name="systemBackgroundColor"> - <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> - </systemColor> </resources> </document> diff --git a/Lets Literate/ExploreViewController.swift b/Lets Literate/ExploreViewController.swift index 7ae486cd0d52d4ebf0e287ba16b409daf3bab36f..30d01c5e7264e08ee69a04e04df1f233c3017716 100755 --- a/Lets Literate/ExploreViewController.swift +++ b/Lets Literate/ExploreViewController.swift @@ -20,20 +20,31 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel private var _pause : Bool = false private var _taskImage : String = "ranking_passwords.png" private var _inTask1 : Bool = false + private var _disclaimer_showed = false private var subTask = 0 private var task11_stone_to_use = "" private var task12_stones_to_use = "" + + @IBOutlet weak var btnReflect: UIButton! + + @IBAction func btnReflectAction(_ sender: Any) { + self._taskImage = "reflect_slide.png" + performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) + } + @IBOutlet weak var btnUse: UIButton! @IBAction func btnUseAction(_ sender: Any) { if Game.isInTask1() == true && subTask == 1 { print("Task1.1: Use-Button was tapped.") if task11_stone_to_use == "1" { print("Task1.1: correct stone selected") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._playPasswordsTaskBruteForceAttackFrom1To3Chars() Game.setMode(mode: .task1) subTask = 2 + imageScanMask.image = UIImage(named:"bruteForce_mask_scan_four_stones.png") self.labelDecoded.isHidden = true self.btnUse.isEnabled = false self.btnUse.isHidden = true @@ -41,17 +52,19 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel print("Settings: Station: " + Game.getActStation().toString() + ", mode:" + Game.getMode().toString() + ", subTask=" + String(subTask)) } else { print("Task1.1: wrong stone selected") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) subTask = 1 self.labelDecoded.text = "This was the wrong answer." //self.labelDecoded.isHidden = true self.btnUse.isHidden = true - rkView.session.run(configurationPasswordsTask2) + rkView.session.run(configurationPasswordsTask1) } } if Game.isInTask1() == true && subTask == 2 { print("Task1.2: Use-Button was tapped.") if task12_stones_to_use == "Hi1?" { print("Task1.2: correct stones selected") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._playPasswordsTaskBruteForceAttackOutro() subTask = 0 self.labelDecoded.isHidden = true @@ -64,6 +77,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel rkView.session.run(configurationPasswords) } else { print("Task1.2: wrong stones selected") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) subTask = 2 self.labelDecoded.text = "This was the wrong answer." //self.labelDecoded.isHidden = true @@ -132,6 +146,20 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel Game.setMode(mode: .exploration) } + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + print("viewDidAppear(_:) called") + if self._disclaimer_showed == false { + self._taskImage = "explore_disclaimer.png" + performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) + self._disclaimer_showed = true + } + } + + /* + self._taskImage = "explore_disclaimer.png" + performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) + */ /* Do something if we found an anchor, depending on the state @@ -146,6 +174,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel } if let imageName = imageAnchor.name, imageName == "anchor_passwords_start" { print("Start of Station Passwords") //debug + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._playIntroStationPasswords() //delete the anchor rkView.session.pause() @@ -172,8 +201,8 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel print("inTask1: no imageAnchor found") return } - if let imageName = imageAnchor.name, imageName == "demo_stone_texture02" { - print("Station Passwords - Task 1.1: demo_stone_texture02 anchor found") + if let imageName = imageAnchor.name, imageName == "demo_stone_texture05" { //"demo_stone_texture02" - "stone_H_schwarz" + print("Station Passwords - Task 1.1: stone for H anchor found") rkView.session.remove(anchor: imageAnchor) rkView.session.pause() self.labelDecoded.text = "This is the 'H'." @@ -182,8 +211,8 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel self.task11_stone_to_use = "H" return } - if let imageName = imageAnchor.name, imageName == "demo_stone_texture03" { - print("Station Passwords - Task 1.1: demo_stone_texture02 anchor found") + if let imageName = imageAnchor.name, imageName == "demo_stone_texture02" { //"demo_stone_texture03" - "stone_i_schwarz" + print("Station Passwords - Task 1.1: stone for i anchor found") rkView.session.remove(anchor: imageAnchor) rkView.session.pause() self.labelDecoded.text = "This is the 'i'" @@ -192,8 +221,8 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel self.task11_stone_to_use = "i" return } - if let imageName = imageAnchor.name, imageName == "demo_stone_texture05" { - print("Station Passwords - Task 1.1: demo_stone_texture02 anchor found") + if let imageName = imageAnchor.name, imageName == "demo_stone_texture06" { //"demo_stone_texture05" - "stone_1_schwarz" + print("Station Passwords - Task 1.1: stone for One anchor found") rkView.session.remove(anchor: imageAnchor) rkView.session.pause() self.labelDecoded.text = "This is the '1'" @@ -202,8 +231,8 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel self.task11_stone_to_use = "1" return } - if let imageName = imageAnchor.name, imageName == "demo_stone_texture06" { - print("Station Passwords - Task 1.1: demo_stone_texture02 anchor found") + if let imageName = imageAnchor.name, imageName == "demo_stone_texture03" { //"demo_stone_texture06" - "stone_Fragezeichen_schwarz" //"demo_stone_texture06" + print("Station Passwords - Task 1.1: stone for questionmark anchor found") rkView.session.remove(anchor: imageAnchor) rkView.session.pause() self.labelDecoded.text = "This is the '?'" @@ -259,6 +288,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel if Game.getStations()[0].getTasks()[0].isSolved() == false { print("Start of Task 1 of Station Passwords") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._playPasswordsTaskBruteForceAttackIntro() //new configuration, run session again @@ -299,6 +329,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel if Game.getStations()[0].getTasks()[1].isSolved() == false { print("Start of Task 2 of Station Passwords") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._taskImage = "ranking_passwords.png" performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) print("Show information ... we make just a sleep for 5 seconds") @@ -336,6 +367,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel if Game.getStations()[0].getTasks()[2].isSolved() == false { print("Start of Task 3 of Station Passwords") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._taskImage = "types_of_usage.png" performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) print("Show information ... we make just a sleep for 5 seconds") @@ -373,6 +405,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel if Game.getStations()[0].getTasks()[3].isSolved() == false { print("Start of Task 4 of Station Passwords") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._taskImage = "good_idea_bad_idea.png" performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) print("Show information ... we make just a sleep for 5 seconds") @@ -415,7 +448,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel } alertController.addAction(okayAction) self.present(alertController, animated: true, completion: nil) - + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) rkView.session.remove(anchor: imageAnchor) print("Removed anchor: anchor_passwords_end") imageScanMask.image = UIImage(named:"station_passwords_scan_cube_plane.png") @@ -431,6 +464,7 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel if Game.getStations()[0].getTasks()[4].isSolved() == false { print("Start of final Task 5 of Station Passwords") + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._taskImage = "strong_password.png" performSegue(withIdentifier: "fromExplore2ImagesSegue", sender: self) print("Show information ... we make just a sleep for 5 seconds") @@ -445,14 +479,17 @@ class ExploreViewController: UIViewController, ARSessionDelegate, UIAlertViewDel print("Set up new AR configuration: Find a Cube") rkView.session.run(configurationPasswords) print("Final task 5 done, back to explore mode") - let timer2 = Timer.scheduledTimer(withTimeInterval: 20.0, repeats: false) { + let timer2 = Timer.scheduledTimer(withTimeInterval: 15.0, repeats: false) { timer in + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) self._playPasswordsOutro() + self.btnReflect.isHidden = false } Game.setMode(mode: .exploration) Game.setActStation(station: .none) + self.imageScanMask.isHidden = true } else { // this should never happen - print("Taks 5 was already solved") + print("Task 5 was already solved") rkView.session.pause() let alertController = UIAlertController(title: "Information", message: "You've already passed this task and the whole station. Scan another cube to progress.", preferredStyle: .alert) // Initialize Actions diff --git a/Lets Literate/Game.swift b/Lets Literate/Game.swift index b3a9f07392e40859f576694d4bc295375731089e..d2cfcb8420eedabf95e69fc291d646796793c5d8 100755 --- a/Lets Literate/Game.swift +++ b/Lets Literate/Game.swift @@ -172,26 +172,31 @@ class Game { let task1 = Task() task1.setName(name: "Brute Force Attack") task1.setDescription(description: "Ein leichtes und ein schwereres Passwort knacken.") + task1.setSolved(solved: false) passwords.addTask(task: task1) let task2 = Task() task2.setName(name: "Ranking Passwords") task2.setDescription(description: "Verschieden komplexe Passwort nach ihrer Sicherheit in eine Reihenfolge bringen.") + task2.setSolved(solved: false) passwords.addTask(task: task2) let task3 = Task() task3.setName(name: "Types of Usage") task3.setDescription(description: "Nutzungsarten: Gemeinsam genutztes Passwort, persönliches Passwort, Einmal-Passwort") + task3.setSolved(solved: false) passwords.addTask(task: task3) let task4 = Task() task4.setName(name: "Good Idea - Bad Idea") task4.setDescription(description: "gute und schlechte Aufbewahrungsmöglichkeiten von Passwörtern - Post-it unter der Tastatur, als Notiz im Handy, als Klartextdatei auf dem Computer, Passwortmanager") + task4.setSolved(solved: false) passwords.addTask(task: task4) let task5 = Task() task5.setName(name: "Create a Safe Password") task5.setDescription(description: "Ein sicheres Passwort erstellen. Rekapituliere das bisher Gelernte und nutze es. Erhalte ein entsprechendes Collectable.") + task5.setSolved(solved: false) task5.setFinal(isFinal: true) passwords.addTask(task: task5) @@ -204,33 +209,21 @@ class Game { passwords.setSolved(solved: false) let task1 = Task() - //task1.setName(name: "Brute Force Attack") - //task1.setDescription(description: "Ein leichtes und ein schwereres Passwort knacken.") passwords.addTask(task: task1) let task2 = Task() - //task2.setName(name: "Ranking Passwords") - //task2.setDescription(description: "Verschieden komplexe Passwort nach ihrer Sicherheit in eine Reihenfolge bringen.") passwords.addTask(task: task2) let task3 = Task() - //task3.setName(name: "Types of Usage") - //task3.setDescription(description: "Nutzungsarten: Gemeinsam genutztes Passwort, persönliches Passwort, Einmal-Passwort") passwords.addTask(task: task3) let task4 = Task() - //task4.setName(name: "Alternatives to Passwords") - //task4.setDescription(description: "2-Faktor-Authentifizerung - Legen eines geforderten Musters mit Legesteinen") passwords.addTask(task: task4) let task5 = Task() - //task5.setName(name: "Good Idea - Bad Idea") - //task5.setDescription(description: "gute und schlechte Aufbewahrungsmöglichkeiten von Passwörtern - Post-it unter der Tastatur, als Notiz im Handy, als Klartextdatei auf dem Computer, Passwortmanager") passwords.addTask(task: task5) let task6 = Task() - //task6.setName(name: "Create a Safe Password") - //task6.setDescription(description: "Ein sicheres Passwort erstellen. Rekapituliere das bisher Gelernte und nutze es. Erhalte ein entsprechendes Collectable.") task6.setFinal(isFinal: true) passwords.addTask(task: task6) diff --git a/Lets Literate/HomeViewController.swift b/Lets Literate/HomeViewController.swift index f64433d627e3b52f8f3c7daff4635cbcf650d603..044de03f47a0902c328ccb216aa45922943636e7 100755 --- a/Lets Literate/HomeViewController.swift +++ b/Lets Literate/HomeViewController.swift @@ -14,11 +14,22 @@ class HomeViewController: UIViewController, UIAlertViewDelegate { override func viewDidLoad() { super.viewDidLoad() Game.resetGame() - //let mainMenuBackgroundImagePath = Bundle.main.path(forResource: "mainmenu_background02", ofType: "png")! - //print(mainMenuBackgroundImagePath) - //self.view.backgroundColor = UIColor(patternImage: UIImage(named: "mainmenu_background02.png")!) - //self.view.backgroundColor = UIColor(patternImage: UIImage(named: mainMenuBackgroundImagePath)!) - // Do any additional setup after loading the view. + } + + @IBAction func btnShowAR(_ sender: Any) { + let url = URL(fileURLWithPath: Bundle.main.path(forResource: "ar-mode", ofType: "mp4")!) + + // Create an AVPlayer, passing it the HTTP Live Streaming URL. + let player = AVPlayer(url: url) + + // Create a new AVPlayerViewController and pass it a reference to the player. + let controller = AVPlayerViewController() + controller.player = player + + // Modally present the player and call the player's play() method when complete. + present(controller, animated: true) { + player.play() + } } @IBAction func btnResetGame(_ sender: Any) { @@ -37,6 +48,7 @@ class HomeViewController: UIViewController, UIAlertViewDelegate { @IBAction func btnStartExploration(_ sender: Any) { Game.setMode(mode: .exploration) + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) performSegue(withIdentifier: "fromHome2ExploreSegue", sender: self) } @@ -55,14 +67,5 @@ class HomeViewController: UIViewController, UIAlertViewDelegate { player.play() } } - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ } diff --git a/Lets Literate/ar-mode.mp4 b/Lets Literate/ar-mode.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..df1f848027a2a1ef456e271ae76d5b6673e1c065 Binary files /dev/null and b/Lets Literate/ar-mode.mp4 differ diff --git a/Lets Literate/bruteForce_btn_use.png b/Lets Literate/bruteForce_btn_use.png new file mode 100755 index 0000000000000000000000000000000000000000..1496782d9d413d6fb73920b84b1a1edec8ee55ca Binary files /dev/null and b/Lets Literate/bruteForce_btn_use.png differ diff --git a/Lets Literate/bruteForce_mask_scan_four_stones.png b/Lets Literate/bruteForce_mask_scan_four_stones.png new file mode 100755 index 0000000000000000000000000000000000000000..a0bffa6b99eb420758c51780b9082cb08c292bc2 Binary files /dev/null and b/Lets Literate/bruteForce_mask_scan_four_stones.png differ diff --git a/Lets Literate/explore_btn_menu_hamburger.png b/Lets Literate/explore_btn_menu_hamburger.png new file mode 100755 index 0000000000000000000000000000000000000000..733ccf0425b08c00cda6e1efc8ea19512bede95f Binary files /dev/null and b/Lets Literate/explore_btn_menu_hamburger.png differ diff --git a/Lets Literate/explore_btn_reflect.png b/Lets Literate/explore_btn_reflect.png new file mode 100755 index 0000000000000000000000000000000000000000..e120ee1e4cee094868cca49777d8793e4f8a700c Binary files /dev/null and b/Lets Literate/explore_btn_reflect.png differ diff --git a/Lets Literate/explore_disclaimer.png b/Lets Literate/explore_disclaimer.png new file mode 100755 index 0000000000000000000000000000000000000000..1b2bd4c73417599d0b0f3da15fc7289726c52afc Binary files /dev/null and b/Lets Literate/explore_disclaimer.png differ diff --git a/Lets Literate/mainmenu_btn_ar.png b/Lets Literate/mainmenu_btn_ar.png new file mode 100644 index 0000000000000000000000000000000000000000..40635f0110f4415653f25d6cddf923af53058059 Binary files /dev/null and b/Lets Literate/mainmenu_btn_ar.png differ diff --git a/Lets Literate/reflect_slide.png b/Lets Literate/reflect_slide.png new file mode 100755 index 0000000000000000000000000000000000000000..4f368bdd258aead02df6ba41707a035437c6dd2c Binary files /dev/null and b/Lets Literate/reflect_slide.png differ