protected override void OnLoadStart() { playerInventoryModel = PlayerInventoryModel.First <PlayerInventoryModel>(); settingModel = Model.First <SettingModel>(); playerStatusModel = PlayerStatusModel.First <PlayerStatusModel>(); StartCoroutine(LoadInitialData()); }
private void OnPlayerStatusChanged(PlayerStatusModel playerStatus) { if (PlayerStatusChanged != null) { PlayerStatusChanged(playerStatus); } }
// all controlers that inherit from this will have // the models that are injected into its constructor public void Init(GameModel model, PlayerStatusModel psModel, InventoryVM ivm) { gameModel = model; playerStatusModel = psModel; inventoryVM = ivm; OnInitComplete(); }
private void PlayerStatusChanged(PlayerStatusModel playerStatusModel) { if (playerStatusModel.Status == PlayerStatus.Playing) { _logger.Info($"'{playerStatusModel.Name}' is now playing - '{playerStatusModel.PlayerProfileUrl}'"); _alertSoundPlayer.Play(); this.Activate(true); } }
protected override void OnLoadStart() { optionModel = Model.First <MobileOptionModel>(); cash_Table = TableManager.Instance.GetTableClass <Cash_Table>(); character_Table = TableManager.Instance.GetTableClass <Character_Table>(); skin_Table = TableManager.Instance.GetTableClass <Skin_Table>(); playerInventoryModel = Model.First <PlayerInventoryModel>(); playerStatusModel = Model.First <PlayerStatusModel>(); SetLoadComplete(); }
public ResultModel() { PlayerStatus = new PlayerStatusModel { Status = WiningStatus.InGame }; DealerStatus = new PlayerStatusModel { Status = WiningStatus.InGame }; GameStatus = GameStatus.OnPlay; }
private void MonitorServicePlayerStatusChanged(PlayerStatusModel playerStatusModel) { if (PlayerStatusChanged != null) { PlayerStatusChanged(playerStatusModel); } var updatedPlayer = PlayerStatusList.First(x => x.Name == playerStatusModel.Name); updatedPlayer.Status = playerStatusModel.Status; updatedPlayer.PlayerProfileUrl = playerStatusModel.PlayerProfileUrl; }
//Coroutine btnEvent; #region Contents Load protected override void OnLoadStart() { scheduleModel = Model.First <ScheduleModel>(); playerInventoryModel = Model.First <PlayerInventoryModel>(); playerStatusModel = Model.First <PlayerStatusModel>(); settingModel = Model.First <SettingModel>(); optionModel = Model.First <MobileOptionModel>(); skill_Table = TableManager.Instance.GetTableClass <Skill_Table>(); buff_Table = TableManager.Instance.GetTableClass <Buff_Table>(); StartCoroutine(LoadInitialData()); }
protected override void OnLoadStart() { //AndroidTrasferMgr.Instance.ShowToast("로딩 시작"); scheduleModel = Model.First <ScheduleModel>(); playerInventoryModel = Model.First <PlayerInventoryModel>(); playerStatusModel = Model.First <PlayerStatusModel>(); settingModel = Model.First <SettingModel>(); skill_Table = TableManager.Instance.GetTableClass <Skill_Table>(); buff_Table = TableManager.Instance.GetTableClass <Buff_Table>(); StartCoroutine(LoadInitialData()); }
public void PlayerStatusResult_Enums_And_Bools_Serialize_Ok() { var sourceModel = new PlayerStatusModel { CanSeek = true, RepeatMode = RepeatMode.Playlist, ShuffleMode = ShuffleMode.All, PlayerMode = PlayerMode.Playing }; var serialized = JsonConvert.SerializeObject(sourceModel); var deserialized = JsonConvert.DeserializeObject <PlayerStatusModel> (serialized); Assert.IsTrue(deserialized.CanSeek); Assert.IsTrue(deserialized.RepeatMode == RepeatMode.Playlist); Assert.IsTrue(deserialized.ShuffleMode == ShuffleMode.All); Assert.IsTrue(deserialized.PlayerMode == PlayerMode.Playing); }
public async Task Execute(PlayerStatusModel model) { int playerId = model.PlayerId; var player = await _playerDomainService.Get(playerId); if (player == null) { _logger.LogDebug($"player == null"); return; } var online = await _mudOnlineProvider.GetPlayerOnline(playerId); if (online == null) { //玩家离线后,从队列删除,并且修改状态为空闲 await _recurringQueue.Remove <PlayerStatusModel>(playerId); if (player.Status != PlayerStatusEnum.空闲) { player.Status = PlayerStatusEnum.空闲; await _playerDomainService.Update(player); await _bus.RaiseEvent(new PlayerStatusChangedEvent(player)).ConfigureAwait(false); } return; } if (player.Status != model.Status) { await _recurringQueue.Remove <PlayerStatusModel>(playerId); return; } //TODO switch (model.Status) { case PlayerStatusEnum.伐木: break; } await _mudProvider.ShowMessage(playerId, $"你正在{model.Status}。。。"); }
public void SaveAndLoadTest() { PlayerStatusModel playerStatusModel = new PlayerStatusModel(); playerStatusModel.DataPath = Application.dataPath + "/Editor/Tests/TestData/player_status.xml"; // fill the player status model with some data playerStatusModel.Level = "2"; playerStatusModel.Step = "1"; List <string> items = new List <string>(); items.Add("1"); items.Add("1"); items.Add("1"); items.Add("2"); items.Add("2"); // add the list with the 5 items to the player status model playerStatusModel.Items = items; // save player status into an xml file playerStatusModel.Save(); // clear all player data playerStatusModel.Clear(); // assert that all players data is empty Assert.That(playerStatusModel.Level == ""); Assert.That(playerStatusModel.Step == ""); Assert.That(playerStatusModel.Items.Count == 0); // now load the saved data into the model playerStatusModel.Load(); // Assert that the players data is now equal to the data that is saved // into the XML file Assert.That(playerStatusModel.Level == "2"); Assert.That(playerStatusModel.Step == "1"); Assert.That(playerStatusModel.Items.Count == 5); }
protected override void OnLoadStart() { gameSchedule = new GameSchedule(); listAlongGameSchedule = new List <AloneGameSchedule>(); dicSchedule = new Dictionary <int, AloneGameSchedule>(); playerStatus = new PlayerStatus(); playerInventory = new PlayerInventory(); holostarSetting = new HoloStarSetting(); calanderEvent = new CalanderEvent(); scheduleModel = Model.First <ScheduleModel>(); playerStatusModel = Model.First <PlayerStatusModel>(); playerInventoryModel = Model.First <PlayerInventoryModel>(); settingModel = Model.First <SettingModel>(); holostarSettingModel = Model.First <HolostarSettingModel>(); calendarModel = Model.First <CalendarModel>(); CheckFile("PlayerInventory"); CheckFile("HoloStarSetting"); CheckFile("Calendar"); SetLoadComplete(); }
protected override void OnLoadStart() { gameSchedule = new GameSchedule(); listAlongGameSchedule = new List <AloneGameSchedule>(); dicSchedule = new Dictionary <int, AloneGameSchedule>(); playerStatus = new PlayerStatus(); playerInventory = new PlayerInventory(); holostarSetting = new HoloStarSetting(); mobileOption = new MobileOption(); scheduleModel = Model.First <ScheduleModel>(); playerStatusModel = Model.First <PlayerStatusModel>(); playerInventoryModel = Model.First <PlayerInventoryModel>(); settingModel = Model.First <SettingModel>(); holostarSettingModel = Model.First <HolostarSettingModel>(); mobileOptionModel = Model.First <MobileOptionModel>(); CheckFile("Schedule"); CheckFile("PlayerStatus"); CheckFile("PlayerInventory"); CheckFile("HoloStarSetting"); CheckFile("MobileOption"); SetLoadComplete(); }
IEnumerator LoadGameData() { // get the game model gameModel = new GameModel(); // set the gamedata.xml file path gameModel.DataPath = Application.streamingAssetsPath + "/Data/gamedata.xml"; // load the game data into the model gameModel.Load(); // get the player status model playerStatusModel = new PlayerStatusModel(); playerStatusModel.DataPath = Application.streamingAssetsPath + "/Data/player_status.xml"; playerStatusModel.Clear(); // init the inventory VM inventoryVM = new InventoryVM(); inventoryVM.AvailableItems = gameModel.AvailableItems; yield return(null); // the game data should be ready at this point. OnGameDataReady(); }
public async Task Execute(PlayerStatusModel model) { int playerId = model.PlayerId; var player = await _playerDomainService.Get(playerId); if (player == null) { _logger.LogDebug($"player == null"); return; } var online = await _mudOnlineProvider.GetPlayerOnline(playerId); if (online == null) { //玩家离线后,从队列删除,并且修改状态为空闲 await _recurringQueue.Remove <PlayerStatusModel>(playerId); if (player.Status != PlayerStatusEnum.空闲) { player.Status = PlayerStatusEnum.空闲; await _playerDomainService.Update(player); await _bus.RaiseEvent(new PlayerStatusChangedEvent(player)).ConfigureAwait(false); } return; } if (player.Status != model.Status) { await _recurringQueue.Remove <PlayerStatusModel>(playerId); return; } //TODO switch (model.Status) { case PlayerStatusEnum.伐木: case PlayerStatusEnum.挖矿: case PlayerStatusEnum.打猎: case PlayerStatusEnum.采药: case PlayerStatusEnum.钓鱼: case PlayerStatusEnum.打工: await DoWork(player); break; case PlayerStatusEnum.疗伤: await Heal(player); break; case PlayerStatusEnum.打坐: await Muse(player); break; case PlayerStatusEnum.战斗: await Fighting(player, model.TargetId); break; } }
private async Task <bool> BeginChangeStatus(PlayerStatusModel playerStatusModel) { var playerId = playerStatusModel.PlayerId; var newStatus = playerStatusModel.Status; var targetId = playerStatusModel.TargetId; var targetType = playerStatusModel.TargetType; var player = await _playerDomainService.Get(playerId); if (player == null) { await _bus.RaiseEvent(new DomainNotification($"角色不存在!")); return(false); } var status = player.Status; if (status == newStatus) { return(false); } if (player.Status != PlayerStatusEnum.空闲) { await _bus.RaiseEvent(new DomainNotification($"你正在{player.Status}中,请先停下!")); return(false); } var workTimes = await _redisDb.StringGet <int>(string.Format(RedisKey.WorkTimes, playerId, newStatus)); int minDelay = 5000; int maxDelay = 15000; switch (newStatus) { case PlayerStatusEnum.打猎: await _mudProvider.ShowMessage(playerId, "你开始在丛林中寻找猎物的踪影。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次打猎)); } break; case PlayerStatusEnum.伐木: await _mudProvider.ShowMessage(playerId, "你拿起斧头,对着一棵大树嘿呦嘿呦得砍了起来。"); //新手任务 if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次伐木)); } break; case PlayerStatusEnum.采药: await _mudProvider.ShowMessage(playerId, "你开始在草丛中搜寻草药的踪影。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次采药)); } break; case PlayerStatusEnum.挖矿: await _mudProvider.ShowMessage(playerId, "你挥动铁锹,开始挖矿。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次挖矿)); } break; case PlayerStatusEnum.钓鱼: await _mudProvider.ShowMessage(playerId, "你把鱼竿一甩,开始等待鱼儿上钩。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次钓鱼)); } break; case PlayerStatusEnum.疗伤: if (player.Hp >= player.MaxHp) { await _mudProvider.ShowMessage(playerId, "你没有受伤,无需治疗。"); return(false); } await _mudProvider.ShowMessage(playerId, "你盘膝坐下,开始运功疗伤。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次疗伤)); } break; case PlayerStatusEnum.打坐: if (player.Mp >= player.MaxMp) { await _mudProvider.ShowMessage(playerId, "你内力充沛,无需打坐。"); return(false); } await _mudProvider.ShowMessage(playerId, "你盘膝坐下,开始打坐。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次打坐)); } break; case PlayerStatusEnum.修练: if (player.Pot <= 0) { await _mudProvider.ShowMessage(playerId, "你的潜能不够,无法修练。"); return(false); } if (targetId <= 0) { return(false); } await _mudProvider.ShowMessage(playerId, "你开始修练。。。"); if (workTimes <= 0) { await _queueHandler.SendQueueMessage(new CompleteQuestNewbieQuestQueue(playerId, NewbieQuestEnum.第一次修练)); } break; case PlayerStatusEnum.切磋: minDelay = player.Speed; maxDelay = minDelay + 1000; break; default: await _mudProvider.ShowMessage(playerId, $"你开始{newStatus}。。。"); break; } player.Status = newStatus; await _playerDomainService.Update(player); //新手任务 workTimes++; await _redisDb.StringSet(string.Format(RedisKey.ChatTimes, playerId), workTimes); await _recurringQueue.Publish($"player_{playerId}", new PlayerStatusModel { PlayerId = player.Id, Status = newStatus, TargetType = targetType, TargetId = targetId }, minDelay, maxDelay); if (await Commit()) { await _bus.RaiseEvent(new PlayerStatusChangedEvent(player)).ConfigureAwait(false); } return(true); }
public PlayerStatusQueue(PlayerStatusModel status) { Status = status; }