Move enums into GranblueEnums

We don't use these yet, but it gives us a structured place to pull them from.
This commit is contained in:
Justin Edmund 2025-02-11 03:07:54 -08:00
parent fc90014039
commit 3b560d07cc
2 changed files with 65 additions and 69 deletions

View file

@ -48,73 +48,4 @@ class Character < ApplicationRecord
def display_resource(character)
character.name_en
end
# enum rarities: {
# R: 1,
# SR: 2,
# SSR: 3
# }
# enum elements: {
# Null: 0,
# Wind: 1,
# Fire: 2,
# Water: 3,
# Earth: 4,
# Dark: 5,
# Light: 6
# }
# enum proficiency1s: {
# Sabre: 1,
# Dagger: 2,
# Axe: 3,
# Spear: 4,
# Bow: 5,
# Staff: 6,
# Melee: 7,
# Harp: 8,
# Gun: 9,
# Katana: 10
# }, _prefix: "proficiency1"
# enum proficiency2s: {
# None: 0,
# Sabre: 1,
# Dagger: 2,
# Axe: 3,
# Spear: 4,
# Bow: 5,
# Staff: 6,
# Melee: 7,
# Harp: 8,
# Gun: 9,
# Katana: 10,
# }, _default: :None, _prefix: "proficiency2"
# enum race1s: {
# Unknown: 0,
# Human: 1,
# Erune: 2,
# Draph: 3,
# Harvin: 4,
# Primal: 5
# }, _prefix: "race1"
# enum race2s: {
# Unknown: 0,
# Human: 1,
# Erune: 2,
# Draph: 3,
# Harvin: 4,
# Primal: 5,
# None: 6
# }, _default: :None, _prefix: "race2"
# enum gender: {
# Unknown: 0,
# Male: 1,
# Female: 2,
# "Male/Female": 3
# }
end

View file

@ -0,0 +1,65 @@
module GranblueEnums
extend ActiveSupport::Concern
# Define constants for shared enum mappings.
RARITIES = { R: 1, SR: 2, SSR: 3 }.freeze
ELEMENTS = { Null: 0, Wind: 1, Fire: 2, Water: 3, Earth: 4, Dark: 5, Light: 6 }.freeze
GENDERS = { Unknown: 0, Male: 1, Female: 2, "Male/Female": 3 }.freeze
# Single proficiency enum mapping used for both proficiency1 and proficiency2.
PROFICIENCY = {
None: 0,
Sabre: 1,
Dagger: 2,
Axe: 3,
Spear: 4,
Bow: 5,
Staff: 6,
Melee: 7,
Harp: 8,
Gun: 9,
Katana: 10
}.freeze
# Single race enum mapping used for both race1 and race2.
RACES = {
Unknown: 0,
Human: 1,
Erune: 2,
Draph: 3,
Harvin: 4,
Primal: 5,
None: 6
}.freeze
included do
# Make sure the model has been loaded with its table before calling enum.
if respond_to?(:column_names) && table_exists? && column_names.include?('rarity')
enum rarity: RARITIES
end
if respond_to?(:column_names) && table_exists? && column_names.include?('element')
enum element: ELEMENTS
end
if respond_to?(:column_names) && table_exists? && column_names.include?('gender')
enum gender: GENDERS
end
if respond_to?(:column_names) && table_exists? && column_names.include?('proficiency1')
enum proficiency1: PROFICIENCY, _prefix: :proficiency1, _default: :None
end
if respond_to?(:column_names) && table_exists? && column_names.include?('proficiency2')
enum proficiency2: PROFICIENCY, _prefix: :proficiency2, _default: :None
end
if respond_to?(:column_names) && table_exists? && column_names.include?('race1')
enum race1: RACES, _prefix: :race1, _default: :Unknown
end
if respond_to?(:column_names) && table_exists? && column_names.include?('race2')
enum race2: RACES, _prefix: :race2, _default: :None
end
end
end