class BCDice::GameSystem::VampireTheMasquerade5th
Constants
- DICE_POOL_INDEX
- DIFFICULTY_INDEX
- HELP_MESSAGE
ダイスボットの使い方
- HUNGER_DICE_INDEX
- ID
ゲームシステムの識別子
- NAME
ゲームシステム名
- NOT_CHECK_SUCCESS
難易度に指定可能な特殊値
- SORT_KEY
ゲームシステム名の読みがな
Public Instance Methods
eval_game_system_specific_command(command)
click to toggle source
# File lib/bcdice/game_system/VampireTheMasquerade5th.rb, line 46 def eval_game_system_specific_command(command) m = /\A(\d+)?(VMF)(\d+)(\+(\d+))?/.match(command) unless m return '' end dice_pool = m[DICE_POOL_INDEX].to_i dice_text, success_dice, ten_dice, = make_dice_roll(dice_pool) result_text = "(#{dice_pool}D10" hunger_dice_pool = m[HUNGER_DICE_INDEX]&.to_i if hunger_dice_pool hunger_dice_text, hunger_success_dice, hunger_ten_dice, hunger_botch_dice = make_dice_roll(hunger_dice_pool) ten_dice += hunger_ten_dice success_dice += hunger_success_dice result_text = "#{result_text}+#{hunger_dice_pool}D10) > [#{dice_text}]+[#{hunger_dice_text}] " else hunger_ten_dice = 0 hunger_botch_dice = 0 result_text = "#{result_text}) > [#{dice_text}] " end success_dice += get_critical_success(ten_dice) difficulty = m[DIFFICULTY_INDEX] ? m[DIFFICULTY_INDEX].to_i : NOT_CHECK_SUCCESS result_text = "#{result_text} 成功数=#{success_dice}" if difficulty > 0 if success_dice >= difficulty judgment_result = get_success_result(ten_dice >= 2, hunger_ten_dice) else judgment_result = get_fail_result(hunger_botch_dice) end result_text = "#{result_text} 難易度=#{difficulty}#{judgment_result}" elsif difficulty < 0 if success_dice == 0 judgment_result = get_fail_result(hunger_botch_dice) else judgment_result = "" end result_text = "#{result_text}#{judgment_result}" end return result_text end
get_critical_success(ten_dice)
click to toggle source
# File lib/bcdice/game_system/VampireTheMasquerade5th.rb, line 95 def get_critical_success(ten_dice) # 10の目が2個毎に追加2成功 return ((ten_dice / 2) * 2) end
get_fail_result(hunger_botch_dice)
click to toggle source
# File lib/bcdice/game_system/VampireTheMasquerade5th.rb, line 122 def get_fail_result(hunger_botch_dice) judgment_result = ":判定失敗!" if hunger_botch_dice > 0 return "#{judgment_result} [Bestial Failure]" end return judgment_result end
get_success_result(is_critical, hunger_ten_dice)
click to toggle source
# File lib/bcdice/game_system/VampireTheMasquerade5th.rb, line 111 def get_success_result(is_critical, hunger_ten_dice) judgment_result = ":判定成功!" if hunger_ten_dice > 0 && is_critical return "#{judgment_result} [Messy Critical]" elsif is_critical return "#{judgment_result} [Critical Win]" end return judgment_result end
make_dice_roll(dice_pool)
click to toggle source
# File lib/bcdice/game_system/VampireTheMasquerade5th.rb, line 100 def make_dice_roll(dice_pool) dice_list = @randomizer.roll_barabara(dice_pool, 10) dice_text = dice_list.join(',') success_dice = dice_list.count { |x| x >= 6 } ten_dice = dice_list.count(10) botch_dice = dice_list.count(1) return dice_text, success_dice, ten_dice, botch_dice end