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

            }
        }
Exemple #3
0
        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;
                    }
                }
            }
        }