code:
;-------------------------------------------------
;# COM_AUTOSELECT_N_3_コマンドの優先度設定
;-------------------------------------------------
@COM_AUTOSELECT_N_SET_COM_PRIORITY(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET
#DIM L_COUNTER
#DIM RAND_NUM
#DIM COM_AUTO_CATEGORY_PRIORITY_SUM		;コマンド実行優先度の計算に使う一時変数の補助

;-------------------------------------------------
;## リセット
;-------------------------------------------------
VARSET COM_AUTO_COM_PRIORITY, 0
VARSET COM_AUTO_COM_OPTION_PRIORITY, 0

;-------------------------------------------------
;### CATEGORY_1_LIKE_0
;-------------------------------------------------
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
;出会い頭の挨拶補正
IF TFLAG:調教経過時間 == 0
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += 100
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:身体 >= ABL:MAIN_PLAYER:器用 && ABL:MAIN_PLAYER:身体 >= ABL:MAIN_PLAYER:知識 && ABL:MAIN_PLAYER:身体 >= ABL:MAIN_PLAYER:社交 && ABL:MAIN_PLAYER:身体 >= ABL:MAIN_PLAYER:歌唱 && ABL:MAIN_PLAYER:身体 >= ABL:MAIN_PLAYER:料理
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("身体訓練") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("身体訓練")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("身体訓練")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:器用 >= ABL:MAIN_PLAYER:身体 && ABL:MAIN_PLAYER:器用 >= ABL:MAIN_PLAYER:知識 && ABL:MAIN_PLAYER:器用 >= ABL:MAIN_PLAYER:社交 && ABL:MAIN_PLAYER:器用 >= ABL:MAIN_PLAYER:歌唱 && ABL:MAIN_PLAYER:器用 >= ABL:MAIN_PLAYER:料理
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("器用訓練") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("器用訓練")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("器用訓練")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:知識 >= ABL:MAIN_PLAYER:身体 && ABL:MAIN_PLAYER:知識 >= ABL:MAIN_PLAYER:器用 && ABL:MAIN_PLAYER:知識 >= ABL:MAIN_PLAYER:社交 && ABL:MAIN_PLAYER:知識 >= ABL:MAIN_PLAYER:歌唱 && ABL:MAIN_PLAYER:知識 >= ABL:MAIN_PLAYER:料理
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("勉強") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("勉強")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("勉強")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:社交 >= ABL:MAIN_PLAYER:身体 && ABL:MAIN_PLAYER:社交 >= ABL:MAIN_PLAYER:器用 && ABL:MAIN_PLAYER:社交 >= ABL:MAIN_PLAYER:知識 && ABL:MAIN_PLAYER:社交 >= ABL:MAIN_PLAYER:歌唱 && ABL:MAIN_PLAYER:社交 >= ABL:MAIN_PLAYER:料理
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("政務") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("政務")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("政務")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:歌唱 >= ABL:MAIN_PLAYER:身体 && ABL:MAIN_PLAYER:歌唱 >= ABL:MAIN_PLAYER:器用 && ABL:MAIN_PLAYER:歌唱 >= ABL:MAIN_PLAYER:知識 && ABL:MAIN_PLAYER:歌唱 >= ABL:MAIN_PLAYER:社交 && ABL:MAIN_PLAYER:歌唱 >= ABL:MAIN_PLAYER:料理
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("歌唱訓練") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("歌唱訓練")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("歌唱訓練")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF ABL:MAIN_PLAYER:料理 >= ABL:MAIN_PLAYER:身体 && ABL:MAIN_PLAYER:料理 >= ABL:MAIN_PLAYER:器用 && ABL:MAIN_PLAYER:料理 >= ABL:MAIN_PLAYER:知識 && ABL:MAIN_PLAYER:料理 >= ABL:MAIN_PLAYER:社交 && ABL:MAIN_PLAYER:料理 >= ABL:MAIN_PLAYER:歌唱
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("料理") += COM_AUTO_COM_PRIORITY:GET_TRAINNUM("料理")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) += COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("料理")) * 3
ENDIF
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += (TALENT:MAIN_PLAYER:酒豪) * 7
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += (TALENT:MAIN_PLAYER:サボり魔) * 3
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
SIF (TALENT:MAIN_PLAYER:幼稚) || (TALENT:MAIN_PLAYER:下戸) - 7
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("酒を飲む") = 1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += (TALENT:MAIN_PLAYER:酒豪) * 4
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += (TALENT:MAIN_PLAYER:サボり魔) * 6
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += (TALENT:MAIN_PLAYER:服従) * 2 + (TALENT:MAIN_PLAYER:隷属) * 2
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
IF TALENT:MAIN_PLAYER:幼稚
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) = 0
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += (ITEM:ブランデー) * 3
ELSE
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("酒を飲む")) += (ITEM:ライスワイン || ITEM:ラム酒 || ITEM:ウォッカ) * 5
ENDIF
;-------------------------------------------------
;### CATEGORY_2_LIKE_300
;-------------------------------------------------
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("猥談")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += 100
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += 100
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += 100
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += 100
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += 100
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
;終了直前じゃない、前回移動してない
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += 3
IF TFLAG:調教経過時間 != TFLAG:調教ターン数 && TFLAG:調教経過時間 % 5 == 0 && PREVCOM != 390 && PREVCOM != 391
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
ENDIF
;デート終了時
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += 3
IF TFLAG:調教経過時間 == TFLAG:調教ターン数 && PREVCOM != 390 && PREVCOM != 391
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 0)
ENDIF
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += 100
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
;陥落素質がない＆男同士＆両刀ではない＆酔っていない
IF !TALENT:MAIN_PLAYER:恋慕 && !TALENT:MAIN_PLAYER:服従 && !TALENT:MAIN_PLAYER:主人 && IS_SAMESEX_M(MASTER, MAIN_PLAYER) && !TALENT:MAIN_PLAYER:両刀 && PALAM:MAIN_PLAYER:酔い == 0
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) = -1
ENDIF
;デートしていない
IF !TFLAG:デート場所
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("食事") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("食事")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("水浴び") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("水浴び")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("泳ぐ") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("泳ぐ")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("花冠を作る") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("花冠を作る")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("狩りをする") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("狩りをする")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("移動") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("移動")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("帰る") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("帰る")) = -1
	;デートしている
ELSE
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("二人で出掛ける")) = -1
ENDIF

;-------------------------------------------------
;### CATEGORY_3_LIKE_500
;-------------------------------------------------
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("頭を撫でる") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("頭を撫でる")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("櫛で梳かす") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("櫛で梳かす")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("背中を流す") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("背中を流す")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("背中を流す") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("背中を流す") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("背中を流す") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("背中を流す") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
;陥落素質がない＆男同士＆両刀ではない＆酔っていない
IF !TALENT:MAIN_PLAYER:恋慕 && !TALENT:MAIN_PLAYER:服従 && !TALENT:MAIN_PLAYER:主人 && IS_SAMESEX_M(MASTER, MAIN_PLAYER) && !TALENT:MAIN_PLAYER:両刀 && PALAM:MAIN_PLAYER:酔い == 0
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("見つめあう") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("見つめあう")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("スキンシップ") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("スキンシップ")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("髪を梳く") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("髪を梳く")) = -1
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("甘い言葉") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("甘い言葉")) = -1
ENDIF
;-------------------------------------------------
;### CATEGORY_4_LIKE_800
;-------------------------------------------------
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("抱きしめる") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("抱きしめる")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)

COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)				;活発		するのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)			;大人しい	するのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)				;遊び人		するのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)		;活発		されるのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)	;大人しい	されるのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)	;凛とした	されるのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)	;遊び人	されるのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("バードキス") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("バードキス")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)			;大人しい	するのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)			;凛とした	するのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)				;クール		するのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)	;大人しい	されるのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)	;クール	されるのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)	;凛とした	されるのはバード・ソフトキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ソフトキス") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ソフトキス")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)				;活発		するのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)			;クール		するのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)			;凛とした	するのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)			;遊び人		するのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)	;活発		されるのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)	;クール	されるのはソフト・ディープキスを好む
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)	;遊び人	されるのはバード・ディープキスを好む
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("ディープキス") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("ディープキス")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
;-------------------------------------------------
;### CATEGORY_5_LIKE_1500
;-------------------------------------------------
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("エインズの露") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("エインズの露")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("エインズの露") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) + (TALENT:MAIN_PLAYER:幼稚) * 5
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("エインズの露")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) + (TALENT:MAIN_PLAYER:幼稚) * 5
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1) * RAND:4
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("お腹の音を聴く") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("お腹の音を聴く") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("お腹の音を聴く") += AUTO_N_TYPE_魅了(MAIN_TARGET, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("お腹の音を聴く") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("お腹の音を聴く")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("お腹の音を聴く")) += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("お腹の音を聴く")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("お腹の音を聴く")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 0)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("フェラチオ") += GET_INITIATIVE_N_RANK(MAIN_PLAYER)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ")) += GET_INITIATIVE_N_RANK(MAIN_PLAYER) * -1
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("フェラチオ") += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("フェラチオ") += AUTO_N_TYPE_魅了(MASTER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("フェラチオ") += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:GET_TRAINNUM("フェラチオ") += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ")) += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ")) += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ")) += AUTO_N_TYPE_陥落(MAIN_PLAYER, 1)
COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ")) += AUTO_N_TYPE_状態異常(MAIN_PLAYER, 1)
IF ABL:MAIN_TARGET:性知識 >= 1 || ABL:MAIN_PLAYER:性知識 < 3
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("性の知識を教える") = -1
ENDIF
IF ABL:MAIN_PLAYER:性知識 >= 1 && ABL:MAIN_TARGET:性知識 < 3
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("性の知識を教える")) = -1
ENDIF
IF !CFLAG:MAIN_TARGET:妊娠期間
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("お腹の音を聴く") = -1
ENDIF
IF !CFLAG:MAIN_PLAYER:妊娠期間
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("お腹の音を聴く")) = -1
ENDIF
IF !TALENT:MAIN_PLAYER:合意
	COM_AUTO_COM_PRIORITY:GET_TRAINNUM("日常フェラ") = -1
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("日常フェラ")) = -1
ENDIF

;不機嫌補正
IF GROUPMATCH(TOSTR_EMOTION(MAIN_PLAYER), "憂", "悲", "鬱", "恨", "怒", "憤", "怯")
	COM_AUTO_COM_PRIORITY:(ADD_NUM_対象が実行 + GET_TRAINNUM("会話")) += 300000
ENDIF

[IF_DEBUG]
;DEBUGPRINTFORML
;DEBUGPRINTFORML #### DEBUG コマンド優先度登録チェック
FOR L_COUNTER, 300, 500
	SIF TRAINNAME:L_COUNTER == ""
		CONTINUE
	;主人公がプレイヤーのとき限定のもの、特殊なもの
	SIF GROUPMATCH(L_COUNTER, GET_TRAINNUM("会話"), GET_TRAINNUM("身体訓練"), GET_TRAINNUM("器用訓練"), GET_TRAINNUM("歌唱訓練"), GET_TRAINNUM("料理"), GET_TRAINNUM("猥談"), GET_TRAINNUM("二人で出掛ける"), GET_TRAINNUM("告白する"), GET_TRAINNUM("なりゆきまかせ"))
		CONTINUE
	SIF COM_AUTO_COM_PRIORITY:L_COUNTER != 0
		CONTINUE
	;DEBUGPRINTFORML {L_COUNTER, 4}.%@"%TRAINNAME:L_COUNTER%する", 26, LEFT% 未指定です
NEXT
FOR L_COUNTER, ADD_NUM_対象が実行 + 300, ADD_NUM_対象が実行 + 500
	SIF TRAINNAME:(L_COUNTER - ADD_NUM_対象が実行) == ""
		CONTINUE
	SIF GROUPMATCH(L_COUNTER - ADD_NUM_対象が実行, GET_TRAINNUM("告白する"), GET_TRAINNUM("なりゆきまかせ"))
		CONTINUE
	SIF COM_AUTO_COM_PRIORITY:L_COUNTER != 0
		CONTINUE
	;DEBUGPRINTFORML {L_COUNTER, 4}.%@"%TRAINNAME:(L_COUNTER - ADD_NUM_対象が実行)%させる", 26, LEFT% 未指定です
NEXT
[ENDIF]

[IF_DEBUG]
;DEBUGPRINTFORML
;DEBUGPRINTFORML #### #### DEBUG コマンド優先度 禁止前
FOR L_COUNTER, 0, ADD_NUM_対象が実行
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:L_COUNTER, 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
FOR L_COUNTER, ADD_NUM_対象が実行, ADD_NUM_対象が実行 + 1000
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:(L_COUNTER - ADD_NUM_対象が実行), 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
[ENDIF]

;-------------------------------------------------
;## 前回実行コマンド
;	優先度を1/4にする
;-------------------------------------------------
IF TFLAG:調教経過時間 != 0
	IF PREVCOM_TYPE == 0 && COM_AUTO_COM_PRIORITY:(PREVCOM + ADD_NUM_対象が実行) != 0
		COM_AUTO_COM_PRIORITY:(PREVCOM + ADD_NUM_対象が実行) /= 4
	ELSEIF COM_AUTO_COM_PRIORITY:PREVCOM != 0
		COM_AUTO_COM_PRIORITY:PREVCOM /= 4
	ENDIF
ENDIF

;-------------------------------------------------
;## 選択不可能
;	判定用フラグをオンにして、実行可否のみ確かめ
;	不可なら優先度を0にする
;-------------------------------------------------
RAND_NUM = 0
IF GROUPMATCH(TOSTR_EMOTION(MAIN_PLAYER), "憂", "悲", "鬱", "恨", "怒", "憤", "怯")
	RAND_NUM = RAND:500
ENDIF
IF RAND:(ABL:MASTER:主導度Ｎ + 2000) >= RAND:(ABL:MAIN_PLAYER:主導度Ｎ + 2000) + RAND_NUM
	FLAG:主導権所有者 = MASTER
ELSE
	FLAG:主導権所有者 = MAIN_PLAYER
ENDIF

;コマンド判定フラグON
COM_ENABLE = 1

;0～999は主人公がターゲット
CALL CLEAR_MPLY()
CALL CLEAR_MTAR()
CALL ADD_MPLY(MAIN_PLAYER)
CALL ADD_MTAR(MASTER)
FOR L_COUNTER, 0, 1000
	SIF L_COUNTER > VARSIZE("TRAINNAME")
		CONTINUE
	SIF TRAINNAME:L_COUNTER == ""
		CONTINUE
	RESULT = 0
	TRYCALLFORM COM_ABLE{L_COUNTER}
	IF !RESULT
		COM_AUTO_COM_PRIORITY:L_COUNTER = 0
	ENDIF
NEXT

CALL CLEAR_MPLY()
CALL CLEAR_MTAR()
CALL ADD_MPLY(MASTER)
CALL ADD_MTAR(MAIN_PLAYER)
FOR L_COUNTER, 0, 1000
	SIF L_COUNTER > VARSIZE("TRAINNAME")
		CONTINUE
	SIF TRAINNAME:L_COUNTER == ""
		CONTINUE
	RESULT = 0
	TRYCALLFORM COM_ABLE{L_COUNTER}
	IF !RESULT
		COM_AUTO_COM_PRIORITY:(L_COUNTER + 1000) = 0
	ENDIF
NEXT

[IF_DEBUG]
;DEBUGPRINTFORML
;DEBUGPRINTFORML #### DEBUG コマンド優先度 COM_ABLEチェック後
FOR L_COUNTER, 0, ADD_NUM_対象が実行
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:L_COUNTER, 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
FOR L_COUNTER, 1000, ADD_NUM_対象が実行 + 1000
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:(L_COUNTER-1000), 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
[ENDIF]

;コマンド判定フラグOFF
COM_ENABLE = 0

;-------------------------------------------------
;## 正規化
;	コマンドの優先度をカテゴリごとの実行確率に合わせて設定
;-------------------------------------------------
VARSET COM_AUTO_COM_PRIORITY_SUM, 0
VARSET COM_AUTO_COM_CATEGORY_COM_NUM, 0

;すべてのカテゴリの優先度を合計
COM_AUTO_CATEGORY_PRIORITY_SUM = 0
FOR L_COUNTER, 0, COM_AUTO_CATEGORY_LIKE_MAX + 1
	COM_AUTO_CATEGORY_PRIORITY_SUM += MAX(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER, 0)
NEXT
;１以上あれば
IF COM_AUTO_CATEGORY_PRIORITY_SUM >= 1
	FOR L_COUNTER, 0, COM_AUTO_CATEGORY_LIKE_MAX + 1
		COM_AUTO_CATEGORY_PRIORITY:L_COUNTER = COM_AUTO_CATEGORY_PRIORITY:L_COUNTER * 10000 / COM_AUTO_CATEGORY_PRIORITY_SUM
	NEXT
	;なければ暫定で増やす
ELSE
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_LIKE_0 = 10000
ENDIF

FOR L_COUNTER, 0, ADD_NUM_対象が実行 + 1000
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;このコマンドが在籍するカテゴリのコマンド数を保存
		COM_AUTO_COM_CATEGORY_COM_NUM:(COM_AUTO_COM_CATEGORY:L_COUNTER) ++
		;各コマンドの優先度をカテゴリごとに合計
		COM_AUTO_COM_PRIORITY_SUM:(COM_AUTO_COM_CATEGORY:L_COUNTER) += MAX(COM_AUTO_COM_PRIORITY:L_COUNTER, 0)
	ENDIF
NEXT

;実行可能コマンドの多いカテゴリばかりが高優先度になりにくいように
;カテゴリ内のコマンド優先度合計値をコマンド数で割る
FOR L_COUNTER, 0, COM_AUTO_CATEGORY_LIKE_MAX + 1
	IF COM_AUTO_COM_PRIORITY_SUM:L_COUNTER > 0 && COM_AUTO_COM_CATEGORY_COM_NUM:L_COUNTER > 0
		COM_AUTO_COM_PRIORITY_SUM:L_COUNTER = COM_AUTO_COM_PRIORITY_SUM:L_COUNTER / COM_AUTO_COM_CATEGORY_COM_NUM:L_COUNTER
	ENDIF
NEXT

FOR L_COUNTER, 0, ADD_NUM_対象が実行 + 1000
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		IF COM_AUTO_COM_PRIORITY_SUM:(COM_AUTO_COM_CATEGORY:L_COUNTER) >= 1 && COM_AUTO_CATEGORY_PRIORITY:(COM_AUTO_COM_CATEGORY:L_COUNTER) >= 1
			;カテゴリ優先度*100/優先度合計値
			COM_AUTO_COM_PRIORITY:L_COUNTER = COM_AUTO_COM_PRIORITY:L_COUNTER * COM_AUTO_CATEGORY_PRIORITY:(COM_AUTO_COM_CATEGORY:L_COUNTER) * 100 / COM_AUTO_COM_PRIORITY_SUM:(COM_AUTO_COM_CATEGORY:L_COUNTER)
		ELSE
			COM_AUTO_COM_PRIORITY:L_COUNTER = 0
		ENDIF
	ENDIF
NEXT

[IF_DEBUG]
;DEBUGPRINTFORML
;DEBUGPRINTFORML #### DEBUG カテゴリ優先度 正規化後
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_LIKE_MAX + 1
	IF COM_AUTO_CATEGORY_PRIORITY:L_COUNTER
		;DEBUGPRINTFORML {L_COUNTER, 4}.%COM_AUTO_N_COM_CATEGORY_NAME(L_COUNTER), 26, LEFT%.%NUM_FORMAT(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT

;	DEBUGPRINTFORML
;	DEBUGPRINTFORML #### コマンド優先度 正規化後
;	FOR L_COUNTER, 300, ADD_NUM_対象が実行
;		IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
;			DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:L_COUNTER, 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
;		ENDIF
;	NEXT
;	FOR L_COUNTER, 1300, ADD_NUM_対象が実行 + 1000
;		IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
;			DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:(L_COUNTER - ADD_NUM_対象が実行), 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
;		ENDIF
;	NEXT
[ENDIF]

;-------------------------------------------------
;## コマンドフィルタの反映
;-------------------------------------------------
FOR L_COUNTER, 0, ADD_NUM_対象が実行
	IF COM_FILTER:L_COUNTER
		COM_AUTO_COM_PRIORITY:L_COUNTER = 0
		COM_AUTO_COM_PRIORITY:(L_COUNTER + ADD_NUM_対象が実行) = 0
	ENDIF
NEXT

[IF_DEBUG]
;DEBUGPRINTFORML
;DEBUGPRINTFORML #### DEBUG コマンド優先度 最終
FOR L_COUNTER, 0, ADD_NUM_対象が実行
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:L_COUNTER, 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
FOR L_COUNTER, ADD_NUM_対象が実行, ADD_NUM_対象が実行 + 1000
	IF COM_AUTO_COM_PRIORITY:L_COUNTER > 0
		;DEBUGPRINTFORML {L_COUNTER, 4}.%TRAINNAME:(L_COUNTER - ADD_NUM_対象が実行), 20, LEFT% %NUM_FORMAT(COM_AUTO_COM_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
[ENDIF]

RETURN 0


code:
;-------------------------------------------------
;;; 絶頂抑制時に出力するメッセージ
;-------------------------------------------------
@COM_TEXT_AFTER_SUPPRESS_ORGASM(CHARA_ID)
#DIM CHARA_ID
#DIM DYNAMIC PALAMS, 6
#DIM DYNAMIC PALAMS_IDX, 6
#DIM DYNAMIC CUP_CHANGED_FLAG
VARSET PALAMS, -1

IF TCVAR:(CHARA_ID):絶頂抑制カウント <= 0
    RETURN
ENDIF

VARI IDX
CUP_CHANGED_FLAG = 0
;ＣＶＡＢＭＵの快楽値のうち最も高い部位を取得
FOR IDX, 0, 6
    PALAMS_IDX:IDX = IDX
    IF CUP:CHARA_ID:IDX > 0
        PALAMS:IDX = PALAM:CHARA_ID:IDX + CUP:CHARA_ID:IDX
        CUP_CHANGED_FLAG = 1
    ENDIF
NEXT
;射精値の判定

;快楽値が変動していないならメッセージを出さない
IF !CUP_CHANGED_FLAG
    RETURN
ENDIF
ARRAYMSORT PALAMS, PALAMS_IDX

VARS TEXT
VARI F_COL
F_COL = カラー_パステルピンク
;射精が限界を迎えている場合は射精側のメッセージを優先する
IF PALAM:(CHARA_ID):射精  >= 10000 && CUP:(CHARA_ID):射精 > 0
    TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は陰茎から先走り汁を漏らしながらも、こみ上げる射精欲を懸命にこらえている@/C@"
ELSE
    SELECTCASE PALAMS_IDX:5
        CASE 0 ;Ｃ絶頂抑制
            IF HAS_VAGINA(CHARA_ID)
                TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は淫核を苛む強烈な快楽に小さく身を震わせながら、絶頂を懸命にこらえている@/C@"
            ELSEIF HAS_PENIS(CHARA_ID)
                TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は淫茎を苛む強烈な快楽に身を震わせながら、絶頂を懸命にこらえている@/C@"
            ENDIF
        CASE 1 ;Ｖ絶頂抑制
            TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は秘部を貫く強烈な快楽に身を震わせながら、絶頂を懸命にこらえている@/C@"
        CASE 2 ;Ａ絶頂抑制
            TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は淫肛を貫く強烈な快楽に身を震わせながら、絶頂を懸命にこらえている@/C@"
        CASE 3 ;Ｂ絶頂抑制
            TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は胸からこみ上げる強烈な快楽に小さく身を震わせながら、絶頂を懸命にこらえている@/C@"
        CASE 4 ;Ｍ絶頂抑制
            TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は口の中を満たす強烈な快楽に身を震わせながら、絶頂を懸命にこらえている@/C@"
        CASE 5 ;Ｕ絶頂抑制
            TEXT '= @"@C:{F_COL}@%ANAME(CHARA_ID)%は尿道を満たす強烈な快楽に小さく身を震わせながら、絶頂を懸命にこらえている@/C@"
    ENDSELECT
ENDIF
CALLF TAG_PRINT(TEXT, 1)

repo_name: napo/erafl

license: unknown


code:
;地の文に関する処理

;---------------------------------------------------------
;コマンド実行前に表示される地の文の呼び出し
;主に行動内容や状況等を記述する
;---------------------------------------------------------
@COM_TEXT_BEFORE
;割込コマンド実行発生時の地の文
IF TFLAG:割込コマンド実行 && TCVAR:(TFLAG:割込キャラ):離脱フラグ != 離脱フラグ_観客
	IF !CFLAG:(TFLAG:割込キャラ):スケベモブ
		LOCALS '= @"%S_R("情欲に駆られた/しびれを切らした/劣情を堪えきれなくなった/劣情を抑えられなくなった")%%ANAME(TFLAG:割込キャラ, TFLAG:割込人数)%が"
		IF TFLAG:割込ターゲット == MASTER
			LOCALS += @"%S_R("絡みついてきた/身体を寄せてきた/頬を紅潮させて身を寄せてきた")%……"
		ELSE
			LOCALS += @"%ANAME(TFLAG:割込ターゲット)%に%S_R("息を荒げて絡みついた/身体を寄せた/頬を紅潮させて身を寄せた")%……"
		ENDIF
	ELSE
		LOCALS '= @"%S_R("情欲に駆られた/好色な笑みを浮かべた/息を荒げた/劣情を抑えられなくなった")%%ANAME(TFLAG:割込キャラ, TFLAG:割込人数)%が"
		IF TFLAG:割込ターゲット == MASTER
			LOCALS += @"%S_R("絡みついてきた/身体を寄せてきた/頬を紅潮させて身を寄せてきた")%……"
		ELSE
			LOCALS += @"%ANAME(TFLAG:割込ターゲット)%に%S_R("身体を擦り寄せた/熱い吐息を浴びせながら距離を詰めた")%……"
		ENDIF
	ENDIF
	CALLF TAG_PRINT(@"@C:{カラー_注意}@%LOCALS%@/C@", 1)
	WAIT
	PRINTL
ENDIF

;オノマトペの表示
CALL COM_TEXT_ONOMATOPE_BEFORE

;口上表示
;CALL KOJO_COM_BEFORE
CALL KOJO_COM_NEW("TOP")

;口上側の戻り値が1なら地の文はカットされる
IF !RESULT
	TRYCALLFORM COM_TEXT_BEFORE{SELECTCOM}
ENDIF

;---------------------------------------------------------
;コマンド実行直後に表示される地の文の呼び出し
;主に行動の結果を記述する
;射精や絶頂に関連したメッセージもここで表示
;何かメッセージを表示したら1を返す
;---------------------------------------------------------
@COM_TEXT_AFTER
#DIM  DYNAMIC CHARA_ID
#DIM  DYNAMIC あなた絶頂
#DIM  DYNAMIC 絶頂強度
#DIM  DYNAMIC 絶頂回数合計
#DIM  DYNAMIC 絶頂人数
#DIM  DYNAMIC 射精対象
#DIM  DYNAMIC 射精先人数
#DIM  DYNAMIC 射精部位
#DIM  DYNAMIC 対象
#DIM  DYNAMIC 地の文出力
#DIMS DYNAMIC 衣装名
#DIMS DYNAMIC 衣装描写
;地の文が非表示なら戻る
;SIF FLAG:0 == 0
;	RETURN

RESULT = 0
TRYCALLFORM COM_TEXT_AFTER{SELECTCOM}
IF RESULT
	;コマンド専用の地の文が定義されていれば戻る
	RETURN 0
ENDIF

地の文出力 = 0
;今ターンに絶頂したキャラの人数を数え、名前と最低強度を記録
絶頂人数 = 0
あなた絶頂 = 0
絶頂強度 = 999
LOCALS:1 =
LOCALS:2 =
FOR CHARA_ID, 0, CHARANUM
	IF IS_PARTICIPATE_TRAIN(CHARA_ID) && !IS_ANIMAL(CHARA_ID)
		;今回のＣＶＡＢＭの絶頂回数(NOWEX)の合計を取得
		絶頂回数合計 = SUM_NOWEX(CHARA_ID, 0, 0)

		IF 絶頂回数合計 > 0
			IF 絶頂回数合計 < 絶頂強度
				絶頂強度 = 絶頂回数合計
			ENDIF

			IF CHARA_ID == MASTER
				あなた絶頂 = 1
			ELSE
				IF 絶頂人数 == 1
					LOCALS:2 = と%ANAME(CHARA_ID)%
				ELSE
					LOCALS:1 = %ANAME(CHARA_ID)%
				ENDIF
				絶頂人数 ++
			ENDIF
		ENDIF
	ENDIF
NEXT

;一人以上絶頂した場合
IF 絶頂人数 >= 1
	IF 絶頂人数 >= 3
		LOCALS:1 = %LOCALS:1%たち
	ELSE
		LOCALS:1 = %LOCALS:1%%LOCALS:2%
	ENDIF
	;主人公が同時に絶頂した場合
	IF あなた絶頂
		LOCALS:0 = %ANAME(MASTER)%と
		LOCALS:3 = 同時に
	ELSE
		LOCALS:0 =
		LOCALS:3 =
	ENDIF

	IF 絶頂強度 >= 8
		地の文出力 = 1
		{
			CALLF PRINT_RANDC(
				@"%LOCALS:0%%LOCALS:1%は強烈な絶頂感に何度も背を反らせ、打ち上げられた魚のように体を跳ねさせた…", 1
				,@"%LOCALS:0%%LOCALS:1%は怒涛の快楽に息も絶え絶えに身悶えして身を捩っている…", 1
				,@"%LOCALS:0%%LOCALS:1%は快楽の渦の中に揉まれ、狂った様に歓喜の叫び声を上げている…", 1
				)
		}
	ELSEIF 絶頂強度 >= 3
		地の文出力 = 1
		SELECTCASE RAND:3
			CASE 0
				PRINTFORML %LOCALS:0%%LOCALS:1%は%LOCALS:3%身体をのけ反らせて激しく絶頂し、口から涎を垂らしてガクガクと痙攣した…
			CASE 1
				PRINTFORML %LOCALS:0%%LOCALS:1%は身悶えする様な快楽に、体を捩りながら歓喜の声を上げている…
			CASE 2
				PRINTFORML %LOCALS:0%%LOCALS:1%は唇を噛み締め目をぎゅっと瞑り、襲いくる快楽に必死に耐えている…
		ENDSELECT
	ELSEIF 絶頂強度 >= 1
		地の文出力 = 1
		SELECTCASE RAND:3
			CASE 0
				PRINTFORML %LOCALS:0%%LOCALS:1%は%LOCALS:3%絶頂に達しビクビクと体を震わせた…
			CASE 1
				PRINTFORML %LOCALS:0%%LOCALS:1%は媚びた甘い声を上げながら絶頂に震えた…
			CASE 2
				PRINTFORML %LOCALS:0%%LOCALS:1%はとろんと顔をとろけさせ%LOCALS:3%絶頂に浸った…
		ENDSELECT
	ENDIF

	;主人公だけが絶頂した場合
ELSEIF あなた絶頂
	;今回のＣＶＡＢＭの絶頂回数(NOWEX)の合計を取得
	絶頂回数合計 = SUM_NOWEX(MASTER, 0, 0)

	IF 絶頂回数合計 >= 8
		地の文出力 = 1
		PRINTFORML %ANAME(MASTER)%は強烈な絶頂感に何度も背を反らせ、打ち上げられた魚のように体を跳ねさせた…
	ELSEIF 絶頂回数合計 >= 3
		地の文出力 = 1
		PRINTFORML %ANAME(MASTER)%は激しく絶頂し、口から涎を垂らしてガクガクと痙攣した…
	ELSEIF 絶頂回数合計 >= 1
		地の文出力 = 1
		PRINTFORML %ANAME(MASTER)%は絶頂に達しビクビクと体を震わせた…
	ENDIF
ENDIF

FOR CHARA_ID, 0, CHARANUM
	;番号CHARA_IDのキャラが射精した場合
	IF IS_PARTICIPATE_TRAIN(CHARA_ID) && NOWEX:(CHARA_ID):射精 > 0

		地の文出力 = 1
		;コンドーム装着中
		IF IS_EQUIP_PLAYER(CHARA_ID, 75)
			SIF SOURCE:(CHARA_ID):快Ｐ == 0 && NOWEX:(CHARA_ID):Ｖ絶頂 + NOWEX:(CHARA_ID):Ａ絶頂 > 0
				PRINTFORM ペニスに触れられてもいないのに射精した
			PRINTFORML %ANAME(CHARA_ID)%の精液が、コンドームへと放たれていった……
			GOTO CUM_SKIP
		ENDIF

		IF STACK_SPERM_CHARA_NUM:(CHARA_ID):0 <= 0
			SIF SOURCE:(CHARA_ID):快Ｐ == 0 && NOWEX:(CHARA_ID):Ｖ絶頂 + NOWEX:(CHARA_ID):Ａ絶頂 > 0
				PRINTFORM ペニスに触れられてもいないのに射精した
			;捕虜調教 or 捕虜逆調教
			IF GROUPMATCH(FLAG:調教モード, 2, 4, 6, 7)
				PRINTFORML %ANAME(CHARA_ID)%の精液が床を汚していった…
			ELSE
				PRINTFORML %ANAME(CHARA_ID)%の精液が%GET_GROUND_NAME(TFLAG:デート場所)%を汚していった…
			ENDIF
			GOTO CUM_SKIP
		ENDIF

		FOR 射精部位, 0, CUM_SLOT_NUM
			;射精対象の人数を数え、必要な文字列を作成
			射精先人数 = 0
			LOCAL:3 = 2
			射精対象 = -1
			;shitty animal logic. have to run through and count animals first to get apostrophe right.
			FOR LOCAL:1, 0, STACK_SPERM_CHARA_NUM:(CHARA_ID):0
				SIF STACK_SPERM_TO_MAP:(CHARA_ID):(LOCAL:1) != 射精部位
					CONTINUE
				射精対象 = STACK_SPERM_CHARA_MAP:(CHARA_ID):(LOCAL:1)
				SIF 射精対象 >= 0
					射精先人数 ++
				;対象の精愛Lvを判定(主人公が含まれているor逆調教なら-1に固定)
				;★was: IF TCVAR:(CHARA_ID):(LOCAL:1) == MASTER || FLAG:調教モード == 4
				;enabling master's reaction to cum (LOCAL:3 text) depending on config
				IF (!CONFIG:441 ? 射精対象 == MASTER # MASTER) || FLAG:調教モード == 4 || IS_ANIMAL(射精対象)
					LOCAL:3 = -1
				ELSEIF LOCAL:3 >= 1 && ABL:(射精対象):精愛 < 2
					LOCAL:3 = 0
				ELSEIF LOCAL:3 >= 2 && ABL:(射精対象):精愛 < 5
					LOCAL:3 = 1
				ENDIF
			NEXT
			;射精対象が未設定
			IF 射精先人数 <= 0
				CONTINUE
			ELSE
				;特定の状況での射精描写
				;-------------------------------------------------
				SELECTCASE 射精部位
					CASE 射精部位_胸
						;1on1の着衣ぶっかけ
						IF 射精先人数 == 1 && IS_SERVEAT(射精対象, "胸")
							IF C_COND("衣装属性:胸:シャツ,衣装属性:胸:ボタン", "OR", 射精対象)
								衣装描写 = %C_COND_MAP_GETS(射精対象, "被覆衣装描写_胸")%
								PRINTFORML %ANAME(射精対象)%の奉仕によって胸に吐き出された%ANAME(CHARA_ID)%の%語彙_精液()%が、%S_R(@"%衣装描写%を汚した/%衣装描写%を濡らした/べっとりと%衣装描写%にこびりついた/着衣の乱れた%衣装描写%にこびりつき白い糸を引いた")%…
								IF LOCAL:3 == 2
									PRINTFORML 青臭い精臭を放ち%衣装描写%を滴り落ちる精液を、%ANAME(射精対象)%は%S_R("弛緩し、恍惚とした表情で見つめている/指ですくい取り、舌先を這わせて舐め取った/指先ですくい上げ、舌で舐め取った")%
								ENDIF
								GOTO CUM_SKIP
							ENDIF
						ENDIF
					CASEELSE
				ENDSELECT
				;汎用の射精描写
				;-------------------------------------------------
				;射精対象が４人以上
				SIF SOURCE:(CHARA_ID):快Ｐ == 0 && NOWEX:(CHARA_ID):Ｖ絶頂 + NOWEX:(CHARA_ID):Ａ絶頂 > 0
					PRINTFORM ペニスに触れられてもいないのに射精した
				IF 射精先人数 >= 2
					;LOCALS:1 = %ANAME(STACK_SPERM_CHARA_MAP:(CHARA_ID):0)%達
					LOCALS:1 = %ANAME(射精対象)%達
					;射精対象が３人以下
				ELSE
					;LOCALS:1 = %ANAME(STACK_SPERM_CHARA_MAP:(CHARA_ID):0)%
					LOCALS:1 = %ANAME(射精対象)%
				ENDIF
				SELECTCASE 射精部位
					CASE 1
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の膣内へと注ぎ込まれた…
						CALL COM_TEXT_EJAC_TO_V(CHARA_ID, 射精対象)
					CASE 2
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の腸内に注ぎ込まれた…
						IF LOCAL:3 == 2
							PRINTFORML %LOCALS:1%の肛内は、打ちつけられる精液を貪り尽くそうと淫猥に収縮を繰り返している
						ENDIF
						IF GETBIT(TALENT:(射精対象):淫乱系, 素質_淫乱_尻穴狂い)
							PRINTFORML 完全に性器と化した淫肛を駆け上り蹂躙していく熱い感触に、%LOCALS:1%は背徳的な充足感で満たされた…
						ENDIF
						IF GETBIT(TALENT:(射精対象):淫乱系, 素質_淫乱_生ハメ依存)
							PRINTFORML %ANAME(射精対象)%は、生でないと味わえない腸内射精の快感に酔い痴れている…
						ENDIF
						IF 射精対象 >= 0 && TCVAR:(射精対象):60
							PRINTFORML 媚薬の効果ゆえか、%ANAME(射精対象)%はとろけた声を上げながら肛内射精の悦びに腰をくねらせる…
						ENDIF
						IF 射精対象 >= 0 && TCVAR:(射精対象):67
							PRINTFORML 麻薬の力でトリップした%ANAME(射精対象)%は、肛内射精の悦びにとろけた声をあげて腰をくねらせる…
						ENDIF
						IF 射精対象 >= 0 && CFLAG:(射精対象):排卵誘発剤
							PRINTFORML 薬の効果で孕みやすくなっている%ANAME(射精対象)%の子宮が、肛内射精に反応してひくひくと震えている…
						ENDIF
						IF 射精対象 >= 0 && TFLAG:桃源香使用中
							PRINTFORML 桃源香が漂う中、薄く霞みがかった%ANAME(射精対象)%の頭と身体に肛内射精の悦びが駆け巡る…
						ENDIF
					CASE 3
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の手の中に迸った…
						IF LOCAL:3 == 2
							PRINTFORML %LOCALS:1%は恍惚とした表情で手に付いた精液を舐め取っている…
						ENDIF
					CASE 4
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の口の中に迸った…
						CALL COM_TEXT_EJAC_TO_M(CHARA_ID, 射精対象, 射精先人数)
					CASE 5
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の胸を白く染め上げた…
						IF LOCAL:3 == 2
							PRINTFORML %ANAME(射精対象)%は胸に掛かった精液を指ですくい上げ、美味しそうに舐め取っている…
						ENDIF
					CASE 6
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の足を汚した…
						IF LOCAL:3 == 2
							PRINTFORML %ANAME(射精対象)%は足に掛かった精液をネチャネチャと気持ち良さそうに擦り付けている…
						ENDIF
					CASE 7
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の尻尾を汚していった…
					CASE 8
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の顔に降りかかった…
						IF TALENT:(射精対象):プライド高い
							IF CFLAG:(射精対象):2 >= 1500 || CFLAG:(射精対象):4 >= 1500
								PRINTFORML %LOCALS:1%の顔射への屈辱は、既に充足感へと変わっている
							ELSE
								PRINTFORML %LOCALS:1%は顔に精液をかけられ、やや目を鋭くしている
							ENDIF
						ELSEIF TALENT:(射精対象):プライド低い
							PRINTFORML %LOCALS:1%は目を閉じ、精液を顔に浴びることを受け入れている
						ENDIF
						IF LOCAL:3 == 2
							PRINTFORML %LOCALS:1%は顔に付いた精液を指ですくい上げ、美味しそうに舐め取っている…
						ENDIF
					CASE 9
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の髪にべったりとこびり付いた…
					CASE 10
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の腋を白く染め上げた…
					CASE 11
						;描写取得
						VARS 部位描写
						衣装描写 '= ""
						衣装描写 = %C_COND_MAP_GETS(射精対象, "被覆衣装描写_尻")%
						IF TALENT:(射精対象):美尻
							部位描写 '= "綺麗な桃尻"
						ELSEIF GET_HIPSIZE(射精対象) >= 1
							部位描写 '= "肉付きのいい見事なお尻"
						ELSE
							部位描写 '= "お尻"
						ENDIF
						;描写に基づき結果出力
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%の
						IF 衣装描写 != ""
							PRINTFORML %衣装描写%に包まれた%部位描写%を白く染め上げた…
						ELSE
							PRINTFORML %部位描写%を白く染め上げた…
						ENDIF
						IF LOCAL:3 == 2
							PRINTFORML %LOCALS:1%はお尻に精液が掛かる度に、その双丘をぷるぷると震わせている…
						ENDIF
					CASE 12
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の持つオナホールの中に注がれていった…
					CASE 13
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL の操る触手に吸い出されていった…
					CASE 15
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL 膀胱へ注ぎ込まれた…
					CASEELSE
						PRINTFORM %ANAME(CHARA_ID)%の精液が%LOCALS:1%
						PRINTL へ降り掛かっていった…
				ENDSELECT
			ENDIF
		NEXT
		$CUM_SKIP

		IF TCVAR:(CHARA_ID):51
			IF TCVAR:(CHARA_ID):52
				PRINTFORML %ANAME(CHARA_ID)%は限界を超えた射精に、意識を失ったまま小さく呻いた
			ELSE
				IF CHARA_ID == MASTER
					PRINTFORML %ANAME(CHARA_ID)%は限界を超えた射精に思わず呻いた
				ELSE
					PRINTFORML %ANAME(CHARA_ID)%は限界を超えた射精に苦しそうに呻いた
				ENDIF
			ENDIF
		ENDIF
	ENDIF

	;番号CHARA_IDのキャラが噴乳した場合
	IF IS_PARTICIPATE_TRAIN(CHARA_ID) && NOWEX:(CHARA_ID):噴乳 > 0
		衣装名 '= ""
		衣装名 = %C_COND_MAP_GETS(CHARA_ID, "被覆衣装描写_胸")%
		;触手搾乳中
		IF (SELECTCOM == 207 && IS_MTAR(CHARA_ID)) || IS_EQUIP_TARGET(CHARA_ID, 207)
			IF NOWEX:(CHARA_ID):噴乳 >= 2
				PRINTFORML %ANAME(CHARA_ID)%の母乳が、乳首に吸い付く触手の中に大量に迸った…
			ELSE
				PRINTFORML %ANAME(CHARA_ID)%の母乳が、乳首に吸い付く触手の中に迸った…
			ENDIF
		ELSE
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATEC(
					@"%ANAME(CHARA_ID)%の乳首から大量の母乳が吹き出し、%衣装名%%S_R("を濡らした/に染み出した/に染みをつくった/ににじみ出した")%…", NOWEX:(CHARA_ID):噴乳 > 2 && 衣装名 != ""
					,@"%ANAME(CHARA_ID)%の乳首から大量の母乳が吹き出した…", NOWEX:(CHARA_ID):噴乳 > 2 && 衣装名 == ""
					,@"%ANAME(CHARA_ID)%の乳首から母乳が吹き出し、%衣装名%%S_R("を濡らした/に染み出した/に染みをつくった/ににじみ出した")%…", NOWEX:(CHARA_ID):噴乳 <= 2 && 衣装名 != ""
					,@"%ANAME(CHARA_ID)%の乳首から母乳が吹き出した…", NOWEX:(CHARA_ID):噴乳 <= 2 && 衣装名 == ""
					), 1
					)
			}
			PRINTL
		ENDIF
	ENDIF

	;番号CHARA_IDのキャラが潮吹きした場合
	IF IS_PARTICIPATE_TRAIN(CHARA_ID) && NOWEX:(CHARA_ID):潮吹き > 0
		;顔面騎乗中ならターゲットを取得
		IF GROUPMATCH(SELECTCOM, 101, 102, 105) && IS_MPLY(CHARA_ID)
			対象 = MTAR:0
		ELSE
			対象 = SEARCH_EQUIP(101, CHARA_ID, -1)
			IF 対象 < 0
				対象 = SEARCH_EQUIP(102, CHARA_ID, -1)
				IF 対象 < 0
					対象 = SEARCH_EQUIP(105, CHARA_ID, -1)
				ENDIF
			ENDIF
			IF 対象 >= 0
				対象 = MEQUIP_TARGET:対象:0
			ENDIF
		ENDIF

		IF HAS_PENIS(CHARA_ID) && NOWEX:(CHARA_ID):Ｃ絶頂 >= 1
			PRINTFORML %ANAME(CHARA_ID)%はペニスから潮を吹いてビクビクと体を震わせた…
		ELSE
			IF 対象 >= 0
				PRINTFORML %ANAME(CHARA_ID)%の膣から大量の潮が吹き出し、%ANAME(対象)%の顔に降り掛かった…
			ELSE
				SELECTCASE RAND:3
					CASE 0
						PRINTFORML %ANAME(CHARA_ID)%は勢いよく膣から潮を撒き散らした…
					CASE 1
						PRINTFORML %ANAME(CHARA_ID)%は悲鳴を上げながら潮を吹き上げた…
					CASE 2
						PRINTFORML %ANAME(CHARA_ID)%の膣からぷしゃっ、と潮が吹き出した…
				ENDSELECT
			ENDIF
		ENDIF
	ENDIF

	;番号CHARA_IDのキャラがおもらしした場合
	IF IS_PARTICIPATE_TRAIN(CHARA_ID) && TCVAR:(CHARA_ID):0
		IF HAS_PENIS(CHARA_ID)
			LOCALS:0 = %BAR_NAME(CHARA_ID)%
		ELSEIF HAS_VAGINA(CHARA_ID)
			LOCALS:0 = %STR_BODY("膣", CHARA_ID)%
		ELSE
			LOCALS:0 = 股間
		ENDIF
		対象 = -1
		IF !HAS_PENIS(CHARA_ID)
			;顔面騎乗中ならターゲットを取得
			IF GROUPMATCH(SELECTCOM, 101, 102, 105) && IS_MPLY(CHARA_ID)
				対象 = MTAR:0
			ELSE
				対象 = SEARCH_EQUIP(101, CHARA_ID, -1)
				IF 対象 < 0
					対象 = SEARCH_EQUIP(102, CHARA_ID, -1)
					IF 対象 < 0
						対象 = SEARCH_EQUIP(105, CHARA_ID, -1)
					ENDIF
				ENDIF
				IF 対象 >= 0
					対象 = MEQUIP_TARGET:対象:0
				ENDIF
			ENDIF
		ENDIF

		SELECTCASE TCVAR:(CHARA_ID):0
				;尿意がある状態で絶頂強度の合計が4以上
			CASE 1
				;大量
				IF TCVAR:(CHARA_ID):1 >= 2
					IF NOWEX:(CHARA_ID):射精 >= 1
						PRINTFORML 射精を終えた%ANAME(CHARA_ID)%の%LOCALS:0%からジョロジョロと大量の尿が溢れ出した…
					ELSEIF 対象 >= 0
						PRINTFORML 絶頂に震える%ANAME(CHARA_ID)%は%ANAME(対象)%の顔の上にジョロジョロと大量の尿を漏らしてしまった…
					ELSE
						PRINTFORML 絶頂に震える%ANAME(CHARA_ID)%の%LOCALS:0%からジョロジョロと大量の尿が溢れ出した…
					ENDIF
					;通常
				ELSE
					IF NOWEX:(CHARA_ID):射精 >= 1
						PRINTFORML 射精を終えた%ANAME(CHARA_ID)%の%LOCALS:0%からチョロチョロと尿が漏れ出した…
					ELSEIF 対象 >= 0
						PRINTFORML 絶頂に震える%ANAME(CHARA_ID)%は%ANAME(対象)%の顔の上にチョロチョロと尿を漏らしてしまった…
					ELSE
						PRINTFORML 絶頂に震える%ANAME(CHARA_ID)%の%LOCALS:0%からチョロチョロと尿が漏れ出した…
					ENDIF
				ENDIF
				;尿意が高い状態で絶頂
			CASE 2
				IF NOWEX:(CHARA_ID):射精 >= 1
					PRINTFORML 射精を終えた%ANAME(CHARA_ID)%の%LOCALS:0%からジョロジョロと大量の尿が溢れ出した…
				ELSEIF 対象 >= 0
					PRINTFORML 絶頂に達した%ANAME(CHARA_ID)%は%ANAME(対象)%の顔の上にジョロジョロと大量の尿を漏らしてしまった…
				ELSE
					PRINTFORML %ANAME(CHARA_ID)%は絶頂と同時に%LOCALS:0%からジョロジョロと大量の尿を漏らしてしまった…
				ENDIF

				;尿意の限界
			CASE 3
				IF 対象 >= 0
					PRINTFORML %ANAME(CHARA_ID)%は尿意を我慢できず、%ANAME(対象)%の顔の上にジョロジョロと大量の尿を漏らしてしまった…
				ELSE
					PRINTFORML %ANAME(CHARA_ID)%は尿意を我慢できずに%LOCALS:0%からジョロジョロと大量の尿を漏らしてしまった…
				ENDIF

				;恐怖による失禁
			CASE 4
				PRINTL
				PRINTFORM %ANAME(CHARA_ID), 8%:
				SETCOLOR カラー_注意
				IF TCVAR:(CHARA_ID):1 >= 2
					PRINTL 大量失禁
				ELSE
					PRINTL 失禁
				ENDIF
				RESETCOLOR
				PRINTL
				;大量
				IF TCVAR:(CHARA_ID):1 >= 2
					PRINTFORML 恐怖に震える%ANAME(CHARA_ID)%の%LOCALS:0%からジョロジョロと大量の尿が漏れだした…
					;通常
				ELSE
					PRINTFORML 恐怖に震える%ANAME(CHARA_ID)%の%LOCALS:0%からチョロチョロと尿が漏れだした…
				ENDIF
		ENDSELECT
	ENDIF
NEXT

FOR CHARA_ID, 0, CHARANUM
	SIF !IS_PARTICIPATE_TRAIN(CHARA_ID)
		CONTINUE
	;尿意が高い場合
	IF TCVAR:(CHARA_ID):54 >= 3000
		PRINTFORML %ANAME(CHARA_ID)%は尿意のあまり股をモジモジとさせている…
	ENDIF
	;催眠
	SIF TCVAR:(CHARA_ID):催眠中 > 0
		CALLF TAG_PRINT(@"@C:{カラー_催眠}@催眠@/C@にかかった%ANAME(CHARA_ID)%は虚ろな瞳を浮かべている…", 1)
	;精液ボテ
	IF NOW_BUKKAKED(CHARA_ID) == 射精部位_膣内
		IF CHARA_ID >= 0 && WOMB_INFLATION_RATE:(CHARA_ID):0 >= 75
			PRINTL
			SELECTCASE WOMB_INFLATION_RATE:(CHARA_ID):0
				CASE 75 TO 149
					PRINTFORML %ANAME(CHARA_ID)%に大量に注がれた%語彙_精液()%は子宮に収まりきらず%S_R("糸を引いて垂れている/垂れて淫猥なシミをつくっている/太股から白い糸を引いて滴っている")%…
				CASE 150 TO 249
					PRINTFORML あまりにも膨大に注がれた%語彙_精液()%を子宮で受け止めた%ANAME(CHARA_ID)%の下腹部は、%S_R("すっかり膨れてしまっている/妊婦のように膨れてしまっている/膨れ上がりはっきりと丸みを帯びている")%…
				CASEELSE
					PRINTFORML 人体が到底許容し得ない量の%語彙_精液()%に子宮を蹂躙され尽くした%ANAME(CHARA_ID)%の膣からは絶え間なく%語彙_精液()%が溢れ出ており、\n%S_R("ぐちゃぐちゃに濡れた/どろどろに濡れた/欲望の捌け口に成り下がった")%下腹部は%S_R("すっかり膨れてしまっている/まるで妊婦のように膨れてしまっている/膨れ上がり、はっきりと丸みを帯びている")%…
			ENDSELECT
		ENDIF
	ENDIF

	;絶頂抑制関連メッセージ
	CALL COM_TEXT_AFTER_SUPPRESS_ORGASM(CHARA_ID)
NEXT

RETURN 地の文出力

;---------------------------------------------------------
;コマンド実行直前に表示される地の文の呼び出し
;主にキャラの反応などを記述する
;---------------------------------------------------------
@COM_TEXT_LAST
;地の文が非表示なら戻る
;SIF FLAG:0 == 0
;	RETURN 0

TRYCCALLFORM COM_TEXT_LAST{SELECTCOM}
CATCH
	;コマンド個別の反応が定義されていなければTEQUIPの地の文を呼び出す
	;CALL COM_TEXT_LAST_EQUIP
ENDCATCH

IF FLAG:ハウジングモード
	;利用モジュールに関する描写
	CALL HO_MODULE_COM_TEXT_LAST_DESC()
	;エリア効果に関する描写
	CALL HO_ROOM_EFFECT_COM_TEXT_LAST_DESC()
ENDIF


code:
@HO_MODULE_COM_TEXT_LAST_DESC()
#DIMS DYNAMIC 設備属性
#DIMS DYNAMIC 設備名
#DIMS DYNAMIC LIST_COMGROUP
#DIMS DYNAMIC 口上グループ

設備名 = %C_COND_MAP_GETS(MPLY:0, "設備名")%

CALL KOJO_GET_COMGROUP(MPLY:0)
LIST_COMGROUP = %RESULTS%
IF LIST_INDEXOF(LIST_COMGROUP, "VSEX") != -1
	口上グループ '= "VSEX"
ELSEIF  LIST_INDEXOF(LIST_COMGROUP, "ASEX") != -1
	口上グループ '= "ASEX"
ELSEIF  LIST_INDEXOF(LIST_COMGROUP, "ORAL") != -1
	口上グループ '= "ORAL"
ELSEIF  LIST_INDEXOF(LIST_COMGROUP, "JOBS") != -1
	口上グループ '= "JOBS"
ELSEIF INRANGE(SELECTCOM, 300, 335)
	口上グループ '= "日常"
ENDIF

SELECTCASE 口上グループ
	CASE "VSEX", "ASEX", "ORAL", "JOBS"
		CALL HO_MODULE_COM_TEXT_LAST_DESC_性交(口上グループ, 設備名)
	CASEELSE
		;CALL HO_MODULE_COM_TEXT_LAST_DESC_日常(口上グループ, 設備名)
ENDSELECT

;日常系コマンド
@HO_MODULE_COM_TEXT_LAST_DESC_日常(口上グループ, 設備名)
#DIMS  口上グループ
#DIMS  設備名
#DIMS DYNAMIC 設備属性
#DIM  DYNAMIC CHARA_ID
#DIM  DYNAMIC ROOM_IDX
#DIM  DYNAMIC MODULE_IDX
#DIMS DYNAMIC ROOM_EFFECT_MAP
#DIMS DYNAMIC MODULE_EFFECT_MAP
#DIMS DYNAMIC 精液描写

ROOM_IDX = C_COND_MAP_GET(CHARA_ID, "エリアIDX")
ROOM_EFFECT_MAP '= @"MAP_{ROOM_IDX}_ROOM_EFFECT"
MODULE_IDX = C_COND_MAP_GET(CHARA_ID, "設備IDX")
MODULE_EFFECT_MAP '= @"MAP_{MODULE_IDX}_MODULE_EFFECT"

;性交系コマンド
@HO_MODULE_COM_TEXT_LAST_DESC_性交(口上グループ, 設備名)
#DIMS  口上グループ
#DIMS  設備名
#DIMS DYNAMIC 設備属性
#DIM  DYNAMIC CHARA_ID
#DIM  DYNAMIC ROOM_IDX
#DIM  DYNAMIC MODULE_IDX
#DIMS DYNAMIC ROOM_EFFECT_MAP
#DIMS DYNAMIC MODULE_EFFECT_MAP
#DIMS DYNAMIC 精液描写

ROOM_IDX = C_COND_MAP_GET(CHARA_ID, "エリアIDX")
ROOM_EFFECT_MAP '= @"MAP_{ROOM_IDX}_ROOM_EFFECT"
MODULE_IDX = C_COND_MAP_GET(CHARA_ID, "設備IDX")
MODULE_EFFECT_MAP '= @"MAP_{MODULE_IDX}_MODULE_EFFECT"

SELECTCASE 口上グループ
	CASE "VSEX", "ASEX"
		IF C_COND("設備属性:狭隘",, MPLY:0) && RAND:3
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("肌と肌が密着するほどの/身体が密着する/肌が重なるほどの/")%"
					,@"%S_R(@"狭隘な空間/狭い空間/密室/窮屈な空間/%設備名%の中/窮屈な%設備名%の中")%で、"
					,@"%S_R("ぬめりを帯びた肉がぶつかる/注挿を繰り返す")%"
					,@"%S_R("淫らな水音が響き続けて/淫猥な水音が空間に響きわたって/淫らな音が響いて")%いる…"
					), 1
					,TEXT_CONCATE(
					@"%S_R("肌と肌が密着するほどの/身体が密着する/肌が重なるほどの/")%"
					,@"%S_R(@"狭隘な空間/狭い空間/密室/窮屈な空間/%設備名%の中/窮屈な%設備名%の中")%で、"
					,@"%S_R("荒い吐息と注挿音が響き続けている/くぐもった荒い吐息と嬌声、淫らな水音が反響している")%"
					), 1
					,TEXT_CONCATE(
					@"%S_R("肌と肌が密着するほどの/身体が密着する/肌が重なるほどの/")%"
					,@"%S_R(@"狭隘な空間/狭い空間/密室/窮屈な空間/%設備名%の中/窮屈な%設備名%の中")%で、"
					,@"%S_R("獣欲のままに繰り広げられる/欲望のはけ口を求めた/ひたすらに快楽を求めた")%"
					,@"%S_R("性交/セックス/まぐわい/逢瀬")%が続いている…"
					), 1
					,TEXT_CONCATE(
					@"%S_R("肌と肌が密着するほどの/身体が密着する/肌が重なるほどの/")%"
					,@"%S_R(@"狭隘な空間/狭い空間/密室/窮屈な空間/%設備名%の中/窮屈な%設備名%の中")%で、"
					,@"%S_R("情欲に任せた/淫欲に駆り立てられた/快楽に身を任せた/獣欲を抑えきれない")%男女が"
					,@"%S_R("ひたすらに快楽を貪って/逢瀬を重ねて/肢体を貪りあって")%いる…"
					), IS_MALE(MPLY:0) && IS_FEMALE(MTAR:0)
					)
			}
			PRINTL
		ELSEIF C_COND("設備属性:ベッド",, MPLY:0) && RAND:3
			精液描写 '= ""
			SIF MAP_HAS(MODULE_EFFECT_MAP, "精液まみれ") > 0
				精液描写 = %S_R(@"%語彙_精液()%まみれの/%語彙_精液()%でぐちゃぐちゃになった/%語彙_精液()%が飛び散った")%
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATEC(
					@"%精液描写%", 精液描写 != ""
					,@"%S_R("シーツの上で/ベッドの上で/ベッドを軋ませながら/シーツをかき乱して")%", 1
					,"、", 精液描写 != ""
					,@"%S_R("獣欲のままに繰り広げられる/欲望のはけ口を求めた/ひたすらに快楽を求めた")%", 1
					,@"%S_R("性交/セックス/まぐわい/逢瀬")%が続いている…", 1
					), 1
					,TEXT_CONCATE(
					@"%S_R("男が注挿を繰り返すたびに/女がもだえ身を捩るたびに/快楽に身を震わせるたびに")%"
					,@"%S_R("ベッドが立てるきいきいという音が/ベッドが軋む音が/きしきしとベッドの軋む音が")%"
					,@"%S_R("室内に響いている/響き渡っている/規則的に響いている")%"
					), IS_MALE(MPLY:0) && IS_FEMALE(MTAR:0)
					,TEXT_CONCATE(
					@"%S_R("獣欲のままに繰り広げられる/欲望のはけ口を求めた/ひたすらに快楽を求めた")%"
					,@"%S_R("性交/セックス/まぐわい/逢瀬")%が続いている。"
					,@"%S_R(@"シーツ/ベッド/寝具")%は%S_R(@"体液/愛液/淫らな汁/淫汁/汗と体液")%"
					,@"%S_R("でびしょびしょになって/でぐしょぐしょになって/ですっかり濡れて/にまみれてしまって/が四散して")%いる…"
					), IS_WET(MTAR:0)
					,TEXT_CONCATE(
					@"%精液描写%%S_R(@"シーツ/ベッド/寝具")%に"
					,@"%S_R(@"身を投げ出した状態で/顔を押し付けて/顔を埋めて/身を汚されながら/身体を押し付けられた状態で")%、"
					,@"%ANAME(MTAR)%は"
					,@"%S_R(@"背後から犯され続けている/繰り返し%語彙_ペニス()%の注挿を受けている/後ろから繰り返し%語彙_穴(口上グループ == "VSEX" ? 0 # 1)%を責め立てられている")%"
					), SEXPOS(MPLY, MTAR) == 体位_後背位 && 精液描写 != ""
					)
			}
			PRINTL
			IF C_COND("素質:精飲中毒",, MTAR) && MAP_HAS(MODULE_EFFECT_MAP, "精液まみれ") > 0
				{
					CALLF PRINT_RANDC(
						@"%S_R("精液/ザーメン")%まみれの%S_R(@"シーツ/ベッド/寝具")%が放つむせ返るような精臭が、雄臭の虜になった%ANAME(MTAR)%の劣情をますます煽りたてた", 1
						,@"%ANAME(MTAR)%は背後から犯され続けながら、%S_R("シーツ/枕")%に撒き散らされた眼前のザーメンに舌を這わせ、%S_R("すくい取るように/ぴちゃぴちゃといやらしく音を立てて")%舐め取った", SEXPOS(MPLY, MTAR) == 体位_後背位 && !IS_M_HOLD(MTAR)
						)
				}
				PRINTL
			ENDIF
		ELSEIF C_COND("設備属性:椅子,設備属性:卓,設備属性:机","OR", MPLY) && RAND:3
			SELECTCASE SEXPOS(MPLY, MTAR)
				CASE 体位_正常位
					IF C_COND("設備属性:卓,設備属性:机", "OR", MPLY)
						{
							CALLF PRINT_RANDC(
								TEXT_CONCATEC(
								@"%ANAME(MPLY)%は", 1
								,@"天板に寝かせた%ANAME(MTAR)%の%STR_BODY("身体", MTAR)%の上に覆いかぶさり、", 1
								,@"%S_R(@"貪るように犯している/%語彙_ペニス()%で貪っている/その肢体を貪っている")%", 1
								), 1
								)
						}
						PRINTL
					ENDIF
				CASE 体位_後背位, 体位_立ちバック
					{
						CALLF PRINT_RANDC(
							TEXT_CONCATEC(
							@"%S_R(@"%設備名%に腕をついている/尻を突き出して%設備名%で身体を支える")%", 1
							,@"%S_R(@"%ANAME(MTAR)%を、/%ANAME(MTAR)%の%語彙_秘部()%を、")%", IS_V_HOLD(MTAR)
							,@"%S_R(@"%ANAME(MTAR)%を、/%ANAME(MTAR)%の%語彙_肛門()%を、")%", IS_A_HOLD(MTAR)
							,@"%S_R(@"%ANAME(MPLY)%は")%", 1
							,@"%S_R(@"後ろから犯し続けている/背後から責め立てている/%語彙_ペニス()%で貪っている")%", 1
							), 1
							)
					}
					PRINTL
				CASE 体位_対面座位
					{
						CALLF PRINT_RANDC(
							TEXT_CONCATEC(
							@"%S_R(@"%設備名%に腰掛けた/%設備名%に座った/%設備名%に座る")%", 1
							,@"%S_R(@"%ANAME(MPLY)%は")%", 1
							,@"%S_R(@"%ANAME(MTAR)%")%", 1
							,@"%S_R(@"と向かい合って/を正対して/を見つめながら/を脚にのせて/を自身の脚に跨がらせて")%、", 1
							,@"%S_R(@"%語彙_秘部()%を%語彙_ペニス()%で責め立てている/%語彙_秘部()%を%語彙_ペニス()%で貪っている/%語彙_秘部()%の感触を味わっている/%語彙_ペニス()%を深々と突き挿れている")%", IS_V_HOLD(MTAR)
							,@"%S_R(@"%語彙_秘部()%を%語彙_ペニス()%で責め立てている/%語彙_肛門()%を%語彙_ペニス()%で貪っている/%語彙_肛門()%の感触を味わっている/%語彙_ペニス()%を深々と突き挿れている")%", IS_A_HOLD(MTAR)
							), IS_INITIATIVE(MPLY) && IS_V_HOLD(MTAR)
							,TEXT_CONCATEC(
							@"%S_R(@"%設備名%に腰掛けた/%設備名%に座った/%設備名%に座る")%", 1
							,@"%S_R(@"%ANAME(MPLY)%に跨った")%", 1
							,@"%S_R(@"%ANAME(MTAR)%")%は、", 1
							,@"%S_R(@"腰を揺さぶって/腰を深く沈めて/腕を%ANAME(MPLY)%に絡めて", 1,@"抱きつきながら/%ANAME(MPLY)%の胸元にぴったりと身を寄せて")%", 1
							,@"%S_R(@"%語彙_ペニス()%に与えられる快楽を享受している/%語彙_秘部()%で%語彙_ペニス()%を貪っている/%語彙_秘部()%を貫かれる感触を味わっている/注挿の快楽を受け止めている")%", IS_V_HOLD(MTAR)
							,@"%S_R(@"%語彙_ペニス()%に与えられる快楽を享受している/%語彙_肛門()%で%語彙_ペニス()%を貪っている/%語彙_肛門()%を貫かれる感触を味わっている/注挿の快楽を受け止めている")%", IS_A_HOLD(MTAR)
							), IS_INITIATIVE(MTAR) && IS_V_HOLD(MTAR)
							)
					}
					PRINTL
			ENDSELECT
		ELSEIF C_COND("設備属性:浴槽",,MPLY) && RAND:3
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("湯けむりの立ち昇る中で/湯船の縁で")%"
					,@"%S_R(@"%ANAME(MPLY)%は")%"
					,@"%S_R(@"%ANAME(MTAR)%")%"
					,@"%S_R("の肢体を貪っている/と交わっている/を犯している/に注挿を繰り返している")%"
					), 1
					)
			}
			PRINTL
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R(@"%語彙_ペニス()%を突き入れる度に/腰を振る度に/%ANAME(MTAR)%が喘ぎ身悶えする度に")%"
					,@"%S_R("ぱしゃりと湯が跳ね/ぱしゃぱしゃと飛沫が上がり")%、"
					,@"%S_R("水音と肉を打つ音が絶えず響き続けている/浴室内に一定のリズムで淫らな音を響かせ続けている")%"
					), 1
					)
			}
			PRINTL
		ENDIF
	CASE "ORAL"
		IF C_COND("設備属性:机",, MPLY:0) && RAND:3
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("天板の下で/机の下で/机の下に身をかがめた/机下に潜り込んで")%"
					,@"%ANAME(MPLY:0, MPLY_NUM)%は"
					,@"%S_R(@"周囲に悟られぬよう/声を押し殺して/上目遣いで%ANAME(MTAR:0, MTAR_NUM)%を伺いながら/足の間に頭を深く沈めて", 1,"熱い吐息を漏らして/むしゃぶりつくように/情欲のままに", IS_ESTRUS(MPLY:0) && MPLY_NUM == 1)%、"
					,@"%S_R(@"舌を這わせて/口淫を続けて/口での奉仕を続けて/%語彙_ペニス()%への奉仕を続けて/%語彙_ペニス()%を舐め回して/%語彙_ペニス()%に舌をからめて/舐めしゃぶって")%いる…"
					), 1
					)
			}
			PRINTL
		ELSEIF C_COND("設備属性:グローリーホール",, MPLY:0) && (!FLAG:ウフフフラグ || !TFLAG:奉仕モード) && RAND:3
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("薄い仕切りを隔てて/穴の向こう側で/壁を一枚隔てて/様子の見えぬ向こう側で")%"
					,@"%ANAME(MPLY:0, MPLY_NUM)%は"
					,@"%S_R(@"息を荒げて/熱い吐息を漏らしながら、/熱を帯びた吐息を亀頭に浴びせながら、", IS_ESTRUS(MPLY:0) && MPLY_NUM == 1)%)"
					,@"%S_R(@"舌を這わせて/口淫を続けて/口での奉仕を続けて/%語彙_ペニス()%への奉仕を続けて/%語彙_ペニス()%を舐め回して/%語彙_ペニス()%に舌をからめて/舐めしゃぶって")%いる…"
					), 1
					)
			}
			PRINTL
		ELSEIF C_COND("設備属性:浴槽",, MPLY:0)
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("湯けむりの立ち昇る中で/湯船の縁で")%"
					,@"%ANAME(MPLY:0, MPLY_NUM)%は"
					,@"%ANAME(MTAR:0)%の股間に深く顔を埋め、"
					,@"%S_R(@"%語彙_ペニス()%に舌を這わせて/口淫を続けて/口での奉仕を続けて/%語彙_ペニス()%への奉仕を続けて/%語彙_ペニス()%を舐め回して/%語彙_ペニス()%に舌をからめて/%語彙_ペニス()%を舐めしゃぶって")%いる…"
					), 1
					)
			}
			PRINTL
		ELSEIF C_COND("設備用途:排泄",, MPLY:0) && RAND:3
			{
				CALLF PRINT_RANDC(
					TEXT_CONCATE(
					@"%S_R("排泄を目的とした空間で/トイレの中で/排泄のみを目的とするはずの空間で")%"
					,@"%ANAME(MPLY:0, MPLY_NUM)%は"
					,@"%S_R(@"%語彙_ペニス()%に舌を這わせて/口淫を続けて/口での奉仕を続けて/%語彙_ペニス()%への奉仕を続けて/%語彙_ペニス()%を舐め回して/%語彙_ペニス()%に舌をからめて/%語彙_ペニス()%を舐めしゃぶって")%いる…"
					), 1
					)
			}
			PRINTL
			IF IS_NASTY(MPLY, 素質_淫乱_精飲中毒) && MPLY_NUM == 1 && CHECK_EMOTION(MPLY, "GOOD") && RAND:2
				{
					CALLF PRINT_RANDC(
						TEXT_CONCATE(
						@"%S_R(@"%語彙_精液()%の味を忘れられなくなった/%語彙_精液()%が口を満たす快感の虜になった/精臭の虜になった/精飲の虜になった")%"
						,@"%ANAME(MPLY)%は、"
						,@"%S_R("便器代わりに扱われることに/精臭が口腔を満たす感覚に/口を性処理道具として扱われることに/精液のはけ口にされることに/精液便所扱いされることに")%"
						,@"%S_R("多幸感を感じて/えも言わぬ快感を感じて/性的な充足感を感じて/快楽を感じて")%"
						,"いる…"
						), 1
						)
				}
				PRINTL
			ELSEIF (REL_SM(0)) && MPLY_NUM == 1 && CHECK_EMOTION(MPLY, "GOOD") && RAND:2
				{
					CALLF PRINT_RANDC(
						TEXT_CONCATE(
						@"%S_R("調教され尽くした/被虐され尽くした/飼いならされた")%"
						,@"%ANAME(MPLY)%は"
						,@"%S_R("便器代わりに扱われることに/肉便器として扱われることに/性処理道具として扱われることに/性欲のはけ口にされることに/精液便所扱いされることに")%"
						,@"%S_R("多幸感を感じて/えも言わぬ快感を感じて/性的な充足感を感じて/快楽を感じて")%"
						,"いる…"
						), 1
						)
				}
				PRINTL
			ENDIF
		ENDIF
ENDSELECT


code:
;地の文に関する処理
@COM_TEXT_EJAC_TO_V(射精元, 射精先)
#DIM  DYNAMIC 射精元
#DIM  DYNAMIC 射精先

;射精したキャラが獣変化中
IF (TALENT:(射精元):動物耳 || TALENT:(射精元):しっぽ) && !IS_ANIMAL(射精元)
	IF 射精元 == MASTER
		PRINTFORML 獣の本能がもたらす膣内射精の悦びが、%ANAME(射精元)%の脳天を甘く痺れさせた…
		;好感度または従属度が1500以上
	ELSEIF CFLAG:(射精元):好感度 >= 1500 || CFLAG:(射精元):従属度 >= 1500 || CFLAG:(射精先):支配度 >= 1500
		PRINTFORML %ANAME(射精元)%は獣の本能に流されるまま、膣内射精の悦びに顔を緩ませている…
	ELSE
		PRINTFORML %ANAME(射精元)%は獣の本能に逆らえず、膣内射精の悦びに打ち震えている…
	ENDIF
ENDIF
;射精されたキャラが獣変化中
IF 射精先 >= 0 && (TALENT:(射精先):動物耳 || TALENT:(射精先):しっぽ)
	IF 射精先 == MASTER
		PRINTFORML 獣の本能がもたらす膣内射精の悦びが、%ANAME(射精先)%の脳天を甘く痺れさせた…
		;好感度または従属度が1500以上
	ELSEIF CFLAG:(射精先):好感度 >= 1500 || CFLAG:(射精先):従属度 >= 1500 || CFLAG:(射精先):支配度 >= 1500
		PRINTFORML %ANAME(射精先)%は獣の本能に流されるまま、膣内射精の悦びに顔を緩ませている…
	ELSE
		PRINTFORML %ANAME(射精先)%は獣の本能に逆らえず、膣内射精の悦びに打ち震えている…
	ENDIF
ENDIF
;射精されたキャラが妊娠中
IF 射精先 >= 0 && TALENT:(射精先):妊娠
	PRINTFORML 既に子を宿している%ANAME(射精先)%の膣内を、%ANAME(射精元)%の精液が満たしていく…
ENDIF
IF 射精先 >= 0 && (HAS_SAME_FATHER(射精元, 射精先) || HAS_SAME_MOTHER(射精元, 射精先))
	PRINTFORML %ANAME(射精先)%の膣内を、血縁関係にある%ANAME(射精元)%の精液が満たしていく……
ELSEIF 射精先 >= 0 && IS_FATHER(射精先, 射精元)
	PRINTFORML %ANAME(射精先)%の膣内を、父親である%ANAME(射精元)%の精液が満たしていく……
ELSEIF 射精先 >= 0 && IS_MOTHER(射精元, 射精先)
	PRINTFORML %ANAME(射精先)%の膣内を、子である%ANAME(射精元)%の精液が満たしていく……
ENDIF

IF 射精先 >= 0 && GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_浮気癖)
	IF 射精元 == MASTER
		PRINTFORML すっかり浮気癖が身についた%ANAME(射精先)%は、%ANAME(射精元)%からの膣内射精ではいまいち燃えないようだ……
	ELSE
		PRINTFORML すっかり浮気癖が身についた%ANAME(射精先)%は、%ANAME(射精元)%からの膣内射精に燃え上がっている……
	ENDIF
ENDIF

;捕虜調教のメインターゲット
IF FLAG:調教モード == 2 && FINDELEMENT(PRISONER_TARGET, 射精先) != -1 && !((TCVAR:(射精先):52) || (TCVAR:(射精先):53 == 1))
	IF IS_ANIMAL(射精元)
		IF GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_雌犬)
			SELECTCASE TALENT:(射精元):動物
				CASE 動物_犬
					PRINTFORML すっかり獣との交尾を気に入った%ANAME(射精先)%は犬の精子が注がれる度に腰をくねらせ尻を振り、お代わりをねだっている
				CASE 動物_豚
					PRINTFORML すっかり家畜との交尾を気に入った%ANAME(射精先)%は豚の精子が注がれる度に腰をくねらせ尻を振り、お代わりをねだっている
				CASE 動物_馬
					PRINTFORML すっかり種馬との交尾を気に入った%ANAME(射精先)%は馬の精子が注がれる度に腰をくねらせ尻を振り、お代わりをねだっている
			ENDSELECT
		ELSE
			SELECTCASE TALENT:(射精元):動物
				CASE 動物_犬
					PRINTFORML 繁殖力旺盛な精子が犬の凶暴なペニスから子宮に注ぎ込まれる熱を感じ、%ANAME(射精先)%は獣のような悲鳴を上げた
				CASE 動物_豚
					PRINTFORML 豚の螺旋状のペニスから家畜の精子が子宮に注ぎ込まれる熱を感じ、%ANAME(射精先)%は獣のような悲鳴を上げた
				CASE 動物_馬
					PRINTFORML 馬の巨大なペニスから子宮を圧迫するほどの精子を注ぎ込まれ、%ANAME(射精先)%は獣ような悲鳴を上げた
			ENDSELECT
		ENDIF
	ELSE
		IF RAND:3 == 0
			IF TALENT:(射精先):隷属 && (射精元 == MASTER)
				PRINTFORML %ANAME(射精元)%の奴隷として調教が行き届いた%ANAME(射精先)%は膣内射精を受け入れ、お礼を言ってきた
			ELSEIF TALENT:(射精先):服従 && (射精元 == MASTER)
				PRINTFORML %ANAME(射精元)%の奴隷として調教された%ANAME(射精先)%は震え声ではあるが、お礼を言うことは忘れなかった
			ELSEIF TALENT:(射精先):正妻 && (射精元 == MASTER)
				PRINTFORML 伴侶である%ANAME(射精元)%に捕虜として犯され膣内射精されることに%ANAME(射精先)%は慣れることができない
			ELSEIF TALENT:(射精先):親愛 && (射精元 == MASTER)
				PRINTFORML %ANAME(射精元)%を愛しているのに捕虜として犯され膣内射精されることに%ANAME(射精先)%は涙を浮かべている
			ELSEIF TALENT:(射精先):恋慕 && (射精元 == MASTER)
				PRINTFORML %ANAME(射精元)%に惚れているのに捕虜として犯され膣内射精されることに%ANAME(射精先)%は涙を浮かべている
			ELSEIF TALENT:(射精先):親友 && (射精元 == MASTER)
				PRINTFORML 親友だと思っていた%ANAME(射精元)%に捕まり、犯されて膣内射精されることに%ANAME(射精先)%は今だ慣れない
			ELSEIF TALENT:(射精先):恋人 && (射精元 == MASTER)
				PRINTFORML 想いを打ち明けた%ANAME(射精元)%に捕虜として犯され膣内射精されることに%ANAME(射精先)%は耐えられない
			ELSEIF TALENT:(射精先):合意 && (射精元 == MASTER)
				PRINTFORML 以前に体を許した%ANAME(射精元)%に捕虜として犯され膣内射精されることに%ANAME(射精先)%は過去の選択を悔やんでいる
			ELSEIF TALENT:(射精先):子供人質
				PRINTFORML 子供を人質に取られた%ANAME(射精先)%に膣内射精を拒める余地などない
			ELSEIF TALENT:(射精先):妊娠
				PRINTFORML 捕虜である%ANAME(射精先)%は身重であっても容赦なく膣内射精され、子を育みつつある子宮にさらに精子を注がれている
			ELSEIF TALENT:(射精先):キス未経験
				PRINTFORML %ANAME(射精先)%はキスすらしたことがないのに捕虜として膣内射精を強いられる現実を受け入れきれないようだ
			ELSEIF TALENT:(射精先):男嫌い && ((TALENT:(射精元):性別 == 0) || (TALENT:(射精元):性別 >= 3))
				PRINTFORML 男に犯されることに頑なに抵抗していた%ANAME(射精先)%だが、捕虜の身では膣内射精を防ぐ術などない
			ELSEIF TALENT:(射精先):人気
				PRINTFORML 外での人気など牢の中では何の役にも立たないと、%ANAME(射精先)%は膣内射精の熱い感触を感じながら悟った
			ENDIF
		ELSEIF RAND:2 == 0
			IF !IS_FALLEN(射精先) || (IS_LOVER(射精先) && !(射精元 == MASTER))
				PRINTFORML %ANAME(射精先)%は必死に拒絶しようとしたが、捕虜に膣内射精を避ける権利などない
			ENDIF
		ELSE
			IF GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_淫乱)
				PRINTFORML %ANAME(射精先)%は捕虜であるにもかかわらず、その淫奔さから膣内射精の快感に酔い痴れている
			ELSEIF TALENT:(射精先):快感に素直
				PRINTFORML 子宮に精子を浴びせかけられる快感に%ANAME(射精先)%は喘ぎ声を抑えようともしない
			ELSEIF TALENT:(射精先):快感の否定
				PRINTFORML 子宮を精子が蹂躙する快感を否定するように%ANAME(射精先)%は喘ぎ声を抑えている
			ELSEIF TALENT:(射精先):プライド高い
				IF 射精先 >= 0 && IS_OVULATION(射精先)
					PRINTFORML 誇り高い%ANAME(射精先)%が自ら危険日であることを明かして許しを乞うてきたが、捕虜に膣内射精を避ける権利などない
				ELSE
					PRINTFORML 例え囚われの身であっても醜態を晒すまいと、%ANAME(射精先)%は膣内射精されても努めて平静を保とうとした
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
SIF 射精先 >= 0 && GETBIT(TALENT:(射精元):淫乱系, 素質_淫乱_濃厚精液)
	PRINTFORML %ANAME(射精元)%の特濃かつ大量の精液に、%ANAME(射精先)%は目を白黒させている…
IF 射精先 >= 0 && GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_孕みたがり)
	{
		CALLF PRINT_RAND(
			@"%ANAME(射精先)%は子を宿すことの快楽に酔い痴れている…"
			,@"%ANAME(射精先)%は種を授かることが無情の快楽のようだ"
			,@"%ANAME(射精先)%は%S_R("子宮/姫宮")%を子種で満たされることに性的な充足を感じている…"
			,@"%ANAME(射精先)%は%語彙_精液()%で満たされた下腹部を愛おしげに見つめた"
			)
	}
	PRINTL
ENDIF
IF 射精先 >= 0 && GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_生ハメ依存)
	PRINTL
	{
		CALLF PRINT_RAND(
			@"%ANAME(射精先)%は生でないと味わえない快感に酔い痴れている…"
			,@"%ANAME(射精先)%は%語彙_ペニス()%が直接膣壁を擦り上げる度に甘く媚びた淫らな声を上げている"
			,@"%ANAME(射精先)%の%STR_BODY("膣：中出し",射精先)%は、%語彙_ペニス()%に腟内を蹂躙される度に止めどなく%語彙_愛液()%を滴らせている…"
			)
	}
	PRINTL
ENDIF
SIF 射精先 >= 0 && GETBIT(TALENT:(射精先):淫乱系, 素質_淫乱_良質母胎)
	PRINTFORML 苗床に作り替えられた%ANAME(射精先)%の子宮が、膣内射精により強烈に疼いている…
SIF 射精先 >= 0 && TCVAR:(射精先):60
	PRINTFORML 媚薬の効果ゆえか、%ANAME(射精先)%はとろけた声を上げながら膣内射精の悦びに腰をくねらせる…
SIF 射精先 >= 0 && TCVAR:(射精先):67
	PRINTFORML 麻薬の作用で狂乱した%ANAME(射精先)%は、膣内射精の悦びにとろけた声をあげて腰をくねらせる…
SIF 射精先 >= 0 && CFLAG:(射精先):排卵誘発剤
	PRINTFORML 薬の効果で孕みやすくなっている%ANAME(射精先)%の子宮では、大量の精子が卵子に群がっている
SIF 射精先 >= 0 && TFLAG:桃源香使用中
	PRINTFORML 桃源香が漂う中、薄く霞みがかった%ANAME(射精先)%の頭と身体に膣内射精の悦びが駆け巡る…
SIF 射精先 >= 0 && IS_OVULATION(射精先)
	PRINTFORML 危険日である%ANAME(射精先)%の子宮に、無数の精子が注ぎ込まれた…

;淫乱汎用
IF 射精先 >= 0 && C_COND("素質:淫壷",,射精先) && CHECK_EMOTION(射精先, "HAPPY")
	SELECTCASE SEXPOS(射精元, 射精先)
		CASE 体位_正常位
			{
				CALLF PRINT_RAND(
					@"%ANAME(射精先)%は%ANAME(射精元)%に正対して犯されながら、%S_R("情欲に満ちた/弛緩した")%笑みを浮かべ膣奥を満たす快楽の虜になっている"
					)
			}
			PRINTL
		CASE 体位_後背位, 体位_立ちバック
			{
				CALLF PRINT_RAND(
					@"背後から犯されている%ANAME(射精先)%は尻を突き出し、精液%S_R("の滴る/が糸を引いて垂れる")%秘部を%ANAME(射精元)%に見せつけさらなる快楽をねだっている"
					)
			}
			PRINTL
	ENDSELECT
ENDIF

RETURN

@COM_TEXT_EJAC_TO_M(射精元, 射精先, 射精先人数)
#DIM 射精元
#DIM 射精先
#DIM 射精先人数
#DIMS DYNAMIC 表示名

IF TCVAR:射精先:精飲発情フラグ
	CALLF TAG_PRINTH(@"@C:{カラー_ピンク}@口内に流し込まれるどろりとした%語彙_精液()%の感触に%ANAME(射精先)%は恍惚の笑みを浮かべている。すっかり発情しているようだ@/C@", 1)
ENDIF
IF TALENT:射精先:プライド高い
	IF TALENT:射精先:恋慕 && (射精元 == MASTER)
		PRINTFORML %ANAME(射精先)%は恍惚とペニスを咥えたまま、自負心に満ちた瞳で見つめてきた
	ELSEIF TALENT:射精先:服従 && (射精元 == MASTER)
		PRINTFORML %ANAME(射精先)%は己を屈服させたペニスを睨みながらも、決して熱い視線を離そうとはしない
	ELSE
		PRINTFORML %ANAME(射精先)%はペニスを咥えたまま上目遣いで睨んできた
	ENDIF
ENDIF
IF ABL:射精先:精愛 > 5
	IF 射精先人数 >= 2
		{
			CALLF PRINT_RAND(
				@"%ANAME(射精先, 射精先人数)%は吐き出された精液を争うようにして舐め取っていった…"
				,@"%ANAME(射精先, 射精先人数)%は糸を引いて滴る%語彙_精液()%を競うようにすくい上げ、舐め取っている…"
				,@"%ANAME(射精先, 射精先人数)%は競うように、じゅるじゅると音を立て、%語彙_精液()%を舌ですくい上げている…"
				,@"%ANAME(射精先, 射精先人数)%は息を荒げ、%語彙_精液()%にむしゃぶりついている…"
				)
		}
		PRINTL
	ELSE
		PRINTFORML %ANAME(射精先)%は吐き出された精液を一滴残らず吸い上げ、喉を鳴らして飲み込んだ…
	ENDIF
ELSEIF ABL:射精先:精愛 > 2
	IF 射精先人数 >= 2
		PRINTFORML %ANAME(射精先)%は吐き出された精液を協力して舐め取っていった…
	ELSE
		PRINTFORML %ANAME(射精先)%は吐き出された精液を飲み込んだ…
	ENDIF
ELSEIF LOCAL:3 == 0 && 射精先人数 == 1
	{
		CALLF PRINT_RAND(
			@"%ANAME(射精先)%は精液を飲み込むことができず、吐き出してしまった…"
			,@"%ANAME(射精先)%は口内を満たす%語彙_精液()%の異物感に耐えられず、吐き出してしまった…"
			,@"%ANAME(射精先)%は喉奥にまとわりつく%語彙_精液()%のねっとりとした感触に思わずえずいてしまった…"
			,@"%ANAME(射精先)%は口腔から鼻孔を満たす%語彙_精液()%の精臭に耐えかねて吐き出してしまった…"
			)
	}
	PRINTL
ENDIF


code:
;-------------------------------------------------
;共通実行判定
; ARG=コマンド番号
;-------------------------------------------------
@COM_ABLE_COMMON(ARG)
IF !COM_ENABLE
	RETURN 0
ENDIF

;実行者が居ないケースはありえない
SIF MPLY == -1
	RETURN 0
;一部のコマンドは対象が居ないケースが許容される
IF MTAR == -1 || (MPLY:0 == MTAR:0)
	;例外
	IF FINDELEMENT(PERMIT_COM_LIST_SOLO, ARG) == -1
		RETURN 0
	ENDIF
	IF GROUPMATCH(ARG, 325) && FLAG:調教モード != 調教_居住区
		RETURN 0
	ENDIF
ENDIF

;おまかせ中でない時
IF !TFLAG:おまかせ中
	;なすがまま、欲望に従う、おまかせは実行可能
	IF !GROUPMATCH(ARG, GET_TRAINNUM("欲望に従う"), GET_TRAINNUM("おまかせする"))
		;それ以外のコマンドで行動不能のキャラが主導権を握っているとコマンド実行不可
		FOR LOCAL:0, 0, MPLY_NUM
			IF !IS_PLAYABLE(MPLY:(LOCAL:0)) && IS_INITIATIVE_SETTING(MPLY:(LOCAL:0)) == 2 && !FLAG:RECHECKING
				RETURN 0
			ENDIF
		NEXT
		FOR LOCAL:0, 0, MTAR_NUM
			IF !IS_PLAYABLE(MTAR:(LOCAL:0)) && IS_INITIATIVE_SETTING(MTAR:(LOCAL:0)) == 2 && !FLAG:RECHECKING
				RETURN 0
			ENDIF
		NEXT
	ENDIF

	;なすがまま、おまかせは実行可能
	IF !GROUPMATCH(ARG, GET_TRAINNUM("おまかせする"))
		;それ以外のコマンドで主人公が行動不能だとコマンド実行不可
		IF !IS_PLAYABLE(MASTER) && !FLAG:RECHECKING && !FLAG:クエスト_あなた不参加
			RETURN 0
		ENDIF
	ENDIF
ENDIF

;主導権を持っているキャラが、その行為の知識を持っている必要がある
;ペニバンは別
IF ARG:0 == 50
	LOCAL:2 = 1
ELSEIF FLAG:主導権所有者 == -1
	;「成り行き」の場合、プレイヤー・ターゲットのうち誰か一人が知識を持っていれば良い
	LOCAL:2 = 0
	FOR LOCAL:0, 0, MPLY_NUM
		CALL CHECK_COM_KNOWLEDGE(MPLY:(LOCAL:0), ARG:0)
		IF RESULT
			LOCAL:2 = 1
			BREAK
		ENDIF
	NEXT
	IF !LOCAL:2
		FOR LOCAL:0, 0, MTAR_NUM
			CALL CHECK_COM_KNOWLEDGE(MTAR:(LOCAL:0), ARG:0)
			IF RESULT
				LOCAL:2 = 1
				BREAK
			ENDIF
		NEXT
	ENDIF
ELSE
	CALL CHECK_COM_KNOWLEDGE(FLAG:主導権所有者, ARG:0)
	LOCAL:2 = RESULT
ENDIF
IF !LOCAL:2
	RETURN 0
ENDIF

FOR LOCAL:0, 0, MPLY_NUM
	;MPLYが一時的にコマンド実行を禁止されている場合、当該コマンドを実行できない
	IF COM_FORBIDDEN:(MPLY:(LOCAL:0)):(ARG:0) && !FLAG:COM_FORBIDDEN無視 && !FLAG:RECHECKING
		RETURN 0
	ENDIF
	IF IS_QUADORUPED_ANIMAL(MPLY:(LOCAL:0)) && !QUADORUPED_ANIMAL_COMABLE_MPLY(ARG:0)
		RETURN 0
	ENDIF
NEXT

FOR LOCAL:0, 0, MTAR_NUM
	IF IS_QUADORUPED_ANIMAL(MTAR:(LOCAL:0)) && !QUADORUPED_ANIMAL_COMABLE_MTAR(ARG:0)
		RETURN 0
	ENDIF
	;特定のキャラは対象にとれない
	IF GROUPMATCH(CSTR:(MTAR:LOCAL):モブ識別子, "触手")
		RETURN 0
	ENDIF
NEXT

;ホモフィルタ
IF CONFIG:201
	;尻尾Ａ、フェラ、尻コキ、キス、各種挿入系、イラマの場合、MTARとMPLY両方に男が含まれてると不可
	IF GROUPMATCH(ARG, 6, 7, 11, 15, 20, 23, 24, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 53, 56, 58, 90, 161)
		FOR LOCAL:0, 0, MPLY_NUM
			IF IS_MALE(MPLY:(LOCAL:0))
				FOR LOCAL:1, 0, MTAR_NUM
					IF IS_MALE(MTAR:(LOCAL:1))
						RETURN 0
					ENDIF
				NEXT
			ENDIF
		NEXT
	ENDIF
ENDIF

;;ハウジングモード、クエストモード用の判定
IF TFLAG:奉仕モード
	;@COM_AVAILABLE_AT_SERVICE860で判定
	TRYCALLFORM COM_AVAILABLE_AT_SERVICE860(ARG)
	IF !RESULT
		RETURN
	ENDIF
ENDIF
;クエストモードで許容するコマンド
IF FLAG:調教モード == 調教_クエスト && !FLAG:クエスト_交流コマンド許可
	IF GROUPMATCH(ARG, 900, 901)
		RETURN 1
	ELSE
		RETURN 0
	ENDIF
ENDIF

;交流系コマンド
IF FLAG:調教モード == 調教_居住区 || (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可)
	;;実行・対象が同一人物でも実行可能なコマンド
	IF FINDELEMENT(PERMIT_COM_LIST_SOLO, ARG) == -1
		IF MPLY == MTAR
			RETURN 0
		ENDIF
	ENDIF
ENDIF
;調教系コマンド
IF FLAG:ハウジングモード
	;コマンドで外出できる環境ではないので露出プレイは不可
	SIF GROUPMATCH(ARG, 112)
		RETURN 0
	;モジュール属性による体位の制限
	IF C_COND("設備属性:立位まで",, MPLY)
		;立ったままでは実行不可と思われるコマンドを制限
		SIF FINDELEMENT(FORBID_COM_LIST_IN_STANDING_POSITION, ARG) != -1
			RETURN 0
	ENDIF
	IF C_COND("設備属性:座位まで",, MPLY)
		;立ったまま・座ったままでは実行不可と思われるコマンドを制限
		SIF GROUPMATCH(ARG, 30, 31, 34, 35, 37, 38, 40, 41, 44, 45, 47, 48, 110)
			RETURN 0
	ENDIF
	IF FLAG:調教モード == 調教_居住区 || (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可)
		CALL CHECK_COM_AVAILABLE_IN_PUBLIC(ARG:0)
		SIF !RESULT
			RETURN 0
	ENDIF
ENDIF
CALL CHECK_COM_AVAILABLE(ARG:0)
RETURN RESULT

;-------------------------------------------------
;desc  :状況に応じ、渡されたコマンドが実行可能か判別する
;param :コマンド:コマンドの番号
;return:戻り値:実行可能なら1
;-------------------------------------------------
@CHECK_COM_AVAILABLE(コマンド)
#DIM コマンド
CALLFORM COM_AVAILABLE_WHEN{コマンド}

SELECTCASE RESULT
	CASE コマンド_ウフフ
		RETURN FLAG:ウフフフラグ
	CASE コマンド_育児
		RETURN FLAG:調教モード == 調教_子育て
	CASE コマンド_日常
		RETURN !FLAG:ウフフフラグ && FLAG:調教モード != 調教_子育て && FLAG:調教モード != 調教_居住区
	CASE コマンド_居住区
		RETURN FLAG:調教モード == 調教_居住区 || (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可)
	CASE コマンド_クエスト
		RETURN FLAG:調教モード == 調教_クエスト
	CASE コマンド_共通
		RETURN FLAG:調教モード != 調教_居住区
ENDSELECT
RETURN 0

;-------------------------------------------------
; 人目のある状況下で実行可能なコマンドか
;-------------------------------------------------
@CHECK_COM_AVAILABLE_IN_PUBLIC(ARG:0)

IF FLAG:調教モード == 調教_居住区 || (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可)
	;公衆の目があるときに一律実行不可とする行為を判定
	IF FINDELEMENT(FORBID_COM_LIST_IN_PUBLIC, ARG) != -1
		CALL HO_CHECK_PUBLIC_EYE(MPLY)
		IF RESULT == 1
			;MPLYが特定の条件を満たす場合、一部のコマンドを実行可に。それ以外は実行不可
			FOR LOCAL:0, 0, MPLY_NUM
				;リアクションコマンド実行ではスケベモブは人目をはばからない
				IF CFLAG:(MPLY:LOCAL):スケベモブ && (TFLAG:リアクションコマンド実行 || TFLAG:割込コマンド実行)
					RETURN 1
				ENDIF
				;机の下でも実行できるコマンド
				SIF C_COND("設備属性:机",, MPLY) && GROUPMATCH(ARG, 10, 11, 106, 107, 330, 332) && TALENT:(MPLY:(LOCAL:0)):合意
					RETURN ACCEPT_EACH()
				;テーブルの下でも実行できるコマンド
				SIF C_COND("設備属性:卓",, MPLY) && GROUPMATCH(ARG, 14) && TALENT:(MPLY:(LOCAL:0)):合意
					RETURN ACCEPT_EACH()
				;設備の特性によって解禁されるケース
				SIF C_COND("エリアタグ:娼館",, MPLY)
					RETURN ACCEPT_EACH()
			NEXT
			RETURN 0
		ELSE
		ENDIF
	ENDIF
ELSE
ENDIF
RETURN 1

;-------------------------------------------------
;キャラARG:0にコマンドARG:1の知識を獲得させる(ウフフコマンドのみ 0～299)
;-------------------------------------------------
@SET_COM_KNOWLEDGE(ARG:0, ARG:1)

CALL CHECK_COM_KNOWLEDGE(ARG:0, ARG:1)
IF !RESULT
	PRINTFORML %ANAME(ARG:0)%は「%TRAINNAME:(ARG:1)%」の知識を得ました
ENDIF
COM_KNOWLEDGE:(ARG:0):(ARG:1) = 1

;-------------------------------------------------
;キャラARG:0がARG:1番のコマンドを主導実行できる知識があるかどうかを判定
;実行可能なら1、不可能なら0が返る
;-------------------------------------------------
@CHECK_COM_KNOWLEDGE(ARG:0, ARG:1)

;動物は別の制御があるため性知識を無視する
IF GROUPMATCH(TALENT:(ARG:0):慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿)
	RETURN 1
ENDIF

;そのコマンドの知識を持っている、ないし性知識がコマンドの性知識に達していればOK
IF COM_KNOWLEDGE:(ARG:0):(ARG:1)
	RETURN 1
ENDIF

;必要な性知識Lvを取得
RESULT = 0
TRYCALLFORM COM_KNOWLEDGE_LEVEL{ARG:1}

;性知識Lvが必要値に達していればOK
IF ABL:(ARG:0):性知識 >= RESULT
	RETURN 1
ENDIF
RETURN 0

;-------------------------------------------------
;動物キャラがプレイヤー側のときの実行可能コマンドをまるっと制限する関数
;実行可能なら1、不可能なら0
;-------------------------------------------------
@QUADORUPED_ANIMAL_COMABLE_MPLY(ARG:0)
#FUNCTION
;クンニ、アナル舐め、フェラチオ、キス、指フェラ
SIF GROUPMATCH(ARG:0, 2, 8, 11, 20, 24)
	RETURNF 1
;正常位、後背位、騎乗位、背面騎乗位、二本挿入、順番挿入、代わる代わる挿入、それらのＡ版
SIF GROUPMATCH(ARG:0, 30, 31, 34, 35, 36, 40, 41, 44, 45, 46, 55, 56, 57, 58)
	RETURNF 1
;イラマ
SIF GROUPMATCH(ARG:0, 90)
	RETURNF 1
;脚を舐める
SIF GROUPMATCH(ARG:0, 104)
	RETURNF 1
;放尿する、尿をかける、口内放尿
SIF GROUPMATCH(ARG:0, 130, 131, 132)
	RETURNF 1
;おまかせする、なにもしない
SIF GROUPMATCH(ARG:0, 291, 292)
	RETURNF 1
RETURNF 0
;-------------------------------------------------
;動物キャラがターゲット側のときの実行可能コマンドをまるっと制限する関数
;実行可能なら1、不可能なら0
;-------------------------------------------------
@QUADORUPED_ANIMAL_COMABLE_MTAR(ARG:0)
#FUNCTION
;愛撫、アナル愛撫、尻尾アナル挿入、アナル舐め
SIF GROUPMATCH(ARG:0, 0, 4, 7, 8)
	RETURNF 1

;手コキ、フェラチオ、パイズリ、足コキ、オナホコキ、尻尾コキ
SIF GROUPMATCH(ARG:0, 10, 11, 12, 14, 17)
	RETURNF 1

;アナル正常位、後背位、順番にＡ、代わる代わるＡ
SIF GROUPMATCH(ARG:0, 40, 41, 56, 58)
	RETURNF 1

;アナルバイブ, Ａ拡張バルーン、ローション、媚薬、メイガスの夜、麻薬、桃源香
SIF GROUPMATCH(ARG:0, 62, 66, 70, 71, 72, 74, 76)
	RETURNF 1
;スパンキング、鞭、針、目隠し、縄、口枷、アナルフィスト、平手打ち、イラマチオ、腹パン
SIF GROUPMATCH(ARG:0, 81, 82, 83, 84, 85, 86, 88, 89, 90, 97)
	RETURNF 1
;自慰、顔面騎乗、Ａ顔面騎乗、電気あんま、足舐め、Ｗ顔面騎乗、亀頭責め手ｺｷとフェラ、尻尾セルフ、尻尾セルフＡ、土下座、おねだり、セルフオナホ
SIF GROUPMATCH(ARG:0, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 116)
	RETURNF 1
;放尿する、尿をかける、口内放尿、包皮、がんきほうひ
SIF GROUPMATCH(ARG:0, 130, 131, 132, 150, 151)
	RETURNF 1
;おまかせする、なにもしない
SIF GROUPMATCH(ARG:0, 291, 292)
	RETURNF 1
;PENIBAN
SIF GROUPMATCH(ARG:0, 50)
	RETURNF 1
RETURNF 0