public override void PhaseStart() { _arg = Argument as Arg; // なにもないときは終了する if (!Scene.ProcessContainer.Exists(_arg.ActionProcessType)) { Change(Phase.EnemyTink); return; } _player = _charaManager.Player; }
/// <summary> /// 前のプロセスが終了したときに呼び出される /// </summary> protected override void ProcessStartInternal() { _player = _charaManager.Player; var tileDataMap = _mapManager.CurrentTileDataMap; var tileFlag = tileDataMap.GetTileFlag(_player.Model.CellPosition.Value); // 下り階段 if (tileFlag.HasStepDown()) { SetNext <ProcessConfirmStepDown>(); } ProcessFinish(); }
/// <summary> /// シーンが開始される時 /// </summary> public override void StartScene() { _player = _charaManager.Player; if (!_player.IsSetuped) { // Playerの準備が整った時に通知を受ける _player.OnSetuped .Subscribe(_ => {}, onCompleted: () => Setup()); } else { Setup(); } }
public override void PhaseStart() { _player = _charaManager.Player; _player.SetFollowCameraEnable(false); _targets.Clear(); // プレイヤーの向きから攻撃先を決める // (武器によって範囲変えたり) var position = _player.Model.CellPosition; var dir = _player.Model.Dir; var targetPos = position.Value + dir.Value; SearchTargetUnit(targetPos); var attackProcess = _player.AddAttackProcess <Chara.Process.ProcessAttack>(); attackProcess.SetChara(_player, ignoreIfNoTarget: true, targetPos: targetPos); attackProcess.SetTargets(_targets); _player.ExecuteAttackProcess(); }
public void Setup() { _player = _charaManager.Player; _player.SetFollowCameraEnable(false); }