クトゥルフのツールアプリを書く

これはTRPG なんでも Advent Calendar 2018の25日目です。 前日は Yuki Ito です。

adventar.org

はじめに

最近友人からクトゥルフを勧められて少し始めました。よくwebページにクトゥルフの便利サイトが多々あると思います。自分もダイス振るやつとかキャラ保管所とかをよく使ってます。僕はスマートフォンのアプリ大好き人間なのでAndroidアプリでこれらを実装しました。まだキャラ編集と削除ができないアプリになってしまっているので、それらの機能が追加でき次第Google Playsにあげようと思っています。

概要

今回Androidアプリで実装するのでAndroid Architecture Components + Kotlinを用いました。また扱いやすくするためにViewPagerを使ってスワイプ移動できるようになっています。Fragment, ActivityからViewModelにアクセスしてViewModelからRepositoryに接続しています。Roomを使ってSQLiteをたたいてます。
こちらが実際のキャラクターの新規作成と読み込みです。

スキルに関しては追加ボタンを押すとスキルを新規追加でき動的にViewを追加します。作成の時は各EditTextから値を取得し保存していますがスキルの値は動的に作られるのでgetChildを使ってViewを取得し値を取得しています。読み込みの時も同様に動的にスキル表示のViewを作成し値を代入しています。

こっちはおまけで作ったダイスページです。

ファンブルとクリティカルの表示等はまだできないようになっています。おまけなのでまったり実装予定です。

これから

現在はローカルDBしか扱えませんが今後の実装でtomlに対応させていく予定もあります(ref. GitHub - acomagu/cstoml: TRPGキャラクター保管所 -> TOML)。また現在はUIコードの実装が追い付かずキャラクターの新規作成と読み込みしかできない状態になってます。ここら辺の対応を終え次第Google Playに公開予定です。