Beispiel #1
0
        private void CreateGame()
        {
            game = new ModdableChessGame();
            game.LoadFirstScene();
            this.gameObject.AddComponent <Mods.TOCLoader>();

            db     = game.Components.Get <GameDatabase>((int)ComponentKeys.GameDatabase);
            server = game.Components.Get <ServerInformation>((int)ComponentKeys.ServerInformation);
            local  = game.Components.Get <LocalPlayerInformation>((int)ComponentKeys.LocalPlayerInformation);
            lobby  = game.Components.Get <LobbyChoices>((int)ComponentKeys.LobbyChoices);
        }
        public ClientController(Game game)
        {
            game.AddTicking(this);

            info = game.Components.GetOrRegister <LocalPlayerInformation>((int)ComponentKeys.LocalPlayerInformation, LocalPlayerInformation.Create);
            ClearLocalInfo();
            game.Components.Register((int)ComponentKeys.Client_Callbacks, this);
            game.Components.GetOrRegister <Query <bool, StartClientCommand> >((int)ComponentKeys.StartClientCommand, Query <bool, StartClientCommand> .Create)
            .Handler = StartClient;
            game.Components.GetOrRegister <Command>((int)ComponentKeys.StopClientCommand, Command.Create)
            .Handler = StopClient;

            info.Connection.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) =>
                                                                                   UnityEngine.Debug.LogError(string.Format("{0}: Client connection change {1}", game.TickCount, (ClientConnectionState)s))));
        }
        public ModListController(AutoController scene)
        {
            statusSortOrder = new Dictionary <int, int>();
            statusSortOrder[(int)ModNetworkStatus.Playable]        = 0;
            statusSortOrder[(int)ModNetworkStatus.HostOutOfDate]   = 1;
            statusSortOrder[(int)ModNetworkStatus.ClientOutOfDate] = 1;
            statusSortOrder[(int)ModNetworkStatus.OnlyHost]        = 2;
            statusSortOrder[(int)ModNetworkStatus.OnlyClient]      = 3;
            statusSortOrder[(int)ModNetworkStatus.Unknown]         = 4;
            localMods        = new List <LocalModInfo>();
            networkMods      = new List <NetworkModInfo>();
            allMods          = new List <ComboModInfo>();
            showNotLocalMods = true;

            prevChoices = scene.Game.Components.Get <LobbyChoices>((int)ComponentKeys.LobbyChoices);

            ComponentRegistry guiComps = scene.Components.Get <ComponentRegistry>((int)ComponentKeys.LobbyGUIMessages);

            modButtons = new ModList();
            guiComps.Register((int)GUICompKeys.ModList, modButtons);
            modButtons.OnButtonClick.Subscribe(new SimpleListener <int>(OnModButtonClick));
            pickedLabelTop = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.ModListLabelTop, pickedLabelTop);
            pickedLabelBottom = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.ModListLabelBottom, pickedLabelBottom);
            pickedModTop = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.ModListPickedTop, pickedModTop);
            pickedModBottom = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.ModListPickedBottom, pickedModBottom);
            Message reloadBtnPressed = new Message();

            guiComps.Register((int)GUICompKeys.ModListReloadBtnPress, reloadBtnPressed);
            reloadBtnPressed.Subscribe(new SimpleListener(OnReloadButton));
            Message hideBtnPressed = new Message();

            guiComps.Register((int)GUICompKeys.ModListHideBtnPress, hideBtnPressed);
            hideBtnPressed.Subscribe(new SimpleListener(OnHideButton));

            reqSendNetworkModList = scene.Game.Components.Get <Command <List <LocalModInfo> > >((int)ComponentKeys.NetworkModListSendRequest);
            scene.ActivatableList.Add(new ListenerJanitor <IListener <List <NetworkModInfo> > >(
                                          scene.Game.Components.Get <Message <List <NetworkModInfo> > >((int)ComponentKeys.NetworkModListReceived),
                                          new SimpleListener <List <NetworkModInfo> >(OnNetworkModListReceived)));

            reqSendPickedMod = scene.Game.Components.Get <Command <bool, string> >((int)ComponentKeys.NetworkPickedModSendRequest);
            scene.ActivatableList.Add(new ListenerJanitor <IListener <bool, string> > (
                                          scene.Game.Components.Get <Message <bool, string> >((int)ComponentKeys.NetworkPickedModReceived),
                                          new SimpleListener <bool, string>(OnNetworkPickedModReceived)));

            selectedModName = scene.Components.GetOrRegister((int)ComponentKeys.LobbyModSelected, SubscribableObject <string> .Create);

            modSearcher = scene.Components.GetOrRegister <Query <List <LocalModInfo>, string> >
                              ((int)ComponentKeys.SearchModFolderRequest, Query <List <LocalModInfo>, string> .Create);

            localInfo = scene.Game.Components.Get <LocalPlayerInformation>((int)ComponentKeys.LocalPlayerInformation);

            initState = scene.Components.GetOrRegister <StateMachine>((int)ComponentKeys.LobbyInitStatus, StateMachine.Create);
            initState.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) => InitStatusChange()));

            scene.Components.GetOrRegister <Query <string, string> >((int)ComponentKeys.GetCachedModFolder, Query <string, string> .Create)
            .Handler = GetCachedModFolder;

            readyStatus = scene.Components.GetOrRegister <SubscribableBool>((int)ComponentKeys.LobbyReadyStatus, SubscribableBool.Create);
            readyStatus.Subscribe(new SimpleListener <bool>((v) => OnReadyStatusChange()));

            screen = scene.Components.Get <StateMachine>((int)ComponentKeys.LobbyScreen);
            screen.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) => {
                switch ((LobbyScreen)s)
                {
                case LobbyScreen.ClientGamePrefs:
                case LobbyScreen.HostGamePrefs:
                    OnEnterScreen();
                    break;
                }
            }));
        }
 public override void OnJoinedLobby()
 {
     localPlayerInformation = new LocalPlayerInformation(PhotonNetwork.LocalPlayer);
     hasBeenConnected       = true;
 }