#==============================================================================
# ミニゲーム:スーパーポーカー By 貪藻矢射妥←
#------------------------------------------------------------------------------
# 貪藻矢射妥←ルール満載のポーカーです。
#
# $scene = Scene_S_porkar.new
# にてゲームを開始できます。
#
# ポーカーハンドはカスタマイズポイントで増やすことができます。
#
# EX)
# PH_XXX = [1, ← ポーカーハンドの獲得金額の倍率
# [[DC, 14], [DC, 14], [DC, 14], [DC, 14], [DC, 14]],
# ... ,
# ... ]
#
# [スート, 数字]の配列を5つ、そのポーカーハンドのパターン数分配列でもつ
# というなんともややこしいことになっております。
#
# スートには数字かDCかFSを設定、数字には数時かDC、N1〜4、B1〜2を設定します。
# それぞれの意味は・・・
# DC:何でもいい場合の設定
# FS:スートが同じ場合の設定(フラッシュの処理)
# Nn:n番目のカードから数字を全て固定したい場合の設定
# Bn:前のカードの数時よりもn多い場合の設定(ストレートの処理)
#
# ※ぢつは面倒なことにAとジョーカーが連番ということになっていますので、
# ストレート系で何かポーカーハンドを増やしたい場合は気をつけてください。
#
# ※現状A 2 3 4 5といったストレートは実現できません。すみません。
#
# ※ちなみに、判定部分とかも変更する必要があります。
#
#==============================================================================
# 変更履歴
#
# 2008:11:12
# ・共通部分をモジュール化
# ・判定がおかしかったバグを修正(ところで =~ って何に使うの?)
#
# 2008:11:16
# ・モジュール変更に伴う修正
#
# 2008:11:23
# ・モジュール変更に伴う修正2
#
# 2009:01:19
# ・連続して遊ぶと正常に判定されないバグを修正
#
# 2010:03:13
# ・ソート部分をバブルソートからソート関数に変更
#
# 2010:03:20
# ・トランプの描画部分を修正
#
# 2011:06:04
# ・画像を統一
# ・判定直後カードの表示が消えて最終的にどんなカードだったのか分からないバグを修正
#
# 2012:01:21
# ・エラーメッセージを共通処理モジュールへ移動
#
# 2012:03:03
# ・一部の共通モジュールのクラス化
#
# 2013:06:01
# ・カードの配列をひとまとめに
# ・一部の共通モジュールのクラス化 part2
# ・オーディオファイルの設定を変更
#
# 2015:10:01
# ・VXA風Sound対応
#
# 2020:09:03
# ・Window VXA対応
#
# 2025:02:01
# ・ミニゲーム中で使用する文字定義の修正対応
module S_PORKAR
# トランプの図柄セット
CARD_ROOT="tr_set"
# トランプ一枚のサイズ
TR_WIDTH = 72
TR_HEIGHT = 100
#--------------------------------------------------------------------------
# トランプセッティング
#--------------------------------------------------------------------------
def set_tranp
$card = [[], [], [], []]
for i in 0...4
for j in 0...15
# 0の場合、カードの裏を設定(未使用)
if j == 0
$card[i][j] = Rect.new(13 * TR_WIDTH, 0, TR_WIDTH, TR_HEIGHT)
# 14の場合、ジョーカーを設定
elsif j == 14
if i / 2 == 0
$card[i][j] = Rect.new(13 * TR_WIDTH, 1 * TR_HEIGHT,
TR_WIDTH, TR_HEIGHT)
else
$card[i][j] = Rect.new(13 * TR_WIDTH, 2 * TR_HEIGHT,
TR_WIDTH, TR_HEIGHT)
end
# 13の場合、エースを設定
elsif j == 13
$card[i][j] = Rect.new(0, i * TR_HEIGHT, TR_WIDTH, TR_HEIGHT)
# それ以外の場合
else
$card[i][j] = Rect.new(j * TR_WIDTH, i * TR_HEIGHT,
TR_WIDTH, TR_HEIGHT)
end
end
end
end
# 最大交換回数
CHANGE_MAX = 15
end
module PH_SET
# ポーカーハンド設定集
# スート、数時を気にしない〜カード
DC = "Don't_Care"
# スートを固定するカード
FS = "FixSurt"
# 数字を固定するカード(1枚目)
N1 = "FixNum_1"
# 数字を固定するカード(2枚目)
N2 = "FixNum_2"
# 数字を固定するカード(3枚目)
N3 = "FixNum_3"
# 数字を固定するカード(4枚目)
N4 = "FixNum_4"
# ストレート用のアレ
B1 = "Before_1"
B2 = "Before_2"
# オールマイティ
PH_ALL = [200,
[[DC, 14], [DC, 14], [DC, 14], [DC, 14], [DC, 14]]]
# シャッフル同盟
PH_SUF = [150,
[[ 3, 10], [ 0, 11], [ 2, 12], [ 1, 13], [DC, 14]]]
# ロイヤルストレートフラッシュ
PH_RSF = [105,
[[FS, 9], [FS, 10], [FS, 11], [FS, 12], [FS, 13]],
[[FS, 9], [FS, 10], [FS, 11], [FS, 12], [DC, 14]],
[[FS, 9], [FS, 10], [FS, 11], [FS, 13], [DC, 14]],
[[FS, 9], [FS, 10], [FS, 12], [FS, 13], [DC, 14]],
[[FS, 10], [FS, 11], [FS, 12], [FS, 13], [DC, 14]],
[[FS, 9], [FS, 10], [FS, 11], [DC, 14], [DC, 14]],
[[FS, 9], [FS, 10], [FS, 12], [DC, 14], [DC, 14]],
[[FS, 9], [FS, 11], [FS, 12], [DC, 14], [DC, 14]],
[[FS, 10], [FS, 11], [FS, 12], [DC, 14], [DC, 14]],
[[FS, 9], [FS, 10], [FS, 13], [DC, 14], [DC, 14]],
[[FS, 9], [FS, 11], [FS, 13], [DC, 14], [DC, 14]],
[[FS, 10], [FS, 11], [FS, 13], [DC, 14], [DC, 14]],
[[FS, 9], [FS, 12], [FS, 13], [DC, 14], [DC, 14]],
[[FS, 10], [FS, 12], [FS, 13], [DC, 14], [DC, 14]],
[[FS, 11], [FS, 12], [FS, 13], [DC, 14], [DC, 14]]]
# ブラックジャック・ダブル
PH_BJW = [75,
[[ 0, 5], [ 0, 6], [ 0, 7], [ 0, 10], [ 0, 13]],
[[ 1, 5], [ 1, 6], [ 1, 7], [ 1, 10], [ 1, 13]]]
# ファイブカードフラッシュ
PH_5CF = [55,
[[FS, N1], [FS, N1], [FS, N1], [FS, N1], [FS, N1]],
[[FS, N1], [FS, N1], [FS, N1], [FS, N1], [DC, 14]],
[[FS, N1], [FS, N1], [FS, N1], [DC, 14], [DC, 14]],
[[FS, N1], [FS, N1], [DC, 14], [DC, 14], [DC, 14]],
[[DC, DC], [DC, 14], [DC, 14], [DC, 14], [DC, 14]]]
# スペシャル・ハンズ
PH_SPH = [40,
[[FS, 4], [FS, 6], [FS, 7], [FS, 9], [FS, 10]]]
# ストレートフラッシュ
PH_STF = [28,
[[FS, DC], [FS, B1], [FS, B1], [FS, B1], [FS, B1]],
[[FS, DC], [FS, B1], [FS, B1], [FS, B1], [DC, 14]],
[[FS, DC], [FS, B2], [FS, B1], [FS, B1], [DC, 14]],
[[FS, DC], [FS, B1], [FS, B2], [FS, B1], [DC, 14]],
[[FS, DC], [FS, B1], [FS, B1], [FS, B2], [DC, 14]],
[[FS, DC], [FS, B1], [FS, B1], [DC, 14], [DC, 14]],
[[FS, DC], [FS, B2], [FS, B1], [DC, 14], [DC, 14]],
[[FS, DC], [FS, B1], [FS, B2], [DC, 14], [DC, 14]],
[[FS, DC], [FS, B2], [FS, B2], [DC, 14], [DC, 14]]]
# フォアカードフラッシュ
PH_4CF = [20,
[[FS, DC], [FS, N2], [FS, N2], [FS, N2], [FS, N2]],
[[FS, N1], [FS, N1], [FS, N1], [FS, N1], [FS, DC]],
[[FS, DC], [FS, N2], [FS, N2], [FS, N2], [DC, 14]],
[[FS, N1], [FS, N1], [FS, N1], [FS, DC], [DC, 14]],
[[FS, DC], [FS, N2], [FS, N2], [DC, 14], [DC, 14]],
[[FS, N1], [FS, N1], [FS, DC], [DC, 14], [DC, 14]],
[[FS, DC], [FS, DC], [DC, 14], [DC, 14], [DC, 14]]]
# ファイブカード
PH_5CD = [15,
[[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, N1]],
[[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, 14]],
[[DC, N1], [DC, N1], [DC, N1], [DC, 14], [DC, 14]],
[[DC, N1], [DC, N1], [DC, 14], [DC, 14], [DC, 14]]]
# フルハウスフラッシュ
PH_FHF = [12,
[[FS, N1], [FS, N1], [FS, N3], [FS, N3], [FS, N3]],
[[FS, N1], [FS, N1], [FS, N1], [FS, N4], [FS, N4]],
[[FS, N1], [FS, N1], [FS, N3], [FS, N3], [DC, 14]]]
# フォアカード
PH_4CD = [10,
[[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, N2]],
[[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, DC]],
[[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, 14]],
[[DC, N1], [DC, N1], [DC, N1], [DC, DC], [DC, 14]],
[[DC, DC], [DC, N2], [DC, N2], [DC, 14], [DC, 14]],
[[DC, N1], [DC, N1], [DC, DC], [DC, 14], [DC, 14]],
[[DC, DC], [DC, DC], [DC, 14], [DC, 14], [DC, 14]]]
# フルハウス
PH_FHS = [8.5,
[[DC, N1], [DC, N1], [DC, N3], [DC, N3], [DC, N3]],
[[DC, N1], [DC, N1], [DC, N1], [DC, N4], [DC, N4]]]
# スリーカードフラッシュ
PH_3CF = [7,
[[FS, DC], [FS, DC], [FS, N3], [FS, N3], [FS, N3]],
[[FS, DC], [FS, N2], [FS, N2], [FS, N2], [FS, DC]],
[[FS, N1], [FS, N1], [FS, N1], [FS, DC], [FS, DC]],
[[FS, DC], [FS, DC], [FS, N3], [FS, N3], [DC, 14]],
[[FS, DC], [FS, N2], [FS, N2], [FS, DC], [DC, 14]],
[[FS, N1], [FS, N1], [FS, DC], [FS, DC], [DC, 14]],
[[FS, DC], [FS, DC], [FS, DC], [DC, 14], [DC, 14]]]
# ツーペアフラッシュ
PH_2PF = [5,
[[FS, DC], [FS, N2], [FS, N2], [FS, N4], [FS, N4]],
[[FS, N1], [FS, N1], [FS, DC], [FS, N4], [FS, N4]],
[[FS, N1], [FS, N1], [FS, N3], [FS, N3], [FS, DC]]]
# ワンペアフラッシュ
PH_1PF = [4,
[[FS, DC], [FS, DC], [FS, DC], [FS, N4], [FS, N4]],
[[FS, DC], [FS, DC], [FS, N3], [FS, N3], [FS, DC]],
[[FS, DC], [FS, N2], [FS, N2], [FS, DC], [FS, DC]],
[[FS, N1], [FS, N1], [FS, DC], [FS, DC], [FS, DC]],
[[FS, DC], [FS, DC], [FS, DC], [FS, DC], [DC, 14]]]
# フラッシュ
PH_FLS = [3,
[[FS, DC], [FS, DC], [FS, DC], [FS, DC], [FS, DC]]]
# ストレート
PH_STT = [2.5,
[[DC, DC], [DC, B1], [DC, B1], [DC, B1], [DC, B1]],
[[DC, DC], [DC, B1], [DC, B1], [DC, B1], [DC, 14]],
[[DC, DC], [DC, B2], [DC, B1], [DC, B1], [DC, 14]],
[[DC, DC], [DC, B1], [DC, B2], [DC, B1], [DC, 14]],
[[DC, DC], [DC, B1], [DC, B1], [DC, B2], [DC, 14]],
[[DC, DC], [DC, B1], [DC, B1], [DC, 14], [DC, 14]],
[[DC, DC], [DC, B2], [DC, B1], [DC, 14], [DC, 14]],
[[DC, DC], [DC, B1], [DC, B2], [DC, 14], [DC, 14]]]
# スリーカード
PH_3CD = [2,
[[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, N3]],
[[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, DC]],
[[DC, N1], [DC, N1], [DC, N1], [DC, DC], [DC, DC]],
[[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, 14]],
[[DC, DC], [DC, N2], [DC, N2], [DC, DC], [DC, 14]],
[[DC, N1], [DC, N1], [DC, DC], [DC, DC], [DC, 14]],
[[DC, DC], [DC, DC], [DC, DC], [DC, 14], [DC, 14]]]
# ツーペア
PH_2PC = [1.5,
[[DC, DC], [DC, N2], [DC, N2], [DC, N4], [DC, N4]],
[[DC, N1], [DC, N1], [DC, DC], [DC, N4], [DC, N4]],
[[DC, N1], [DC, N1], [DC, N3], [DC, N3], [DC, DC]]]
# ワンペア
PH_1PC = [0,
[[DC, DC], [DC, DC], [DC, DC], [DC, N4], [DC, N4]],
[[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, DC]],
[[DC, DC], [DC, N2], [DC, N2], [DC, DC], [DC, DC]],
[[DC, N1], [DC, N1], [DC, DC], [DC, DC], [DC, DC]],
[[DC, DC], [DC, DC], [DC, DC], [DC, DC], [DC, 14]]]
# 判定用配列
JUDG_LIST = [nil, PH_ALL, PH_SUF, PH_RSF, PH_BJW, PH_5CF, PH_SPH,
PH_STF, PH_4CF, PH_5CD, PH_FHF, PH_4CD, PH_FHS, PH_3CF,
PH_2PF, PH_1PF, PH_FLS, PH_STT, PH_3CD, PH_2PC, PH_1PC]
end
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :ph_set # ポーカーハンド変数セット
end
class Window_Super_Porkar < Window_Selectable
include PH_SET
include TITLE_BM
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 64, 480 - 10, 380 - 128)
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh(cards)
clear
@list = []
for card in cards
@list.push([card[0].to_i, card[1].to_i])
end
buble_sort
draw_sporkar
end
#--------------------------------------------------------------------------
# ● トランプのソート
#--------------------------------------------------------------------------
def buble_sort
@list.sort! {|a, b| a[1] <=> b[1] }
end
include S_PORKAR
#--------------------------------------------------------------------------
# ● トランプの描画
#--------------------------------------------------------------------------
def draw_sporkar
self.contents.clear
for i in 0..4
draw_card($card[@list[i][0]][@list[i][1]], 15 + i * 80, 30)
end
end
#--------------------------------------------------------------------------
# ● グラフィックの描画
#--------------------------------------------------------------------------
def draw_card(card, x, y, opacity = MAX8BIT)
@cw = card.width
self.contents.stretch_blt(Rect.new(x, y, TR_WIDTH, TR_HEIGHT),
RPG::Cache.picture(CARD_ROOT),
card, opacity)
end
#--------------------------------------------------------------------------
# ● トランプの交換
#--------------------------------------------------------------------------
def card_change(index)
@list[index] = [rand(4), rand(14) + 1]
buble_sort
draw_sporkar
end
#--------------------------------------------------------------------------
# ● カーソルアップデート準備
#--------------------------------------------------------------------------
def cu_update(index)
@index = index
@cursor_width = @cw - 4
update_cursor_rect
end
#--------------------------------------------------------------------------
# ● カーソルの矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
# カーソル位置が 0 未満の場合
if @index < 0
self.cursor_rect.empty
return
end
# カーソルの座標を計算
x = 10 + @index * 80
y = 30 - 8
# カーソルの矩形を更新
self.cursor_rect.set(x, y, @cursor_width + 16, 100 + 16)
end
#--------------------------------------------------------------------------
# ● 判定用ダミーデータ作成
#--------------------------------------------------------------------------
def make_dmy_ary(root)
# ダミー配列を完全別物としてコピーする。(深いコピー)
@dummy = Marshal.load(Marshal.dump(root))
for i in 1...@dummy.size
for j in 0..4
if @dummy[i][j][0] == FS
@dummy[i][j][0] = @list[0][0]
elsif @dummy[i][j][0] == DC
@dummy[i][j][0] = @list[j][0]
end
if @dummy[i][j][1] == N1
@dummy[i][j][1] = @list[0][1]
elsif @dummy[i][j][1] == N2
@dummy[i][j][1] = @list[1][1]
elsif @dummy[i][j][1] == N3
@dummy[i][j][1] = @list[2][1]
elsif @dummy[i][j][1] == N4
@dummy[i][j][1] = @list[3][1]
elsif @dummy[i][j][1] == B1
@dummy[i][j][1] = @dummy[i][j - 1][1] + 1
elsif @dummy[i][j][1] == B2
@dummy[i][j][1] = @dummy[i][j - 1][1] + 2
elsif @dummy[i][j][1] == DC
@dummy[i][j][1] = @list[j][1]
end
end
end
end
#--------------------------------------------------------------------------
# ● ポーカーハンド判定
#--------------------------------------------------------------------------
def sporkar_judg
judg_list = JUDG_LIST
for i in 1...judg_list.size
make_dmy_ary(judg_list[i].clone)
for j in 1...@dummy.size
if @list == @dummy[j]
# A、ジョーカーが続いた場合、ストレートでは無いと判断させる
if (i == 7 || i == 17) && @list[1][1] != 13
$game_system.ph_set = [i,judg_list[i][0]]
return
else
$game_system.ph_set = [i,judg_list[i][0]]
return
end
end
end
end
end
end
class Scene_S_porkar
include BM
include S_PORKAR
include MINI_GAME
#--------------------------------------------------------------------------
# ● スーパーポーカー初期化
#--------------------------------------------------------------------------
def sporkar_init(flg = true)
$game_system.ph_set = [0, 0]
@start_flg = false
@set_flg = false
@bet_gold = 0
@index = 0
@change = 0
set_tranp
@sp_cards = [[0, 0], [1, 0], [2, 0], [3, 0], [0, 0]]
if flg == true
@sporkar_window.refresh(@sp_cards)
end
end
#--------------------------------------------------------------------------
# ● スーパーポーカー 清算
#--------------------------------------------------------------------------
def get_gold
get = Integer(@bet_gold * $game_system.ph_set[1])
if get > MAX_GOLD
get = MAX_GOLD
end
if get > 0
$game_party.gain_gold(get)
text = sprintf(MG_NML_GET_GOLD, get)
@info_window.refresh(text)
else
$game_party.lose_gold(@bet_gold)
text = sprintf(MG_NML_LOST_GOLD, @bet_gold)
@info_window.refresh(text)
end
text_flash = "フラッシュ"
case $game_system.ph_set[0]
when 0
text2 = "役無し"
se = LOOSE_ME
when 1
text2 = "オールマイティ"
se = JACK_POT_ME1
when 2
text2 = "シャッフル同盟"
se = JACK_POT_ME2
when 3
text2 = "ロイヤルストレート" + text_flash
se = JACK_POT_ME2
when 4
text2 = "ブラックジャック・ダブル"
se = JACK_POT_ME2
when 5
text2 = "ファイブカード" + text_flash
se = JACK_POT_ME3
when 6
text2 = "スペシャル・ハンズ"
se = JACK_POT_ME3
when 7
text2 = "ストレート" + text_flash
se = JACK_POT_ME3
when 8
text2 = "フォアカード" + text_flash
se = JACK_POT_ME4
when 9
text2 = "ファイブカード"
se = JACK_POT_ME4
when 10
text2 = "フルハウス" + text_flash
se = JACK_POT_ME4
when 11
text2 = "フォアカード"
se = JACK_POT_ME4
when 12
text2 = "フルハウス"
se = JACK_POT_ME5
when 13
text2 = "スリーカード" + text_flash
se = JACK_POT_ME5
when 14
text2 = "ツーペア" + text_flash
se = JACK_POT_ME5
when 15
text2 = "ワンペア" + text_flash
se = JACK_POT_ME6
when 16
text2 = text_flash
se = JACK_POT_ME6
when 17
text2 = "ストレート"
se = JACK_POT_ME6
when 18
text2 = "スリーカード"
se = JACK_POT_ME6
when 19
text2 = "ツーペア"
se = JACK_POT_ME6
when 20
text2 = "ワンペア"
se = LOOSE_ME
end
@change_info_window.refresh(text2, nil)
if se == LOOSE_ME
$game_system.se_play(se)
else
$game_system.me_play(se)
end
end
#--------------------------------------------------------------------------
# ○ キーヘルプを設定
#--------------------------------------------------------------------------
def set_keyhelp1
@bottomkeyhelp_window.clear
@bottomkeyhelp_window.set_bottom_help({"B"=>"キャンセル",
"A"=>"コインベット",
"C"=>"ゲーム開始"})
end
#--------------------------------------------------------------------------
# ○ キーヘルプを設定 2
#--------------------------------------------------------------------------
def set_keyhelp2
@bottomkeyhelp_window.clear
@bottomkeyhelp_window.set_bottom_help({"←→"=>"交換選択",
"C" =>"カード交換",
"X" =>"勝負",
"B" =>"キャンセル"})
end
#--------------------------------------------------------------------------
# ○ キーヘルプを設定 3
#--------------------------------------------------------------------------
def set_keyhelp3
@bottomkeyhelp_window.clear
@bottomkeyhelp_window.set_bottom_help({"矢印"=>"ベット",
"C" =>"決定",
"B" =>"キャンセル"})
end
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def initialize
@bottomkeyhelp_window = Window_BottomKeyHelp.new
set_keyhelp1
end
def main
# ウィンドウを作成
@title_window = Window_Title_Root.new
@sporkar_window = Window_Super_Porkar.new
@change_info_window = Window_Info_Space2.new
@info_window = Window_Info_Space.new
@gold_info_window = Window_Info_Gold.new
@gold_window = Window_Gold.new
@gold_window.x = 480 - 10
@gold_window.y = 128
@bet_info_window = Window_Info_Bet.new
@bet_window = Window_Bet_Gold.new
@value_window2 = Window_Base.new(200, 200, 240, 64)
@value_window2.z = 1000
@value_window = Window_InputNumber.new(MAX_DIG)
@value_window.x = 200
@value_window.y = 200
@value_window2.hide
@value_window.hide
@value_window.deactivate
sporkar_init
@title_window.refresh("スーパーポーカー")
@bet_window.refresh(@bet_gold)
# トランジション実行
Graphics.transition
# メインループ
loop do
if @start_flg == true
if @set_flg == false
@sp_cards = [[rand(4), rand(14) + 1], [rand(4), rand(14) + 1],
[rand(4), rand(14) + 1], [rand(4), rand(14) + 1],
[rand(4), rand(14) + 1]]
@sporkar_window.refresh(@sp_cards)
@set_flg = true
end
end
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@title_window.dispose
@sporkar_window.dispose
@gold_window.dispose
@bet_window.dispose
@value_window.dispose
@value_window2.dispose
@info_window.dispose
@gold_info_window.dispose
@bet_info_window.dispose
@change_info_window.dispose
@bottomkeyhelp_window.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
if @sporkar_window.active
update_main
return
end
if @value_window.active
@value_window.number = @bet_gold
update_value
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_main
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
Sound.play_cancel
if @start_flg == true
@sporkar_window.cu_update(-1)
set_keyhelp1
@start_flg = false
else
$game_system.windowskin_name = WINDOW_SKIN_ROOT
$scene = Scene_Map.new
end
return
end
if @start_flg == false
# A ボタンが押された場合
if Input.trigger?(Input::A)
# 決定 SE を演奏
Sound.play_ok
# 念の為
@sporkar_window.refresh(@sp_cards)
@value_window.show
@value_window.activate
@value_window2.show
@sporkar_window.deactivate
set_keyhelp3
return
end
end
if @start_flg == true
# X ボタンが押された場合
if Input.trigger?(Input::X)
# 決定 SE を演奏
Sound.play_ok
@sporkar_window.sporkar_judg
get_gold
sporkar_init(false)
@bet_window.refresh(@bet_gold)
@gold_window.refresh
@sporkar_window.cu_update(-1)
set_keyhelp1
return
end
# 方向ボタンの右が押された場合
if Input.repeat?(Input::RIGHT)
Sound.play_cursor
if @index == 4
@index = 0
else
@index += 1
end
@sporkar_window.cu_update(@index)
end
# 方向ボタンの左が押された場合
if Input.repeat?(Input::LEFT)
Sound.play_cursor
if @index == 0
@index = 4
else
@index -= 1
end
@sporkar_window.cu_update(@index)
end
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
if @bet_gold == 0
# エラー SE を演奏
$game_system.se_play(ERROR_SE)
text = "まずは" + MG_ERR_BET_ZERO
@info_window.refresh(text)
else
# 決定 SE を演奏
Sound.play_ok
@info_window.refresh("")
@change_info_window.refresh(@change, CHANGE_MAX)
if @start_flg == false
@start_flg = true
@sporkar_window.cu_update(@index)
set_keyhelp2
elsif @start_flg == true
@change += 1
@change_info_window.refresh(@change, CHANGE_MAX)
@sporkar_window.card_change(@index)
@sporkar_window.cu_update(@index)
end
if @change == CHANGE_MAX
@sporkar_window.sporkar_judg
get_gold
sporkar_init(false)
@bet_window.refresh(@bet_gold)
@gold_window.refresh
@sporkar_window.cu_update(-1)
set_keyhelp1
end
return
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (バリューウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_value
#refresh
# C ボタンが押された場合
if Input.trigger?(Input::C)
if @bet_gold > $game_party.gold
# エラー SE を演奏
$game_system.se_play(ERROR_SE)
@info_window.refresh(MG_ERR_BET_UPPER)
elsif @bet_gold == 0
# エラー SE を演奏
$game_system.se_play(ERROR_SE)
@info_window.refresh(MG_ERR_BET_ZERO)
else
# 決定 SE を演奏
Sound.play_ok
@info_window.refresh("")
@value_window.hide
@value_window.deactivate
@value_window2.hide
@sporkar_window.activate
@bet_window.refresh(@bet_gold)
set_keyhelp1
return
end
end
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
Sound.play_cancel
@value_window.hide
@value_window.deactivate
@value_window2.hide
@sporkar_window.activate
set_keyhelp1
return
end
# Window_InputNumberに処理を移す
@value_window.update
@bet_gold = @value_window.number
end
end
|