// Use this for initialization void Start() { /** * Register as observer to ContextManager * * List.add * Prepare Allies * Prepare Enemies * Send SET_CHARACTERS event to ContextManager * * Set Enemies, Set Allies * Notify Event ENCOUNTER_STARTED (sent to all listeners/allies/ through ContextManager) * * Notify Characters * * * Send message for each observer inside observerslist * * Notify Observers (like this GameLoop instance) * * Loop * * * Send message for each observer inside observerslist * * * Context Manager uses the SendMessage unity method, which invokes the given method if it exists such as "ENCOUNTER_STARTED()" for Characters that may * * do something special for such event. */ contextManager = ContextManager.GetInstance(); //Mind the order of execution. contextManager.AddObserver(gameObject); contextManager.FlipEnemies(true); charactersPool.InitMap(); //Building allies and enemies from the characters pool. Dictionary <string, object> previousContext = TransitionWithParameters.parameters; object pEnemies = "NA"; previousContext.TryGetValue("enemies", out pEnemies); object ppreviousSceneNameO; if (previousContext.TryGetValue("previousSceneName", out ppreviousSceneNameO)) { ppreviousSceneName = (string)ppreviousSceneNameO; } else { ppreviousSceneName = SceneManager.GetActiveScene().name; } //context.Add("previousScene", SceneManager.GetActiveScene().name); //This context must be string to obj maybe? //context.Add("enemies", new string[]{"cat", "cat", "cat"}); //This context must be string to obj maybe? Debug.Log("previousScene: " + ppreviousSceneName); PrepareAllies(); PrepareEnemies((string[])pEnemies); PrepareBattle(); //Starts the Event Notifier. DoneLoading(); presetTargets(); }
void Start() { contextManager = ContextManager.GetInstance(); //Mind the order of execution. contextManager.AddObserver(gameObject); }