Module: Lich::DragonRealms::SettingsConfig

Defined in:
documented/dragonrealms/dependency/settings_config.rb

Constant Summary collapse

TRANSFORM_CONFIG =

Configuration constants for transforming DragonRealms user settings.

This constant includes various settings and mappings used in the transformation process.

{
  # Phase 1: Default empty values
  empty_data_type: 'empty',

  # Phase 2: Spell enrichment
  spell_data_type: 'spells',

  waggle_set_keys: %w[waggle_sets].freeze,

  spell_map_enrich_name_keys: %w[buff_spells necromancer_healing].freeze,

  spell_map_enrich_data_keys: %w[
    buff_spells combat_spell_training cyclic_training_spells
    magic_training training_spells crafting_training_spells
    necromancer_healing
  ].freeze,

  spell_list_keys: %w[offensive_spells].freeze,

  single_spell_keys: %w[crossing_training_sorcery].freeze,

  offensive_spells_key: 'offensive_spells',
  battle_cries_key: 'battle_cries',

  # Phase 3: Composed lists
  composed_lists: [
    {
      target_key: 'lootables',
      base_data_keys: [
        { type: 'items', key: :lootables },
        { type: 'items', key: :box_nouns },
        { type: 'items', key: :gem_nouns },
        { type: 'items', key: :scroll_nouns },
      ].freeze,
      additions_key: 'loot_additions',
      subtractions_key: 'loot_subtractions',
    }.freeze,
  ].freeze,

  # Phase 4: UserVars fallback
  uservars_fallback: [
    { setting_key: 'crossing_training_sorcery_room', uservars_key: :crossing_training_sorcery_room, mode: :default },
    { setting_key: 'compost_room', uservars_key: :compost_room, mode: :default },
    { setting_key: 'engineering_room', uservars_key: :engineering_room, mode: :default },
    { setting_key: 'outfitting_room', uservars_key: :outfitting_room, mode: :default },
    { setting_key: 'alchemy_room', uservars_key: :alchemy_room, mode: :default },
    { setting_key: 'safe_room', uservars_key: :safe_room, mode: :default },
    { setting_key: 'safe_room_id', uservars_key: :safe_room_id, mode: :default },
    { setting_key: 'safe_room_empath', uservars_key: :safe_room_empath, mode: :default },
    { setting_key: 'safe_room_empaths', uservars_key: :safe_room_empaths, mode: :append },
    { setting_key: 'slack_username', uservars_key: :slack_username, mode: :default },
    { setting_key: 'bankbot_name', uservars_key: :bankbot_name, mode: :default },
    { setting_key: 'bankbot_room_id', uservars_key: :bankbot_room_id, mode: :default },
    { setting_key: 'prehunt_buffs', uservars_key: :prehunt_buffs, mode: :default },
    { setting_key: 'hometown', uservars_key: :hometown, mode: :default },
  ].freeze,

  global_overrides: [
    { setting_key: 'hometown', global_var: '$HOMETOWN' }.freeze,
  ].freeze,

  # Phase 5: Hometown-based room lookups
  hometown_lookup_keys: %w[
    alchemy_room bankbot_room_id compost_room
    crossing_training_sorcery_room enchanting_room
    engineering_room feed_cloak_room forage_override_room
    lockpick_room_id outdoor_room outfitting_room
    prehunt_buffing_room safe_room safe_room_id
    theurgy_prayer_mat_room
  ].freeze,

  # Phase 6: Denylists
  denylists: [
    {
      setting_keys: %w[safe_room safe_room_id].freeze,
      blocked_values: [5713].freeze,
    }.freeze,
  ].freeze,

  # Phase 7: Legacy migrations
  legacy_migrations: [
    { type: :append_if_flag, target_key: 'appraisal_training', value: 'pouches', flag_key: 'train_appraisal_with_pouches' }.freeze,
    { type: :append_if_flag, target_key: 'appraisal_training', value: 'gear', flag_key: 'train_appraisal_with_gear' }.freeze,
    { type: :append_if_flag, target_key: 'astrology_training', value: 'events', flag_key: 'predict_event' }.freeze,
    { type: :append_if_nested, target_key: 'astrology_training', value: 'ways', source_key: 'astral_plane_training', nested_key: 'train_in_ap' }.freeze,
  ].freeze,
}.freeze