diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/pokeviewer/pokemon.rb | 66 | ||||
-rw-r--r-- | app/models/pokeviewer/revision.rb | 68 | ||||
-rw-r--r-- | app/models/pokeviewer/species.rb | 2 | ||||
-rw-r--r-- | app/models/pokeviewer/trainer.rb | 4 |
4 files changed, 72 insertions, 68 deletions
diff --git a/app/models/pokeviewer/pokemon.rb b/app/models/pokeviewer/pokemon.rb index 36ed8a8..db3da5a 100644 --- a/app/models/pokeviewer/pokemon.rb +++ b/app/models/pokeviewer/pokemon.rb | |||
@@ -3,8 +3,6 @@ module Pokeviewer | |||
3 | extend Enumerize | 3 | extend Enumerize |
4 | extend ActiveModel::Naming | 4 | extend ActiveModel::Naming |
5 | 5 | ||
6 | belongs_to :species | ||
7 | |||
8 | has_many :revisions, -> { order "sequential_id ASC" }, dependent: :destroy | 6 | has_many :revisions, -> { order "sequential_id ASC" }, dependent: :destroy |
9 | 7 | ||
10 | belongs_to :trainer, optional: true | 8 | belongs_to :trainer, optional: true |
@@ -78,60 +76,8 @@ module Pokeviewer | |||
78 | uuid | 76 | uuid |
79 | end | 77 | end |
80 | 78 | ||
81 | def icon_path | 79 | def current |
82 | form = "" | 80 | revisions.last |
83 | if species_id == 201 | ||
84 | # Handle Unown form | ||
85 | form = "-#{unown_letter}" | ||
86 | elsif species_id == 386 | ||
87 | # Handle Deoxys forms | ||
88 | if trainer.firered? | ||
89 | form = "-attack" | ||
90 | elsif trainer.leafgreen? | ||
91 | form = "-defense" | ||
92 | elsif trainer.emerald? | ||
93 | form = "-speed" | ||
94 | end | ||
95 | end | ||
96 | |||
97 | "pokeviewer/icons/#{species_id}#{form}.png" | ||
98 | end | ||
99 | |||
100 | def sprite_path | ||
101 | shininess = "normal" | ||
102 | if shiny | ||
103 | shininess = "shiny" | ||
104 | end | ||
105 | |||
106 | game = "ruby-sapphire" | ||
107 | unless trainer.nil? | ||
108 | if (trainer.firered? or trainer.leafgreen?) and (species_id <= 156 or species_id == 216 or species_id == 386) | ||
109 | game = "firered-leafgreen" | ||
110 | elsif trainer.emerald? | ||
111 | game = "emerald" | ||
112 | end | ||
113 | end | ||
114 | |||
115 | form = "" | ||
116 | if species_id == 201 | ||
117 | # Handle Unown forms | ||
118 | form = "-#{unown_letter}" | ||
119 | elsif species_id == 386 | ||
120 | # Handle Deoxys forms | ||
121 | if trainer.firered? | ||
122 | form = "-attack" | ||
123 | elsif trainer.leafgreen? | ||
124 | form = "-defense" | ||
125 | elsif trainer.emerald? | ||
126 | form = "-speed" | ||
127 | end | ||
128 | end | ||
129 | |||
130 | if game == "emerald" | ||
131 | "pokeviewer/sprites/emerald/#{shininess}/#{species_id}#{form}.gif" | ||
132 | else | ||
133 | "pokeviewer/sprites/#{game}/#{shininess}/#{species_id}#{form}.png" | ||
134 | end | ||
135 | end | 81 | end |
136 | 82 | ||
137 | def outsider? | 83 | def outsider? |
@@ -178,14 +124,6 @@ module Pokeviewer | |||
178 | "pokeviewer/items/#{Pokemon.pokeball.values.find_index(pokeball) + 1}.png" | 124 | "pokeviewer/items/#{Pokemon.pokeball.values.find_index(pokeball) + 1}.png" |
179 | end | 125 | end |
180 | 126 | ||
181 | def ability | ||
182 | if second_ability | ||
183 | species.ability_2 | ||
184 | else | ||
185 | species.ability_1 | ||
186 | end | ||
187 | end | ||
188 | |||
189 | def gift_ribbon_description(ribbon) | 127 | def gift_ribbon_description(ribbon) |
190 | if trainer.nil? | 128 | if trainer.nil? |
191 | "" | 129 | "" |
diff --git a/app/models/pokeviewer/revision.rb b/app/models/pokeviewer/revision.rb index e33ac4f..64b0e99 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, :level, :hp, :attack, :defense, | 7 | diff :species_id, :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, :item_id, :move_1_id, :move_2_id, | 9 | :smartness, :toughness, :sheen, :item_id, :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, |
@@ -17,6 +17,8 @@ module Pokeviewer | |||
17 | belongs_to :pokemon | 17 | belongs_to :pokemon |
18 | acts_as_sequenced scope: :pokemon_id | 18 | acts_as_sequenced scope: :pokemon_id |
19 | 19 | ||
20 | belongs_to :species | ||
21 | |||
20 | validates :nickname, presence: true | 22 | validates :nickname, presence: true |
21 | 23 | ||
22 | validates :experience, presence: true, | 24 | validates :experience, presence: true, |
@@ -140,6 +142,70 @@ module Pokeviewer | |||
140 | less_than_or_equal_to: 4, | 142 | less_than_or_equal_to: 4, |
141 | only_integer: true} | 143 | only_integer: true} |
142 | 144 | ||
145 | def icon_path | ||
146 | form = "" | ||
147 | if species_id == 201 | ||
148 | # Handle Unown form | ||
149 | form = "-#{pokemon.unown_letter}" | ||
150 | elsif species_id == 386 | ||
151 | # Handle Deoxys forms | ||
152 | if pokemon.trainer.firered? | ||
153 | form = "-attack" | ||
154 | elsif pokemon.trainer.leafgreen? | ||
155 | form = "-defense" | ||
156 | elsif pokemon.trainer.emerald? | ||
157 | form = "-speed" | ||
158 | end | ||
159 | end | ||
160 | |||
161 | "pokeviewer/icons/#{species_id}#{form}.png" | ||
162 | end | ||
163 | |||
164 | def sprite_path | ||
165 | shininess = "normal" | ||
166 | if pokemon.shiny | ||
167 | shininess = "shiny" | ||
168 | end | ||
169 | |||
170 | game = "ruby-sapphire" | ||
171 | unless pokemon.trainer.nil? | ||
172 | if (pokemon.trainer.firered? or pokemon.trainer.leafgreen?) and (species_id <= 156 or species_id == 216 or species_id == 386) | ||
173 | game = "firered-leafgreen" | ||
174 | elsif pokemon.trainer.emerald? | ||
175 | game = "emerald" | ||
176 | end | ||
177 | end | ||
178 | |||
179 | form = "" | ||
180 | if species_id == 201 | ||
181 | # Handle Unown forms | ||
182 | form = "-#{pokemon.unown_letter}" | ||
183 | elsif species_id == 386 | ||
184 | # Handle Deoxys forms | ||
185 | if pokemon.trainer.firered? | ||
186 | form = "-attack" | ||
187 | elsif pokemon.trainer.leafgreen? | ||
188 | form = "-defense" | ||
189 | elsif pokemon.trainer.emerald? | ||
190 | form = "-speed" | ||
191 | end | ||
192 | end | ||
193 | |||
194 | if game == "emerald" | ||
195 | "pokeviewer/sprites/emerald/#{shininess}/#{species_id}#{form}.gif" | ||
196 | else | ||
197 | "pokeviewer/sprites/#{game}/#{shininess}/#{species_id}#{form}.png" | ||
198 | end | ||
199 | end | ||
200 | |||
201 | def ability | ||
202 | if pokemon.second_ability | ||
203 | species.ability_2 | ||
204 | else | ||
205 | species.ability_1 | ||
206 | end | ||
207 | end | ||
208 | |||
143 | def move_1_pp | 209 | def move_1_pp |
144 | move_1.pp * (5 + move_1_pp_bonuses) / 5 | 210 | move_1.pp * (5 + move_1_pp_bonuses) / 5 |
145 | end | 211 | end |
diff --git a/app/models/pokeviewer/species.rb b/app/models/pokeviewer/species.rb index 429e762..aae66cc 100644 --- a/app/models/pokeviewer/species.rb +++ b/app/models/pokeviewer/species.rb | |||
@@ -2,7 +2,7 @@ module Pokeviewer | |||
2 | class Species < ApplicationRecord | 2 | class Species < ApplicationRecord |
3 | extend Enumerize | 3 | extend Enumerize |
4 | 4 | ||
5 | has_many :pokemon, dependent: :restrict_with_exception | 5 | has_many :revisions, dependent: :restrict_with_exception |
6 | 6 | ||
7 | validates :name, presence: true, uniqueness: true | 7 | validates :name, presence: true, uniqueness: true |
8 | 8 | ||
diff --git a/app/models/pokeviewer/trainer.rb b/app/models/pokeviewer/trainer.rb index b79547d..281e0aa 100644 --- a/app/models/pokeviewer/trainer.rb +++ b/app/models/pokeviewer/trainer.rb | |||
@@ -39,11 +39,11 @@ module Pokeviewer | |||
39 | validates :box_14_name, presence: true | 39 | validates :box_14_name, presence: true |
40 | 40 | ||
41 | def party | 41 | def party |
42 | pokemon.party.includes(:species, :revisions) | 42 | pokemon.party.includes(revisions: [:species]) |
43 | end | 43 | end |
44 | 44 | ||
45 | def box(n) | 45 | def box(n) |
46 | pokemon.box(n).includes(:species, :revisions) | 46 | pokemon.box(n).includes(revisions: [:species]) |
47 | end | 47 | end |
48 | 48 | ||
49 | def box_name(n) | 49 | def box_name(n) |