blob: 17aaa8295072239956b71c6fac4b53c2a3b84efd (
plain)
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
|
#!/usr/bin/env ruby
require 'discordrb'
bot = Discordrb::Commands::CommandBot.new token: ENV['DISCORD_TOKEN'], client_id: ENV['DISCORD_ID'], prefix: '!'
bot.command :vs do |event, vs, *fr|
vs = vs.to_i
roll = rand(100)
case roll
when 0
crit = true
success = true
diff = max(vs - roll, 0)
when 99
crit = true
success = false
diff = (vs - roll).abs
else
crit = roll.to_s[0] == roll.to_s[1]
success = roll <= vs
diff = (vs - roll).abs
end
sig = diff > 30
res = "#{event.author.display_name} rolled `#{roll}` against `#{vs}`" +
"#{fr.empty? ? "" : " for \"#{fr.join(' ')}\""}. " +
"That is a _#{sig ? "significant " : ""}#{crit ? "**critical** " : ""}#{success ? "success" : "failure"}_ " +
"by `#{diff}` (#{diff / 10} Mo#{success ? "S" : "F"})."
puts res
res
end
bot.run
|