code:
;-------------------------------------------------
;ARG:0번의 캐릭터가 타겟인가 어떤가를 돌려주는 함수
;-------------------------------------------------
@IS_MTAR(ARG:0)
#FUNCTION
FOR LOCAL:0, 0, MTAR_NUM
	IF MTAR:(LOCAL:0) == ARG:0
		RETURNF 1
	ENDIF
NEXT
RETURNF 0

;-------------------------------------------------
;ARG:0번의 캐릭터를 타겟으로 추가하는 함수
;이미 타겟이 되고 있는 캐릭터를 지정해도 에러가 되지 않는다
;-------------------------------------------------
@ADD_MTAR(ARG:0)
IF ARG:0 < 0 || ARG:0 >= CHARANUM || IS_MTAR(ARG:0)
	RETURN 0
ENDIF

;캐릭터 번호의 젊은 순서에 정렬한다
MTAR_NUM ++
LOCAL:1 = MTAR_NUM - 1
FOR LOCAL:0, 0, MTAR_NUM
	IF ARG:0 < MTAR:(LOCAL:0)
		FOR LOCAL:1, 1, MTAR_NUM - LOCAL:0
			MTAR:(MTAR_NUM - LOCAL:1) = MTAR:(MTAR_NUM - LOCAL:1 - 1)
		NEXT
		LOCAL:1 = LOCAL:0
		BREAK
	ENDIF
NEXT
MTAR:(LOCAL:1) = ARG:0
ARRAYSORT MTAR, FORWARD, 0, MTAR_NUM
RETURN 1

;-------------------------------------------------
;ARG:0번의 캐릭터를 타겟으로부터 삭제하는 함수
;타겟이 아닌 캐릭터를 지정해도 에러가 되지 않는다
;-------------------------------------------------
@DEL_MTAR(ARG:0)
IF ARG:0 < 0 || ARG:0 >= CHARANUM
	RETURN 0
ENDIF

FOR LOCAL:0, 0, MTAR_NUM
	IF MTAR:(LOCAL:0) == ARG:0
		FOR LOCAL:1, LOCAL:0, MTAR_NUM - 1
			MTAR:(LOCAL:1) = MTAR:(LOCAL:1 + 1)
		NEXT
		MTAR:(MTAR_NUM - 1) = -1
		MTAR_NUM --
		ARRAYSORT MTAR, FORWARD, 0, MTAR_NUM
		RETURN 1
	ENDIF
NEXT
RETURN 0

;-------------------------------------------------
;모든 타겟을 해제하는 함수
;-------------------------------------------------
@CLEAR_MTAR
VARSET MTAR, -1
MTAR_NUM = 0

;-------------------------------------------------
;파라미터량 ARG:0에 대한 파라미터의 Lv를 돌려주는 함수
;※편입의 GETPALAMLV와는 별개
;-------------------------------------------------
@GET_PALAMLV(ARG:0)
#FUNCTION
LOCAL:1 = 25
FOR LOCAL:0, 1, 26
	IF ARG:0 < PALAMLV:(LOCAL:0)
		LOCAL:1 = LOCAL:0 - 1
		BREAK
	ENDIF
NEXT
RETURNF LOCAL:1


code:
;FileName_USERCOM.ERB ------------------------------ Rev1. 00
;커맨드 판정 처리
;CALL		SYSTEM
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@USERCOM
#DIM 능력표시용더미
#DIM 장비부위
#DIM 팬티소비
#DIM 달래고판정
$LOOP_USERCOM
;일반 커맨드(COMF)
IF RESULT >= 0 && RESULT < 800
	;데리고 나가는 판정
	IF RESULT == 351 && !CHK_DATENOW(CFLAG:MASTER:데이트중)
		CALL COM_ABLE351
		SIF !RESULT
			RETURN 0
		PRINTL 데리고나간다
		STR:0 = 데리고나간다
		CALL COM351
		RETURN 0
	ENDIF
	;커맨드 등록 체크
	SIF TRAINNAME:RESULT == ""
		RETURN 0
	;SELECTCOM와 TFLAG:3(SELECTCOM 퇴피)에 입력치 세트
	SELECTCOM = RESULT
	TFLAG:3 = SELECTCOM
	;일부 커맨드의 특수 제한
	SELECTCASE SELECTCOM
		CASE 100 TO 107,140 TO 145
			IF TALENT:TARGET:임신
				PRINTW 임산부에게 그런 일 하는 것 가지 않는다
				RETURN 0
;			ELSEIF !GETBIT(CFLAG:TARGET:기정사실, 4)
;				CALL SM허가
			ENDIF
;;		CASE 60 TO 71
;			IF TALENT:TARGET:임신 && (CFLAG:TARGET:903 <= 30 || CFLAG:TARGET:903 >= 71)
;				PRINTFORMW 지금은 %CALLNAME:TARGET%에 무리는 시키지 않는 것이 좋을 것이다
;				RETURN 0
;			ELSEIF !GETBIT(CFLAG:TARGET:기정사실, 3)
;				CALL A허가
;			ENDIF
	ENDSELECT
	SIF GLOBAL_COMABLE2(SELECTCOM)
		RETURN 0
	;커맨드 사용 가능 판정
	TRYCALLFORM COM_ABLE{SELECTCOM}
	SIF RESULT == 0
		RETURN 0
	;실행 제한(실행 거부등 ) 체크
	TRYCALLFORM CAN_COM{SELECTCOM}(1)
	IF RESULT == 0
		;실행치 표시를 위해 재차 CAN_COM
		TRYCALLFORM CAN_COM{SELECTCOM}(0)
		RETURN 0
	ENDIF
	;더미 TRAIN
	DOTRAIN 999
;이력 표시(미실장)
ELSEIF RESULT == 800
	CALL SHOW_EQUIP
	TFLAG:Info표시중 = 0
	RETURN 1
;더러운 표시
ELSEIF RESULT == 801
	CALL STAIN_INFO
	TFLAG:Info표시중 = 0
	RETURN 1
;TARGET 변경
ELSEIF RESULT == 802
	IF !CFLAG:동침중
		CALL TARGET_CHANGE
		TFLAG:Info표시중 = 0
		RETURN 1
	ENDIF
;TARGET 상태 표시
ELSEIF RESULT == 803
	IF TARGET == MASTER
		CALL SINGLE_CHARA_STATE(MASTER, "「조교중」")
	ELSE
		CALL TARGET_LIST_STATE(TARGET)
	ENDIF
	TFLAG:Info표시중 = 0
	RETURN 1
;MASTER 상태 표시
ELSEIF RESULT == 804
	CALL SINGLE_CHARA_STATE(MASTER, "「조교중」")
	TFLAG:Info표시중 = 0
	RETURN 1
;커맨드필터
ELSEIF RESULT == 809
	CALL OPTION_COMMAND_FILTER
ELSEIF RESULT == 815 && FLAG:70 && !CFLAG:TARGET:수면 && AT_HOME(MASTER)
	IF BATHCHECK(CFLAG:MASTER:현재위치) || IN_TOILET(CFLAG:MASTER:현재위치)
		PRINTFORMW 분명히 이 장소에서는 맛이 없다
	ELSEIF TFLAG:운반 != TARGET
		PRINTFORMW %마스터는% %타겟을% 짊어졌다
		TFLAG:운반 = TARGET
	ELSE
		PRINTFORMW %마스터는% %타겟을% 내렸다
		TFLAG:운반 = 0
	ENDIF
ELSEIF RESULT == 816
	FLAG:AA표시 = !FLAG:AA표시
;집합
ELSEIF RESULT == 817 && TALENT:MASTER:집합 && AT_HOME(MASTER) && !CFLAG:우후후
	CALL SYUGO()
ELSEIF RESULT == 817
	FLAG:삽화표시 = !FLAG:삽화표시
ELSEIF RESULT == 818
	CALL SHOW_GATHERING_LIST_SELECT(GATHERING_SPOT(CFLAG:MASTER:현재위치))
;옷을벗게한다
ELSEIF RESULT == 820 && EQUIP:0 && !(TFLAG:102 == 3 && TFLAG:껴안기모드)
	CALL 옷을벗게한다
;속옷을 훔치는 커맨드의 분리
ELSEIF RESULT == 821 && EQUIP:0 && EQUIP:TARGET:하반신속옷2
	IF !TARGET && !FLAG:70 && !CFLAG:MASTER:장난
		CALL SIMATTYAUOJISAN
	ELSE
		SIF CFLAG:TARGET:291 == 0
			CALL 탈의처리(TARGET, "훔친다")
	ENDIF
;상반신속옷을 탈
ELSEIF RESULT == 822 && EQUIP:TARGET:0 && EQUIP:TARGET:상반신속옷1 != 0
	IF !TARGET
		CALL SIMATTYAUOJISAN
	ELSE
		IF EQUIP:TARGET:상반신윗도리1 || EQUIP:TARGET:상반신윗도리2 || EQUIP:TARGET:원피스|| EQUIP:TARGET:기모노|| EQUIP:TARGET:보디슈트
			PRINTFORM %CALLNAME:TARGET%의 %SHOW_TOP(TARGET, 1)%를 기축시켜,
		ELSE
			PRINTFORM %CALLNAME:TARGET%의
		ENDIF
		PRINTFORMW %CLOTHNAME(7, EQUIP:TARGET:상반신속옷1)%를 제외했다
		EQUIP:TARGET:상반신속옷1 = 0
		TEQUIP:TARGET:상반신착의상황 = 1
		TEQUIP:TARGET:상반신은만상태 = 1
		EQUIP:MASTER:상반신속옷1 = 0
		TEQUIP:MASTER:상반신착의상황 = 1
		TEQUIP:MASTER:상반신은만상태 = 1
		RETURN 0
	ENDIF
;속옷 모습으로 한다
ELSEIF RESULT == 823 && EQUIP:0 && (EQUIP:TARGET:상반신윗도리1 || EQUIP:TARGET:상반신윗도리2 || EQUIP:TARGET:원피스 || EQUIP:TARGET:기모노 || EQUIP:TARGET:외의)
	IF !TARGET
		CALL SIMATTYAUOJISAN
	ELSE
		CALL 탈의처리(TARGET, "속옷 모습으로 한다")
		CALL 탈의처리(MASTER, "속옷 모습으로 한다")
	ENDIF
;신체측정한다
ELSEIF RESULT == 824 && MEASUREMENTCHECK(CFLAG:TARGET:현재위치)
	CALL ASK_M(@"%조사처리(CALLNAME:MASTER,"를")%측정",1,@"%조사처리(CALLNAME:TARGET,"를")%측정",1,"그만둔다",1)
	SELECTCASE RESULT
		CASE 0
			CALL SOMATOMETRY(MASTER)
		CASE 1
			CALL SOMATOMETRY(TARGET)
		CASE 2
	ENDSELECT
	RETURN 0
;속옷 수탈 커맨드 해
ELSEIF RESULT == 825 && TFLAG:팬티수탈
	IF !FLAG:70
		CALL SIMATTYAUOJISAN
	ELSE
		FOR LOCAL,1,CHARANUM
			IF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치 && !CFLAG:LOCAL:노팬티 && EQUIP:LOCAL:하반신속옷2
				SIF !PANTS_ALREADY_COLLECTED(LOCAL)
					SETCOLOR C_PINK
				PRINTFORMW %CALLNAME:LOCAL%가 입고 있던 %PANTSNAME(EQUIP:LOCAL:하반신속옷2, LOCAL)%를 벗겨 품에 넣었다
				RESETCOLOR
				CALL PANTS_GET(LOCAL)
			ENDIF
		NEXT
		TFLAG:Info표시중 = 0
		RETURN 0
	ENDIF
ELSEIF RESULT == 826
	IF TEQUIP:애태우기모드
		TEQUIP:애태우기모드 = 0
	ELSE
		IF TCVAR:MASTER:이기초
			PRINTFORMW 도저히 그런 여유는 없다!
	 	ELSEIF (EX:20 + EX:21 + EX:22 + EX:23 + EX:24) > 0
	 		PRINTFORMW 이제 더 이상 초조하게 할 수 없을 것이다
	 	ELSE
	 		TEQUIP:애태우기모드 = 1
	 	ENDIF
	 ENDIF
;과격한 장난(미실장)
ELSEIF RESULT == 830 && CFLAG:장난 < 2
	PRINTFORML %마스터는% %CALLNAME:TARGET%의 옷을 천천히 풀어해쳤다
	EQUIP:0 = 0
	SIF CFLAG:TARGET:수면간 < 2
	CFLAG:TARGET:수면간 = 2
	CALL SET_PRANK(2,TARGET,1)
	CALL 탈의처리(TARGET, "전라", "「표시 없음」")
	FOR LOCAL,1,CHARANUM
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
	NEXT
	RETURN 1
;test
;ELSEIF RESULT == 99999
;	TIME:5 = 4
;	RETURN 1
;빠져 나간다
ELSEIF RESULT == 850
	SELECTCOM = RESULT
	TFLAG:3 = SELECTCOM
	DOTRAIN 999
;위치짐작=============================================================================================================================
ELSEIF RESULT == 811 && TALENT:MASTER:위치짐작 && AT_HOME(MASTER) && !CFLAG:우후후
	TFLAG:206 = CFLAG:MASTER:현재위치
	CALL HITOSAGASI()
	INPUT
	IF GROUPMATCH(RESULT, 0, CFLAG:MASTER:현재위치)
		TFLAG:Info표시중 = 0
		RETURN 1
	ENDIF
	IF MAP_CAN_MOVE(RESULT) == 0
		IF TFLAG:이동불능메시지 == 999
			PRINTFORMW 열쇠가 걸려 있다
			CLEARLINE 2
			REUSELASTLINE
		ELSE
			TRYCALLFORM MAP_CANNOT_WORD_{MAIN_MAP}(RESULT)
		ENDIF
		TFLAG:이동불능메시지 = 0
		NEXTCOM = -1
		RETURN 0
	ELSEIF IN_HOME(RESULT) == 1
		;NEXTCOM = GETNUM(TRAINNAME, "이동")
		;TFLAG:195 = RESULT
		CALL SKIP_MOVE(CFLAG:MASTER:현재위치, RESULT)
	ENDIF
	TFLAG:Info표시중 = 0
	RETURN 1
;====================================================
ELSEIF RESULT == 812 && TALENT:MASTER:오방짐작 && AT_HOME(MASTER) && !CFLAG:우후후
	TFLAG:206 = CFLAG:MASTER:현재위치
	CALL OHEYA_CHECK
	INPUT
	IF GROUPMATCH(RESULT, 0, CFLAG:MASTER:현재위치)
		TFLAG:Info표시중 = 0
		RETURN 1
	ENDIF
	IF MAP_CAN_MOVE(RESULT) == 0
		IF TFLAG:이동불능메시지 == 999
			PRINTFORMW 열쇠가 걸려 있다
			CLEARLINE 2
			REUSELASTLINE
		ELSE
			TRYCALLFORM MAP_CANNOT_WORD_{MAIN_MAP}(RESULT)
		ENDIF
		NEXTCOM = -1
		RETURN 0
	ELSEIF IN_HOME(RESULT) == 1
		CALL SKIP_MOVE(CFLAG:MASTER:현재위치, RESULT)
	ENDIF
	TFLAG:Info표시중 = 0
	RETURN 1
ELSEIF RESULT == 813 && GETBIT(TALENT:MASTER:정욕감지, 1) && !CFLAG:우후후
	PRINTFORML 기력을 소비해, 성욕을 주체 못하고 있는 소녀를 찾습니다.
	;CALL ASK_M("그만둔다", 1,"발동", 1,"촉매를 사용해 발동", CSTR:MASTER:12 != "")
	CALL ASK_M("그만둔다", 1,"발동", 1,"촉매를 사용해 발동", FLAG:팬티수송)
	SELECTCASE RESULT
		CASE 0
			RETURN -1
		CASE 1,2
			PRINTFORMW %마스터는% \@RESULT == 2 ? 벗어 세우고의 팬티를 잡아 닫아 # \@정신을 통일했다!
			SETCOLOR 255,100,255
			FONTBOLD
			FOR LOCAL, 1, CHARANUM
				IF CFLAG:LOCAL:욕구불만도 >= 500
					PRINTFORML %CALLNAME:LOCAL%는 성욕을 주체 못하고 있다…!
					SIF CFLAG:LOCAL:현재위치 == SUKIMA() && RESULT == 2
						PRINTFORML 그리고, %CALLNAME:LOCAL%는 지금 집에 있다!　……아마.
				ENDIF
			NEXT
			RESETCOLOR
			FONTREGULAR
			IF RESULT == 1
				BASE:MASTER:기력 -= 500
			ELSE
				PRINTFORMW %마스터가% 집중을 풀자, 손안에 있던 팬티는 대기에 녹듯이 사라졌다
				CSTR:MASTER:12 =
				FLAG:팬티수송 = 0
				VARSET PANTS_TEMP
				BASE:MASTER:기력 -= 50
			ENDIF
			SIF !FLAG:70
				TIME += 5
			TFLAG:Info표시중 = 0
			RETURN 1
	ENDSELECT

;필터---------------------------
ELSEIF RESULT == 839
	FLAG:가사언필터 = !FLAG:가사언필터
	RETURN -1
ELSEIF RESULT == 4000
	CFLAG:오토신음 ++
	SIF CFLAG:오토신음 > 2
		CFLAG:오토신음 = 0
	RETURN -1
ELSEIF RESULT >= 831 && RESULT <= 843
	CFLAG:TARGET:(RESULT - 830 + 590) = !CFLAG:TARGET:(RESULT - 830 + 590)
	RETURN -1
;미완성----------------------------

;타겟 변경
ELSEIF RESULT >=1001 && RESULT < (CHARANUM + 1000) && CFLAG:(RESULT - 1000):동실
	;스탠딩종류切り替え
	SIF RESULT - 1000 == TARGET
		FLAG:스탠딩종류 = !FLAG:스탠딩종류
	TFLAG:104 = (RESULT - 1000)
;스토킹대상 선택
ELSEIF RESULT >=4001 && RESULT < (CHARANUM + 4000) && CFLAG:(RESULT - 4000):동실
	IF STALKED == RESULT - 4000
		STALKED = 0
	ELSE
		STALKED = RESULT - 4000
	ENDIF
;하루를 끝낸다
;ELSEIF RESULT == 888
;	BEGIN AFTERTRAIN
;신사로 이끈다
ELSEIF RESULT == 990 && CAN_DATE(TARGET)
	CALL 외출처로부터권할수있을까(TARGET)
	IF !RESULT
		RETURN 1
	ELSE
		CALL 귀가의시간경과
		CALL SET_DATE(99, TARGET)
		CFLAG:TARGET:현재위치 = ENTRANCE
		CFLAG:MASTER:현재위치 = ENTRANCE
		CFLAG:TARGET:데이트중 = MAIN_MAP
		CFLAG:MASTER:데이트중 = MAIN_MAP
		CFLAG:TARGET:동행 = 60
		CFLAG:MASTER:동행 = 60
		IF TARGET == 93 && !GETBIT (FLAG:풀장, 0)
			TIME += 30
			BASE:MASTER:체력 = MAX(BASE:MASTER:체력 - 500,500)
		ENDIF
	IF CFLAG:TARGET:패배자 && (!TALENT:TARGET:연모 && !TALENT:TARGET:사모 && !TALENT:TARGET:애욕)
		PRINTFORMW 싫어하는 %타겟을% 억지로 끌고 돌아가기로 했다
	ELSE
		PRINTFORMW 한가한 듯 하던%타겟을% 따라 귀가하기로 했다
	ENDIF
	RETURN 1
	ENDIF
; KR판 고유기능 또는 원판 삭제됨. 채음보양 관련
ELSEIF RESULT == 990
	IF TALENT:MASTER:179&&!GETBIT(TALENT:MASTER:179,0)&&!GETBIT(TALENT:MASTER:179,1)
		IF GETBIT(TALENT:MASTER:179,2)
			SETBIT TALENT:MASTER:179,0
			CLEARBIT TALENT:MASTER:179,1
		ELSE
			CLEARBIT TALENT:MASTER:179,0
			SETBIT TALENT:MASTER:179,1
		ENDIF
ELSEIF TALENT:MASTER:179&&GETBIT(TALENT:MASTER:179,0)&&GETBIT(TALENT:MASTER:179,2)
	IF GETBIT(TALENT:MASTER:179,3)
		CLEARBIT TALENT:MASTER:179,0
		SETBIT TALENT:MASTER:179,1
	ELSE
		CLEARBIT TALENT:MASTER:179,0
		CLEARBIT TALENT:MASTER:179,1
	ENDIF
ELSEIF TALENT:MASTER:179&&GETBIT(TALENT:MASTER:179,1)&&GETBIT(TALENT:MASTER:179,3)
	CLEARBIT TALENT:MASTER:179,0
	CLEARBIT TALENT:MASTER:179,1
ENDIF
;창고잠금
ELSEIF RESULT == 991
	IF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치 ;KR판과 원판과 다름
		FLAG:창고잠금 = !FLAG:창고잠금
		RETURN 0
	ELSEIF FLAG:창고잠금
		FLAG:창고잠금 = 0
		RETURN 0
	ENDIF
;데이트 신청한다
ELSEIF RESULT == 992 && CAN_DATE(TARGET)
	CALL 외출처로부터권할수있을까(TARGET)
	IF !RESULT
		RETURN 1
	ELSE
		CFLAG:MASTER:동행 = 60
		CFLAG:TARGET:동행 = 60
		CFLAG:TARGET:데이트중 = CFLAG:MASTER:현재위치 / 100
		FLAG:데이트상대 = TARGET
		TFLAG:데이트전호감도 = CFLAG:TARGET:호감도
		TIME += 1
		IF CFLAG:패배자
			PRINTFORMW 싫어하는 %조사처리(CALLNAME:TARGET,"를")% 억지로 끌어냈다
		ELSE
		PRINTFORMW 한가한 듯 하던%타겟을% 따라 데이트 하기로 했다
		ENDIF
	ENDIF
;캘린더
ELSEIF RESULT == 993
	CALL 캘린더
ELSEIF RESULT == 994
	CALL SHOW_HAVE_COLLECTION()
ELSEIF RESULT == 995
	IF AT_HOME(MASTER)
		INVERTBIT FLAG:순간이동, 1
	ELSE
		INVERTBIT FLAG:순간이동, 0
	ENDIF
;시간정지해제
ELSEIF RESULT == 999 && FLAG:70 == 1 && !CFLAG:우후후
	CALL 시간정지해제
	;(은)는만 플래그를 오프
	TEQUIP:2 = 0
	TEQUIP:상반신은만상태 = 0
	;캐릭터 전원의 복재세팅
	FOR LOCAL,0,CHARANUM
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
		;윗도리탈의가끝난상태 플래그를 오프
		TEQUIP:LOCAL:5 = 0
		;신체측정 종료
		SIF CFLAG:LOCAL:신체측정 == 2
			CFLAG:LOCAL:신체측정 = 1
	NEXT
;둘이서 만날 기회 종료
ELSEIF RESULT == 999 && CFLAG:우후후
	SIF CFLAG:MASTER:장난 == 2
		CALL SET_PRANK(0,TARGET,2)
	IF CFLAG:우후후 == 2
			SELECTCOM = RESULT
			TFLAG:3 = SELECTCOM
			DOTRAIN 999
	ELSE
		IF FLAG:70 == 1
			FOR LOCAL,0,CHARANUM
				SIF CFLAG:우후후 == 2
					CALL SET_DERAY(5,LOCAL)
				CALL ENDUFUFU(LOCAL)
			NEXT
			TFLAG:106 = 0
		ELSE
			CALL AFTER_AFFAIR
			FOR LOCAL,1,CHARANUM
				;우후후 종료 말호출
				SIF CFLAG:LOCAL:우후후 == 1 || (CFLAG:LOCAL:장난 >= 1 && CFLAG:LOCAL:면간대사있음)
					CALL KOJO_MESSAGE_SEND("EVENT",15,LOCAL,2,0)
				CALL ENDUFUFU(LOCAL)
			NEXT
			TFLAG:106 = 0
		ENDIF
		;MASTER와의 접촉 위치를 리셋
		CALL TOUCH_SET(0,0,0,1)
		;(은)는만 플래그를 오프
		TEQUIP:2 = 0
		TEQUIP:상반신은만상태 = 0
		;캐릭터 전원의 복재세팅
		FOR LOCAL,0,CHARANUM
			CALL CLOTHES_SETTING_TRAIN(LOCAL)
			;윗도리탈의가끝난상태 플래그를 오프
			TEQUIP:LOCAL:5 = 0
		NEXT
		RETURN 1
	ENDIF
;장난 종료
ELSEIF RESULT == 999 && CFLAG:장난 && !CFLAG:우후후
	FOR LOCAL,0,CHARANUM
		CALL SET_PRANK(0,LOCAL,1)
	NEXT
	;MASTER와의 접촉 위치를 리셋
	CALL TOUCH_SET(0,0,0,1)
	;(은)는만 플래그를 오프
	TEQUIP:2 = 0
	TEQUIP:상반신은만상태 = 0
	;캐릭터 전원의 복재세팅
	FOR LOCAL,0,CHARANUM
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
		;윗도리탈의가끝난상태 플래그를 오프
		TEQUIP:LOCAL:5 = 0
	NEXT
	RETURN 1
;동침 종료
ELSEIF RESULT == 999 && CFLAG:동침중
	FOR LOCAL,0,CHARANUM
		CALL SET_TOGETHER(0,LOCAL,1)
	NEXT
	;MASTER와의 접촉 위치를 리셋
	CALL TOUCH_SET(0,0,0,1)
	CALL KOJO_MESSAGE_SEND("EVENT",16,TARGET,2,0)
	;쇠약이라면 잔다
	SIF CFLAG:TARGET:쇠약
		CALL CHARA_SLEEP, TARGET,0

	;(은)는만 플래그를 오프
	TEQUIP:2 = 0
	TEQUIP:상반신은만상태 = 0
	;캐릭터 전원의 복재세팅
	FOR LOCAL,0,CHARANUM
		CALL CLOTHES_SETTING_TRAIN(LOCAL)
		;윗도리탈의가끝난상태 플래그를 오프
		TEQUIP:LOCAL:5 = 0
	NEXT
	RETURN 1
;데이트 종료
ELSEIF RESULT == 999 && CHK_DATENOW(CFLAG:MASTER:데이트중) && CFLAG:MASTER:현재위치 != OMANEKIBEYA()
	CALL 외출처로부터귀가
	RETURN 1
ELSEIF RESULT > 2000 && RESULT <= 2030 ;KR 고유기능 또는 원판 삭제됨. USERCOM_Func.ERB 사용
LOCAL=RESULT-2000
	IF IS_MTAR(TARGET:LOCAL)
		CALL DEL_MTAR(TARGET:LOCAL)
	ELSE
		CALL ADD_MTAR(TARGET:LOCAL)
	ENDIF
	;CLEARLINE LINECOUNT - LINES_TRAIN
	;LINES_TRAIN = LINECOUNT
	;RETURN 0

ELSEIF RESULT > 2060 && RESULT <= 2090 ;KR 고유기능 또는 원판 삭제됨

	CALL TARGET_LIST_STATE(TARGET:(RESULT-2060))

ELSEIF RESULT == 3000
	TFLAG:PALAM비표시 = !TFLAG:PALAM비표시
ELSEIF RESULT == 3001
	TFLAG:Status비표시 = !TFLAG:Status비표시
ELSEIF RESULT == 3002
	TFLAG:USERCOM비표시 = !TFLAG:USERCOM비표시
ELSEIF RESULT == 3003
	TFLAG:LOOK비표시 = !TFLAG:LOOK비표시

;자원 표시 관련
ELSEIF RESULT == 3100
	;표시 설정의 변환
	FLAG:화상설정 = !FLAG:화상설정
ELSEIF RESULT == 3101
	;그림표시 인원수 -
	FLAG:그림표시 = MAX(FLAG:그림표시-1,1)

ELSEIF RESULT == 3102
	;그림표시 인원수 +
	FLAG:그림표시 = MIN(FLAG:그림표시+1, 10)
ELSEIF RESULT == 3103
	;표시 위치 변환
	FLAG:그림표시위치 = !FLAG:그림표시위치

ELSEIF RESULT == 3104
	;테두리 표시 ON/OFF
	FLAG:화상범위표시 = !FLAG:화상범위표시
ELSEIF RESULT == 3105
	FLAG:스탠딩종류 = !FLAG:스탠딩종류
ELSEIF RESULT == 3106
	isModifier = MAX(isModifier - 10, -50)
ELSEIF RESULT == 3107
	isModifier = MIN(isModifier + 10, 50)
ELSEIF RESULT == 3108
	FLAG:거유차이표시 = !FLAG:거유차이표시
ELSEIF RESULT == 3109
	FLAG:追加エフェクト = !FLAG:追加エフェクト
ELSEIF RESULT == 3110
	CFLAG:TARGET:대체적용 = !CFLAG:TARGET:대체적용
ELSEIF RESULT == 9999
	FOR LOCAL,1,CHARANUM
		PRINTFORMLC %CALLNAME:LOCAL% 현재위치：{CFLAG:LOCAL:현재위치}
	NEXT
ENDIF
TFLAG:Info표시중 = 0
RETURN 0

;FileName_USERCOM.ERB ------------------------------ Rev1. 00
;TARGET 변경 처리
;CALL		USER
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@TARGET_CHANGE
PRINTFORML %CALLNAME:TARGET%의 상대를 하고 있습니다
PRINTL [0] - 돌아간다
FOR LOCAL,1,CHARANUM
	SIF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치
		PRINTFORML [{LOCAL}] - %CALLNAME:LOCAL% (호감도:{CFLAG:LOCAL:2})
NEXT
INPUT
IF RESULT <= 0 || RESULT >= CHARANUM
	RETURN 0
ELSEIF CFLAG:RESULT:현재위치 == CFLAG:MASTER:현재위치
	TFLAG:104 = RESULT
ENDIF

;----------------------------------------------------------
;FileName_USERCOM.ERB ------------------------------ Rev1. 00
;이력 표시 처리(미실장)
;CALL		SYSTEM
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@SHOW_EQUIP
WAIT

;FileName_USERCOM.ERB ------------------------------ Rev1. 00
;일상 커맨드의 성공 여부 판정
;CALL					USER
;ARG:0(조건최대치 커맨드 일의 성공 여부 조건의 최대치
;ARG:1(성공치 커맨드 일의 성공치
;ARG:2(대성공보정치 커맨드 일의 대성공에 대한 보정치
;RETURN		VOID
;COMMENT	각 커맨드에 흩어져 있는 성공 여부 판정을 일괄
;-------------------------------------------------
@SUC_FAIL(조건최대치, 성공치, 대성공보정치)
#DIM 조건최대치
#DIM 조건치
#DIM 성공치
#DIM 대성공보정치

SIF !조건최대치
	조건최대치 = 100

조건치 = RAND:조건최대치

SIF !성공치
	성공치 = MIN(90 + GET_SUCCESS_RATE() / 5, 99)

SELECTCASE TFLAG:192
	;통상
	CASE 0
		;대성공
		IF 조건치 <= 9 + 대성공보정치
			TFLAG:193 = 1
		;실패
		ELSEIF 조건치 >= 성공치
			TFLAG:193 = -1
		;성공
		ELSE
			TFLAG:193 = 0
		ENDIF
	;강제 성공 or대성공(강제 성공시는 대성공하기 쉽게
	CASE 1
		;대성공
		IF 조건치 <= 19 + 대성공보정치 / 2
			TFLAG:193 = 1
		;성공
		ELSE
			TFLAG:193 = 0
		ENDIF
	;강제 실패 or 커맨드 종료
	CASE -1,-2
		TFLAG:193 = -1
ENDSELECT
조건최대치 = 0
조건치 = 0
성공치 = 0
대성공보정치 = 0

@SOMATOMETRY(ARG)
PRINTFORML %CALLNAME:ARG%의 신체측정을 실시했다.
CALL MAKE_SIZE(ARG)
CFLAG:ARG:신체측정 = 1
CALL SHOW_SIZE(ARG)
CALL ASK_YN("재측정한다","이걸로 좋다")
IF !RESULT
	CFLAG:ARG:신체측정 = 2
	RESTART
ENDIF

repo_name: purugi/eraTWKR

license: mit


code:
@탈의처리(C_ID, TYPE, OP)
#DIM  C_ID ;대상이 되는 등록 번호
#DIMS TYPE ;처리 내용
#DIMS OP   ;실행 옵션
SELECTCASE TYPE
CASE "전라"
	IF !(C_ID == MASTER) && !STRCOUNT(OP, "「표시 없음」")
		CALL MESSAGE_탈의상
		TSTR:3 = %CALLNAME:C_ID%{EQUIP:C_ID:하반신속옷2}/
		IF (FLAG:시간정지 || TCVAR:C_ID:만취) && EQUIP:하반신속옷2
		;IF (TIMESTOP() == 2|| TCVAR:C_ID:만취) && EQUIP:하반신속옷 2
			CALL MESSAGE_탈의하
			SIF !PANTS_ALREADY_COLLECTED(C_ID)
				SETCOLOR C_PINK
			PRINTFORML %조사처리(CALLNAME:C_ID,"는")% %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 입고 있는 것 같다
			RESETCOLOR
			IF FLAG:팬티도둑 == 1
				CALL 탈의처리(C_ID, "훔친다")
			ELSEIF FLAG:팬티도둑 == 2
				GOTO PANTU_NUGASUDAKE
			ELSE
				PRINTFORML 어떻게 합니까?
				CALL ASK_YN("훔친다","벗기기만 할 뿐")
				IF RESULT == 0
					CALL 탈의처리(C_ID, "훔친다")
				ELSE
					$PANTU_NUGASUDAKE
					CALL MESSAGE_탈의하속옷
					EQUIP:C_ID:하반신속옷2 = 0
				ENDIF
			ENDIF
		ELSEIF EQUIP:하반신속옷2
			CALL MESSAGE_탈의하
			SIF !PANTS_ALREADY_COLLECTED(C_ID)
				SETCOLOR C_PINK
			CALL MESSAGE_탈의하속옷
			PRINTFORML %조사처리(CALLNAME:C_ID,"가")% 입고 있던 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 받겠습니까?
			RESETCOLOR
			PRINT [0] - 간절히 부탁한다
			PRINT [1] - 그만둔다
			DO
				INPUT
				SIF !GROUPMATCH(RESULT, 0, 1)
					CONTINUE
				IF RESULT
					EQUIP:C_ID:하반신속옷2 = 0
					PRINTL
					BREAK
				ENDIF

				;여기서부터 RESULT == 0
				IF ABL:C_ID:순종 > 7 && ABL:C_ID:친밀 > 7
					IF ABL:C_ID:욕망 > 7 && !RAND:4
						PRINTFORMW %타겟은% 대신에 %CALLNAME:MASTER%의 속옷을 갖고 싶어한다…
						IF EQUIP:MASTER:하반신속옷2
							SIF !PANTS_ALREADY_COLLECTED()
								SETCOLOR C_PINK
							PRINTFORMW %마스터는% 자신의 속옷과 바꿔 %CALLNAME:C_ID%의 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 손에 넣었다!
							RESETCOLOR
							CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 3, 0)
							TSTR:3 = %CALLNAME:C_ID%{EQUIP:C_ID:하반신속옷2}/
							CSTR:MASTER:12 += TSTR:3
							CALL PANTS_GET(C_ID, "받는다")
							CFLAG:MASTER:노팬티 = 2
							CFLAG:C_ID:팬티2 = 1
							CFLAG:C_ID:당신의팬티 = 1
							EQUIP:MASTER:하반신속옷2 = 0
						ELSE
							PRINTFORMW 그러나 %마스터는% 노팬티였다
							PRINTFORMW %타겟은% 살짝 질겁하고 있다…
						ENDIF
					ELSE
						SIF !PANTS_ALREADY_COLLECTED()
							SETCOLOR C_PINK
						PRINTFORMW %조사처리(CALLNAME:C_ID,"는")% 얼굴이 새빨개져서 벗은지 얼마 안 된 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 %CALLNAME:MASTER%에 전했다
						PRINTFORMW %마스터는% %CALLNAME:C_ID%의 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 손에 넣었다!
						RESETCOLOR
						CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 3, 1)
						CALL PANTS_GET(C_ID, "받는다")
					ENDIF
				ELSEIF ABL:TARGET:순종 > 5 && ABL:TARGET:친밀 > 5
					SIF !PANTS_ALREADY_COLLECTED()
						SETCOLOR C_PINK
					PRINTFORMW %조사처리(CALLNAME:C_ID,"는")% 마지못해 벗은지 얼마 안된 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 내몄다
					PRINTFORMW %마스터는% %CALLNAME:C_ID%의 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 손에 넣었다!
					RESETCOLOR
					CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 3, 2)
					CALL PANTS_GET(C_ID, "받는다")
				ELSE
					PRINTFORMW %타겟은% 살짝 깨는 눈치로 거부했다
					;PRINTFORMW 어쩔 수 없이 벗기는 만큼 했다…
					CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 3, 3)
					EQUIP:C_ID:하반신속옷2 = 0
				ENDIF
			PRINTL
			BREAK
			LOOP 1
		ELSE
			CALL MESSAGE_탈의하
			CALL MESSAGE_탈의하속옷
		ENDIF
		CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 0, 0)
	ENDIF
	CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_전라")
	CALL CLOTHES_SETTING_TRAIN(C_ID)
	RETURN 0
CASE "훔친다"
	SIF EQUIP:TARGET:바지
		CALL MESSAGE_탈의하(1)
	TSTR:3 = %CALLNAME:C_ID%{EQUIP:C_ID:하반신속옷2}/
	CALL MESSAGE_탈의하속옷
	SIF !PANTS_ALREADY_COLLECTED(C_ID)
		SETCOLOR C_PINK
	PRINTFORMW %조사처리(CALLNAME:C_ID,"가")% 입고 있던 %PANTSNAME(EQUIP:C_ID:하반신속옷2, C_ID)%를 벗겨 품에 넣었다
	RESETCOLOR
	CALL PANTS_GET(C_ID)
	RETURN 0
CASE "속옷 모습으로 한다"
	IF !(C_ID == MASTER) && !STRCOUNT(OP, "「표시 없음」")
		CALL MESSAGE_탈의윗도리
		CALL MESSAGE_탈의하
		CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 1, 0)
	ENDIF
	CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_속옷 모습")
	CALL CLOTHES_SETTING_TRAIN(C_ID)
	;"현재 의상의 변경_속옷 모습"에는 TEQUIP의 직접 조작이 있는, 전모를 파악하고 있지 않지만 원래의 구문이라면
	;호출원으로 최종적으로 전캐릭터에 대해서 CLOTHES_SETTING_TRAIN를 실행하고 있었기 때문에
	;거동으로서는 변함없을 것
	;TEQUIP:TARGET:상반신은만상태 = 1
	RETURN 0
CASE "팬티 받는다"
CASE "반라"
	IF !(C_ID == MASTER) && !STRCOUNT(OP, "「표시 없음」")
		CALL MESSAGE_탈의윗도리
		CALL MESSAGE_탈의하(1)
		CALL KOJO_MESSAGE_SEND("EVENT", 28, C_ID, 2, 0)
	ENDIF
	CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_반라")
	CALL CLOTHES_SETTING_TRAIN(C_ID)
	RETURN 0
CASEELSE
	THROW 불명한 TYPE %TYPE%
ENDSELECT

@옷을벗게한다
SIF !TARGET
	JUMP SIMATTYAUOJISAN

IF CFLAG:TARGET:노팬티 == 0

	SELECTCASE FLAG:탈의선택
	CASE 0
		PRINTL 반라로 합니까?
		PRINT [0] - 전부탈
		IF TEQUIP:TARGET:윗도리탈의가끝난상태 == 0 || EQUIP:TARGET:상반신속옷1
			SIF EQUIP:0 && TARGET && EQUIP:TARGET:상반신속옷1 != 0 && (EQUIP:TARGET:기모노!= 0 || EQUIP:TARGET:상반신윗도리2 != 0 || EQUIP:TARGET:보디슈트== 3)
				PRINT [1] - 반라 착의 플레이
		ENDIF
		IF TEQUIP:TARGET:윗도리탈의가끝난상태 == 0
			SIF EQUIP:0 && TARGET && (EQUIP:TARGET:상반신속옷1 != 0 || EQUIP:TARGET:상반신속옷2 != 0 || EQUIP:TARGET:하반신속옷1 != 0 || EQUIP:TARGET:하반신속옷2 != 0 || EQUIP:TARGET:레오타드!= 0 || EQUIP:TARGET:보디슈트!= 0)
				PRINT [2] - 속옷인 만큼 한다
		ENDIF
		DO
			INPUT
			SELECTCASE RESULT
			CASE 0
				CALL 탈의처리(TARGET, "전라")
				CALL 탈의처리(MASTER, "전라")
			CASE 1
				CALL 탈의처리(TARGET, "반라")
				CALL 탈의처리(MASTER, "반라")
			CASE 2
				CALL 탈의처리(TARGET, "속옷 모습으로 한다")
				CALL 탈의처리(MASTER, "속옷 모습으로 한다")
			CASEELSE
				CONTINUE
			ENDSELECT
			BREAK
		LOOP 1
	CASE 1
		CALL 탈의처리(TARGET, "전라")
		CALL 탈의처리(MASTER, "전라")
	CASE 2
		IF !TEQUIP:3
			CALL 탈의처리(TARGET, "반라")
			CALL 탈의처리(MASTER, "반라")
		ELSE
			PRINTFORML %CALLNAME:TARGET%의 옷은 벌써 풀어헤쳐지고 있다
			PRINTL 전부 벗기겠습니까?
			PRINT [0] - 네
			PRINT [1] - 아니오
			INPUT
			IF RESULT == 0
				CALL 탈의처리(TARGET, "전라")
				CALL 탈의처리(MASTER, "전라")
			ELSE
				RETURN 0
			ENDIF
		ENDIF
	ENDSELECT
;벌써 입지 않다
ELSE
	IF TEQUIP:TARGET:윗도리탈의가끝난상태
		CALL 탈의처리(TARGET, "전라")
		CALL 탈의처리(MASTER, "전라")
	ELSE
		;착의 플레이의 선택
		PRINTFORML %타겟은% 벌써 입지 않았다
		SELECTCASE FLAG:탈의선택
		CASE 0
			PRINTL 반라로 하겠습니까?
			PRINT [0] - 전부탈
			IF EQUIP:TARGET:상반신속옷1
				SIF EQUIP:0 && TARGET && EQUIP:TARGET:상반신속옷1 && (EQUIP:TARGET:기모노!= 0 || EQUIP:TARGET:상반신윗도리2 != 0 || EQUIP:TARGET:보디슈트== 3)
					PRINT [1] - 반라 착의 플레이
			ENDIF
			SIF EQUIP:0 && TARGET && (EQUIP:TARGET:상반신속옷1 != 0 || EQUIP:TARGET:상반신속옷2 != 0 || EQUIP:TARGET:하반신속옷1 != 0 || EQUIP:TARGET:하반신속옷2 != 0 || EQUIP:TARGET:레오타드!= 0 || EQUIP:TARGET:보디슈트!= 0)
				PRINT [2] - 속옷인 만큼 한다
			DO
				INPUT
				SELECTCASE RESULT
				CASE 0
					CALL 탈의처리(TARGET, "전라")
					CALL 탈의처리(MASTER, "전라")
				CASE 1
					CALL 탈의처리(TARGET, "반라")
					CALL 탈의처리(MASTER, "반라")
				CASE 2
					CALL 탈의처리(TARGET, "속옷 모습으로 한다")
					CALL 탈의처리(MASTER, "속옷 모습으로 한다")
				CASEELSE
					CONTINUE
				ENDSELECT
				BREAK
			LOOP 1
		CASE 1
			CALL 탈의처리(TARGET, "전라")
		CASE 2
			IF !TEQUIP:TARGET:3
				CALL 탈의처리(TARGET, "반라")
				CALL 탈의처리(MASTER, "반라")
			ELSE
				PRINTFORML %CALLNAME:TARGET%의 옷은 벌써 풀어헤쳐지고 있다
				PRINTL 전부 벗게 하겠습니까?
				PRINT [0] - 네
				PRINT [1] - 아니오
				INPUT
				IF RESULT == 0
					CALL 탈의처리(TARGET, "전라")
					CALL 탈의처리(MASTER, "전라")
				ELSE
					RETURN 0
				ENDIF
			ENDIF
		ENDSELECT
	ENDIF
ENDIF

;갈아입히기 플래그 OFF
;EQUIP:TARGET:0 = 0
;캐릭터 전원의 복재세팅
;개개로 하고 있으니 고례등응이라고 생각한다
[SKIPSTART]
FOR LOCAL, 0, CHARANUM
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
NEXT
[SKIPEND]
RETURN 1


code:
;FileName_USERCOM.ERB ------------------------------ Rev1. 00
;커맨드 표시 처리
;CALL		SYSTEM
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@SHOW_USERCOM
TFLAG:100 = !TFLAG:101
VARSET LOCAL
;전턴의 MASTER가 사정한 상대를 LOCAL:1에 세트
IF TCVAR:MASTER:112 == 1
	;V
	LOCAL:1 = MASTER_POSE(SET_V, SET_P, 1)
ELSEIF TCVAR:MASTER:112 == 2
	;A
	LOCAL:1 = MASTER_POSE(SET_A, SET_P, 1)
ENDIF

;TARGET가 여럿 있을 때는 한가를 주체 못한다
CALL ANOTHERTARGET_TALK

CALL 정경묘사

;IF (FLAG:70 == 1 && TARGET) || CFLAG:TARGET:우후후
	CALL LOOK_AT
	PRINTL
;ENDIF
CALL DRAW_INFORMATIONLINE("Act_COM")
;PRINT ==Act_COM
CALL 필터표시

;커맨드 표시
FOR LOCAL, 0,800
	SIF LOCAL == 355 && (!FLAG:70 || CFLAG:TARGET:344 == 1)
		CONTINUE
	SIF LOCAL == 200 && TFLAG:102 == 2
		PRINTL
	SIF LOCAL == 350 && TFLAG:102 != 2
		PRINTL
	SIF LOCAL == 400 && TFLAG:102 != 2
		PRINTL
	SIF GLOBAL_COMABLE2(LOCAL)
		CONTINUE
	SIF GROUPMATCH(LOCAL, 400,604)
		CONTINUE
	RESULT = 0
	;현상으로 대상 커맨드가 사용 가능한가 어떤가 판정
	TRYCALLFORM COM_ABLE{LOCAL}
	IF RESULT
		SIF !QUICKFILTER(LOCAL)
			CONTINUE
		IF (LOCAL == 42 && TEQUIP:11) || (LOCAL == 43 && TEQUIP:12) || (LOCAL == 44 && TEQUIP:13) || (LOCAL == 45 && TEQUIP:14) || (LOCAL == 46 && TEQUIP:15) || (LOCAL == 47 && TEQUIP:16) || (LOCAL == 48 && TEQUIP:17)
			PRINTFORMC %TRAINNAME:LOCAL% 해제[{LOCAL, 3}]
		ELSEIF LOCAL == 81 && LOCAL:1
			PRINTFORMC 청소 펠라[{LOCAL, 3}]
		ELSEIF LOCAL == 82 && (TALENT:105 == -2 || TALENT:105 == -1)
			PRINTFORMC 나이즈리[{LOCAL , 3}]
		ELSEIF LOCAL == 60 && (!BEDROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 대면입위[{LOCAL, 3}]
		ELSEIF LOCAL == 61 && (!INROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 배면입위[{LOCAL, 3}]
		ELSEIF LOCAL == 62 && (!BEDROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 대면입위 애널[{LOCAL, 3}]
		ELSEIF LOCAL == 63 && (!INROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 배면입위 애널[{LOCAL, 3}]
		ELSEIF LOCAL == 73 && TCVAR:PLAYER:이기초
			IF TEQUIP:TARGET:체위 == 1 && (BEDROOM(CFLAG:PLAYER:현재위치) || (BATHROOM() && ITEM:20))
				PRINTFORMC 교배 프레스[{LOCAL, 3}]
			ELSEIF TEQUIP:TARGET:체위 == 2
				IF CFLAG:TARGET:생리주기 == 7
					PRINTFORMC 잉태 교미[{LOCAL, 3}]
				ELSE
					PRINTFORMC 교배 교미[{LOCAL, 3}]
				ENDIF
			ELSE
				PRINTFORMC %TRAINNAME:LOCAL%[{LOCAL, 3}]
			ENDIF
		ELSEIF LOCAL == 92 && (!BEDROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC A대면입위받는다[{LOCAL, 3}]
		ELSEIF LOCAL == 93 && (!INROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC A배면입위받는다[{LOCAL, 3}]
		ELSEIF LOCAL == 100 && TALENT:TARGET:유치
			PRINTFORMC 엉덩이 팡팡[{LOCAL, 3}]
		ELSEIF LOCAL == 130 && (!BEDROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 대면입위받는다[{LOCAL, 3}]
		ELSEIF LOCAL == 131 && (!INROOM(CFLAG:PLAYER:현재위치) && !(BATHROOM() && ITEM:20))
			PRINTFORMC 배면입위받는다[{LOCAL, 3}]
		ELSEIF LOCAL == 301 && CFLAG:TARGET:행동 == 5
			PRINTFORMC 차를 탄다[{LOCAL, 3}]
		ELSEIF LOCAL == 301 && GETBIT(TCVAR:MASTER:특별한차, 0)
			PRINTFORMC 홍차를 탄다[{LOCAL, 3}]
		ELSEIF LOCAL == 334 && CFLAG:TARGET:350 == 49 && (TALENT:TARGET:술내성 == -2 || CFLAG:TARGET:임신자각상태 == 1)
			PRINTFORMC 요리를 권한다[{LOCAL, 3}]
		ELSEIF LOCAL == 304 && CFLAG:TARGET:350 == 46
			PRINTFORMC 놀이에 참가한다[{LOCAL, 3}]
		ELSEIF LOCAL == 304 && CFLAG:TARGET:350 == 52
			PRINTFORMC 『안다』[{LOCAL,3}]
		ELSEIF LOCAL == 315
			IF GETBIT(TALENT:TARGET:성별, 1)
				PRINTFORMC 좆대 애무[{LOCAL, 3}]
			ELSEIF CFLAG:MASTER:장난
				PRINTFORMC 음부 애무[{LOCAL, 3}]
			ELSE
				PRINTFORMC 클리 애무[{LOCAL, 3}]
			ENDIF
		ELSEIF LOCAL == 350
			IF FLAG:70 == 1 && CFLAG:TARGET:344 == 0
				LOCALS = 장난친다
			ELSEIF (CFLAG:현재위치 == 혼숙여관 || CFLAG:현재위치 == 러브호텔)&& !CFLAG:우후후
				LOCALS = 껴안는다
			ELSEIF CFLAG:현재위치 == 서당
				LOCALS = 금지된 개인 수업
			ELSEIF CFLAG:현재위치 == OMANEKIBEYA() && TARGET == 43
				LOCALS = 방중술 수행
			;침대가 없다
			;실외
			ELSEIF !INROOM(CFLAG:PLAYER:현재위치)
				LOCALS = 껴안는다
			ELSE
				LOCALS = 덮친다
			ENDIF
			SIF GET_TARGETNUM() > 1
				LOCALS = 한꺼번에 %LOCALS%
			PRINTFORMC %LOCALS%[{LOCAL, 3}]
		ELSEIF LOCAL == 351 && CFLAG:TARGET:태도 > 0
			SETCOLOR C_AQUA
			PRINTFORMC %TRAINNAME:LOCAL%[{LOCAL, 3}]
			RESETCOLOR
		ELSEIF LOCAL == 360 && BASE:MASTER:기력 <= 0
			PRINTFORMC 남 하는 대로[{LOCAL, 3}]
		ELSEIF LOCAL == 366 && GROUPMATCH(IRAI_CHARA_TO_PROGRESS(TARGET), "의뢰 달성", "의뢰 실패")
			SETCOLOR C_GREEN
			PRINTFORMC 의뢰 보고[{LOCAL, 3}]
			RESETCOLOR
		ELSEIF LOCAL == 366 && GROUPMATCH(IRAI_CHARA_TO_PROGRESS(TARGET), "의뢰미수탁")
			SETCOLOR C_GREEN
			PRINTFORMC 의뢰를 듣는다[{LOCAL, 3}]
			RESETCOLOR
		ELSEIF LOCAL == 367
			SETCOLOR C_GREEN
			PRINTFORMC %NAME_IRAI_ACT()%[{LOCAL, 3}]
			RESETCOLOR
		ELSEIF LOCAL == 417 && TIME >= 660 && TIME <= 900
			PRINTFORMC 낮잠 잔다[{LOCAL, 3}]
		ELSEIF LOCAL == 417
			PRINTFORMC 선잠 잔다[{LOCAL, 3}]
		ELSEIF LOCAL == 420
			SELECTCASE MAIN_MAP
				CASE 0
					LOCALS = 루코토
				CASE 3
					LOCALS = 메이드 요정
				CASE 9
					LOCALS = 좀비 페어리
			ENDSELECT
			PRINTFORMC %LOCALS%와 대화[{LOCAL, 3}]
		ELSEIF LOCAL == 422 && CFLAG:MASTER:현재위치 == 103
			PRINTFORMC 부처님 말씀을 듣는다[{LOCAL, 3}]
		ELSEIF LOCAL == 431 && (CFLAG:MASTER:현재위치 == 24 || CFLAG:MASTER:현재위치 == 441||CFLAG:MASTER:현재위치 == 1444)
			PRINTFORMC 온천에서 쉰다[{LOCAL, 3}]
		ELSEIF LOCAL == 431 && (CFLAG:MASTER:현재위치 == 대중목욕탕 || CFLAG:MASTER:현재위치 == 940)
			PRINTFORMC 입욕한다[{LOCAL, 3}]
		ELSEIF LOCAL == 431 && !SMALL_PLACE(CFLAG:MASTER:현재위치) && GETBIT (FLAG:풀장, 1) && !BATHCHECK(CFLAG:MASTER:현재위치)
			PRINTFORMC 수영장에서 쉰다[{LOCAL, 3}]
		ELSEIF LOCAL == 405 && CFLAG:TARGET:동행 && TARGET
			PRINTFORMC 데이트[{LOCAL, 3}]
		ELSEIF LOCAL == 410 && OUTROOF(CFLAG:MASTER:현재위치) && DAY:2 == 4
			PRINTFORMC 눈치우기[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && TIME >= 300 && TIME <= 540 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == OMANEKIBEYA())
			PRINTFORMC 아침 식사를 한다[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && TIME >= 660 && TIME <= 900 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == OMANEKIBEYA())
			PRINTFORMC 점심 식사를 한다[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && TIME >= 1020 && TIME <= 1200 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == OMANEKIBEYA())
			PRINTFORMC 저녁 식사를 한다[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && TIME >= 1200 && TIME <= 1440 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == OMANEKIBEYA())
			PRINTFORMC 늦은 식사를 한다[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && TIME >= 0 && TIME <= 180 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == OMANEKIBEYA())
			PRINTFORMC 야식을 먹는다[{LOCAL, 3}]
		ELSEIF LOCAL == 414 && CFLAG:TARGET:행동 == 5
			PRINTFORMC 식사 휴식[{LOCAL, 3}]
		ELSEIF LOCAL == 443
			PRINTFORMC %NAME_UNIQUE_COM(TARGET)%[{LOCAL, 3}]
		ELSEIF LOCAL == 464
			SELECTCASE CFLAG:MASTER:현재위치
				CASE 210
					IF MAIN_MAP == 8
						PRINTFORMC 삭도역へ[{LOCAL,3}]
					ELSE
						PRINTFORMC 절경의 언덕へ[{LOCAL,3}]
					ENDIF
				CASE 820
					IF MAIN_MAP == 2
						PRINTFORMC 人里북쪽거리へ[{LOCAL,3}]
					ELSE
						PRINTFORMC 광장へ[{LOCAL,3}]
					ENDIF
				CASEELSE
					LOCALS = %STR:(6000 + SPECIAL_AREAMOVE() / 10)%
					PRINTFORMC %LOCALS%로[{LOCAL,3}]
				ENDSELECT
		ELSEIF LOCAL == 603 && PREVCOM == 603
			PRINTFORMC 손을 잡아당긴다[{LOCAL, 3}]
		ELSEIF LOCAL == 698
			PRINTFORMC %OMANEKI_PLACE()%로 간다[{LOCAL, 3}]
		ELSEIF STRLENS(TRAINNAME:LOCAL)
			PRINTFORMC %TRAINNAME:LOCAL%[{LOCAL, 3}]
		ENDIF
	ENDIF
NEXT
RESULT = 0
;자동 실행중이라면 아래와 같이 표시를 스킵
SIF !TFLAG:100
	GOTO SKIP
PRINTL
CALL DRAW_INFORMATIONLINE("Ex_COM")
;SIF !GETBIT (FLAG:USERCOM필터, 12)
;	PRINTC 이력 표시[800]
IF GETBIT(FLAG:순간이동, 1) && !CFLAG:MASTER:동행
	SETCOLOR 0x5090FF
ELSE
	SETCOLOR C_GREEN
ENDIF
RESULT = 0
CALL COM_ABLE400
SIF RESULT
	PRINTC 이동[400]
IF GETBIT(FLAG:순간이동, 0) && !FLAG:데이트상대
	SETCOLOR 0x5090FF
ELSE
	SETCOLOR C_GREEN
ENDIF
RESULT = 0
CALL COM_ABLE604
SIF RESULT
	PRINTC 산책[604]
RESETCOLOR
SIF !GETBIT (FLAG:USERCOM필터, 0)
	PRINTC 불결 표시[801]
SIF !CFLAG:동침중 && GET_TARGETNUM() > 1 && !GETBIT (FLAG:USERCOM필터, 1)
	PRINTC 상대를 바꾼다[802]
SIF !GETBIT (FLAG:USERCOM필터, 2)
	PRINTC 능력 표시[803]
SIF !GETBIT (FLAG:USERCOM필터, 3)
	PRINTC 능력 표시(마스터)[804]
SIF !GETBIT(FLAG:USERCOM필터, 11)
	PRINTC 커맨드필터[809]
SIF FLAG:1005
	PRINTC CONFIG[810]
SIF TALENT:MASTER:위치짐작 && AT_HOME(MASTER) && !CFLAG:우후후 && !CFLAG:동침중
	PRINTC 위치짐작[811]
SIF TALENT:MASTER:오방짐작 && AT_HOME(MASTER) && !CFLAG:우후후 && !CFLAG:동침중
	PRINTC 더러운 방 짐작[812]
SIF GETBIT(TALENT:MASTER:정욕감지, 1) && !CFLAG:우후후
	PRINTC 열정 탐지[813]
SIF FLAG:70 && CFLAG:TARGET:344 == 0 && !CFLAG:TARGET:수면 && AT_HOME(MASTER) == 1 && TARGET > 0 && !CFLAG:우후후
	PRINTC 보쌈[815]
SIF TALENT:MASTER:집합 && AT_HOME(MASTER) == 1 && !CFLAG:우후후
	PRINTC 집합[817]
IF CAN_DATE(TARGET)
	SIF TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) < 10
		SETCOLOR 100, 250, 140
	PRINTFORMC %GET_MAPNAME(MAIN_MAP)%로 이끈다({TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중)}분)[990]
	RESETCOLOR
ENDIF

SIF TALENT:MASTER:179&&!GETBIT(TALENT:MASTER:179,0)&&!GETBIT(TALENT:MASTER:179,1)
	PRINTC 채양보음／채음보양[990]
SIF TALENT:MASTER:179&&GETBIT(TALENT:MASTER:179,0)&&GETBIT(TALENT:MASTER:179,2)
	PRINTC 채양보음 사용중[990]
SIF TALENT:MASTER:179&&GETBIT(TALENT:MASTER:179,1)&&GETBIT(TALENT:MASTER:179,3)
	PRINTC 채음보양 사용중[990]

SIF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치 && !FLAG:창고잠금
	PRINTC 잠근다[991]
SIF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치 && FLAG:창고잠금
	PRINTC 잠금을 푼다[991]
;;워프 이동했을 때를 위해서(때문에)
;IF FLAG:창고잠금 && CFLAG:MASTER:현재위치 != 53
;	SETCOLOR 0 , 255, 0
;	PRINTC ※원격건해정[991]
;	RESETCOLOR
;ENDIF
SIF CHK_DATENOW(CFLAG:MASTER:데이트중) && (!FLAG:70 || CFLAG:TARGET:344 == 1) && CFLAG:행동 != 5 && CFLAG:6 && !CHK_DATENOW(CFLAG:TARGET:데이트중) && VISIT(TARGET) && CFLAG:MASTER:현재위치 != OMANEKIBEYA() && !FLAG:데이트상대 && (TALENT:TARGET:사모 || TALENT:TARGET:연모 || TALENT:TARGET:애욕) && TFLAG:망상중 != 1
	PRINTC 데이트 신청한다[992]
SIF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치
	PRINTC 달력[993]
SIF FLAG:팬티수송
	PRINTC 소지 팬티 확인[994]
IF AT_HOME(MASTER) && GETBIT(FLAG:순간이동, 1)
	SETCOLOR 0x5090FF
ELSEIF !AT_HOME(MASTER) && GETBIT(FLAG:순간이동, 0)
	SETCOLOR 0x5090FF
ENDIF
SIF !GETBIT(FLAG:USERCOM필터, 13)
	PRINTC 자동 시간정지 이동[995]
RESETCOLOR
PRINTL
IF FLAG:70 == 1 && CFLAG:TARGET:344 == 0
	SIF EQUIP:0 && TARGET && CFLAG:우후후
		PRINTC 옷을 벗긴다[820]
	IF EQUIP:0 && TARGET && EQUIP:TARGET:하반신속옷2 != 0
		IF !PANTS_ALREADY_COLLECTED()
			FONTBOLD
			SETCOLOR COLOR("PINK")
		ENDIF
			PRINTC 팬티를 훔친다[821]
			RESETCOLOR
			FONTREGULAR
	ENDIF
	IF (TEQUIP:5 == 0 || EQUIP:TARGET:상반신속옷1) && CFLAG:우후후
		SIF EQUIP:0 && TARGET && EQUIP:TARGET:상반신속옷1 != 0 && (EQUIP:TARGET:기모노!= 0 || EQUIP:TARGET:상반신윗도리2 != 0 || EQUIP:TARGET:보디슈트== 3)
			PRINTC 상하의를 벗는다[822]
	ENDIF
	IF TEQUIP:5 == 0 && CFLAG:우후후
		SIF EQUIP:0 && TARGET && (EQUIP:TARGET:상반신속옷1 || EQUIP:TARGET:상반신속옷2 || EQUIP:TARGET:하반신속옷1 || EQUIP:TARGET:하반신속옷2 || EQUIP:TARGET:레오타드 || EQUIP:TARGET:보디슈트) && (EQUIP:TARGET:상반신윗도리1 || EQUIP:TARGET:상반신윗도리2 || EQUIP:TARGET:원피스 || EQUIP:TARGET:기모노 || EQUIP:TARGET:외의)
			PRINTC 속옷 바람으로 한다[823]
	ENDIF
	IF MEASUREMENTCHECK(CFLAG:TARGET:현재위치)
		IF CFLAG:TARGET:신체측정 != 2
			PRINTC 신체측정한다[824]
		ELSE
			PRINTC 신체측정을 끝낸다[824]
		ENDIF
	ENDIF
	SIF TFLAG:팬티수탈
		PRINTC 팬티 수탈[825]
	IF TARGET
		IF TEQUIP:애태우기모드
			PRINTC 애태우기 종료[826]
		ELSE
			PRINTC 애태운다[826]
		ENDIF
	ENDIF
	IF CFLAG:우후후
		PRINTC 장난을 그만둔다[999]
	ELSE
		PRINTC 시간정지 해제[999]
	ENDIF
ELSEIF FLAG:70 == 1 && CFLAG:TARGET:344 == 1
		PRINTC 시간정지 해제[999]
	IF CFLAG:우후후
		SIF EQUIP:0 && TARGET
			PRINTC 옷을 벗긴다[820]

		IF CFLAG:우후후 == 2
			IF TFLAG:껴안기모드
				PRINTC 뿌리친다[850]
			ELSE
				PRINTC 빠져나간다[850]
			ENDIF
			IF TEQUIP:애태우기모드
				PRINTC 애태우기 종료[826]
			ELSE
				PRINTC 애태운다[826]
			ENDIF
		ELSE
			PRINTC 밀회 종료[999]
		ENDIF
	ENDIF
ELSEIF CFLAG:우후후 && !CFLAG:장난
	SIF EQUIP:0 && TARGET && !(TFLAG:102 == 3 && TFLAG:껴안기모드)
		PRINTC 옷을 벗긴다[820]
		IF TARGET
			IF TEQUIP:애태우기모드
				PRINTC 애태우기 종료[826]
			ELSE
				PRINTC 애태운다[826]
			ENDIF
		ENDIF
	IF FLAG:70 == 1 && CFLAG:TARGET:344 == 0
		PRINTC 시간정지해제[999]
	ELSEIF CFLAG:우후후 == 2
		IF TFLAG:껴안기모드
			PRINTC 뿌리친다[850]
		ELSE
			PRINTC 빠져나간다[850]
		ENDIF
	ELSE
		PRINTC 밀회 종료[999]
	ENDIF
ENDIF

IF CFLAG:장난
	SIF CFLAG:장난 < 2 && (EXP:TARGET:수면간경험 > 100 || TCVAR:수면제강도 || TCVAR:수면심도 > 2000)
		PRINTC 옷을 헤친다[830]
	IF CFLAG:장난 < 2
		PRINTC 장난 종료[999]
		IF EQUIP:TARGET:하반신속옷2
			IF !PANTS_ALREADY_COLLECTED()
				FONTBOLD
				SETCOLOR COLOR("PINK")
			ENDIF
			PRINTC 팬티를 훔친다[821]
			RESETCOLOR
			FONTREGULAR
		ENDIF
	ENDIF
	SIF CFLAG:장난 > 1
	PRINTC 수면간 종료[999]
ENDIF
IF CFLAG:동침중
	PRINTC 동침 종료[999]
ENDIF
IF CHK_DATENOW(CFLAG:MASTER:데이트중) && (!FLAG:70 || CFLAG:TARGET:344 == 1) && !CFLAG:MASTER:우후후 && CFLAG:MASTER:현재위치 != OMANEKIBEYA() && TFLAG:망상중 != 1
	SIF TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) < 10
		SETCOLOR 100, 250, 140
	PRINTFORMC 귀로에 접어든다({TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중)}분)[999]
	RESETCOLOR
ENDIF
$SKIP
IF PREVCOM >= 0
	IF TFLAG:151
		STR:0 = %STR:(1500 + TFLAG:151)%
	ELSE
		STR:0 = %TRAINNAME:PREVCOM%
	ENDIF
ENDIF
SIF PREVCOM == 304 && CFLAG:TARGET:350 == 49 && TALENT:TARGET:술내성 != -2
	STR:0 = 잔를 나눈다
SIF PREVCOM == 304 && CFLAG:TARGET:350 == 49 && (TALENT:TARGET:술내성 == -2 || CFLAG:TARGET:임신자각상태 == 1)
	STR:0 = 요리를 권한다
SIF PREVCOM == 304 && CFLAG:TARGET:350 == 51
	STR:0 = 간호한다
IF PREVCOM >= 0 && PREVCOM < 300
	PRINTL
	PRINT ＜전회 조교 커맨드:
	PRINTS STR:0
	SIF TFLAG:150
		PRINT (조수)
	PRINTL ＞
ELSE
	PRINTL
	PRINT ＜전회 커맨드:
	PRINTS STR:0
	PRINTL ＞
ENDIF


code:
@GANKAKE_0(ARG, ARG:1)

IF CFLAG:ARG:신사거주 && ARG > 0
;	// 호감도 상승 //
	CFLAG:ARG:호감도 += 10 + RAND:20
	CFLAG:ARG:신뢰도 += 10 + RAND:20
ENDIF
FOR LOCAL, 1, CHARANUM
;	// 이사로 자택이 바뀌므로 자택 멤버도 발원함 플래그는 세우기로 한다 //
;	SIF CFLAG:LOCAL:신사거주 > 0
;		CONTINUE
	IF ARG == LOCAL
		CFLAG:LOCAL:다음날내방 = 1
	ELSE
		CFLAG:LOCAL:다음날내방 = 0
	ENDIF
NEXT

FLAG:발원내용 = ARG

@GANKAKE_1(ARG)
#DIM 버프가능개소수
#DIM 버프하는곳후보, 12
#DIM 실제버프하는곳

;버프하는곳후보:0~12에 소질번호를 할당해, 그때마다 버프가능개소수를 늘린다

VARSET 버프하는곳후보
버프가능개소수 = 0
실제버프하는곳 = 0

IF TALENT:ARG:사모 || TALENT:ARG:애욕
	IF TALENT:ARG:성적흥미 < 1
		버프하는곳후보:버프가능개소수 = 23
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:자기애 < 1
		버프하는곳후보:버프가능개소수 = 31
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:젖기쉬움 < 1
		버프하는곳후보:버프가능개소수 = 41
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:쾌감응답 < 1
		버프하는곳후보:버프가능개소수 = 70
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:도착적 < 1
		버프하는곳후보:버프가능개소수 = 80
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:새드 < 1
		버프하는곳후보:버프가능개소수 = 82
		버프가능개소수 ++
	ENDIF
	IF TALENT:ARG:마조 < 1
		버프하는곳후보:버프가능개소수 = 83
		버프가능개소수 ++
	ENDIF
ENDIF

FOR LOCAL, 101,105
	IF TALENT:ARG:LOCAL < 1
		버프하는곳후보:버프가능개소수 = LOCAL
		버프가능개소수 ++
	ENDIF
NEXT
IF TALENT:ARG:106 < 1
	버프하는곳후보:버프가능개소수 = 106
	버프가능개소수 ++
ENDIF

IF !버프가능개소수
	PRINTFORML 팬티 님에게도 %CALLNAME:ARG%는 더 이상 엣찌로 할 수  없는 것 같다……
ELSE
	실제버프하는곳 = 버프하는곳후보:(RAND:버프가능개소수)
	TALENT:ARG:실제버프하는곳 ++
	TCVAR:TARGET:발원함보정 = 실제버프하는곳
	TFLAG:193 = 실제버프하는곳
ENDIF

@SHOW_CHALALIST
FOR LOCAL, 1, CHARANUM
	SIF !CFLAG:LOCAL:출금 && !TALENT:LOCAL:스침
		PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL, 15, LEFT%
NEXT

@IKENIE(ARG, ARG:1)
;ARG 대상
;ARG:1 소원(1=반발 해제 2=감도 일시 상승 3=요술망치 4=시간정지들킴 해제 5=천벌)
#DIM 총계
#DIM 종류수
#DIM 겹쳐
#DIM 바친매수
#DIM 바치는매수
#DIM 필요매수
VARSET LOCAL
CALL CHECK_COLLECTION(ARG)
총계 = RESULT:0
종류수 = RESULT:1
겹쳐 = 총계 - 종류수
바친매수 = 0
바치는매수 = 0
SELECTCASE ARG:1
	CASE 1,8
		필요매수 = 10
	CASE 2
		필요매수 = 3
	CASE 3
		필요매수 = CFLAG:MASTER:마력회수 / 2 + 1
	CASE 4,6
		필요매수 = 1
	CASE 5,7
		필요매수 = 3
	CASE 9,10,11,12,13
		필요매수 = 5
ENDSELECT

PRINTL 머릿속에 목소리가 울린다…
PRINTW ((그 바래 실현될 수 있었던 , 지를 바쳐라…))
PRINTFORMW ((%CALLNAME:ARG%의 팬티를{필요매수}매 바쳐라……))
PRINTFORM 현재%CALLNAME:ARG%의 팬티를
IF !종류수
	PRINTL 한 장도 가지고 있지 않다
	RETURN -1
ENDIF
PRINTFORML 전부{총계}매{종류수}종, 겹치고 있는 것은{겹쳐}매 가지고 있다
IF 총계 < 필요매수
	PRINTFORML 소망하고 있는 매수에{필요매수 - 총계}매 부족하다
	RETURN -1
ENDIF
$LOOP
PRINTL [0] 바치지 않는다
IF 총계 >= 필요매수
	IF 겹쳐 >= 필요매수
		PRINTL [1] 바친다
	ELSE
		PRINTL [1] 겹치지 않은 것도 사용하게 되지만 바친다
	ENDIF
ENDIF
INPUT
IF RESULT == 1 && 총계 >= 필요매수
	FOR LOCAL, 0, MAXPANTS
		IF CFLAG:ARG:(팬티관리 + LOCAL) > 1
			바치는매수 = MIN(CFLAG:ARG:(팬티관리 + LOCAL) - 1, (필요매수 - 바친매수))
			CFLAG:ARG:(팬티관리 + LOCAL) -= 바치는매수
			바친매수 += 바치는매수
			SIF 바친매수 >= 필요매수
				BREAK
		ENDIF
	NEXT
	IF 바친매수 < 필요매수
		FOR LOCAL, 0, MAXPANTS
			바치는매수 = MIN(CFLAG:ARG:(팬티관리 + LOCAL), (필요매수 - 바친매수))
			CFLAG:ARG:(팬티관리 + LOCAL) -= 바치는매수
			바친매수 += 바치는매수
			FLAG:700 --
			SIF 바친매수 >= 필요매수
				BREAK
		NEXT
	ENDIF
	SELECTCASE ARG:1
		CASE 1
			MARK:ARG:반발각인 --
			TFLAG:193 = 30
		CASE 2
			CALL GANKAKE_1(ARG)
			FLAG:발원내용 = 999
		CASE 3
			CFLAG:MASTER:마력회수 = 1
			SIF (CFLAG:MASTER:요술망치 == 4 || CFLAG:MASTER:요술망치 == 5) && TALENT:MASTER:형상 == 2
				TALENT:MASTER:형상 = CFLAG:MASTER:382
		CASE 4
			CFLAG:ARG:시간정지들킴 = 0
		CASE 5
			FLAG:발원내용 = 204
			TFLAG:193 = 200
			FLAG:개운대문구입회수 = 1
			BASE:53:체력 = 1
			BASE:53:기력 = 0
		CASE 6
			FLAG:발원내용 = 206
			IF FLAG:자식기원 == TARGET
				CFLAG:자식보정 ++
			ELSE
				FOR LOCAL, 1, CHARANUM
					CFLAG:LOCAL:자식보정 = 0
				NEXT
				CFLAG:자식보정 ++
			ENDIF
			SIF TALENT:연인
				CFLAG:자식보정 ++
			FLAG:자식기원 = TARGET
		CASE 7
			ABL:ARG:새드끼 -= 1
			JUEL:ARG:우월 = 0
			EXP:ARG:가학쾌락경험 = MAX(EXP:ARG:가학쾌락경험 - 200, 0)
		CASE 8
			CFLAG:ARG:약점잡음=0
		CASE 9,10,11,12
			TALENT:ARG:((ARG:1)-8+100)++
		CASE 13
			TALENT:ARG:M감도++

	ENDSELECT
	PRINTFORML %마스터가% 비장의 콜렉션을 늘어놓아 빌면(자), 이 세상 되지 않는 불길이{필요매수}매의 팬티를 불타고 앙금 하나 남기지 않고 다 구웠다!
	IF ARG:1 == 7
		CALL COLORMESSAGE(@"%CALLNAME:ARG%의 새드끼이 내린", C_YELLOW, 2,1)
		CALL COLORMESSAGE(@"%CALLNAME:ARG%의 가학쾌락경험이 내린", C_YELLOW, 2,1)
		CALL COLORMESSAGE(@"%CALLNAME:ARG%의 우월의 주가 0이 된", C_YELLOW, 2,1)
	ENDIF
	IF ARG:1 == 6
		PRINTFORML ((그 딸(아가씨)에게로의 정과 기원을 빠뜨리지 말것))
		PRINTFORMW ((자 그렇다면 머지않아 소원은 성취하자……))
	ELSE
		PRINTW ((이놈의 소원은 성취 경배……))
	ENDIF
	PRINTFORML %마스터는% 팬티 모양에의 경신의 생각을 새로이 했다
	RETURN 0
ELSE
	RETURN -1
ENDIF

@PINK_WIND
SETCOLOR 255,100,255
FONTBOLD
PRINTFORMW 환상향에 분홍색의 바람이 불었다!
FOR LOCAL, 1, CHARANUM
	IF !RAND:15
		PRINTFORML 분홍색의 바람을 받은 %CALLNAME:LOCAL%는 이상한 기분이 되었다…
		CFLAG:LOCAL:욕구불만도 += LIMIT((10 + RAND:20 + RAND:20 + RAND:20) * ABL:LOCAL:욕망, 200,1000)
	ENDIF
NEXT
RESETCOLOR
FONTREGULAR
PRINTW ((이놈의 소원은 성취 경배……))
PRINTFORML %마스터는% 팬티 모양에의 경신의 생각을 새로이 했다


code:
@외출처로부터귀가
#DIM DIST_TO_HOME
IF !FLAG:데이트상대 && !FLAG:70 && BASE:MASTER:TSP >= TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3
	PRINTL TSP를 소비하여 시간 경과 없이 귀가할 수 있습니다.
	PRINTL TSP를 사용하겠습니까?
	PRINTL [0] 아니오
	PRINTFORML [1] 네 (TSP{TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3}소비)
	INPUT
	IF RESULT == 1
		IF BASE:MASTER:TSP < TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3
			PRINTW TSP가 부족했다
		ELSE
			BASE:MASTER:TSP -= TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3
			GOTO WARP
		ENDIF
	ENDIF
ENDIF
IF !FLAG:70
	CALL 귀가의시간경과
ELSEIF BASE:MASTER:TSP < TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3
	PRINTW TSP가 부족하기 때문에 시간을 멈춘 상태로는 돌아갈 수 없다
	RETURN -1
ELSE
	BASE:MASTER:TSP -= TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) * 3
ENDIF

$WARP
PRINTFORMW \@ CFLAG:MASTER:데이트중 != CFLAG:TARGET:데이트중 || TARGET == MASTER ?  외출 # 데이트 \@에서 돌아왔습니다
CALL 모리야복권데이트상대의리셋()
FOR LOCAL, 1, CHARANUM
	IF CHK_DATENOW(CFLAG:LOCAL:데이트중)
		CALL DATE_EVENT(LOCAL)
		CALL SET_DATE(99, LOCAL)
	ENDIF
NEXT
SIF CHK_DATENOW(CFLAG:MASTER:데이트중)
	CALL SET_DATE(99, MASTER)

CFLAG:MASTER:현재위치 = GET_ENTRANCE(MAIN_MAP)

@귀가의시간경과
;남은 시간 산출
LOCAL = (GET_DATE_PLACE(CFLAG:MASTER:현재위치)) * 10
IF LOCAL && (TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) - LOCAL) > 0
	;도중의 경우
	TIME = TIME + (TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중) - LOCAL)
ELSE
	;데이트처 도착 끝난 경우
	TIME = TIME + TIME_REQUIRED(MAIN_MAP, CFLAG:MASTER:데이트중)
ENDIF
CALL 모리야복권데이트상대의리셋()

@외출처로부터권할수있을까(ARG)
LOCAL = FLAG:데이트상대
IF LOCAL != ARG && LOCAL != MASTER
	PRINTFORM %CALLNAME:LOCAL%가 %CALLNAME:MASTER%
	;심약계
	IF CFLAG:LOCAL:성격경향 == 1
		PRINTFORML 의 옷의 옷자락을 잡아 거절하고 있다
	;강경세계
	ELSEIF CFLAG:LOCAL:성격경향 == 2
		PRINTFORML 를 번쩍빛나는 눈으로 응시해 온다
	;솔직함계
	ELSEIF CFLAG:LOCAL:성격경향 == 3
		PRINTFORML 를 응시하면서 나만을 보았으면 좋겠다고 알려온다
	;진면목계
	ELSEIF CFLAG:LOCAL:성격경향 == 4
		PRINTFORML 에게 그것은 안 된다며 참견해 온다
	;그 외
	ELSEIF CFLAG:LOCAL:성격경향 == 5
		PRINTFORML 서투른 숨을 향하여, 거절했다
	ENDIF
	PRINTFORMW %마스터는% %CALLNAME:ARG%를 권하는 것을 단념했다
	RETURN 0
ENDIF
IF ARG == 93 && !ITEM:간이풀장
	PRINTW 그녀는 데리고 갈 수 없다…
	RETURN 0
ELSEIF BASE:ARG:기력 < 500
	PRINTFORMW %CALLNAME:ARG%는 피곤한 것 같다
	RETURN 0
ELSEIF !CHARA_HOLIDAY(ARG) && BASE:ARG:일량 && TCVAR:ARG:일개시 < TIME + 180
	PRINTFORMW %CALLNAME:ARG%는 지금부터 일이 있다
	RETURN 0
ELSE
	CFLAG:ARG:거점내방 = 1
	RETURN 1
ENDIF

;FileName_DATE_CMN.ERB ------------------------------- Rev1. 00
;데이트 신청할 수 있을까
;-----------------------------------------------------------
@CAN_DATE(ARG)
#FUNCTION

SIF !CHK_DATENOW(CFLAG:MASTER:데이트중)
	RETURNF 0
SIF !SHIRAHU(ARG)
	RETURNF 0
SIF CFLAG:MASTER:현재위치 == OMANEKIBEYA()
	RETURNF 0
SIF FLAG:데이트상대
	RETURNF 0
SIF !VISIT(ARG)
	RETURNF 0
SIF !CFLAG:ARG:태도
	RETURNF 0
SIF CFLAG:ARG:빡침
	RETURNF 0
SIF CFLAG:ARG:행동 == 5
	RETURNF 0
SIF CHK_DATENOW(CFLAG:ARG:데이트중)
	RETURNF 0

RETURNF 1

path: ERB/커맨드관련/외출처로부터귀가_t.ERB


code:
@SYUGO
#DIM 集合, 캐릭터수상한, 3 ;集合:X:Y
                               ;Y=0：キャラ登録番号
                               ;  1：設定、移動可否(1p0:이동不可,1p3:이동対象)
                               ;  2：移動コスト
#DIM 人数                      ;同一マップにいる人数、移動できないキャラも表示され、人数に加算されている
#DIM 入力値                    ;RESULT取得用
CALL SYUGOS_GETDATA(人数, 集合)
IF 人数 == 0
	PRINTW 집합 시킬 사람이 없다.
	RETURN
ENDIF
IF CFLAG:MASTER:현재위치 == 54
	PRINTFORMW 여기에서는 무리다.
	RETURN
ENDIF

;全員分のコスト計算を先に行う（たぶん全員集合の頻度が多いので）
CALL SYUGOS_COST(人数, 集合)

PRINTL 누구를 이동 시키겠습니까？
DO
	CALL SYUGOS_DISPDATA(人数, 集合)
	PRINTBUTTON "[444:전체 선택]", 444
	PRINTBUTTON "[555:초기화]", 555
	PRINTBUTTON "[666:실행]", 666
	PRINTFORML
	PRINTBUTTON "[999:취소]", 999
	INPUT
	入力値 = RESULT
	SELECTCASE 入力値
	;個人選択
	CASE 0 TO 人数 - 1
		SIF !GETBIT(集合:入力値:1, 0)
			INVERTBIT 集合:入力値:1, 3
	;全体設定
	CASE 444
		FOR LOCAL, 0, 人数
			SIF GETBIT(集合:LOCAL:1, 0)
				CONTINUE
			SETBIT 集合:LOCAL:1, 3
		NEXT
	;全体解除
	CASE 555
		FOR LOCAL, 0, 人数
			CLEARBIT 集合:LOCAL:1, 3
		NEXT
	;実行処理
	CASE 666
		IF TFLAG:운반
			PRINTFORMW %CALLNAME:MASTER%は%CALLNAME:(TFLAG:운반)%를 내렸다.
			TFLAG:운반 = 0
		ENDIF
		FOR LOCAL, 0, 人数
			SIF !GETBIT(集合:LOCAL:1, 3)
				CONTINUE

			;往路消費
			SIF TALENT:MASTER:체형 < -4
				BASE:MASTER:TSP -= (15 * 集合:LOCAL:2)
			BASE:MASTER:TSP -= (5 * 集合:LOCAL:2)
			SIF BASE:MASTER:TSP <= 0
				BREAK
			;復路消費
			SIF TALENT:MASTER:체형 < -4
				BASE:MASTER:TSP -= (15 * 集合:LOCAL:2)
			BASE:MASTER:TSP -= (5 * 集合:LOCAL:2)
			BASE:MASTER:TSP -= (3 * 集合:LOCAL:2)
			CFLAG:(集合:LOCAL:0):현재위치 = CFLAG:MASTER:현재위치
			PRINTFORMW %CALLNAME:(集合:LOCAL:0)%を%NAME_FROM_PLACE(CFLAG:MASTER:현재위치)%를 옮겼다.
			SIF BASE:MASTER:TSP <= 0
				BREAK
		NEXT
		RETURN
	CASE 999
		RETURN
	ENDSELECT
	CLEARLINE 人数 + 3
LOOP 1

@SYUGOS_GETDATA(人数, 集合)
#DIM REF 集合, ,
#DIM REF 人数
#DIM C_ID
VARSET 集合
VARSET 人数
FOR LOCAL, 1, CHARANUM
	SIF AT_HOME(LOCAL) == 0
		CONTINUE
	SIF TALENT:MASTER:위치짐작 == 0 && CFLAG:MASTER:현재위치 != CFLAG:LOCAL:현재위치 && CAN_MOVE(CFLAG:MASTER:현재위치, CFLAG:LOCAL:현재위치) == 0
		CONTINUE
	SIF CFLAG:LOCAL:현재위치 == MAXROOM && CFLAG:LOCAL:수면
		CONTINUE
	集合:人数:0 = LOCAL
	C_ID = 集合:人数:0
	;選択否
	IF CFLAG:C_ID:현재위치 == CFLAG:MASTER:현재위치
		SETBIT 集合:人数:1, 0
	ELSEIF CFLAG:C_ID:수면
		SETBIT 集合:人数:1, 0
	ELSEIF !MAP_CAN_MOVE(CFLAG:C_ID:현재위치)
		SETBIT 集合:人数:1, 0
	ELSEIF BATHCHECK(CFLAG:C_ID:현재위치) || IN_TOILET(CFLAG:C_ID:현재위치)
		SETBIT 集合:人数:1, 0
	ELSEIF CFLAG:C_ID:현재위치 == MAXROOM || CFLAG:C_ID:현재위치 == OMANEKIBEYA()
		SETBIT 集合:人数:1, 0
	ELSEIF CFLAG:C_ID:행동 == 5
		SETBIT 集合:人数:1, 0
	ENDIF
	人数 ++
NEXT

@SYUGOS_DISPDATA(人数,集合)
#DIM REF 集合,,
#DIM 人数
#DIM C_ID
FOR LOCAL, 0, 人数
	C_ID = 集合:LOCAL:0
	LOCALS = {LOCAL}
	LOCALS = [%LOCALS,3,RIGHT%] - %CALLNAME:C_ID,15,LEFT%
	IF CFLAG:C_ID:현재위치 == CFLAG:MASTER:초기위치
		LOCALS = %LOCALS%%CALLNAME:MASTER% 개인 실
	ELSE
		LOCALS = %LOCALS%%NAME_FROM_PLACE(CFLAG:C_ID:현재위치)%
	ENDIF
	IF !MAP_CAN_MOVE(CFLAG:C_ID:현재위치)
		LOCALS = %LOCALS%%" "*(48-STRLENS(LOCALS))% 진입 불가
	ELSEIF CFLAG:C_ID:수면
		LOCALS = %LOCALS%%" "*(48-STRLENS(LOCALS))% 취침 중
	ELSEIF 集合:LOCAL:2 > 0
		LOCALS = %LOCALS%%" "*(48-STRLENS(LOCALS))% 이동 거리 {集合:LOCAL:2}
	ENDIF
	IF GETBIT(集合:LOCAL:1, 0)
		SETCOLOR C_GRAY
		PRINTPLAINFORM %LOCALS%
	ELSEIF GETBIT(集合:LOCAL:1, 3)
		SETCOLOR C_AQUA
		PRINTFORM %LOCALS%
	ELSE
		PRINTFORM %LOCALS%
	ENDIF
	PRINTL
	RESETCOLOR
NEXT

;全キャラを対象に移動コストの算出を行う
;呼び出し元で全キャラループやってるんならコスト算出側で更に全キャラループやるよりも
;算出済みの地点を記憶しておいた方が早いのでは？
@SYUGOS_COST(人数, 集合)
#DIM 人数
#DIM REF 集合,,
#DIM LIST_ID                 ;参照しているLISTのID
#DIM DYNAMIC DONE_CNT        ;算出済み地点の数
#DIM DYNAMIC DONE_PLACE, 100 ;算出済み地点のPLACE_ID
#DIM DYNAMIC DONE_COST,  100 ;算出済み地点のコスト
#DIM TEMP_PLACE              ;参照用の一時変数
FOR LIST_ID, 0, 人数
	;NG処理は先にやっておきましょう
	IF GETBIT(集合:LIST_ID:1, 0)
		集合:LIST_ID:2 = -1
		CONTINUE
	ENDIF

	TEMP_PLACE = FINDELEMENT(DONE_PLACE, CFLAG:(集合:LIST_ID:0):현재위치, 0, DONE_CNT)
	;算出済み
	IF TEMP_PLACE >= 0
		集合:LIST_ID:2 = DONE_COST:TEMP_PLACE
	;算出まだ
	ELSE
		CALL CALC_SYUGOS_COST(集合, LIST_ID)
		DONE_PLACE:DONE_CNT   = CFLAG:(集合:LIST_ID:0):현재위치
		DONE_COST:DONE_CNT    = 集合:LIST_ID:2
		DONE_CNT ++
	ENDIF
NEXT

;集合コストの算出
;F関数化したかったがSKIPMOVE使ってるから断念、残念
@CALC_SYUGOS_COST(集合, 対象)
#LOCALSIZE 1
#LOCALSSIZE 1
#DIM REF 集合,,
#DIM 対象
#DIM 移動コスト
#DIM 暫定目的地
#DIM 最終目的地
#DIM TEMP_現在位置
#DIM C_ID
C_ID = 集合:対象:0
TEMP_現在位置 = CFLAG:MASTER:현재위치
最終目的地 = CFLAG:C_ID:현재위치
暫定目的地 = 最終目的地
[IF_DEBUG]
PRINTFORML %CALLNAME:C_ID% 이동 비용을 계산
[ENDIF]
IF CAN_MOVE(TEMP_現在位置, 暫定目的地) & 1
	移動コスト = 1
ELSE
	FOR 移動コスト, 1, 20
		WHILE !(CAN_MOVE(TEMP_現在位置, 暫定目的地) & 1)
			TRYCALLFORM SKIP_MOVE_{MAIN_MAP}(暫定目的地, TEMP_現在位置)
			SIF !暫定目的地
				THROW 暫定目的地が異常です
			[IF_DEBUG]
			PRINTFORML {TEMP_現在位置}から{暫定目的地}に直接行けないから{RESULT}を目指すよ
			[ENDIF]
			暫定目的地 = RESULT
		WEND
		SIF CAN_MOVE(暫定目的地, 最終目的地) & 1
			BREAK
		TEMP_現在位置 = 暫定目的地
		暫定目的地 = 最終目的地
	NEXT
ENDIF
集合:対象:2 = 移動コスト
[IF_DEBUG]
PRINTFORML %CALLNAME:C_ID%の移動コストは{移動コスト}
[ENDIF]

@AssembleForMeal
#DIM 集合, 캐릭터수상한, 3 ;集合:X:Y
#DIM 人数                      ;同一マップにいる人数、移動できないキャラも表示され、人数に加算されている
#DIM 入力値                    ;RESULT取得用
#DIM C_ID
SIF CFLAG:MASTER:현재위치 == OMANEKIBEYA()
	RETURN
SIF !AT_HOME(MASTER)
	RETURN

PRINTFORML 다른 사람들도 식사에 초대할까?
PRINTFORML
PRINTL [1] - 초대한다
PRINTL [0] - 초대하지 않는다
INPUT
SIF !RESULT
	RETURN

CALL SYUGOS_GETDATA(人数, 集合)
CALL SYUGOS_COST(人数, 集合)
FOR LOCAL, 0, 人数
	C_ID = 集合:LOCAL:0
	SIF GETBIT(集合:LOCAL:1, 0)
		CONTINUE
	;移動回数が多いと除外
	SIF 集合:LOCAL:2 > 4
		CONTINUE
	SIF CFLAG:C_ID:빡침
		CONTINUE
	IF DISHTYPE == 3
		SIF !TIME_PROGRESS(TCVAR:C_ID:디저트공복시각)
			CONTINUE
	ELSE
		SIF !TIME_PROGRESS(TCVAR:C_ID:공복시각)
			CONTINUE
	ENDIF
	CFLAG:C_ID:현재위치 = CFLAG:MASTER:현재위치
	PRINTFORML 초대를 받은 %CALLNAME:C_ID%가 식사에 참여했다.
NEXT
CALL TARGETSET_CHACK
PRINTFORMW


code:
;-----------------------------------------------------------
;LOCAL					FOR~NEXT용
;LOCAL:1~LOCAL:7		예정일(DAY:3)
;LOCAL:8				리셋용 데이터
;LOCAL:11~LOCAL:17		예정 일째(DAY)
;LOCAL:101~LOCAL:107	달을 또 있고로 있을까(0=또 있고가 아닌,1=뿌렸다로 있다)
;-----------------------------------------------------------
@캘린더
#DIM 예정종별 = 0
;[SKIPSTART]
VARSET LOCAL
FOR COUNT, 1, 9
	LOCAL:COUNT = DAY:3 + COUNT - 1
	LOCAL:(COUNT + 10) = DAY + COUNT - 1
	IF LOCAL:COUNT > 31
		LOCAL:COUNT -= 31
		LOCAL:(COUNT + 100) = 1
	ENDIF
NEXT
PRINTL ┌──┬──────────────────────────────────────
PRINT │ Day│이벤트/연회 정보/
IF 예정종별 == 0
	SETCOLOR 0 , 255, 0
	PRINT 일
	RESETCOLOR
	IF FLAG:1007
		PRINT /
		PRINTBUTTON "위험일", 901
	ENDIF
ELSE
	PRINTBUTTON "일", 900
	IF FLAG:1007
		PRINT /
		SETCOLOR 0 , 255, 0
		PRINT 위험일
		RESETCOLOR
	ENDIF
ENDIF
PRINTL
PRINTL ├──┼──────────────────────────────────────
PRINT │
SETCOLOR 0 , 255, 0
;{LOCAL:1(~9)}+100의 수치가 CHARANUM 이하라면 버그가 되므로
;미실장동안은 버튼 기능 자체 죽여 둔다
;기능 실장시에 적절한 값을 설정 다시 하는 것
;PRINTBUTTON (LOCAL:1 > 9 ?  TOSTR(LOCAL:1) # TOFULL(TOSTR(LOCAL:1))), (LOCAL:1 + 100)
PRINTFORM %(LOCAL:1 > 9 ?  TOSTR(LOCAL:1) # TOFULL(TOSTR(LOCAL:1)))%
PRINT 일
RESETCOLOR
PRINT │
;예정표내에서 1행째에 이벤트·연회 정보, 2행째에 이름 리스트 표시
;요일도 예정표내에서 표시한다
;예정표를 부르면(자) 시간이 진행되므로 세심의 주위를 기울인다
CALL 예정표(LOCAL:1, LOCAL:11, LOCAL:101, 1, 예정종별)
PRINTL
PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:2 > 9 ?  TOSTR(LOCAL:2) # TOFULL(TOSTR(LOCAL:2))), (LOCAL:2 + 100)
PRINTFORM %(LOCAL:2 > 9 ?  TOSTR(LOCAL:2) # TOFULL(TOSTR(LOCAL:2)))%
PRINT 일│
CALL 예정표(LOCAL:2, LOCAL:12, LOCAL:102, 2, 예정종별)
PRINTL
PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:3 > 9 ?  TOSTR(LOCAL:3) # TOFULL(TOSTR(LOCAL:3))), (LOCAL:3 + 100)
PRINTFORM %(LOCAL:3 > 9 ?  TOSTR(LOCAL:3) # TOFULL(TOSTR(LOCAL:3)))%
PRINT 일│
CALL 예정표(LOCAL:3, LOCAL:13, LOCAL:103, 3, 예정종별)
PRINTL

PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:4 > 9 ?  TOSTR(LOCAL:4) # TOFULL(TOSTR(LOCAL:4))), (LOCAL:4 + 100)
PRINTFORM %(LOCAL:4 > 9 ?  TOSTR(LOCAL:4) # TOFULL(TOSTR(LOCAL:4)))%
PRINT 일│
CALL 예정표(LOCAL:4, LOCAL:14, LOCAL:104, 4, 예정종별)
PRINTL

PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:5 > 9 ?  TOSTR(LOCAL:5) # TOFULL(TOSTR(LOCAL:5))), (LOCAL:5 + 100)
PRINTFORM %(LOCAL:5 > 9 ?  TOSTR(LOCAL:5) # TOFULL(TOSTR(LOCAL:5)))%
PRINT 일│
CALL 예정표(LOCAL:5, LOCAL:15, LOCAL:105, 5, 예정종별)
PRINTL

PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:6 > 9 ?  TOSTR(LOCAL:6) # TOFULL(TOSTR(LOCAL:6))), (LOCAL:6 + 100)
PRINTFORM %(LOCAL:6 > 9 ?  TOSTR(LOCAL:6) # TOFULL(TOSTR(LOCAL:6)))%
PRINT 일│
CALL 예정표(LOCAL:6, LOCAL:16, LOCAL:106, 6, 예정종별)
PRINTL

PRINTL ├──┼──────────────────────────────────────
PRINT │
;PRINTBUTTON (LOCAL:7 > 9 ?  TOSTR(LOCAL:7) # TOFULL(TOSTR(LOCAL:7))), (LOCAL:7 + 100)
PRINTFORM %(LOCAL:7 > 9 ?  TOSTR(LOCAL:7) # TOFULL(TOSTR(LOCAL:7)))%
PRINT 일│
CALL 예정표(LOCAL:7, LOCAL:17, LOCAL:107, 7, 예정종별)
PRINTL

PRINTL └──┴──────────────────────────────────────
PRINTL [0] - 돌아온다

;시간을 되돌리기 위해서(때문에) 리셋용의 예정표를 부른다
CALL 예정표(LOCAL:8, LOCAL:18, LOCAL:108, 8)
INPUT
IF RESULT >= 1 && RESULT <= CHARANUM
	PRINTFORML %CALLNAME:RESULT%
	IF CFLAG:RESULT:자택위치
		PRINT 자택위치：
		IF CFLAG:RESULT:신사거주
			PRINTFORML %NAME_FROM_PLACE(CFLAG:RESULT:신사거주)%
		ELSE
			PRINTFORML %NAME_FROM_PLACE((CFLAG:RESULT:자택위치) / 10 + 6000)%
		ENDIF
	ENDIF
	PRINT 일정보：
	SIF CSTR:RESULT:3 == ""
		PRINT ?
	PRINTFORML %CSVCSTR(RESULT, 3, )%
	PRINT 　직장　：
	SIF CSTR:RESULT:2 == ""
		PRINT ?
;	// GET_JOBPLACE("일", ARG)로 직장의 개서 처리가 있으므로 변경
;	재변경했습니다, 1 외출 먼저 대응하고 있지 않는, 2 직장이 다수 있는 캐릭터에게 대응할 수 없는, 싶은
	PRINTFORML %CSVCSTR(RESULT, 2)%
;	PRINTFORML %NAME_FROM_PLACE(CFLAG:RESULT:직장)%
	RESTART
;기능 실장시에 조건을 설정 다시 한다
;ELSEIF RESULT >= 101 && RESULT <= 131
;	PRINTFORMW {RESULT - 100}일의 예정　※미실장
;	RESTART
ELSEIF RESULT >= 900 && RESULT <= 901
;900:일예정(예정=0)
;901:위험일 예정(예정=1)
	예정종별 = RESULT - 900
	RESTART
ENDIF
;[SKIPEND]
RETURN

;-----------------------------------------------------------
;ARG	0=날,1=총날짜,2=달을 또 있고로 있는지,3=호출 회수,4=예정종별(0:일 1:위험일)
;		현재=원래의 DAY, 오늘=원래의 DAY:2, 이번달=원래의 DAY:3, 다음달=이번달부터 본 다음달
;-----------------------------------------------------------
@예정표(ARG, ARG:1, ARG:2, ARG:3, ARG:4=0)
#DIM 현재
#DIM 오늘
#DIM 이번달
#DIM 다음달

#DIM 전일량
#DIM 전일개시
#DIM 전일종료
#DIM 전직장
#DIM 전직종
#DIM 원급료
#DIM 원답례

#DIM 표시카운트

;TIME를 만지므로 역산
IF ARG:2 && DAY:2 != 이번달
	IF DAY:2 == 1
		이번달 = 4
	ELSE
		이번달 = DAY:2 - 1
	ENDIF
ELSE
	이번달 = DAY:2
ENDIF
IF DAY:2 == 4
	다음달 = 1
ELSE
	다음달 = DAY:2 + 1
ENDIF
;TIME를 만진다
SIF ARG:2 && DAY:2 == 이번달
	DAY:2 = 다음달
DAY = ARG:1
DAY:3 = ARG
;역산
현재 = DAY - ARG:3 + 1
IF 이번달 != DAY:2
	오늘 = DAY:3 - ARG:3 + 32
ELSE
	오늘 = DAY:3 - ARG:3 + 1
ENDIF
;마지막 호출로 리셋
IF ARG:3 == 8
	DAY = 현재
	DAY:2 = 이번달
	DAY:3 = 오늘
	RETURN
ENDIF

;확인용(다음달은 1일 라그가 있지만 문제 없다)
;PRINTFORM 오늘{오늘}　이번달{이번달}　다음달{다음달} 현재{현재} DAY:3-{DAY:3} DAY:2-{DAY:2} DAY - {DAY}
;여기에서는 일시적으로 시간이 진행된 상태로 산출하는(GET_DAY()나 연회 예정도 진행된 상태)

;예정표 1행째
IF FESTIVAL() != ""
	SETCOLOR C_RED
	PRINTFORM %FESTIVAL()%
	RESETCOLOR
ENDIF

;연회도 일자가 바뀐 상태로 체크
;연회 정보의 표시를 1행째로 변경
CALL 연회예정판정

;예정표 2행째 이후
;요일도 바뀌어 있는(첫날은 그대로)
PRINTL
PRINTFORM │(%GET_DAY()%)│
표시카운트 = 0
FOR LOCAL, 1, CHARANUM
	IF !ARG:4
		전일량 = MAXBASE:LOCAL:일량
		전일개시 = TCVAR:LOCAL:일개시
		전일종료 = TCVAR:LOCAL:일종료
		전직장 = CFLAG:LOCAL:직장
		전직종 = CFLAG:LOCAL:직종
		원급료 = TCVAR:LOCAL:급료
		원답례 = TCVAR:LOCAL:답례

	;더부살이캐릭터에서도 일하러 나가므로 우선 코멘트 아웃
	;	SIF CFLAG:LOCAL:신사거주
	;		CONTINUE
	;	;일이 랜덤의 경우는 있는 것 전제
		;…(으)로 하면(자) 오늘의 일에 영향이 나오므로 예정도 랜덤(다음에 일하는지 아닌지)에
	;	SIF DAY:3 != 오늘
	;		TCVAR:LOCAL:일의유무 = 2
		CALL 일내용설정(LOCAL, 1)
		IF !CHARA_HOLIDAY(LOCAL, 1) && CFLAG:LOCAL:신뢰도 >= 10
			표시카운트++
			IF 표시카운트 > 9
				PRINTL
				PRINT │　　│
				표시카운트 = 0
			ENDIF
	;		너무 편리할 생각이 들므로 자중
	;		SIF CFLAG:LOCAL:행동 == 5
	;			SETCOLOR 255, 100, 0
			PRINTBUTTON CALLNAME:LOCAL, LOCAL
			RESETCOLOR
			PRINT
		ENDIF

		MAXBASE:LOCAL:일량 = 전일량
		TCVAR:LOCAL:일개시 = 전일개시
		TCVAR:LOCAL:일종료 = 전일종료
		CFLAG:LOCAL:직장 = 전직장
		CFLAG:LOCAL:직종 = 전직종
		TCVAR:LOCAL:급료 = 원급료
		TCVAR:LOCAL:답례 = 원답례
	ELSE
		IF ESTRUS_CATEGORY(LOCAL, ARG:3-1) == "위험일" && FLAG:1007
			표시카운트++
			IF 표시카운트 > 9
				PRINTL
				PRINT │　　│
				표시카운트 = 0
			ENDIF
	;		착상제라면 이름을 핑크로 한다
			SIF CFLAG:LOCAL:임신경과일수
				SETCOLOR C_PINK
			PRINTBUTTON CALLNAME:LOCAL, LOCAL
			SETCOLOR C_PINK
			CALL HEART
			RESETCOLOR
			PRINT
		ENDIF
	ENDIF
NEXT

@연회예정판정
IF FLAG:개시일 - DAY == 0 && FLAG:연회개최플래그
	SETCOLOR C_GREEN
	CALL 연회예정표시
	RESETCOLOR
ENDIF


code:
大文字小文字の違いを無視する:YES
_Rename.csvを利用する:NO
_Replace.csvを利用する:YES
マウスを使用する:YES
メニューを使用する:YES
デバッグコマンドを使用する:NO
多重起動を許可する:YES
オートセーブを行なう:YES
キーボードマクロを使用する:YES
ウィンドウの高さを可変にする:YES
描画インターフェース:TEXTRENDERER
ウィンドウ幅:1000
ウィンドウ高さ:800
ウィンドウ位置X:0
ウィンドウ位置Y:0
起動時のウィンドウ位置を指定する:NO
起動時にウィンドウを最大化する:NO
履歴ログの行数:5000
PRINTCを並べる数:5
PRINTCの文字数:25
フォント名:굴림체
フォントサイズ:16
一行の高さ:16
文字色:192,192,192
背景色:0,0,0
選択中文字色:255,255,0
履歴文字色:192,192,192
フレーム毎秒:5
最大スキップフレーム数:3
スクロール行数:1
無限ループ警告までのミリ秒数:5000
表示する最低警告レベル:1
ロード時にレポートを表示する:NO
ロード時に引数を解析する:NO
呼び出されなかった関数を無視する:YES
関数が見つからない警告の扱い:IGNORE
関数が呼び出されなかった警告の扱い:IGNORE
ボタンの途中で行を折りかえさない:YES
サブディレクトリを検索する:YES
読み込み順をファイル名順にソートする:YES
表示するセーブデータ数:20
eramaker互換性に関する警告を表示する:NO
システム関数の上書きを許可する:YES
システム関数が上書きされたとき警告を表示する:YES
関連づけるテキストエディタ:notepad
テキストエディタコマンドライン指定:USER_SETTING
エディタに渡す行指定引数:
同名の非イベント関数が複数定義されたとき警告する:YES
解釈不可能な行があっても実行する:NO
CALLNAMEが空文字列の時にNAMEを代入する:NO
セーブデータをsavフォルダ内に作成する:YES
擬似変数RANDの仕様をeramakerに合わせる:NO
関数・属性については大文字小文字を無視しない:NO
全角スペースをホワイトスペースに含める:NO
セーブデータをUTF-8で保存する:YES
ver1739以前の非ボタン折り返しを再現する:NO
内部で使用する東アジア言語:KOREAN
ONEINPUT系命令でマウスによる2文字以上の入力を許可する:NO
イベント関数のCALLを許可する:NO
SPキャラを使用する:NO
セーブデータをバイナリ形式で保存する:YES
ユーザー関数の全ての引数の省略を許可する:NO
ユーザー関数の引数に自動的にTOSTRを補完する:YES
FORM中の三連記号を展開しない:NO
TIMESの計算をeramakerにあわせる:NO
キャラクタ変数の引数を補完しない:NO
文字列変数の代入に文字列式を強制する:NO


code:
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.DOC   diff=astextplain
#*.docx  diff=astextplain
#*.DOCX  diff=astextplain
#*.dot   diff=astextplain
#*.DOT   diff=astextplain
#*.pdf   diff=astextplain
#*.PDF   diff=astextplain
#*.rtf   diff=astextplain
#*.RTF   diff=astextplain

repo_name: mozuku/rimworld

path: .gitattributes

license: unknown


code:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- Backup*.rdl

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
.mfractor/

# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb
/Source/Patches/PawnAnimationPatches/HarmonyPatch_Pawn_DrawTracker.cs
/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRotation.cs
/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRenderer.cs
/Source/Patches/OtherModPatches/HarmonyPatch_ShowHairWithHats.cs
/Source/Patches/OtherModPatches/HarmonyPatch_FacialAnimation.cs
/Source/Patches/OtherModPatches/HarmonyPatch_DontShaveYourHead.cs
/Source/Patches/OtherModPatches/HarmonyPatch_CSL.cs
/Source/Patches/OtherModPatches/HarmonyPatch_AlienRace.cs
/Source/Patches/ThingAnimationPatches/HarmonyPatch_ThingDrawAt.cs
/Defs/AnimationDefs/Animations_SexToys.xml

path: .gitignore