From c14b2eac827cc93a8f4ea257caf20a6419950cb9 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 21 Dec 2022 00:41:54 -0800 Subject: [PATCH 1/7] Add awakening to weapons and characters --- db/migrate/20221221083115_add_awakening_to_grid_weapons.rb | 6 ++++++ .../20221221083126_add_awakening_to_grid_characters.rb | 6 ++++++ db/schema.rb | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20221221083115_add_awakening_to_grid_weapons.rb create mode 100644 db/migrate/20221221083126_add_awakening_to_grid_characters.rb diff --git a/db/migrate/20221221083115_add_awakening_to_grid_weapons.rb b/db/migrate/20221221083115_add_awakening_to_grid_weapons.rb new file mode 100644 index 0000000..8b719de --- /dev/null +++ b/db/migrate/20221221083115_add_awakening_to_grid_weapons.rb @@ -0,0 +1,6 @@ +class AddAwakeningToGridWeapons < ActiveRecord::Migration[6.1] + def change + add_column :grid_weapons, :awakening_type, :integer, null: true + add_column :grid_weapons, :awakening_level, :integer, null: false, default: 1 + end +end diff --git a/db/migrate/20221221083126_add_awakening_to_grid_characters.rb b/db/migrate/20221221083126_add_awakening_to_grid_characters.rb new file mode 100644 index 0000000..2cee407 --- /dev/null +++ b/db/migrate/20221221083126_add_awakening_to_grid_characters.rb @@ -0,0 +1,6 @@ +class AddAwakeningToGridCharacters < ActiveRecord::Migration[6.1] + def change + add_column :grid_characters, :awakening_type, :integer, null: false, default: 0 + add_column :grid_characters, :awakening_level, :integer, null: false, default: 1 + end +end diff --git a/db/schema.rb b/db/schema.rb index 52d1af4..dce5419 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_12_03_112452) do +ActiveRecord::Schema.define(version: 2022_12_21_083126) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" @@ -65,6 +65,8 @@ ActiveRecord::Schema.define(version: 2022_12_03_112452) do t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.boolean "perpetuity", default: false, null: false + t.integer "awakening_type", default: 0, null: false + t.integer "awakening_level", default: 1, null: false t.index ["character_id"], name: "index_grid_characters_on_character_id" t.index ["party_id"], name: "index_grid_characters_on_party_id" end @@ -98,6 +100,8 @@ ActiveRecord::Schema.define(version: 2022_12_03_112452) do t.integer "ax_modifier2" t.float "ax_strength2" t.integer "element" + t.integer "awakening_type" + t.integer "awakening_level", default: 1, null: false t.index ["party_id"], name: "index_grid_weapons_on_party_id" t.index ["weapon_id"], name: "index_grid_weapons_on_weapon_id" end From bb0e596e0df12bcdcb05b8d4db28ece048056d51 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 21 Dec 2022 00:48:18 -0800 Subject: [PATCH 2/7] Add awakening boolean to canonical weapons --- db/migrate/20221221084556_add_awakening_to_weapons.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20221221084556_add_awakening_to_weapons.rb diff --git a/db/migrate/20221221084556_add_awakening_to_weapons.rb b/db/migrate/20221221084556_add_awakening_to_weapons.rb new file mode 100644 index 0000000..39477fd --- /dev/null +++ b/db/migrate/20221221084556_add_awakening_to_weapons.rb @@ -0,0 +1,5 @@ +class AddAwakeningToWeapons < ActiveRecord::Migration[6.1] + def change + add_column :weapons, :awakening, :boolean, null: false, default: true + end +end diff --git a/db/schema.rb b/db/schema.rb index dce5419..62c174b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_12_21_083126) do +ActiveRecord::Schema.define(version: 2022_12_21_084556) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" @@ -273,6 +273,7 @@ ActiveRecord::Schema.define(version: 2022_12_21_083126) do t.boolean "extra", default: false, null: false t.integer "limit" t.integer "ax", default: 0, null: false + t.boolean "awakening", default: true, null: false t.index ["name_en"], name: "index_weapons_on_name_en", opclass: :gin_trgm_ops, using: :gin end From 464ea98d6d4c5016280734e759a2ba6336298511 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 21 Dec 2022 00:49:44 -0800 Subject: [PATCH 3/7] Add awakening output to templates --- app/views/api/v1/grid_characters/base.json.rabl | 11 +++++++++-- app/views/api/v1/grid_weapons/base.json.rabl | 9 ++++++++- app/views/api/v1/weapons/base.json.rabl | 5 +++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/views/api/v1/grid_characters/base.json.rabl b/app/views/api/v1/grid_characters/base.json.rabl index 74e9ec1..11ca3d7 100644 --- a/app/views/api/v1/grid_characters/base.json.rabl +++ b/app/views/api/v1/grid_characters/base.json.rabl @@ -2,8 +2,15 @@ attributes :id, :party_id, :position, :uncap_level, - :perpetuity + :perpetuity, node :object do |c| partial("characters/base", :object => c.character) -end \ No newline at end of file +end + +node :awakening do |c| + { + :type => c.awakening_type, + :level => c.awakening_level + } +end diff --git a/app/views/api/v1/grid_weapons/base.json.rabl b/app/views/api/v1/grid_weapons/base.json.rabl index 36b5c87..c1d195e 100644 --- a/app/views/api/v1/grid_weapons/base.json.rabl +++ b/app/views/api/v1/grid_weapons/base.json.rabl @@ -24,4 +24,11 @@ node :ax, :if => lambda { |w| w.weapon.ax > 0 } do |w| :strength => w.ax_strength2 } ] -end \ No newline at end of file +end + +node :awakening, :if => lambda { |w| w.weapon.awakening } do |w| + { + :type => w.awakening_type, + :level => w.awakening_level + } +end diff --git a/app/views/api/v1/weapons/base.json.rabl b/app/views/api/v1/weapons/base.json.rabl index 05b1bc5..1b464e5 100644 --- a/app/views/api/v1/weapons/base.json.rabl +++ b/app/views/api/v1/weapons/base.json.rabl @@ -9,7 +9,8 @@ attributes :id, :limit, :rarity, :series, - :ax + :ax, + :awakening node :name do |w| { @@ -41,4 +42,4 @@ node :atk do |w| :max_atk_flb => w.max_atk_flb, :max_atk_ulb => w.max_atk_ulb } -end \ No newline at end of file +end From 6ccc8fd3389935e91dce8ba076d2c3cabf31a410 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 23 Dec 2022 16:40:42 -0800 Subject: [PATCH 4/7] Add awakenings to blueprints --- app/blueprints/api/v1/grid_character_blueprint.rb | 8 ++++++++ app/blueprints/api/v1/grid_weapon_blueprint.rb | 7 +++++++ app/blueprints/api/v1/weapon_blueprint.rb | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/blueprints/api/v1/grid_character_blueprint.rb b/app/blueprints/api/v1/grid_character_blueprint.rb index c3aff00..c753940 100644 --- a/app/blueprints/api/v1/grid_character_blueprint.rb +++ b/app/blueprints/api/v1/grid_character_blueprint.rb @@ -10,6 +10,14 @@ module Api view :nested do fields :position, :uncap_level, :perpetuity + + field :awakening do |c| + { + type: c.awakening_type, + level: c.awakening_level + } + end + association :character, name: :object, blueprint: CharacterBlueprint end diff --git a/app/blueprints/api/v1/grid_weapon_blueprint.rb b/app/blueprints/api/v1/grid_weapon_blueprint.rb index 0c28a26..71462da 100644 --- a/app/blueprints/api/v1/grid_weapon_blueprint.rb +++ b/app/blueprints/api/v1/grid_weapon_blueprint.rb @@ -32,6 +32,13 @@ module Api end end + field :awakening, if: ->(_field_name, w, _options) { w.weapon.awakening } do |w| + { + type: w.awakening_type, + level: w.awakening_level + } + end + view :full do include_view :nested association :party, blueprint: PartyBlueprint, view: :minimal diff --git a/app/blueprints/api/v1/weapon_blueprint.rb b/app/blueprints/api/v1/weapon_blueprint.rb index 5d715da..87c491c 100644 --- a/app/blueprints/api/v1/weapon_blueprint.rb +++ b/app/blueprints/api/v1/weapon_blueprint.rb @@ -12,7 +12,7 @@ module Api fields :granblue_id, :element, :proficiency, :max_level, :max_skill_level, :limit, :rarity, - :series, :ax + :series, :ax, :awakening field :uncap do |w| { From 4f4d9e27a725863fd39bafd5e349b670aa77c50c Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 23 Dec 2022 23:31:34 -0800 Subject: [PATCH 5/7] Add slug to weapon key table --- app/blueprints/api/v1/weapon_key_blueprint.rb | 2 +- db/migrate/20221224065845_add_slug_to_weapon_keys.rb | 5 +++++ db/schema.rb | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20221224065845_add_slug_to_weapon_keys.rb diff --git a/app/blueprints/api/v1/weapon_key_blueprint.rb b/app/blueprints/api/v1/weapon_key_blueprint.rb index 64ed12f..e83d8ea 100644 --- a/app/blueprints/api/v1/weapon_key_blueprint.rb +++ b/app/blueprints/api/v1/weapon_key_blueprint.rb @@ -10,7 +10,7 @@ module Api } end - fields :series, :slot, :group, :order + fields :slug, :series, :slot, :group, :order end end end diff --git a/db/migrate/20221224065845_add_slug_to_weapon_keys.rb b/db/migrate/20221224065845_add_slug_to_weapon_keys.rb new file mode 100644 index 0000000..ff19884 --- /dev/null +++ b/db/migrate/20221224065845_add_slug_to_weapon_keys.rb @@ -0,0 +1,5 @@ +class AddSlugToWeaponKeys < ActiveRecord::Migration[6.1] + def change + add_column :weapon_keys, :slug, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 62c174b..40698fa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_12_21_084556) do +ActiveRecord::Schema.define(version: 2022_12_24_065845) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" @@ -248,6 +248,7 @@ ActiveRecord::Schema.define(version: 2022_12_21_084556) do t.integer "slot" t.integer "group" t.integer "order" + t.string "slug" end create_table "weapons", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| From ae1da20f2709208bf637168af04de69361a8cd45 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 24 Dec 2022 04:54:50 -0800 Subject: [PATCH 6/7] Fix fetching weapon keys so you dont need filters --- app/controllers/api/v1/weapon_keys_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/weapon_keys_controller.rb b/app/controllers/api/v1/weapon_keys_controller.rb index 1d7e261..4d44720 100644 --- a/app/controllers/api/v1/weapon_keys_controller.rb +++ b/app/controllers/api/v1/weapon_keys_controller.rb @@ -5,8 +5,8 @@ module Api class WeaponKeysController < Api::V1::ApiController def all conditions = {}.tap do |hash| - hash[:series] = request.params['series'] - hash[:slot] = request.params['slot'] + hash[:series] = request.params['series'] unless request.params['series'].blank? + hash[:slot] = request.params['slot'] unless request.params['slot'].blank? hash[:group] = request.params['group'] unless request.params['group'].blank? end From 7a8cf30ffbc67a3a2c3bc3e83808ce2a5119ea43 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 24 Dec 2022 04:55:11 -0800 Subject: [PATCH 7/7] Fix series for Class Champion emblems --- app/blueprints/api/v1/grid_weapon_blueprint.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/blueprints/api/v1/grid_weapon_blueprint.rb b/app/blueprints/api/v1/grid_weapon_blueprint.rb index 71462da..26c5f25 100644 --- a/app/blueprints/api/v1/grid_weapon_blueprint.rb +++ b/app/blueprints/api/v1/grid_weapon_blueprint.rb @@ -15,7 +15,7 @@ module Api association :weapon_keys, blueprint: WeaponKeyBlueprint, if: lambda { |_field_name, w, _options| - [2, 3, 17, 22].include?(w.weapon.series) + [2, 3, 17, 24].include?(w.weapon.series) } field :ax, if: ->(_field_name, w, _options) { w.weapon.ax.positive? } do |w|