void Start() { itemsToInject.Add(config); itemsToInject.Add(new GameData()); systems = FindObjectsOfType <GameSystem>().ToDictionary(x => x.GetType(), x => x); ProcessInstallers(); GameData = itemsToInject.First(x => x.GetType() == typeof(GameData)) as GameData; PlayerData = itemsToInject.First(x => x.GetType() == typeof(PlayerData)) as PlayerData; GamePreStartEvent?.Invoke(); GameStartEvent?.Invoke(); LaunchStates(); }
private void OnGameStart(GamePreStartEvent evt) { foreach (Player player in joinedPlayers) { var pgui = this.guiLookup[player]; var ginfo = pgui.Value; var gobj = pgui.Key; bool isNotMainPlayer; if (Settings.MainPlayer == player) { ginfo.Portrait = PlayerLogo_Friendly; ginfo.HealthBar = HealthBar_Friendly; ginfo.XPBar = XPBar_Friendly; ginfo.XPButton = XPButton_Friendly; ginfo.FocusColor = Color.green; isNotMainPlayer = false; } else { ginfo.Portrait = PlayerLogo_Opponent; ginfo.HealthBar = HealthBar_Opponent; ginfo.XPBar = XPBar_Opponent; ginfo.XPButton = XPButton_Opponent; ginfo.FocusColor = Color.blue; isNotMainPlayer = true; } ginfo.SetSkipPhaseButton(player, StopPhases_Main); ginfo.SetSkipPhaseButton(joinedPlayers.First(p => p != player), StopPhases_Other); ginfo.SetPhasesGui(Phases); ginfo.SetManaCrystalTypes(ManaCrystalTypes); gobj.AddComponent<GuiViewHandler>(); var guiview = gobj.GetComponent<GuiViewHandler>(); guiview.Engine = this.Engine; guiview.Factory = Factory; guiview.MapHandler = this.MapHandler; guiview.isNotMainPlayer = isNotMainPlayer; guiview.Initialize(); gobj.AddComponent<GuiHandViewHandler>(); var handview = gobj.GetComponent<GuiHandViewHandler>(); handview.Factory = Factory; handview.Initialize(Camera.main, 0.5f, 0.5f, 0.25f, 0.25f, Engine.EngineModel.EventManager, player); var xpviewer = gobj.AddComponent<GuiXPBarViewHandler>(); xpviewer.Initialize(Factory, ginfo, isNotMainPlayer); gobj.AddComponent<GUIManaViewHandler>(); var manaview = gobj.GetComponent<GUIManaViewHandler>(); manaview.Initialize(Factory, ginfo, Engine.EngineModel, isNotMainPlayer); if (Settings.LocalPlayers.Any(p => p == player)) { gobj.AddComponent<GuiController>(); var controller = gobj.GetComponent<GuiController>(); controller.Engine = this.Engine; controller.JoinedPlayers = this.joinedPlayers; controller.SkipController = new PhaseSkipToController(ginfo, player); controller.Factory = Factory; controller.Initialize(); if (Settings.LocalPlayers.Count() > 1) controller.ControllerType = ControllerType.Shared; else controller.ControllerType = ControllerType.Full; } } }
private void OnGameStart(GamePreStartEvent evt) { foreach (Player player in joinedPlayers) { var pgui = this.guiLookup[player]; var ginfo = pgui.Value; var gobj = pgui.Key; bool isNotMainPlayer; if (Settings.MainPlayer == player) { ginfo.Portrait = PlayerLogo_Friendly; ginfo.HealthBar = HealthBar_Friendly; ginfo.XPBar = XPBar_Friendly; ginfo.XPButton = XPButton_Friendly; ginfo.FocusColor = Color.green; isNotMainPlayer = false; } else { ginfo.Portrait = PlayerLogo_Opponent; ginfo.HealthBar = HealthBar_Opponent; ginfo.XPBar = XPBar_Opponent; ginfo.XPButton = XPButton_Opponent; ginfo.FocusColor = Color.blue; isNotMainPlayer = true; } ginfo.SetSkipPhaseButton(player, StopPhases_Main); ginfo.SetSkipPhaseButton(joinedPlayers.First(p => p != player), StopPhases_Other); ginfo.SetPhasesGui(Phases); ginfo.SetManaCrystalTypes(ManaCrystalTypes); gobj.AddComponent <GuiViewHandler>(); var guiview = gobj.GetComponent <GuiViewHandler>(); guiview.Engine = this.Engine; guiview.Factory = Factory; guiview.MapHandler = this.MapHandler; guiview.isNotMainPlayer = isNotMainPlayer; guiview.Initialize(); gobj.AddComponent <GuiHandViewHandler>(); var handview = gobj.GetComponent <GuiHandViewHandler>(); handview.Factory = Factory; handview.Initialize(Camera.main, 0.5f, 0.5f, 0.25f, 0.25f, Engine.EngineModel.EventManager, player); var xpviewer = gobj.AddComponent <GuiXPBarViewHandler>(); xpviewer.Initialize(Factory, ginfo, isNotMainPlayer); gobj.AddComponent <GUIManaViewHandler>(); var manaview = gobj.GetComponent <GUIManaViewHandler>(); manaview.Initialize(Factory, ginfo, Engine.EngineModel, isNotMainPlayer); if (Settings.LocalPlayers.Any(p => p == player)) { gobj.AddComponent <GuiController>(); var controller = gobj.GetComponent <GuiController>(); controller.Engine = this.Engine; controller.JoinedPlayers = this.joinedPlayers; controller.SkipController = new PhaseSkipToController(ginfo, player); controller.Factory = Factory; controller.Initialize(); if (Settings.LocalPlayers.Count() > 1) { controller.ControllerType = ControllerType.Shared; } else { controller.ControllerType = ControllerType.Full; } } } }