private async void MaidTalk() { await _maid1Light.Control(true); await _maid2Light.Control(true); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if (result.SwitchItem.SwitchStatus == SwitchStatus.NO) { continue; } if (_saying) { continue; } if (((result.SwitchItem.SwitchNumber == _maid1Breast1.MachineButtonItem.Number) || (result.SwitchItem.SwitchNumber == _maid1Breast2.MachineButtonItem.Number)) && !_maid1Mute) { await PlayMusic0(SignKey, "maid1-rude.wav", "wrongclick"); CallOnNotification("maid1 down"); await _maid1Light.Control(false); _maid1Mute = true; Maid1MuteTimer.Start(); continue; } if (((result.SwitchItem.SwitchNumber == _maid2Breast1.MachineButtonItem.Number) || (result.SwitchItem.SwitchNumber == _maid2Breast2.MachineButtonItem.Number)) && !_maid2Mute) { await PlayMusic0(SignKey, "maid2-rude.wav", "wrongclick"); CallOnNotification("maid2 down"); await _maid2Light.Control(false); _maid2Mute = true; Maid2MuteTimer.Start(); continue; } CallOnNotification($"hitting: {result.SwitchItem.SwitchNumber}"); Check(result.SwitchItem.SwitchNumber, _currentStep); } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void EyePick() { while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, 10 * 60 * 1000); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if (result.SwitchItem.SwitchStatus == SwitchStatus.NO) { continue; } var eye = ButtonItems.FirstOrDefault(r => r.Number == result.SwitchItem.SwitchNumber); if (null == eye) { continue; } //_eyeroller[eye] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; var eyebutton = _eyebuttons.FirstOrDefault(e => e.Key.Number == result.SwitchItem.SwitchNumber); if (eyebutton.Value != null) { foreach (var machineRelayItem in _eyebuttons) { await machineRelayItem.Value.Control(false); } CallOnNotification($"button:{eye.Number} - status:{result.SwitchItem.SwitchStatus} eye:{eyebutton.Value.Number}"); await eyebutton.Value.Control(result.SwitchItem.SwitchStatus == SwitchStatus.NC); if (result.SwitchItem.SwitchStatus == SwitchStatus.NC) { var tick = DateTime.Now.Ticks; var randomnumber = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32)).Next(1, 7); await PlayMusic0(SignKey, $"e{randomnumber}.wav", "eyesound"); } } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void RunePick() { await _light.Control(true); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, 10 * 60 * 1000); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { var rune = ButtonItems.FirstOrDefault(r => r.Number == result.SwitchItem.SwitchNumber); if (null == rune) { continue; } _runes[rune] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; CallOnNotification($"rune: {result.SwitchItem.SwitchNumber} status: {result.SwitchItem.SwitchStatus}"); await PlayMusic0(SignKey, "touch.wav", "touching"); var runeon = _runes.Where(r => _runeson.Contains(r.Key)); var runeoff = _runes.Where(r => !_runeson.Contains(r.Key)); if (runeon.All(r => 1 == r.Value) && runeoff.All(r => 0 == r.Value)) { await PauseMusic0(SignKey, "touching"); await PlayMusic0(SignKey, "touchsuccess.wav", "touchover"); await Task.Delay(4000); await _light.Control(false); OnGameOver(); return; } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void KnockingRun() { var knockingcount = 0; while (true) { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, WaitingTime); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var switchItemWithDeviceNumber in results) { if (SwitchStatus.NC == switchItemWithDeviceNumber.SwitchItem.SwitchStatus) { if (KnockTimes > knockingcount) { knockingcount++; CallOnNotification($"count: {knockingcount}"); } else { OnGameOver(); return; } } } } else { knockingcount = 0; CallOnNotification($"timeout, count: {knockingcount}"); } //await Task.Delay(1000); } }
private async void Crystalcheck() { while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, 60 * 1000); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if ((result.SwitchItem.SwitchNumber == _ball1.Number) && !_light1.IsNo) { //_ballStatus[_ball1] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; if (result.SwitchItem.SwitchStatus == SwitchStatus.NC) { _ballStatus[_ball1] = 1; await PlayMusic0(SignKey, "fire.wav", "crystal"); await _light1.Control(true); } } if ((result.SwitchItem.SwitchNumber == _ball2.Number) && !_light2.IsNo) { //_ballStatus[_ball2] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; if (result.SwitchItem.SwitchStatus == SwitchStatus.NC) { _ballStatus[_ball2] = 1; await PlayMusic0(SignKey, "lightning.wav", "crystal"); await _light2.Control(true); } } if ((result.SwitchItem.SwitchNumber == _ball3.Number) && !_light3.IsNo) { //_ballStatus[_ball3] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; if (result.SwitchItem.SwitchStatus == SwitchStatus.NC) { _ballStatus[_ball3] = 1; await PlayMusic0(SignKey, "water.wav", "crystal"); await _light3.Control(true); } } if ((result.SwitchItem.SwitchNumber == _blow.Number) && !_light4.IsNo) { _ballStatus[_blow] = result.SwitchItem.SwitchStatus == SwitchStatus.NC ? 1 : 0; if (result.SwitchItem.SwitchStatus == SwitchStatus.NC) { await PlayMusic0(SignKey, "wind.wav", "crystal"); await _light4.Control(true); } } if (_ballStatus.All(r => 1 == r.Value)) { OnGameOver(); return; } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void BattleOn() { RestLife(); Enemies.RestBattle(); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTasks, 15 * 60 * 1000); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if (null == result) { CallOnNotification("empty button message"); continue; } if (result.SwitchItem.SwitchStatus == SwitchStatus.NO) { continue; } var switchnumber = result.SwitchItem.SwitchNumber; if ((switchnumber == _startButton.Number) && (result.DeviceNumber == _startButton.DeviceNumber) && !_alive) { _alive = true; RestLife(); Enemies.RestBattle(); BattleEnemyTimer.Hurting -= BattleEnemyTimerHurting; BattleEnemyTimer.Hurting += BattleEnemyTimerHurting; BattleEnemyTimer.Finishing -= BattleEnemyTimerFinishing; BattleEnemyTimer.Finishing += BattleEnemyTimerFinishing; _currentRound = 0; Battling(); //_roundTimer = new Timer(2 * 60 * 1 * 1000) { AutoReset = false }; //_roundTimer.Start(); continue; } if (Enemies.CheckIfOff(result.DeviceNumber, result.SwitchItem.SwitchNumber)) { continue; } if (_allHits.Any(b => (b.Number == result.SwitchItem.SwitchNumber) && (b.DeviceNumber == result.DeviceNumber))) { var tick = DateTime.Now.Ticks; var randomnumber = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32)).Next(1, 5); var hitsound = $"hit{randomnumber}.wav"; await PlayMusic0(SignKey, hitsound, hitsound); CallOnNotification($"hit : {result.SwitchItem.SwitchNumber} - {result.DeviceNumber}"); ButtonHit(BattleEnemyTimer, result.SwitchItem.SwitchNumber, result.DeviceNumber); } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void Guarding() { await SendWcfCommandPluginsHelper.ChangeFrame(TimeSpan.FromSeconds(15), VideoActionType.Pause, _videoAddress); _toguardTimer.Start(); ResetLight(false); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, WaitingTime); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { var switchnumber = result.SwitchItem.SwitchNumber; if (switchnumber == _aisleCheck.Number) { _aisllight = result.SwitchItem.SwitchStatus == SwitchStatus.NO; } if (switchnumber == _roomCheck.Number) { _roomlight = result.SwitchItem.SwitchStatus == SwitchStatus.NO; } CallOnNotification($"aisle = {_aisllight} --- room = {_roomlight}"); if (_aisllight && _roomlight && !_leaved) { //jump to normal loop _stopTimer.Stop(); await SendWcfCommandPluginsHelper.ChangeFrame(TimeSpan.FromSeconds(15), VideoActionType.Play, _videoAddress); await SendWcfCommandPluginsHelper.ChangeFrame(TimeSpan.FromSeconds(15), VideoActionType.Pause, _videoAddress); _toguardTimer.Start(); await _faillight.Control(false); if (!_personavailable) { await _listenLight.Control(false); } continue; } if (result.SwitchItem.SwitchStatus == SwitchStatus.NO) { continue; } if (!_leaved) { if ((switchnumber == _aisleCheck.Number) || ((switchnumber == _roomCheck.Number) && !_personavailable)) { //jump to stop, and pause await Stop(); } } else { if (switchnumber == _roomCheck.Number) { await _listenLight.Control(true); await _faillight.Control(false); _personavailable = true; } } if ((switchnumber == _failButton.Number) && _faillight.IsNo) { CallOnNotification("偷听失败"); await PlayMusic0(SignKey, "fail.wav", "ear", musicAddress : _musicMinAddress); await Stop(false); } if ((switchnumber == _listenButton.Number) && _listenLight.IsNo) { CallOnNotification("偷听成功"); await PlayMusic0(SignKey, "success.wav", "ear", musicAddress : _musicMinAddress); await SendWcfCommandPluginsHelper.ChangeFrame(TimeSpan.FromSeconds(0), VideoActionType.Play, _videoAddress); await SendWcfCommandPluginsHelper.ChangeFrame(TimeSpan.FromSeconds(0), VideoActionType.Pause, _videoAddress); OnGameOver(); return; } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void StabCheck() { await SendWcfCommandPluginsHelper.InvokerNotificationForStart("ArshEnd1"); await SendWcfCommandPluginsHelper.InvokerNotificationForStart("ArshEnd2"); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, 60 * 1000); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if (result.SwitchItem.SwitchStatus == SwitchStatus.NO) { continue; } var hit = _hit.FirstOrDefault(h => h.Value.Number == result.SwitchItem.SwitchNumber); if (hit.Value != null) { await PlayMusic0(SignKey, "in.wav", "in"); var tick = DateTime.Now.Ticks; var randomcount = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32)).Next(2, 5); CallOnNotification($"current count {randomcount} v: {hit.Value}"); foreach (var machineRelayItem in RelayItems) { await machineRelayItem.Control(false); } for (var i = 0; i < randomcount; i++) { tick = DateTime.Now.Ticks; var randomnumber = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32)).Next(0, 4); CallOnNotification($"current number {randomnumber}"); await RelayItems[randomnumber].Control(true); } if (hit.Key == _squence1[_current]) { CallOnNotification($"currentstep: {_current}"); _current++; if (_current == _squence1.Count) { foreach (var machineRelayItem in RelayItems) { await machineRelayItem.Control(false); } await SendWcfCommandPluginsHelper.InvokerNotificationForStop("ArshEnd1"); OnGameOver(); return; } continue; } //if (hit.Key == _squence2[_current]) //{ // CallOnNotification($"currentstep: {_current}"); // _current++; // if (_current == _squence2.Count) // { // foreach (var machineRelayItem in RelayItems) // { // await machineRelayItem.Control(false); // } // await SendWcfCommandPluginsHelper.InvokerNotificationForStop("ArshEnd2"); // OnGameOver(); // return; // } // continue; //} if (hit.Key == _squence1[0]) { CallOnNotification($"reset to new step1"); _current = 1; continue; } CallOnNotification("reset step"); _current = 0; } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }
private async void KnockingRun() { LifeRest(true); await _fotoElf.Control(false); await _fotoKing.Control(false); await _fotoKnight.Control(false); await _fotoMage.Control(false); while (true) { try { var hitchecktaskasync = new HitCheckTaskAsync(_hitCheckTask, WaitingTime); var results = await hitchecktaskasync.InvokeAsync(); if (null != results) { foreach (var result in results) { if ((result.SwitchItem.SwitchStatus == SwitchStatus.NO) || !_alive) { continue; } var switchnumber = result.SwitchItem.SwitchNumber; if ((_currentButton != null) && (_currentButton.Number == _listenKnight.Number) && (switchnumber == _hitKnight.Number)) { await PauseMusic0(SignKey, "knightsay"); var hitcheck = await StopArgue(8, _listenKnight.Number, "argue_knightwrong.wav", 12 * 1000, 15 * 1000); if (hitcheck) { OnGameOver(); return; } } if ((_currentButton != null) && (_currentButton.Number == _listenKing.Number) && (switchnumber == _hitKing.Number)) { await PauseMusic0(SignKey, "kingsay"); await StopArgue(6, _listenKing.Number, "argue_kingwrong.wav"); } if ((_currentButton != null) && (_currentButton.Number == _listenMage.Number) && (switchnumber == _hitMage.Number)) { await PauseMusic0(SignKey, "magesay"); await StopArgue(9, _listenMage.Number, "argue_magewrong.wav"); } if ((_currentButton != null) && (_currentButton.Number == _listenElf.Number) && (switchnumber == _hitElf.Number)) { await PauseMusic0(SignKey, "elfsay"); await StopArgue(8, _listenElf.Number, "argue_elfwrong.wav"); } if ((switchnumber == _listenKing.Number) && !_saying && !_refuting) { ListenCheck(_listenKing, "kingsay"); } if ((switchnumber == _listenMage.Number) && !_saying && !_refuting) { ListenCheck(_listenMage, "magesay"); } if ((switchnumber == _listenKnight.Number) && !_saying && !_refuting) { ListenCheck(_listenKnight, "knightsay"); } if ((switchnumber == _listenElf.Number) && !_saying && !_refuting) { ListenCheck(_listenElf, "elfsay"); } } } } catch (Exception ex) { OnNotification(new NotificationEventArgs(ex.Message)); } } }