1543 lines
No EOL
66 KiB
Ruby
1543 lines
No EOL
66 KiB
Ruby
#===============================================================================
|
||
# ■拡張ステータス画面 for RGSS3 Ver2.07-β2
|
||
# □author kure
|
||
#===============================================================================
|
||
module KURE
|
||
module ExStatus
|
||
#初期設定
|
||
EX_SUB_STATUS_MENU = []
|
||
VIEW_SUB_MENU = []
|
||
PROFILE = []
|
||
PROFILE2 = []
|
||
|
||
|
||
#描画方法の選択---------------------------------------------------------------
|
||
#表示方法
|
||
#VIEW_MODE(0=値を表示 1=補正値を表示)
|
||
VIEW_MODE = 0
|
||
|
||
# Main menu options settings ---------------------------------------------------
|
||
# Set main menu display names (the number at the end is used for page sorting.)
|
||
# EX_MAIN_STATUS_MENU = ["Basic Info(0)","Job History(1)","Equipment Info(2)","Profile(3)"]
|
||
EX_MAIN_STATUS_MENU = ["Basic Info","Job History","Equipment Info","Profile"]
|
||
|
||
# List of display pages (items shown in options)
|
||
VIEW_MAIN_MENU = [0]
|
||
|
||
# Submenu options settings ---------------------------------------------------
|
||
# Enable/disable submenu (0=Disabled, 1=Enabled)
|
||
# USE_SUB_MENU = [Option1,Option2,Option3,Option4]
|
||
USE_SUB_MENU = [1,1,1,0]
|
||
|
||
# Submenu option display names
|
||
# EX_SUB_STATUS_MENU[1] = ["Basic Stats(0)","Special Abilities(1)","Party Abilities(2)","Elemental Resistances(3)","Status Resistances(4)","Skills in Progress(5)"]
|
||
EX_SUB_STATUS_MENU[1] = ["Basic Stats","Special Abilities","Party Abilities","Elemental Resistances","Status Resistances","Skills in Progress"]
|
||
|
||
# Submenu page list (items shown in options)
|
||
VIEW_SUB_MENU[1] = [0,4]
|
||
|
||
# 1-1st Page Drawing Support, Status Display Method ---------------------------
|
||
# Vocab_Ex1 = [Hit Rate, Evasion Rate, Critical Rate, Critical Evade Rate, Magic Evasion Rate, Magic Reflect Rate, Counter Rate, HP Regen Rate, MP Regen Rate, TP Regen Rate]
|
||
Vocab_Ex1 = ["HIT","Evasion","CRI","Critical Evade","Magic Evasion Rate","Magic Reflect Rate","Counter Rate","HP Regen Rate","MP Regen Rate","TP Regen Rate"]
|
||
# Show/Hide toggle (0=Show, 1=Hide)
|
||
VIEW_Ex1 = [0,0,0,0,1,1,1,1,1,1]
|
||
|
||
# 1-2nd Page Drawing Support, Special Stat Display Method ---------------------
|
||
# Vocab_Ex2 = [Target Rate, Guard Effect Rate, Recovery Effect Rate, Medicine Knowledge, MP Cost Rate, TP Charge Rate, Physical Damage Rate, Magic Damage Rate, Floor Damage Rate, EXP Gain Rate]
|
||
Vocab_Ex2 = ["Target Rate","Guard Effect Rate","Recovery Effect Rate","Medicine Knowledge","MP Cost Rate","TP Charge Rate","Physical Damage Rate","Magic Damage Rate","Floor Damage Rate","EXP Gain Rate"]
|
||
# Show/Hide toggle (0=Show, 1=Hide)
|
||
VIEW_Ex2 = [0,0,0,0,0,0,0,0,0,0,0]
|
||
|
||
#1-3ページ目描画対応、属性耐性の表示------------------------------------------
|
||
#属性耐性を表示する項目を属性IDで選択します
|
||
VIEW_ELEMENT_REGIST = [1,2,3,4,5,6,7,8,9,10]
|
||
|
||
#項目にアイコンを使用するかどうか(0=使用しない 1=使用する)
|
||
ELEMENT_ICON = 1
|
||
|
||
#アイコンリスト
|
||
ELEMENT_ICON_LIST = [116,120,96,97,98,99,100,101,102,103]
|
||
|
||
#1-4ページ目描画対応、ステート耐性の表示--------------------------------------
|
||
#ステート耐性を表示する項目をステートIDで選択します
|
||
VIEW_STATE_REGIST = [2,3,4,5,6,7,8,49,71,139,140]
|
||
|
||
#項目にアイコンを使用するかどうか(0=使用しない 1=使用する)
|
||
STATE_ICON = 1
|
||
|
||
#2ページ目描画対応------------------------------------------------------------
|
||
#履歴が存在する職歴のみ表示(0=OFF、1=ON)
|
||
VIEW_ONLY_IS_RECORD = 1
|
||
|
||
#4-1ページ目描画対応----------------------------------------------------------
|
||
#PROFILE_NUM = [アクター1の変数,アクター2の変数,…]
|
||
#アクターのプロフィール描画の切り替え用の変数を指定します。
|
||
#項目数はアクター数と同一にすること
|
||
PROFILE_NUM = [15,0,0,0,0,0,0,0,0,0]
|
||
|
||
#PROFILE[アクターID] = [
|
||
# 変数未設定又は0 [立ち絵ファイル名,プロフィール内容1行目,…],
|
||
# 変数1 [立ち絵ファイル名,プロフィール内容1行目,…],
|
||
# …
|
||
# ]
|
||
#顔グラフィックは「Picture」フォルダに入れておくこと、非表示する場合は「nil」を入れておく
|
||
#区切りはダブルクオテーション「"」ではなくシングルクオテーション「'」です
|
||
PROFILE[1] = [
|
||
|
||
|
||
['nobigura',
|
||
'Sexual History',
|
||
'Enemy Climax\C[1] \V[16]\C[0]x',
|
||
'Violated\C[1] \V[17]\C[0]x',
|
||
'Ejaculated\C[1] \V[47]\C[0]x',
|
||
'Surrendered\C[1] \V[52]\C[0]x',
|
||
'Non-Battle sex\C[1] \V[53]\C[0]x',
|
||
'Stripped off underwear\C[1] \V[46]\C[0]x',
|
||
'',
|
||
'Other',
|
||
'Spent money\C[1] \V[182]\C[0]x',
|
||
'',
|
||
''],
|
||
|
||
['nobigura2',
|
||
'Sex History',
|
||
'Enemy Climax\C[1] \V[16]\C[0]x',
|
||
'Violated\C[1] \V[17]\C[0]x',
|
||
'Ejaculated\C[1] \V[47]\C[0]x',
|
||
'Surrendered\C[1] \V[52]\C[0]x',
|
||
'Non-Battle sex\C[1] \V[53]\C[0]x',
|
||
'Stripped off underwear\C[1] \V[46]\C[0]x',
|
||
'',
|
||
'Other',
|
||
'Spent money\C[1] \V[182]\C[0]x',
|
||
'',
|
||
'']
|
||
]
|
||
PROFILE[2] = [
|
||
['Actor4-2',
|
||
'Testing profile rendering',
|
||
'Since it renders using arrays, just separate with a ","',
|
||
'wherever you want to insert a line break']
|
||
]
|
||
PROFILE[3] = [
|
||
[nil,
|
||
'Testing case where emoji is not displayed.',
|
||
'If you don’t put nil, it assumes there is an emoji,',
|
||
'so please be careful.']
|
||
]
|
||
#4-2ページ目描画対応----------------------------------------------------------
|
||
#PROFILE_NUM2 = [アクター1の変数,アクター2の変数,…]
|
||
#アクターのプロフィール描画の切り替え用の変数を指定します。
|
||
#項目数はアクター数と同一にすること
|
||
PROFILE_NUM2 = [1,0,0,0,0,0,0,0,0,0]
|
||
|
||
#PROFILE2[アクターID] = [
|
||
# 変数未設定又は0 [プロフィール内容1行目,…],
|
||
# 変数1 [プロフィール内容1行目,…],
|
||
# …
|
||
# ]
|
||
PROFILE2[1] = [
|
||
['']
|
||
]
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ Scene_Status(再定義)
|
||
#------------------------------------------------------------------------------
|
||
# ステータス画面の処理を行うクラスです。
|
||
#==============================================================================
|
||
class Scene_Status < Scene_MenuBase
|
||
#--------------------------------------------------------------------------
|
||
# ● 開始処理
|
||
#--------------------------------------------------------------------------
|
||
def start
|
||
super
|
||
create_status_main_command
|
||
create_status_sub_command
|
||
create_draw_window
|
||
create_small_status_window
|
||
|
||
window_setup
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● メインコマンドウィンドウの作成
|
||
#--------------------------------------------------------------------------
|
||
def create_status_main_command
|
||
@main_command_window = Window_k_ExStatus_Main_Command.new(0,0)
|
||
@main_command_window.activate
|
||
@main_command_window.select(0)
|
||
@main_command_window.set_handler(:ok, method(:select_main_command))
|
||
@main_command_window.set_handler(:cancel, method(:return_scene))
|
||
@main_command_window.set_handler(:pagedown, method(:next_actor))
|
||
@main_command_window.set_handler(:pageup, method(:prev_actor))
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンドウィンドウの作成
|
||
#--------------------------------------------------------------------------
|
||
def create_status_sub_command
|
||
x = 0
|
||
y = @main_command_window.height + 24
|
||
height = Graphics.height - @main_command_window.height - 24
|
||
@sub_command_window = Window_k_ExStatus_Sub_Menu_Command.new(x,y,height)
|
||
@sub_command_window.unselect
|
||
@sub_command_window.opacity = 0
|
||
@sub_command_window.z += 100
|
||
@sub_command_window.deactivate
|
||
@sub_command_window.set_handler(:cancel, method(:on_sub_command_cancel))
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 描画領域ウィンドウの作成
|
||
#--------------------------------------------------------------------------
|
||
def create_draw_window
|
||
x = 0
|
||
y = @main_command_window.height
|
||
ww = Graphics.width
|
||
wy = Graphics.height - @main_command_window.height
|
||
@draw_window = Window_k_ExStatus_Draw.new(x,y,ww,wy)
|
||
@draw_window.refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● キャラクターのスモールステータスウィンドウ作成
|
||
#--------------------------------------------------------------------------
|
||
def create_small_status_window
|
||
x = @main_command_window.width
|
||
y = 0
|
||
ww = Graphics.width - @main_command_window.width
|
||
height = @main_command_window.height
|
||
@status_window = Window_k_ExStatus_Small_Status.new(x,y,ww,height)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ウィンドウのセットアップ処理
|
||
#--------------------------------------------------------------------------
|
||
def window_setup
|
||
@main_command_window.sub_command_window = @sub_command_window
|
||
@main_command_window.draw_window = @draw_window
|
||
@sub_command_window.draw_window = @draw_window
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● メインコマンド→サブコマンド
|
||
#--------------------------------------------------------------------------
|
||
def select_main_command
|
||
if KURE::ExStatus::USE_SUB_MENU[@main_command_window.index] == 0
|
||
@main_command_window.activate
|
||
else
|
||
@main_command_window.deactivate
|
||
@sub_command_window.select(0)
|
||
@sub_command_window.activate
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド→メインコマンド
|
||
#--------------------------------------------------------------------------
|
||
def on_sub_command_cancel
|
||
@main_command_window.activate
|
||
@sub_command_window.select(0)
|
||
@sub_command_window.unselect
|
||
@sub_command_window.deactivate
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● アクターの切り替え
|
||
#--------------------------------------------------------------------------
|
||
def on_actor_change
|
||
@status_window.refresh
|
||
@draw_window.refresh
|
||
@sub_command_window.refresh
|
||
@main_command_window.activate
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Window_k_ExStatus_Main_Command
|
||
#------------------------------------------------------------------------------
|
||
# 一般的なコマンド選択を行うウィンドウです。
|
||
#==============================================================================
|
||
class Window_k_ExStatus_Main_Command < Window_Command
|
||
attr_accessor :sub_command_window
|
||
attr_accessor :draw_window
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
def initialize(x, y)
|
||
super(x, y)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ウィンドウ高さの取得
|
||
#--------------------------------------------------------------------------
|
||
def window_height
|
||
fitting_height(4)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● →キーの処理
|
||
#--------------------------------------------------------------------------
|
||
#def cursor_right(wrap = false)
|
||
# @draw_window.draw_index(1) if @draw_window
|
||
#end
|
||
#--------------------------------------------------------------------------
|
||
# ● ←キーの処理
|
||
#--------------------------------------------------------------------------
|
||
# def cursor_left(wrap = false)
|
||
#@draw_window.draw_index(-1) if @draw_window
|
||
# end
|
||
#--------------------------------------------------------------------------
|
||
# ● カーソル位置の設定
|
||
#--------------------------------------------------------------------------
|
||
def index=(index)
|
||
@index = index
|
||
update_cursor
|
||
call_update_help
|
||
@sub_command_window.main_command_index = @index if @sub_command_window
|
||
@draw_window.main_command_index = @index if @draw_window
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● コマンドリストの作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list
|
||
for i in 0..KURE::ExStatus::VIEW_MAIN_MENU.size - 1
|
||
add_command(KURE::ExStatus::EX_MAIN_STATUS_MENU[KURE::ExStatus::VIEW_MAIN_MENU[i]], :ok)
|
||
end
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Window_k_ExStatus_Small_Status
|
||
#------------------------------------------------------------------------------
|
||
# メニュー画面でパーティメンバーのステータスを表示するウィンドウです。
|
||
#==============================================================================
|
||
class Window_k_ExStatus_Small_Status < Window_Selectable
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開インスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_reader :pending_index # 保留位置(並び替え用)
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
def initialize(x, y,width,height)
|
||
super(x, y, width, height)
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 項目の描画
|
||
#--------------------------------------------------------------------------
|
||
def draw_status
|
||
@actor = $game_party.menu_actor
|
||
draw_actor_face(@actor, 0, 0)
|
||
draw_actor_name(@actor, 100, line_height * 0)
|
||
draw_actor_class(@actor, 220,line_height * 0)
|
||
draw_actor_icons(@actor, 100,line_height * 2)
|
||
draw_actor_level(@actor, 100,line_height * 1)
|
||
draw_actor_hp(@actor, 220,line_height * 1)
|
||
draw_actor_mp(@actor, 220,line_height * 2)
|
||
draw_exp_info(100,line_height * 3)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● リフレッシュ
|
||
#--------------------------------------------------------------------------
|
||
def refresh
|
||
contents.clear
|
||
draw_status
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Window_k_ExStatus_Sub_Menu_Command
|
||
#==============================================================================
|
||
class Window_k_ExStatus_Sub_Menu_Command < Window_Command
|
||
attr_accessor :draw_window
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
def initialize(x, y,height)
|
||
@height = height
|
||
@main_command_index = 0
|
||
super(x, y)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● カーソル位置の設定
|
||
#--------------------------------------------------------------------------
|
||
def index=(index)
|
||
@index = index
|
||
update_cursor
|
||
call_update_help
|
||
|
||
return if @index < 0
|
||
@draw_window.sub_command_index = @index if @draw_window
|
||
@draw_window.draw_sub_command_index = 0 if @draw_window
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● →キーの処理
|
||
#--------------------------------------------------------------------------
|
||
def cursor_right(wrap = false)
|
||
@draw_window.draw_sub_command_index(1) if @draw_window
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ←キーの処理
|
||
#--------------------------------------------------------------------------
|
||
def cursor_left(wrap = false)
|
||
@draw_window.draw_sub_command_index(-1) if @draw_window
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ウィンドウ幅の取得
|
||
#--------------------------------------------------------------------------
|
||
def window_width
|
||
return 180
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● メインコマンドインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def main_command_index=(main_command_index)
|
||
return if @main_command_index == main_command_index
|
||
@main_command_index = main_command_index
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● コマンドリストの作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list
|
||
@actor = $game_party.menu_actor
|
||
case KURE::ExStatus::VIEW_MAIN_MENU[@main_command_index]
|
||
when 0
|
||
make_command_list_1
|
||
when 1
|
||
make_command_list_2
|
||
when 2
|
||
make_command_list_3
|
||
when 3
|
||
make_command_list_4
|
||
when 4
|
||
make_command_list_5
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド1の作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list_1
|
||
for i in 0..KURE::ExStatus::VIEW_SUB_MENU[1].size - 1
|
||
add_command(KURE::ExStatus::EX_SUB_STATUS_MENU[1][KURE::ExStatus::VIEW_SUB_MENU[1][i]], :ok)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド2の作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list_2
|
||
if KURE::BaseScript::USE_JobChange == 1
|
||
for i in 0..KURE::JobChange::JOB_GRADE_LIST.size - 1
|
||
add_command(KURE::JobChange::JOB_GRADE_LIST[i], :ok)
|
||
end
|
||
else
|
||
add_command("Job Info", :ok)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド3の作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list_3
|
||
for i in 0...@actor.equip_slots.size
|
||
if @actor.equips[i] == nil
|
||
add_command("", :ok)
|
||
else
|
||
add_command(@actor.equips[i].name, :ok)
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド4の作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list_4
|
||
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンド5の作成
|
||
#--------------------------------------------------------------------------
|
||
def make_command_list_5
|
||
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ウィンドウ高さの取得
|
||
#--------------------------------------------------------------------------
|
||
def window_height
|
||
return @height
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Window_k_ExStatus_Draw
|
||
#------------------------------------------------------------------------------
|
||
# 描画領域
|
||
#==============================================================================
|
||
class Window_k_ExStatus_Draw < Window_Base
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
def initialize(x, y, width, height)
|
||
super
|
||
@main_command_index = 0
|
||
@sub_command_index = 0
|
||
@draw_index = 0
|
||
@draw_sub_command_index = 0
|
||
@roop_call = 6
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● メインコマンドインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def main_command_index=(main_command_index)
|
||
return if @main_command_index == main_command_index
|
||
@main_command_index = main_command_index
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● サブコマンドインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def sub_command_index=(sub_command_index)
|
||
return if @sub_command_index == sub_command_index
|
||
@sub_command_index = sub_command_index
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 描画メインインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def draw_index=(draw_index)
|
||
return if @draw_index == draw_index
|
||
@draw_index = draw_index
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 描画サブインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def draw_sub_command_index=(draw_sub_command_index)
|
||
return if @draw_sub_command_index == draw_sub_command_index
|
||
@draw_sub_command_index = draw_sub_command_index
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 描画メインインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def draw_index(value)
|
||
@draw_index += value
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 描画サブインデックスの設定
|
||
#--------------------------------------------------------------------------
|
||
def draw_sub_command_index(value)
|
||
@draw_sub_command_index += value
|
||
refresh
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● リフレッシュ
|
||
#--------------------------------------------------------------------------
|
||
def refresh
|
||
@actor = $game_party.menu_actor
|
||
contents.clear
|
||
case KURE::ExStatus::VIEW_MAIN_MENU[@main_command_index]
|
||
when 0
|
||
page_1_draw
|
||
when 1
|
||
page_2_draw
|
||
when 2
|
||
page_3_draw
|
||
when 3
|
||
page_4_draw
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 基本情報(1ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_draw
|
||
draw_gauge(0,0, 155, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(0, 0, 126, line_height,KURE::ExStatus::EX_MAIN_STATUS_MENU[@main_command_index])
|
||
|
||
case KURE::ExStatus::VIEW_SUB_MENU[1][@sub_command_index]
|
||
when 0
|
||
page_1_1_draw
|
||
when 1
|
||
page_1_2_draw
|
||
when 2
|
||
page_1_3_draw
|
||
when 3
|
||
page_1_4_draw
|
||
when 4
|
||
page_1_5_draw
|
||
when 5
|
||
page_1_6_draw
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 基本能力値(1-1ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_1_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "Basic Stats")
|
||
|
||
8.times {|i| draw_actor_param(@actor, 160, line_height * 1, i) }
|
||
|
||
#draw_gauge(160,line_height * 5, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
#draw_text(160, line_height * 5, 200, line_height, "追加能力値")
|
||
|
||
@draw_postion_xparam = 0
|
||
10.times {|i| draw_actor_param(@actor, 160, line_height * 6, i + 9) }
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 特殊能力(1-2ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_2_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "特殊能力値")
|
||
|
||
@draw_postion_sparam = 0
|
||
10.times {|i| draw_actor_param(@actor, 160, line_height * 1, i + 20) }
|
||
|
||
draw_gauge(160,line_height * 7, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, line_height * 7, 200, line_height, "アクター能力")
|
||
|
||
draw_actor_self_features(@actor, 160, line_height * 8)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 能力値の描画(1-1、1-2ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def draw_actor_param(actor, x, y, param_id)
|
||
case param_id
|
||
when 0,2,4,6
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * (param_id / 2), 120, line_height, Vocab::param(param_id))
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * (param_id / 2), 50, line_height, actor.param(param_id), 2)
|
||
when 1,3,5,7
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * ((param_id - 1)/ 2), 120, line_height, Vocab::param(param_id))
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * ((param_id - 1)/ 2), 50, line_height, actor.param(param_id), 2)
|
||
|
||
when 9,10,11,12,13,14,15,16,17,18
|
||
if KURE::ExStatus::VIEW_Ex1[param_id - 9] != 0
|
||
@draw_postion_xparam += 1
|
||
else
|
||
value = (@actor.xparam(param_id - 9) * 100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
draw_pos_xparam = (param_id - 9) - @draw_postion_xparam
|
||
|
||
case draw_pos_xparam
|
||
when 0,2,4,6,8
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * (draw_pos_xparam / 2), 120, line_height, KURE::ExStatus::Vocab_Ex1[param_id - 9])
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * (draw_pos_xparam / 2), 50, line_height, draw_str, 2)
|
||
when 1,3,5,7,9
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * ((draw_pos_xparam - 1)/ 2), 120, line_height, KURE::ExStatus::Vocab_Ex1[param_id - 9])
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * ((draw_pos_xparam - 1)/ 2), 50, line_height, draw_str, 2)
|
||
end
|
||
end
|
||
|
||
when 20,21,22,23,24,25,26,27,28,29,30
|
||
if KURE::ExStatus::VIEW_Ex2[param_id - 20] != 0
|
||
@draw_postion_sparam += 1
|
||
else
|
||
value = (@actor.sparam(param_id - 20) * 100).to_i
|
||
draw_str = draw_value_s(value,100)
|
||
draw_pos_sparam = (param_id - 20) - @draw_postion_sparam
|
||
|
||
case draw_pos_sparam
|
||
when 0,2,4,6,8
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * (draw_pos_sparam / 2), 120, line_height, KURE::ExStatus::Vocab_Ex2[param_id - 20])
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * (draw_pos_sparam / 2), 50, line_height, draw_str, 2)
|
||
when 1,3,5,7,9
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * ((draw_pos_sparam - 1)/ 2), 120, line_height, KURE::ExStatus::Vocab_Ex2[param_id - 20])
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * ((draw_pos_sparam - 1)/ 2), 50, line_height, draw_str, 2)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● アクター能力の描画(1-2ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def draw_actor_self_features(actor, x, y)
|
||
draw_counter = 0
|
||
for i in 0..@actor.all_features.size - 1
|
||
#二刀流チェック
|
||
if @actor.all_features[i].code == 55
|
||
if draw_counter < 3
|
||
draw_text(x + ((contents.width - x)/3) * draw_counter, y + line_height * 0,(contents.width - 10)/3,line_height,"二刀流")
|
||
else
|
||
draw_text(x + ((contents.width - x)/3) * (draw_counter - 3), y + line_height * 1,(contents.width - 10)/3,line_height,"二刀流")
|
||
end
|
||
draw_counter += 1
|
||
end
|
||
|
||
#特殊フラグチェック
|
||
if @actor.all_features[i].code == 62
|
||
case @actor.all_features[i].data_id
|
||
when 0
|
||
value = "自動戦闘"
|
||
when 1
|
||
value = "自動防御"
|
||
when 2
|
||
value = "自動献身"
|
||
when 3
|
||
value = "TP持越し"
|
||
end
|
||
if draw_counter < 3
|
||
draw_text(x + ((contents.width - x)/3) * draw_counter, y + line_height * 0,(contents.width - 10)/3,line_height,value)
|
||
else
|
||
draw_text(x + ((contents.width - x)/3) * (draw_counter - 3), y + line_height * 1,(contents.width - 10)/3,line_height,value)
|
||
end
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● パーティー能力(1-3ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_3_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "パーティ能力")
|
||
|
||
draw_actor_party_features(@actor, 160, line_height * 1)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● パーティー能力の描画(1-3ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def draw_actor_party_features(actor, x, y)
|
||
draw_counter = 0
|
||
for i in 0..@actor.all_features.size - 1
|
||
#パーティーフラグチェック
|
||
if @actor.all_features[i].code == 64
|
||
case @actor.all_features[i].data_id
|
||
when 0
|
||
value = "エンカウント率半減"
|
||
when 1
|
||
value = "エンカウント無効"
|
||
when 2
|
||
value = "不意打ち無効"
|
||
when 3
|
||
value = "先制攻撃率アップ"
|
||
when 4
|
||
value = "獲得金額2倍"
|
||
when 5
|
||
value = "アイテム入手率2倍"
|
||
end
|
||
draw_text(x , y + line_height * draw_counter, contents.width / 2,line_height,value)
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
|
||
for j in 0..5
|
||
if @actor.party_add_ability(j) != 1
|
||
case j
|
||
when 0
|
||
value = "獲得金額" + @actor.party_add_ability(j).to_s + "倍"
|
||
when 1
|
||
value = "アイテム入手率" + @actor.party_add_ability(j).to_s + "倍"
|
||
when 2
|
||
value = "エンカウント率" + @actor.party_add_ability(j).to_s + "倍"
|
||
when 3
|
||
value = "獲得経験値倍率" + @actor.party_add_ability(j).to_s + "倍"
|
||
when 4
|
||
value = "獲得職業経験値倍率" + @actor.party_add_ability(j).to_s + "倍"
|
||
when 5
|
||
value = "獲得装備経験値倍率" + @actor.party_add_ability(j).to_s + "倍"
|
||
end
|
||
draw_text(x , y + line_height * draw_counter, contents.width / 2,line_height,value)
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 属性耐性(1-4ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_4_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "属性耐性")
|
||
|
||
elements = KURE::ExStatus::VIEW_ELEMENT_REGIST.size
|
||
elements.times {|i| draw_actor_elements_regist(@actor, 160, line_height * 1, i + 1) }
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 属性耐性の描画(1-4ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def draw_actor_elements_regist(actor, x, y, element_id)
|
||
use_icon = 0
|
||
use_icon = 24 if KURE::ExStatus::ELEMENT_ICON == 1
|
||
if element_id % 2 != 0
|
||
value = 100 - (@actor.element_rate(KURE::ExStatus::VIEW_ELEMENT_REGIST[element_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
|
||
change_color(system_color)
|
||
count = (element_id - 1) / 2
|
||
draw_icon(KURE::ExStatus::ELEMENT_ICON_LIST[element_id - 1], x, y + line_height * count) if KURE::ExStatus::ELEMENT_ICON == 1
|
||
draw_text(x + use_icon, y + line_height * count, 60, line_height, $data_system.elements[KURE::ExStatus::VIEW_ELEMENT_REGIST[element_id - 1]])
|
||
change_color(normal_color)
|
||
draw_text(x + 60 + use_icon, y + line_height * count, 50, line_height, draw_str, 2)
|
||
else
|
||
value = 100 - (@actor.element_rate(KURE::ExStatus::VIEW_ELEMENT_REGIST[element_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
|
||
count = (element_id - 2) / 2
|
||
change_color(system_color)
|
||
draw_icon(KURE::ExStatus::ELEMENT_ICON_LIST[element_id - 1], x + (contents.width - x)/2, y + line_height * count) if KURE::ExStatus::ELEMENT_ICON == 1
|
||
draw_text(x + (contents.width - x)/2 + use_icon, y + line_height * count, 60, line_height, $data_system.elements[KURE::ExStatus::VIEW_ELEMENT_REGIST[element_id - 1]])
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 60 + use_icon, y + line_height * count, 50, line_height, draw_str, 2)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステート耐性(1-5ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_5_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "状態異常耐性")
|
||
|
||
state = KURE::ExStatus::VIEW_STATE_REGIST.size
|
||
state.times {|i| draw_actor_state_regist(@actor, 160, line_height * 1, i + 1) }
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● ステート耐性の描画(1-5ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def draw_actor_state_regist(actor, x, y, state_id)
|
||
use_icon = 0
|
||
use_icon = 24 if KURE::ExStatus::STATE_ICON == 1
|
||
if state_id % 2 != 0
|
||
#無効化をチェック
|
||
flag = 0
|
||
for i in 0..@actor.all_features.size - 1
|
||
if @actor.all_features[i].code == 14
|
||
if KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1] == @actor.all_features[i].data_id
|
||
flag = @actor.all_features[i].data_id
|
||
end
|
||
end
|
||
end
|
||
|
||
#描画
|
||
if flag != 0
|
||
if flag == KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]
|
||
draw_str = "無効"
|
||
else
|
||
value = 100 - (@actor.state_rate(KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
end
|
||
else
|
||
value = 100 - (@actor.state_rate(KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
end
|
||
|
||
change_color(system_color)
|
||
count = (state_id - 1) / 2
|
||
draw_icon($data_states[KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]].icon_index, x, y + line_height * count) if KURE::ExStatus::STATE_ICON == 1
|
||
draw_text(x + use_icon, y + line_height * count, 70, line_height, $data_states[KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]].name)
|
||
change_color(normal_color)
|
||
|
||
draw_text(x + 70 + use_icon, y + line_height * count, 50, line_height, draw_str, 2)
|
||
else
|
||
#無効化をチェック
|
||
flag = 0
|
||
for i in 0..@actor.all_features.size - 1
|
||
if @actor.all_features[i].code == 14
|
||
if KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1] == @actor.all_features[i].data_id
|
||
flag = @actor.all_features[i].data_id
|
||
end
|
||
end
|
||
end
|
||
|
||
#描画
|
||
if flag != 0
|
||
if flag == KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]
|
||
draw_str = "無効"
|
||
else
|
||
value = 100 - (@actor.state_rate(KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
end
|
||
else
|
||
value = 100 - (@actor.state_rate(KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1])*100).to_i
|
||
draw_str = draw_value_s(value,0)
|
||
end
|
||
|
||
count = (state_id - 2) / 2
|
||
change_color(system_color)
|
||
draw_icon($data_states[KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]].icon_index, x + (contents.width - x)/2, y + line_height * count) if KURE::ExStatus::STATE_ICON == 1
|
||
draw_text(x + (contents.width - x)/2 + use_icon, y + line_height * count, 70, line_height, $data_states[KURE::ExStatus::VIEW_STATE_REGIST[state_id - 1]].name)
|
||
change_color(normal_color)
|
||
|
||
draw_text(x + (contents.width - x)/2 + 70 + use_icon, y + line_height * count, 50, line_height, draw_str, 2)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 習得中スキルリスト(1-6ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_1_6_draw
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, 0, 200, line_height, "習得中スキルリスト")
|
||
|
||
#アビリティポイントを取得
|
||
ap_list = @actor.ability_point
|
||
|
||
#描画用配列にIDとポイント出力する
|
||
draw_list = Array.new
|
||
for ap in 1..ap_list.size - 1
|
||
#値があれば出力する
|
||
if ap_list[ap]
|
||
draw_list.push([ap,ap_list[ap]])
|
||
end
|
||
end
|
||
skill_size = draw_list.size
|
||
|
||
#1ページの最大描画数、ページ数を取得
|
||
max_list = ((contents.height - 48) / line_height).to_i
|
||
max_page = (skill_size / max_list).to_i + 1
|
||
|
||
#ページ切り替えによる表示項目を取得
|
||
@draw_sub_command_index = 0 if @draw_sub_command_index > max_page - 1
|
||
@draw_sub_command_index = max_page - 1 if @draw_sub_command_index < 0
|
||
first_num = max_list * @draw_sub_command_index
|
||
last_num = [(max_list * (@draw_sub_command_index + 1)), draw_list.size].min
|
||
|
||
count = 0
|
||
for skill_id in first_num..last_num - 1
|
||
n_ap = draw_list[skill_id][1]
|
||
m_ap = $data_skills[draw_list[skill_id][0]].need_ability_point
|
||
|
||
draw_item_name($data_skills[draw_list[skill_id][0]], 160, line_height * (count + 1))
|
||
|
||
if @actor.skill_learn?($data_skills[draw_list[skill_id][0]])
|
||
draw_text(contents.width - 105, line_height * (count + 1), 105, line_height, "MASTER" , 2)
|
||
else
|
||
draw_text(contents.width - 105, line_height * (count + 1), 40, line_height, n_ap.to_s, 2)
|
||
draw_text(contents.width - 65, line_height * (count + 1), 25, line_height,"/")
|
||
draw_text(contents.width - 40, line_height * (count + 1), 40, line_height, m_ap.to_s , 2)
|
||
end
|
||
count += 1
|
||
end
|
||
|
||
max_page = 1 if max_page == 0
|
||
#draw_text(160, contents.height - line_height , contents.width - 160, line_height, "← →:表示切り替え ( " + (@draw_sub_command_index + 1).to_s + " / " + max_page.to_s + " )" ,1)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ■ 職業履歴(2ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_2_draw
|
||
draw_gauge(0,0, 155, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(0, 0, 126, line_height,KURE::ExStatus::EX_MAIN_STATUS_MENU[@main_command_index])
|
||
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
if KURE::BaseScript::USE_JOBLv == 1
|
||
draw_text(160, 0, 200, line_height, KURE::JobChange::JOB_GRADE_LIST[@sub_command_index] + " の職業履歴")
|
||
else
|
||
draw_text(160, 0, 200, line_height, "Job Info")
|
||
end
|
||
draw_job_exp(160,line_height * 1)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ■ 職業経験の描画
|
||
#--------------------------------------------------------------------------
|
||
def draw_job_exp(x,y)
|
||
#縦の描画項目数を取得
|
||
draw_contents_number = ((contents.height - line_height * 2) / line_height).to_i
|
||
|
||
#全職業リストからグレードを設定している職業を選びだす
|
||
draw_line = 1
|
||
draw_x_plus = 0
|
||
draw_counter = 0
|
||
|
||
select_grade_job = Array.new
|
||
#選択グレードのクラス配列を作成する
|
||
for i in 1..$data_classes.size - 1
|
||
if KURE::BaseScript::USE_JobChange == 1
|
||
if $data_classes[i].class_lank == @sub_command_index + 1
|
||
if $data_classes[i].need_jobchange_actor == [] or $data_classes[i].need_jobchange_actor.include?(@actor.id)
|
||
select_grade_job.push($data_classes[i]) if KURE::ExStatus::VIEW_ONLY_IS_RECORD == 0 or @actor.class_level_list[i] != nil
|
||
end
|
||
end
|
||
else
|
||
select_grade_job.push($data_classes[i]) if KURE::ExStatus::VIEW_ONLY_IS_RECORD == 0 or @actor.class_level_list[i] != nil
|
||
end
|
||
end
|
||
|
||
#取得したクラス配列を処理
|
||
draw_max = select_grade_job.size - 1
|
||
max_page = (draw_max / (draw_contents_number * 2)).to_i + 1
|
||
|
||
@draw_sub_command_index = 0 if @draw_sub_command_index > max_page - 1
|
||
@draw_sub_command_index = max_page - 1 if @draw_sub_command_index < 0
|
||
|
||
draw_start = 0 + (draw_contents_number * 2) * @draw_sub_command_index
|
||
draw_end = ((draw_contents_number * 2) - 1) + (draw_contents_number * 2) * @draw_sub_command_index
|
||
draw_end = draw_max if draw_end > draw_max
|
||
|
||
if draw_start <= draw_end
|
||
for i in draw_start..draw_end
|
||
#2列目に入れば描画位置を変更
|
||
if draw_line > draw_contents_number
|
||
draw_line = 1
|
||
draw_x_plus = (contents.width - 160) / 2
|
||
end
|
||
|
||
if select_grade_job[i]
|
||
if @actor.class_level_list[select_grade_job[i].id] != nil
|
||
change_color(normal_color)
|
||
change_color(tp_gauge_color2) if select_grade_job[i].id == @actor.class_id
|
||
change_color(mp_gauge_color2) if select_grade_job[i].id == @actor.sub_class_id
|
||
lv = "Lv"
|
||
lv += " " if @actor.class_level_list[select_grade_job[i].id] < 10
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line - 1), 130, line_height, select_grade_job[i].name)
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line - 1), (contents.width - 160) / 2 - 5, line_height, lv + @actor.class_level_list[select_grade_job[i].id].to_s, 2)
|
||
change_color(normal_color)
|
||
else
|
||
change_color(normal_color, false)
|
||
if select_grade_job[i].view_class_name == true
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line -1), 130, line_height, select_grade_job[i].name)
|
||
else
|
||
exp_flag = 0
|
||
for k in 0..$data_actors[@actor.id].exp_jobchange_class.size - 1
|
||
if k % 2 == 0
|
||
exp_flag = 1 if $data_actors[@actor.id].exp_jobchange_class[k] == select_grade_job[i].id
|
||
end
|
||
end
|
||
|
||
if exp_flag == 1
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line - 1), 130, line_height, select_grade_job[i].name)
|
||
else
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line - 1), (contents.width - 160) / 2 - 5, line_height, "?????")
|
||
end
|
||
end
|
||
draw_text(x + draw_x_plus, y + line_height * (draw_line - 1), (contents.width - 160) / 2 - 5, line_height, "Lv -", 2)
|
||
change_color(normal_color)
|
||
end
|
||
draw_line += 1
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
end
|
||
|
||
max_page = 1 if max_page == 0
|
||
#draw_text(160, contents.height - line_height , contents.width - 160, line_height, "← →:表示切り替え ( " + (@draw_sub_command_index + 1).to_s + " / " + max_page.to_s + " )" ,1)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ▲ 基本情報(3ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_3_draw
|
||
draw_gauge(0,0, 155, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(0, 0, 126, line_height,KURE::ExStatus::EX_MAIN_STATUS_MENU[@main_command_index])
|
||
|
||
draw_gauge(160,0, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
@draw_sub_command_index = 0 if @draw_sub_command_index > 1
|
||
@draw_sub_command_index = 1 if @draw_sub_command_index < 0
|
||
|
||
if @draw_sub_command_index == 0
|
||
draw_text(160, 0, 200, line_height, "Equipment Info")
|
||
draw_equipments_status(160,line_height * 1)
|
||
|
||
if KURE::BaseScript::USE_ExEquip == 1
|
||
draw_gauge(160,line_height * 6, contents.width - 160, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(160, line_height * 6, 200, line_height, "More Equipment Info")
|
||
draw_equipments_add_status(160,line_height * 7)
|
||
end
|
||
|
||
# draw_text(160, contents.height - line_height, contents.width - 160, line_height, "← →: Switch Display ( 1 / 2 )",1)
|
||
else
|
||
draw_text(160, 0, 200, line_height, "Equipment Features")
|
||
draw_equipments_features(160,line_height * 1)
|
||
|
||
|
||
# draw_text(160, contents.height - line_height, contents.width - 160, line_height, "← →:表示切り替え( 2 / 2 )",1)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ▲ 装備品の描画(3ページ目、INDEX0)
|
||
#--------------------------------------------------------------------------
|
||
def draw_equipments_status(x, y)
|
||
#装備名を描画
|
||
draw_item_name(@actor.equips[@sub_command_index], x, y) if @actor.equips[@sub_command_index] != nil
|
||
|
||
#上昇ステータスを描画
|
||
for i in 0..7
|
||
case i
|
||
when 0,2,4,6
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * ((i / 2)+1), 120, line_height, Vocab::param(i))
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * ((i / 2)+1), 50, line_height, @actor.equips[@sub_command_index].params[i], 2)
|
||
end
|
||
when 1,3,5,7
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * ((i + 1)/ 2), 120, line_height, Vocab::param(i))
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * ((i + 1)/ 2), 50, line_height, @actor.equips[@sub_command_index].params[i], 2)
|
||
end
|
||
end
|
||
change_color(normal_color)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ▲ 装備品の描画(3ページ目、INDEX0)
|
||
#--------------------------------------------------------------------------
|
||
def draw_equipments_add_status(x, y)
|
||
counter = 0
|
||
#装備重量の判定
|
||
if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * counter, 120, line_height, "装備重量")
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * counter, 50, line_height, @actor.equips[@sub_command_index].weight, 2)
|
||
end
|
||
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * counter, 120, line_height, "最大重量増加量")
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * counter, 50, line_height, @actor.equips[@sub_command_index].gain_weight, 2)
|
||
end
|
||
counter += 1
|
||
end
|
||
|
||
#装備Lvの判定
|
||
if KURE::ExEquip::USE_EQUIPLV_SYSTEM == 1
|
||
change_color(system_color)
|
||
draw_text(x, y + line_height * counter, 120, line_height, "装備レベル")
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + 120, y + line_height * counter, 50, line_height, @actor.equips[@sub_command_index].need_equip_level, 2)
|
||
end
|
||
|
||
change_color(system_color)
|
||
draw_text(x + (contents.width - x)/2, y + line_height * counter, 120, line_height, "装備職業レベル")
|
||
if @actor.equips[@sub_command_index] != nil
|
||
change_color(normal_color)
|
||
draw_text(x + (contents.width - x)/2 + 120, y + line_height * counter, 50, line_height, @actor.equips[@sub_command_index].need_equip_joblevel, 2)
|
||
end
|
||
counter += 1
|
||
end
|
||
change_color(normal_color)
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ▲ 装備品の特徴(3ページ目、INDEX1)
|
||
#--------------------------------------------------------------------------
|
||
def draw_equipments_features(x, y)
|
||
if @actor.equips[@sub_command_index] != nil
|
||
|
||
features_max = @actor.equips[@sub_command_index].features.size - 1
|
||
|
||
#描画用配列を作成
|
||
draw_list = Array.new(100)
|
||
#配列用カウンターをセット
|
||
draw_counter = 0
|
||
|
||
#項目をチェックして描画用配列に入れる
|
||
for l in 0..features_max
|
||
|
||
#攻撃属性がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 31
|
||
draw_str = $data_system.elements[@actor.equips[@sub_command_index].features[l].data_id]
|
||
draw_list[draw_counter] = draw_str + "属性"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#属性耐性がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 11
|
||
#属性名取得
|
||
draw_str = $data_system.elements[@actor.equips[@sub_command_index].features[l].data_id]+ "耐性"
|
||
value = 100 - (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#弱体有効度がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 12
|
||
#属性名取得
|
||
draw_str = "耐"+Vocab::param(@actor.equips[@sub_command_index].features[l].data_id)+ "減少"
|
||
value = 100 - (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#ステート耐性がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 13
|
||
#ステート名取得
|
||
draw_str = $data_states[@actor.equips[@sub_command_index].features[l].data_id].name + "耐性"
|
||
value = 100 - (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#ステート無効化がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 14
|
||
#ステート名取得
|
||
draw_str = $data_states[@actor.equips[@sub_command_index].features[l].data_id].name
|
||
draw_list[draw_counter] = draw_str + "無効"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#通常能力値判定がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 21
|
||
#ステータス名取得
|
||
draw_str = Vocab::param(@actor.equips[@sub_command_index].features[l].data_id)
|
||
value = (@actor.equips[@sub_command_index].features[l].value * 100).to_i - 100
|
||
if value > 0
|
||
value = "+" + value.to_s
|
||
end
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#通常能力値判定がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 22
|
||
#ステータス名取得
|
||
draw_str = @actor.equips[@sub_command_index].features[l].data_id
|
||
case draw_str
|
||
when 0
|
||
draw_str = "命中率"
|
||
when 1
|
||
draw_str = "回避率"
|
||
when 2
|
||
draw_str = "会心率"
|
||
when 3
|
||
draw_str = "会心回避"
|
||
when 4
|
||
draw_str = "魔法回避"
|
||
when 5
|
||
draw_str = "魔法反射"
|
||
when 6
|
||
draw_str = "反撃率"
|
||
when 7
|
||
draw_str = "毎ターンHP回復"
|
||
when 8
|
||
draw_str = "毎ターンMP回復"
|
||
when 9
|
||
draw_str = "毎ターンTP回復"
|
||
end
|
||
value = (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
if value > 0
|
||
value = "+" + value.to_s
|
||
end
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#特殊能力値判定がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 23
|
||
#ステート名取得
|
||
draw_str = @actor.equips[@sub_command_index].features[l].data_id
|
||
case draw_str
|
||
when 0
|
||
draw_str = "狙われ率"
|
||
when 1
|
||
draw_str = "防御効果"
|
||
when 2
|
||
draw_str = "回復効果"
|
||
when 3
|
||
draw_str = "薬知識"
|
||
when 4
|
||
draw_str = "MP消費率"
|
||
when 5
|
||
draw_str = "TP上昇率"
|
||
when 6
|
||
draw_str = "被物理Dmg"
|
||
when 7
|
||
draw_str = "被魔法Dmg"
|
||
when 8
|
||
draw_str = "床Dmg"
|
||
when 9
|
||
draw_str = "経験値"
|
||
end
|
||
value = (@actor.equips[@sub_command_index].features[l].value * 100).to_i - 100
|
||
if value > 0
|
||
value = "+" + value.to_s
|
||
end
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#攻撃時ステート判定がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 32
|
||
#ステート名取得
|
||
draw_str = $data_states[@actor.equips[@sub_command_index].features[l].data_id].name + "追加"
|
||
value = (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
draw_list[draw_counter] = draw_str + value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#攻撃追加がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 34
|
||
#攻撃回数を取得
|
||
value = (@actor.equips[@sub_command_index].features[l].value + 1).to_i
|
||
draw_list[draw_counter] = value.to_s + "回攻撃"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#スキルタイプ追加がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 41
|
||
#項目を取得
|
||
value = $data_system.skill_types[@actor.equips[@sub_command_index].features[l].data_id]
|
||
draw_list[draw_counter] = value + "追加"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#スキルタイプ削除がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 42
|
||
#項目を取得
|
||
value = $data_system.skill_types[@actor.equips[@sub_command_index].features[l].data_id]
|
||
draw_list[draw_counter] = value + "封印"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#スキル追加がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 43
|
||
#項目を取得
|
||
value = $data_skills[@actor.equips[@sub_command_index].features[l].data_id].name
|
||
draw_list[draw_counter] = "「" +value + "」習得"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#スキル削除がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 44
|
||
#項目を取得
|
||
value = $data_skills[@actor.equips[@sub_command_index].features[l].data_id].name
|
||
draw_list[draw_counter] = "「" +value + "」封印"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#行動追加がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 61
|
||
#項目を取得
|
||
value = (@actor.equips[@sub_command_index].features[l].value * 100).to_i
|
||
draw_list[draw_counter] = "追加行動"+ value.to_s + "%"
|
||
draw_counter += 1
|
||
end
|
||
|
||
#特殊フラグがある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 62
|
||
#項目を取得
|
||
value = @actor.equips[@sub_command_index].features[l].data_id
|
||
case value
|
||
when 0
|
||
value = "自動戦闘"
|
||
when 1
|
||
value = "自動防御"
|
||
when 2
|
||
value = "自動献身"
|
||
when 3
|
||
value = "TP持越"
|
||
end
|
||
draw_list[draw_counter] = value
|
||
draw_counter += 1
|
||
end
|
||
|
||
#パーティー能力がある場合
|
||
if @actor.equips[@sub_command_index].features[l].code == 64
|
||
#項目を取得
|
||
value = @actor.equips[@sub_command_index].features[l].data_id
|
||
case value
|
||
when 0
|
||
value = "敵出現率↓"
|
||
when 1
|
||
value = "敵出現率0"
|
||
when 2
|
||
value = "被先制無効"
|
||
when 3
|
||
value = "先制率上昇"
|
||
when 4
|
||
value = "獲得金額2倍"
|
||
when 5
|
||
value = "Drop率2倍"
|
||
when 6
|
||
end
|
||
draw_list[draw_counter] = value
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
|
||
#追加特徴項目
|
||
for add in 0..5
|
||
if @actor.equips[@sub_command_index].party_add_ability[add] != 100
|
||
case add
|
||
when 0
|
||
value = "獲得金額" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
when 1
|
||
value = "Drop率" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
when 2
|
||
value = "遭遇率" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
when 3
|
||
value = "獲得EXP" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
when 4
|
||
value = "獲得JEXP" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
when 5
|
||
value = "獲得EEXP" + (@actor.equips[@sub_command_index].party_add_ability[add].to_f / 100).to_s + "倍"
|
||
end
|
||
draw_list[draw_counter] = value
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
|
||
#追加特徴項目2
|
||
booster = @actor.equips[@sub_command_index].elements_booster
|
||
drain = @actor.equips[@sub_command_index].elements_drain
|
||
if booster
|
||
for i in 0..booster.size - 1
|
||
if i % 2 == 0
|
||
value = $data_system.elements[booster[i]] + "追加" + booster[i + 1].to_s + "%"
|
||
draw_list[draw_counter] = value
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
end
|
||
|
||
if drain
|
||
for i in 0..drain.size - 1
|
||
if i % 2 == 0
|
||
value = $data_system.elements[drain[i]] + "吸収" + drain[i + 1].to_s + "%"
|
||
draw_list[draw_counter] = value
|
||
draw_counter += 1
|
||
end
|
||
end
|
||
end
|
||
|
||
draw_list.compact!
|
||
|
||
#実際の描画処理
|
||
line_cheacker_x = 0
|
||
line_cheacker_y = 0
|
||
for j in 0..draw_list.size - 1
|
||
line_cheacker_y += 1 if line_cheacker_x == 3
|
||
line_cheacker_x = 0 if line_cheacker_x == 3
|
||
change_color(normal_color)
|
||
draw_text(x + ((contents.width - x)/3) * line_cheacker_x, y + line_height * line_cheacker_y , ((contents.width - x)/3), line_height, draw_list[j])
|
||
line_cheacker_x += 1
|
||
end
|
||
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ★ プロフィール(4ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_4_draw
|
||
|
||
@draw_index = 0 if @draw_index > 1
|
||
@draw_index = 1 if @draw_index < 0
|
||
@draw_index = 0 if KURE::ExStatus::PROFILE2[@actor.id] == nil
|
||
|
||
case @draw_index
|
||
when 0
|
||
page_4_1_draw
|
||
# draw_text(280, contents.height - line_height, contents.width - 280, line_height, "← →:表示切り替え( 1 / 2 )",1) if KURE::ExStatus::PROFILE2[@actor.id] != nil
|
||
when 1
|
||
page_4_2_draw
|
||
# draw_text(280, contents.height - line_height, contents.width - 280, line_height, "← →:表示切り替え( 2 / 2 )",1)
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ★ プロフィール(4-1ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_4_1_draw
|
||
draw_gauge(5,0, contents.width, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(5, 0, 126, line_height, "プロフィール")
|
||
draw_text(150, 0, contents.width - 280, line_height, @actor.name)
|
||
draw_actor_nickname(@actor, contents.width - 150,0)
|
||
|
||
#描画内容を変数で判断
|
||
if KURE::ExStatus::PROFILE_NUM[@actor.id - 1] != 0
|
||
draw_profile = $game_variables[KURE::ExStatus::PROFILE_NUM[@actor.id - 1]]
|
||
else
|
||
draw_profile = 0
|
||
end
|
||
|
||
#立ち絵のあるなしを判断
|
||
draw_standpicture = 0
|
||
|
||
#立ち絵グラフィックを設定
|
||
if KURE::ExStatus::PROFILE[@actor.id] != nil
|
||
if KURE::ExStatus::PROFILE[@actor.id][draw_profile] != nil
|
||
if KURE::ExStatus::PROFILE[@actor.id][draw_profile].size != 0
|
||
if KURE::ExStatus::PROFILE[@actor.id][draw_profile][0] != nil
|
||
bitmap = Cache.picture(KURE::ExStatus::PROFILE[@actor.id][draw_profile][0])
|
||
#描画
|
||
self.contents.blt(0, contents.height - bitmap.rect.height + 24, bitmap, bitmap.rect)
|
||
draw_standpicture = 1
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
#プロフィールが設定されているかをチェックする
|
||
if KURE::ExStatus::PROFILE[@actor.id] != nil
|
||
#プロフィールが設定されていれば描画する
|
||
if KURE::ExStatus::PROFILE[@actor.id][draw_profile] != nil
|
||
if KURE::ExStatus::PROFILE[@actor.id][draw_profile].size != 0
|
||
#立ち絵の有無で描画位置を調節
|
||
if draw_standpicture == 1
|
||
profile_x = 280
|
||
else
|
||
profile_x = 0
|
||
end
|
||
#プロフィールを描画
|
||
for i in 1..KURE::ExStatus::PROFILE[@actor.id][draw_profile].size - 1
|
||
draw_text_ex(profile_x, line_height * (i +1), KURE::ExStatus::PROFILE[@actor.id][draw_profile][i])
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● プロフィール(4-2ページの描画)
|
||
#--------------------------------------------------------------------------
|
||
def page_4_2_draw
|
||
draw_gauge(5,0, contents.width, 1, mp_gauge_color2,crisis_color)
|
||
draw_text(5, 0, 126, line_height, "プロフィール")
|
||
draw_text(150, 0, contents.width - 280, line_height, @actor.name)
|
||
draw_actor_nickname(@actor, contents.width - 150,0)
|
||
|
||
#描画内容を変数で判断
|
||
if KURE::ExStatus::PROFILE_NUM2[@actor.id - 1] != 0
|
||
draw_profile = $game_variables[KURE::ExStatus::PROFILE_NUM2[@actor.id - 1]]
|
||
else
|
||
draw_profile = 0
|
||
end
|
||
|
||
#プロフィールが設定されているかをチェックする
|
||
if KURE::ExStatus::PROFILE2[@actor.id] != nil
|
||
#プロフィールが設定されていれば描画する
|
||
if KURE::ExStatus::PROFILE2[@actor.id][draw_profile] != nil
|
||
if KURE::ExStatus::PROFILE2[@actor.id][draw_profile].size != 0
|
||
#プロフィールを描画
|
||
for i in 0..KURE::ExStatus::PROFILE2[@actor.id][draw_profile].size - 1
|
||
draw_text_ex(0, line_height * (i +1), KURE::ExStatus::PROFILE2[@actor.id][draw_profile][i])
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ◎ 表示内容の設定(共通呼び出し項目)
|
||
#--------------------------------------------------------------------------
|
||
def draw_value_s(val,baseval)
|
||
str = ""
|
||
plus = ""
|
||
if KURE::ExStatus::VIEW_MODE == 0
|
||
str = val.to_s + "%"
|
||
else
|
||
case baseval
|
||
when 100
|
||
if val - 100 == 0
|
||
str = "-"
|
||
else
|
||
plus = "+" if val - 100 > 0
|
||
str = plus + (val - 100).to_s + "%"
|
||
end
|
||
when 0
|
||
if val == 0
|
||
str = "-"
|
||
else
|
||
plus = "+" if val > 0
|
||
str = plus + val.to_s + "%"
|
||
end
|
||
end
|
||
end
|
||
|
||
return str
|
||
end
|
||
end |