private void RefreshLaser_Click_1(object sender, RoutedEventArgs e) { MonchaHub.CanPlay = false; NeedRefresh?.Invoke(this, true); Refresh(); treeView.UpdateLayout(); }
private void LoadNewMap() { QuestGiver.ClearQuests(); BonusLifeTile.ClearBonuses(); MonsterController.ClearMonsters(); MapGenerator.GenerateMap(); NeedRefresh?.Invoke(); }
public void Move(int x, int y) { int xPos = Game.PlayerRef.Position.X + x; int yPos = Game.PlayerRef.Position.Y + y; int oldPlayerPosX = int.Parse(Game.PlayerRef.Position.X.ToString()); int oldPlayerPosY = int.Parse(Game.PlayerRef.Position.Y.ToString()); Position pos = new Position(xPos, yPos); Position previousPos = new Position(oldPlayerPosX, oldPlayerPosY); if (PositionIsValid(xPos, yPos)) { if (Map.MapTiles[yPos][xPos] is TreasureChestTile) { TreasureChestTile chest = TreasureChestTile.TreasureChests.Find(item => item.ChestRight == pos || item.ChestLeft == pos); if (chest != null && chest.IsOpened) { chest.Touch(); ItemTouched?.Invoke(); } chest.Interact(pos); NeedRefresh?.Invoke(); QuestItemInteracted?.Invoke(chest); } else if (Map.MapTiles[yPos][xPos] is NextLevelTile) { LoadNewMap(); } else if (Map.MapTiles[yPos][xPos] is QuestGiver) { QuestGiver quest = QuestGiver.Quests.Find(q => q.Position == pos); quest.Interact(pos); } else { if (Map.MapTiles[yPos][xPos] is BonusLifeTile) { Position futurePos = new Position(pos.X, pos.Y); BonusLifeTile bonus = BonusLifeTile.Bonuses.Find(b => b.Position == futurePos); bonus.Interact(pos); QuestItemInteracted?.Invoke(bonus); } Map.MapTiles[yPos][xPos] = Game.PlayerRef; Map.MapTiles[Game.PlayerRef.Position.Y][Game.PlayerRef.Position.X] = new EmptySpaceTile(); Game.PlayerRef.Position.X += x; Game.PlayerRef.Position.Y += y; } } else { if (Map.MapTiles[yPos][xPos] is ITouchable) { ((ITouchable)Map.MapTiles[yPos][xPos]).Touch(); } } MonsterAttackOnPlayerProximity(yPos, xPos); PlayerMoved?.Invoke(previousPos); }
private void Handler_HasCome(object sender, Message msg) { _toServiceMessenger = Utils.GetAnswerMessenger(msg); switch ((ServiceOperation)msg.What) { case ServiceOperation.GetClientSettings: _callbacks.Dequeue(ServiceOperation.GetClientSettings, Utils.GetData <ConnectionCredentials>(msg)); break; case ServiceOperation.GetIsConnected: _callbacks.Dequeue(ServiceOperation.GetIsConnected, Utils.GetData <ManagerConnectionState>(msg)); break; case ServiceOperation.GetScenarios: _callbacks.Dequeue(ServiceOperation.GetScenarios, Utils.GetData <ScenarioInfo[]>(msg)); break; case ServiceOperation.GetNotifications: _callbacks.Dequeue(ServiceOperation.GetNotifications, Utils.GetData <LazuriteNotification[]>(msg)); break; case ServiceOperation.ConnectionLost: ConnectionLost?.Invoke(); break; case ServiceOperation.ConnectionRestored: ConnectionRestored?.Invoke(); break; case ServiceOperation.CredentialsInvalid: LoginOrPasswordInvalid?.Invoke(); break; case ServiceOperation.CredentialsLoaded: CredentialsLoaded?.Invoke(); break; case ServiceOperation.NeedClientSettings: NeedClientSettings?.Invoke(); break; case ServiceOperation.NeedRefresh: NeedRefresh?.Invoke(); break; case ServiceOperation.ScenariosChanged: ScenariosChanged?.Invoke(Utils.GetData <ScenarioInfo[]>(msg)); break; case ServiceOperation.SecretCodeInvalid: SecretCodeInvalid?.Invoke(); break; case ServiceOperation.ConnectionError: ConnectionError?.Invoke(); break; } }
private void TryLoadCachedScenarios() { if (Savior.Has(_cachedScenariosKey)) { try { Scenarios = Savior.Get <ScenarioInfo[]>(_cachedScenariosKey); NeedRefresh?.Invoke(); } catch { Savior.Clear(_cachedScenariosKey); } } }
private void Refresh(Action <bool> callback) { try { var client = _serviceClient; client.BeginGetScenariosInfo((x) => { var result = Handle(() => client.EndGetScenariosInfo(x)); if (result.Success) { _lastUpdateTime = result.ServerTime ?? _lastUpdateTime; Scenarios = result.Value.ToArray(); NeedRefresh?.Invoke(); } callback?.Invoke(result.Success); }, null); } catch { callback(false); } }
private void ServiceConnection_Disconnected(ManagerServiceConnection obj) { Initialize((r) => NeedRefresh?.Invoke()); }