Nestor

Mon petit bot Discord
Log | Files | Refs

commit 4aa28eee4b0b2fbd4cff155250486481f8f7322f
parent aa0a7c1dd1be695f1bc723c23eb9373c103429cc
Author: Doshirae <doshirae@mailfence.com>
Date:   Fri,  5 May 2017 12:15:41 +0200

Made things work.

Diffstat:
dd.rb | 205+++++++++++++++++++++++++++++++++++++++++--------------------------------------
nestor.rb | 15++++-----------
2 files changed, 110 insertions(+), 110 deletions(-)

diff --git a/dd.rb b/dd.rb @@ -5,77 +5,77 @@ # Les items ont une résistance et une efficacité (600 et 30 pour les enclos publics) # La fréquence temporaire calculée à l'arrache des enclos publics = 2 frottement / min -# Coefficients d'apprentissage des dd ==> -$coefDD = { - "rousse" => 1, - "amande" => 1, - "indigo" => 0.8, - "ebene" => 0.8, - "orchidee" => 0.6, - "pourpre" => 0.6, - "ivoire" => 0.6, - "turquoise" => 0.6, - "emeraude" => 0.4, - "prune" => 0.4, - "doree" => 0.2, - "amande et rousse" => 0.8, - "amande et doree" => 0.8, - "doree et rousse" => 0.8, - "amande et orchidee" => 0.6, - "orchidee et rousse" => 0.6, - "doree et orchidee" => 0.6, - "indigo et orchidee" => 0.6, - "ebene et orchidee" => 0.6, - "amande et pourpre" => 0.6, - "pourpre et rousse" => 0.6, - "doree et pourpre" => 0.6, - "indigo et pourpre" => 0.6, - "ebene et pourpre" => 0.6, - "orchidee et pourpre" => 0.6, - "amande et turquoise" => 0.4, - "turquoise et rousse" => 0.4, - "doree et turquoise" => 0.4, - "indigo et turquoise" => 0.4, - "ebene et turquoise" => 0.4, - "turquoise et orchidee" => 0.4, - "turquoise et pourpre" => 0.4, - "ivoire et turquoise" => 0.4, - "amande et ivoire" => 0.4, - "ivoire et rousse" => 0.4, - "doree et ivoire" => 0.4, - "indigo et ivoire" => 0.4, - "ebene et ivoire" => 0.4, - "ivoire et orchidee" => 0.4, - "ivoire et pourpre" => 0.4, - "amande et emeraude" => 0.2, - "emeraude et rousse" => 0.2, - "doree et emeraude" => 0.2, - "emeraude et indigo" => 0.2, - "ebene et emeraude" => 0.2, - "emeraude et orchidee" => 0.2, - "emeraude et pourpre" => 0.2, - "emeraude et ivoire" => 0.2, - "emeraude et turquoise" => 0.2, - "prune et amande" => 0.2, - "prune et rousse" => 0.2, - "prune et doree" => 0.2, - "prune et indigo" => 0.2, - "prune et ebene" => 0.2, - "prune et orchidee" => 0.2, - "prune et pourpre" => 0.2, - "prune et ivoire" => 0.2, - "prune et turquoise" => 0.2, - "prune et emeraude" => 0.2 -} -# <== + # Coefficients d'apprentissage des dd ==> + $coefDD = { + "rousse" => 1, + "amande" => 1, + "indigo" => 0.8, + "ebene" => 0.8, + "orchidee" => 0.6, + "pourpre" => 0.6, + "ivoire" => 0.6, + "turquoise" => 0.6, + "emeraude" => 0.4, + "prune" => 0.4, + "doree" => 0.2, + "amande et rousse" => 0.8, + "amande et doree" => 0.8, + "doree et rousse" => 0.8, + "amande et orchidee" => 0.6, + "orchidee et rousse" => 0.6, + "doree et orchidee" => 0.6, + "indigo et orchidee" => 0.6, + "ebene et orchidee" => 0.6, + "amande et pourpre" => 0.6, + "pourpre et rousse" => 0.6, + "doree et pourpre" => 0.6, + "indigo et pourpre" => 0.6, + "ebene et pourpre" => 0.6, + "orchidee et pourpre" => 0.6, + "amande et turquoise" => 0.4, + "turquoise et rousse" => 0.4, + "doree et turquoise" => 0.4, + "indigo et turquoise" => 0.4, + "ebene et turquoise" => 0.4, + "turquoise et orchidee" => 0.4, + "turquoise et pourpre" => 0.4, + "ivoire et turquoise" => 0.4, + "amande et ivoire" => 0.4, + "ivoire et rousse" => 0.4, + "doree et ivoire" => 0.4, + "indigo et ivoire" => 0.4, + "ebene et ivoire" => 0.4, + "ivoire et orchidee" => 0.4, + "ivoire et pourpre" => 0.4, + "amande et emeraude" => 0.2, + "emeraude et rousse" => 0.2, + "doree et emeraude" => 0.2, + "emeraude et indigo" => 0.2, + "ebene et emeraude" => 0.2, + "emeraude et orchidee" => 0.2, + "emeraude et pourpre" => 0.2, + "emeraude et ivoire" => 0.2, + "emeraude et turquoise" => 0.2, + "prune et amande" => 0.2, + "prune et rousse" => 0.2, + "prune et doree" => 0.2, + "prune et indigo" => 0.2, + "prune et ebene" => 0.2, + "prune et orchidee" => 0.2, + "prune et pourpre" => 0.2, + "prune et ivoire" => 0.2, + "prune et turquoise" => 0.2, + "prune et emeraude" => 0.2 + } + # <== class Dragodinde attr_accessor :nivCourantJauge, :coefLearn, :bonusFatigue - def initialize(couleur, nivCourantJauge, fatigue) - @nivCourantJauge = nivCourantJauge + def initialize(couleur, fatigue, nivCourantJauge) + @nivCourantJauge = nivCourantJauge.to_i @coefLearn = $coefDD[couleur] - @bonusFatigue = case fatigue + @bonusFatigue = case fatigue.to_i when 0..160 then 100/100 when 161..170 then 115/100 when 171..180 then 130/100 @@ -104,41 +104,48 @@ class Objet end end -# Main --------------------------------------------------------------------------------------------------- +class Main + attr_accessor :drago, :objet, :frequence + + def initialize(drago, objet, frequence=2) + @drago = drago + @objet = objet + @frequence = frequence + end -FREQUENCE = 2 # par minute, ndlr - -if ARGV[0] == 'help' - puts "Usage : ./dd.rb [couleur dd] [fatigue] [niveau jauge courant] [niveau jauge voulu]" -else - coefApprentissage = coefDD[ARGV[0]] - fatigue = ARGV[1].to_i - jaugeCourante = ARGV[2].to_i - jaugeVoulue = ARGV[3].to_i - coefApprentissage = coefDD[ARGV[0]] - - # puts "Quelle est la couleur de la dd ? (en minuscule, sans accent, et entre guillemets (\"...\") si elle est bicolore)" - # coefApprentissage = coefDD[gets.chomp] - # print "Quel est son niveau de fatigue ? " - # fatigue = gets.chomp.to_i - # print "Quel est le niveau de la jauge à modifier ? " - # jaugeCourante = gets.chomp.to_i - # print "Et a quel niveau tu veux qu'il soit ? " - # jaugeVoulue = gets.chomp.to_i - - objet = Objet.new() - drago = Dragodinde.new(coefApprentissage, jaugeCourante, fatigue) - - bonusParFrottement = objet.efficacite + drago.bonus(objet.resistance) - bonusParMinute = bonusParFrottement * FREQUENCE - differenceNiveaux = (drago.nivCourantJauge - jaugeVoulue).abs - tempsMinute = (differenceNiveaux / bonusParMinute).round - tempsSeconde = tempsMinute*60 - - mtn = Time.new - pret = mtn + tempsSeconde - puts "Il est actuellement #{mtn.hour}h#{mtn.min} et la dragodinde sera prete vers #{pret.hour}h#{pret.min}" + def temps(jaugeVoulue) + bonusParFrottement = @objet.efficacite + @drago.bonus(objet.resistance) + bonusParMinute = bonusParFrottement * @frequence + differenceNiveaux = (@drago.nivCourantJauge - jaugeVoulue).abs + tempsMinute = (differenceNiveaux / bonusParMinute).round + tempsSeconde = tempsMinute*60 + + mtn = Time.new + mtn.min = "0#{mtn.min}".to_i if mtn.min < 10 + pret = mtn + tempsSeconde + pret.min = "0#{pret.min}".to_i if pret.min < 10 + + return "Il est actuellement #{mtn.hour}h#{mtn.min} et la dragodinde sera prete vers #{pret.hour}h#{pret.min}" + end end +# Main --------------------------------------------------------------------------------------------------- + +if __FILE__ == $0 + if ARGV[0] == 'help' + puts "Usage : ./dd.rb [couleur dd] [fatigue] [niveau jauge courant] [niveau jauge voulu]" + else + couleur = ARGV[0] + fatigue = ARGV[1].to_i + jaugeCourante = ARGV[2].to_i + jaugeVoulue = ARGV[3].to_i + + objet = Objet.new + drago = Dragodinde.new(couleur, fatigue, jaugeCourante) + main = Main.new(drago, objet) + + puts main.temps(jaugeVoulue) + end +end # vim:foldmethod=marker:foldmarker=\=\=>,<\=\=:foldlevel=0 diff --git a/nestor.rb b/nestor.rb @@ -152,7 +152,10 @@ end # dragodinde ==> bot.command(:dd, min_args: 4, max_args: 4, description: "Donne l'heure de recup d'une dd", usage: "dd.rb [couleur dd] [fatigue] [niveau jauge courant] [niveau jauge voulu]") do |event, couleur, fatigue, jaugeCourant, jaugeVoulue| - dd = Dragodinde.new(couleur, fatigue, jaugeCourant, jaugeVoulue) + drago = Dragodinde.new(couleur, fatigue, jaugeCourant) + objet = Objet.new + main = Main.new(drago, objet) + event.respond("#{main.temps(jaugeVoulue)}") end # <== @@ -187,16 +190,6 @@ bot.message(containing: [/tg/i, /ta gueule/i]) do |event| end # }}} -# Eval command that allows to paste code directly in the channel -bot.command(:eval, help_available: false) do |event, *code| - # break unless event.user.id == 307629792126304276 # Replace number with my ID - begin - eval code.join(' ') - rescue - 'An error occurred 😞' - end -end - # command taht mention # bot.mention do |event| # # The `pm` method is used to send a private message (also called a DM or direct message) to the user who sent the