-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinspect_base_sidekicks.rb
More file actions
97 lines (81 loc) · 2.51 KB
/
inspect_base_sidekicks.rb
File metadata and controls
97 lines (81 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/env rails runner
puts "=" * 100
puts "INSPECTING BASE_SIDEKICKS TABLE - ALL STATS"
puts "=" * 100
puts ""
puts "[All 20 Base Sidekicks - Full Stats]"
puts ""
# Show header
printf "%-3s %-20s %-3s %-4s %-4s %-4s %-5s %-5s %-5s %-5s %-5s\n",
"ID", "Name", "Atk", "Def", "Hp", "Spd", "CritR", "CritD", "Hit%", "Dodge", "Block"
puts "-" * 100
BaseSidekick.order(:id).each do |sidekick|
printf "%-3d %-20s %-3s %-4s %-4s %-4s %-5s %-5s %-5s %-5s %-5s\n",
sidekick.id,
sidekick.name[0..19],
sidekick.atk.to_s,
sidekick.def.to_s,
sidekick.hp.to_s,
sidekick.spd.to_s,
(sidekick.crit_rate || 0).to_s,
(sidekick.crit_damage || 0).to_s,
(sidekick.hit_rate || 0).to_s,
(sidekick.dodge_rate || 0).to_s,
(sidekick.block_rate || 0).to_s
end
puts ""
puts "=" * 100
puts "ANALYSIS: Looking for ZERO or LOW atk values"
puts "=" * 100
puts ""
zero_atk = BaseSidekick.where(atk: 0).count
low_atk = BaseSidekick.where("atk < 10").count
puts "Sidekicks with atk = 0: #{zero_atk}"
puts "Sidekicks with atk < 10: #{low_atk}"
if zero_atk > 0
puts ""
puts "⚠️ WARNING: Found sidekicks with zero attack!"
puts ""
BaseSidekick.where(atk: 0).each do |sidekick|
puts " ID #{sidekick.id}: #{sidekick.name} - atk: #{sidekick.atk}"
end
end
if low_atk > 0 && zero_atk == 0
puts ""
puts "⚠️ WARNING: Found sidekicks with very low attack (< 10)!"
puts ""
BaseSidekick.where("atk < 10").each do |sidekick|
puts " ID #{sidekick.id}: #{sidekick.name} - atk: #{sidekick.atk}"
end
end
puts ""
puts "=" * 100
puts "CHECKING FOR ZERO VALUES IN OTHER STATS"
puts "=" * 100
puts ""
%w[def hp spd crit_rate crit_damage hit_rate dodge_rate block_rate].each do |stat|
count = BaseSidekick.where("#{stat} = 0").count
if count > 0
puts "⚠️ #{stat.upcase}: #{count} sidekicks with zero value"
end
end
puts ""
puts "=" * 100
puts "DETAILED VIEW: Sidekicks with potential issues"
puts "=" * 100
puts ""
BaseSidekick.order(:id).each do |sidekick|
has_issue = false
issues = []
issues << "atk=0" if sidekick.atk == 0
issues << "atk<10" if sidekick.atk && sidekick.atk < 10
issues << "def=0" if sidekick.def == 0
issues << "hp=0" if sidekick.hp == 0
issues << "spd=0" if sidekick.spd == 0
if issues.any?
puts "ID #{sidekick.id}: #{sidekick.name}"
puts " Issues: #{issues.join(', ')}"
puts " Stats: atk=#{sidekick.atk}, def=#{sidekick.def}, hp=#{sidekick.hp}, spd=#{sidekick.spd}"
puts ""
end
end