[member=78]Masked[/member]
Parabéns!!! seu sistema ficou incrível, gostei bastante, a parte de configuração, documentação e legibilidade estão ótimas.
Existem alguns pontos de melhorias que eu gostaria de ressaltar.
Código:
def self.failed?
return @@_failed
end
Em Ruby ou (RGSS), um método sempre retorna a sua ultima linha, isso fica redundante caso exista um return na ultima linha de um método.
Podemos mudar o método acima para:
Código:
def self.failed?
@@_failed
end
Geralmente o return é usado para um retorno forçado quando o método não deve executar todo o seu código por algum motivo.
EX:
Código:
def mine!
return false if has_been_mined?
@mined = true
dropped = @minerals.select {|m| rand(100) < m.mining_success_rate }
...
end
-------------------------------------
Código:
class RPG::Mineral
#--------------------------------------------------------------------------
# * Atributos
#--------------------------------------------------------------------------
attr_accessor :item_id # ID do item derrubado pelo minério
attr_accessor :mining_success_rate # Taxa de sucesso de mineração
No código acima, você definiu um attr_accessor para :item_id e :mining_success_rate.
A macro attr_accessor é utilizada apenas para quando você deseja que o seu atributo seja
lido e
escrito fora da classe.
EX:
Código:
mineral = RPG::Mineral.new
# Leitura
mineral.mining_success_rate
# Escrita
mineral.mining_success_rate = 10
No seu caso, você só utilizou os atributos :mining_success_rate e :item_id para leitura e
não para escrita:
Código:
$game_party.gain_item($data_items[mineral.item_id], 1)
Código:
dropped = @minerals.select {|m| rand(100) < m.mining_success_rate }
Para os casos onde você deseja apenas ler o atributo, você deve usar o
attr_reader.
EX:
Código:
class RPG::Mineral
#--------------------------------------------------------------------------
# * Atributos
#--------------------------------------------------------------------------
attr_reader :item_id # ID do item derrubado pelo minério
attr_reader :mining_success_rate # Taxa de sucesso de mineração
Caso você queira apenas escrever no atributo, você deve usar o
attr_writer.
EX:
Código:
class RPG::Mineral
#--------------------------------------------------------------------------
# * Atributos
#--------------------------------------------------------------------------
attr_writer :item_id # ID do item derrubado pelo minério
attr_writer :mining_success_rate # Taxa de sucesso de mineração
Ao utilizar o attr_accessor, o Ruby vai criar um attr_writer e um attr_reader automagicamente para esse atributo, isso leva mais tempo de execução do sistema (lag), além de confundir quem está lendo o seu código.
---------------------------
Código:
MINING_PROGRESS_BAR_FILE = "MiningBar"
Utilize string com aspas duplas apenas em caso de interpolação e aspas simples para string normais, isso irá ajudar a performance do seu script.
EX:
Código:
#String simples (aspas simples).
nome = 'Resque'
Código:
#String com interpolação (aspas duplas)
nome = 'Bruno'
sobrenome = 'Souza'
nome_completo = "#{nome} #{sobrenome}"