その後のBrounie

少女展爛会システム、書いてるそばから新しい思いつきをするので、一進一退なのです。バーンダウンチャートがぎざぎざしながら、下がって行かない感じ。
わりとまじめにunit testを書いてます。ちょっとitを書くのをさぼってて、意味不明な結果表示のとこもありますが。

Brounie 少女展爛会システム

  • 提示部
    • セッションを新規作成した場合
      • 全てのオーデは0
      • 出来事表を持っている
      • 参加しているキャラクタは0人
    • #put_in 参加
      • キャラクタを追加できる
      • 同じ名前のキャラは追加できない
    • #exit 退出
      • キャラが参加していれば退出する
      • キャラが参加していなければ例外
    • 複数のキャラが参加している場合
      • #list キャラクタリストの表示
      • #char_idx キャラ名からidを返す
  • 展開部
    • 出来事表リストを設定できる
      • 一覧表示できる
      • 有効化/無効化できる
    • 出来事表を振れる
      • 出目を指定して出来事を表示できる
      • キャクターが出来事表を振れる
      • 出来事によってオーデが溜まる
      • テンションが危険な場合には警告が出る
  • 再現部(ショウ・アップ)
    • Phase イニチアティブの管理
      • next 次
        • should == "イニシアティブ・フェイズ"
        • should == "きゃら1のフェイズ"
        • should == "きゃら2のフェイズ"
        • should == "きゃら3のフェイズ"
        • should == "きゃら4のフェイズ"
        • should == "オーデ・フェイズ"
        • should == "イニシアティブ・フェイズ"
      • end 行動終了
        • should == "きゃら1のフェイズ"
        • should == "きゃら2のフェイズ"
        • should == "きゃら3のフェイズ"
        • should == "きゃら4のフェイズ"
        • should == "オーデ・フェイズ"
        • should == "イニシアティブ・フェイズ"
      • cut_in 割込み
        • should raise Brounie::MisplayError
        • should == "きゃら4のフェイズ"
        • should == "きゃら2のフェイズ"
    • 判定(アプローチとリプライ)
      • say 判定を宣言できること
      • roll 判定を実行できること
      • result 判定結果を表示できること
      • roll([n]) 振り直しができること
    • テンションの管理
      • impact テンションを溜められること
      • open テンションを開放できること
      • delete テンションを消去できること
      • テンションが最大値を超えたら陥落すること
    • オーデの管理
      • sway([target]) 形式のスウェイ
      • sway([target], [count]) 形式のスウェイ
      • sway([target], [count], [adverse]) 形式のスウェイ
      • リーディングの管理
      • コンクルージョンの処理ができること

BrounieBot

  • #map_command
    • 途中に%(半角)や%(全角)が入ってる発言
      • 無視すること。
    • %unknown 知らないコマンド
      • コマンドは:unknown
    • %unknown 知らないこと
      • 解釈できなかったメッセージを返すこと
    • %help
      • コマンドは:help
    • %h some_command
      • 対象のコマンドを返す
    • 引数なしのコマンド
      • %list
        • should == :list
      • %一覧
        • should == :list
      • %next 傍観するので次どうぞ
        • should == :next
      • %行動終了
        • should == :end
    • 引数がキャラ名のみのコマンド
      • %show 表示
        • %show (キャラ指定なし)
          • コマンドは:show
          • nickからキャラ名を得る
        • %きゃら.s (キャラ名前置)
          • コマンドは:show
          • キャラ名を認識する
        • %shきゃら (キャラ名後置)
          • コマンドは:show
          • キャラ名を認識する
      • %exit 退室
        • コマンドは:exit
        • キャラ名を認識する
      • %cut_in 割り込み
        • コマンドは:cut_in
        • キャラ名を認識する
  • #do_command
    • MisplayError ルール違反の例外が出た場合
      • 例外メッセージを表示すること
    • Sessionに転送されるコマンド
      • :exit
      • :list
    • Phaseに転送されるコマンド
      • :next
      • :end
      • :cut_in
    • Characterに転送されるコマンド
      • :show
  • %join 参加
    • nickに対して最初のキャラが参加した場合
      • キャラが追加されること
      • nickにキャラが紐づくこと
    • nickに対して紐づいているキャラとは別キャラが参加した場合
      • キャラが追加されること
      • nickに紐づくキャラは変わらないこと