Creates initial app database class and adds minimal DTO support for monsters.
This commit is contained in:
@@ -2,11 +2,11 @@
|
|||||||
"formatVersion": 1,
|
"formatVersion": 1,
|
||||||
"database": {
|
"database": {
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"identityHash": "db1293d2f490940b55ca1f4f56b21b1a",
|
"identityHash": "a9371223372fb64522cc40f5529ada09",
|
||||||
"entities": [
|
"entities": [
|
||||||
{
|
{
|
||||||
"tableName": "Monster",
|
"tableName": "Monster",
|
||||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL DEFAULT '', `size` TEXT NOT NULL DEFAULT '', `type` TEXT NOT NULL DEFAULT '', `subtype` TEXT NOT NULL DEFAULT '', `alignment` TEXT NOT NULL DEFAULT '', `strength_score` INTEGER NOT NULL DEFAULT 10, `strength_saving_throw_advantage` TEXT DEFAULT 'none', `strength_saving_throw_proficiency` TEXT DEFAULT 'none', `dexterity_score` INTEGER NOT NULL DEFAULT 10, `dexterity_saving_throw_advantage` TEXT DEFAULT 'none', `dexterity_saving_throw_proficiency` TEXT DEFAULT 'none', `constitution_score` INTEGER NOT NULL DEFAULT 10, `constitution_saving_throw_advantage` TEXT DEFAULT 'none', `constitution_saving_throw_proficiency` TEXT DEFAULT 'none', `intelligence_score` INTEGER NOT NULL DEFAULT 10, `intelligence_saving_throw_advantage` TEXT DEFAULT 'none', `intelligence_saving_throw_proficiency` TEXT DEFAULT 'none', `wisdom_score` INTEGER NOT NULL DEFAULT 10, `wisdom_saving_throw_advantage` TEXT DEFAULT 'none', `wisdom_saving_throw_proficiency` TEXT DEFAULT 'none', `charisma_score` INTEGER NOT NULL DEFAULT 10, `charisma_saving_throw_advantage` TEXT DEFAULT 'none', `charisma_saving_throw_proficiency` TEXT DEFAULT 'none', `armor_type` TEXT DEFAULT 'none', `shield_bonus` INTEGER NOT NULL DEFAULT 0, `natural_armor_bonus` INTEGER NOT NULL DEFAULT 0, `other_armor_description` TEXT DEFAULT '', `hit_dice` INTEGER NOT NULL DEFAULT 1, `has_custom_hit_points` INTEGER NOT NULL, `custom_hit_points_description` TEXT DEFAULT '', `walk_speed` INTEGER NOT NULL DEFAULT 0, `burrow_speed` INTEGER NOT NULL DEFAULT 0, `climb_speed` INTEGER NOT NULL DEFAULT 0, `fly_speed` INTEGER NOT NULL DEFAULT 0, `can_hover` INTEGER NOT NULL DEFAULT false, `swim_speed` INTEGER NOT NULL DEFAULT 0, `has_custom_speed` INTEGER NOT NULL DEFAULT false, `custom_speed_description` TEXT, `challenge_rating` TEXT DEFAULT '1', `custom_challenge_rating_description` TEXT DEFAULT '', `custom_proficiency_bonus` INTEGER NOT NULL DEFAULT 0, `blindsight_range` INTEGER NOT NULL DEFAULT 0, `is_blind_beyond_blindsight_range` INTEGER NOT NULL DEFAULT false, `darkvision_range` INTEGER NOT NULL DEFAULT 0, `tremorsense_range` INTEGER NOT NULL DEFAULT 0, `truesight_range` INTEGER NOT NULL DEFAULT 0, `telepathy_range` INTEGER NOT NULL DEFAULT 0, `understands_but_description` TEXT DEFAULT '', `skills` TEXT, `damage_immunities` TEXT, `damage_resistances` TEXT, `damage_vulnerabilities` TEXT, `condition_immunities` TEXT, `languages` TEXT, `abilities` TEXT, `actions` TEXT, `reactions` TEXT, `lair_actions` TEXT, `legendary_actions` TEXT, `regional_actions` TEXT, PRIMARY KEY(`id`))",
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL DEFAULT '', PRIMARY KEY(`id`))",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"fieldPath": "id",
|
"fieldPath": "id",
|
||||||
@@ -20,405 +20,6 @@
|
|||||||
"affinity": "TEXT",
|
"affinity": "TEXT",
|
||||||
"notNull": true,
|
"notNull": true,
|
||||||
"defaultValue": "''"
|
"defaultValue": "''"
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "size",
|
|
||||||
"columnName": "size",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "type",
|
|
||||||
"columnName": "type",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "subtype",
|
|
||||||
"columnName": "subtype",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "alignment",
|
|
||||||
"columnName": "alignment",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "strengthScore",
|
|
||||||
"columnName": "strength_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "strengthSavingThrowAdvantage",
|
|
||||||
"columnName": "strength_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "strengthSavingThrowProficiency",
|
|
||||||
"columnName": "strength_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "dexterityScore",
|
|
||||||
"columnName": "dexterity_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "dexteritySavingThrowAdvantage",
|
|
||||||
"columnName": "dexterity_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "dexteritySavingThrowProficiency",
|
|
||||||
"columnName": "dexterity_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "constitutionScore",
|
|
||||||
"columnName": "constitution_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "constitutionSavingThrowAdvantage",
|
|
||||||
"columnName": "constitution_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "constitutionSavingThrowProficiency",
|
|
||||||
"columnName": "constitution_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "intelligenceScore",
|
|
||||||
"columnName": "intelligence_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "intelligenceSavingThrowAdvantage",
|
|
||||||
"columnName": "intelligence_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "intelligenceSavingThrowProficiency",
|
|
||||||
"columnName": "intelligence_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "wisdomScore",
|
|
||||||
"columnName": "wisdom_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "wisdomSavingThrowAdvantage",
|
|
||||||
"columnName": "wisdom_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "wisdomSavingThrowProficiency",
|
|
||||||
"columnName": "wisdom_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "charismaScore",
|
|
||||||
"columnName": "charisma_score",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "charismaSavingThrowAdvantage",
|
|
||||||
"columnName": "charisma_saving_throw_advantage",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "charismaSavingThrowProficiency",
|
|
||||||
"columnName": "charisma_saving_throw_proficiency",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "armorType",
|
|
||||||
"columnName": "armor_type",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'none'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "shieldBonus",
|
|
||||||
"columnName": "shield_bonus",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "naturalArmorBonus",
|
|
||||||
"columnName": "natural_armor_bonus",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "otherArmorDescription",
|
|
||||||
"columnName": "other_armor_description",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "hitDice",
|
|
||||||
"columnName": "hit_dice",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "hasCustomHP",
|
|
||||||
"columnName": "has_custom_hit_points",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "customHPDescription",
|
|
||||||
"columnName": "custom_hit_points_description",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "walkSpeed",
|
|
||||||
"columnName": "walk_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "burrowSpeed",
|
|
||||||
"columnName": "burrow_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "climbSpeed",
|
|
||||||
"columnName": "climb_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "flySpeed",
|
|
||||||
"columnName": "fly_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "canHover",
|
|
||||||
"columnName": "can_hover",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "false"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "swimSpeed",
|
|
||||||
"columnName": "swim_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "hasCustomSpeed",
|
|
||||||
"columnName": "has_custom_speed",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "false"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "customSpeedDescription",
|
|
||||||
"columnName": "custom_speed_description",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "challengeRating",
|
|
||||||
"columnName": "challenge_rating",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "'1'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "customChallengeRatingDescription",
|
|
||||||
"columnName": "custom_challenge_rating_description",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "customProficiencyBonus",
|
|
||||||
"columnName": "custom_proficiency_bonus",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "blindsightRange",
|
|
||||||
"columnName": "blindsight_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "isBlindBeyondBlindsightRange",
|
|
||||||
"columnName": "is_blind_beyond_blindsight_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "false"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "darkvisionRange",
|
|
||||||
"columnName": "darkvision_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "tremorsenseRange",
|
|
||||||
"columnName": "tremorsense_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "truesightRange",
|
|
||||||
"columnName": "truesight_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "telepathyRange",
|
|
||||||
"columnName": "telepathy_range",
|
|
||||||
"affinity": "INTEGER",
|
|
||||||
"notNull": true,
|
|
||||||
"defaultValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "understandsButDescription",
|
|
||||||
"columnName": "understands_but_description",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false,
|
|
||||||
"defaultValue": "''"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "skills",
|
|
||||||
"columnName": "skills",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "damageImmunities",
|
|
||||||
"columnName": "damage_immunities",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "damageResistances",
|
|
||||||
"columnName": "damage_resistances",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "damageVulnerabilities",
|
|
||||||
"columnName": "damage_vulnerabilities",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "conditionImmunities",
|
|
||||||
"columnName": "condition_immunities",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "languages",
|
|
||||||
"columnName": "languages",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "abilities",
|
|
||||||
"columnName": "abilities",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "actions",
|
|
||||||
"columnName": "actions",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "reactions",
|
|
||||||
"columnName": "reactions",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "lairActions",
|
|
||||||
"columnName": "lair_actions",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "legendaryActions",
|
|
||||||
"columnName": "legendary_actions",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldPath": "regionalActions",
|
|
||||||
"columnName": "regional_actions",
|
|
||||||
"affinity": "TEXT",
|
|
||||||
"notNull": false
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
@@ -434,7 +35,7 @@
|
|||||||
"views": [],
|
"views": [],
|
||||||
"setupQueries": [
|
"setupQueries": [
|
||||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'db1293d2f490940b55ca1f4f56b21b1a')"
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'a9371223372fb64522cc40f5529ada09')"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,27 +4,12 @@ import androidx.room.Database;
|
|||||||
import androidx.room.RoomDatabase;
|
import androidx.room.RoomDatabase;
|
||||||
import androidx.room.TypeConverters;
|
import androidx.room.TypeConverters;
|
||||||
|
|
||||||
|
import com.majinnaibu.monstercards.converters.UUIDConverter;
|
||||||
import com.majinnaibu.monstercards.data.MonsterDAO;
|
import com.majinnaibu.monstercards.data.MonsterDAO;
|
||||||
import com.majinnaibu.monstercards.data.converters.ArmorTypeConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.ChallengeRatingConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.ListOfTraitsConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.SetOfLanguageConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.SetOfSkillConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.SetOfStringConverter;
|
|
||||||
import com.majinnaibu.monstercards.data.converters.UUIDConverter;
|
|
||||||
import com.majinnaibu.monstercards.models.Monster;
|
import com.majinnaibu.monstercards.models.Monster;
|
||||||
import com.majinnaibu.monstercards.models.MonsterFTS;
|
|
||||||
|
|
||||||
@Database(entities = {Monster.class, MonsterFTS.class}, version = 3)
|
@Database(entities = {Monster.class}, version=1)
|
||||||
@TypeConverters({
|
@TypeConverters({UUIDConverter.class})
|
||||||
ArmorTypeConverter.class,
|
|
||||||
ChallengeRatingConverter.class,
|
|
||||||
ListOfTraitsConverter.class,
|
|
||||||
SetOfLanguageConverter.class,
|
|
||||||
SetOfSkillConverter.class,
|
|
||||||
SetOfStringConverter.class,
|
|
||||||
UUIDConverter.class,
|
|
||||||
})
|
|
||||||
public abstract class AppDatabase extends RoomDatabase {
|
public abstract class AppDatabase extends RoomDatabase {
|
||||||
public abstract MonsterDAO monsterDAO();
|
public abstract MonsterDAO monsterDAO();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.majinnaibu.monstercards.converters;
|
||||||
|
|
||||||
|
import androidx.room.TypeConverter;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class UUIDConverter {
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static String fromUUID(UUID uuid) {
|
||||||
|
return uuid.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static UUID uuidFromString(String string) {
|
||||||
|
return UUID.fromString(string);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,6 @@ package com.majinnaibu.monstercards.data;
|
|||||||
import androidx.room.Dao;
|
import androidx.room.Dao;
|
||||||
import androidx.room.Delete;
|
import androidx.room.Delete;
|
||||||
import androidx.room.Insert;
|
import androidx.room.Insert;
|
||||||
import androidx.room.OnConflictStrategy;
|
|
||||||
import androidx.room.Query;
|
import androidx.room.Query;
|
||||||
|
|
||||||
import com.majinnaibu.monstercards.models.Monster;
|
import com.majinnaibu.monstercards.models.Monster;
|
||||||
@@ -16,24 +15,18 @@ import io.reactivex.rxjava3.core.Flowable;
|
|||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface MonsterDAO {
|
public interface MonsterDAO {
|
||||||
@Query("SELECT * FROM monsters")
|
@Query("SELECT * FROM monster")
|
||||||
Flowable<List<Monster>> getAll();
|
Flowable<List<Monster>> getAll();
|
||||||
|
|
||||||
@Query("SELECT * FROM monsters WHERE id IN (:monsterIds)")
|
@Query("SELECT * FROM monster WHERE id IN (:monsterIds)")
|
||||||
Flowable<List<Monster>> loadAllByIds(String[] monsterIds);
|
Flowable<List<Monster>> loadAllByIds(String[] monsterIds);
|
||||||
|
|
||||||
@Query("SELECT * FROM monsters WHERE name LIKE :name LIMIT 1")
|
@Query("SELECT * FROM monster WHERE name LIKE :name LIMIT 1")
|
||||||
Flowable<Monster> findByName(String name);
|
Flowable<Monster> findByName(String name);
|
||||||
|
|
||||||
@Query("SELECT monsters.* FROM monsters JOIN monsters_fts ON monsters.oid = monsters_fts.docid WHERE monsters_fts MATCH :searchText")
|
|
||||||
Flowable<List<Monster>> search(String searchText);
|
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
Completable insertAll(Monster... monsters);
|
Completable insertAll(Monster... monsters);
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
Completable save(Monster... monsters);
|
|
||||||
|
|
||||||
@Delete
|
@Delete
|
||||||
Completable delete(Monster monster);
|
Completable delete(Monster monster);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
package com.majinnaibu.monstercards.models;
|
package com.majinnaibu.monstercards.models;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.room.ColumnInfo;
|
||||||
|
import androidx.room.Entity;
|
||||||
|
import androidx.room.Ignore;
|
||||||
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
import com.majinnaibu.monstercards.helpers.StringHelper;
|
import com.majinnaibu.monstercards.helpers.StringHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -9,10 +15,21 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Entity
|
||||||
public class Monster {
|
public class Monster {
|
||||||
|
|
||||||
|
@PrimaryKey
|
||||||
|
@NonNull
|
||||||
|
public UUID id;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@ColumnInfo(defaultValue = "")
|
||||||
|
public String name;
|
||||||
|
|
||||||
public Monster() {
|
public Monster() {
|
||||||
|
name = "";
|
||||||
mAbilities = new ArrayList<>();
|
mAbilities = new ArrayList<>();
|
||||||
mActions = new ArrayList<>();
|
mActions = new ArrayList<>();
|
||||||
mConditionImmunities = new HashSet<>();
|
mConditionImmunities = new HashSet<>();
|
||||||
@@ -22,16 +39,7 @@ public class Monster {
|
|||||||
mSkills = new HashSet<>();
|
mSkills = new HashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String mName;
|
@Ignore()
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return mName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String value) {
|
|
||||||
mName = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String mSize;
|
private String mSize;
|
||||||
|
|
||||||
public String getSize() {
|
public String getSize() {
|
||||||
@@ -42,6 +50,7 @@ public class Monster {
|
|||||||
mSize = value;
|
mSize = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mType;
|
private String mType;
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
@@ -52,6 +61,7 @@ public class Monster {
|
|||||||
mType = value;
|
mType = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mTag;
|
private String mTag;
|
||||||
|
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
@@ -62,6 +72,7 @@ public class Monster {
|
|||||||
mTag = value;
|
mTag = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mAlignment;
|
private String mAlignment;
|
||||||
|
|
||||||
public String getAlignment() {
|
public String getAlignment() {
|
||||||
@@ -139,6 +150,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(score);
|
return getAbilityModifierForScore(score);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mStrengthScore;
|
private int mStrengthScore;
|
||||||
|
|
||||||
public int getStrengthScore() {
|
public int getStrengthScore() {
|
||||||
@@ -153,6 +165,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getStrengthScore());
|
return getAbilityModifierForScore(getStrengthScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mDexterityScore;
|
private int mDexterityScore;
|
||||||
|
|
||||||
public int getDexterityScore() {
|
public int getDexterityScore() {
|
||||||
@@ -167,6 +180,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getDexterityScore());
|
return getAbilityModifierForScore(getDexterityScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mConstitutionScore;
|
private int mConstitutionScore;
|
||||||
|
|
||||||
public int getConstitutionScore() {
|
public int getConstitutionScore() {
|
||||||
@@ -181,6 +195,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getConstitutionScore());
|
return getAbilityModifierForScore(getConstitutionScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mIntelligenceScore;
|
private int mIntelligenceScore;
|
||||||
|
|
||||||
public int getIntelligenceScore() {
|
public int getIntelligenceScore() {
|
||||||
@@ -195,6 +210,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getIntelligenceScore());
|
return getAbilityModifierForScore(getIntelligenceScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mWisdomScore;
|
private int mWisdomScore;
|
||||||
|
|
||||||
public int getWisdomScore() {
|
public int getWisdomScore() {
|
||||||
@@ -209,6 +225,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getWisdomScore());
|
return getAbilityModifierForScore(getWisdomScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mCharismaScore;
|
private int mCharismaScore;
|
||||||
|
|
||||||
public int getCharismaScore() {
|
public int getCharismaScore() {
|
||||||
@@ -223,6 +240,7 @@ public class Monster {
|
|||||||
return getAbilityModifierForScore(getCharismaScore());
|
return getAbilityModifierForScore(getCharismaScore());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mArmorName;
|
private String mArmorName;
|
||||||
|
|
||||||
public String getArmorName() {
|
public String getArmorName() {
|
||||||
@@ -233,6 +251,7 @@ public class Monster {
|
|||||||
mArmorName = value;
|
mArmorName = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mShieldBonus;
|
private int mShieldBonus;
|
||||||
|
|
||||||
public int getShieldBonus() {
|
public int getShieldBonus() {
|
||||||
@@ -243,6 +262,7 @@ public class Monster {
|
|||||||
mShieldBonus = value;
|
mShieldBonus = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mNaturalArmorBonus;
|
private int mNaturalArmorBonus;
|
||||||
|
|
||||||
public int getNaturalArmorBonus() {
|
public int getNaturalArmorBonus() {
|
||||||
@@ -253,6 +273,7 @@ public class Monster {
|
|||||||
mNaturalArmorBonus = value;
|
mNaturalArmorBonus = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mOtherArmorDescription;
|
private String mOtherArmorDescription;
|
||||||
|
|
||||||
public String getOtherArmorDescription() {
|
public String getOtherArmorDescription() {
|
||||||
@@ -334,6 +355,7 @@ public class Monster {
|
|||||||
private static final int SPLINT_ARMOR_CLASS = BASE_ARMOR_CLASS + 7;
|
private static final int SPLINT_ARMOR_CLASS = BASE_ARMOR_CLASS + 7;
|
||||||
private static final int PLATE_ARMOR_CLASS = BASE_ARMOR_CLASS + 8;
|
private static final int PLATE_ARMOR_CLASS = BASE_ARMOR_CLASS + 8;
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mHitDice;
|
private int mHitDice;
|
||||||
|
|
||||||
public int getHitDice() {
|
public int getHitDice() {
|
||||||
@@ -344,6 +366,7 @@ public class Monster {
|
|||||||
mHitDice = value;
|
mHitDice = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private boolean mCustomHP;
|
private boolean mCustomHP;
|
||||||
|
|
||||||
public boolean getCustomHP() {
|
public boolean getCustomHP() {
|
||||||
@@ -354,6 +377,7 @@ public class Monster {
|
|||||||
mCustomHP = value;
|
mCustomHP = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mHPText;
|
private String mHPText;
|
||||||
|
|
||||||
public String getHPText() {
|
public String getHPText() {
|
||||||
@@ -397,6 +421,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mSpeed;
|
private String mSpeed;
|
||||||
|
|
||||||
public String getSpeed() {
|
public String getSpeed() {
|
||||||
@@ -407,6 +432,7 @@ public class Monster {
|
|||||||
mSpeed = value;
|
mSpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mBurrowSpeed;
|
private String mBurrowSpeed;
|
||||||
|
|
||||||
public String getBurrowSpeed() {
|
public String getBurrowSpeed() {
|
||||||
@@ -417,6 +443,7 @@ public class Monster {
|
|||||||
mBurrowSpeed = value;
|
mBurrowSpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mClimbSpeed;
|
private String mClimbSpeed;
|
||||||
|
|
||||||
public String getClimbSpeed() {
|
public String getClimbSpeed() {
|
||||||
@@ -427,6 +454,7 @@ public class Monster {
|
|||||||
mClimbSpeed = value;
|
mClimbSpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mFlySpeed;
|
private String mFlySpeed;
|
||||||
|
|
||||||
public String getFlySpeed() {
|
public String getFlySpeed() {
|
||||||
@@ -437,6 +465,7 @@ public class Monster {
|
|||||||
mFlySpeed = value;
|
mFlySpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private boolean mHover;
|
private boolean mHover;
|
||||||
|
|
||||||
public boolean getHover() {
|
public boolean getHover() {
|
||||||
@@ -447,6 +476,7 @@ public class Monster {
|
|||||||
mHover = value;
|
mHover = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mSwimSpeed;
|
private String mSwimSpeed;
|
||||||
|
|
||||||
public String getSwimSpeed() {
|
public String getSwimSpeed() {
|
||||||
@@ -457,6 +487,7 @@ public class Monster {
|
|||||||
mSwimSpeed = value;
|
mSwimSpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private boolean mCustomSpeed;
|
private boolean mCustomSpeed;
|
||||||
|
|
||||||
public boolean getCustomSpeed() {
|
public boolean getCustomSpeed() {
|
||||||
@@ -467,6 +498,7 @@ public class Monster {
|
|||||||
mCustomSpeed = value;
|
mCustomSpeed = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mSpeedDescription;
|
private String mSpeedDescription;
|
||||||
|
|
||||||
public String getSpeedDescription() {
|
public String getSpeedDescription() {
|
||||||
@@ -531,6 +563,7 @@ public class Monster {
|
|||||||
return String.format(Locale.US, "%d (%+d)", getCharismaScore(), getCharismaModifier());
|
return String.format(Locale.US, "%d (%+d)", getCharismaScore(), getCharismaModifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private HashSet<SavingThrow> mSavingThrows;
|
private HashSet<SavingThrow> mSavingThrows;
|
||||||
|
|
||||||
public Set<SavingThrow> getSavingThrows() {
|
public Set<SavingThrow> getSavingThrows() {
|
||||||
@@ -634,6 +667,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mChallengeRating;
|
private String mChallengeRating;
|
||||||
|
|
||||||
public String getChallengeRating() {
|
public String getChallengeRating() {
|
||||||
@@ -645,6 +679,7 @@ public class Monster {
|
|||||||
// TODO: update proficiency bonus based on CR
|
// TODO: update proficiency bonus based on CR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mCustomChallengeRating;
|
private String mCustomChallengeRating;
|
||||||
|
|
||||||
public String getCustomChallengeRating() {
|
public String getCustomChallengeRating() {
|
||||||
@@ -655,6 +690,7 @@ public class Monster {
|
|||||||
mCustomChallengeRating = challengeRating;
|
mCustomChallengeRating = challengeRating;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mCustomProficiencyBonus;
|
private int mCustomProficiencyBonus;
|
||||||
|
|
||||||
public int getCustomProficiencyBonus() {
|
public int getCustomProficiencyBonus() {
|
||||||
@@ -665,6 +701,7 @@ public class Monster {
|
|||||||
mCustomProficiencyBonus = proficiencyBonus;
|
mCustomProficiencyBonus = proficiencyBonus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private HashSet<Skill> mSkills;
|
private HashSet<Skill> mSkills;
|
||||||
|
|
||||||
public Set<Skill> getSkills() {
|
public Set<Skill> getSkills() {
|
||||||
@@ -700,6 +737,7 @@ public class Monster {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private HashSet<DamageType> mDamageTypes;
|
private HashSet<DamageType> mDamageTypes;
|
||||||
|
|
||||||
public Set<DamageType> getDamageTypes() {
|
public Set<DamageType> getDamageTypes() {
|
||||||
@@ -752,6 +790,7 @@ public class Monster {
|
|||||||
return StringHelper.oxfordJoin(", ", ", and ", " and ", vulnerabilities);
|
return StringHelper.oxfordJoin(", ", ", and ", " and ", vulnerabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private HashSet<String> mConditionImmunities;
|
private HashSet<String> mConditionImmunities;
|
||||||
|
|
||||||
public Set<String> getConditionImmunities() {
|
public Set<String> getConditionImmunities() {
|
||||||
@@ -778,6 +817,7 @@ public class Monster {
|
|||||||
return StringHelper.oxfordJoin(", ", ", and ", " and ", immunities);
|
return StringHelper.oxfordJoin(", ", ", and ", " and ", immunities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mBlindsight;
|
private String mBlindsight;
|
||||||
|
|
||||||
public String getBlindsight() {
|
public String getBlindsight() {
|
||||||
@@ -788,6 +828,7 @@ public class Monster {
|
|||||||
mBlindsight = value;
|
mBlindsight = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private boolean mIsBlind;
|
private boolean mIsBlind;
|
||||||
|
|
||||||
public boolean getIsBlind() {
|
public boolean getIsBlind() {
|
||||||
@@ -798,6 +839,7 @@ public class Monster {
|
|||||||
mIsBlind = value;
|
mIsBlind = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mDarkvision;
|
private String mDarkvision;
|
||||||
|
|
||||||
public String getDarkvision() {
|
public String getDarkvision() {
|
||||||
@@ -808,6 +850,7 @@ public class Monster {
|
|||||||
mDarkvision = value;
|
mDarkvision = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mTremorsense;
|
private String mTremorsense;
|
||||||
|
|
||||||
public String getTremorsense() {
|
public String getTremorsense() {
|
||||||
@@ -818,6 +861,7 @@ public class Monster {
|
|||||||
mTremorsense = value;
|
mTremorsense = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mTruesight;
|
private String mTruesight;
|
||||||
|
|
||||||
public String getTruesight() {
|
public String getTruesight() {
|
||||||
@@ -852,6 +896,7 @@ public class Monster {
|
|||||||
return StringHelper.join(", ", parts);
|
return StringHelper.join(", ", parts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private HashSet<Language> mLanguages;
|
private HashSet<Language> mLanguages;
|
||||||
|
|
||||||
public Set<Language> getLanguages() {
|
public Set<Language> getLanguages() {
|
||||||
@@ -870,6 +915,7 @@ public class Monster {
|
|||||||
mLanguages.clear();
|
mLanguages.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private int mTelepathy;
|
private int mTelepathy;
|
||||||
|
|
||||||
public int getTelepathy() {
|
public int getTelepathy() {
|
||||||
@@ -880,6 +926,7 @@ public class Monster {
|
|||||||
mTelepathy = value;
|
mTelepathy = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private String mUnderstandsBut;
|
private String mUnderstandsBut;
|
||||||
|
|
||||||
public String getUnderstandsBut() {
|
public String getUnderstandsBut() {
|
||||||
@@ -1023,6 +1070,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private ArrayList<Ability> mAbilities;
|
private ArrayList<Ability> mAbilities;
|
||||||
|
|
||||||
public List<Ability> getAbilities() {
|
public List<Ability> getAbilities() {
|
||||||
@@ -1095,6 +1143,7 @@ public class Monster {
|
|||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore()
|
||||||
private ArrayList<Action> mActions;
|
private ArrayList<Action> mActions;
|
||||||
|
|
||||||
public List<Action> getActions() {
|
public List<Action> getActions() {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class MonsterFragment extends Fragment {
|
|||||||
// TODO: remove this block make the monster ID a parameter to the view and get the monster from saved data (sqlite)
|
// TODO: remove this block make the monster ID a parameter to the view and get the monster from saved data (sqlite)
|
||||||
Monster monster = new Monster();
|
Monster monster = new Monster();
|
||||||
// Name
|
// Name
|
||||||
monster.setName("Pixie");
|
monster.name ="Pixie";
|
||||||
// Meta
|
// Meta
|
||||||
monster.setSize("tiny");
|
monster.setSize("tiny");
|
||||||
monster.setType("fey");
|
monster.setType("fey");
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ public class MonsterViewModel extends ViewModel {
|
|||||||
mIntelligence.setValue(monster.getIntelligenceDescription());
|
mIntelligence.setValue(monster.getIntelligenceDescription());
|
||||||
mLanguages.setValue(mMonster.getLanguagesDescription());
|
mLanguages.setValue(mMonster.getLanguagesDescription());
|
||||||
mMeta.setValue(mMonster.getMeta());
|
mMeta.setValue(mMonster.getMeta());
|
||||||
mName.setValue(mMonster.getName());
|
mName.setValue(mMonster.name);
|
||||||
mSavingThrows.setValue(monster.getSavingThrowsDescription());
|
mSavingThrows.setValue(monster.getSavingThrowsDescription());
|
||||||
mSenses.setValue(monster.getSensesDescription());
|
mSenses.setValue(monster.getSensesDescription());
|
||||||
mSkills.setValue(monster.getSkillsDescription());
|
mSkills.setValue(monster.getSkillsDescription());
|
||||||
|
|||||||
Reference in New Issue
Block a user