Class: BCDice::Result
- Inherits:
-
Object
- Object
- BCDice::Result
- Defined in:
- lib/bcdice/result.rb
Overview
ダイスロールの結果を表すクラス
コマンドの結果の文字列や、成功/失敗/クリティカル/ファンブルの情報を保持する。 成功/失敗は同時に発生しないこととする。 成功/失敗のペアとクリティカル、ファンブルの三者は独立した要素とし、 「クリティカルだが失敗」や「ファンブルだが成功でも失敗でもない」を許容する。
Direct Known Subclasses
Instance Attribute Summary collapse
-
#critical ⇒ Object
writeonly
Sets the attribute critical.
-
#detailed_rands ⇒ Object
Returns the value of attribute detailed_rands.
-
#failure ⇒ Object
writeonly
Sets the attribute failure.
-
#fumble ⇒ Object
writeonly
Sets the attribute fumble.
-
#rands ⇒ Object
Returns the value of attribute rands.
-
#secret ⇒ Object
writeonly
Sets the attribute secret.
-
#success ⇒ Object
writeonly
Sets the attribute success.
-
#text ⇒ Object
Returns the value of attribute text.
Class Method Summary collapse
-
.critical(text) ⇒ Result
success
とcritical
が設定されたResult
を作成する. -
.failure(text) ⇒ Result
failure
が設定されたResult
を作成する. -
.fumble(text) ⇒ Result
failure
とfumble
が設定されたResult
を作成する. -
.nothing ⇒ :nothing
その後の判定で何もすることがないことを示すために利用する.
-
.success(text) ⇒ Result
success
が設定されたResult
を作成する.
Instance Method Summary collapse
- #condition=(condition) ⇒ void
- #critical? ⇒ Boolean
- #failure? ⇒ Boolean
- #fumble? ⇒ Boolean
-
#initialize(text = nil) ⇒ Result
constructor
A new instance of Result.
- #secret? ⇒ Boolean
- #success? ⇒ Boolean
Constructor Details
#initialize(text = nil) ⇒ Result
Returns a new instance of Result.
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/bcdice/result.rb', line 67 def initialize(text = nil) @text = text @rands = nil @detailed_rands = nil @secret = false @success = false @failure = false @critical = false @fumble = false end |
Instance Attribute Details
#critical=(value) ⇒ Object (writeonly)
Sets the attribute critical
79 80 81 |
# File 'lib/bcdice/result.rb', line 79 def critical=(value) @critical = value end |
#detailed_rands ⇒ Object
Returns the value of attribute detailed_rands.
78 79 80 |
# File 'lib/bcdice/result.rb', line 78 def detailed_rands @detailed_rands end |
#failure=(value) ⇒ Object (writeonly)
Sets the attribute failure
79 80 81 |
# File 'lib/bcdice/result.rb', line 79 def failure=(value) @failure = value end |
#fumble=(value) ⇒ Object (writeonly)
Sets the attribute fumble
79 80 81 |
# File 'lib/bcdice/result.rb', line 79 def fumble=(value) @fumble = value end |
#rands ⇒ Object
Returns the value of attribute rands.
78 79 80 |
# File 'lib/bcdice/result.rb', line 78 def rands @rands end |
#secret=(value) ⇒ Object (writeonly)
Sets the attribute secret
79 80 81 |
# File 'lib/bcdice/result.rb', line 79 def secret=(value) @secret = value end |
#success=(value) ⇒ Object (writeonly)
Sets the attribute success
79 80 81 |
# File 'lib/bcdice/result.rb', line 79 def success=(value) @success = value end |
#text ⇒ Object
Returns the value of attribute text.
78 79 80 |
# File 'lib/bcdice/result.rb', line 78 def text @text end |
Class Method Details
.critical(text) ⇒ Result
success
と critical
が設定された Result
を作成する
38 39 40 41 42 43 44 |
# File 'lib/bcdice/result.rb', line 38 def critical(text) new.tap do |r| r.text = text r.critical = true r.success = true end end |
.failure(text) ⇒ Result
failure
が設定された Result
を作成する
27 28 29 30 31 32 |
# File 'lib/bcdice/result.rb', line 27 def failure(text) new.tap do |r| r.text = text r.failure = true end end |
.fumble(text) ⇒ Result
failure
と fumble
が設定された Result
を作成する
50 51 52 53 54 55 56 |
# File 'lib/bcdice/result.rb', line 50 def fumble(text) new.tap do |r| r.text = text r.fumble = true r.failure = true end end |
.nothing ⇒ :nothing
その後の判定で何もすることがないことを示すために利用する
61 62 63 |
# File 'lib/bcdice/result.rb', line 61 def nothing :nothing end |
.success(text) ⇒ Result
success
が設定された Result
を作成する
16 17 18 19 20 21 |
# File 'lib/bcdice/result.rb', line 16 def success(text) new.tap do |r| r.text = text r.success = true end end |
Instance Method Details
#condition=(condition) ⇒ void
This method returns an undefined value.
108 109 110 111 |
# File 'lib/bcdice/result.rb', line 108 def condition=(condition) @success = condition @failure = !condition end |
#critical? ⇒ Boolean
97 98 99 |
# File 'lib/bcdice/result.rb', line 97 def critical? @critical end |
#failure? ⇒ Boolean
92 93 94 |
# File 'lib/bcdice/result.rb', line 92 def failure? @failure end |
#fumble? ⇒ Boolean
102 103 104 |
# File 'lib/bcdice/result.rb', line 102 def fumble? @fumble end |
#secret? ⇒ Boolean
82 83 84 |
# File 'lib/bcdice/result.rb', line 82 def secret? @secret end |
#success? ⇒ Boolean
87 88 89 |
# File 'lib/bcdice/result.rb', line 87 def success? @success end |