nat20 1.0.0
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 +7 -0
- data/lib/nat20.rb +55 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d0dfa3997718473596d7a60d5638aa253d2ed9e25aedaa4aa2ca4fcc892e0826
|
4
|
+
data.tar.gz: 390ac33557167716a0f5682dd07d713d8a24341dc039692fb832f4b50c751d65
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 953ac6106e672673816b0355953b4b0678a8d72f1c95a00099255cf245d0eeb66c2d3fc5c7df1062126c411ae4570b904d7240cc19711af1d9f466fdc4284d61
|
7
|
+
data.tar.gz: bd85b36c33e49e1cb3dfa5092b32517054ab5141ffae94be10442ca92dcc37b1d47791c15358a71ea772a638ef527315d8b70f2dd411adf0380c8c48855e4ccf
|
data/lib/nat20.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
class Nat20
|
2
|
+
|
3
|
+
def self.roll dice_info, return_arr=false #eg input = '1d6+4'
|
4
|
+
num_dice = self.get_number_of_dice dice_info
|
5
|
+
num_sides = self.get_number_of_sides dice_info
|
6
|
+
modifier = self.get_modifier dice_info
|
7
|
+
|
8
|
+
rolls = []
|
9
|
+
|
10
|
+
num_dice.times do
|
11
|
+
actual_roll = 1 + rand(num_sides)
|
12
|
+
rolls << actual_roll
|
13
|
+
end
|
14
|
+
|
15
|
+
if return_arr
|
16
|
+
rolls
|
17
|
+
return rolls << modifier
|
18
|
+
else
|
19
|
+
sum = 0
|
20
|
+
rolls.each {|roll| sum += roll}
|
21
|
+
return sum + modifier
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.roll_multiple dice_info, num_times #eg input '1d6+4', 5
|
26
|
+
output = []
|
27
|
+
num_times.times do
|
28
|
+
roll = self.roll dice_info
|
29
|
+
output << roll
|
30
|
+
end
|
31
|
+
output
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def self.get_number_of_dice dice_info
|
37
|
+
dice_info.split('d')[0].to_i
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.get_number_of_sides dice_info
|
41
|
+
dice_info.split('d')[1].split('+')[0].to_i
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.get_modifier dice_info
|
45
|
+
if dice_info.include? '+'
|
46
|
+
modifier = dice_info.split('d')[1].split('+')[1].to_i
|
47
|
+
elsif dice_info.include? '-'
|
48
|
+
modifier = 0 - dice_info.split('d')[1].split('-')[1].to_i
|
49
|
+
else
|
50
|
+
modifier = 0
|
51
|
+
end
|
52
|
+
modifier
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nat20
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- John Eckert
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.7'
|
27
|
+
description: Nat20 adds easy to use dice rolling functionality with input in the style
|
28
|
+
of table top role playing games. It provides functionality for single and multiple
|
29
|
+
rolls and can return either an array of dice values or total roll.
|
30
|
+
email: johnteckert@gmail.com
|
31
|
+
executables: []
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- lib/nat20.rb
|
36
|
+
homepage: http://rubygems.org/gems/nat20
|
37
|
+
licenses:
|
38
|
+
- MIT
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.7.3
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Adds dice rolling functionality in a tabletop RPG format
|
60
|
+
test_files: []
|