// 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();
    }
Exemple #2
0
 /// <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");
 }