89 lines
No EOL
2 KiB
Ruby
89 lines
No EOL
2 KiB
Ruby
FactoryBot.define do
|
|
factory :weapon do
|
|
sequence(:granblue_id) { |n| "104#{n.to_s.rjust(7, '0')}" }
|
|
sequence(:name_en) { |n| "Test Weapon #{n}" }
|
|
name_jp { "テスト武器" }
|
|
rarity { 4 } # SSR
|
|
element { 1 } # Fire
|
|
proficiency { 1 } # Sabre
|
|
series { 99 } # Gacha (legacy)
|
|
|
|
# Use weapon_series association if available
|
|
weapon_series { nil }
|
|
|
|
# Release info
|
|
release_date { 1.year.ago }
|
|
flb_date { 6.months.ago }
|
|
ulb_date { nil }
|
|
transcendence_date { nil }
|
|
|
|
# Max stats
|
|
max_hp { 300 }
|
|
max_atk { 2400 }
|
|
max_hp_flb { 360 }
|
|
max_atk_flb { 2900 }
|
|
max_hp_ulb { nil }
|
|
max_atk_ulb { nil }
|
|
|
|
# Capabilities
|
|
flb { true }
|
|
ulb { false }
|
|
transcendence { false }
|
|
ax { false }
|
|
|
|
# Skill info
|
|
max_skill_level { 15 }
|
|
max_level { 150 }
|
|
|
|
trait :r do
|
|
rarity { 2 }
|
|
max_hp { 120 }
|
|
max_atk { 960 }
|
|
max_hp_flb { nil }
|
|
max_atk_flb { nil }
|
|
flb { false }
|
|
end
|
|
|
|
trait :sr do
|
|
rarity { 3 }
|
|
max_hp { 200 }
|
|
max_atk { 1600 }
|
|
max_hp_flb { 240 }
|
|
max_atk_flb { 1920 }
|
|
end
|
|
|
|
trait :ssr do
|
|
rarity { 4 }
|
|
end
|
|
|
|
trait :transcendable do
|
|
ulb { true }
|
|
transcendence { true }
|
|
ulb_date { 3.months.ago }
|
|
transcendence_date { 1.month.ago }
|
|
max_hp_ulb { 420 }
|
|
max_atk_ulb { 3400 }
|
|
max_level { 200 }
|
|
max_skill_level { 20 }
|
|
end
|
|
|
|
trait :opus do
|
|
series { 3 } # dark-opus (legacy)
|
|
weapon_series { WeaponSeries.find_by(slug: 'dark-opus') || create(:weapon_series, :opus) }
|
|
end
|
|
|
|
trait :draconic do
|
|
series { 27 } # draconic (legacy)
|
|
weapon_series { WeaponSeries.find_by(slug: 'draconic') || create(:weapon_series, :draconic) }
|
|
end
|
|
|
|
trait :revenant do
|
|
series { 4 } # revenant (legacy)
|
|
weapon_series { WeaponSeries.find_by(slug: 'revenant') || create(:weapon_series, :revenant) }
|
|
end
|
|
|
|
trait :ax_weapon do
|
|
ax { true }
|
|
end
|
|
end
|
|
end |