public override ICommand GetCommand(IControlledCharacter character) { var result = new DoNothing(); result.SetDuration(30); return(result); }
public override void Finalize(IControlledCharacter character) { var manager = character.GetCharStateManager(); manager.ChangeProperty(new Boredom { Value = BoredomEffect }); manager.ChangeProperty(new Fatigue { Value = FatigueEffect }); }
public override ICommand GetCommand(IControlledCharacter character) { var moveTarget = new Vector2(); float randX = Random.Range(0, 3); moveTarget.x = randX < 2 ? 1f : -1f; float randY = Random.Range(0, 3); moveTarget.y = randY < 2 ? 1f : -1f; var result = new MoveOneCell(); result.SetDirection(moveTarget); _isCompleted = true; return(result); }
public override void invokeOn(IControlledCharacter character) { if (_isInProgress) { character.ContinueMovement(); return; } _character = character; var currentPosition = _character.GetPosition(); _moveTarget = new Vector2 { x = currentPosition.x + _direction.x, y = currentPosition.y + _direction.y }; _character.MoveTo(_moveTarget); _character.SetState(CharState.StateMoving); _isInProgress = true; }
public abstract void Finalize(IControlledCharacter character);
public abstract ICommand GetCommand(IControlledCharacter character);
public abstract void invokeOn(IControlledCharacter character);
public override void invokeOn(IControlledCharacter character) { _ticksLeft--; }