Pull request #55: add the save and unlock next level after finishing anyone

Merge in CGD/gather-and-defend from progress_worldmap to main

* commit '25d574714f32e7eec33f90451d2054cb643722ff':
  add the save and unlock next level after finishing anyone
This commit is contained in:
Baptiste Girard 2023-11-14 01:02:21 +00:00 committed by William Gingras 01
commit 4bd16c7786
6 changed files with 120 additions and 11 deletions

View File

@ -613,7 +613,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: Five Up m_text: Return Map
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@ -1891,7 +1891,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: Return m_text: Retry
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}

View File

@ -36,7 +36,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 846.13, y: 573.41} m_AnchoredPosition: {x: 846.12, y: -250}
m_SizeDelta: {x: 227.75, y: 187.408} m_SizeDelta: {x: 227.75, y: 187.408}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1388419616670829471 --- !u!222 &1388419616670829471
@ -344,8 +344,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: -61.694}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: -123.389}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &652135141416114485 --- !u!1001 &652135141416114485
PrefabInstance: PrefabInstance:

View File

@ -537,6 +537,42 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value: value:
objectReference: {fileID: 1340105976} objectReference: {fileID: 1340105976}
- target: {fileID: 1388419616670829464, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_AnchoredPosition.x
value: 828
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829464, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_AnchoredPosition.y
value: -327.58
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 1340105976}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: WorldReinitialition
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: WorldMapManager, GameAssembly
objectReference: {fileID: 0}
- target: {fileID: 1388419616670829465, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 1388419617042242050, guid: 4a2f48781c26ad247b697aa368358f88, type: 3} - target: {fileID: 1388419617042242050, guid: 4a2f48781c26ad247b697aa368358f88, type: 3}
propertyPath: m_Pivot.x propertyPath: m_Pivot.x
value: 0 value: 0

View File

@ -11,8 +11,11 @@ public class VictoryDefeat : MonoBehaviour
public const float positionLoseLimit = -10.0f; public const float positionLoseLimit = -10.0f;
private WorldMapSave _wms;
private void Start() private void Start()
{ {
_wms = new WorldMapSave();
_isShowingVictoryOrDefeat = false; _isShowingVictoryOrDefeat = false;
} }
@ -27,6 +30,7 @@ public class VictoryDefeat : MonoBehaviour
{ {
_victoryAnimator.Play("ShowVictoryOrDefeat"); _victoryAnimator.Play("ShowVictoryOrDefeat");
_isShowingVictoryOrDefeat = true; _isShowingVictoryOrDefeat = true;
_wms.UnlockNextLevel();
//win ! //win !
} }
@ -42,4 +46,5 @@ public class VictoryDefeat : MonoBehaviour
} }
} }
} }
} }

View File

@ -22,7 +22,9 @@ public class WorldMapManager : MonoBehaviour
void Start() void Start()
{ {
//TODO: getMajorSaveFile() //Call et obtiens le chemin du fichier de sauvegarde; //TODO: getMajorSaveFile() //Call et obtiens le chemin du fichier de sauvegarde;
_worldMapSave = new WorldMapSave(); _worldMapSave = new WorldMapSave();
_worldMapSave.WorldInitialition();
UnlockLevels(); UnlockLevels();
PlayerPrefs.SetInt("LevelToLoad", -1); PlayerPrefs.SetInt("LevelToLoad", -1);
@ -54,6 +56,13 @@ public class WorldMapManager : MonoBehaviour
counterIndex++; counterIndex++;
} }
} }
public void WorldReinitialition()
{
_worldMapSave.WorldReinitialition();
}
private void ShowLockedIcon(GameObject currentLevelButton) private void ShowLockedIcon(GameObject currentLevelButton)
{ {
currentLevelButton.GetComponent<Image>().sprite = _lockedIcon; currentLevelButton.GetComponent<Image>().sprite = _lockedIcon;

View File

@ -1,6 +1,8 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
public class WorldMapSave public class WorldMapSave
{ {
@ -11,21 +13,78 @@ public class WorldMapSave
SAVED SAVED
} }
private LevelState[] levelUnlocked = { LevelState.UNLOCKED, LevelState.UNLOCKED, LevelState.UNLOCKED, LevelState.UNLOCKED, private LevelState[] levelUnlocked = { LevelState.SAVED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED,
LevelState.UNLOCKED, LevelState.SAVED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED }; LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED };
public void UnlockNextLevel(int levelNumber) private string filePath;
public void WorldInitialition()
{ {
if(levelNumber == 10)
filePath = Application.persistentDataPath + "/data.dat";
if (File.Exists(filePath))
{ {
//UnlockNextWorld(); ReadData();
} }
else else
{ {
levelUnlocked[levelNumber + 1] = LevelState.UNLOCKED; WriteData();
} }
} }
public void WriteData()
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream fileStream = File.Create(filePath);
formatter.Serialize(fileStream, levelUnlocked);
fileStream.Close();
}
public void ReadData()
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream fileStream = File.Open(filePath, FileMode.Open);
levelUnlocked = (LevelState[])formatter.Deserialize(fileStream);
fileStream.Close();
}
private int GetSavedLevelIndex()
{
for (int i = 0; i < levelUnlocked.Length; i++)
{
if (levelUnlocked[i] == LevelState.SAVED)
{
return i;
}
}
// If LevelState.SAVED not find
return -1;
}
public void UnlockNextLevel()
{
filePath = Application.persistentDataPath + "/data.dat";
ReadData();
//int actuelLevel = PlayerPrefs.GetInt(LevelToLoad,NoLevel);
//Debug.Log(actuelLevel);
levelUnlocked[GetSavedLevelIndex() + 1] = LevelState.SAVED;
levelUnlocked[GetSavedLevelIndex()] = LevelState.UNLOCKED;
WriteData();
}
public void WorldReinitialition()
{
if (File.Exists(filePath))
{
File.Delete(filePath);
levelUnlocked = new LevelState[] { LevelState.SAVED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED };
}
WorldInitialition();
}
public LevelState GetLevelState(int index) public LevelState GetLevelState(int index)
{ {
return levelUnlocked[index]; return levelUnlocked[index];