about summary refs log tree commit diff stats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/pokeviewer/pokemon.rb66
-rw-r--r--app/models/pokeviewer/revision.rb68
-rw-r--r--app/models/pokeviewer/species.rb2
-rw-r--r--app/models/pokeviewer/trainer.rb4
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)