// Use this for initialization void Start() { //load savefile on startup overallData = new saveData(); Debug.Log("init"); if (!overallData.loadfile()) { overallData.set(gameData.init); overallData.saveFile(); } //init events if (EventNotifier == null) { EventNotifier = new EventWithMessage(); } if (OnMoneyChanged == null) { OnMoneyChanged = new UnityEvent(); } if (OnGameInitialize == null) { OnGameInitialize = new UnityEvent(); } if (OnCatDataChaged == null) { OnCatDataChaged = new UnityEvent(); } if (OnItemDataChanged == null) { OnItemDataChanged = new UnityEvent(); } if (OnCraftingStarted == null) { OnCraftingStarted = new UnityEvent(); } if (OnCraftingEnded == null) { OnCraftingEnded = new UnityEvent(); } if (OnGroupDataChanged == null) { OnGroupDataChanged = new UnityEvent(); } if (OnExploreEnded == null) { OnExploreEnded = new UnityEvent(); } if (OnExploreStarted == null) { OnExploreStarted = new UnityEvent(); } if (OnLevelDataChanged == null) { OnLevelDataChanged = new UnityEvent(); } OnGameInitialize.AddListener(OnGameInitializehandler); OnGameInitialize.Invoke(); }
/// <summary> /// Initialize a new game. /// </summary> /// <param name="Caller"></param> /// <param name="map"></param> public static void Initialize(Form Caller, Map map, Func <int, int>[] foodChanger = null) { if (GameRuning) { throw new InvalidOperationException("The Game Handle cant initialize when the game is running!"); } FC = foodChanger; GameUI = Caller; GameHandle.map = map; snake = new Snake.Snake(map.GetRandomLand(1)); mapSize = new Size(map.Width, map.Height); GameRuning = true; GameT = new Thread(() => { Game_Handle(); }); GameT.Start(); snake.OnSnakeMoves += (x, y) => { OnSnakeMoves?.Invoke(snake, y); }; snake.OnSnakeEats += (s, l) => { OnSnakeEats?.Invoke(snake, l); }; snake.SnakeHasCapturedTheWholeMap += (s, e) => { GameFinished?.Invoke(snake, e); }; OnGameInitialize?.Invoke(Caller, map); }
public void ResetGameData() { overallData.set(gameData.init); OnGameInitialize.Invoke(); EventNotifier.Invoke("Data Reset"); }