이벤트 카드의 진입 조건, 종료 결과, 재등장 대기 시간은 어떻게 쓸까?
이동 장터 이벤트 카드 다섯 장으로 진입 판정, 결과 반영, 재등장을 구분해 작성하고, 턴별 모의 진행으로 우선순위와 최초 보상, 장터 마감에 따른 무효화를 확인합니다.

먼저 세 가지를 정하자: 언제 시작하고, 어떻게 끝나며, 언제 다시 등장하는가
이동 장터의 작은 이벤트에는 ‘진입 조건을 모두 만족해야 후보가 된다’, ‘한 번 실행할 때 결과는 한 번만 반영한다’, ‘종료 후 턴 단위로 재등장 대기 시간을 계산한다’는 규칙을 적용할 수 있습니다. 여기에 우선순위와 무효화 처리를 통일하면 요청끼리 자리를 다투거나 의도치 않게 반복해서 나타나는 일을 막을 수 있습니다.
아래의 ‘등불을 따라가는 장터’는 가상의 교육용 사례입니다. 실제 사용자 사례나 검증된 효과, 제품 기능을 소개하는 것이 아닙니다. 아허는 장터와 함께 이동하며 등불을 고치고, 저울을 확인하고, 보관증을 돌려주고, 차를 마시기도 하며 장터 마감을 맞습니다. 턴 수와 보상은 모두 이 사례를 위해 정한 설계상의 약속입니다.
이 글은 독립적인 이벤트를 여정에 끼워 넣는 방법을 다룹니다. 여러 이벤트가 동시에 가능하면 무엇이 먼저 나오는지, 거절한 뒤 얼마나 지나야 다시 묻는지, 장터가 떠난 뒤에도 요청이 유효한지를 정하는 일입니다. 대본을 노드 데이터로 바꾸는 작업에 이벤트의 발생과 실행 순서를 관리하는 단계가 하나 더해지는 셈입니다.
공통 카드 양식을 쓰고 대기 시간의 계산 기준을 맞추자
각 카드에 다음 항목을 작성합니다. 조건은 ‘예 또는 아니요’로 답할 수 있어야 합니다. 단순히 ‘분위기가 적절할 때’라고 쓰면 안 됩니다.
| 항목 | 작성할 내용 |
|---|---|
| 식별 번호와 내용 | 고유 번호, 무슨 일이 일어나는지 설명하는 한 문장 |
| 진입 조건 | 장소, 시간대, 선행 사실, 미완료 표시 |
| 우선순위 | 동시에 후보가 되었을 때의 순위 |
| 종료 분기와 기록 | 완료·거절·실패가 각각 무엇을 바꾸는지, 보상을 어떻게 기록하는지 |
| 대기 시간과 재등장 | 어느 종료 분기부터 계산하며 언제 다시 확인하는지 |
| 무효화 조건 | 언제 요청을 철회하고 어떤 상태를 남기는지 |
이 사례는 1턴부터 시작합니다. 이벤트 종료, 구역 이동, 명시적인 기다리기 행동은 각각 한 턴을 소비합니다. 글을 읽는 것만으로는 시간이 흐르지 않습니다. 매 턴 시작 시 무효화를 먼저 처리하고, 이어서 진입 조건과 재등장 대기 시간을 확인합니다. 같은 턴에는 최대 한 장의 카드만 시작할 수 있습니다. 시작되는 이벤트가 없으면 구역을 이동하거나 기다릴 수 있습니다.
재등장 대기 시간 2턴은 카드가 종료된 뒤 두 턴을 온전히 건너뛰어야 다시 진입할 수 있다는 뜻입니다. 1턴에 종료했다면 2턴과 3턴에는 해당 카드에 진입할 수 없고, 4턴에 다시 확인합니다. 대기 시간이 끝나도 후보 자격만 회복될 뿐, 등장이 보장되지는 않습니다. 성공 후 영구적으로 닫히는 카드는 더 이상 재등장 대기 시간을 계산하지 않습니다.
이벤트 카드 다섯 장: 모든 종료 분기를 실제로 기록할 수 있게 쓰자
다섯 카드 모두 ‘다른 이벤트가 진행 중이지 않을 것’을 요구합니다. 갑부터 정까지는 현재가 8턴 이전이어야 한다는 조건도 있습니다. 이벤트는 해당 턴에 끝나며 다음 턴까지 미결 상태로 남지 않습니다. 닫힌 카드는 다시 후보가 되지 않고, 무효화 처리도 이미 확정된 결과를 덮어쓰지 않습니다.
갑 카드|동쪽 입구의 기울어진 등불 받침대
진입: 동쪽 입구에 있으며 등불 받침대가 아직 수리되지 않았다. 내용: 상인이 아허에게 밑받침을 잡아 달라고 부탁한다. 완료: ‘등불 받침대 수리 완료’를 기록하고 닫는다. 거절: 고장 난 상태를 유지하고, 재등장 대기 시간 2턴을 적용한다. 실패: 도구가 미끄러져 받침대는 여전히 고장 난 상태이며, 재등장 대기 시간 1턴을 적용한다. 실패는 돕기로 했지만 끝내지 못한 경우만 뜻합니다. 장터가 마감할 때까지 수리하지 못했다면 ‘수레에 실어 가져가서 수리’를 기록하며, 나중에 성공 결과를 대신 부여하지 않습니다.
을 카드|서쪽 천막의 저울판 다툼
진입: 서쪽 천막에 있으며 다툼이 해결되지 않았고 양쪽 당사자가 모두 남아 있다. 완료: 양쪽이 다시 무게를 재는 데 동의하면 ‘다툼 해결’을 기록하고 닫는다. 거절 또는 중재 실패: 다툼은 그대로이며, 재등장 대기 시간 2턴을 적용한다. 어느 한쪽이 떠나거나 장터 마감 때까지 해결되지 않으면 ‘중재하지 못함’을 기록하고 닫습니다. 이후 비슷한 다툼이 생기면 별도 이벤트로 만들고, 이 카드의 완료 상태를 이어받지 않습니다.
병 카드|동쪽 입구의 보관증
진입: 동쪽 입구에 있고 보관증을 소지했으며, 주인이 아직 남아 있고, 보관증을 돌려주지 않았다. 완료: 보관증을 제거하고 ‘반환 완료’를 기록한 뒤 닫는다. 거절: 보관증을 유지하고, 재등장 대기 시간 2턴을 적용한다. 성공과 실패를 판정할 행동이 없으므로 별도의 실패 분기는 두지 않습니다. 돌려주기 전에 주인이 떠나거나 장터가 마감하면 보관증을 유지하고 ‘다음 행선지에서 반환 예정’을 기록한 뒤, 이번 장터에서는 닫습니다. 다음 행선지의 후속 내용은 이 사실을 참조합니다.
정 카드|안뜰의 따뜻한 차 한 잔
진입: 안뜰에 있으며 찻집이 영업 중이다. 최초 완료: ‘이번 장터에서 차를 마심’을 기록하고 다과 1인분을 지급한 뒤 ‘이번 장터의 다과 수령 완료’를 기록하며, 재등장 대기 시간 2턴을 적용한다. 이후 완료할 때는 짧은 안부 대화만 보여 주고, 위 사실을 유지하며 다과는 더 주지 않고, 똑같이 재등장 대기 시간 2턴을 적용합니다. 이 카드의 모든 종료 분기는 관계 수치를 바꾸지 않습니다. 거절: 차를 마셨거나 보상을 받았다는 사실을 추가하지 않고, 다과도 주지 않으며, 재등장 대기 시간 1턴을 적용한다. 찻집이 문을 닫거나 장터가 마감하면 무효화됩니다. 재등장을 허용하는 일상 카드입니다.
무 카드|장터 마감을 알리는 종
진입: 8턴이 되었고 아직 장터를 마감하지 않았다. 장소는 상관없다. 종료 분기는 ‘장터를 따라 떠난다’와 ‘그 자리에 남는다’뿐입니다. 각 선택에 따른 행선지를 기록한 다음 ‘이번 장터 종료’를 기록합니다. 이 카드는 재등장 대기 시간도, 재등장도 없습니다. 8턴 시작 시 갑부터 정까지는 각 카드의 마감 조항에 따라 닫히며, 무는 떠날지 남을지에 대한 선택을 확정합니다. 두 분기 모두 장터 구간을 끝내므로, 남는 쪽을 선택해도 계속 요청을 받을 수는 없습니다.
네 턴으로 확인하자: 거절은 완료가 아니다
공통 우선순위는 무, 갑, 병, 을, 정입니다. 조건을 충족하는 후보만 추린 뒤 첫 번째 카드를 고릅니다. 선택되지 않은 카드는 대기열에 넣지 않고 다음 턴에 다시 계산합니다. 순위는 구성상의 선택이지, 본래의 중요도를 뜻하지 않습니다.
1턴에 아허가 동쪽 입구에 있고, 등불 받침대는 수리 전이며, 보관증을 소지하고 주인도 아직 있다고 가정해 봅시다. 갑과 병이 동시에 후보가 되므로 갑부터 시작합니다. 등불 받침대를 잡아 달라는 부탁을 거절했다면 종료 턴은 1, 가장 빠른 재등장 턴은 4로 기록합니다. ‘갑 완료’라고 기록해서는 안 됩니다.
2턴에도 동쪽 입구에 있습니다. 갑은 재등장 대기 중이므로 병이 시작됩니다. 보관증을 돌려주면 소지품에서 제거하고 병을 닫습니다. 3턴에도 갑은 재등장 대기 중이고 병은 이미 닫혔습니다. 을과 정은 장소가 맞지 않으며, 무는 아직 8턴이 되지 않아 진입 조건을 충족하지 못합니다. 후보가 없으므로 아허는 기다리기를 선택합니다.
4턴에 등불 수리를 마치면 갑을 닫습니다. 이후 동쪽 입구를 지나가더라도 같은 등불을 다시 수리하지 않습니다. 8턴이 되면 정 카드의 재등장 대기 시간이 막 끝났더라도 장터 마감으로 무효화되고 ‘8턴 이전’ 조건도 충족하지 못하므로 제외됩니다. 무가 시작되어 이번 장터를 끝냅니다. 여기서는 무와 정이 우선순위를 놓고 경쟁하는 것이 아닙니다. 순위 경쟁은 1턴의 갑과 병이 보여 줍니다.
모의 진행에서는 현재 턴, 후보 카드, 선택된 카드, 종료 후 사실이라는 네 열을 기록해야 합니다. 대사만 기록하면 거절과 완료의 차이를 놓칩니다.
흔히 생기는 세 가지 진행 오류와 각각을 고치는 규칙
카드가 연달아 다시 뜬다. 1턴에 종료한 뒤 재등장 대기 시간 2턴을 ‘2턴에 재등장 가능’으로 잘못 계산하면, 방금 거절했는데 곧바로 다시 질문을 받게 됩니다. ‘가장 빠른 재등장 턴’을 직접 적으면 확인하기 쉽습니다.
만료된 요청이 계속 실행된다. 병이 한때 후보였더라도 다른 이벤트를 실행한 후에는 보관증 주인이 떠났을 수 있습니다. 이 사례는 이전 후보 대기열을 저장하지 않습니다. 대기열 방식으로 바꾸더라도 실제 진입 직전에 진입 조건을 다시 확인해야 합니다. 이미 떠난 사람에게 보관증을 건넬 수는 없습니다.
같은 종료 분기의 결과를 두 번 반영한다. 진입할 때마다 독립적인 실행 기록을 만들고, 종료 분기가 확정되면 처리 완료로 표시합니다. 다시 볼 때는 결과만 읽으며, 보관증을 또 제거하거나 다과를 추가하지 않습니다. 정을 새로 실행할 때도 이번 장터의 수령 표시를 확인해야 합니다. 실행 기록은 같은 실행 안에서 결과가 중복 반영되는 일을 막고, 수령 표시는 서로 다른 실행에서 보상이 반복 지급되는 일을 막습니다.
또 다른 한계는 상위 카드가 오랫동안 차례를 독점하는 상황입니다. 상위 카드가 계속 후보 자격을 회복하면 하위 카드는 끝내 차례를 얻지 못할 수도 있습니다. 반드시 보여 줘야 할 장면에는 전용 시간대를 배정하거나 메인 스토리 노드로 바꿔야 합니다. 추첨 확률을 높이는 것만으로는 도달을 보장할 수 없습니다.
언제 방식을 바꾸고, 전달 전에는 어떻게 확인할까
고정 우선순위는 전개 속도를 통제하려는 장터에 알맞습니다. 우연한 만남을 늘리고 싶다면 조건을 충족하는 후보 중에서 추첨할 수 있습니다. 자유롭게 가게를 둘러보는 것이 핵심이라면 플레이어가 직접 요청 목록을 열게 하고, 재등장 대기 시간으로 다시 수락할 수 있는 시점을 조절할 수 있습니다. 두 방식 모두 진입 조건과 무효화 규칙을 유지해야 하며, 선택 규칙은 별도로 작성해야 합니다.
전달 전에는 세 경로를 수동으로 진행해 봅니다. 전부 거절하기, 최대한 완료하기, 미완료 요청을 가진 채 8턴에 진입하기입니다. 종료 분기에 따른 기록, 카드의 영구 종료, 장터 마감 처리를 확인합니다. 이어서 정을 두 번 완료합니다. 첫 번째에는 다과가 1인분 늘고 수령 표시가 남아야 하며, 두 번째에는 다과가 늘지 않아야 합니다. 두 번 모두 관계 수치는 변하지 않아야 합니다. 이미 처리한 어떤 종료 분기를 다시 보더라도 소지품이 바뀌어서는 안 됩니다.
이 카드 양식은 해당 이야기 구간에서 마무리할 수 있는 작은 이벤트에 적합합니다. 여러 행선지에 걸친 추적, 인물 간의 장기적인 경쟁, 정해진 순서로 밝혀지는 수수께끼에는 단계별 상태가 추가로 필요합니다. 먼저 다섯 카드의 경계 조건을 모의 진행한 뒤 수를 늘려야, 새로 더하는 것이 이야기 내용인지 아직 정의하지 않은 이벤트 발생 및 실행 순서 규칙인지 구분할 수 있습니다.


