code:
;EVENT可不可チェック
@WORLD_EVENTABLE315
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:315 && ITEM:82 && FLAG:成長力 > 30
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT315
#DIM CHARA_ID
#DIM LCOUNT

TFLAG:番号 = 315
TFLAG:部位 = 10
CALL RANDOM_SEA_CREATURE_TYPE

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

FOR LCOUNT, 1, CHARANUM
	IF CFLAG:LCOUNT:侵食済
		PRINTFORML %CALLNAME:LCOUNT%被%RANDOM_SEA_CREATURE()%袭击了！
		;TranslatedMark %CALLNAME:LCOUNT%は%RANDOM_SEA_CREATURE()%に襲われた！
		CALL PHYSICAL_DEVELOP(LCOUNT, 30)
		CALL CALC_ECSTASY(LCOUNT, 30)
		CALL ECSTASY(LCOUNT)
		CALL GET_PARASITE(LCOUNT, "海産生物")
		CALL POLLUTED_POSITION_INDEX(LCOUNT, 5)
	ENDIF
NEXT

path: ERB/イベント/全体侵食イベント/WORLD_EVENT315_海産動員.ERB


code:
;EVENT可不可チェック
@WORLD_EVENTABLE321
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用

IF ITEM:321 && FLAG:支配力 + FLAG:精神支配力 > 30 && FLAG:1 * 100 / FLAG:2 > 40
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT321
#DIM LCOUNT

TFLAG:番号 = 321

CALL PRINT_MESSAGE(FLAG:5, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:5))

CALL RANDOM_GET_CAUGHT_WORLD(8)

@WORLD_EVENT321_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT

IF CFLAG:RANDOM_CHARA_ID:侵食済
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 1)
ELSEIF CFLAG:RANDOM_CHARA_ID:異変察知
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 2)
ELSE
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 3)
ENDIF

CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 9, 10)

repo_name: mcstone/syokushuhenth

path: ERB/イベント/全体侵食イベント/WORLD_EVENT321_ノーパン万歳.ERB

license: unknown


code:
;EVENT可不可チェック
@WORLD_EVENTABLE324
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用

IF ITEM:324 && FLAG:支配力 + FLAG:精神支配力 > 30 && FLAG:1 * 100 / FLAG:2 > 40
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT324
#DIM LCOUNT

TFLAG:番号 = 324

CALL PRINT_MESSAGE(FLAG:5, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:5))

CALL RANDOM_GET_CAUGHT_WORLD(8)

@WORLD_EVENT324_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT

IF CFLAG:RANDOM_CHARA_ID:侵食済
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 1)
ELSEIF CFLAG:RANDOM_CHARA_ID:異変察知
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 2)
ELSE
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 3)
ENDIF

CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 9, 10)

path: ERB/イベント/全体侵食イベント/WORLD_EVENT324_全裸の世界.ERB


code:
;EVENT可不可チェック
@WORLD_EVENTABLE325
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用

IF ITEM:325 && FLAG:支配力 + FLAG:精神支配力 > 30 && FLAG:1 * 100 / FLAG:2 > 40
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT325
#DIM LCOUNT

TFLAG:番号 = 325

CALL PRINT_MESSAGE(FLAG:5, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:5))

CALL RANDOM_GET_CAUGHT_WORLD(5)

@WORLD_EVENT325_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT

CALL RANDOM_ERO_BATTLE_TYPE
IF CFLAG:RANDOM_CHARA_ID:侵食済
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 1)
	IF ITEM:128
		CALL CALC_ECSTASY(RANDOM_CHARA_ID, 20)
		CALL ECSTASY(RANDOM_CHARA_ID)
	ENDIF
ELSEIF CFLAG:RANDOM_CHARA_ID:異変察知
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 2)
ELSE
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:(RANDOM_CHARA_ID), "", 3)
ENDIF

CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 9, 10)

path: ERB/イベント/全体侵食イベント/WORLD_EVENT325_エロバトル.ERB


code:
;EVENT可不可チェック
@WORLD_EVENTABLE329
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用

IF ITEM:329
	FOR LCOUNT , 1, 17
		IF GETBIT(FLAG:(50+LCOUNT), 2)
			FLAG:21 = 1
		ENDIF
	NEXT
ENDIF

;イベント実処理
@WORLD_EVENT329
#DIM CHARA_ID
#DIM LCOUNT
#DIM LOCALQUETE,10000
#DIM LOCALIDNUM
#DIM LOCALRESULT

VARSET LOCALQUETE
VARSET LOCALIDNUM

LOCALRESULT = 0

;末路の条件1つ追加ごとに
;LOCALQUETE:LOCALIDNUM = XX
;LOCALIDNUM += 1

TFLAG:番号 = 329

FOR LCOUNT , 1, 17
	IF GETBIT(FLAG:(50+LCOUNT), 2)
		LOCALQUETE:LOCALIDNUM = LCOUNT
		LOCALIDNUM += 1
	ENDIF
NEXT

IF LOCALIDNUM
	LOCALRESULT = LOCALQUETE:(RAND:LOCALIDNUM)
	CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主), POSITION_NAME(LOCALRESULT))
	FOR LCOUNT, 1, CHARANUM
		IF CFLAG:LCOUNT:所属 == LOCALRESULT
			CALL RANDOM_COMPETITION_TYPE
			PRINTFORML %CALLNAME:LCOUNT%将在%RANDOM_COMPETITION()%上出场！
			;TranslatedMark %CALLNAME:LCOUNT%は%RANDOM_COMPETITION()%に出場するようだ！
			CALL MENTAL_DEVELOP(LCOUNT, 20, 20)
			CALL CALC_ECSTASY(LCOUNT, 20)
			CALL ECSTASY(LCOUNT)
			CALL POLLUTED_POSITION_INDEX(LCOUNT, 10)
		ENDIF
	NEXT

ENDIF

path: ERB/イベント/全体侵食イベント/WORLD_EVENT329_エロ運動会.ERB


code:
;EVENT可不可チェック
@WORLD_EVENTABLE363
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用

IF ITEM:360 && ITEM:82 && FLAG:支配力 > 20
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT363
#DIM LCOUNT

TFLAG:番号 = 363
TFLAG:部位 = RAND:16 + RAND:17

CALL PRINT_MESSAGE(FLAG:5, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:5))

FOR LCOUNT, 1, CHARANUM
	IF CFLAG:LCOUNT:侵食済
		PRINTFORML %CALLNAME:LCOUNT%被机械触手袭击了！
		;TranslatedMark %CALLNAME:LCOUNT%は機械触手に襲われた！
		CALL PHYSICAL_DEVELOP(LCOUNT, 45)
		CALL CALC_ECSTASY(LCOUNT, 20)
		CALL ECSTASY(LCOUNT)
		CALL POLLUTED_POSITION_INDEX(LCOUNT, 4)
	ENDIF
NEXT

path: ERB/イベント/全体侵食イベント/WORLD_EVENT363_機械動員.ERB


code:
@WORLD_EVENTABLE364
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:360 && ITEM:83 && FLAG:支配力 + FLAG:戦闘力 > 40
	FLAG:21 = 1
ENDIF

@WORLD_EVENT364
#DIM LCOUNT

TFLAG:番号 = 364
TFLAG:部位 = RAND:16 + RAND:17

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

CALL RANDOM_GET_CAUGHT_WORLD(4 + RAND:6)

@WORLD_EVENT364_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT

CALL CALC_ECSTASY(RANDOM_CHARA_ID, 25)
CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:RANDOM_CHARA_ID, "", 1)
CALL ECSTASY(RANDOM_CHARA_ID)

CALL PHYSICAL_DEVELOP(RANDOM_CHARA_ID, 70)
CFLAG:RANDOM_CHARA_ID:20 = RAND:5 + 2

;侵食前なら【機械】持ち(現状る～こと)のみ侵食される。生身の人妖には侵食しない。
IF CFLAG:RANDOM_CHARA_ID:侵食済 == 0 && EX_POLLUTED(RANDOM_CHARA_ID) && TALENT:RANDOM_CHARA_ID:機械 == 1
	CALL POLLUTED(RANDOM_CHARA_ID)
ENDIF

CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 4)

path: ERB/イベント/全体侵食イベント/WORLD_EVENT364_機械襲撃.ERB


code:
@WORLD_EVENTABLE46
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:46 == 1 && FLAG:支配力 > 30 && FLAG:探索度 > 40 && FLAG:1 * 100 / FLAG:2 > 40
	FLAG:21 = 1
ENDIF

@WORLD_EVENT46
#DIM LCOUNT

TFLAG:番号 = 46

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

FLAG:探索度 -= 10
ITEM:46 = 2


code:
@WORLD_EVENTABLE47
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:46 == 2 && ITEM:59 == 2 && FLAG:支配力 > 30 && FLAG:探索度 > 40 && FLAG:1 * 100 / FLAG:2 > 40
	FLAG:21 = 1
ENDIF

@WORLD_EVENT47
#DIM LCOUNT

TFLAG:番号 = 47

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

FLAG:探索度 /= 2
ITEM:46 = 3

path: ERB/イベント/全体侵食イベント/WORLD_EVENT47_身代わりの噂.ERB


code:
;EVENT可不可チェック
@WORLD_EVENTABLE4
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:4 && ITEM:82 && FLAG:成長力 > 30
	FLAG:21 = 1
ENDIF

;イベント実処理
@WORLD_EVENT4
#DIM CHARA_ID
#DIM LCOUNT

TFLAG:番号 = 4
TFLAG:部位 = 8

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

FOR LCOUNT, 1, CHARANUM
	IF CFLAG:LCOUNT:侵食済
		PRINTFORML %CALLNAME:LCOUNT%被谜之植物袭击了！
		;TranslatedMark %CALLNAME:LCOUNT%は謎の植物に襲われた！
		CALL PHYSICAL_DEVELOP(LCOUNT, 40)
		CALL CALC_ECSTASY(LCOUNT, 20)
		CALL ECSTASY(LCOUNT)
		CALL GET_PARASITE(LCOUNT, "植物")
		CALL POLLUTED_POSITION_INDEX(LCOUNT, 3)
	ENDIF
NEXT


code:
;EVENT可不可チェック
@WORLD_EVENTABLE6
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:6 && ITEM:82 && FLAG:成長力 > 30
	FLAG:21 = 1
ENDIF

;イベント実処理;フェイズの終了処理
@WORLD_EVENT6
#DIM CHARA_ID
#DIM LCOUNT

TFLAG:番号 = 6
TFLAG:部位 = 8
CALL RANDOM_INSECT_TYPE
SETBIT TFLAG:21, 5

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

FOR LCOUNT, 1, CHARANUM
	IF CFLAG:LCOUNT:侵食済
		PRINTFORML %CALLNAME:LCOUNT%被大量的昆虫袭击了！
		;TranslatedMark %CALLNAME:LCOUNT%は大量の虫に襲われた！
		CALL PHYSICAL_DEVELOP(LCOUNT, 40)
		CALL MENTAL_DEVELOP(LCOUNT, 10, 5)
		CALL GET_PARASITE(LCOUNT, "虫")
		CALL POLLUTED_POSITION_INDEX(LCOUNT, 5)
	ENDIF
NEXT


code:
@WORLD_EVENTABLE84
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:84 && FLAG:侵食力 > 30
	FLAG:21 = 1
ENDIF

@WORLD_EVENT84
#DIM LCOUNT

TFLAG:番号 = 84
TFLAG:部位 = 9

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

CALL RANDOM_GET_CAUGHT_WORLD(2 + RAND:2)

@WORLD_EVENT84_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT
SETBIT TFLAG:21, 7

CALL CALC_ECSTASY(RANDOM_CHARA_ID, 25)
CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:RANDOM_CHARA_ID, "", 1)
CALL ECSTASY(RANDOM_CHARA_ID)

CALL PHYSICAL_DEVELOP(RANDOM_CHARA_ID, 15)
CALL MENTAL_DEVELOP(RANDOM_CHARA_ID, 5, 5)
CFLAG:RANDOM_CHARA_ID:20 = RAND:5 + 2

IF CFLAG:RANDOM_CHARA_ID:侵食済 == 0 && EX_POLLUTED(RANDOM_CHARA_ID)
	CALL POLLUTED(RANDOM_CHARA_ID)
ENDIF

CALL GET_PARASITE(RANDOM_CHARA_ID)

path: ERB/イベント/全体侵食イベント/WORLD_EVENT84_壁尻団結成.ERB


code:
@WORLD_EVENTABLE85
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:85 && FLAG:侵食力 > 30 && GET_PENIS(FLAG:初期宿主)
	FLAG:21 = 1
ENDIF

@WORLD_EVENT85
#DIM LCOUNT

TFLAG:番号 = 85
TFLAG:部位 = 4

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

CALL RANDOM_GET_CAUGHT_WORLD_PENIS(2 + RAND:2)

@WORLD_EVENT85_EX(RANDOM_CHARA_ID)
#DIM RANDOM_CHARA_ID
#DIM LCOUNT

CALL CALC_ECSTASY(RANDOM_CHARA_ID, 25)
CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:RANDOM_CHARA_ID, "", 1)
CALL ECSTASY(RANDOM_CHARA_ID)

CALL PHYSICAL_DEVELOP(RANDOM_CHARA_ID, 15)
CALL MENTAL_DEVELOP(RANDOM_CHARA_ID, 5, 5)
CFLAG:RANDOM_CHARA_ID:20 = RAND:5 + 2

IF CFLAG:RANDOM_CHARA_ID:侵食済 == 0 && EX_POLLUTED(RANDOM_CHARA_ID)
	CALL POLLUTED(RANDOM_CHARA_ID)
ENDIF

SELECTCASE TFLAG:3
	CASE 0
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 0)
	CASE 1
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 1)
	CASE 2
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 2)
	CASE 5
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 4)
	CASE 6
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 5)
	CASE 8
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 8)
	CASE 18
		CALL POLLUTED_POSITION_INDEX(RANDOM_CHARA_ID, 7)
ENDSELECT

path: ERB/イベント/全体侵食イベント/WORLD_EVENT85_双成搾精団結成.ERB


code:
@WORLD_EVENTABLE86
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:86 && FLAG:全体支配済
	FLAG:21 = 1
ENDIF

@WORLD_EVENT86
#DIM LCOUNT

TFLAG:番号 = 86

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

CALL RANDOM_GET_CAUGHT_WORLD(1)

@WORLD_EVENT86_EX(CHARA_ID)
#DIM LCOUNT
#DIM CHARA_ID
#DIM RANDOM_CHARA_ID

RANDOM_CHARA_ID = RANDOM_GET_CAUGHT_VICTIM_ID(CHARA_ID)

CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, 1)

FOR LCOUNT, 0, 100
	CALL PHYSICAL_DEVELOP(CHARA_ID, ABL:RANDOM_CHARA_ID:戦闘素質)
	CALL PHYSICAL_DEVELOP(RANDOM_CHARA_ID, ABL:CHARA_ID:戦闘素質)
	IF BASE:CHARA_ID:HP < -2000
		BREAK
	ENDIF
	IF BASE:RANDOM_CHARA_ID:HP < -2000
		BREAK
	ENDIF
NEXT

IF BASE:CHARA_ID:HP > -2000
	CALL PRINT_MESSAGE(CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, 2)
ELSEIF BASE:RANDOM_CHARA_ID:HP > -2000
	CALL PRINT_MESSAGE(RANDOM_CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, 2)
ELSE
	CALL PRINT_MESSAGE(CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, 3)
ENDIF

path: ERB/イベント/全体侵食イベント/WORLD_EVENT86_デスマッチ.ERB


code:
@WORLD_EVENTABLE87
#DIM CHARA_ID
#DIM LCOUNT,3	;ループ用
IF ITEM:87 && FLAG:全体支配済
	FLAG:21 = 1
ENDIF

@WORLD_EVENT87
#DIM LCOUNT

TFLAG:番号 = 87

CALL PRINT_MESSAGE(FLAG:初期宿主, "全体イベント", TFLAG:番号, CALLNAME:(FLAG:初期宿主))

CALL RANDOM_GET_CAUGHT_WORLD(1)

@WORLD_EVENT87_EX(CHARA_ID)
#DIM LCOUNT
#DIM CHARA_ID

CALL PRINT_MESSAGE(CHARA_ID, "全体イベント", TFLAG:番号, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主), 1)

CALL SURRENDER(CHARA_ID, 1)

FLAG:反乱度 -= 5

path: ERB/イベント/全体侵食イベント/WORLD_EVENT87_公開処刑.ERB


code:
;超乳、超々乳、接地乳房の段階数を設定
;各バストサイズの段階数を変えたい時はここの値を変更すると良い
;例：[超乳]を+99まで付く様に設定したい → #DIM CONST PLUS_HB1を100にする

#DIM CONST PLUS_HB1 = 5   	;超乳
#DIM CONST PLUS_HB2 = 5   	;超々乳
#DIM CONST PLUS_HB3 = 1   	;接地乳房

;超乳以上の段階数の合計
#DIM CONST PLUS_HB_MAX = PLUS_HB1 + PLUS_HB2 + PLUS_HB3


code:
;■■■■■■■■■■■■■■■■■■■■■■■■■
;
;バストサイズに関する処理
;
;■■■■■■■■■■■■■■■■■■■■■■■■■
;
;@ADD_BUST(ARG:0,ARG:1,ARG:2,ARG:3)			バストサイズ変更
;@SET_BUST(ARG:0,ARG:1,ARG:2,ARG:3,ARG:4)	胸の素質変更
;@GET_BUST(ARG:0)							現在のバストサイズを返す式中関数
;@GET_RAWBUST(ARG:0)						現在のRAWバストサイズ(超乳以上の+数を含めた値)を返す式中関数
;@GET_RAW_PLUSBUST(ARG:0)					引数のRAWバストサイズから通常バストサイズと+数を返す

;=================================================
;バストサイズ変更
;ARG:0 対象キャラID
;ARG:1 何段階変化させるか(正数:バストアップ　負数:バストダウン)
;NOTICE 地の文表示
;RESULT:0 変更後のバストサイズ（-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3:超乳　4:超々乳　5:接地乳房）
;LOCAL:0 バスト変更前のサイズ
;=================================================
@ADD_BUST(ARG:0,ARG:1,NOTICE)
#DIMS NOTICE
	;エラー予防
	SIF ARG:0 <= 0 || ARG:0 >= CHARANUM
		RETURN 0
	;男の娘は成長しないコンフィグだと戻る
	IF FLAG:521 == 3 && TALENT:(ARG:0):122 > 0 && ARG:1 > 0
		RETURN
	ENDIF

	LOCAL:0 = GET_BUST(ARG:0)

	CALL SET_BUST(ARG:0,LOCAL:0,ARG:1,NOTICE)

RETURN RESULT
;=================================================
;バストサイズ設定
;ARG:0 対象キャラID
;ARG:1 変更前のバストサイズ(-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3:超乳　4:超々乳　5:接地乳房)
;ARG:2 何段階変化させるか(正数:バストアップ　負数:バストダウン)
;NOTICE 地の文表示

;RESULT:0 変更後のバストサイズ（-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3:超乳　4:超々乳　5:接地乳房）
;=================================================
@SET_BUST(ARG:0,ARG:1, ARG:2, NOTICE)
#DIM 超乳フラグ
#DIM RAW変更前
#DIM RAW変更後
#DIM ＋数
#DIMS NOTICE

	;エラー予防
	SIF ARG:0 <= 0 || ARG:0 >= CHARANUM
		RETURN 0

	超乳フラグ = 0

	;変更後
	LOCAL:1 = LIMIT(ARG:1 + ARG:2, -2, 5)

	;バストサイズの変更前または変更後が超乳以上
	IF ARG:1 >= 3 || LOCAL:1 >= 3
		超乳フラグ = 1
		;変更前のRAWバストサイズを取得
		RAW変更前 = GET_RAWBUST(ARG:0)
		RAW変更後 = LIMIT(RAW変更前 + ARG:2,-2, 2 + PLUS_HB_MAX)
		;変更後のバストサイズと＋数を取得
		CALL GET_RAW_PLUSBUST(RAW変更後)
		LOCAL:1 = RESULT:0
		＋数 = RESULT:1
	ENDIF
;爆乳までの変更で変更前後に差がある or 変更前後のどちらかが超乳以上で、RAWバストサイズが変動している
IF (ARG:1 != LOCAL:1 && 超乳フラグ == 0) || (超乳フラグ == 1 && RAW変更前 != RAW変更後)
	SELECTCASE LOCAL:1
		CASE IS <= -2
			;絶壁
			TALENT:(ARG:0):絶壁 = 1
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE -1
			;貧乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 1
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE 0
			;普乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE 1
			;巨乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 1
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE 2
			;爆乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 1
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE 3
			;超乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = ＋数
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = 0
		CASE 4
			;超々乳
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = ＋数
			TALENT:(ARG:0):接地乳房 = 0
		CASE 5
			;接地乳房
			TALENT:(ARG:0):絶壁 = 0
			TALENT:(ARG:0):貧乳 = 0
			TALENT:(ARG:0):巨乳 = 0
			TALENT:(ARG:0):爆乳 = 0
			TALENT:(ARG:0):超乳 = 0
			TALENT:(ARG:0):超々乳 = 0
			TALENT:(ARG:0):接地乳房 = ＋数
	ENDSELECT
	SIF NOTICE == "メッセージ表示"
		PRINTFORML %CALLNAME:(ARG:0)%的胸部现在的尺寸是%SHOW_BUSTSIZE(LOCAL:1)%！
		;TranslatedMark %CALLNAME:(ARG:0)%は%SHOW_BUSTSIZE(LOCAL:1)%になった！
	; バストサイズ変更時、母乳値を初期化
	; 超乳化処理中にバストサイズが変化した場合、メッセージ表示がおかしくなるのを防ぐ為
	CFLAG:(ARG:0):506 = 0
ENDIF

RETURN LOCAL:1
;=================================================
;バストサイズ取得　※式中関数
;ARG:0 対象キャラID
;RESULT:0 バストサイズ（-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3:超乳　4:超々乳　5:接地乳房）
;=================================================
@GET_BUST(ARG:0)
#FUNCTION

	;エラー予防
	SIF ARG:0 <= 0 || ARG:0 >= CHARANUM
		RETURNF 0

	IF TALENT:(ARG:0):絶壁
		;変な値がセットされていた場合を想定
		TALENT:(ARG:0):絶壁 = 1
		TALENT:(ARG:0):貧乳 = 0
		TALENT:(ARG:0):巨乳 = 0
		TALENT:(ARG:0):爆乳 = 0
		TALENT:(ARG:0):超乳 = 0
		TALENT:(ARG:0):超々乳 = 0
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF -2
	ELSEIF TALENT:(ARG:0):貧乳
		TALENT:(ARG:0):貧乳 = 1
		TALENT:(ARG:0):巨乳 = 0
		TALENT:(ARG:0):爆乳 = 0
		TALENT:(ARG:0):超乳 = 0
		TALENT:(ARG:0):超々乳 = 0
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF -1
	ELSEIF TALENT:(ARG:0):巨乳
		TALENT:(ARG:0):巨乳 = 1
		TALENT:(ARG:0):爆乳 = 0
		TALENT:(ARG:0):超乳 = 0
		TALENT:(ARG:0):超々乳 = 0
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF 1
	ELSEIF TALENT:(ARG:0):爆乳
		TALENT:(ARG:0):爆乳 = 1
		TALENT:(ARG:0):超乳 = 0
		TALENT:(ARG:0):超々乳 = 0
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF 2
	ELSEIF TALENT:(ARG:0):超乳
		TALENT:(ARG:0):超々乳 = 0
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF 3
	ELSEIF TALENT:(ARG:0):超々乳
		TALENT:(ARG:0):接地乳房 = 0
		RETURNF 4
	ELSEIF TALENT:(ARG:0):接地乳房
		RETURNF 5
	ELSE
		RETURNF 0
	ENDIF

;=================================================
;RAWバストサイズ取得(超乳以降の+数を含めた値を返す)　※式中関数
;ARG:0 対象キャラID
;RESULT:0 バストサイズ（-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3～:超乳以上）
;	※3以上の値はBUST_RANGE.ERHで定義した値により変動する
;LOCAL:1 段階数(超乳)
;LOCAL:2 段階数(超乳+超々乳)
;LOCAL:3 段階数(超乳+超々乳+接地乳房)
;=================================================
@GET_RAWBUST(ARG:0)
#FUNCTION
LOCAL:1 = PLUS_HB1
LOCAL:2 = LOCAL:1 + PLUS_HB2
LOCAL:3 = LOCAL:2 + PLUS_HB3

	;エラー予防
	SIF ARG:0 <= 0 || ARG:0 >= CHARANUM
		RETURNF 0

	IF TALENT:(ARG:0):絶壁
		RETURNF -2
	ELSEIF TALENT:(ARG:0):貧乳
		RETURNF -1
	ELSEIF TALENT:(ARG:0):巨乳
		RETURNF 1
	ELSEIF TALENT:(ARG:0):爆乳
		RETURNF 2
	ELSEIF TALENT:(ARG:0):超乳
		RETURNF 2 + TALENT:(ARG:0):超乳
	ELSEIF TALENT:(ARG:0):超々乳
		RETURNF 2 + LOCAL:1 + TALENT:(ARG:0):超々乳
	ELSEIF TALENT:(ARG:0):接地乳房
		RETURNF 2 + LOCAL:2 + TALENT:(ARG:0):接地乳房
	ELSE
		RETURNF 0
	ENDIF

;=================================================
;RAW_PLUSバストサイズ取得　超乳以降の通常バストサイズと余りを返す
;ARG:0 バストサイズ(+数を含めた値)
;RESULT:0 バストサイズ（-2:絶壁　-1:貧乳　0:普乳　1:巨乳　2:爆乳　3:超乳　4:超々乳　5:接地乳房）
;RESULT:1 超乳以降の+数
;LOCAL:0 RAWバストサイズ(爆乳を0として数えたもの)
;LOCAL:1 段階数(超乳)
;LOCAL:2 段階数(超乳+超々乳)
;LOCAL:3 段階数(超乳+超々乳+接地乳房)
;=================================================
@GET_RAW_PLUSBUST(ARG:0)
;爆乳を0として数える
LOCAL:0 = ARG:0 - 2
LOCAL:1 = PLUS_HB1
LOCAL:2 = LOCAL:1 + PLUS_HB2
LOCAL:3 = LOCAL:2 + PLUS_HB3

SELECTCASE LOCAL:0
;爆乳以下
CASE IS <= 0
	RETURN ARG:0
;超乳
CASE 1 to LOCAL:1
	RETURN 3, (LOCAL:0) % (PLUS_HB1 + 1)
;超々乳
CASE LOCAL:1 + 1 to LOCAL:2
	RETURN 4, (LOCAL:0 - PLUS_HB1) % (PLUS_HB2 + 1)
;接地乳房
CASE LOCAL:2 + 1 to PLUS_HB_MAX
	RETURN 5, (LOCAL:0 - PLUS_HB1 - PLUS_HB2) % (PLUS_HB3 + 1)
CASEELSE
	RETURN 0
ENDSELECT

;=================================================

@SHOW_BUSTSIZE(SIZE)
#FUNCTIONS
#DIM SIZE

SELECTCASE SIZE
	CASE -2
		RETURNF "絶壁"
	CASE -1
		RETURNF "貧乳"
	CASE 1
		RETURNF "巨乳"
	CASE 2
		RETURNF "爆乳"
	CASE 3
		RETURNF "超乳"
	CASE 4
		RETURNF "超々乳"
	CASE 5
		RETURNF "接地乳房"
	CASEELSE
		RETURNF "普乳"
ENDSELECT

path: ERB/エロ関数フォルダ/BUST_バストサイズ処理.ERB


code:
;感度などによるEP倍率を計算
;CHARA_ID	対象キャラ
;ARG:1	属性（1:A 2:B 4:C 8:V 16:M）でビット演算
;ARG:2	ベースとなる値
@CALC_SENSITIVITY(CHARA_ID, PARTS, ARG:2)
#FUNCTION
#DIM CHARA_ID
#DIM PARTS

;LOCAL
;1	計算結果
;2	倍率
;3	TEMP

LOCAL:2 = 100
;経験補正

IF PARTS & 1
	;属性A
	LOCAL:3 = 6
	IF ABL:(CHARA_ID):(LOCAL:3) == 0
		LOCAL:2 += 0
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 10
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 25
	ELSE
		LOCAL:2 += 50
	ENDIF

	LOCAL:3 = 101
	IF TALENT:(CHARA_ID):(LOCAL:3) == -1
		LOCAL:2 -= 10
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 15
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 30
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) >= 3
		LOCAL:2 += 45
	ELSE
		LOCAL:2 += 0
	ENDIF

	;淫乱系素質補正
	LOCAL:3 = 75
	IF TALENT:(CHARA_ID):(LOCAL:3)
		LOCAL:2 += 40
	ELSE
		LOCAL:2 += 0
	ENDIF
ENDIF
IF PARTS & 2
	;複合属性B
	LOCAL:3 = 7
	IF ABL:(CHARA_ID):(LOCAL:3) == 0
		LOCAL:2 += 0
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 10
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 25
	ELSE
		LOCAL:2 += 50
	ENDIF
	;母乳体質なら噴乳中毒で快感ダメージ増加
	IF TALENT:(CHARA_ID):130 && ABL:(CHARA_ID):16
		IF ABL:(CHARA_ID):16 == 3
			LOCAL:2 = LOCAL:2 * 15 / 10
		ELSEIF ABL:(CHARA_ID):16 == 2
			LOCAL:2 = LOCAL:2 * 13 / 10
		ELSEIF ABL:(CHARA_ID):16 == 1
			LOCAL:2 = LOCAL:2 * 11 / 10
		ENDIF
		;母乳粘度によりダメージ増加
		SELECTCASE TALENT:(CHARA_ID):220
			CASE 1
			CASE 2
				LOCAL:2 = LOCAL:2 * 11 / 10
			CASE 3
				LOCAL:2 = LOCAL:2 * 12 / 10
			CASE 4
				LOCAL:2 = LOCAL:2 * 13 / 10
			CASE 5
				LOCAL:2 = LOCAL:2 * 14 / 10
			CASE IS >= 6
				LOCAL:2 = LOCAL:2 * 15 / 10
			CASEELSE
		ENDSELECT
	ENDIF
	;B属性メインの場合、乳サイズの影響を受ける
	SELECTCASE GET_BUST(CHARA_ID)
		CASE IS <= -2
			LOCAL:2 = LOCAL:2 * 12 / 10
		CASE -1
			LOCAL:2 = LOCAL:2 * 11 / 10
		CASE 0
		CASE 1
			LOCAL:2 = LOCAL:2 * 8 / 10
		CASE 2
			LOCAL:2 = LOCAL:2 * 7 / 10
		CASE IS >= 3
			LOCAL:2 = LOCAL:2 * 6 / 10
	ENDSELECT
	LOCAL:3 = 102
	IF TALENT:(CHARA_ID):(LOCAL:3) == -1
		LOCAL:2 -= 10
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 15
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 30
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) >= 3
		LOCAL:2 += 45
	ELSE
		LOCAL:2 += 0
	ENDIF

	;淫乱系素質補正
	LOCAL:3 = 76
	IF TALENT:(CHARA_ID):(LOCAL:3)
		LOCAL:2 += 40
	ELSE
		LOCAL:2 += 0
	ENDIF

ENDIF
IF PARTS & 4
	;複合属性C
	LOCAL:3 = 8
	IF ABL:(CHARA_ID):(LOCAL:3) == 0
		LOCAL:2 += 0
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 10
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 25
	ELSE
		LOCAL:2 += 50
	ENDIF

	LOCAL:3 = 103
	IF TALENT:(CHARA_ID):(LOCAL:3) == -1
		LOCAL:2 -= 10
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 15
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 30
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) >= 3
		LOCAL:2 += 45
	ELSE
		LOCAL:2 += 0
	ENDIF

	;淫乱系素質補正
	LOCAL:3 = 77
	IF TALENT:(CHARA_ID):(LOCAL:3)
		LOCAL:2 += 40
	ELSE
		LOCAL:2 += 0
	ENDIF

ENDIF
IF PARTS & 8
	;複合属性V
	LOCAL:3 = 9
	IF ABL:(CHARA_ID):(LOCAL:3) == 0
		LOCAL:2 += 0
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 10
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 25
	ELSE
		LOCAL:2 += 50
	ENDIF

	LOCAL:3 = 104
	IF TALENT:(CHARA_ID):(LOCAL:3) == -1
		LOCAL:2 -= 10
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 15
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 30
	;こっそり追加
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) >= 3
		LOCAL:2 += 45
	ELSE
		LOCAL:2 += 0
	ENDIF

	;淫乱系素質補正
	LOCAL:3 = 78
	IF TALENT:(CHARA_ID):(LOCAL:3)
		LOCAL:2 += 40
	ELSE
		LOCAL:2 += 0
	ENDIF
ENDIF
IF PARTS & 16
	;複合属性M
	LOCAL:3 = 15
	IF ABL:(CHARA_ID):(LOCAL:3) == 0
		LOCAL:2 += 0
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 10
	ELSEIF ABL:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 25
	ELSE
		LOCAL:2 += 50
	ENDIF

	;ネコ舌で補正
	IF TALENT:(CHARA_ID):54
		LOCAL:2 = LOCAL:2 * 12 / 10
	ENDIF

	LOCAL:3 = 106
	IF TALENT:(CHARA_ID):(LOCAL:3) == -1
		LOCAL:2 -= 10
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 1
		LOCAL:2 += 15
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) == 2
		LOCAL:2 += 30
	ELSEIF TALENT:(CHARA_ID):(LOCAL:3) >= 3
		LOCAL:2 += 45
	ELSE
		LOCAL:2 += 0
	ENDIF

	;淫乱系素質補正
	LOCAL:3 = 79
	IF TALENT:(CHARA_ID):(LOCAL:3)
		LOCAL:2 += 40
	ELSE
		LOCAL:2 += 0
	ENDIF
ENDIF

;種族系素質補正(とりあえず機械)
LOCAL:3 = 250
IF TALENT:(CHARA_ID):(LOCAL:3)
	LOCAL:2 -= 10
ELSE
	LOCAL:2 += 0
ENDIF

IF ITEM:334 && GETBIT(TFLAG:21, 7) && CFLAG:CHARA_ID:侵食済
	IF FLAG:難易度 > 0
		LOCAL:2 += 1000
	ELSE
		LOCAL:2 += 100000
	ENDIF
ENDIF
IF ITEM:336 && GETBIT(TFLAG:21, 2) && CFLAG:CHARA_ID:侵食済
	IF FLAG:難易度 > 0
		LOCAL:2 += 1000
	ELSE
		LOCAL:2 += 100000
	ENDIF
ENDIF

LOCAL:1 = ARG:2 * LOCAL:2 / 100

;バグ対策
IF LOCAL:1 <= 0
	LOCAL:1 = 1
ENDIF

RETURNF LOCAL:1


code:
;=================================================
;ペニス取得　※式中関数
;ARG:0 対象キャラID
;RESULT:0 ペニス（0:なし　1:状態異常のふたなり　2:素質のふたなり　4:男）
;ビット演算で組み合わせるかもしれないので0,1,2,4,8と埋めていく
;=================================================
@GET_PENIS(ARG:0)
#FUNCTION
#DIM BIT_COUNT

	VARSET BIT_COUNT

	;エラー予防
	SIF ARG:0 <= 0 || ARG:0 >= CHARANUM
		RETURNF 0

	; 寄生ふたなり
	SIF CFLAG:(ARG:0):42 > 0
		BIT_COUNT += 1

	; 素質ふたなり
	SIF TALENT:(ARG:0):ふたなり
		BIT_COUNT += 2

	; 男
	SIF TALENT:(ARG:0):122
		BIT_COUNT += 4

RETURNF BIT_COUNT

;=================================================


code:
;絶頂ダメージ計算処理
;ダメージ量を口上に渡すためダメージ量のみ計算
@CALC_ECSTASY(CHARA_ID, ECS_POWER)
#DIM LCOUNT	;ループ用
#DIM CHARA_ID
#DIM ECS_DAMAGE
#DIM ECS_POWER
#DIM ECS_DOMINATE

;PALAMSPREAD：フック用
SIF PALAMSPREAD:CHARA_ID
	CALL PALAMSPREAD_ENTRY(CHARA_ID)

ECS_DAMAGE = 0

ECS_DOMINATE = FLAG:支配力 * 3 + FLAG:残り成長点

;ダメージは支配力のRANDを使って幅を持たせる
;POWERは5で弱い、20で普通、100だと最高峰、くらい

;能力や素質で補正
ECS_DAMAGE = CALC_SENSITIVITY(CHARA_ID, TFLAG:2, ECS_POWER)

ECS_DAMAGE = MAX(ECS_DAMAGE * (RAND:(ECS_DOMINATE) + RAND:(ECS_DOMINATE) - RAND:(ECS_DOMINATE)) , 500 + RAND:3000)

CFLAG:CHARA_ID:60 = ECS_DAMAGE

;絶頂処理
@ECSTASY(CHARA_ID)
#DIM LCOUNT	;ループ用
#DIM CHARA_ID
#DIM ECS_DAMAGE
#DIM ECS_POWER
#DIM ECS_DOMINATE

ECS_DAMAGE = CFLAG:CHARA_ID:60

BASE:CHARA_ID:EP = BASE:CHARA_ID:EP - ECS_DAMAGE

IF FLAG:501 == 0
	PRINTFORML %CALLNAME:CHARA_ID%收到了{ECS_DAMAGE}点EP伤害！
	;TranslatedMark %CALLNAME:CHARA_ID%は{ECS_DAMAGE}のEPダメージを受けた！
	;ログに改行挟む用のフラグ、@END_PHASE内で使用
	MESSAGE_DISPLAY_FLAG = 1
ENDIF

;各種経験付与
IF GETBIT(TFLAG:2,0)
	CALL ADD_ABL_EXP(6, CHARA_ID, ECS_DAMAGE)
ENDIF
IF GETBIT(TFLAG:2,1)
	CALL ADD_ABL_EXP(7, CHARA_ID, ECS_DAMAGE)
ENDIF
IF GETBIT(TFLAG:2,2)
	CALL ADD_ABL_EXP(8, CHARA_ID, ECS_DAMAGE)
ENDIF
IF GETBIT(TFLAG:2,2) && GET_PENIS(CHARA_ID)
	CALL ADD_ABL_EXP(13, CHARA_ID, ECS_DAMAGE / 1000)
ENDIF

IF GETBIT(TFLAG:2,3)
	CALL ADD_ABL_EXP(9, CHARA_ID, ECS_DAMAGE)
ENDIF
IF GETBIT(TFLAG:2,4)
	CALL ADD_ABL_EXP(10, CHARA_ID, ECS_DAMAGE)
ENDIF

;EPが減り過ぎたらプライドと正気度が吹き飛ぶ
;絶頂が強すぎるとどんどん吹き飛ぶ

IF BASE:CHARA_ID:EP < 0
	IF ITEM:114 && ITEM:115
		PRINTFORM 就这样从股间喷出了大量淫液
		;TranslatedMark 股間からおしっこと潮をまき散らしながら
		CALL PP_DAMAGE(CHARA_ID, 5)
		EXP:CHARA_ID:21 ++
	ELSEIF ITEM:115
		PRINTFORM 迎来了盛大的潮吹
		;TranslatedMark 盛大に潮を吹きながら
	ELSEIF ITEM:114
		PRINTFORM 伴随着股间喷洒而出的尿液
		;TranslatedMark 股間からおしっこを漏らしながら
		CALL PP_DAMAGE(CHARA_ID, 5)
		EXP:CHARA_ID:21 ++
	ENDIF
	PRINTFORML %CALLNAME:CHARA_ID%激烈地绝顶了！
	;TranslatedMark %CALLNAME:CHARA_ID%は絶頂した！
	EXP:CHARA_ID:20 ++
	FOR LCOUNT, 0, 1000
		BASE:CHARA_ID:EP = MIN(BASE:CHARA_ID:EP + MAXBASE:CHARA_ID:EP, MAXBASE:CHARA_ID:EP)
		CALL PP_DAMAGE(CHARA_ID, 10 - (TALENT:CHARA_ID:抑圧 * 3))
		CALL SP_DAMAGE(CHARA_ID, 3 + RAND:3)
		CALL ADD_TP(CHARA_ID, 3)
		IF BASE:CHARA_ID:EP > 0 || BASE:CHARA_ID:PP < 0 || BASE:CHARA_ID:SP < 0
			BREAK
		ENDIF
	NEXT
	IF CFLAG:CHARA_ID:触手服
		CALL POLLUTED_POSITION_INDEX(CHARA_ID, 0)
	ENDIF
	IF CFLAG:CHARA_ID:催眠
		CALL POLLUTED_POSITION_INDEX(CHARA_ID, 9)
	ENDIF
	IF TALENT:CHARA_ID:ふたなり && GETBIT(TFLAG:部位, 2)
		CALL POLLUTED_POSITION_INDEX(CHARA_ID, 12)
	ENDIF
ENDIF

;屈服には両方のダメージ、支配には片方だけのダメージ
IF BASE:CHARA_ID:PP <= -100 && BASE:CHARA_ID:SP <= -100
	CALL SURRENDER(CHARA_ID, 6)
ELSEIF BASE:CHARA_ID:PP <= 0 || BASE:CHARA_ID:SP <= 0
	CALL DOMINATE(CHARA_ID, 6)
ENDIF
BASE:CHARA_ID:EP = MAX(BASE:CHARA_ID:EP , 0)

;PALAMSPREAD：フック用
SIF PALAMSPREAD:CHARA_ID
	CALL PALAMSPREAD_ACTION("ECSTASY", CHARA_ID)


code:
;発情周期チェック
;ARG:0	対象キャラ
@ESTRUS_CYCLE(ARG:0)
;LOCAL
;0	LOOP
;1	月経周期何日目か
;月経周期は面倒なので30日計算
;12～14が排卵直前なので一番危ない
;15～17が排卵日
;28～2が月経
;
;妊娠率は返す数値%なので射精量以下の確率に確定

;周期の30で割ったあまりから月経日を引くと最後の月経から何日目かが出る
;30日未満の対策に30を足してやって0～30で判別

LOCAL:1 = ESTRUS_CYCLE_DAY(ARG:0)

	IF TALENT:(ARG:0):137 == -1 || TALENT:(ARG:0):幼稚
		SELECTCASE LOCAL:1
			CASE 0 TO 29
				RETURN 3
		ENDSELECT
	ELSEIF TALENT:(ARG:0):137 == 1
		SELECTCASE LOCAL:1
			CASE 0 TO 2
				RETURN 15
			CASE 3 TO 6
				RETURN 50
			CASE 7 TO 10
				RETURN 70
			CASE 11 TO 14
				RETURN 150
			CASE 15 TO 17
				RETURN 100
			CASE 18 TO 21
				RETURN 60
			CASE 22 TO 24
				RETURN 60
			CASE 25 TO 27
				RETURN 40
			CASE 28 TO 29
				RETURN 15
		ENDSELECT
	ELSEIF TALENT:(ARG:0):137 == 2
		SELECTCASE LOCAL:1
			CASE 0 TO 2
				RETURN 15
			CASE 3 TO 5
				RETURN 50
			CASE 6 TO 9
				RETURN 70
			CASE 10 TO 14
				RETURN 150
			CASE 15 TO 18
				RETURN 100
			CASE 19 TO 22
				RETURN 60
			CASE 23 TO 26
				RETURN 60
			CASE 27 TO 29
				RETURN 40
		ENDSELECT
	ELSEIF TALENT:(ARG:0):137 == 3
		SELECTCASE LOCAL:1
			CASE 0 TO 29
				RETURN 150
		ENDSELECT
	ELSE
		SELECTCASE LOCAL:1
			CASE 0 TO 3
				RETURN 15
			CASE 4 TO 7
				RETURN 50
			CASE 8 TO 11
				RETURN 70
			CASE 12 TO 14
				RETURN 150
			CASE 15 TO 17
				RETURN 100
			CASE 18 TO 20
				RETURN 60
			CASE 21 TO 23
				RETURN 60
			CASE 24 TO 26
				RETURN 40
			CASE 27 TO 29
				RETURN 15
		ENDSELECT
ENDIF

@ESTRUS_CYCLE_DAY(ARG:0)
#FUNCTION
#DIM CYCLE_DAY

CYCLE_DAY = (DAY % 30) - CFLAG:(ARG:0):生理周期
IF CYCLE_DAY < 0
	CYCLE_DAY += 30
ENDIF

RETURNF CYCLE_DAY


code:
;母乳体質化
;母乳限界にそろえる、または一時的な増加を元に戻す
@MILK_COME(CHARA_ID, ARG:1)
;ARG:1	母乳体質増減値
#DIM CHARA_ID

IF ITEM:212 == 0
	RETURN
ENDIF
IF ITEM:220 == 0 && TALENT:CHARA_ID:母乳体質 > 3
	RETURN
ENDIF
SIF INRANGE(TALENT:CHARA_ID:母乳体質, 1, 5)
	PRINTFORML %CALLNAME:CHARA_ID%的母乳分泌量\@ ITEM:220? 大幅度 # \@增长了
	;TranslatedMark %CALLNAME:CHARA_ID%の母乳の分泌量が\@ ITEM:220? 大きく# \@増えた

TALENT:CHARA_ID:母乳体質 += ARG:1
TALENT:CHARA_ID:母乳体質 = LIMIT(TALENT:CHARA_ID:母乳体質, 0, 6)

;母乳粘度
;ARG:0	対象キャラ
;ARG:1	母乳粘度変更量
@MILK_VISCOSITY(CHARA_ID, ARG:1)
#DIM CHARA_ID

IF ITEM:217 == 0
	RETURN
ENDIF

TALENT:CHARA_ID:母乳粘度 += ARG:1
TALENT:CHARA_ID:母乳粘度 = LIMIT(TALENT:CHARA_ID:母乳粘度, 0, 6)


code:
@CHECK_STATUS_CARRIER
#DIM PAGE = 0
#DIM LCOUNT
#DIM SELECT_CHARA

$INPUT_LOOP
DRAWLINE
PRINTFORML 想要查看哪个角色的状态？
;TranslatedMark どのキャラの状態を見ますか？
DRAWLINE

;全体表示
FOR LCOUNT, (11 + (30 * PAGE)), (41 + (30 * PAGE))
	SIF (LCOUNT % 3 == 2) && (LCOUNT != (11 + (30 * PAGE)))
		PRINTL

	;表示が終わったら終了
	IF LCOUNT > (FLAG:キャラ人数 + 10)
		PRINTC
		CONTINUE
	ENDIF
	IF CFLAG:(LCOUNT - 10):屈服済
		SETCOLOR 0x70FF70
	ELSEIF CFLAG:(LCOUNT - 10):支配済
		SETCOLOR 0x2070FF
	ELSEIF CFLAG:(LCOUNT - 10):侵食済
		SETCOLOR 0xF07090
	ELSEIF TALENT:(LCOUNT - 10):犠牲者
		SETCOLOR 0x444444
	ENDIF

	PRINTFORMLC [{LCOUNT,3}] %CSVNAME(NO:(LCOUNT - 10), 0),16,LEFT%
	RESETCOLOR
NEXT

PRINTL
DRAWLINE
PRINTLC [7] 上一页
;TranslatedMark [7] 前のページ
PRINTFORMLC             Page({PAGE + 1}/{(FLAG:キャラ人数 - 1)/30 + 1})
PRINTC [9] 下一页
;TranslatedMark [9] 次のページ
PRINTL
PRINTL [0] 退出
;TranslatedMark [0] 戻る

INPUT

IF RESULT == 0
	RETURN

;前ページへ
ELSEIF RESULT == 7
	PAGE -= 1
	SIF PAGE < 0
		PAGE = (FLAG:2 - 1) / 30
	RESTART

;次ページへ
ELSEIF RESULT == 9
	PAGE += 1
	SIF PAGE > ((FLAG:2 - 1) / 30)
		PAGE = 0
	RESTART

;直接指定
ELSEIF RESULT >= 11 && RESULT <= (FLAG:キャラ人数 + 10)
	CALL CHECK_STATUS(RESULT - 10)
	GOTO INPUT_LOOP
ENDIF

REUSELASTLINE 入力値が不正です。再入力してください
GOTO INPUT_LOOP


code:
@CHECK_TENTACLE_STATUS
#DIM LCOUNT
#DIM ITEM_NUMBER
#DIM SELECT_ITEM
#DIM LINE

VARSET SELECT_ITEM
LINE = LINECOUNT

$INPUT_LOOP
VARSET ITEM_NUMBER
CLEARLINE LINECOUNT - LINE

DRAWLINE
PRINTFORML 你目前所持有的能力为
;TranslatedMark 現在の所持している能力です
DRAWLINE

;全体表示
FOR LCOUNT, 1, 500
	IF ITEM:LCOUNT
		PRINTFORM [{LCOUNT,3}] %ITEMNAME:(LCOUNT),16,LEFT%
		ITEM_NUMBER ++
	ENDIF
	IF (ITEM_NUMBER % 5) == 4
		PRINTL
		ITEM_NUMBER ++
	ENDIF
NEXT

IF SELECT_ITEM
	CALL CHECK_TENTACLE_ITEM_WIKI(SELECT_ITEM)
ENDIF

PRINTL
PRINTFORML 少女出产回数：{FLAG:出産繁殖数} 少女寄生回数：{FLAG:寄生繁殖数}
;TranslatedMark 少女に出産させた回数：{FLAG:出産繁殖数} 少女に寄生させた回数：{FLAG:寄生繁殖数}
PRINTL [1000] 查看傀儡
;TranslatedMark [1000] 傀儡を見る
PRINTL [0] 离开
;TranslatedMark [0] 戻る

INPUT

IF RESULT == 0
	RETURN
ELSEIF RESULT == 1000
	CALL CHECK_ENPLOYEE
	GOTO INPUT_LOOP
ELSEIF ITEM:RESULT
	SELECT_ITEM = RESULT
	GOTO INPUT_LOOP
ENDIF

REUSELASTLINE 入力値が不正です。再入力してください
GOTO INPUT_LOOP

@CHECK_TENTACLE_ITEM_WIKI(SELECT_ITEM)
#DIM SELECT_ITEM

PRINTFORML
PRINTFORML
PRINTFORML {SELECT_ITEM,3} %ITEMNAME:(SELECT_ITEM),16,LEFT%
CALL SHOW_ITEM_EXPLAIN_WIKI(ITEMNAME:(SELECT_ITEM))
CALL TENTACLE_SKILL(SELECT_ITEM)
IF DA:SELECT_ITEM:10
	PRINTFORM 侵蚀力増加量 {DA:SELECT_ITEM:10}
	;TranslatedMark 侵食力増加量 {DA:SELECT_ITEM:10}
ENDIF
IF DA:SELECT_ITEM:11
	PRINTFORM 支配力増加量 {DA:SELECT_ITEM:11}
ENDIF
IF DA:SELECT_ITEM:12
	PRINTFORM 成长力増加量 {DA:SELECT_ITEM:12}
	;TranslatedMark 成長力増加量 {DA:SELECT_ITEM:12}
ENDIF
IF DA:SELECT_ITEM:13
	PRINTFORM 战斗力増加量 {DA:SELECT_ITEM:13}
	;TranslatedMark 戦闘力増加量 {DA:SELECT_ITEM:13}
ENDIF
PRINTL
IF DA:SELECT_ITEM:14
	PRINTFORM 异变隐藏力増加量 {DA:SELECT_ITEM:14}
	;TranslatedMark 異変隠蔽力増加量 {DA:SELECT_ITEM:14}
ENDIF
IF DA:SELECT_ITEM:15
	PRINTFORM 元凶隐藏力増加量 {DA:SELECT_ITEM:15}
	;TranslatedMark 元凶隠蔽力増加量 {DA:SELECT_ITEM:15}
ENDIF
IF DA:SELECT_ITEM:16
	PRINTFORM 肉体支配力増加量 {DA:SELECT_ITEM:16}
	;TranslatedMark 肉体支配力増加量 {DA:SELECT_ITEM:16}
ENDIF
IF DA:SELECT_ITEM:17
	PRINTFORM 精神支配力増加量 {DA:SELECT_ITEM:17}
	;TranslatedMark 精神支配力増加量 {DA:SELECT_ITEM:17}
ENDIF
PRINTL
IF DA:SELECT_ITEM:20
	PRINTFORML 取得条件 %ITEMNAME:(DA:SELECT_ITEM:20)%
ELSE
	PRINTFORML
ENDIF

@CHECK_ENPLOYEE
#DIM LCOUNT

DRAWLINE
PRINTFORML 傀儡数　　{FLAG:傀儡数}
PRINTFORM 监视者数　{FLAG:監視者数}
;TranslatedMark 監視者数　{FLAG:監視者数}
PRINTFORM 家畜数　　{FLAG:家畜数}
PRINTFORM 战斗员数　{FLAG:戦闘員数}
;TranslatedMark 戦闘員数　{FLAG:戦闘員数}
PRINTFORM 间谍数　{FLAG:スパイ数}
;TranslatedMark スパイ数　{FLAG:スパイ数}
PRINTFORML 恶堕数　{FLAG:悪堕ち数}
;TranslatedMark 悪堕ち数　{FLAG:悪堕ち数}
DRAWLINE
FOR LCOUNT, 1, FLAG:傀儡数 + 1
	PRINTFORM %SAVESTR:LCOUNT, 10, RIGHT% -
	IF FLAG:(100 + LCOUNT) == 1
		PRINTFORM %"監視者",10,LEFT%
	ELSEIF FLAG:(100 + LCOUNT) == 2
		PRINTFORM %"家畜",10,LEFT%
	ELSEIF FLAG:(100 + LCOUNT) == 3
		PRINTFORM %"戦闘員",10,LEFT%
	ELSEIF FLAG:(100 + LCOUNT) == 4
		PRINTFORM %"スパイ",10,LEFT%
	ELSEIF FLAG:(100 + LCOUNT) == 5
		PRINTFORM %"悪堕ち",10,LEFT%
	ENDIF
	IF LCOUNT % 4 == 0
		PRINTFORML
	ENDIF
NEXT

PRINTFORML
PRINTL [0] 离开
;TranslatedMark [0] 戻る

INPUT

IF RESULT == 0
	RETURN
ENDIF


code:
;触手成長
@ENPLOY_CHARA(CHARA_ID)
;LOCAL
;0	LOOP

#DIM LCOUNT
#DIM CHARA_ID
#DIM ENPLOY_TYPE

IF FLAG:531 == 0

	PRINTFORML 要让%CALLNAME:CHARA_ID%成为什么呢？
	;TranslatedMark %CALLNAME:CHARA_ID%を何にしますか？
	PRINTFORML [ 1] %"监视者",26,LEFT%　支配力を強化します
	;TranslatedMark [ 1] %"監視者",26,LEFT%　支配力を強化します
	PRINTFORML [ 2] %"家畜",26,LEFT%　成長力を強化します
	PRINTFORML [ 3] %"战斗员",26,LEFT%　戦闘力を強化します
	;TranslatedMark [ 3] %"戦闘員",26,LEFT%　戦闘力を強化します
	PRINTFORML [ 4] %"间谍",26,LEFT%　隠蔽力を強化します
	;TranslatedMark [ 4] %"スパイ",26,LEFT%　隠蔽力を強化します
	IF ITEM:185
		PRINTFORML [ 5] %"恶堕少女",32,LEFT%　戦闘力を強化します
		;TranslatedMark [ 5] %"悪堕ち",32,LEFT%　戦闘力を強化します
	ENDIF
	IF ITEM:184
		FOR LCOUNT , 1, 17
			PRINTFORML [{LCOUNT + 5,2}] 渗透小队在今天结束时前往了%POSITION_NAME(LCOUNT),16,LEFT%，以%CALLNAME:CHARA_ID%的牺牲为代价，使得%POSITION_NAME(LCOUNT)%的污染程度上升了
			;TranslatedMark [{LCOUNT + 5,2}] %POSITION_NAME(LCOUNT),16,LEFT%への潜入隊　本日の終わりに%CALLNAME:CHARA_ID%を犠牲にして%POSITION_NAME(LCOUNT)%を汚染します
		NEXT
	ENDIF

	PRINTFORML
	IF ITEM:184
		PRINTFORML [50] 从未渗透的位置里随机抽取
		;TranslatedMark [50] 潜入隊以外からランダム
	ELSE
		PRINTFORML [50] 随机
		;TranslatedMark [50] ランダム
	ENDIF

	PRINTFORML 自动排序（从现在起，数据将自动排序到同一类型）
	;TranslatedMark 自動振り分け（今回以降同じ種類に自動振り分けされます）
	PRINTFORM [51] 监视者
	;TranslatedMark [51] 監視者
	PRINTFORM [52] 家畜
	PRINTFORM [53] 战斗员
	;TranslatedMark [53] 戦闘員
	PRINTFORM [54] 间谍
	;TranslatedMark [54] スパイ
	IF ITEM:185
		PRINTFORM [55] 恶堕少女
		;TranslatedMark [55] 悪堕ち
	ENDIF
	PRINTFORML
	PRINTFORML [ 0] 什么也不做
	;TranslatedMark [ 0] 何もしない
	PRINTFORML

	INPUT
	ENPLOY_TYPE = RESULT
ELSE
	ENPLOY_TYPE = FLAG:531
ENDIF

IF ENPLOY_TYPE == 50
	IF ITEM:185
		ENPLOY_TYPE = RAND:5 + 1
	ELSE
		ENPLOY_TYPE = RAND:4 + 1
	ENDIF
ENDIF
IF ENPLOY_TYPE >= 51 && ENPLOY_TYPE <= 54
	ENPLOY_TYPE = ENPLOY_TYPE - 50
	FLAG:531 = ENPLOY_TYPE
ENDIF
IF ENPLOY_TYPE == 55
	IF ITEM:185
		ENPLOY_TYPE = 5
	ELSE
		ENPLOY_TYPE = RAND:4 + 1
	ENDIF
ENDIF

IF ENPLOY_TYPE == 1
	FLAG:傀儡数 ++
	FLAG:監視者数 ++
	FLAG:(100 + (FLAG:傀儡数)) = ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = ENPLOY_TYPE
	CFLAG:CHARA_ID:傀儡 = ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", ENPLOY_TYPE, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
	IF ITEM:182 && CFLAG:CHARA_ID:触手服 == 0
		CFLAG:CHARA_ID:触手服 = 1
		PRINTFORML %CALLNAME:CHARA_ID%穿上了触手服！
		;TranslatedMark %CALLNAME:CHARA_ID%は触手服を着せられた！
	ENDIF
ELSEIF ENPLOY_TYPE == 2
	FLAG:傀儡数 ++
	FLAG:家畜数 ++
	FLAG:(100 + (FLAG:傀儡数)) = ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = ENPLOY_TYPE
	CFLAG:CHARA_ID:傀儡 = ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", ENPLOY_TYPE, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
	IF ITEM:182 && CFLAG:CHARA_ID:触手服 == 0
		CFLAG:CHARA_ID:触手服 = 1
		PRINTFORML %CALLNAME:CHARA_ID%穿上了触手服！
		;TranslatedMark %CALLNAME:CHARA_ID%は触手服を着せられた！
	ENDIF
ELSEIF ENPLOY_TYPE == 3
	FLAG:傀儡数 ++
	FLAG:戦闘員数 ++
	FLAG:(100 + (FLAG:傀儡数)) = ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = ENPLOY_TYPE
	CFLAG:CHARA_ID:傀儡 = ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", ENPLOY_TYPE, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
	IF ITEM:182 && CFLAG:CHARA_ID:触手服 == 0
		CFLAG:CHARA_ID:触手服 = 1
		PRINTFORML %CALLNAME:CHARA_ID%穿上了触手服！
		;TranslatedMark %CALLNAME:CHARA_ID%は触手服を着せられた！
	ENDIF
ELSEIF ENPLOY_TYPE == 4
	FLAG:傀儡数 ++
	FLAG:スパイ数 ++
	FLAG:(100 + (FLAG:傀儡数)) = ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = ENPLOY_TYPE
	CFLAG:CHARA_ID:傀儡 = ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", ENPLOY_TYPE, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
	IF ITEM:182 && CFLAG:CHARA_ID:触手服 == 0
		CFLAG:CHARA_ID:触手服 = 1
		PRINTFORML %CALLNAME:CHARA_ID%穿上了触手服！
		;TranslatedMark %CALLNAME:CHARA_ID%は触手服を着せられた！
	ENDIF
ELSEIF ENPLOY_TYPE == 5
	FLAG:傀儡数 ++
	FLAG:悪堕ち数 ++
	FLAG:(100 + (FLAG:傀儡数)) = ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = ENPLOY_TYPE
	TALENT:CHARA_ID:悪堕ち = 1
	CFLAG:CHARA_ID:傀儡 = ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", ENPLOY_TYPE, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
	IF ITEM:182 && CFLAG:CHARA_ID:触手服 == 0
		CFLAG:CHARA_ID:触手服 = 1
		PRINTFORML %CALLNAME:CHARA_ID%穿上了触手服！
		;TranslatedMark %CALLNAME:CHARA_ID%は触手服を着せられた！
	ENDIF
ELSEIF ENPLOY_TYPE >= 6 && ENPLOY_TYPE <= 21 && ITEM:184
	FLAG:傀儡数 ++
	FLAG:(100 + (FLAG:傀儡数)) = 95 + ENPLOY_TYPE
	TALENT:CHARA_ID:傀儡 = 95 + ENPLOY_TYPE
	CFLAG:CHARA_ID:傀儡 = 95 + ENPLOY_TYPE
	SAVESTR:(FLAG:傀儡数) = %CALLNAME:CHARA_ID%
	CALL PRINT_MESSAGE(CHARA_ID, "傀儡", 6, CALLNAME:CHARA_ID, CALLNAME:(FLAG:初期宿主))
ELSEIF ENPLOY_TYPE == 0

ENDIF

PRINTFORMW


code:
;触手成長
@GROWTH_TENTACLE
;LOCAL
;0	LOOP

#DIM LCOUNT
#DIM LINE
#DIM SELECT_ITEM
#DIM NOWPAGE
#DIM 表示数
#DIM ALIGN_BUTTON
#DIM 登録数
#DIM ITEMLIST , 500
#DIM ITEMPAGE
#DIMS ページ内容 , 4
#DIM TEMP_LINE
#DIMS POWER_FILTER

	;初期化処理&設定
	REDRAW 0
	LINE = LINECOUNT
	SELECT_ITEM = 0
	NOWPAGE = 0
	ITEMPAGE = 0
	POWER_FILTER =
	表示数 = 40

	$PRINT
	ALIGN_BUTTON = 0
	VARSET ITEMLIST , -1
	FOR LCOUNT , 1 , 500
		IF ITEMNAME:(LCOUNT) != ""
			CALL TENTACLE_SKILL(LCOUNT)
			IF POWER_FILTER == "侵食" && DA:LCOUNT:10 == 0
				CONTINUE
			ELSEIF POWER_FILTER == "支配" && DA:LCOUNT:11 == 0 && DA:LCOUNT:16 == 0 && DA:LCOUNT:17 == 0
				CONTINUE
			ELSEIF POWER_FILTER == "成長" && DA:LCOUNT:12 == 0
				CONTINUE
			ELSEIF POWER_FILTER == "戦闘" && DA:LCOUNT:13 == 0
				CONTINUE
			ELSEIF POWER_FILTER == "隠蔽" && DA:LCOUNT:14 == 0 && DA:LCOUNT:15 == 0
				CONTINUE
			ELSE
				ITEMLIST:FINDELEMENT(ITEMLIST , -1) = LCOUNT
			ENDIF
		ENDIF
	NEXT
	登録数 = FINDELEMENT(ITEMLIST , -1)

	;画面を更新
	CLEARLINE LINECOUNT - LINE + 1
	DRAWLINE

	PRINTFORM 想要学习哪些能力？
	;TranslatedMark どの能力を取得しますか？
	PRINTFORM 页码[{ITEMPAGE + 1}/{登録数 / 表示数 + 1}]
	;TranslatedMark ページ[{ITEMPAGE + 1}/{登録数 / 表示数 + 1}]
	IF POWER_FILTER != ""
		PRINTFORML 　(フィルター：%POWER_FILTER%)
	ELSE
		PRINTL
	ENDIF
	PRINTFORML
	TEMP_LINE = LINECOUNT

	FOR LOCAL, ITEMPAGE * 表示数 , (ITEMPAGE + 1) * 表示数
		IF ITEMLIST:LOCAL != -1
			IF ITEMLIST:LOCAL == SELECT_ITEM
				SETCOLORBYNAME Cyan
				RESETCOLOR
			ENDIF
			IF ITEM:(ITEMLIST:LOCAL) == 0 && POWER_FILTER == "隠蔽" && (DA:(ITEMLIST:LOCAL):14 < 0 || DA:(ITEMLIST:LOCAL):15 < 0)
				SETCOLOR 0x70FFFF
				PRINTFORM [{ITEMLIST:LOCAL,3}] %ITEMNAME:(ITEMLIST:LOCAL),16,LEFT%
				RESETCOLOR
				ALIGN_BUTTON ++
			ELSEIF LOCAL == 19 && FLAG:難易度 > 0
				SETCOLOR 0x333333
				PRINTPLAIN [ 20] 即堕
				;TranslatedMark [ 20] 即落ち
				RESETCOLOR
				ALIGN_BUTTON ++
			ELSEIF TENTACLE_SKILL_REQUIRED(ITEMLIST:LOCAL)
				PRINTFORM [{ITEMLIST:LOCAL,3}] %ITEMNAME:(ITEMLIST:LOCAL),16,LEFT%
				ALIGN_BUTTON ++
				RESETCOLOR
			ELSEIF ITEM:(ITEMLIST:LOCAL)
				SETCOLOR 0x333333
				PRINTFORM [{ITEMLIST:LOCAL,3}] %ITEMNAME:(ITEMLIST:LOCAL),16,LEFT%
				RESETCOLOR
				ALIGN_BUTTON ++
			ELSE
				SETCOLOR 0xF07090
				PRINTFORM [{ITEMLIST:LOCAL,3}] %ITEMNAME:(ITEMLIST:LOCAL),16,LEFT%
				RESETCOLOR
				ALIGN_BUTTON ++
			ENDIF
			;4つ表示するごとに改行
			IF (ALIGN_BUTTON % 4) == 0
				PRINTL
			ENDIF
		ENDIF
	NEXT
	;表示をきれいにするための処置
	IF !LINEISEMPTY()
		PRINTL
	ENDIF
	IF LINECOUNT - TEMP_LINE < 表示数 / 4
		FOR LCOUNT, 0, 表示数 / 4 + TEMP_LINE - LINECOUNT
			PRINTL
		NEXT
	ENDIF

	RESETCOLOR
	DRAWLINE
	PRINTFORML 剩余成长点　{FLAG:6}
	;TranslatedMark 残り成長点　{FLAG:6}
	IF ITEMNAME:(SELECT_ITEM) != "" && !SELECT_ITEM == 0
		;先にページの内容を決める
		;最初に初期化
		VARSET ページ内容 , ""
		;1ページ目は能力で固定
		ページ内容:0 = 能力

		;NOWPAGEがページ数を超えてたら調整
		SIF FINDELEMENT(ページ内容 , "" , , , 1) <= NOWPAGE
			NOWPAGE = 0
		;説明を表示
		TEMP_LINE = LINECOUNT
		CALL SHOW_ITEM_EXPLAIN_WIKI(ITEMNAME:(SELECT_ITEM))
		;ここ、マジックナンバー アイテム説明文の最大行数を突っ込むこと
		IF LINECOUNT - TEMP_LINE < 5
			FOR LCOUNT, 0, 4 + TEMP_LINE - LINECOUNT
				PRINTL
			NEXT
		ENDIF

		CALL TENTACLE_SKILL(SELECT_ITEM)
		IF DA:SELECT_ITEM:10
			PRINTFORM 侵蚀力増加量 {DA:SELECT_ITEM:10}
			;TranslatedMark 侵食力増加量 {DA:SELECT_ITEM:10}
		ENDIF
		IF DA:SELECT_ITEM:11
			PRINTFORM 支配力増加量 {DA:SELECT_ITEM:11}
			;TranslatedMark 支配力増加量 {DA:SELECT_ITEM:11}
		ENDIF
		IF DA:SELECT_ITEM:12
			PRINTFORM 成长力増加量 {DA:SELECT_ITEM:12}
			;TranslatedMark 成長力増加量 {DA:SELECT_ITEM:12}
		ENDIF
		IF DA:SELECT_ITEM:13
			PRINTFORM 战斗力増加量 {DA:SELECT_ITEM:13}
			;TranslatedMark 戦闘力増加量 {DA:SELECT_ITEM:13}
		ENDIF
		PRINTL
		IF DA:SELECT_ITEM:14
			PRINTFORM 异变隐藏力増加量 {DA:SELECT_ITEM:14}
			;TranslatedMark 異変隠蔽力増加量 {DA:SELECT_ITEM:14}
		ENDIF
		IF DA:SELECT_ITEM:15
			PRINTFORM 元凶隐藏力増加量 {DA:SELECT_ITEM:15}
			;TranslatedMark 元凶隠蔽力増加量 {DA:SELECT_ITEM:15}
		ENDIF
		IF DA:SELECT_ITEM:16
			PRINTFORM 肉体支配力増加量 {DA:SELECT_ITEM:16}
			;TranslatedMark 肉体支配力増加量 {DA:SELECT_ITEM:16}
		ENDIF
		IF DA:SELECT_ITEM:17
			PRINTFORM 精神支配力増加量 {DA:SELECT_ITEM:17}
			;TranslatedMark 精神支配力増加量 {DA:SELECT_ITEM:17}
		ENDIF
		PRINTL
		IF DA:SELECT_ITEM:20
			;PRINTFORML 取得条件 [{DA:SELECT_ITEM:20,3}]:%ITEMNAME:(DA:SELECT_ITEM:20)%
			PRINTPLAINFORM 取得条件 [{DA:SELECT_ITEM:20,3}] %ITEMNAME:(DA:SELECT_ITEM:20)%
			;TranslatedMark 取得条件 [{DA:SELECT_ITEM:20,3}] %ITEMNAME:(DA:SELECT_ITEM:20)%
			PRINTL
		ELSE
			PRINTL
		ENDIF

		IF ITEM:(SELECT_ITEM)
			PRINTPLAIN 　[999] 学习完成
			;TranslatedMark [999] 取得済です
			PRINTL
		ELSEIF ITEM:(SELECT_ITEM) == 0 && FLAG:6 > 2 && ITEM:(DA:SELECT_ITEM:20)
			PRINTL 　[999] 学习
			;TranslatedMark [999] 取得する
		ELSEIF ITEM:(SELECT_ITEM) == 0 && FLAG:6 < 3 && ITEM:(DA:SELECT_ITEM:20)
			PRINTPLAIN 　[999] 成长点不足
			;TranslatedMark [999] 成長点が足りません
			PRINTL
		ELSEIF ITEM:(SELECT_ITEM) == 0 && ITEM:(DA:SELECT_ITEM:20) == 0
			PRINTPLAIN 　[999] 不符合取得条件
			;TranslatedMark [999] 所得条件を満たしていません
			PRINTL
		ELSE
			PRINTL
		ENDIF

		PRINTL
	ELSE
		;9行開ける　ITEM選択時の説明文行数と同数
		FOR LCOUNT , 0 , 9
			PRINTL
		NEXT
	ENDIF

	DRAWLINE

	PRINTL
	PRINTPLAIN 选择过滤器
	;TranslatedMark 増加能力フィルター
	PRINTL 　[510] 侵蚀力　[511] 支配力　[512] 成长力　[513] 战斗力　[514] 隐藏力　[515] OFF
	;TranslatedMark [510] 侵食力　[511] 支配力　[512] 成長力　[513] 戦闘力　[514] 隠蔽力　[515] OFF
	PRINTL 　[  0] 取消
	;TranslatedMark [  0] キャンセル
	PRINTL 　[600] 上一页　[500] 下一页
	;TranslatedMark [600] 前へ　[500] 次へ

	$INPUT_LOOP
	INPUTS

	IF RESULTS == "0"
		REDRAW 1
		RETURN
	ELSEIF RESULTS == "500"
		ITEMPAGE ++
		SIF ITEMPAGE > 登録数 / 表示数
			ITEMPAGE = 0
	ELSEIF RESULTS == "600"
		ITEMPAGE --
		SIF ITEMPAGE < 0
			ITEMPAGE = 登録数 / 表示数
	ELSEIF RESULTS == "510"
		POWER_FILTER = 侵食
		ITEMPAGE = 0
	ELSEIF RESULTS == "511"
		POWER_FILTER = 支配
		ITEMPAGE = 0
	ELSEIF RESULTS == "512"
		POWER_FILTER = 成長
		ITEMPAGE = 0
	ELSEIF RESULTS == "513"
		POWER_FILTER = 戦闘
		ITEMPAGE = 0
	ELSEIF RESULTS == "514"
		POWER_FILTER = 隠蔽
		ITEMPAGE = 0
	ELSEIF RESULTS == "515"
		POWER_FILTER =
		ITEMPAGE = 0
	ELSEIF RESULTS == "999" && FLAG:6 > 2 && ITEM:(DA:SELECT_ITEM:20)
		ITEM:(SELECT_ITEM) = 1
		FLAG:6 += -3
		PRINTL
		PRINTL
		PRINTFORMW 得到了%ITEMNAME:(SELECT_ITEM)%
		;TranslatedMark %ITEMNAME:(SELECT_ITEM)%を入手しました
		CALL TENTACLE_SKILL(SELECT_ITEM)
		SELECT_ITEM = 0
	ELSEIF RESULTS == "999" && FLAG:6 > 2 && ITEM:(DA:SELECT_ITEM:20) == 0
		PRINTFORMW 你不具备取得%ITEMNAME:(DA:SELECT_ITEM:20)%的前提条件
		;TranslatedMark 前提条件%ITEMNAME:(DA:SELECT_ITEM:20)%を所持していません
	ELSEIF ISNUMERIC(RESULTS) && MATCH(ITEMLIST , TOINT(RESULTS))
		SELECT_ITEM = TOINT(RESULTS)
	ELSE
		REUSELASTLINE 入力が不正です！
		CLEARLINE 1
		GOTO INPUT_LOOP
	ENDIF
	GOTO PRINT


code:
;イチャイチャする
@LEZBIAN_PLAY(ARG:0, CHARA_ID)
#DIM LCOUNT
#DIM CHARA_ID
#DIM LEZ_PLAY

;暫定設置
#DIM ECS_POWER,2

IF TALENT:(ARG:0):キス魔
	TFLAG:部位 = 16
	CALL CALC_ECSTASY(ARG:0, 20)
	CALL CALC_ECSTASY(CHARA_ID, 20)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", 0, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)
	IF CFLAG:CHARA_ID:侵食済
		CALL CALC_ECSTASY(ARG:0, 20)
		CALL CALC_ECSTASY(CHARA_ID, 20)
		CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", 0, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

		CALL ECSTASY(ARG:0)
		CALL ECSTASY(CHARA_ID)
	ENDIF
ENDIF

$INPUT_LOOP
DRAWLINE
PRINTFORML 要做什么？
;TranslatedMark 何をしますか？

PRINTFORML [ 1] 安抚
;TranslatedMark [ 1] 安心させる

IF CHECK_TRUST(ARG:0, CHARA_ID, 105)
	PRINTFORML [10] 握住手
	;TranslatedMark [10] 手を握る
	PRINTFORML [11] 触碰肩膀
	;TranslatedMark [11] 肩を触る
	PRINTFORML [12] 拥抱
	;TranslatedMark [12] 抱きつく
	PRINTFORML [13] 触摸屁股
	;TranslatedMark [13] お尻を触る
	PRINTFORML [14] 触摸胸部
	;TranslatedMark [14] 胸を触る
ENDIF
IF CHECK_TRUST(ARG:0, CHARA_ID, 110)

	PRINTFORML [15] 接吻
	;TranslatedMark [15] キスをする
	PRINTFORML [16] 爱抚屁股
	;TranslatedMark [16] お尻愛撫
	PRINTFORML [17] 爱抚胸部
	;TranslatedMark [17] 胸愛撫
	PRINTFORML [18] 触摸股间
	;TranslatedMark [18] 股間を触る
	IF ITEM:324 == 0 && ITEM:321 == 0 && ITEM:322 == 0
		PRINTFORML [19] 把手伸进下着
		;TranslatedMark [19] パンツの中に手を入れる
	ENDIF
ENDIF

IF CHECK_TRUST(ARG:0, CHARA_ID, 130)

	PRINTFORML [20] 磨豆腐
	;TranslatedMark [20] 貝合せ
	PRINTFORML [21] 百合性爱
	;TranslatedMark [21] レズセックス
	PRINTFORML [22] 摩擦胸部
	;TranslatedMark [22] 胸のもみ合い
ENDIF
IF CHECK_TRUST(ARG:0, CHARA_ID, 130) && GET_PENIS(ARG:0)
	PRINTFORML [30] 舔舐秘部
	;TranslatedMark [30] フェラしてもらう
	PRINTFORML [31] 性交
	;TranslatedMark [31] セックス
	PRINTFORML [32] 乳交
	;TranslatedMark [32] パイズリしてもらう
ENDIF
IF CHECK_TRUST(ARG:0, CHARA_ID, 110) && GET_PENIS(CHARA_ID)
	PRINTFORML [40] 口交
	;TranslatedMark [40] フェラする
ENDIF

IF CHECK_TRUST(ARG:0, CHARA_ID, 200) && CFLAG:CHARA_ID:侵食済 == 0
	IF ITEM:163
		PRINTFORML [97] 求婚
		;TranslatedMark [97] 結婚を申し込む
	ENDIF
	PRINTFORML [98] 强制支配
	;TranslatedMark [98] 無理やり支配する
	PRINTFORML [99] 进行侵蚀
	;TranslatedMark [99] 侵食を受け入れてもらう
ENDIF

PRINTL

INPUT

LEZ_PLAY = RESULT

;安心させる
IF LEZ_PLAY == 1

	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	;安心させた相手から自分への補正が大きい
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;手を握る、肩を触る、抱き付く、お尻を触る、胸を触る
ELSEIF LEZ_PLAY >= 10 && LEZ_PLAY <= 14 && CHECK_TRUST(ARG:0, CHARA_ID, 105)

	IF LEZ_PLAY >= 10 && LEZ_PLAY <= 12
		TFLAG:部位 = 32
	ELSEIF LEZ_PLAY == 13
		TFLAG:部位 = 1
	ELSEIF LEZ_PLAY == 14
		TFLAG:部位 = 2
	ENDIF
	CALL CALC_ECSTASY(ARG:0, 10)
	CALL CALC_ECSTASY(CHARA_ID, 10)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, (RAND:10))

;キス、お尻愛撫、胸愛撫、股間を触る、パンツの中に手を入れる
ELSEIF LEZ_PLAY >= 15 && LEZ_PLAY <= 19 && CHECK_TRUST(ARG:0, CHARA_ID, 110)

	;被ダメ
	ECS_POWER:0 = 10
	;与ダメ
	ECS_POWER:1 = 10

	;キスする
	IF LEZ_PLAY == 15
		TFLAG:部位 = 16

		;キス魔　　　　　するのが好きボーナス
		SIF TALENT:(ARG:0):キス魔
			ECS_POWER:0 += 5

		;相手にキス魔　　されるのが好きボーナス
		SIF TALENT:CHARA_ID:キス魔
			ECS_POWER:1 += 5

		;キス魔同士だと更にボーナス
		IF TALENT:(ARG:0):キス魔 && TALENT:CHARA_ID:キス魔
			ECS_POWER:0 += 5
			ECS_POWER:1 += 5
		ENDIF

		;舌技で骨抜きにする
		SIF CFLAG:(ARG:0):侵食済 && ITEM:242
			ECS_POWER:1 += 5
		;舌技で骨抜きにされる
		SIF CFLAG:CHARA_ID:侵食済 && ITEM:242
			ECS_POWER:0 += 5

	ELSEIF LEZ_PLAY == 16
		TFLAG:部位 = 1
	ELSEIF LEZ_PLAY == 17
		TFLAG:部位 = 2
	ELSEIF LEZ_PLAY == 18
		TFLAG:部位 = 12
	ELSEIF LEZ_PLAY == 19
		TFLAG:部位 = 8
	ENDIF
	CALL CALC_ECSTASY(ARG:0, ECS_POWER:0)
	CALL CALC_ECSTASY(CHARA_ID, ECS_POWER:1)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;貝合わせ、レズセックス、胸のもみ合い
ELSEIF LEZ_PLAY >= 20 && LEZ_PLAY <= 22 && CHECK_TRUST(ARG:0, CHARA_ID, 130)

	IF LEZ_PLAY == 20
		TFLAG:部位 = 4
	ELSEIF LEZ_PLAY == 21
		TFLAG:部位 = 63
	ELSEIF LEZ_PLAY == 22
		TFLAG:部位 = 2
	ENDIF

	CALL CALC_ECSTASY(ARG:0, 20)
	CALL CALC_ECSTASY(CHARA_ID, 20)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;フェラしてもらう、セックス、パイズリしてもらう
ELSEIF LEZ_PLAY >= 30 && LEZ_PLAY <= 32 && CHECK_TRUST(ARG:0, CHARA_ID, 130) && GET_PENIS(ARG:0)
	;POINT_UP_TRUSTで処理
	;CFLAG:(ARG:0):(300 + CHARA_ID) += RAND:10
	;CFLAG:CHARA_ID:(300 + ARG:0) += RAND:10
	IF LEZ_PLAY == 30
		TFLAG:部位 = 4
	ELSEIF LEZ_PLAY == 31
		TFLAG:部位 = 63
	ELSEIF LEZ_PLAY == 32
		TFLAG:部位 = 2
	ENDIF

	CALL CALC_ECSTASY(ARG:0, 30)
	TFLAG:部位 = 16
	CALL CALC_ECSTASY(CHARA_ID, 10)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)

	IF LEZ_PLAY == 31
		CALL GET_PREGNANCY(CHARA_ID, CALLNAME:(ARG:0))
	ENDIF

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;フェラする
ELSEIF LEZ_PLAY == 40 && CHECK_TRUST(ARG:0, CHARA_ID, 130) && GET_PENIS(CHARA_ID)
	TFLAG:部位 = 16
	CALL CALC_ECSTASY(ARG:0, 10)
	TFLAG:部位 = 4
	CALL CALC_ECSTASY(CHARA_ID, 30)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

	CALL ECSTASY(ARG:0)
	CALL ECSTASY(CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;結婚を申し込む
ELSEIF LEZ_PLAY == 97 && ITEM:163 && CHECK_TRUST(ARG:0, CHARA_ID, 200) && CFLAG:CHARA_ID:侵食済 == 0
	CFLAG:(ARG:0):婚姻済 = 1
	CFLAG:CHARA_ID:婚姻済 = 1

	CALL POLLUTED_POSITION_INDEX(CHARA_ID, 6)
	CALL POLLUTED_POSITION_INDEX(ARG:0, 6)

	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)

;無理やり支配する
ELSEIF LEZ_PLAY == 98 && CHECK_TRUST(ARG:0, CHARA_ID, 200) && CFLAG:CHARA_ID:侵食済 == 0
	TFLAG:部位 = RAND:32
	CALL CALC_ECSTASY(CHARA_ID, 300)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)
	CALL ECSTASY(CHARA_ID)
	CALL DOMINATE(CHARA_ID, 7)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;浸食を受け入れてもらう
ELSEIF LEZ_PLAY == 99 && CHECK_TRUST(ARG:0, CHARA_ID, 200) && CFLAG:CHARA_ID:侵食済 == 0
	TFLAG:部位 = RAND:32
	CALL CALC_ECSTASY(ARG:0, 300)
	CALL PRINT_MESSAGE(ARG:0, "イチャイチャ", LEZ_PLAY, CALLNAME:(ARG:0), CALLNAME:CHARA_ID)
	CALL ECSTASY(ARG:0)
	TFLAG:部位 = RAND:32
	CALL CALC_ECSTASY(CHARA_ID, 300)
	CALL ECSTASY(CHARA_ID)

	CALL POLLUTED(CHARA_ID)

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, LEZ_PLAY, 5)

;ギリギリの好感度で選ぶと拒否されることがある
ELSEIF LEZ_PLAY
	PRINTFORML %CALLNAME:CHARA_ID%拒绝了%CALLNAME:(ARG:0)%的提议
	;TranslatedMark %CALLNAME:CHARA_ID%は%CALLNAME:(ARG:0)%の申し出を拒否した
	PRINTFORML 与%CALLNAME:CHARA_ID%分手了
	;TranslatedMark %CALLNAME:CHARA_ID%と別れた

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	;コマンド内容999は失敗時等用の最低限の数値変動だけする処理用
	CALL POINT_UP_TRUST(ARG:0, CHARA_ID, 999, -(RAND:5))
ELSE
	GOTO INPUT_LOOP
ENDIF

DRAWLINE


code:
;特殊能力[友情]による仲間づくり

@MAYIM_MAYIM(CHARA_ID)
#DIM CHARA_ID
#DIM LCOUNT
#DIM MEMBER,200
#DIM MEMBER_NUM
#DIM CHARA_CON

CALL PARASITE_TENTACLE_RATE(CHARA_ID)
CHARA_CON = RESULT

VARSET MEMBER
VARSET MEMBER_NUM

;CHARA_IDに親しいキャラから優先して

FOR LCOUNT , 1, CHARANUM
	IF CHARA_ID == LCOUNT

	ELSEIF CFLAG:CHARA_ID:所属 == CFLAG:LCOUNT:所属 && CFLAG:LCOUNT:支配済
		PRINTFORM %CALLNAME:LCOUNT%
		MEMBER:MEMBER_NUM = LCOUNT
		MEMBER_NUM += 1
	ELSEIF CFLAG:CHARA_ID:(300+LCOUNT) > 100 && CFLAG:LCOUNT:支配済
		PRINTFORM %CALLNAME:LCOUNT%
		MEMBER:MEMBER_NUM = LCOUNT
		MEMBER_NUM += 1
	ENDIF
NEXT

IF MEMBER_NUM
	PRINTFORML 聚集在%CALLNAME:CHARA_ID%身边的每个人
	;TranslatedMark で%CALLNAME:CHARA_ID%を取り囲んだ
	PRINTFORML 都在极力地诱惑着%CALLNAME:CHARA_ID%也一同加入她们之中...
	;TranslatedMark 集まった全員が%CALLNAME:CHARA_ID%を仲間に入れようと誘ってくる……
	PRINTFORML %CALLNAME:CHARA_ID%的侵蚀耐性下降了...
	;TranslatedMark %CALLNAME:CHARA_ID%の侵食耐性が下がった……
	CHARA_CON -= MEMBER_NUM * 2
	CALL MENTAL_DEVELOP(CHARA_ID, 0, MEMBER_NUM * 3)
ELSE

ENDIF

;失敗した場合察知力と隠蔽度合いを比較
IF CHARA_CON > FLAG:10 + 5
	PRINTFORML 对%CALLNAME:CHARA_ID%的侵蚀以失败告终
	;TranslatedMark %CALLNAME:CHARA_ID%の侵食に失敗した

	;異変に気づく判定、失敗しても察知力経験入手
	;隠蔽失敗した場合、異変がばれて元凶を探され始める
	IF FLAG:異変隠蔽力 < ABL:CHARA_ID:異變發覺 && CFLAG:CHARA_ID:異変察知 == 0
		CFLAG:CHARA_ID:異変察知 = 1
		CALL ADD_ABL_EXP(1, CHARA_ID, 200 + RAND:200)
		CALL ADD_ABL_EXP(4, CHARA_ID, 200 + RAND:200)
	ELSE
		CALL ADD_ABL_EXP(1, CHARA_ID, 200 + RAND:300)
		CALL ADD_ABL_EXP(4, CHARA_ID, 200 + RAND:300)
	ENDIF

	;ログに改行挟む用のフラグ、@END_PHASE内で使用
	MESSAGE_DISPLAY_FLAG = 1

	RETURN

ENDIF

;成功すれば侵食
CALL POLLUTED(CHARA_ID)


code:
;NPCにであったときの汎用コマンド
@MEET_NPC(CHARA_ID)
#DIM LCOUNT
#DIM ALIGN_BUTTON
#DIM CHARA_ID

$INPUT_LOOP

PRINTFORML 要做些什么呢？
;TranslatedMark どうしますか？
PRINTFORML [ 1] 闲聊
;TranslatedMark [ 1] 雑談を行う
PRINTFORML [ 2] 调情
;TranslatedMark [ 2] いちゃいちゃする
PRINTFORML [ 3] 袭击　触手战斗力　{FLAG:戦闘力}　　%CALLNAME:(CHARA_ID)%战斗力　{ABL:(CHARA_ID):戦闘素質}
;TranslatedMark [ 3] 襲撃する　触手戦闘力　{FLAG:戦闘力}　　%CALLNAME:(CHARA_ID)%戦闘力　{ABL:(CHARA_ID):戦闘素質}
IF CFLAG:CHARA_ID:侵食済 == 0
	PRINTFORML [ 4] 悄悄侵蚀
	;TranslatedMark [ 4] こっそり侵食する
ELSE
	PRINTFORML [ 5] 偷偷施加触手的影响
	;TranslatedMark [ 5] こっそり触手の影響を持ち帰らせる
ENDIF
IF ITEM:134
	PRINTFORML [ 6] 下着确认
	;TranslatedMark [ 6] パンツを確認する
ENDIF
IF ITEM:50
	PRINTFORML [ 7] 呼朋引伴
	;TranslatedMark [ 7] 仲間に誘う
ENDIF
IF ITEM:86 && FLAG:全体支配済 == 1
	PRINTFORML [ 8] 蹂躏
	;TranslatedMark [ 8] 蹂躙する
ENDIF

PRINTFORML
PRINTFORML [ 0] 就这样告别
;TranslatedMark [ 0] 何もせず別れる
PRINTFORML

;催眠かけたり膨乳させたりエロコマンド増やしたい
;NPC_EVENT4にも流用しているのでそちらも必要ならいじる

INPUT

IF RESULT == 1
	IF CFLAG:CHARA_ID:異変察知
		PRINTFORML %CALLNAME:(CHARA_ID)%似乎注意到了身边发生的异变，并开始寻找其元凶
		;TranslatedMark %CALLNAME:(CHARA_ID)%は異変に気づき元凶を探しているらしい
	ELSEIF CFLAG:CHARA_ID:侵食済
		PRINTFORML 虽说%CALLNAME:(CHARA_ID)%感觉有些不太舒服，但她还是没有注意到身边的什么异常情况
		;TranslatedMark %CALLNAME:(CHARA_ID)%は異変に気づいておらず体調がおかしいらしい
		PRINTFORML 看样子%CALLNAME:(CHARA_ID)%已经被侵蚀了
		;TranslatedMark どうやら%CALLNAME:(CHARA_ID)%は侵食されているようだ
	ELSE

	ENDIF
	IF CHECK_TRUST(FLAG:初期宿主, CHARA_ID, 100 + CFLAG:CHARA_ID:情報 * 10)
		CFLAG:CHARA_ID:情報 ++
		CALL ADD_ABL_EXP(2, CHARA_ID, RAND:200)
		PRINTFORML %CALLNAME:(CHARA_ID)%在打听过与自己有关的情报后就和对方分手了
		;TranslatedMark %CALLNAME:(CHARA_ID)%自身の情報を色々と聞いて別れた
		PRINTFORML %CALLNAME:(CHARA_ID)%的異変察知力与侵蚀耐性下降了
		;TranslatedMark %CALLNAME:(CHARA_ID)%の異変察知力と侵食耐性が下がった
	ELSE
		CALL ADD_ABL_EXP(2, CHARA_ID, RAND:100 + 100)
		PRINTFORML 与%CALLNAME:(CHARA_ID)%漫无目的地聊了一段时间，然后就分手了
		;TranslatedMark %CALLNAME:(CHARA_ID)%ととりとめのない話をして別れた
	ENDIF

	;好感度上昇処理(実行者, 対象者, 実行コマンド, 上昇量の基礎値, 片道フラグ(無視可))
	CALL POINT_UP_TRUST(FLAG:初期宿主, CHARA_ID, 100, 3)

ELSEIF RESULT == 2
	CALL LEZBIAN_PLAY(FLAG:初期宿主, CHARA_ID)
ELSEIF RESULT == 3
	CALL BATTLE(CHARA_ID, 0)
ELSEIF RESULT == 4 && CFLAG:CHARA_ID:侵食済 == 0
	CALL AUTO_PARASITE_TENTACLE(CHARA_ID)
	IF CFLAG:CHARA_ID:侵食済 == 1
		PRINTFORML 看来对%CALLNAME:(CHARA_ID)%的侵蚀已经成功了！
		;TranslatedMark %CALLNAME:(CHARA_ID)%への侵食に成功したようだ！
	ELSEIF CFLAG:CHARA_ID:侵食済 == 0
		PRINTFORML 看来对%CALLNAME:(CHARA_ID)%的侵蚀失败了...
		;TranslatedMark %CALLNAME:(CHARA_ID)%への侵食に失敗したようだ…
	ENDIF
ELSEIF RESULT == 5 && CFLAG:CHARA_ID:侵食済
	FLAG:(CFLAG:CHARA_ID:所属 + 70) = MIN(100, (CFLAG:CHARA_ID:所属 + 70) + RAND:5 + 1)
ELSEIF RESULT == 6 && ITEM:134
	CALL CHECK_UNDERWEAR(CHARA_ID, FLAG:初期宿主)
ELSEIF RESULT == 7 && ITEM:50
	CALL MAYIM_MAYIM(CHARA_ID)
ELSEIF RESULT == 8 && ITEM:86 && FLAG:全体支配済 == 1
	CALL TRAMPLE_ON(CHARA_ID)
ELSEIF RESULT == 0

ELSE
	REUSELASTLINE 入力値が不正です。再入力してください
	GOTO INPUT_LOOP
ENDIF

RETURN


code:
;尋問
;「元凶触手」が「寄生主」を尋問
;初期宿主も参加しているかは口上に任せる予定
;初期宿主にはここでは経験が入らないようにする

@QUESTION(CHARA_ID)
#DIM CHARA_ID
#DIM LCOUNT
#DIM LOCALQUETE,10000
#DIM LOCALIDNUM
#DIM RANDOM_CHARA_ID

VARSET LOCALQUETE
VARSET LOCALIDNUM

;尋問の条件1つ追加ごとに
;LOCALQUETE:LOCALIDNUM = XX
;LOCALIDNUM += 1
;と書けば良し（XXは空いている番号）

LOCALQUETE:LOCALIDNUM = 0
LOCALIDNUM += 1
IF ITEM:1
	LOCALQUETE:LOCALIDNUM = 1
	LOCALIDNUM += 1
ENDIF
IF ITEM:2
	LOCALQUETE:LOCALIDNUM = 2
	LOCALIDNUM += 1
ENDIF
IF ITEM:5
	LOCALQUETE:LOCALIDNUM = 5
	LOCALIDNUM += 1
ENDIF
IF ITEM:6
	LOCALQUETE:LOCALIDNUM = 6
	LOCALIDNUM += 1
ENDIF
IF ITEM:76
	LOCALQUETE:LOCALIDNUM = 76
	LOCALIDNUM += 1
ENDIF
IF ITEM:84
	LOCALQUETE:LOCALIDNUM = 84
	LOCALIDNUM += 1
ENDIF
IF ITEM:85
	LOCALQUETE:LOCALIDNUM = 85
	LOCALIDNUM += 1
ENDIF
IF ITEM:213
	LOCALQUETE:LOCALIDNUM = 213
	LOCALIDNUM += 1
ENDIF
IF ITEM:222
	LOCALQUETE:LOCALIDNUM = 222
	LOCALIDNUM += 1
ENDIF
IF ITEM:291
	LOCALQUETE:LOCALIDNUM = 291
	LOCALIDNUM += 1
ENDIF
IF ITEM:294
	LOCALQUETE:LOCALIDNUM = 294
	LOCALIDNUM += 1
ENDIF
IF ITEM:297
	LOCALQUETE:LOCALIDNUM = 297
	LOCALIDNUM += 1
ENDIF
IF ITEM:303
	LOCALQUETE:LOCALIDNUM = 303
	LOCALIDNUM += 1
ENDIF
IF ITEM:351
	LOCALQUETE:LOCALIDNUM = 351
	LOCALIDNUM += 1
ENDIF
IF ITEM:360
	LOCALQUETE:LOCALIDNUM = 360
	LOCALIDNUM += 1
ENDIF

CALL QUESTION_NAME(LOCALQUETE:(RAND:LOCALIDNUM),CHARA_ID)
RANDOM_CHARA_ID = RANDOM_GET_CAUGHT_ID(CHARA_ID)

IF QUESTION_RATE(CHARA_ID) && FLAG:首謀者 && FLAG:支配力 + FLAG:反乱度 >= 120
	CALL CALC_ECSTASY(CHARA_ID, TFLAG:4)
	CALL PRINT_MESSAGE(CHARA_ID, "尋問", 4, CALLNAME:CHARA_ID, CALLNAME:(FLAG:首謀者))
	CALL ECSTASY(CHARA_ID)
	CALL MENTAL_DEVELOP(CHARA_ID, 20, 10)
	CALL PRINT_MESSAGE(FLAG:初期宿主, "尋問", 5, CALLNAME:CHARA_ID, CALLNAME:(FLAG:首謀者), CHARA_ID)
ELSEIF QUESTION_RATE(CHARA_ID)
	CALL CALC_ECSTASY(CHARA_ID, TFLAG:4)
	CALL PRINT_MESSAGE(CHARA_ID, "尋問", 0, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID)
	CFLAG:RANDOM_CHARA_ID:情報 ++
	CALL ECSTASY(CHARA_ID)
	CALL MENTAL_DEVELOP(CHARA_ID, 20, 10)
	CALL PRINT_MESSAGE(FLAG:初期宿主, "尋問", 2, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, CHARA_ID)
ELSE
	CALL CALC_ECSTASY(CHARA_ID, 500)
	CALL PRINT_MESSAGE(CHARA_ID, "尋問", 1, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID)
	CALL ECSTASY(CHARA_ID)
	CALL PRINT_MESSAGE(FLAG:初期宿主, "尋問", 3, CALLNAME:CHARA_ID, CALLNAME:RANDOM_CHARA_ID, CHARA_ID)
ENDIF

DRAWLINE
PRINTFORMW

@QUESTION_NAME(ARG:0,CHARA_ID)
#DIM CHARA_ID
SELECTCASE ARG:0
	CASE 0
		TFLAG:2 = 15
		RESULTS = 触手责弄
		;TranslatedMark 触手責め
	CASE 1
		TFLAG:2 = 15
		RESULTS = 史莱姆责弄
		;TranslatedMark スライム責め
	CASE 2
		TFLAG:2 = 8
		RESULTS = 马姦
		;TranslatedMark 馬姦
	CASE 5
		TFLAG:2 = 15
		RESULTS = 连续高潮装置
		;TranslatedMark 連続絶頂装置
	CASE 6
		TFLAG:2 = 15
		RESULTS = 虫姦
	CASE 76

		RESULTS = 挠痒痒
		;TranslatedMark くすぐり

	CASE 84
		TFLAG:2 = 13
		RESULTS = 壁尻责
		;TranslatedMark 壁尻責め
	CASE 85
		TFLAG:2 = 4
		RESULTS = 射精耐久大会

	CASE 213
		TFLAG:2 = 2
		RESULTS = 乳房膨胀
		;TranslatedMark 膨乳
	CASE 222
		TFLAG:2 = 4
		RESULTS = 玩弄扶她肉棒
		;TranslatedMark ふたなりちんぽいじめ

	CASE 291
		TFLAG:2 = 1
		RESULTS = 抠弄肛门
		;TranslatedMark アナルほじり
	CASE 294
		TFLAG:2 = 2
		RESULTS = 责弄乳头
		;TranslatedMark 乳首責め
	CASE 297
		TFLAG:2 = 8
		RESULTS = 抠弄性器
		;TranslatedMark まんこほじり

	CASE 303

		RESULTS = 催眠连续高潮
		;TranslatedMark 催眠連続絶頂
	CASE 351

		RESULTS = 记忆崩坏高潮
		;TranslatedMark 記憶崩壊絶頂
	CASE 360
		IF TALENT:CHARA_ID:機械
			RESULTS = 爆裂高潮
			;TranslatedMark 絶頂クラッキング
		ELSE
			TFLAG:2 = 15
			RESULTS = 连续高潮装置
			;TranslatedMark 連続絶頂装置
		ENDIF

ENDSELECT
;チキチキ分岐用だけどせっかくなので全部の尋問内容をTFLAG:100に記憶する
TFLAG:100 = ARG:0

;尋問成功率
;触手に屈すると1、屈さなければ0を返す
@QUESTION_RATE(CHARA_ID)
#FUNCTION
#DIM CHARA_ID
#DIM CHARA_CON
#DIM TENTACLE_POWER

CHARA_CON = BASE:CHARA_ID:PP / 10
TENTACLE_POWER = FLAG:支配力

IF TALENT:CHARA_ID:臆病
	CHARA_CON -= 3
ENDIF
IF TALENT:CHARA_ID:反抗的
	CHARA_CON += 3
ENDIF
IF TALENT:CHARA_ID:プライド高い
	CHARA_CON += 3
ENDIF
IF TALENT:CHARA_ID:痛みに弱い
	CHARA_CON -= 3
ENDIF
IF TALENT:CHARA_ID:痛みに強い
	CHARA_CON += 3
ENDIF
IF TALENT:CHARA_ID:快感に素直
	CHARA_CON -= 3
ENDIF
IF TALENT:CHARA_ID:機械;機械は基本口が堅い
	CHARA_CON += 3
	IF TFLAG:100 == 360;ただしチキチキはそうはいかない
		CHARA_CON -= 6
		;密かにお見上げを仕込む
		CFLAG:CHARA_ID:不正操作 += 3 + RAND:5
	ENDIF
ENDIF

IF CFLAG:CHARA_ID:催眠
	CHARA_CON /= 2
ENDIF
IF CFLAG:CHARA_ID:恐慌
	CHARA_CON /= 2
ENDIF
IF CFLAG:CHARA_ID:発情
	CHARA_CON /= 2
ENDIF

IF ITEM:41 == 0
	TENTACLE_POWER /= 2
ENDIF
IF ITEM:44
	TENTACLE_POWER += 3
ENDIF
IF ITEM:45
	TENTACLE_POWER += 3
ENDIF

IF TENTACLE_POWER > CHARA_CON
	RETURNF 1
ELSE
	RETURNF 0
ENDIF

@QUESTION_TIME
#FUNCTIONS

TFLAG:3 = RAND:10

;平均を多めに配置
SELECTCASE TFLAG:3
	CASE 0
		TFLAG:4 = 500
		RETURNF "3分钟"
	CASE 1
		TFLAG:4 = 750
		RETURNF "30分钟"
	CASE 2
		TFLAG:4 = 1000
		RETURNF "2小时"
	CASE 3
		TFLAG:4 = 1000
		RETURNF "2小时"
	CASE 4
		TFLAG:4 = 1500
		RETURNF "3小时"
	CASE 5
		TFLAG:4 = 1500
		RETURNF "3小时"
	CASE 6
		TFLAG:4 = 3000
		RETURNF "6小时"
	CASE 7
		TFLAG:4 = 3000
		RETURNF "6小时"
	CASE 8
		TFLAG:4 = 4000
		RETURNF "8小时"
	CASE 9
		TFLAG:4 = 6000
		RETURNF "12小时"

ENDSELECT

@QUESTION_RESULT
#FUNCTIONS

TFLAG:5 = RAND:5

SELECTCASE TFLAG:5
	CASE 0
		RETURNF "噙着眼泪哭喊着"
	CASE 1
		RETURNF "在股间湿透的状态下"
	CASE 2
		RETURNF "大幅痉挛的同时"
	CASE 3
		RETURNF "多次气绝以后断断续续地"
	CASE 4
		RETURNF "因过度换气而咳呛着"

ENDSELECT


code:
;=================================================
;コンフィグメイン処理
;
;=================================================
@SET_CONFIGURE
#DIM LCOUNT,3	;ループ用

#DIM ACTIVE, 100	;項目の有効記憶用

#DIM LEVEL	;階層記憶用
#DIM LEVELNO, 10	;階層番号記憶用
#DIMS LEVELNAME, 10	;階層項目名記憶用

;コンフィグ内でゆっくり表示する必要は無いので常時REDRAW 0
REDRAW 0
WHILE 1
	DRAWLINEFORM -
	PRINTFORML 请选择要变更的内容
	;TranslatedMark 変更したい内容を選択してください
	PRINTFORML

	;---階層表示---
	SETCOLOR 0x666666
	FOR LCOUNT:0, 0, LEVEL
		;インデント
		FOR LCOUNT:1, 0, LCOUNT:0
			PRINTFORM
		NEXT
		PRINTFORML [  ] %LEVELNAME:(LCOUNT:0)%
	NEXT
	RESETCOLOR

	;---階層用パス作成---
	LOCALS = %""%
	FOR LCOUNT:0, 0, LEVEL
		LOCALS = %LOCALS%{LEVELNO:(LCOUNT:0)}_
	NEXT
	;---項目表示---
	FOR LCOUNT:0, 1, 100
		;返り値初期化
		VARSET RESULTS, "", 0, 5

		TRYCCALLFORM SET_CONFIGURE_%LOCALS%{LCOUNT:0}(0)

			;無効な項目なら
			IF RESULTS:0 == ""
				ACTIVE:(LCOUNT:0) = 0
				CONTINUE
			ENDIF

			;選択が無効な項目なら
			IF RESULT:0 < 0
				ACTIVE:(LCOUNT:0) = 0
				SETCOLOR 0x666666
			ELSE
				ACTIVE:(LCOUNT:0) = 1
			ENDIF

			;インデント
			FOR LCOUNT:1, 0, LEVEL
				PRINTFORM
			NEXT

			;ボタン
			IF ACTIVE:(LCOUNT:0) == 0
				PRINTFORM [  ]
			ELSE
				PRINTFORM [{LCOUNT:0,2}]
			ENDIF

			;項目名
			PRINTFORM %RESULTS:0, 34, LEFT%

			;現在の設定
			IF RESULTS:1 != ""
				PRINTFORM 现在设定：%RESULTS:1%
				;TranslatedMark 現在の設定：%RESULTS:1%
			ENDIF
			PRINTL

			;補足
			FOR LCOUNT:1, 2, 5
				IF RESULTS:(LCOUNT:1) != ""
					;インデント
					FOR LCOUNT:2, 0, LEVEL
						PRINTFORM
					NEXT
					PRINTFORML 　%RESULTS:(LCOUNT:1)%
				ENDIF
			NEXT

			RESETCOLOR
		CATCH
			ACTIVE:(LCOUNT:0) = 0
		ENDCATCH
	NEXT
	PRINTL
	;インデント
	FOR LCOUNT:0, 0, LEVEL
		PRINTFORM
	NEXT
	;戻るボタン
	IF LEVEL > 0
		PRINTFORML [ 0] 离开
		;TranslatedMark [ 0] 戻る
	ELSE
		PRINTFORML [ 0] 完成
		;TranslatedMark [ 0] 完了
	ENDIF
	;入力
	$INPUT_LOOP
	INPUT

	;戻る
	IF RESULT == 0
		IF LEVEL > 0
			LEVEL --
		ELSE
			BREAK
		ENDIF
	;選択が有効な項目なら
	ELSEIF RESULT >= 1 && RESULT <= 99 && ACTIVE:(RESULT) == 1
		LOCAL = RESULT
		TRYCALLFORM SET_CONFIGURE_%LOCALS%{LOCAL}(1)
		;下の階層へ
		IF RESULT > 0
			TRYCALLFORM SET_CONFIGURE_%LOCALS%{LOCAL}(0)
			LEVELNO:(LEVEL) = LOCAL
			LEVELNAME:(LEVEL) = %RESULTS:0%
			LEVEL ++
		;トップへ
		ELSEIF RESULT < 0
			LEVEL = 0
		ENDIF
	ELSE
		PRINTFORML 输入值不正确。请重新输入
		;TranslatedMark 入力値が不正です。再入力してください
		GOTO INPUT_LOOP
	ENDIF
WEND
REDRAW 1

;=================================================
;コンフィグ項目
;ARG:0 処理ID（0:項目名表示 1:選択されたとき）
;
;(ARG:0が0の時)
;RESULT:0 表示パターン（0:項目の選択有効　-1:項目の選択無効）
;RESULTS:0 項目名(空の場合は項目非表示)
;RESULTS:1 現在の設定
;RESULTS:2～4 補足
;
;(ARG:0が1の時)
;RESULT:0 階層移動（0:移動無し 1:１つ下へ移動 -1:トップに戻る）
;
;=================================================
;コンフィグ項目
;「表示に関する設定」
;=================================================
@SET_CONFIGURE_1(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 显示设置

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

;=================================================
;コンフィグ項目
;「チュートリアルに関する設定」
;=================================================
@SET_CONFIGURE_1_1(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 教程设置

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

;=================================================
;コンフィグ項目
;「閲覧済みフラグのリセット」
;=================================================
@SET_CONFIGURE_1_1_1(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 重置已阅览Flag

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 通过将已阅览Flag全部重置
		;TranslatedMark 閲覧済みフラグを全てリセットすることで
		PRINTFORML 可以再次确认内容
		;TranslatedMark 再度内容を確認することができるようになります。
		PRINTFORML 确定要这么做吗？
		;TranslatedMark 実行しますか？
		PRINTFORML [1] 确定
		;TranslatedMark [1] 実行
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT

		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			FOR LOCAL:0, 400, 500
				FLAG:(LOCAL:0) &= 2
			NEXT
			PRINTFORMW 重置了已阅览的Flag
			;TranslatedMark 閲覧済みフラグをリセットしました
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「チュートリアルの表示」
;=================================================
@SET_CONFIGURE_1_1_2(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 是否显示教程
		IF FLAG:500 == 1
			RESULTS:1 = 显示
		ELSE
			RESULTS:1 = 不显示
		ENDIF

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 显示/隐藏教程
		;TranslatedMark チュートリアルの表示・非表示を切り替えます
		PRINTFORML [1] 不显示教程（默认）
		;TranslatedMark [1] 表示しない(デフォルト)
		PRINTFORML [2] 显示教程
		;TranslatedMark [2] 表示する
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			FLAG:500 = 0
			FOR LOCAL:0, 400, 500
				FLAG:(LOCAL:0) |= 2
			NEXT
			PRINTFORMW 设置了不显示教程
			;TranslatedMark チュートリアルを表示しないよう設定しました
		ELSEIF RESULT == 2
			FLAG:500 = 1
			FOR LOCAL:0, 400, 500
				FLAG:(LOCAL:0) &= 1
			NEXT
			PRINTFORMW 设置了显示教程
			;TranslatedMark チュートリアルを表示するよう設定しました
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「表示速度」
;=================================================
@SET_CONFIGURE_1_2(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 表示速度
		IF FLAG:502 == 0
			RESULTS:1 = 默认
		ELSE
			RESULTS:1 = {FLAG:502}毫秒
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要变更文本速度吗？
		;TranslatedMark 表示速度を変更しますか？
		PRINTFORML 你可以设置每回合日志所显示的秒数
		;TranslatedMark 毎ターンのログを何秒間表示するか設定できます
		PRINTFORML
		PRINTFORML 如果需要更改的话，请输入1200及以上的数字
		;TranslatedMark 変更する場合1200以上の数字を入力してください
		PRINTFORML 单位为毫秒，最低1.2秒
		;TranslatedMark 単位ミリ秒、最低1.2秒
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT > 1
			FLAG:502 = RESULT
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「EPダメージ」
;=================================================
@SET_CONFIGURE_1_3(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = EP伤害
		IF FLAG:501 == 0
			RESULTS:1 = 显示（默认）
		ELSE
			RESULTS:1 = 不显示
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要显示EP伤害吗？
		;TranslatedMark EPダメージを表示しますか？
		PRINTFORML
		PRINTFORML [1] 显示（默认）
		;TranslatedMark [1] オン（デフォルト）
		PRINTFORML [2] 不显示
		;TranslatedMark [2] オフ
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT >= 1 && RESULT <= 2
			FLAG:501 = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「経験レベルアップ」
;=================================================
@SET_CONFIGURE_1_4(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 获取经验的文本
		IF FLAG:503 == 0
			RESULTS:1 = 显示（默认）
		ELSE
			RESULTS:1 = 不显示
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要显示等级提升的文本吗？
		;TranslatedMark 経験レベルアップを表示しますか？
		PRINTFORML
		PRINTFORML [1] 显示（默认）
		;TranslatedMark [1] オン（デフォルト）
		PRINTFORML [2] 不显示
		;TranslatedMark [2] オフ
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT >= 1 && RESULT <= 2
			FLAG:503 = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「ログに改行を挟む」
;=================================================
@SET_CONFIGURE_1_5(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 日志中插入换行符
		IF LOG_NEWLINE == 0
			RESULTS:1 = 不显示（默认）
		ELSE
			RESULTS:1 = 显示
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要在日志中插入换行符吗？
		;TranslatedMark ログに改行を挟みますか？
		PRINTFORML
		PRINTFORML [1] 不显示（默认）
		;TranslatedMark [1] オフ（デフォルト）
		PRINTFORML [2] 显示
		;TranslatedMark [2] オン
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT >= 1 && RESULT <= 2
			LOG_NEWLINE = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「ログの自動スクロール」
;=================================================
@SET_CONFIGURE_1_6(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 以自动滚动的形式显示日志文本
		IF LOG_AUTO_SCROLL == 0
			RESULTS:1 = 不启用（默认）
		ELSE
			RESULTS:1 = 启用
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要以自动滚动的形式显示日志文本吗？
		;TranslatedMark ログを自動スクロールしますか？
		PRINTFORML
		PRINTFORML [1] 不显示（默认）
		;TranslatedMark [1] しない（デフォルト）
		PRINTFORML [2] 显示
		;TranslatedMark [2] する
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT >= 1 && RESULT <= 2
			LOG_AUTO_SCROLL = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「侵食・支配・屈服時のメッセージウェイト」
;=================================================
@SET_CONFIGURE_1_7(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 侵蚀·支配·屈服时的信息文本
		IF LOG_AUTO_SCROLL == 0
			RESULTS:1 = 正常显示
		ELSE
			RESULTS:1 = 总是靠前显示
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 侵蚀·支配·屈服时的信息文本是否总是靠前显示？
		;TranslatedMark 侵食・支配・屈服時にメッセージウェイトを入れますか？
		PRINTFORML
		PRINTFORML [1] 不显示（默认）
		;TranslatedMark [1] しない（デフォルト）
		PRINTFORML [2] 显示
		;TranslatedMark [2] する
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT >= 1 && RESULT <= 2
			FLAG:504 = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「顯示部分信息後自動暫停」
;=================================================
@SET_CONFIGURE_1_8(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 顯示部分信息後自動暫停
		IF FLAG:437 == 1
			RESULTS:1 = 應用
		ELSE
			RESULTS:1 = 關閉
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 顯示部分信息後自動暫停（判斷標準基於補丁製作者的獨斷）？
		;TranslatedMark 侵食・支配・屈服時にメッセージウェイトを入れますか？
		PRINTFORML
		PRINTFORML [1] 關閉（默認）
		;TranslatedMark [1] しない（デフォルト）
		PRINTFORML [2] 應用
		;TranslatedMark [2] する
		PRINTFORML
		PRINTFORML [0] 不變更
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已關閉
			;TranslatedMark キャンセルしました
		ELSEIF RESULT >= 1 && RESULT <= 2
			FLAG:437 = RESULT - 1
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「システムに関する設定」
;=================================================
@SET_CONFIGURE_2(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 系统相关设定

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

;=================================================
;コンフィグ項目
;「傀儡自動振り分け」
;=================================================
@SET_CONFIGURE_2_1(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 傀儡自动分配机制
		IF FLAG:531 == 0
			RESULTS:1 = 不启用
		ELSEIF FLAG:531 == 1
			RESULTS:1 = 监视者
		ELSEIF FLAG:531 == 2
			RESULTS:1 = 家畜
		ELSEIF FLAG:531 == 3
			RESULTS:1 = 战斗员
		ELSEIF FLAG:531 == 4
			RESULTS:1 = 间谍
		ELSEIF FLAG:531 == 5
			RESULTS:1 = 恶堕少女（如果你不具备恶堕的能力，则随机）

		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 傀儡自动分配功能
		;TranslatedMark 傀儡自動振り分けをします
		PRINTFORML [1] 我想手动配置她们
		;TranslatedMark [1] 特攻隊などにしたいので手動で振り分ける
		PRINTFORML [2] 监视者
		;TranslatedMark [2] 監視者
		PRINTFORML [3] 家畜
		PRINTFORML [4] 战斗员
		;TranslatedMark [4] 戦闘員
		PRINTFORML [5] 间谍
		;TranslatedMark [5] スパイ
		PRINTFORML [6] 恶堕少女
		;TranslatedMark [6] 悪堕ち
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT == 1
			FLAG:531 = 0
			PRINTFORMW 手动分配
			;TranslatedMark 手動で振り分けます
		ELSEIF RESULT == 2
			FLAG:531 = 1
			PRINTFORMW 自动分配到监视者
			;TranslatedMark 自動で監視者に振り分けます
		ELSEIF RESULT == 3
			FLAG:531 = 2
			PRINTFORMW 自动分配到家畜
			;TranslatedMark 自動で家畜に振り分けます
		ELSEIF RESULT == 4
			FLAG:531 = 3
			PRINTFORMW 自动分配到战斗员
			;TranslatedMark 自動で戦闘員に振り分けます
		ELSEIF RESULT == 5
			FLAG:531 = 4
			PRINTFORMW 自动分配到间谍
			;TranslatedMark 自動でスパイに振り分けます
		ELSEIF RESULT == 6
			FLAG:531 = 5
			PRINTFORMW 自动分配到恶堕少女
			;TranslatedMark 自動で悪堕ちに振り分けます

		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「旧作キャラ」
;=================================================
@SET_CONFIGURE_2_7(ARG)
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 旧作人物
		IF FLAG:537 == 0
			RESULTS:1 = 允许出场
		ELSE
			RESULTS:1 = 不允许出场
		ENDIF
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要允许旧作人物出场吗？
		;TranslatedMark 旧作キャラを出しますか？
		PRINTFORML （你可以在初期设定时防止随机选择中出现旧作人物）
		;TranslatedMark （初期設定時のランダム決定の際に旧作キャラが出ないようにできます）
		PRINTFORML [1] 允许
		;TranslatedMark [1] 出す
		PRINTFORML [2] 不允许
		;TranslatedMark [2] 出さない
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1
		ELSEIF RESULT == 1
			FLAG:537 = 0
			PRINTFORMW 允许旧作人物登场
			;TranslatedMark 旧作キャラを出します
		ELSEIF RESULT == 2
			FLAG:537 = 1
			PRINTFORMW 旧作人物现在不会登场了
			;TranslatedMark 旧作キャラを出しません
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「口上に関する設定」
;=================================================
@SET_CONFIGURE_3(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 口上相关设定

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

;=================================================
;コンフィグ項目
;「口上文字色変更」
;=================================================
@SET_CONFIGURE_3_1(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 口上文字色変更

	;---選択時の処理---
	ELSEIF ARG == 1
		CALL CHANGE_PT_KOJO_COLOR
	ENDIF

;=================================================
;コンフィグ項目
;「口上詳細設定」
;=================================================
@SET_CONFIGURE_3_2(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 口上详细设定

	;---選択時の処理---
	ELSEIF ARG == 1
		CALL KOJO_SELECT
	ENDIF

;=================================================
;コンフィグ項目
;「素質に関する設定」
;=================================================
@SET_CONFIGURE_4(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 素质相关设定

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

;=================================================
;コンフィグ項目
;「陥没乳首」
;=================================================
@SET_CONFIGURE_4_1(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 陷没乳首

		IF FLAG:531 == 0
			RESULTS:1 = OFF
		ELSEIF FLAG:531 == 1
			RESULTS:1 = 全员持有
		ELSE
			RESULTS:1 = 随机持有
		ENDIF

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 如果将目前的设定保存到全局设置的话，那么往后的二周目也将会自动应用此配置
		;TranslatedMark グローバルセーブに保存すると2周目以降は自動で同じ設定が適用されます
		PRINTFORML
		PRINTFORML [1] OFF（默认）
		;TranslatedMark [1] OFF(デフォルト)
		PRINTFORML [2] 全员陷没乳首
		;TranslatedMark [2] 全員陥没乳首
		PRINTFORML [3] 随机几人有陷没乳首
		;TranslatedMark [3] ランダムで何人か陥没乳首
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		;1～2
		ELSEIF RESULT >= 1 && RESULT <= 3
			FLAG:531 = RESULT - 1
			IF RESULT == 1
				PRINTFORMW 设定完成
				;TranslatedMark 設定しました
			ELSEIF RESULT == 2
				FOR LOCAL:1, 1, CHARANUM
					TALENT:(LOCAL:1):159 = 1
					PRINTFORML 发现了%CALLNAME:(LOCAL:1)%是陷没乳首！
					;TranslatedMark %CALLNAME:(LOCAL:1)%が陥没乳首なのが発覚しました
				NEXT
			ELSEIF RESULT == 3
				FOR LOCAL:1, 1, CHARANUM
					IF RAND:2 == 0
						TALENT:(LOCAL:1):159 = 1
						PRINTFORML 发现了%CALLNAME:(LOCAL:1)%是陷没乳首！
						;TranslatedMark %CALLNAME:(LOCAL:1)%が陥没乳首なのが発覚しました
					ENDIF
				NEXT
			ENDIF
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;ぱにめーしょんアペンドコンフィグ項目
;ARG:0 処理ID（0:項目名表示 1:選択されたとき）
;
;(ARG:0が0の時)
;RESULT:0 表示パターン（0:項目の選択有効　-1:項目の選択無効）
;RESULTS:0 項目名(空の場合は項目非表示)
;RESULTS:1 現在の設定
;RESULTS:2～4 補足
;
;(ARG:0が1の時)
;RESULT:0 階層移動（0:移動無し 1:１つ下へ移動 -1:トップに戻る）
;
;=================================================
;コンフィグ項目
;「待機画面のパラメータ表示に関する設定」
;ウォッチャー君機能について:80
;=================================================
@SET_CONFIGURE_80(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 待机画面参数显示相关设置

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

@SET_CONFIGURE_80_80(ARG)

	;---項目の表示---
	IF ARG == 0
		IF ANIME_CONFIG(ウォッチャー君機能)
			RESULTS:0 = 显示参数(ON)
		ELSE
			RESULTS:0 = 不显示参数(OFF)
		ENDIF

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 通过待机画面上的彩条显示参数
		;TranslatedMark 待機画面のカラーバーによるパラメータ表示の
		PRINTFORML 在显示·不显示之间切换。
		;TranslatedMark 表示･非表示を切り替えます。
		PRINTFORML [1] 显示（默认）
		;TranslatedMark [1] 表示する(デフォルト)
		PRINTFORML [2] 不显示
		;TranslatedMark [2] 表示しない
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			RESULT = ANIME_CONFIG(ウォッチャー君機能 , 1)
			SETCOLOR 0xA260BF
			PRINTFORML 从触手迷宫中派出了监视者...
			;TranslatedMark 触手迷宮からウォッチャーが派遣された……
			RESETCOLOR
			PRINTFORMW 设置为在待机画面上显示彩条
			;TranslatedMark 待機画面にカラーバーを表示するよう設定しました
		ELSEIF RESULT == 2
			RESULT = ANIME_CONFIG(ウォッチャー君機能 , 0)
			SETCOLOR 0xA260BF
			PRINTFORML 不再被安排工作的监视者回到了触手迷宫...
			;TranslatedMark 職を失ったウォッチャーは触手迷宮に帰っていった……
			RESETCOLOR
			PRINTFORMW 不再在待机画面上显示彩条
			;TranslatedMark 待機画面にカラーバーを表示しないよう設定しました
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

@SET_CONFIGURE_80_81(ARG)

	;---項目の表示---
	IF ARG == 0 && ANIME_CONFIG(ウォッチャー君機能)
		RESULTS:0 = ∟更改显示形式
	;---選択時の処理---
	ELSEIF ARG == 1
		CALL PALAMSPREAD_WSELECT
	ENDIF

@SET_CONFIGURE_80_82(ARG)
#DIM LCOUNT, 2
#DIM FLAME
#DIM FAST

	;---項目の表示---
	IF ARG == 0 && ANIME_CONFIG(ウォッチャー君機能)
		RESULTS:0 = ∟更改彩条显示速度
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 更改彩条的显示速度。
		;TranslatedMark カラーバーの増加速度を変更します。
		PRINTFORML [1] 1倍速（默认）
		;TranslatedMark [1] 1倍速(デフォルト)
		PRINTFORML [2] 2倍速
		PRINTFORML [3] 3倍速
		PRINTFORML [4] 仅显示结果
		;TranslatedMark [4] 結果のみ
		PRINTFORML
		PRINTFORML [5] 更改每一帧的变化量
		;TranslatedMark [5] 1フレームの変化量を変更する
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			PALAMSPREAD_WFAST = 0
			PRINTFORML 设定为匀速。
			;TranslatedMark デフォルトの等速にしました
		ELSEIF RESULT == 2
			PALAMSPREAD_WFAST = 5
			PRINTFORML 设定为二倍速。
			;TranslatedMark デフォルトの2倍速にしました
		ELSEIF RESULT == 3
			PALAMSPREAD_WFAST = 9
			PRINTFORML 设定为三倍速。
			;TranslatedMark デフォルトの3倍速にしました
		ELSEIF RESULT == 4
			PALAMSPREAD_WFAST = 10
			PRINTFORML 设定为仅显示结果。
			;TranslatedMark 結果のみにしました
		ELSEIF RESULT == 5
			PRINTFORML 设定了每一帧的变化量。
			;TranslatedMark 1フレームの変化量を入力してください。
			PRINTFORML （{PALAMSPREAD_WFLAME}:現在値，0：取消，180：默认值）
			;TranslatedMark （{PALAMSPREAD_WFLAME}:現在値、0：キャンセル、180：デフォルト値）
				INPUT
				IF RESULT > 0
					PALAMSPREAD_WFLAME = RESULT
					PRINTFORML 每帧变更量设定为{PALAMSPREAD_WFLAME}。
					;TranslatedMark 1フレームで{PALAMSPREAD_WFLAME}ずつ増加するようにしました
				ELSEIF RESULT == 0
					PRINTFORML 已取消
					;TranslatedMark キャンセルしました
				ENDIF
		ELSE
			GOTO INPUT_LOOP
		ENDIF

		IF RESULT > 0
			SIF PALAMSPREAD_WFLAME == 0
				PALAMSPREAD_WFLAME = 180

			FLAME = PALAMSPREAD_WFLAME
			FAST = 10 - PALAMSPREAD_WFAST

			FOR LCOUNT , 0 ,10000
				IF LCOUNT*FLAME < 10000
					PRINTFORM [
					CALL ANIMATE_COLORBAR(0xFFFFFF , 0 , 10000-LCOUNT*FLAME , 10000)
					PRINTFORML ] ({10000-LCOUNT*FLAME , 5}/10000)
				ELSE
					PRINTFORM [
					CALL  ANIMATE_COLORBAR(0xFFFFFF , 0 , 10000-LCOUNT*FLAME , 10000)
					PRINTFORMW ] ({0 , 5}/10000)
					BREAK
				ENDIF
				SIF FAST > 0
					TWAIT FAST , 0
				CLEARLINE 1
			NEXT
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「待機画面のパラメータ表示に関する設定」
;PALAMSPREADについて:81
;=================================================
@SET_CONFIGURE_81(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 待机画面以外相关设置

	;---選択時の処理---
	ELSEIF ARG == 1
		RETURN 1
	ENDIF

@SET_CONFIGURE_81_80(ARG)
#DIM LCOUNT
#DIM ALIGN_BUTTON
	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 选择需要显示参数变化的角色

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 选择要在待机画面外显示参数变化的角色
		;TranslatedMark 待機画面以外でパラメータを表示するキャラを選択します。

		$INPUT_LOOP
		DRAWLINE

		ALIGN_BUTTON = 0
		VARSET LOCAL

		FOR LCOUNT , 1 , CHARANUM
			IF PALAMSPREAD:LCOUNT
				SETCOLOR 0x10EEEE
			ENDIF
			PRINTFORM 　[{LCOUNT:LOCAL,3}] %CALLNAME:(LCOUNT),16,LEFT%
			RESETCOLOR

			LOCAL:LCOUNT = 1
			ALIGN_BUTTON += 1
			IF (ALIGN_BUTTON % 4) == 0
				PRINTL
			ENDIF
		NEXT
		PRINTL
		DRAWLINE
		PRINTFORML [900] 全部显示
		;TranslatedMark [900] 全員表示
		PRINTFORML [901] 全部不显示
		;TranslatedMark [901] 全員非表示
		PRINTL
		PRINTFORML [0] 确定
		;TranslatedMark [0] 決定
		INPUT

		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT > 0 && RESULT <= FLAG:キャラ人数 && LOCAL:RESULT
			IF !PALAMSPREAD:RESULT
				PALAMSPREAD:RESULT = 1
			ELSE
				PALAMSPREAD:RESULT = 0
			ENDIF
			GOTO INPUT_LOOP
		ELSEIF RESULT == 900
			FOR LCOUNT , 1 , CHARANUM + 1
				PALAMSPREAD:LCOUNT = 1
			NEXT
			GOTO INPUT_LOOP
		ELSEIF RESULT == 901
			FOR LCOUNT , 1 , CHARANUM + 1
				PALAMSPREAD:LCOUNT = 0
			NEXT
			GOTO INPUT_LOOP
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

@SET_CONFIGURE_81_81(ARG)
#DIM LCOUNT, 2
#DIM FLAME
#DIM FAST
#DIM DELAY

	;---項目の表示---
	IF ARG == 0 && ANIME_CONFIG(ウォッチャー君機能)
		RESULTS:0 = ∟アニメーションの早さ
	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 更改彩条的显示速度。
		;TranslatedMark カラーバーの増加速度を変更します。
		PRINTFORML [1] 1倍速（默认）
		;TranslatedMark [1] 1倍速(デフォルト)
		PRINTFORML [2] 2倍速
		PRINTFORML [3] 3倍速
		PRINTFORML [4] 仅显示结果
		;TranslatedMark [4] 結果のみ
		PRINTFORML
		PRINTFORML [5] 更改每一帧的变化量
		;TranslatedMark [5] 1フレームの変化量を変更する
		PRINTFORML [6] 更改开始与结束时的延迟量
		;TranslatedMark [6] 開始時と終了時のディレイ量を変更する
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			PALAMSPREAD_FAST = 0
			PRINTFORML 设定为匀速。
			;TranslatedMark デフォルトの等速にしました
		ELSEIF RESULT == 2
			PALAMSPREAD_FAST = 5
			PRINTFORML 设定为二倍速。
			;TranslatedMark デフォルトの2倍速にしました
		ELSEIF RESULT == 3
			PALAMSPREAD_FAST = 9
			PRINTFORML 设定为三倍速。
			;TranslatedMark デフォルトの3倍速にしました
		ELSEIF RESULT == 4
			PALAMSPREAD_FAST = 10
			PRINTFORML 设定为仅显示结果。
			;TranslatedMark 結果のみにしました
		ELSEIF RESULT == 5
			PRINTFORML 设定了每一帧的变化量。
			;TranslatedMark 1フレームの変化量を入力してください。
			PRINTFORML （{PALAMSPREAD_FLAME}:現在値，0：取消，180：默认值）
			;TranslatedMark （{PALAMSPREAD_FLAME}:現在値、0：キャンセル、180：デフォルト値）
				INPUT
				IF RESULT > 0
					PALAMSPREAD_FLAME = RESULT
					PRINTFORML 每帧变更量设定为{PALAMSPREAD_FLAME}。
					;TranslatedMark 1フレームで{PALAMSPREAD_FLAME}ずつ増加するようにしました
				ELSEIF RESULT == 0
					PRINTFORML 已取消
					;TranslatedMark キャンセルしました
				ENDIF
		ELSEIF RESULT == 6
			PRINTFORML 输入开始和结束时的延迟量。
			;TranslatedMark 開始時と終了時のディレイ量を入力してください。
			PRINTFORML （{PALAMSPREAD_DELAY}：現在値，0：取消，180：默认值）
			;TranslatedMark （{PALAMSPREAD_DELAY}：現在値、0：キャンセル、300：デフォルト値）
				INPUT
				IF RESULT > 0
					PALAMSPREAD_DELAY = RESULT
					PRINTFORML 开始与结束时的延迟量设定为{PALAMSPREAD_FLAME}。
					;TranslatedMark 開始時と終了時に{PALAMSPREAD_DELAY}だけディレイをかけるようにしました
				ELSEIF RESULT == 0
					PRINTFORML 已取消
					;TranslatedMark キャンセルしました
				ENDIF
		ELSE
			GOTO INPUT_LOOP
		ENDIF

		IF RESULT > 0
			SIF PALAMSPREAD_FLAME == 0
				PALAMSPREAD_FLAME = 180

			FLAME = PALAMSPREAD_FLAME
			FAST = 10 - PALAMSPREAD_FAST
			DELAY = PALAMSPREAD_DELAY

			FOR LCOUNT , 0 ,10000
				IF LCOUNT*FLAME < 10000
					PRINTFORM [
					CALL ANIMATE_COLORBAR(0xFFFFFF , 0 , 10000-LCOUNT*FLAME , 10000)
					PRINTFORML ] ({10000-LCOUNT*FLAME , 5}/10000)
				ELSE
					PRINTFORM [
					CALL  ANIMATE_COLORBAR(0xFFFFFF , 0 , 10000-LCOUNT*FLAME , 10000)
					PRINTFORMW ] ({0 , 5}/10000)
					BREAK
				ENDIF
				SIF LCOUNT == 0
					TWAIT DELAY , 0
				SIF FAST > 0
					TWAIT FAST , 0
				CLEARLINE 1
			NEXT
			TWAIT DELAY , 0
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「ゲームの難易度」
;=================================================
@SET_CONFIGURE_85(ARG)
#DIM LCOUNT
#DIM ALIGN_BUTTON

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 选择启用口上的角色

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 选择是否启用对应角色的口上。
		;TranslatedMark 口上の文字送りウェイトのありなしをキャラごとに設定できます。

		$INPUT_LOOP
		DRAWLINE

		ALIGN_BUTTON = 0
		VARSET LOCAL

		FOR LCOUNT , 1 , CHARANUM
			IF KOJOWAIT:LCOUNT
				SETCOLOR 0x10EEEE
			ENDIF
			PRINTFORM 　[{LCOUNT:LOCAL,3}] %CSVNAME(NO:LCOUNT),16,LEFT%
			RESETCOLOR

			LOCAL:LCOUNT = 1
			ALIGN_BUTTON += 1
			IF (ALIGN_BUTTON % 4) == 0
				PRINTL
			ENDIF
		NEXT
		PRINTL
		DRAWLINE
		PRINTFORML [900] 全员开启
		;TranslatedMark [900] 全員ウェイトあり
		PRINTFORML [901] 全员关闭
		;TranslatedMark [901] 全員ウェイトなし
		PRINTL
		PRINTFORML [0] 确定
		;TranslatedMark [0] 決定
		INPUT

		IF RESULT == 0

		ELSEIF RESULT > 0 && RESULT <= FLAG:キャラ人数 && LOCAL:RESULT
			IF !KOJOWAIT:RESULT
				KOJOWAIT:RESULT = 1
			ELSE
				KOJOWAIT:RESULT = 0
			ENDIF
			GOTO INPUT_LOOP
		ELSEIF RESULT == 900
			FOR LCOUNT , 1 , CHARANUM + 1
				KOJOWAIT:LCOUNT = 1
			NEXT
			GOTO INPUT_LOOP
		ELSEIF RESULT == 901
			FOR LCOUNT , 1 , CHARANUM + 1
				KOJOWAIT:LCOUNT = 0
			NEXT
			GOTO INPUT_LOOP
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF
;=================================================
;コンフィグ項目
;「ゲームの難易度」
;=================================================
@SET_CONFIGURE_96(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 游戏难易度调整
		IF FLAG:4 == -1
			RESULTS:1 = cheat
		ELSEIF FLAG:4 == 0
			RESULTS:1 = Easy
		ELSEIF FLAG:4 == 1
			RESULTS:1 = Normal
		ELSEIF FLAG:4 == 2
			RESULTS:1 = Hard
		ELSE
			RESULTS:1 = Lunatic
		ENDIF

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 无法更改游戏难度
		;TranslatedMark ゲームの難易度は変更できません
	ENDIF

;=================================================
;コンフィグ項目
;「現在の設定をデフォルトとして保存」
;=================================================
@SET_CONFIGURE_97(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 保存当前设定以用于下周目引继

	;---選択時の処理---
	ELSEIF ARG == 1
		LOCAL:0 = 0
		PRINTFORML 保存的设定将会被引继到下周目
		;TranslatedMark コンフィグ設定を次週に引継げます
		PRINTFORML 相关数据将被保存在global.sav文件中
		;TranslatedMark データは gloval.sav ファイルに保存されます
		PRINTFORML 现在要保存吗？
		;TranslatedMark セーブを行ってよろしいですか？
		PRINTFORML
		PRINTFORML [1] 全部保存
		;TranslatedMark [1] 全てセーブする
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			FOR LOCAL:0, 0, 201
				GLOBAL:(LOCAL:0) = FLAG:(LOCAL:0 + 500)
			NEXT
			SAVEGLOBAL
			PRINTFORMW 保存完成
			;TranslatedMark 保存しました
		ELSEIF RESULT == 2
			FOR LOCAL:0, 0, 201
				GLOBAL:(LOCAL:0) = FLAG:(LOCAL:0 + 500)
			NEXT
			SAVEGLOBAL
			PRINTFORMW 保存完成
			;TranslatedMark 保存しました
		ELSEIF RESULT == 3
			SAVEGLOBAL
			PRINTFORMW 保存完成
			;TranslatedMark 保存しました
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「設定の初期化」
;=================================================
@SET_CONFIGURE_98(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 设置初始化

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要将当前设定全部初始化吗？
		;TranslatedMark 現在の設定を初期化しますか？
		PRINTFORML [1] 确定
		;TranslatedMark [1] 実行
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			VARSET FLAG, 0, 500, 601
			PRINTFORMW 初始化完成！
			;TranslatedMark 初期化しました！
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================
;コンフィグ項目
;「ログ出力」
;=================================================
@SET_CONFIGURE_99(ARG)

	;---項目の表示---
	IF ARG == 0
		RESULTS:0 = 输出日志

	;---選択時の処理---
	ELSEIF ARG == 1
		PRINTFORML 要在屏幕中输出日志吗？
		;TranslatedMark 画面ログを出力しますか？
		PRINTFORML ※如果日志文件已存在的话，它将被覆盖
		;TranslatedMark ※既にログファイルが存在する場合は上書きとなります。
		PRINTFORML [1] 确定
		;TranslatedMark [1] 実行
		PRINTFORML
		PRINTFORML [0] 取消
		;TranslatedMark [0] キャンセル
		$INPUT_LOOP
		INPUT
		IF RESULT == 0
			PRINTFORML 已取消
			;TranslatedMark キャンセルしました
		ELSEIF RESULT == 1
			OUTPUTLOG
			PRINTFORMW 输出完成！
			;TranslatedMark 出力しました！
		ELSE
			GOTO INPUT_LOOP
		ENDIF
	ENDIF

;=================================================


code:
;■コンフィグ値を保存する変数一覧

#DIM SAVEDATA KOJOWAIT , 200	;口上メッセージ表示後の自動PRINTFORMW 0:ウェイトなし　1:ウェイトあり

;ログの改行に
#DIM SAVEDATA LOG_NEWLINE

;メッセージを表示したフラグ、その場使い捨てなのでSAVEDATAの必要はない
#DIM MESSAGE_DISPLAY_FLAG

;ログの自動スクロールに
#DIM SAVEDATA LOG_AUTO_SCROLL


code:
;-------------------------------------------------
;■PALAMSPREAD_WATCHER	Auther:こいしペロリストの人
;	SYSTEM_WATCHER（「ウォッチャー君機能」）の機能その１
;	引数WATCHER_IDのパラメータの一覧を表示します
;-------------------------------------------------
;■動作必須モジュール
;	ぱにめーしょん \ 触手変APPEND \ PALAMSPREAD
;-------------------------------------------------
;■PALAMSPREAD_WATCHER独自の変数（詳細はPALAMSPREAD.ERH）
;-------------------------------------------------

;-------------------------------------------------
;パラメータ成長アニメーション：@PALAMSPREAD_WENTRY
;	ウォッチャー君が監視するキャラの現パラメータを専用のENTRYに保存します
;-------------------------------------------------
@PALAMSPREAD_WENTRY(ARG)
#DIM LCOUNT ;ループ用
#DIM CHARA_ID

;ウォッチャー君機能のWATCHER_IDを取得
CHARA_ID = ARG

;ウォッチャー君機能用のスナップを保存する
FOR LCOUNT, 0 , 17
	SIF LCOUNT < 6
		SNAPWENTRY_BASE:LCOUNT = BASE:CHARA_ID:LCOUNT
	SNAPWENTRY_EXP:LCOUNT = EXP:CHARA_ID:LCOUNT
	SNAPWENTRY_ABL:LCOUNT = ABL:CHARA_ID:LCOUNT
NEXT
;絶頂回数のEXP:20はEPのループ判定に必要なので保存
SNAPWENTRY_EXP:20 = EXP:CHARA_ID:20

;-------------------------------------------------
;パラメータ成長アニメーション@PALAMSPREAD_WATCHER
;	ウォッチャー君が監視するキャラのパラ値をカラーバーで表示します
;-------------------------------------------------
@PALAMSPREAD_WATCHER(ARG)
#DIM LCOUNT,2 ;ループ用
#DIM CHARA_ID
#DIM FAST
#DIM FINISH
#DIM FLAME

;///異常検知///
;異常なFLAME値の修正、フリーズ回避のため念のため
SIF PALAMSPREAD_WFLAME == 0
	PALAMSPREAD_WFLAME = 180

;表示オン
IF ANIME_CONFIG(ウォッチャー君機能)
	;///初期化///
	;フラグの初期化
	CHARA_ID = ARG
	FAST = 10 - PALAMSPREAD_WFAST
	FINISH = 0
	FLAME = PALAMSPREAD_WFLAME
	ENTRY_FLAG = 0
	ENTRY_ECSTASY = 0

	;現在のパラ値をENTRY:CHARA_IDに保存
	FOR LCOUNT, 0 , 17
		SIF LCOUNT < 6
			ENTRY_BASE:LCOUNT = SNAPWENTRY_BASE:LCOUNT
		ENTRY_EXP:LCOUNT = SNAPWENTRY_EXP:LCOUNT
		ENTRY_ABL:LCOUNT = SNAPWENTRY_ABL:LCOUNT
	NEXT
	ENTRY_EXP:20 = SNAPWENTRY_EXP:20

	;変化量を取得
	SIF !PALAMSPREAD_DIFF(CHARA_ID)
		FAST = 0

	;///出力処理はココから///
	;状態異常の出力
	PRINTFORM
	FOR LCOUNT , 20 , 50
		IF CFLAG:WATCHER_ID:LCOUNT > 0
			PRINTFORM %CFLAGNAME:LCOUNT%
			SIF CFLAG:WATCHER_ID:LCOUNT > 1
				PRINTFORM ({CFLAG:WATCHER_ID:LCOUNT})
			PRINTFORM
		ENDIF
	NEXT
	PRINTFORML
	;アニメーション用再起処理
	;本来はループだが再起エラーが怖いのでFOR文で終端を作る
	FOR LCOUNT, 0 , 500
		;FLAME加速処理
		SIF FLAME <= 500
		FLAME += 10

		;カラーバー出力
		CALL ANIMATE_ALLPALAM(CHARA_ID, FLAME)

		;再起終了フラグの回収
		FINISH = RESULT

		;下の空間調整
		FOR LCOUNT:1, 0 , WATCHER_LINAGE
			PRINTFORML
		NEXT

		;絶頂時のフレーバ演出(ウォッチャー君機能では色変化のみ)
		IF GETBIT(ENTRY_ECSTASY, 0)
			SETBIT ENTRY_ECSTASY , 1
			CLEARBIT ENTRY_ECSTASY , 0
		ENDIF

		;再起要求による終了処理
		SIF FINISH == 1
			BREAK

		SIF FAST > 0
			TWAIT FAST , 0

		;カラーバーの消去
		CLEARLINE (PS_LINAGE + WATCHER_LINAGE + BUFFER_LINAGE)
	NEXT

	;下の空間を詰めて後処理
	CLEARLINE WATCHER_LINAGE
ELSE
;表示オフ

ENDIF


code:
;-------------------------------------------------
;■PALAMSPREAD_WATCHER	Auther:こいしペロリストの人
;	通称「ウォッチャー君機能」
;	本機能はぱにめーしょん_触手変APPENDの PALAMSPREAD を使用しています
;-------------------------------------------------

;-------------------------------------------------
;パラメータ成長アニメーション@PALAMSPREAD_WATCHER
;	ウォッチャー君が監視するキャラのパラ値をカラーバーで表示します
;	処理終了時に自動的にPALAMSPREAD_WENRYが呼び出されます
;-------------------------------------------------
@POSITION_WATCHER(ARG)
#DIM LCOUNT ;ループ用
#DIM CHARA_ID
#DIM POSITION
#DIM LINAGE
#DIM ALIGN_BUTTON

;表示オン
IF ANIME_CONFIG(ウォッチャー君機能)

	;///初期化///
	;CHARA_IDを取得
	CHARA_ID = ARG
	;現在地を取得
	POSITION = CFLAG:CHARA_ID:5

	;///出力処理///
	PRINTFORM 　%POSITION_NAME(POSITION)%
	IF CHECK_BASE(POSITION)
		IF (WATCHER_ID == FLAG:5 && CFLAG:(FLAG:5):5 == POSITION) || (GETBIT(FLAG:(50 + POSITION) ,2) && CFLAG:(FLAG:5):5 == POSITION)
			PRINTFORM （母巣）
			;TranslatedMark (マザーネスト)
		ELSEIF GETBIT(FLAG:(50 + POSITION) ,2)
			PRINTFORM （繁殖地）
			;TranslatedMark (コロニー)
		ELSEIF POSITION == CSVCFLAG(NO:CHARA_ID , 5)
			PRINTFORM （自宅）
			;TranslatedMark (自宅)
		ELSE
			PRINTFORM （訪問地）
			;TranslatedMark (訪問地)
		ENDIF
		PRINTFORM  - 地區感染率　{FLAG:(70 + POSITION)}
		; PRINTFORM  - 拠点汚染度　{FLAG:(70 + POSITION)}
	ELSE
		SIF POSITION == CSVCFLAG(NO:CHARA_ID , 5)
			PRINTFORM （自宅）
			;TranslatedMark (自宅)
	ENDIF
	PRINTFORM 　　%STR:(10 + POSITION)%
	PRINTFORML
	;拠点住人出力
	ALIGN_BUTTON = 0
	LINAGE = 4
	PRINTFORML 　　【居民】
	; PRINTFORML 　　【住人】
	LINAGE--
	PRINTFORM
	FOR LCOUNT , 1 , CHARANUM
		IF CSVCFLAG(NO:LCOUNT , 5) == POSITION
			IF LCOUNT == WATCHER_ID
				SETCOLOR 0xA260BF
			ELSEIF CFLAG:LCOUNT:屈服済
				SETCOLOR 0x70FF70
			ELSEIF CFLAG:LCOUNT:支配済
				SETCOLOR 0x2070FF
			ELSEIF CFLAG:LCOUNT:侵食済
				SETCOLOR 0xF07090
			ELSEIF !CFLAG:LCOUNT:住所特定
				SETCOLOR 0x303030
			ENDIF
			PRINTFORM %CALLNAME:LCOUNT, 15, LEFT%
			RESETCOLOR
			ALIGN_BUTTON++
			IF ALIGN_BUTTON % 5 == 0
				PRINTFORML
				PRINTFORM
				LINAGE--
			ENDIF
		ENDIF
	NEXT
	FOR LCOUNT , 0 , LINAGE
		PRINTFORML
	NEXT
	;拠点訪問者出力
	ALIGN_BUTTON = 0
	LINAGE = 5
	;#無所属、またはチルノ達は訪問者はいないものとする？
	IF POSITION != 0 && POSITION != 3
		PRINTFORML 　　【訪問者】
		;TranslatedMark 【訪問者】
		LINAGE--
		PRINTFORM
		FOR LCOUNT , 1 , CHARANUM
			IF CSVCFLAG(NO:LCOUNT , 5) != POSITION && CFLAG:LCOUNT:5 == POSITION
				IF LCOUNT == WATCHER_ID
					SETCOLOR 0xA260BF
				ELSEIF CFLAG:LCOUNT:屈服済
					SETCOLOR 0x70FF70
				ELSEIF CFLAG:LCOUNT:支配済
					SETCOLOR 0x2070FF
				ELSEIF CFLAG:LCOUNT:侵食済
					SETCOLOR 0xF07090
				ENDIF
				PRINTFORM %CALLNAME:LCOUNT, 16, LEFT%
				RESETCOLOR
				ALIGN_BUTTON++
				IF ALIGN_BUTTON % 4 == 0
					PRINTFORML
					PRINTFORM
					LINAGE--
				ENDIF
			ENDIF
		NEXT
	ENDIF
	FOR LCOUNT , 0 , LINAGE
		PRINTFORML
	NEXT

ELSE
;表示オフ

ENDIF


code:
;-------------------------------------------------
;■WATCHER_SYSTEM	Auther:こいしペロリストの人
;	通称「ウォッチャー君機能」
;	WATCHER_IDの管理、ウォッチャー君機能の呼び出しを行います
;	引数に基づきPALAMSPREAD_WATCHERとPOSITION_WATCHERをに基づき表示します
;-------------------------------------------------
;■引数
;ARG	:WATCHER_FLAGの値（SHOPでスイッチング）
;	   0:PALAMSPREAD_WATCHER
;	   1:POSITION_WATCHER
;-------------------------------------------------
;■ボタン
;	[80]:WATCHER_IDのセレクト
;	[81]:WATCHER_FLAGのスイッチング
;  [100]:TALK、TALK2のショートカット
;-------------------------------------------------
;■メッセージ呼び出し（加筆募集中）
;		:SYSTEM_MASSAGE_ウォッチャー君機能
;-------------------------------------------------

;-------------------------------------------------
;ウォッチャー君機能表示切替@WATCHER_SYSTEM
;-------------------------------------------------
@WATCHER_SYSTEM(ARG)
#DIM LCOUNT,2 ;ループ用

;///異常なキャラIDの修正///
IF !CFLAG:WATCHER_ID:6 || WATCHER_ID == 0
	;住所不特定のキャラが読み込まれたときは初期宿主で動かす
	WATCHER_ID = FLAG:5
	CALL PALAMSPREAD_WENTRY(WATCHER_ID)
ENDIF

;名前出力
PRINTFORML [81] - 显示切换
;TranslatedMark [81] - 表示切替
PRINTFORM 【
SETCOLOR 0xA260BF
PRINTFORM %CALLNAME:WATCHER_ID%
RESETCOLOR
PRINTFORM 】　%POSITION_NAME(CSVCFLAG(NO:(WATCHER_ID) , 5))%
IF CSVCFLAG(NO:(WATCHER_ID) , 5) != CFLAG:WATCHER_ID:5
PRINTFORM  > %POSITION_NAME(CFLAG:WATCHER_ID:5)%
ENDIF
PRINTFORML

PRINTFORM
CALL PRINT_MESSAGE(-1 , "ウォッチャー君機能" , WATCHER_ID , CALLNAME:WATCHER_ID)

SELECTCASE ARG
	CASE 0
		CALL PALAMSPREAD_WATCHER(WATCHER_ID)
	CASE 1
		CALL POSITION_WATCHER(WATCHER_ID)
	CASEELSE

ENDSELECT

	;SHOP処理受付
	CALL PRINT_LCL(1)
	CALL PRINT_LCL(0, "　")
	CALL PRINT_LCL(0, "[100] - 与监视对象见面")
	CALL PRINT_LCL(0, "[ 80] - 切换监视对象")
	CALL PRINT_LCL(2)

CALL PALAMSPREAD_WENTRY(WATCHER_ID)


code:
;-------------------------------------------------
;SYSTEM_WATCHER全般
;-------------------------------------------------
#DEFINE	WATCHER_LINAGE 11		;ウォッチャー君機能の出力が完了した後に出力される行数、つまり待機画面(SHOP)の出力行数(現在 10) + 1

#DIM SAVEDATA	WATCHER_ID				;ウォッチャー君が待機画面で追跡するキャラID
#DIM	WATCHER_FLAG			;ウォッチャー君が待機画面で表示切替用フラグ

;-------------------------------------------------
;[0]PALAMSPREAD_WATCHER関連
;-------------------------------------------------
;PALAMSPREADに引数を渡すため独自のグローバル変数を使っています
;
;■スナップショット保存変数（SNAPENTRY値）
;ENTRY値に渡すパラメータのスナップショットを保存
#DIM SAVEDATA	SNAPWENTRY_BASE , 10	;BASE:WATCHER_IDのスナップショット保存値
#DIM SAVEDATA	SNAPWENTRY_EXP , 50		;EXP:WATCHER_IDのスナップショット保存値
#DIM SAVEDATA	SNAPWENTRY_ABL , 20		;ABL:WATCHER_IDのスナップショット保存値

;■コンフィグ値
#DIM SAVEDATA	PALAMSPREAD_WFAST		;アニメーションの早さ
#DIM SAVEDATA	PALAMSPREAD_WFLAME		;アニメーション１フレームのENTRY変化量

;■処理用の揮発変数(ENTRY値)
;PALAMSPREAD.ERHで宣言済み
;ENTRY値を現パラメータに合わせていく過程をバーで出力することによりアニメーションを実現

;#DIM	ENTRY_BASE				アニメーション中のBASE:WATCHER_IDのパラメータ
;#DIM	ENTRY_EXP				アニメーション中のEXP:WATCHER_IDのパラメータ
;#DIM	ENTRY_ABL				アニメーション中のABL:WATCHER_IDのパラメータ
;#DIM	ENTRY_FLAG			(B)	スナップショット保存値と現パラメータが異なるステータスID位置を記憶するビット保存値
;#DIM	ENTRY_DIFF				スナップショット保存値と現パラメータとの変化量の保存値
;#DIM	ENTRY_ECSTASY		(B)	アニメーション中の絶頂の有無を記憶するビット保存値

;-------------------------------------------------
;[1]SYSETEM_WATCHER関連
;-------------------------------------------------
;独自のグローバル変数は使っていません
;
;-------------------------------------------------
;[2]***
;-------------------------------------------------
;