Przeglądaj źródła

Börjat skapa online prefab, statusar på spel. Går att skapa online spel (inte spela).

Axel Nordh 6 lat temu
rodzic
commit
37c767b5df

+ 14 - 13
Assets/MainMenu.unity

@@ -2278,8 +2278,8 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 321314049}
-  - component: {fileID: 321314050}
   - component: {fileID: 321314051}
+  - component: {fileID: 321314050}
   m_Layer: 5
   m_Name: OnlineGamesList
   m_TagString: Untagged
@@ -2302,10 +2302,10 @@ RectTransform:
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 0, y: -0.000021635915}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -0.000045776367, y: 0.0004983821}
   m_SizeDelta: {x: 0, y: 0}
-  m_Pivot: {x: 0, y: 1}
+  m_Pivot: {x: 0.5, y: 1}
 --- !u!114 &321314050
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -2319,16 +2319,16 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Padding:
-    m_Left: 0
-    m_Right: 0
-    m_Top: 10
-    m_Bottom: 10
+    m_Left: 5
+    m_Right: 5
+    m_Top: 0
+    m_Bottom: 0
   m_ChildAlignment: 0
-  m_Spacing: 2
+  m_Spacing: 3
   m_ChildForceExpandWidth: 1
-  m_ChildForceExpandHeight: 0
+  m_ChildForceExpandHeight: 1
   m_ChildControlWidth: 1
-  m_ChildControlHeight: 0
+  m_ChildControlHeight: 1
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
 --- !u!114 &321314051
@@ -2343,7 +2343,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_HorizontalFit: 2
+  m_HorizontalFit: 0
   m_VerticalFit: 2
 --- !u!1 &327548079
 GameObject:
@@ -6177,7 +6177,7 @@ MonoBehaviour:
   m_TargetGraphic: {fileID: 761483707}
   m_HandleRect: {fileID: 761483706}
   m_Direction: 2
-  m_Value: 1
+  m_Value: 0
   m_Size: 1
   m_NumberOfSteps: 0
   m_OnValueChanged:
@@ -7285,6 +7285,7 @@ MonoBehaviour:
   currentPlayerText: {fileID: 0}
   swedishButton: {fileID: 1855887698}
   englishButton: {fileID: 1938629056}
+  logoutButton: {fileID: 540923022}
   returnToMenu: 0
 --- !u!1 &1273003560
 GameObject:

+ 578 - 0
Assets/Prefab/OnlineGame.prefab

@@ -0,0 +1,578 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4443270112465168313
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270112465168312}
+  - component: {fileID: 4443270112465168293}
+  - component: {fileID: 4443270112465168294}
+  - component: {fileID: 4443270112465168295}
+  m_Layer: 5
+  m_Name: StatusText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270112465168312
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112465168313}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4443270113653808743}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4443270112465168293
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112465168313}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270112465168294
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112465168313}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 539bd096d40d9934d916d02e161ee660, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  key: ONLINE_GAME_STATUS_TITLE
+--- !u!114 &4443270112465168295
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112465168313}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 1
+    m_MinSize: 10
+    m_MaxSize: 18
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Status
+--- !u!1 &4443270112486813073
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270112486813072}
+  - component: {fileID: 4443270112486813086}
+  - component: {fileID: 4443270112486813087}
+  m_Layer: 5
+  m_Name: OnlineGameInfoPanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270112486813072
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112486813073}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4443270113439902655}
+  m_Father: {fileID: 4443270113283690093}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 40}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4443270112486813086
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112486813073}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270112486813087
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270112486813073}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.39215687}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &4443270113229645987
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270113229645986}
+  - component: {fileID: 4443270113229645999}
+  - component: {fileID: 4443270113229645984}
+  - component: {fileID: 4443270113229645985}
+  m_Layer: 5
+  m_Name: StatusValueText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270113229645986
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113229645987}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4443270113653808743}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4443270113229645999
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113229645987}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270113229645984
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113229645987}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 539bd096d40d9934d916d02e161ee660, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  key: ONLINE_GAME_STATUS_TITLE_VALUE_PENDING
+--- !u!114 &4443270113229645985
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113229645987}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 1
+    m_MinSize: 10
+    m_MaxSize: 18
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Paceholder Text
+--- !u!1 &4443270113283690094
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270113283690093}
+  - component: {fileID: 4443270113283690090}
+  - component: {fileID: 4443270113283690091}
+  - component: {fileID: 4443270113283690092}
+  - component: {fileID: 4443270113283690089}
+  m_Layer: 5
+  m_Name: OnlineGame
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270113283690093
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113283690094}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4443270113653808743}
+  - {fileID: 4443270112486813072}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4443270113283690090
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113283690094}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270113283690091
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113283690094}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4443270113283690092
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113283690094}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+--- !u!114 &4443270113283690089
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113283690094}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5a8c4824064d7f14db5b1b8c2d0f5f24, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  gameStatusText: {fileID: 0}
+  gameTitleText: {fileID: 4443270113439902654}
+--- !u!1 &4443270113439902640
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270113439902655}
+  - component: {fileID: 4443270113439902652}
+  - component: {fileID: 4443270113439902653}
+  - component: {fileID: 4443270113439902654}
+  m_Layer: 5
+  m_Name: OnlineGameStatusText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270113439902655
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113439902640}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4443270112486813072}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4443270113439902652
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113439902640}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270113439902653
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113439902640}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 539bd096d40d9934d916d02e161ee660, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  key: ONLINE_GAME_STATUS_TEXT
+--- !u!114 &4443270113439902654
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113439902640}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 1
+    m_MinSize: 10
+    m_MaxSize: 28
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: New Text
+--- !u!1 &4443270113653808760
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4443270113653808743}
+  - component: {fileID: 4443270113653808740}
+  - component: {fileID: 4443270113653808741}
+  - component: {fileID: 4443270113653808742}
+  m_Layer: 5
+  m_Name: StatusPanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4443270113653808743
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113653808760}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4443270112465168312}
+  - {fileID: 4443270113229645986}
+  m_Father: {fileID: 4443270113283690093}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 20}
+  m_Pivot: {x: 0.5, y: 1}
+--- !u!222 &4443270113653808740
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113653808760}
+  m_CullTransparentMesh: 0
+--- !u!114 &4443270113653808741
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113653808760}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, Unity.ugui,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4443270113653808742
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4443270113653808760}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 1
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0

+ 7 - 0
Assets/Prefab/OnlineGame.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7f480eea4df9d6b4a8174b27a5f06df2
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 75 - 32
Assets/Scripts/Database.cs

@@ -19,7 +19,7 @@ public class Database : MonoBehaviour {
     public GameObject questionCardPrefab;
 
     private static Database instance;
-    public static Database Instance {  get { return instance; } }
+    public static Database Instance { get { return instance; } }
 
     IDbConnection conn;
 
@@ -36,10 +36,10 @@ public class Database : MonoBehaviour {
         cmd.CommandText = sql;
 
         IDataReader reader = cmd.ExecuteReader();
-        
+
         while (reader.Read()) {
             CategoryPanel.Category cat = new CategoryPanel.Category();
-            
+
             byte r = (byte)reader.GetInt32(1);
             byte g = (byte)reader.GetInt32(2);
             byte b = (byte)reader.GetInt32(3);
@@ -57,26 +57,7 @@ public class Database : MonoBehaviour {
     internal void SetupNewOnlineGame(int limitPerQuestion, int limitPerPlayer, int toWin, List<InviteSearchResult> inviteUsers) {
         List<int> playerIds = new List<int>();
         inviteUsers.ForEach(i => playerIds.Add(i.GetId()));
-        playerIds.Add(PlayerPrefs.GetInt("UserId"));
-
-        string sql = "INSERT INTO game(" +
-            "gameMode, " +
-            "winNumber, " +
-            "answerTimer, " +
-            "roundTimeLimit, " +
-            "numberOfPlayers, " +
-            "currentPlayer, " +
-            "round, " +
-            "startedDate) " +
-            "VALUES (" +
-            "'Online', " +
-            ""+toWin+", " +
-            ""+limitPerQuestion+", " +
-            ""+limitPerPlayer+", " +
-            ""+inviteUsers.Count+", " +
-            "(SELECT username FROM users WHERE id IN (" + String.Join(",",playerIds) + ") ORDER BY RAND() LIMIT 1), " +
-            "1, " +
-            "NOW())";
+        playerIds.Add(Database.Instance.GetSignedInUser());
 
         var form = new WWWForm();
         form.AddField("winNumber", toWin);
@@ -116,6 +97,13 @@ public class Database : MonoBehaviour {
 
         UnityWebRequest www = UnityWebRequest.Post(postUrl, formData);
         www.SendWebRequest();
+
+        if (www.isNetworkError || www.isHttpError) {
+            Debug.Log(www.error);
+        } else {
+            while (!www.isDone) {
+            }
+        }
     }
 
     internal void SetLastPlayedDate(int gameId) {
@@ -155,11 +143,66 @@ public class Database : MonoBehaviour {
 
 
     private void Start() {
+        if (instance == null) {
+            instance = this;
+        }
+
         if (databaseUrl == null || databaseUrl.Equals("")) {
-            SetLocalOrOnline("Local"); // Temporary, shoild not be needed after local testing
+            SetLocalOrOnline("Local"); // Temporary, should not be needed after local testing
         }
     }
 
+    internal void KeepSignedIn(string username, int userId, bool keepSigendIn) {
+        int ksi = 0;
+        if (keepSigendIn) {
+            ksi = 1;
+        }
+        string sql = "INSERT OR REPLACE INTO userSettings (username, userId, keepSignedIn) VALUES ('" + username + "', " + userId + "," + ksi + ")";
+        IDbCommand cmd = GetConnection();
+        cmd.CommandText = sql;
+
+        cmd.ExecuteNonQuery();
+        CloseConnection();
+    }
+
+    internal bool IsKeepSignedIn() {
+        string sql = "SELECT keepSignedIn FROM userSettings";
+        IDbCommand cmd = GetConnection();
+        cmd.CommandText = sql;
+
+        IDataReader reader = cmd.ExecuteReader();
+        int res = 0;
+        while (reader.Read()) {
+            res = reader.GetInt32(0);
+        }
+        return res == 1;
+    }
+
+    internal int GetSignedInUser() {
+        string sql = "SELECT userId FROM userSettings";
+        IDbCommand cmd = GetConnection();
+        cmd.CommandText = sql;
+        int userId = -1;
+        IDataReader reader = cmd.ExecuteReader();
+        while (reader.Read()) {
+            userId = reader.GetInt32(0);
+        }
+
+        CloseConnection();
+        return userId;
+    }
+
+    internal void LogoutUser() {
+        string sql = "UPDATE userSettings SET keepSignedIn = 0";
+        IDbCommand cmd = GetConnection();
+        cmd.CommandText = sql;
+
+        cmd.ExecuteNonQuery();
+        CloseConnection();
+
+
+    }
+
     internal int GetQuestionTimer(int gameId) {
         if (questionTimer == -1) {
             string sql = "SELECT answerTimer FROM game WHERE id = " + gameId;
@@ -214,7 +257,7 @@ public class Database : MonoBehaviour {
                 lgs.Round = reader.GetInt32(6).ToString();
                 lgs.StartDate = reader.GetString(7);
                 lgs.LastPlayedDate = reader.GetString(8);
-                lgs.FinishedDate = reader.IsDBNull(9)?"":reader.GetString(9);
+                lgs.FinishedDate = reader.IsDBNull(9) ? "" : reader.GetString(9);
 
                 currentPlayerName = reader.GetString(10);
                 currentPoints = GetPlayerPoints(reader.GetInt32(0), currentPlayerName);
@@ -247,7 +290,7 @@ public class Database : MonoBehaviour {
 
         cmd.Dispose();
         conn.Close();
-        
+
     }
 
     internal void RemoveGame(int gameId) {
@@ -259,7 +302,7 @@ public class Database : MonoBehaviour {
         IDbCommand cmd = conn.CreateCommand();
         cmd.CommandText = sql;
         cmd.ExecuteNonQuery();
-        
+
         string deleteLockedQuestionsSql = "DELETE FROM usersLockedQuestions WHERE gameId = " + gameId;
         cmd.CommandText = deleteLockedQuestionsSql;
         cmd.ExecuteNonQuery();
@@ -300,7 +343,7 @@ public class Database : MonoBehaviour {
     }
 
     internal int GetPlayerPoints(int gameId, string playerName) {
-        string sql = "SELECT count(*) FROM usersLockedQuestions WHERE gameId = " + gameId + " AND playerName = '" +playerName + "'";
+        string sql = "SELECT count(*) FROM usersLockedQuestions WHERE gameId = " + gameId + " AND playerName = '" + playerName + "'";
         IDbConnection conn = new SqliteConnection(databaseUrl);
         conn.Open();
         IDbCommand cmd = conn.CreateCommand();
@@ -417,7 +460,7 @@ public class Database : MonoBehaviour {
         IDataReader reader = cmd.ExecuteReader();
         int returnValue = 0;
         while (reader.Read()) {
-             returnValue = reader.GetInt32(0);
+            returnValue = reader.GetInt32(0);
         }
         reader.Close();
         cmd.Dispose();
@@ -533,7 +576,7 @@ public class Database : MonoBehaviour {
 
     public NewQuestion GetNewQuestion(List<int> userAnsweredQuestions, string userName) {
         int gameId = GameObject.Find("GameManager").GetComponent<GameManagerScript>().GameId;
-        Color32 questionCategoryColor = new Color32(0,0,20,20);
+        Color32 questionCategoryColor = new Color32(0, 0, 20, 20);
         if (connectionType == null) {
             SetLocalOrOnline(GetGameMode(gameId));
         }
@@ -543,7 +586,7 @@ public class Database : MonoBehaviour {
             IDbCommand cmd = conn.CreateCommand();
 
             string answeredIds = String.Join(",", userAnsweredQuestions);
-            
+
             string sql = "SELECT questions.id, question, answer, categoryId as category, name, category.R, category.G, category.B, category.A FROM questions INNER JOIN questionToCategory ON questions.id = questionToCategory.questionId INNER JOIN category on category.id = questionToCategory.categoryId WHERE questions.id NOT IN (" + answeredIds + ") AND questions.id NOT IN (SELECT questionId FROM questionsInGame WHERE gameId = " + gameId + " AND userId = (SELECT id from localUsers WHERE name = '" + userName + "')) ORDER BY RANDOM() limit 1";
             cmd.CommandText = sql;
             IDataReader reader = cmd.ExecuteReader();
@@ -688,5 +731,5 @@ public class Database : MonoBehaviour {
         // TODO handle empty
         return uNames.usernamesList;
     }
-    
+
 }

+ 6 - 0
Assets/Scripts/InformationPanelScript.cs

@@ -12,6 +12,8 @@ public class InformationPanelScript : MonoBehaviour
     public Button swedishButton;
     public Button englishButton;
 
+    public Button logoutButton;
+
     public bool returnToMenu = false;
 
     // Start is called before the first frame update
@@ -19,6 +21,10 @@ public class InformationPanelScript : MonoBehaviour
         quitButton.onClick.AddListener(quitButtonAction);
         swedishButton.onClick.AddListener(() => SwitchLanguage(0));
         englishButton.onClick.AddListener(() => SwitchLanguage(1));
+        logoutButton.onClick.AddListener(() => {
+            Database.Instance.LogoutUser();
+            SceneManager.LoadScene("User");
+        });
     }
 
     public void SetCurrentPlayer(string playerName) {

+ 1 - 1
Assets/Scripts/InvitePanelScript.cs

@@ -93,7 +93,7 @@ public class InvitePanelScript : MonoBehaviour {
         List<Database.UserName> foundUsers = Database.Instance.GetUsersToInvite(searchField.text);
         InviteSearchResult[] added = searchResultPanel.GetComponentsInChildren<InviteSearchResult>();
         foreach (Database.UserName un in foundUsers) {
-            if (PlayerPrefs.GetInt("UserId").ToString().Equals(un.id)) {
+            if (Database.Instance.GetSignedInUser().ToString().Equals(un.id)) {
                 continue;
             }
             bool skip = false;

+ 11 - 8
Assets/Scripts/Login/Login.cs

@@ -16,10 +16,11 @@ public class Login : MonoBehaviour {
     public GameObject password;
 
     public Button loginButton;
-
     public Button SwedishButton;
     public Button EnglishButton;
 
+    public Toggle keepSignedIn;
+
     public Text errorText;
 
     private string Username;
@@ -36,6 +37,9 @@ public class Login : MonoBehaviour {
     }
 
     private void Start() {
+        if (Database.Instance.IsKeepSignedIn()) {
+            SceneManager.LoadScene("MainMenu");
+        }
         loginButton.onClick.AddListener(loginAction);
         errorColor = errorText.color;
         system = EventSystem.current;
@@ -72,7 +76,7 @@ public class Login : MonoBehaviour {
             if (next != null) {
 
                 InputField inputfield = next.GetComponent<InputField>();
-                if (inputfield != null) inputfield.OnPointerClick(new PointerEventData(system));  //if it's an input field, also set the text caret
+                if (inputfield != null) inputfield.OnPointerClick(new PointerEventData(system));
 
                 system.SetSelectedGameObject(next.gameObject, new BaseEventData(system));
             }
@@ -82,13 +86,13 @@ public class Login : MonoBehaviour {
     void loginAction() {
         string errorMessage = "";
         if (Username == "") {
-            errorMessage = "Username is required";
+            errorMessage = LocalizationManager.Instance.GetText("REGISTER_ERROR_USERNAME_EMPTY");
         }
         if (Password == "") {
             if (errorMessage != "") {
                 errorMessage += "\n";
             }
-            errorMessage += "Password is required";
+            errorMessage += LocalizationManager.Instance.GetText("REGISTER_ERROR_PASSWORD_EMPTY");
         }
 
         if (errorMessage == "") {
@@ -123,16 +127,15 @@ public class Login : MonoBehaviour {
                 errorColor.a = 0;
                 errorText.color = errorColor;
                 Int32.TryParse(u.userId, out int userId);
-                PlayerPrefs.SetInt("UserId", userId);
-                // load next scene
+                Database.Instance.KeepSignedIn(Username, userId, keepSignedIn.isOn);
                 SceneManager.LoadScene("MainMenu");
             } else {
-                errorText.text = "Felaktig användare/lösenord";
+                errorText.text = LocalizationManager.Instance.GetText("LOGIN_WRONG_USERNAME_PASSWORD");
                 errorColor.a = 1;
                 errorText.color = errorColor;
             }
         } else {
-            errorText.text = "Användaren hittades inte";
+            errorText.text = LocalizationManager.Instance.GetText("LOGIN_USER_NOT_FOUND");
             errorColor.a = 1;
             errorText.color = errorColor;
         }

+ 13 - 6
Assets/Scripts/Login/Register.cs

@@ -53,22 +53,29 @@ public class Register : MonoBehaviour {
         }
     }
 
+    // TODO Localizaion!
     void RegisterAction() {
         string errorMessage = "";
         if (Username == "" || Username.Length < 3) {
-            errorMessage = "Username is obligatory and needs to be atleast 3 characters long";
+            errorMessage = LocalizationManager.Instance.GetText("REGISTER_ERROR_USERNAME_EMPTY");
         }
         if (Password == "") {
             if (errorMessage != "") {
                 errorMessage += "\n";
             }
-            errorMessage += "Password is obligatory";
+            errorMessage += LocalizationManager.Instance.GetText("REGISTER_ERROR_PASSWORD_EMPTY");
+        }
+        if (Password.Length < 6) {
+            if (errorMessage != "") {
+                errorMessage += "\n";
+            }
+            errorMessage += LocalizationManager.Instance.GetText("REGISTER_ERROR_PASSWORD_TO_SHORT");
         }
         if (Email == "") {
             if (errorMessage != "") {
                 errorMessage += "\n";
             }
-            errorMessage += "Email is obligatory";
+            errorMessage += LocalizationManager.Instance.GetText("REGISTER_ERROR_EMAIL_EMPTY");
         }
 
 
@@ -101,7 +108,7 @@ public class Register : MonoBehaviour {
         yield return www.SendWebRequest();
 
         if (www.error != null) {
-            errorText.text = "There was an error registering this user, try again later: " + www.error;
+            errorText.text = LocalizationManager.Instance.GetText("REGISTER_ERROR_CONNECTION_FAIL");
             errorColor.a = 1;
             errorText.color = errorColor;
         } else {
@@ -110,10 +117,10 @@ public class Register : MonoBehaviour {
             if (int.TryParse(www.downloadHandler.text, out int userId)) {
                 errorColor.a = 0;
                 errorText.color = errorColor;
-                PlayerPrefs.SetInt("UserId", userId);
+                Database.Instance.KeepSignedIn(Username, userId, false);
                 SceneManager.LoadScene("MainMenu");
             } else {
-                errorText.text = "Failed to register, username/email already exists";
+                errorText.text = LocalizationManager.Instance.GetText("REGISTER_ERROR_USER_PASS_ALREADY_IN_USE");
                 errorColor.a = 1;
                 errorText.color = errorColor;
             }

+ 3 - 2
Assets/Scripts/MainMenu.cs

@@ -23,6 +23,7 @@ public class MainMenu : MonoBehaviour {
     public GameObject onlineGamePrefab;
     public GameObject finishedGamePrefab;
 
+    private int loggedInUserId;
     private readonly string gamesPostUrl = "nordh.xyz/narKampen/dbFiles/Games.php?";
 
     private void Start() {
@@ -39,7 +40,7 @@ public class MainMenu : MonoBehaviour {
     }
 
     private void GetGames() {
-        int loggedInUserId = PlayerPrefs.GetInt("UserId");
+        loggedInUserId = Database.Instance.GetSignedInUser();
         List<LocalGameScript> localGames = Database.Instance.GetLocalGames(localGamePrefab);
         Transform localGamesList = GameObject.Find("LocalGamesList").transform;
         Transform finishedGamesList = GameObject.Find("FinishedGamesList").transform;
@@ -111,7 +112,7 @@ public class MainMenu : MonoBehaviour {
     }
 
     private IEnumerator GetGamesFromServer() {
-        string postUrl = gamesPostUrl + "userId=" + PlayerPrefs.GetInt("UserId");
+        string postUrl = gamesPostUrl + "userId=" + loggedInUserId;
 
         UnityWebRequest www = UnityWebRequest.Get(postUrl);
 

+ 49 - 0
Assets/Scripts/OnlineGameScript.cs

@@ -0,0 +1,49 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class OnlineGameScript : MonoBehaviour {
+
+    // Status color Pending, not your turn, your turn, declined
+    List<Color32> statusColors = new List<Color32>() { new Color32(234, 164, 17, 100), new Color32(255, 255, 24, 175), new Color32(0, 255, 0, 100), new Color32(75, 50, 75, 100) };
+    public Text gameStatusText;
+    public Text gameTitleText;
+
+    public enum Status {
+        PENDING,
+        OTHERS_TURN,
+        YOUR_TURN,
+        DECLINED
+    }
+
+    // Start is called before the first frame update
+    void Start() {
+
+    }
+
+    // Update is called once per frame
+    void Update() {
+
+    }
+
+    public void SetStatusColor(Status status) {
+        if (status.Equals(Status.PENDING)) {
+            this.GetComponent<Image>().color = statusColors[0];
+        } else if (status.Equals(Status.OTHERS_TURN)) {
+            this.GetComponent<Image>().color = statusColors[1];
+        } else if (status.Equals(Status.YOUR_TURN)) {
+            this.GetComponent<Image>().color = statusColors[2];
+        } else if (status.Equals(Status.DECLINED)) {
+            this.GetComponent<Image>().color = statusColors[3];
+        }
+    }
+
+    public void SetTitleText(string text) {
+        gameTitleText.text = text;
+    }
+
+    public void SetGameStatusText(string text) {
+        gameStatusText.text = text;
+    }
+}

+ 11 - 0
Assets/Scripts/OnlineGameScript.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5a8c4824064d7f14db5b1b8c2d0f5f24
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
Assets/Translations/ENGLISH.xml

@@ -64,4 +64,19 @@
   <text key="INVITE_PANEL_DIALOG_BUTTON">Done</text>
   <text key="INVITE_COUNT_TEXT">Invite {0} players</text>
   <text key="NEED_MORE_INPUT">More input needed</text>
+  <text key="REGISTER_ERROR_USERNAME_EMPTY">Username is obligatory and needs to be atleast 3 characters long</text>
+  <text key="REGISTER_ERROR_PASSWORD_EMPTY">Password is obligatory and needs to be atleast 6 characters long</text>
+  <text key="REGISTER_ERROR_PASSWORD_TO_SHORT">Password needs to be atleast 6 characters long</text>
+  <text key="REGISTER_ERROR_EMAIL_EMPTY">Email is obligatory</text>
+  <text key="REGISTER_ERROR_CONNECTION_FAIL">There was an error registering this user, try again later</text>
+  <text key="REGISTER_ERROR_USER_PASS_ALREADY_IN_USE">Failed to register, username/email already exists</text>
+  <text key="LOGIN_WRONG_USERNAME_PASSWORD">Wrong username/password</text>
+  <text key="LOGIN_USER_NOT_FOUND">Username not found</text>
+  <text key="KEEP_SIGNED_IN_TEXT">Keep me signed in</text>
+  <text key="ONLINE_GAME_STATUS_TITLE_VALUE_PENDING">Pending answers</text>
+  <text key="ONLINE_GAME_STATUS_TITLE">Status</text>
+  <text key="ONLINE_GAME_STATUS_PENDING">Awaiting player actions</text>
+  <text key="ONLINE_GAME_STATUS_YOUR_TURN">Your turn</text>
+  <text key="ONLINE_GAME_STATUS_ANOTHER_PLAYER">{0}s turn</text>
+  <text key="ONLINE_GAME_STATUS_DECLINED">Game invite declined</text>
 </Language>

+ 15 - 0
Assets/Translations/SWEDISH.xml

@@ -65,4 +65,19 @@
   <text key="INVITE_PANEL_DIALOG_BUTTON">Färdig</text>
   <text key="INVITE_COUNT_TEXT">Bjud in {0} spelare</text>
   <text key="NEED_MORE_INPUT">Skriv in fler tecken</text>
+  <text key="REGISTER_ERROR_USERNAME_EMPTY">Användarnamn är obligatoriskt, minst 3 tecken långt</text>
+  <text key="REGISTER_ERROR_PASSWORD_EMPTY">Lösenord är obligatoriskt, minst 6 tecken långt</text>
+  <text key="REGISTER_ERROR_PASSWORD_TO_SHORT">Lösenordet måste vara minst 6 tecken långt</text>
+  <text key="REGISTER_ERROR_EMAIL_EMPTY">Email är obligatoriskt</text>
+  <text key="REGISTER_ERROR_CONNECTION_FAIL">Något gick fel vid registrering, försök igen eller kontakta support</text>
+  <text key="REGISTER_ERROR_USER_PASS_ALREADY_IN_USE">Användarnamn eller epost finns redan registrerat</text>
+  <text key="LOGIN_WRONG_USERNAME_PASSWORD">Felaktigt användarnamn/lösenord</text>
+  <text key="LOGIN_USER_NOT_FOUND">Användaren hittades inte</text>
+  <text key="KEEP_SIGNED_IN_TEXT">Håll mig inloggad</text>
+  <text key="ONLINE_GAME_STATUS_VALUE_PENDING">Väntar svar</text>
+  <text key="ONLINE_GAME_STATUS_TITLE">Status</text>
+  <text key="ONLINE_GAME_STATUS_PENDING">Väntar på spelare</text>
+  <text key="ONLINE_GAME_STATUS_YOUR_TURN">Din tur</text>
+  <text key="ONLINE_GAME_STATUS_ANOTHER_PLAYER">{0}s tur</text>
+  <text key="ONLINE_GAME_STATUS_DECLINED">Spelet nekat</text>
 </Language>

Plik diff jest za duży
+ 350 - 70
Assets/User.unity


BIN
Assets/narKampenLocal.db


+ 2 - 1
dbFiles/NewOnlineGame.php

@@ -17,7 +17,7 @@
 	$limitPerPlayer = $_POST['limitPerPlayer'];
 	$playerIds = $_POST['playerIds'];
 	
-	array playerIdsArray = explode(",",$playerIds);
+	$playerIdsArray = explode(",",$playerIds);
 	
 	$sql = "INSERT INTO game(" .
             "gameMode, " .
@@ -43,4 +43,5 @@
 	if ($error === "") {
 		echo $error;
 	}
+	
 ?>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików