コード例 #1
0
 public OnlineGameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
     : base(gameSettings, questsManager, dialogService)
 {
     (Game.Controller as RemoteGameController).Server.Events.UndoRequestReceived += Events_UndoRequestReceived;
     (Game.Controller as RemoteGameController).Server.Events.UndoDeclined        += Events_UndoDeclined;
     ChatViewModel = new ChatViewModel((Game.Controller as RemoteGameController).Chat, (Game.Controller as RemoteGameController).Connectors.First(connector => connector is IRemoteConnector) as IRemoteConnector);
 }
コード例 #2
0
        public GameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
        {
            _gameSettings  = gameSettings;
            _questsManager = questsManager;
            _dialogService = dialogService;

            _game = Mvx.GetSingleton <IGame>();

            BoardViewModel              = new BoardViewModel(Game.Info.BoardSize);
            BoardViewModel.BoardTapped += (s, e) => OnBoardTapped(e);
            BoardViewModel.IsTouchInputOffsetEnabled = gameSettings.Display.AddTouchInputOffset;
            // Set empty node (should be in the beginning of every gametree) as current node for board rendering
            RefreshBoard(Game.Controller.GameTree.LastNode);

            _uiConnector = new UiConnector(Game.Controller);

            _phaseStartHandlers = new Dictionary <GamePhaseType, Action <IGamePhase> >();
            _phaseEndHandlers   = new Dictionary <GamePhaseType, Action <IGamePhase> >();
            SetupPhaseChangeHandlers(_phaseStartHandlers, _phaseEndHandlers);

            Game.Controller.RegisterConnector(_uiConnector);

            Game.Controller.GameEnded += (s, e) => OnGameEnded(e);
            Game.Controller.GameTree.LastNodeChanged += (s, e) => OnCurrentNodeChanged(e);
            Game.Controller.TurnPlayerChanged        += (s, e) => OnTurnPlayerChanged(e);
            Game.Controller.GamePhaseChanged         += (s, e) => OnGamePhaseChanged(e);
            ObserveDebuggingMessages();
        }
コード例 #3
0
 public AnalysisGameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
     : base(gameSettings, questsManager, dialogService)
 {
     AnalysisViewModel = new AnalysisViewModel();
     AnalysisViewModel.BackToGameRequested     += (s, e) => OnAnalysisBackToGameRequested();
     AnalysisViewModel.BranchDeletionRequested += (s, e) => OnAnalysisBranchDeletionRequested();
     AnalysisViewModel.PassRequested           += (s, e) => OnAnalysisPassRequested();
 }
コード例 #4
0
        public LiveGameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
            : base(gameSettings, questsManager, dialogService)
        {
            BlackPortrait = new PlayerPortraitViewModel(Game.Controller.Players.Black, Game);
            WhitePortrait = new PlayerPortraitViewModel(Game.Controller.Players.White, Game);

            // Register tool services
            ToolServices =
                new GameToolServices(
                    Localizer,
                    dialogService,
                    Game.Controller.Ruleset,
                    Game.Controller.GameTree);
            ToolServices.PassSoundShouldBePlayed      += ToolServices_PassSoundShouldBePlayed;
            ToolServices.StoneCapturesShouldBePlayed  += ToolServices_StoneCapturesShouldBePlayed;
            ToolServices.StonePlacementShouldBePlayed += ToolServices_StonePlacementShouldBePlayed;
            ToolServices.NodeChanged += (s, node) =>
            {
                AnalyzeToolsViewModel.OnNodeChanged();
                RefreshBoard(node);
                GameTreeViewModel.SelectedGameTreeNode = node;
                GameTreeViewModel.RaiseGameTreeChanged();
            };
            Tool = null;

            // Initialize analyze mode and register tools
            BoardViewModel.ToolServices = ToolServices;

            AnalyzeToolsViewModel = new AnalyzeToolsViewModel(ToolServices);
            AnalyzeToolsViewModel.CanGoBackToLiveGame = true;
            RegisterAnalyzeTools();
            _isAnalyzeModeEnabled = false;

            // System log visibility
            _isSystemLogEnabled = false;

            // Set up Timeline
            GameTreeViewModel = new GameTreeViewModel(Game.Controller.GameTree);
            GameTreeViewModel.GameTreeSelectionChanged += (s, e) =>
            {
                ToolServices.Node = e;
                BoardViewModel.BoardControlState.ShowTerritory =
                    e.Equals(Game.Controller.GameTree.LastNode) &&
                    (GamePhase == GamePhaseType.LifeDeathDetermination || GamePhase == GamePhaseType.Finished);
                RefreshBoard(e);
                AnalyzeToolsViewModel.OnNodeChanged();
            };

            _portraitUpdateTimer = Mvx.Resolve <ITimerService>()
                                   .StartTimer(TimeSpan.FromMilliseconds(100), UpdatePortraits);

            Game.Controller.MoveUndone += (s, e) => { UpdateTimeline(); };

            // When timeline selected node changes, check whether its not in the past. If it is then disable shadow stones.
            TimelineChanged += (s, e) => BoardViewModel.BoardControlState.IsShadowDrawingEnabled = !IsTimelineInPast;
        }
コード例 #5
0
        public AnalyzeOnlyViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
        {
            _dialogService = dialogService;
            var analyzeBundle = Mvx.Resolve <NavigationBundle>();

            LibraryItem   = analyzeBundle.LibraryItem;
            GameTree      = analyzeBundle.GameTree;
            GameInfo      = analyzeBundle.GameInfo;
            BlackPortrait = new PlayerPortraitViewModel(analyzeBundle.GameInfo.Black);
            WhitePortrait = new PlayerPortraitViewModel(analyzeBundle.GameInfo.White);

            _ruleset = new ChineseRuleset(analyzeBundle.GameInfo.BoardSize);

            // Register tool services
            ToolServices              = new GameToolServices(Localizer, dialogService, _ruleset, analyzeBundle.GameTree);
            ToolServices.NodeChanged += (s, node) =>
            {
                AnalyzeToolsViewModel.OnNodeChanged();
                RefreshBoard(node);
                GameTreeViewModel.SelectedGameTreeNode = node;
                GameTreeViewModel.RaiseGameTreeChanged();
            };
            ToolServices.PassSoundShouldBePlayed      += ToolServices_PassSoundShouldBePlayed;
            ToolServices.StoneCapturesShouldBePlayed  += ToolServices_StoneCapturesShouldBePlayed;
            ToolServices.StonePlacementShouldBePlayed += ToolServices_StonePlacementShouldBePlayed;
            Tool = null;

            BoardViewModel                        = new BoardViewModel(analyzeBundle.GameInfo.BoardSize);
            BoardViewModel.BoardTapped           += (s, e) => OnBoardTapped(e);
            BoardViewModel.GameTreeNode           = GameTree.GameTreeRoot;
            BoardViewModel.IsMarkupDrawingEnabled = true;
            BoardViewModel.IsShadowDrawingEnabled = true;


            // Initialize analyze mode and register tools
            BoardViewModel.ToolServices = ToolServices;

            ToolServices.Node = GameTree.GameTreeRoot;

            AnalyzeToolsViewModel = new AnalyzeToolsViewModel(ToolServices);
            AnalyzeToolsViewModel.CanGoBackToLiveGame = false;
            RegisterAnalyzeTools();
            Tool = AnalyzeToolsViewModel.StonePlacementTool;
            AnalyzeToolsViewModel.SelectedTool = Tool;

            // Set up Timeline
            GameTreeViewModel = new GameTreeViewModel(GameTree);
            GameTreeViewModel.GameTreeSelectionChanged += (s, e) =>
            {
                ToolServices.Node = e;
                RefreshBoard(e);
                AnalyzeToolsViewModel.OnNodeChanged();
            };
            GameTreeViewModel.SelectedGameTreeNode = GameTree.GameTreeRoot;
        }
コード例 #6
0
        public LocalGameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
            : base(gameSettings, questsManager, dialogService)
        {
            Game.Controller.MoveUndone += Controller_MoveUndone;

            TimelineChanged += (s, e) => UpdateCanPassAndUndo();

            // AI Assistant Service
            _assistant         = new Assistant(gameSettings, UiConnector, Game.Controller, Game.Info);
            UiConnector.AiLog += Assistant_uiConnector_AiLog;
        }
コード例 #7
0
        /// <summary>
        /// Creates the tsumego view model
        /// </summary>
        public TsumegoViewModel(IQuestsManager questsManager, IGameSettings gameSettings, ITsumegoProblemsLoader problemsLoader)
        {
            _questsManager  = questsManager;
            _gameSettings   = gameSettings;
            _problemsLoader = problemsLoader;
            var       problem   = Mvx.Resolve <TsumegoProblem>();
            Rectangle rectangle = problem.GetBoundingBoard();

            BoardViewModel              = new BoardViewModel(rectangle);
            BoardViewModel.BoardTapped += BoardViewModel_BoardTapped;

            LoadProblem(problem);
        }
コード例 #8
0
ファイル: Character.cs プロジェクト: matigramirez/Imgeneus
        public Character(ILogger <Character> logger,
                         IDatabasePreloader databasePreloader,
                         IGuildManager guildManager,
                         ICountryProvider countryProvider,
                         ISpeedManager speedManager,
                         IStatsManager statsManager,
                         IAdditionalInfoManager additionalInfoManager,
                         IHealthManager healthManager,
                         ILevelProvider levelProvider,
                         ILevelingManager levelingManager,
                         IInventoryManager inventoryManager,
                         IStealthManager stealthManager,
                         IAttackManager attackManager,
                         ISkillsManager skillsManager,
                         IBuffsManager buffsManager,
                         IElementProvider elementProvider,
                         IKillsManager killsManager,
                         IVehicleManager vehicleManager,
                         IShapeManager shapeManager,
                         IMovementManager movementManager,
                         ILinkingManager linkinManager,
                         IMapProvider mapProvider,
                         ITeleportationManager teleportationManager,
                         IPartyManager partyManager,
                         ITradeManager tradeManager,
                         IFriendsManager friendsManager,
                         IDuelManager duelManager,
                         IBankManager bankManager,
                         IQuestsManager questsManager,
                         IUntouchableManager untouchableManager,
                         IWarehouseManager warehouseManager,
                         IShopManager shopManager,
                         ISkillCastingManager skillCastingManager,
                         ICastProtectionManager castProtectionManager,
                         IGameSession gameSession,
                         IGamePacketFactory packetFactory) : base(databasePreloader, countryProvider, statsManager, healthManager, levelProvider, buffsManager, elementProvider, movementManager, untouchableManager, mapProvider)
        {
            _logger        = logger;
            _packetFactory = packetFactory;

            AdditionalInfoManager = additionalInfoManager;
            InventoryManager      = inventoryManager;
            StealthManager        = stealthManager;
            LevelingManager       = levelingManager;
            SpeedManager          = speedManager;
            AttackManager         = attackManager;
            SkillsManager         = skillsManager;
            KillsManager          = killsManager;
            VehicleManager        = vehicleManager;
            ShapeManager          = shapeManager;
            LinkingManager        = linkinManager;
            TeleportationManager  = teleportationManager;
            PartyManager          = partyManager;
            TradeManager          = tradeManager;
            FriendsManager        = friendsManager;
            DuelManager           = duelManager;
            GuildManager          = guildManager;
            BankManager           = bankManager;
            QuestsManager         = questsManager;
            WarehouseManager      = warehouseManager;
            ShopManager           = shopManager;
            SkillCastingManager   = skillCastingManager;
            CastProtectionManager = castProtectionManager;
            GameSession           = gameSession;

            HealthManager.MP_SP_Used += SendUseMPSP;
            HealthManager.OnCurrentHitpointsChanged += SendCurrentHitpoints;
            StatsManager.OnAdditionalStatsUpdate    += SendAdditionalStats;
            StatsManager.OnResetStats         += SendResetStats;
            BuffsManager.OnBuffAdded          += SendAddBuff;
            BuffsManager.OnBuffRemoved        += SendRemoveBuff;
            AttackManager.OnStartAttack       += SendAttackStart;
            VehicleManager.OnUsedVehicle      += SendUseVehicle;
            SkillsManager.OnResetSkills       += SendResetSkills;
            InventoryManager.OnAddItem        += SendAddItemToInventory;
            InventoryManager.OnRemoveItem     += SendRemoveItemFromInventory;
            InventoryManager.OnItemExpired    += SendItemExpired;
            AttackManager.TargetOnBuffAdded   += SendTargetAddBuff;
            AttackManager.TargetOnBuffRemoved += SendTargetRemoveBuff;
            DuelManager.OnDuelResponse        += SendDuelResponse;
            DuelManager.OnStart                   += SendDuelStart;
            DuelManager.OnCanceled                += SendDuelCancel;
            DuelManager.OnFinish                  += SendDuelFinish;
            LevelingManager.OnExpChanged          += SendExperienceGain;
            QuestsManager.OnQuestMobCountChanged  += SendQuestCountUpdate;
            QuestsManager.OnQuestFinished         += SendQuestFinished;
            ShopManager.OnUseShopClosed           += SendUseShopClosed;
            ShopManager.OnUseShopItemCountChanged += SendUseShopItemCountChanged;
            ShopManager.OnSoldItem                += SendSoldItem;

            Bless.Instance.OnDarkBlessChanged  += OnDarkBlessChanged;
            Bless.Instance.OnLightBlessChanged += OnLightBlessChanged;
        }
コード例 #9
0
 public QuestHandlers(IGamePacketFactory packetFactory, IGameSession gameSession, IQuestsManager questsManager) : base(packetFactory, gameSession)
 {
     _questsManager = questsManager;
 }
コード例 #10
0
 public ObserverGameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService)
     : base(gameSettings, questsManager, dialogService)
 {
     ChatViewModel = new ChatViewModel((Game.Controller as RemoteGameController).Chat, (Game.Controller as RemoteGameController).Connectors.First(connector => connector is IRemoteConnector) as IRemoteConnector);
 }
コード例 #11
0
 public CharacterFactory(ILogger <ICharacterFactory> logger,
                         IDatabase database,
                         ILogger <Character> characterLogger,
                         IGameWorld gameWorld,
                         IDatabasePreloader databasePreloader,
                         IGameDefinitionsPreloder definitionsPreloder,
                         ICountryProvider countryProvider,
                         ISpeedManager speedManager,
                         IStatsManager statsManager,
                         IHealthManager healthManager,
                         ILevelProvider levelProvider,
                         ILevelingManager levelingManager,
                         IInventoryManager inventoryManager,
                         ILinkingManager linkingManager,
                         IGuildManager guildManager,
                         IGameSession gameSession,
                         IStealthManager stealthManager,
                         IAttackManager attackManager,
                         ISkillsManager skillsManager,
                         IBuffsManager buffsManager,
                         IElementProvider elementProvider,
                         IKillsManager killsManager,
                         IVehicleManager vehicleManager,
                         IShapeManager shapeManager,
                         IMovementManager movementManager,
                         IAdditionalInfoManager additionalInfoManager,
                         IMapProvider mapProvider,
                         ITeleportationManager teleportationManager,
                         IPartyManager partyManager,
                         ITradeManager tradeManager,
                         IFriendsManager friendsManager,
                         IDuelManager duelManager,
                         IBankManager bankManager,
                         IQuestsManager questsManager,
                         IUntouchableManager untouchableManager,
                         IWarehouseManager warehouseManager,
                         IShopManager shopManager,
                         ISkillCastingManager skillCastingManager,
                         ICastProtectionManager castProtectionManager,
                         IGamePacketFactory packetFactory,
                         UserManager <DbUser> userManager)
 {
     _logger                = logger;
     _database              = database;
     _characterLogger       = characterLogger;
     _gameWorld             = gameWorld;
     _databasePreloader     = databasePreloader;
     _definitionsPreloder   = definitionsPreloder;
     _countryProvider       = countryProvider;
     _speedManager          = speedManager;
     _statsManager          = statsManager;
     _healthManager         = healthManager;
     _levelProvider         = levelProvider;
     _levelingManager       = levelingManager;
     _inventoryManager      = inventoryManager;
     _linkingManager        = linkingManager;
     _guildManager          = guildManager;
     _gameSession           = gameSession;
     _stealthManager        = stealthManager;
     _attackManager         = attackManager;
     _skillsManager         = skillsManager;
     _buffsManager          = buffsManager;
     _elementProvider       = elementProvider;
     _killsManager          = killsManager;
     _vehicleManager        = vehicleManager;
     _shapeManager          = shapeManager;
     _movementManager       = movementManager;
     _additionalInfoManager = additionalInfoManager;
     _mapProvider           = mapProvider;
     _teleportationManager  = teleportationManager;
     _partyManager          = partyManager;
     _tradeManager          = tradeManager;
     _friendsManager        = friendsManager;
     _duelManager           = duelManager;
     _bankManager           = bankManager;
     _questsManager         = questsManager;
     _untouchableManager    = untouchableManager;
     _warehouseManager      = warehouseManager;
     _shopManager           = shopManager;
     _skillCastingManager   = skillCastingManager;
     _castProtectionManager = castProtectionManager;
     _packetFactory         = packetFactory;
     _userManager           = userManager;
 }