ScriptName aaaKimachuuCOWTuitionRA Extends ReferenceAlias

GlobalVariable Property aaaKimachuuCOWTGloPre Auto ;事前に学費を払った回数
GlobalVariable Property aaaKimachuuCOWTGloTui Auto ;支払う学費
GlobalVariable Property aaaKimachuuCOWTGloRec Auto ;アークメイジになった時の回収額
GlobalVariable Property aaaKimachuuCOWTGloInt Auto ;チェック間隔
MiscObject Property Gold001 Auto ;ゴールド
Message Property aaaKimachuuCOWTMes01 Auto ;学費を払えなかったメッセージ
Message Property aaaKimachuuCOWTMes02 Auto ;学費を払った通知
Message Property aaaKimachuuCOWTMes03 Auto ;アークメイジになった事による学費回収メッセージ
Quest Property MG01 Auto ;初めての訓練(トルフディルの授業の後に学費発生)
Quest Property MG07 Auto ;マグナスの杖
Quest Property MG08 Auto ;マグナスの目
Quest Property MGRejoinQuest Auto ;大学に入学する(バニラの停学処分)
Quest Property aaaKimachuuCOWT Auto ;このクエスト

Event OnUpdateGameTime()
	If (MG08.IsCompleted()) ;マグナスの目をクリア済み
		Self.GetActorReference().AddItem(Gold001, aaaKimachuuCOWTGloRec.GetValueInt()) ;学費の一部を回収
		aaaKimachuuCOWTMes03.Show() ;アークメイジになった事で学費の一部を回収
		aaaKimachuuCOWT.Stop() ;このMODの機能を停止
		Return ;処理中断
	ElseIf (MG07.IsCompleted()) ;マグナスの杖をクリア済み
		Return ;処理中断
	ElseIf (!MG01.IsCompleted()) ;初めての訓練を未クリア
		RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
		Return ;処理中断
	ElseIf (MGRejoinQuest.IsRunning()) ;停学処分を受けている
		RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
		Return ;処理中断
	ElseIf aaaKimachuuCOWTGloPre.GetValueInt() >= 1
		Int iTemp = aaaKimachuuCOWTGloPre.GetValueInt()
		iTemp -= 1
		aaaKimachuuCOWTGloPre.SetValueInt(iTemp)
		RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
		Return ;処理中断
	EndIf

	tuitionFunction()
EndEvent

Function tuitionFunction()
	If Self.GetActorReference().GetItemCount(Gold001) >= aaaKimachuuCOWTGloTui.GetValueInt() ;プレイヤーが学費を払える状態か
		RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
		Self.GetActorReference().RemoveItem(Gold001, aaaKimachuuCOWTGloTui.GetValueInt(), false, None) ;学費を払う
		Int iTemp = aaaKimachuuCOWTGloTui.GetValueInt()
		aaaKimachuuCOWTGloRec.SetValueInt(aaaKimachuuCOWTGloRec.GetValueInt() + iTemp / 2)
		aaaKimachuuCOWTMes02.Show() ;学費を払った通知
	Else ;学費が足りない場合
		RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
		MGRejoinQuest.Start() ;バニラの停学処分開始
		MGRejoinQuest.SetStage(5) ;クエストステージを変更
		aaaKimachuuCOWTMes01.Show() ;学費を払えなかったメッセージ
	EndIf
EndFunction

Function tuitionFunctionD() ;ダイアログから叩く用
	Self.GetActorReference().RemoveItem(Gold001, aaaKimachuuCOWTGloTui.GetValueInt(), false, None) ;学費を払う
	Int iTemp2 = aaaKimachuuCOWTGloTui.GetValueInt()
	aaaKimachuuCOWTGloRec.SetValueInt(aaaKimachuuCOWTGloRec.GetValueInt() + iTemp2 / 2)
EndFunction

Function forceSUGTFunction() ;MCMから叩く用
	UnregisterForUpdateGameTime() ;MCMを閉じた時に一度中断
	RegisterForSingleUpdateGameTime(aaaKimachuuCOWTGloInt.GetValue()) ;次のチェック時間を登録
EndFunction