diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/pokeviewer/pokemon.rb | 46 | ||||
-rw-r--r-- | app/models/pokeviewer/revision.rb | 2 | ||||
-rw-r--r-- | app/models/pokeviewer/trainer.rb | 3 |
3 files changed, 47 insertions, 4 deletions
diff --git a/app/models/pokeviewer/pokemon.rb b/app/models/pokeviewer/pokemon.rb index 3b750ac..1410d37 100644 --- a/app/models/pokeviewer/pokemon.rb +++ b/app/models/pokeviewer/pokemon.rb | |||
@@ -15,7 +15,8 @@ module Pokeviewer | |||
15 | numericality: { greater_than_or_equal_to: 0, only_integer: true } | 15 | numericality: { greater_than_or_equal_to: 0, only_integer: true } |
16 | 16 | ||
17 | validates :met_level, presence: true, | 17 | validates :met_level, presence: true, |
18 | numericality: { greater_than_or_equal_to: 1, only_integer: true } | 18 | numericality: { greater_than_or_equal_to: 1, only_integer: true }, |
19 | if: Proc.new { |a| a.met_type == :normal } | ||
19 | 20 | ||
20 | validates :met_type, presence: true | 21 | validates :met_type, presence: true |
21 | enumerize :met_type, in: [:normal, :hatched, :npc_trade, :fateful_encounter] | 22 | enumerize :met_type, in: [:normal, :hatched, :npc_trade, :fateful_encounter] |
@@ -31,12 +32,53 @@ module Pokeviewer | |||
31 | 32 | ||
32 | enumerize :unown_letter, in: [:a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, | 33 | enumerize :unown_letter, in: [:a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, |
33 | :l, :m, :n, :o, :p, :q, :r, :s, :t, :u, :v, :w, :x, :y, :z, | 34 | :l, :m, :n, :o, :p, :q, :r, :s, :t, :u, :v, :w, :x, :y, :z, |
34 | :question_mark, :exclamation_mark] | 35 | :question, :exclamation] |
35 | 36 | ||
36 | def to_param | 37 | def to_param |
37 | uuid | 38 | uuid |
38 | end | 39 | end |
39 | 40 | ||
41 | def icon_path | ||
42 | "pokeviewer/icons/#{species_id}.png" | ||
43 | end | ||
44 | |||
45 | def sprite_path | ||
46 | shininess = "normal" | ||
47 | if shiny | ||
48 | shininess = "shiny" | ||
49 | end | ||
50 | |||
51 | game = "ruby-sapphire" | ||
52 | unless trainer.nil? | ||
53 | if (trainer.firered? or trainer.leafgreen?) and (species_id <= 156 or species_id == 216 or species_id == 386) | ||
54 | game = "firered-leafgreen" | ||
55 | elsif trainer.emerald? | ||
56 | game = "emerald" | ||
57 | end | ||
58 | end | ||
59 | |||
60 | form = "" | ||
61 | if species_id == 201 | ||
62 | # Handle Unown forms | ||
63 | form = "-#{unown_letter}" | ||
64 | elsif species_id == 386 | ||
65 | # Handle Deoxys forms | ||
66 | if trainer.firered? | ||
67 | form = "-attack" | ||
68 | elsif trainer.leafgreen? | ||
69 | form = "-defense" | ||
70 | elsif trainer.emerald? | ||
71 | form = "-speed" | ||
72 | end | ||
73 | end | ||
74 | |||
75 | if game == "emerald" | ||
76 | "pokeviewer/sprites/emerald/#{shininess}/#{species_id}#{form}.gif" | ||
77 | else | ||
78 | "pokeviewer/sprites/#{game}/#{shininess}/#{species_id}#{form}.png" | ||
79 | end | ||
80 | end | ||
81 | |||
40 | private | 82 | private |
41 | 83 | ||
42 | def set_uuid | 84 | def set_uuid |
diff --git a/app/models/pokeviewer/revision.rb b/app/models/pokeviewer/revision.rb index 4cafd07..44388ca 100644 --- a/app/models/pokeviewer/revision.rb +++ b/app/models/pokeviewer/revision.rb | |||
@@ -4,7 +4,7 @@ module Pokeviewer | |||
4 | class Revision < ApplicationRecord | 4 | class Revision < ApplicationRecord |
5 | include ActiveRecord::Diff | 5 | include ActiveRecord::Diff |
6 | 6 | ||
7 | diff :nickname, :experience, :level, :hp, :attack, :defense, | 7 | diff :nickname, :level, :hp, :attack, :defense, |
8 | :special_attack, :special_defense, :speed, :coolness, :beauty, :cuteness, | 8 | :special_attack, :special_defense, :speed, :coolness, :beauty, :cuteness, |
9 | :smartness, :toughness, :sheen, :hold_item, :move_1_id, :move_2_id, | 9 | :smartness, :toughness, :sheen, :hold_item, :move_1_id, :move_2_id, |
10 | :move_3_id, :move_4_id, :move_1_pp_bonuses, :move_2_pp_bonuses, | 10 | :move_3_id, :move_4_id, :move_1_pp_bonuses, :move_2_pp_bonuses, |
diff --git a/app/models/pokeviewer/trainer.rb b/app/models/pokeviewer/trainer.rb index 1cef881..edfbd25 100644 --- a/app/models/pokeviewer/trainer.rb +++ b/app/models/pokeviewer/trainer.rb | |||
@@ -12,6 +12,7 @@ module Pokeviewer | |||
12 | message: "and number should be pairwise unique" } | 12 | message: "and number should be pairwise unique" } |
13 | 13 | ||
14 | validates :game, presence: true | 14 | validates :game, presence: true |
15 | enumerize :game, in: [:ruby, :sapphire, :firered, :leafgreen, :emerald] | 15 | enumerize :game, in: [:ruby, :sapphire, :firered, :leafgreen, :emerald], |
16 | predicates: true | ||
16 | end | 17 | end |
17 | end | 18 | end |