botemon 0.7 → 0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3df70fe78c7cdd0135358fd8c09c20b436ed76ff
4
- data.tar.gz: 3524bccd5236fc147fcfef51a708be301b486e88
3
+ metadata.gz: f4158ad88bf1ebd27007e04363e0a1faf01fb20a
4
+ data.tar.gz: 29cf92dd9c4039c5324e57ffd5f9be12355026f5
5
5
  SHA512:
6
- metadata.gz: 64120d70649dc92f119c50fdc22244e8f54076ec5af6ff4bfbc9ccc80dcddb68217e0c9fb5874b9ad03d0cdcbc63ca657d798b8defc10a596af4030f87b63679
7
- data.tar.gz: 78c531ef41dabda70f93b6caaec73bfa83e008172880eff7301e58b9acbf38fdfee97f83e1e544c7c1a0e2eb46e34c9c68b7c895bd14f5303f8258534401663e
6
+ metadata.gz: 8acbaa22fb276e507976653f9b40f678722213b31b24126273dd0bd3359a658119871c3124f2aadf97dfc0cbad7115c05c16a465a2942c326047f35ef43fa994
7
+ data.tar.gz: 1d9af056be096b2d1357b982edb7aa91561c85eb44ef086793b711dba32e4ffbe1ec9fcc6c5f68fffce8791bbf981b022e8b11b70785f6b8045fca930b9915ce
@@ -46,7 +46,7 @@ Cinch::Bot.new {
46
46
  on :message, /^pkmn (.+)/ do |m, name|
47
47
  @storage = Storage.new('./cache.db') unless @storage
48
48
 
49
- name = Smogon::Pokemon.id2name(name) if name.numeric?
49
+ name = Smogon::Type::Pokemon.id2name(name) if name.numeric?
50
50
 
51
51
  pokemon = Pokedex.get name, @storage
52
52
  m.reply pokemon ? "#{pokemon.to_s}\n#{pokemon.url}".split("\n").map(&:colorize).join("\n") : 'Pokémon not found.'.colorize
@@ -71,7 +71,7 @@ Cinch::Bot.new {
71
71
  end
72
72
 
73
73
  on :message, /^moveset (.+) (.+) (.+)/ do |m, name, tier, metagame|
74
- name = Smogon::Pokemon.id2name(name) if name.numeric?
74
+ name = Smogon::Type::Pokemon.id2name(name) if name.numeric?
75
75
 
76
76
  tier = nil if tier.empty?
77
77
  metagame = nil if metagame.empty?
@@ -91,7 +91,7 @@ Cinch::Bot.new {
91
91
  on :message, /^pstats (\S*) (\S*) (\S*) (.*)/ do |m, name, level, nature, evs|
92
92
  @storage = Storage.new('./cache.db') unless @storage
93
93
 
94
- name = Smogon::Pokemon.id2name(name) if name.numeric?
94
+ name = Smogon::Type::Pokemon.id2name(name) if name.numeric?
95
95
  pokemon = Pokedex.get name, @storage
96
96
 
97
97
  hidden_values = evs.strip.split
@@ -109,7 +109,7 @@ Cinch::Bot.new {
109
109
  on :message, /^pkrandom$/ do |m|
110
110
  @storage = Storage.new('./cache.db') unless @storage
111
111
 
112
- pokemon = Pokedex.get Smogon::Pokemon.id2name(Random.new.rand(1..649)), @storage
112
+ pokemon = Pokedex.get Smogon::Type::Pokemon.id2name(Random.new.rand(1..649)), @storage
113
113
  m.reply pokemon ? "#{pokemon.to_s}\n#{pokemon.url}".split("\n").map(&:colorize).join("\n") : 'Pokémon not found.'.colorize
114
114
  end
115
115
 
@@ -120,7 +120,7 @@ Cinch::Bot.new {
120
120
  m.reply 'Other players are playing, please wait until they finish.'.colorize
121
121
  m.reply @pokemon_trivia.clues.colorize
122
122
  else
123
- @pokemon_trivia = Pokedex.get Smogon::Pokemon.id2name(Random.new.rand(1..649)), @storage
123
+ @pokemon_trivia = Pokedex.get Smogon::Type::Pokemon.id2name(Random.new.rand(1..649)), @storage
124
124
  @trivia_owner = m.user.nick
125
125
  @trivia_wrong = 0
126
126
 
@@ -198,15 +198,15 @@ Cinch::Bot.new {
198
198
  end
199
199
 
200
200
  on :message, /^pkhelp$/ do |m|
201
- m.reply "- pkmn Bulbasaur ".colorize
202
- m.reply "- pkmn 1 ".colorize
203
- m.reply "- ability Synchronize ".colorize
204
- m.reply "- item Leftovers ".colorize
205
- m.reply "- move Reflect ".colorize
206
- m.reply "- moveset Bulbasaur LC ".colorize
207
- m.reply "- moveset Bulbasaur LC DP ".colorize
208
- m.reply "- pstats Scizor 70 Adamant 0/252/0/0/6/252 15/31/30/2/31/31 ".colorize
209
- m.reply "- pstats Scizor 70 Adamant 0/252/0/0/6/252 ".colorize
210
- m.reply "- pkrandom, pktrivia, pkdebug, pkstop, pkcache, pkversion ".colorize
201
+ m.reply "- pkmn Bulbasaur ".colorize
202
+ m.reply "- pkmn 1 ".colorize
203
+ m.reply "- ability Synchronize ".colorize
204
+ m.reply "- item Leftovers ".colorize
205
+ m.reply "- move Reflect ".colorize
206
+ m.reply "- moveset Bulbasaur LC ".colorize
207
+ m.reply "- moveset Bulbasaur LC DP ".colorize
208
+ m.reply "- pstats Scizor 70 Adamant 0/252/0/0/6/252 15/31/30/2/31/31 ".colorize
209
+ m.reply "- pstats Scizor 70 Adamant 0/252/0/0/6/252 ".colorize
210
+ m.reply "- pkrandom, pktrivia, pkdebug, pkstop, pkcache, pkversion ".colorize
211
211
  end
212
212
  }.start
@@ -17,8 +17,8 @@
17
17
  # along with Botémon. If not, see <http://www.gnu.org/licenses/>.
18
18
  #++
19
19
 
20
- class Abilitydex
20
+ class Abilitydex
21
21
  def self.get(name)
22
22
  name ? Smogon::Abilitydex.get(name) : nil
23
23
  end
24
- end
24
+ end
@@ -1,35 +1,35 @@
1
- #--
2
- # Copyright(C) 2015 Giovanni Capuano <webmaster@giovannicapuano.net>
3
- #
4
- # This file is part of Botémon.
5
- #
6
- # Botémon is free software: you can redistribute it and/or modify
7
- # it under the terms of the GNU General Public License as published by
8
- # the Free Software Foundation, either version 3 of the License, or
9
- # (at your option) any later version.d
10
- #
11
- # Botémon is distributed in the hope that it will be useful,
12
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- # GNU General Public License for more details.
15
- #
16
- # You should have received a copy of the GNU General Public License
17
- # along with Botémon. If not, see <http://www.gnu.org/licenses/>.
18
- #++
19
-
20
- module Smogon
21
- class Moveset
22
- attr_accessor :pokemon, :name, :tier, :item, :ability, :nature, :moves, :evs
23
-
24
- def initialize
25
- @item = []
26
- @ability = []
27
- @nature = []
28
- @moves = []
29
- end
30
-
31
- # def to_s
32
- # "Set: #{@name}\nItem: #{@item.join(' / ')}\nAbility: #{@ability.join(' / ')}\nNature: #{@nature.join(' / ')}\nMoves: #{''.tap { |s| @moves.each { |move| s << move.join(' / ') + ', '}}[0..-3]}\nEVs: #{@evs}"
33
- # end
34
- end
35
- end
1
+ #--
2
+ # Copyright(C) 2017 Giovanni Capuano <webmaster@giovannicapuano.net>
3
+ #
4
+ # This file is part of Botémon.
5
+ #
6
+ # Botémon is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Botémon is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Botémon. If not, see <http://www.gnu.org/licenses/>.
18
+ #++
19
+
20
+ module Smogon
21
+ class Moveset
22
+ attr_accessor :pokemon, :name, :tier, :items, :abilities, :natures, :moves, :ivs, :evs
23
+
24
+ def initialize
25
+ @items = []
26
+ @abilities = []
27
+ @natures = []
28
+ @moves = []
29
+ end
30
+
31
+ # def to_s
32
+ # "Set: #{@name}\nItem: #{@item.join(' / ')}\nAbility: #{@ability.join(' / ')}\nNature: #{@nature.join(' / ')}\nMoves: #{''.tap { |s| @moves.each { |move| s << move.join(' / ') + ', '}}[0..-3]}\nEVs: #{@evs}"
33
+ # end
34
+ end
35
+ end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright(C) 2015 Giovanni Capuano <webmaster@giovannicapuano.net>
2
+ # Copyright(C) 2017 Giovanni Capuano <webmaster@giovannicapuano.net>
3
3
  #
4
4
  # This file is part of Botémon.
5
5
  #
@@ -18,90 +18,90 @@
18
18
  #++
19
19
 
20
20
  module Smogon
21
- class Pokemon
22
- attr_accessor :name, :_name, :types, :tier, :abilities, :base_stats, :moves
21
+ module Type
22
+ class Pokemon
23
+ attr_accessor :name, :types, :tier, :abilities, :base_stats, :moves
23
24
 
24
- def clues
25
- "Ability: #{@abilities.join(', ')}\nType: #{@types.join(?/)}\nTier: #{@tier}\nBase stats: #{@base_stats.join(?/)}"
26
- end
25
+ def clues
26
+ "Ability: #{abilities.join(', ')}\nType: #{types.join(?/)}\nBase stats: #{base_stats.join(?/)}"
27
+ end
27
28
 
28
- def self.to_pokemon(ary)
29
- Pokemon.new.tap { |pokemon|
30
- pokemon.name = ary['name' ]
31
- pokemon._name = ary['_name' ]
32
- pokemon.types = ary['types' ]
33
- pokemon.tier = ary['tier' ]
34
- pokemon.abilities = ary['abilities' ]
35
- pokemon.base_stats = ary['base_stats']
36
- pokemon.moves = ary['moves' ]
37
- }
38
- end
29
+ def self.to_pokemon(ary)
30
+ Pokemon.new.tap do |pokemon|
31
+ pokemon.name = ary['name' ]
32
+ pokemon.types = ary['types' ]
33
+ pokemon.tier = ary['tier' ]
34
+ pokemon.abilities = ary['abilities' ]
35
+ pokemon.base_stats = ary['base_stats']
36
+ pokemon.moves = ary['moves' ]
37
+ end
38
+ end
39
39
 
40
- def to_ary
41
- {
42
- 'name' => @name,
43
- '_name' => @_name,
44
- 'types' => @types,
45
- 'tier' => @tier,
46
- 'abilities' => @abilities,
47
- 'base_stats' => @base_stats,
48
- 'moves' => @moves
49
- }
50
- end
40
+ def to_ary
41
+ {
42
+ 'name' => @name,
43
+ 'types' => @types,
44
+ 'tier' => @tier,
45
+ 'abilities' => @abilities,
46
+ 'base_stats' => @base_stats,
47
+ 'moves' => @moves
48
+ }
49
+ end
51
50
 
52
- def stats(level, nature, evs, ivs)
53
- natures = {
54
- :jolly => { :plus => :spe, :minus => :atksp },
55
- :rash => { :plus => :atksp, :minus => :defsp },
56
- :hardy => { :plus => :none, :minus => :none },
57
- :brave => { :plus => :atk, :minus => :spe },
58
- :naughty => { :plus => :atk, :minus => :defsp },
59
- :calm => { :plus => :defsp, :minus => :atk },
60
- :careful => { :plus => :defsp, :minus => :atksp },
61
- :adamant => { :plus => :atk, :minus => :atksp },
62
- :docile => { :plus => :none, :minus => :none },
63
- :lax => { :plus => :def, :minus => :defsp },
64
- :quirky => { :plus => :none, :minus => :none },
65
- :gentle => { :plus => :defsp, :minus => :def },
66
- :naive => { :plus => :spe, :minus => :defsp },
67
- :hasty => { :plus => :spe, :minus => :def },
68
- :mild => { :plus => :atksp, :minus => :def },
69
- :modest => { :plus => :atksp, :minus => :atk },
70
- :relaxed => { :plus => :def, :minus => :spe },
71
- :quiet => { :plus => :atksp, :minus => :spe },
72
- :bashful => { :plus => :none, :minus => :none },
73
- :impish => { :plus => :def, :minus => :atksp },
74
- :lonely => { :plus => :atk, :minus => :def },
75
- :serious => { :plus => :none, :minus => :none },
76
- :bold => { :plus => :def, :minus => :atk },
77
- :timid => { :plus => :spe, :minus => :atk },
78
- :sassy => { :plus => :defsp, :minus => :spe },
79
- }
51
+ def stats(level, nature, evs, ivs)
52
+ natures = {
53
+ :jolly => { :plus => :spe, :minus => :atksp },
54
+ :rash => { :plus => :atksp, :minus => :defsp },
55
+ :hardy => { :plus => :none, :minus => :none },
56
+ :brave => { :plus => :atk, :minus => :spe },
57
+ :naughty => { :plus => :atk, :minus => :defsp },
58
+ :calm => { :plus => :defsp, :minus => :atk },
59
+ :careful => { :plus => :defsp, :minus => :atksp },
60
+ :adamant => { :plus => :atk, :minus => :atksp },
61
+ :docile => { :plus => :none, :minus => :none },
62
+ :lax => { :plus => :def, :minus => :defsp },
63
+ :quirky => { :plus => :none, :minus => :none },
64
+ :gentle => { :plus => :defsp, :minus => :def },
65
+ :naive => { :plus => :spe, :minus => :defsp },
66
+ :hasty => { :plus => :spe, :minus => :def },
67
+ :mild => { :plus => :atksp, :minus => :def },
68
+ :modest => { :plus => :atksp, :minus => :atk },
69
+ :relaxed => { :plus => :def, :minus => :spe },
70
+ :quiet => { :plus => :atksp, :minus => :spe },
71
+ :bashful => { :plus => :none, :minus => :none },
72
+ :impish => { :plus => :def, :minus => :atksp },
73
+ :lonely => { :plus => :atk, :minus => :def },
74
+ :serious => { :plus => :none, :minus => :none },
75
+ :bold => { :plus => :def, :minus => :atk },
76
+ :timid => { :plus => :spe, :minus => :atk },
77
+ :sassy => { :plus => :defsp, :minus => :spe },
78
+ }
80
79
 
81
- fields = [ :hp, :atk, :def, :atksp, :defsp, :spe ]
82
- evs = Hash[fields.zip evs]
83
- ivs = Hash[fields.zip ivs]
84
- base_stats = Hash[fields.zip @base_stats]
85
- nature = natures[nature.downcase.to_sym]
80
+ fields = [ :hp, :atk, :def, :atksp, :defsp, :spe ]
81
+ evs = Hash[fields.zip evs]
82
+ ivs = Hash[fields.zip ivs]
83
+ base_stats = Hash[fields.zip @base_stats]
84
+ nature = natures[nature.downcase.to_sym]
86
85
 
87
- [].tap { |stats|
88
- fields.each_with_index { |field|
89
- iv = ivs[field].to_i
90
- ev = evs[field].to_i
91
- base_stat = base_stats[field].to_i
92
- multipler = case field
93
- when nature[:plus] then 1.1
94
- when nature[:minus] then 0.9
95
- else 1
96
- end
86
+ [].tap { |stats|
87
+ fields.each_with_index { |field|
88
+ iv = ivs[field].to_i
89
+ ev = evs[field].to_i
90
+ base_stat = base_stats[field].to_i
91
+ multipler = case field
92
+ when nature[:plus] then 1.1
93
+ when nature[:minus] then 0.9
94
+ else 1
95
+ end
97
96
 
98
- if field == :hp
99
- stats << (((iv + 2 * base_stat + ev / 4) * level / 100) + 10 + level).floor
100
- else
101
- stats << ((((iv + 2 * base_stat + ev / 4) * level / 100) + 5) * multipler).floor
102
- end
97
+ if field == :hp
98
+ stats << (((iv + 2 * base_stat + ev / 4) * level / 100) + 10 + level).floor
99
+ else
100
+ stats << ((((iv + 2 * base_stat + ev / 4) * level / 100) + 5) * multipler).floor
101
+ end
102
+ }
103
103
  }
104
- }
104
+ end
105
105
  end
106
106
  end
107
107
  end
@@ -19,34 +19,36 @@
19
19
 
20
20
  class Storage
21
21
  attr_accessor :file, :db
22
-
22
+
23
23
  def initialize(file)
24
24
  @file = file
25
25
  @db = [].tap { |db|
26
- (File.exists?(file) ? JSON.load(File.read(file)) : []).each { |p| db << Smogon::Pokemon.to_pokemon(p) }
26
+ (File.exists?(file) ? JSON.load(File.read(file)) : []).each { |p| db << Smogon::Type::Pokemon.to_pokemon(p) }
27
27
  }
28
28
  end
29
-
29
+
30
30
  def is_cached?(name)
31
- @db.select { |p| p._name == name.downcase }.any?
31
+ name = name.downcase
32
+ @db.select { |p| p.name == name }.any?
32
33
  end
33
34
  alias :include? :is_cached?
34
-
35
+
35
36
  def get(name)
36
- @db.select { |p| p._name == name.downcase }.first
37
+ name = name.downcase
38
+ @db.select { |p| p.name == name }.first
37
39
  end
38
-
40
+
39
41
  def get_all
40
42
  @db
41
43
  end
42
44
  alias :dump :get_all
43
-
45
+
44
46
  def add(pokemon)
45
47
  return unless pokemon
46
48
  @db << pokemon unless is_cached?(pokemon.name)
47
49
  end
48
50
  alias :put :add
49
-
51
+
50
52
  def save
51
53
  [].tap { |ary|
52
54
  @db.each { |p| ary << p.to_ary }
@@ -55,4 +57,4 @@ class Storage
55
57
  }
56
58
  }
57
59
  end
58
- end
60
+ end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright(C) 2015 Giovanni Capuano <webmaster@giovannicapuano.net>
2
+ # Copyright(C) 2017 Giovanni Capuano <webmaster@giovannicapuano.net>
3
3
  #
4
4
  # This file is part of Botémon.
5
5
  #
@@ -18,5 +18,5 @@
18
18
  #++
19
19
 
20
20
  module Botemon
21
- VERSION = '0.7'
21
+ VERSION = '0.8'
22
22
  end
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: botemon
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.7'
4
+ version: '0.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giovanni Capuano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2017-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cinch
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '2.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '2.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cinch-login
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cinch-colorize
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: smogon
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '0.7'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '0.7'
69
69
  description: IRC bot for Pokéfags with (Poké|Ability|Item|Move|Moveset)dex and a trivia
70
70
  game.
71
71
  email: webmaster@giovannicapuano.net
@@ -88,7 +88,7 @@ files:
88
88
  - lib/botemon/version.rb
89
89
  homepage: http://www.giovannicapuano.net
90
90
  licenses:
91
- - GPL-3
91
+ - GPL-3.0
92
92
  metadata: {}
93
93
  post_install_message:
94
94
  rdoc_options: []
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  version: '0'
107
107
  requirements: []
108
108
  rubyforge_project:
109
- rubygems_version: 2.2.2
109
+ rubygems_version: 2.6.12
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: IRC bot for Pokéfags.