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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/nat20.rb +55 -0
  3. metadata +60 -0
@@ -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
@@ -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: []