Opt: Clean rogue event options (#168)

This commit is contained in:
Zebartin 2023-10-19 00:23:34 +08:00 committed by GitHub
parent 0951ba6e9e
commit 24e6f9f871
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 660 additions and 1794 deletions

View File

@ -3,7 +3,8 @@ import os
import re
import typing as t
from collections import defaultdict
from functools import cached_property
from functools import cache, cached_property
from hashlib import md5
from module.base.code_generator import CodeGenerator
from module.config.utils import deep_get, read_file
@ -429,7 +430,7 @@ class KeywordExtract:
text_convert=blessing_name, extra_attrs=extra_attrs)
def generate_rogue_events(self):
# A talk contains several options
# An event contains several options
event_title_file = os.path.join(
TextMap.DATA_FOLDER, 'ExcelOutput',
'RogueTalkNameConfig.json'
@ -452,8 +453,18 @@ class KeywordExtract:
id_: deep_get(data, 'EventTitle.Hash')
for id_, data in read_file(option_file).items()
}
# Key: event name id, value: list of option id/hash
# Key: event name hash, value: list of option id/hash
options_grouped = dict()
# Key: option md5, value: option text hash in StarRailData
option_md5s = dict()
@cache
def get_option_md5(option_hash):
m = md5()
for lang in UI_LANGUAGES:
option_text = self.find_keyword(option_hash, lang=lang)[1]
m.update(option_text.encode())
return m.hexdigest()
# Drop invalid or duplicate options
def clean_options(options):
@ -462,11 +473,14 @@ class KeywordExtract:
option_hash = option_ids[str(i)]
if option_hash not in self.text_map['en']:
continue
_, option_text = self.find_keyword(option_hash, lang='en')
if option_text in visited:
option_md5 = get_option_md5(option_hash)
if option_md5 in visited:
continue
visited.add(option_text)
yield option_hash
if option_md5 not in option_md5s:
option_md5s[option_md5] = option_hash
visited.add(option_md5)
yield option_md5s[option_md5]
for group_title_ids in event_title_texts.values():
group_option_ids = []
for title_id in group_title_ids:
@ -475,10 +489,10 @@ class KeywordExtract:
if title_id == '13501':
group_option_ids.append(13506)
option_id = title_id
# Name ids in Swarm Disaster (寰宇蝗灾) have a "1" prefix
# title ids in Swarm Disaster (寰宇蝗灾) have a "1" prefix
if option_id not in option_ids:
option_id = title_id[1:]
# Some name may not has corresponding options
# Some title may not has corresponding options
if option_id not in option_ids:
continue
group_option_ids += list(itertools.takewhile(
@ -486,52 +500,65 @@ class KeywordExtract:
itertools.count(int(option_id))
))
if group_option_ids:
options_grouped[group_title_ids[0]] = group_option_ids
title_hash = event_title_ids[group_title_ids[0]]
options_grouped[title_hash] = group_option_ids
for title_id, options in options_grouped.items():
options_grouped[title_id] = list(clean_options(options))
for title_id in list(options_grouped.keys()):
if len(options_grouped[title_id]) == 0:
options_grouped.pop(title_id)
for title_hash, options in options_grouped.items():
options_grouped[title_hash] = list(clean_options(options))
for title_hash in list(options_grouped.keys()):
if len(options_grouped[title_hash]) == 0:
options_grouped.pop(title_hash)
option_dup_count = defaultdict(int)
for option_hash_list in options_grouped.values():
for option_hash in option_hash_list:
for option_hash in option_md5s.values():
if option_hash not in self.text_map['en']:
continue
_, option_text = self.find_keyword(option_hash, lang='en')
option_dup_count[text_to_variable(option_text)] += 1
def option_text_convert(title_index):
def option_text_convert(option_md5, md5_prefix_len=4):
def wrapper(option_text):
option_var = text_to_variable(option_text)
if option_dup_count[option_var] > 1:
option_var = f'{option_var}_{title_index}'
option_var = f'{option_var}_{option_md5[:md5_prefix_len]}'
return option_var
return wrapper
option_gen = None
last_id = 1
option_id_map = dict()
for i, (title_id, option_ids) in enumerate(options_grouped.items(), start=1):
self.load_keywords(option_ids)
option_hash_to_keyword_id = dict() # option hash -> option keyword id
for i, (option_md5, option_hash) in enumerate(option_md5s.items(), start=1):
self.load_keywords([option_hash])
option_gen = self.write_keywords(
keyword_class='RogueEventOption',
text_convert=option_text_convert(i),
text_convert=option_text_convert(option_md5),
generator=option_gen
)
cur_id = option_gen.last_id + 1
option_id_map[event_title_ids[title_id]] = list(
range(last_id, cur_id))
last_id = cur_id
option_hash_to_keyword_id[option_hash] = i
output_file = './tasks/rogue/keywords/event_option.py'
print(f'Write {output_file}')
option_gen.write(output_file)
self.load_keywords([event_title_ids[x] for x in options_grouped])
# title hash -> option keyword id
title_to_option_keyword_id = {
title_hash: sorted(
option_hash_to_keyword_id[x] for x in option_hashes
) for title_hash, option_hashes in options_grouped.items()
}
self.load_keywords(options_grouped.keys())
self.write_keywords(
keyword_class='RogueEventTitle',
output_file='./tasks/rogue/keywords/event_title.py',
extra_attrs={'option_ids': option_id_map}
extra_attrs={'option_ids': title_to_option_keyword_id}
)
try:
from tasks.rogue.event.event import OcrRogueEventOption
except AttributeError:
logger.critical(
f'Importing OcrRogueEventOption fails, probably due to changes in {output_file}')
try:
from tasks.rogue.event.preset import STRATEGIES
except AttributeError:
logger.critical(
f'Importing preset strategies fails, probably due to changes in {output_file}')
def iter_without_duplication(self, file: dict, keys):
visited = set()

View File

@ -89,17 +89,16 @@ class OcrRogueEventOption(OcrRogueEvent):
OCR_REPLACE = {
'cn': [
# Special cases with placeholder
(KEYWORDS_ROGUE_EVENT_OPTION.Deposit_2_Cosmic_Fragments_93, '存入\d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Withdraw_2_Cosmic_Fragments_93, '取出\d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Deposit_2_Cosmic_Fragments, '存入\d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Withdraw_2_Cosmic_Fragments, '取出\d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Record_of_the_Aeon_of_1, '^关于.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.I_ll_buy_it, '我买下?了'),
(KEYWORDS_ROGUE_EVENT_OPTION.Wait_for_them, '^等待.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Choose_number_two_It_snores_like_Andatur_Zazzalo, '.*二号.*安达.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Choose_number_three_Its_teeth_are_rusted, '.*三号.*牙齿.*'),
],
'en': [
(KEYWORDS_ROGUE_EVENT_OPTION.Deposit_2_Cosmic_Fragments_93, 'Deposit \d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Withdraw_2_Cosmic_Fragments_93, 'Withdraw \d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Deposit_2_Cosmic_Fragments, 'Deposit \d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Withdraw_2_Cosmic_Fragments, 'Withdraw \d+.*'),
(KEYWORDS_ROGUE_EVENT_OPTION.Record_of_the_Aeon_of_1,
'^Record of the Aeon.*'),
]

View File

@ -7,10 +7,10 @@ STRATEGY_COMMON = {
KEYWORDS_ROGUE_EVENT_OPTION.Enhance_2_random_Blessings,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_1_star_Blessing,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_1_Curio,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_2
KEYWORDS_ROGUE_EVENT_OPTION.Leave_1436
],
KEYWORDS_ROGUE_EVENT_TITLE.Ruan_Mei: [
KEYWORDS_ROGUE_EVENT_OPTION.Worship_Aeons_1,
KEYWORDS_ROGUE_EVENT_OPTION.Worship_Aeons,
KEYWORDS_ROGUE_EVENT_OPTION.Want_lots_of_money
],
KEYWORDS_ROGUE_EVENT_TITLE.Shopping_Channel: [
@ -34,7 +34,8 @@ STRATEGY_COMMON = {
KEYWORDS_ROGUE_EVENT_OPTION.I_hate_this_era
],
[
KEYWORDS_ROGUE_EVENT_OPTION.I_ll_buy_it,
KEYWORDS_ROGUE_EVENT_OPTION.I_ll_buy_it_f1b5,
KEYWORDS_ROGUE_EVENT_OPTION.I_ll_buy_it_f619,
KEYWORDS_ROGUE_EVENT_OPTION.I_want_money,
KEYWORDS_ROGUE_EVENT_OPTION.I_want_love
]
@ -49,26 +50,26 @@ STRATEGY_COMMON = {
],
KEYWORDS_ROGUE_EVENT_TITLE.The_Architects: [
KEYWORDS_ROGUE_EVENT_OPTION.Thank_the_Aeon_Qlipoth,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_16
KEYWORDS_ROGUE_EVENT_OPTION.Leave_1436
],
KEYWORDS_ROGUE_EVENT_TITLE.Cosmic_Merchant_Part_1: [
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_metal_Wish_In_A_Bottle,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_18,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_silver_ore_Wish_In_A_Bottle_18
KEYWORDS_ROGUE_EVENT_OPTION.Leave_4fa0,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_silver_ore_Wish_In_A_Bottle
],
KEYWORDS_ROGUE_EVENT_TITLE.Cosmic_Con_Job_Part_2: [
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_supernium_Wish_In_A_Bottle_19,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_19,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_an_amber_Wish_In_A_Bottle_19
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_supernium_Wish_In_A_Bottle,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_4fa0,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_an_amber_Wish_In_A_Bottle
],
KEYWORDS_ROGUE_EVENT_TITLE.Cosmic_Altruist_Part_3: [
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_an_ore_box_20,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_diamond_box_20,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_20
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_an_ore_box,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_diamond_box,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_4fa0
],
KEYWORDS_ROGUE_EVENT_TITLE.Bounty_Hunter: [
KEYWORDS_ROGUE_EVENT_OPTION.Walk_away_25,
KEYWORDS_ROGUE_EVENT_OPTION.Walk_away,
KEYWORDS_ROGUE_EVENT_OPTION.Give_him_the_fur_you_re_wearing
],
KEYWORDS_ROGUE_EVENT_TITLE.Nomadic_Miners: [
@ -77,7 +78,7 @@ STRATEGY_COMMON = {
],
KEYWORDS_ROGUE_EVENT_TITLE.Jim_Hulk_and_Jim_Hall: [
KEYWORDS_ROGUE_EVENT_OPTION.Jim_Hulk_collection,
KEYWORDS_ROGUE_EVENT_OPTION.Walk_away_5
KEYWORDS_ROGUE_EVENT_OPTION.Walk_away
],
KEYWORDS_ROGUE_EVENT_TITLE.The_Cremators: [
KEYWORDS_ROGUE_EVENT_OPTION.Bear_ten_carats_of_trash,
@ -93,42 +94,42 @@ STRATEGY_COMMON = {
],
KEYWORDS_ROGUE_EVENT_TITLE.Kindling_of_the_Self_Annihilator: [
KEYWORDS_ROGUE_EVENT_OPTION.Accept_the_flames_of_Self_destruction_and_destroy_the_black_box,
KEYWORDS_ROGUE_EVENT_OPTION.Refuse_17
KEYWORDS_ROGUE_EVENT_OPTION.Refuse_54fd
],
KEYWORDS_ROGUE_EVENT_TITLE.Saleo_Part_1: [
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Sal_22,
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Leo_22
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Sal,
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Leo
],
KEYWORDS_ROGUE_EVENT_TITLE.Sal_Part_2: [
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Sal_23,
KEYWORDS_ROGUE_EVENT_OPTION.Let_Leo_out_23
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Sal,
KEYWORDS_ROGUE_EVENT_OPTION.Let_Leo_out
],
KEYWORDS_ROGUE_EVENT_TITLE.Leo_Part_3: [
KEYWORDS_ROGUE_EVENT_OPTION.Let_Sal_out_24,
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Leo_24
KEYWORDS_ROGUE_EVENT_OPTION.Let_Sal_out,
KEYWORDS_ROGUE_EVENT_OPTION.Pick_Leo
],
KEYWORDS_ROGUE_EVENT_TITLE.Implement_of_Error: [
KEYWORDS_ROGUE_EVENT_OPTION.Pick_an_Error_Code_Curio,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_26
KEYWORDS_ROGUE_EVENT_OPTION.Leave_1436
],
KEYWORDS_ROGUE_EVENT_TITLE.Make_A_Wish: [
KEYWORDS_ROGUE_EVENT_OPTION.Exchange_for_a_3_star_Blessing,
KEYWORDS_ROGUE_EVENT_OPTION.Exchange_for_a_2_star_Blessing,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_33
KEYWORDS_ROGUE_EVENT_OPTION.Leave_3c49
],
KEYWORDS_ROGUE_EVENT_TITLE.Let_Exchange_Gifts: [
KEYWORDS_ROGUE_EVENT_OPTION.Blessing_Exchange,
KEYWORDS_ROGUE_EVENT_OPTION.Blessing_Reforge,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_32
KEYWORDS_ROGUE_EVENT_OPTION.Leave_3c49
],
KEYWORDS_ROGUE_EVENT_TITLE.Robot_Sales_Terminal: [
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_1_3_star_Blessing,
KEYWORDS_ROGUE_EVENT_OPTION.Purchase_a_1_2_star_Blessing,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_34
KEYWORDS_ROGUE_EVENT_OPTION.Leave_3c49
],
KEYWORDS_ROGUE_EVENT_TITLE.History_Fictionologists: [
KEYWORDS_ROGUE_EVENT_OPTION.Record_of_the_Aeon_of_1,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_4
KEYWORDS_ROGUE_EVENT_OPTION.Leave_1436
],
# Swarm Disaster
KEYWORDS_ROGUE_EVENT_TITLE.Insights_from_the_Universal_Dancer: [
@ -165,7 +166,7 @@ STRATEGY_COMBAT = {
],
KEYWORDS_ROGUE_EVENT_TITLE.Three_Little_Pigs: [
KEYWORDS_ROGUE_EVENT_OPTION.Play_a_bit_with_Sequence_Trotters,
KEYWORDS_ROGUE_EVENT_OPTION.Leave_14
KEYWORDS_ROGUE_EVENT_OPTION.Leave_b5f1
]
}
# Aggressive

File diff suppressed because it is too large Load Diff

View File

@ -41,7 +41,7 @@ History_Fictionologists = RogueEventTitle(
en='History Fictionologists',
jp='虚構歴史学者',
es='Historiador Espurio',
option_ids=[13, 14, 15, 16],
option_ids=[6, 13, 14, 15],
)
Jim_Hulk_and_Jim_Hall = RogueEventTitle(
id=5,
@ -51,7 +51,7 @@ Jim_Hulk_and_Jim_Hall = RogueEventTitle(
en='Jim Hulk and Jim Hall',
jp='ジャック・ハックとジャック・ハウル',
es='Jim Hulk y Jim Hall',
option_ids=[17, 18, 19, 20],
option_ids=[16, 17, 18, 19],
)
Shopping_Channel = RogueEventTitle(
id=6,
@ -61,7 +61,7 @@ Shopping_Channel = RogueEventTitle(
en='Shopping Channel',
jp='テレビショッピングチャンネル',
es='Teletienda',
option_ids=[21, 22, 23, 24, 25],
option_ids=[20, 21, 22, 23, 24],
)
The_Cremators = RogueEventTitle(
id=7,
@ -71,7 +71,7 @@ The_Cremators = RogueEventTitle(
en='The Cremators',
jp='焼却人',
es='Incineradores',
option_ids=[26, 27, 28, 29],
option_ids=[25, 26, 27, 28],
)
Interactive_Arts = RogueEventTitle(
id=8,
@ -81,7 +81,7 @@ Interactive_Arts = RogueEventTitle(
en='Interactive Arts',
jp='相互性芸術',
es='Arte interactivo',
option_ids=[30, 31, 32, 33, 34],
option_ids=[29, 30, 31, 32, 33],
)
Pixel_World = RogueEventTitle(
id=9,
@ -91,7 +91,7 @@ Pixel_World = RogueEventTitle(
en='Pixel World',
jp='ピクセルワールド',
es='Mundo de píxeles',
option_ids=[35, 36, 37, 38],
option_ids=[34, 35, 36, 37],
)
Aha_Stuffed_Toy = RogueEventTitle(
id=10,
@ -101,7 +101,7 @@ Aha_Stuffed_Toy = RogueEventTitle(
en='Aha Stuffed Toy',
jp='アッハ人形',
es='Muñeco de Aha',
option_ids=[39, 40, 41, 42],
option_ids=[38, 39, 40, 41],
)
I_O_U_Dispenser = RogueEventTitle(
id=11,
@ -111,7 +111,7 @@ I_O_U_Dispenser = RogueEventTitle(
en='I.O.U. Dispenser',
jp='謝債発行機',
es='Dispensador de deuda',
option_ids=[43, 44, 45, 46, 47, 48, 49, 50, 51],
option_ids=[41, 42, 43, 44, 45, 46, 47, 48, 49, 50],
)
Statue = RogueEventTitle(
id=12,
@ -121,7 +121,7 @@ Statue = RogueEventTitle(
en='Statue',
jp='彫像',
es='Estatua',
option_ids=[52, 53, 54, 55],
option_ids=[50, 51, 52, 53],
)
Insect_Nest = RogueEventTitle(
id=13,
@ -131,7 +131,7 @@ Insect_Nest = RogueEventTitle(
en='Insect Nest',
jp='蟲の巣',
es='Nido de insectos',
option_ids=[56, 57, 58, 59, 60, 61],
option_ids=[54, 55, 56, 57, 58, 59],
)
Three_Little_Pigs = RogueEventTitle(
id=14,
@ -141,7 +141,7 @@ Three_Little_Pigs = RogueEventTitle(
en='Three Little Pigs',
jp='三匹の子豚',
es='Los tres cerditos',
option_ids=[62, 63, 64, 65],
option_ids=[60, 61, 62, 63],
)
Unending_Darkness = RogueEventTitle(
id=15,
@ -151,7 +151,7 @@ Unending_Darkness = RogueEventTitle(
en='Unending Darkness',
jp='果て無き暗闇',
es='Oscuridad infinita',
option_ids=[66, 67, 68],
option_ids=[64, 65, 66],
)
The_Architects = RogueEventTitle(
id=16,
@ -161,7 +161,7 @@ The_Architects = RogueEventTitle(
en='The Architects',
jp='建創者',
es='Los Arquitectos',
option_ids=[69, 70],
option_ids=[6, 67],
)
Kindling_of_the_Self_Annihilator = RogueEventTitle(
id=17,
@ -171,7 +171,7 @@ Kindling_of_the_Self_Annihilator = RogueEventTitle(
en='Kindling of the Self-Annihilator',
jp='自滅者の火種',
es='Yesca del Autodestructor',
option_ids=[71, 72, 73],
option_ids=[68, 69, 70],
)
Cosmic_Merchant_Part_1 = RogueEventTitle(
id=18,
@ -181,7 +181,7 @@ Cosmic_Merchant_Part_1 = RogueEventTitle(
en='Cosmic Merchant (Part 1)',
jp='銀河の商人その1',
es='Comerciante galáctico (I)',
option_ids=[74, 75, 76, 77, 78, 79, 80],
option_ids=[71, 72, 73, 74, 75, 76, 77],
)
Cosmic_Con_Job_Part_2 = RogueEventTitle(
id=19,
@ -191,7 +191,7 @@ Cosmic_Con_Job_Part_2 = RogueEventTitle(
en='Cosmic Con Job (Part 2)',
jp='銀河のペテン師その2',
es='Engaño galáctico (II)',
option_ids=[81, 82, 83, 84, 85, 86],
option_ids=[72, 73, 74, 75, 76, 77],
)
Cosmic_Altruist_Part_3 = RogueEventTitle(
id=20,
@ -201,7 +201,7 @@ Cosmic_Altruist_Part_3 = RogueEventTitle(
en='Cosmic Altruist (Part 3)',
jp='銀河のお人好しその3',
es='Altruismo galáctico (III)',
option_ids=[87, 88, 89, 90, 91],
option_ids=[73, 74, 75, 76, 77],
)
Societal_Dreamscape = RogueEventTitle(
id=21,
@ -211,7 +211,7 @@ Societal_Dreamscape = RogueEventTitle(
en='Societal Dreamscape',
jp='社会性の夢',
es='Sueños de sociedad',
option_ids=[92, 93, 94, 95],
option_ids=[78, 79, 80, 81],
)
Saleo_Part_1 = RogueEventTitle(
id=22,
@ -221,7 +221,7 @@ Saleo_Part_1 = RogueEventTitle(
en='Saleo (Part 1)',
jp='サリオその1',
es='Saleo (I)',
option_ids=[96, 97, 98, 99, 100],
option_ids=[82, 83, 84, 85, 86],
)
Sal_Part_2 = RogueEventTitle(
id=23,
@ -231,7 +231,7 @@ Sal_Part_2 = RogueEventTitle(
en='Sal (Part 2)',
jp='サリその2',
es='Sal (II)',
option_ids=[101, 102, 103, 104, 105],
option_ids=[82, 83, 84, 85, 86],
)
Leo_Part_3 = RogueEventTitle(
id=24,
@ -241,7 +241,7 @@ Leo_Part_3 = RogueEventTitle(
en='Leo (Part 3)',
jp='リオその3',
es='Leo (III)',
option_ids=[106, 107, 108, 109, 110],
option_ids=[82, 83, 84, 85, 86],
)
Bounty_Hunter = RogueEventTitle(
id=25,
@ -251,7 +251,7 @@ Bounty_Hunter = RogueEventTitle(
en='Bounty Hunter',
jp='賞金稼ぎ',
es='Cazarrecompensas',
option_ids=[111, 112, 113, 114],
option_ids=[17, 87, 88, 89],
)
Implement_of_Error = RogueEventTitle(
id=26,
@ -261,7 +261,7 @@ Implement_of_Error = RogueEventTitle(
en='Implement of Error',
jp='エラーアイテム',
es='Objeto erróneo',
option_ids=[115, 116, 117, 118],
option_ids=[6, 90, 91, 92],
)
We_Are_Cowboys = RogueEventTitle(
id=27,
@ -271,7 +271,7 @@ We_Are_Cowboys = RogueEventTitle(
en='We Are Cowboys',
jp='俺たちカウボーイ',
es='Somos vaqueros',
option_ids=[119, 120, 121, 122],
option_ids=[93, 94, 95, 96],
)
Nildis = RogueEventTitle(
id=28,
@ -281,7 +281,7 @@ Nildis = RogueEventTitle(
en='Nildis',
jp='ニールディスカード',
es='Nildis',
option_ids=[123, 124],
option_ids=[97, 98],
)
Rock_Paper_Scissors = RogueEventTitle(
id=29,
@ -291,7 +291,7 @@ Rock_Paper_Scissors = RogueEventTitle(
en='Rock, Paper, Scissors',
jp='じゃんけん',
es='Piedra, papel o tijera',
option_ids=[125, 126, 127, 128],
option_ids=[99, 100, 101, 102],
)
Tavern = RogueEventTitle(
id=30,
@ -301,7 +301,7 @@ Tavern = RogueEventTitle(
en='Tavern',
jp='パブ',
es='Taberna',
option_ids=[129, 130, 131, 132, 133],
option_ids=[103, 104, 105, 106, 107],
)
Periodic_Demon_Lord = RogueEventTitle(
id=31,
@ -311,7 +311,7 @@ Periodic_Demon_Lord = RogueEventTitle(
en='Periodic Demon Lord',
jp='周期性大魔王',
es='Rey Demonio Cíclico',
option_ids=[134, 135],
option_ids=[108, 109],
)
Let_Exchange_Gifts = RogueEventTitle(
id=32,
@ -321,7 +321,7 @@ Let_Exchange_Gifts = RogueEventTitle(
en="Let's Exchange Gifts",
jp='プレゼントを交換しようよ',
es='¡Intercambiemos regalos!',
option_ids=[136, 137, 138, 139, 140],
option_ids=[110, 111, 112, 113, 114],
)
Make_A_Wish = RogueEventTitle(
id=33,
@ -331,7 +331,7 @@ Make_A_Wish = RogueEventTitle(
en='Make A Wish',
jp='願い事しようよ',
es='Pide un deseo',
option_ids=[141, 142, 143, 144],
option_ids=[112, 115, 116, 117],
)
Robot_Sales_Terminal = RogueEventTitle(
id=34,
@ -341,7 +341,7 @@ Robot_Sales_Terminal = RogueEventTitle(
en='Robot Sales Terminal',
jp='ロボット販売端末',
es='Terminal de venta de robots',
option_ids=[145, 146, 147, 148, 149],
option_ids=[112, 118, 119, 120, 121],
)
Sand_King_Tayzzyronth_Part_1 = RogueEventTitle(
id=35,
@ -351,7 +351,7 @@ Sand_King_Tayzzyronth_Part_1 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 1)',
jp='「砂の王-タイズルス」・その1',
es='Rey de la Arena: Tayzzyronth(I)',
option_ids=[150, 151],
option_ids=[122, 123],
)
Sand_King_Tayzzyronth_Part_2 = RogueEventTitle(
id=36,
@ -361,7 +361,7 @@ Sand_King_Tayzzyronth_Part_2 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 2)',
jp='「砂の王-タイズルス」・その2',
es='Rey de la Arena: Tayzzyronth(II)',
option_ids=[152, 153],
option_ids=[124, 125],
)
Sand_King_Tayzzyronth_Part_3 = RogueEventTitle(
id=37,
@ -371,7 +371,7 @@ Sand_King_Tayzzyronth_Part_3 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 3)',
jp='「砂の王-タイズルス」・その3',
es='Rey de la Arena: Tayzzyronth(III)',
option_ids=[154, 155],
option_ids=[126, 127],
)
Sand_King_Tayzzyronth_Part_4 = RogueEventTitle(
id=38,
@ -381,7 +381,7 @@ Sand_King_Tayzzyronth_Part_4 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 4)',
jp='「砂の王-タイズルス」・その4',
es='Rey de la Arena: Tayzzyronth(IV)',
option_ids=[156, 157, 158, 159],
option_ids=[127, 128, 129, 130],
)
Sand_King_Tayzzyronth_Part_5 = RogueEventTitle(
id=39,
@ -391,7 +391,7 @@ Sand_King_Tayzzyronth_Part_5 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 5)',
jp='「砂の王-タイズルス」・その5',
es='Rey de la Arena: Tayzzyronth(V)',
option_ids=[160, 161],
option_ids=[131, 132],
)
Sand_King_Tayzzyronth_Part_6 = RogueEventTitle(
id=40,
@ -401,7 +401,7 @@ Sand_King_Tayzzyronth_Part_6 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 6)',
jp='「砂の王-タイズルス」・その6',
es='Rey de la Arena: Tayzzyronth(VI)',
option_ids=[162, 163, 164],
option_ids=[127, 133, 134],
)
Sand_King_Tayzzyronth_Part_7 = RogueEventTitle(
id=41,
@ -411,7 +411,7 @@ Sand_King_Tayzzyronth_Part_7 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 7)',
jp='「砂の王-タイズルス」・その7',
es='Rey de la Arena: Tayzzyronth(VII)',
option_ids=[165, 166],
option_ids=[135, 136],
)
Sand_King_Tayzzyronth_Part_8 = RogueEventTitle(
id=42,
@ -421,7 +421,7 @@ Sand_King_Tayzzyronth_Part_8 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 8)',
jp='「砂の王-タイズルス」・その8',
es='Rey de la Arena: Tayzzyronth(VIII)',
option_ids=[167, 168],
option_ids=[137, 138],
)
Sand_King_Tayzzyronth_Part_9 = RogueEventTitle(
id=43,
@ -431,7 +431,7 @@ Sand_King_Tayzzyronth_Part_9 = RogueEventTitle(
en='Sand King: Tayzzyronth (Part 9)',
jp='「砂の王-タイズルス」・その9',
es='Rey de la Arena: Tayzzyronth(IX)',
option_ids=[169, 170],
option_ids=[139, 140],
)
Lepismat_System_Massacre_Saga_Part_1 = RogueEventTitle(
id=44,
@ -441,7 +441,7 @@ Lepismat_System_Massacre_Saga_Part_1 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 1)',
jp='「蟲星系-虐殺紀」・その1',
es='Galaxia de Insectiria: saga de la masacre(I)',
option_ids=[171, 172],
option_ids=[141, 142],
)
Lepismat_System_Massacre_Saga_Part_2 = RogueEventTitle(
id=45,
@ -451,7 +451,7 @@ Lepismat_System_Massacre_Saga_Part_2 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 2)',
jp='「蟲星系-虐殺紀」・その2',
es='Galaxia de Insectiria: saga de la masacre(II)',
option_ids=[173, 174],
option_ids=[143, 144],
)
Lepismat_System_Massacre_Saga_Part_3 = RogueEventTitle(
id=46,
@ -461,7 +461,7 @@ Lepismat_System_Massacre_Saga_Part_3 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 3)',
jp='「蟲星系-虐殺紀」・その3',
es='Galaxia de Insectiria: saga de la masacre(III)',
option_ids=[175, 176],
option_ids=[145, 146],
)
Lepismat_System_Massacre_Saga_Part_4 = RogueEventTitle(
id=47,
@ -471,7 +471,7 @@ Lepismat_System_Massacre_Saga_Part_4 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 4)',
jp='「蟲星系-虐殺紀」・その4',
es='Galaxia de Insectiria: saga de la masacre(IV)',
option_ids=[177, 178],
option_ids=[147, 148],
)
Lepismat_System_Massacre_Saga_Part_5 = RogueEventTitle(
id=48,
@ -481,7 +481,7 @@ Lepismat_System_Massacre_Saga_Part_5 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 5)',
jp='「蟲星系-虐殺紀」・その5',
es='Galaxia de Insectiria: saga de la masacre(V)',
option_ids=[179, 180],
option_ids=[149, 150],
)
Lepismat_System_Massacre_Saga_Part_6 = RogueEventTitle(
id=49,
@ -491,7 +491,7 @@ Lepismat_System_Massacre_Saga_Part_6 = RogueEventTitle(
en='Lepismat System: Massacre Saga (Part 6)',
jp='「蟲星系-虐殺紀」・その6',
es='Galaxia de Insectiria: saga de la masacre(VI)',
option_ids=[181, 182],
option_ids=[151, 152],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_1 = RogueEventTitle(
id=50,
@ -501,7 +501,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_1 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 1)',
jp='「賞金稼ぎ-洗狩紀」・その1',
es='Cazarrecompensas: crónica de la depuración carmesí(I)',
option_ids=[183, 184],
option_ids=[153, 154],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_2 = RogueEventTitle(
id=51,
@ -511,7 +511,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_2 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 2)',
jp='「賞金稼ぎ-洗狩紀」・その2',
es='Cazarrecompensas: crónica de la depuración carmesí(II)',
option_ids=[185],
option_ids=[155],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_3 = RogueEventTitle(
id=52,
@ -521,7 +521,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_3 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 3)',
jp='「賞金稼ぎ-洗狩紀」・その3',
es='Cazarrecompensas: crónica de la depuración carmesí(III)',
option_ids=[186, 187],
option_ids=[156, 157],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_4 = RogueEventTitle(
id=53,
@ -531,7 +531,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_4 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 4)',
jp='「賞金稼ぎ-洗狩紀」・その4',
es='Cazarrecompensas: crónica de la depuración carmesí(IV)',
option_ids=[188, 189],
option_ids=[158, 159],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_5 = RogueEventTitle(
id=54,
@ -541,7 +541,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_5 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 5)',
jp='「賞金稼ぎ-洗狩紀」・その5',
es='Cazarrecompensas: crónica de la depuración carmesí(V)',
option_ids=[190, 191],
option_ids=[160, 161],
)
Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_6 = RogueEventTitle(
id=55,
@ -551,7 +551,7 @@ Bounty_Hunter_Crimson_Cleansing_Chronicle_Part_6 = RogueEventTitle(
en='Bounty Hunter: Crimson Cleansing Chronicle (Part 6)',
jp='「賞金稼ぎ-洗狩紀」・その6',
es='Cazarrecompensas: crónica de la depuración carmesí(VI)',
option_ids=[192],
option_ids=[156],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_1 = RogueEventTitle(
id=56,
@ -561,7 +561,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_1 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 1)',
jp='「凶と虫-諸星消滅紀」・その1',
es='Tragedia e insectos: el ocaso de las estrellas(I)',
option_ids=[193, 194],
option_ids=[162, 163],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_2 = RogueEventTitle(
id=57,
@ -571,7 +571,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_2 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 2)',
jp='「凶と虫-諸星消滅紀」・その2',
es='Tragedia e insectos: el ocaso de las estrellas(II)',
option_ids=[195, 196],
option_ids=[164, 165],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_3 = RogueEventTitle(
id=58,
@ -581,7 +581,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_3 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 3)',
jp='「凶と虫-諸星消滅紀」・その3',
es='Tragedia e insectos: el ocaso de las estrellas(III)',
option_ids=[197, 198],
option_ids=[166, 167],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_4 = RogueEventTitle(
id=59,
@ -591,7 +591,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_4 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 4)',
jp='「凶と虫-諸星消滅紀」・その4',
es='Tragedia e insectos: el ocaso de las estrellas(IV)',
option_ids=[199, 200],
option_ids=[69, 168],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_5 = RogueEventTitle(
id=60,
@ -601,7 +601,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_5 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 5)',
jp='「凶と虫-諸星消滅紀」・その5',
es='Tragedia e insectos: el ocaso de las estrellas(V)',
option_ids=[201, 202],
option_ids=[169, 170],
)
Tragedy_and_Insects_The_Dwindling_of_Stars_Part_6 = RogueEventTitle(
id=61,
@ -611,7 +611,7 @@ Tragedy_and_Insects_The_Dwindling_of_Stars_Part_6 = RogueEventTitle(
en='Tragedy and Insects: The Dwindling of Stars (Part 6)',
jp='「凶と虫-諸星消滅紀」・その6',
es='Tragedia e insectos: el ocaso de las estrellas(VI)',
option_ids=[203, 204, 205],
option_ids=[171, 172, 173],
)
Genius_Society_Regular_Experiments_Part_1 = RogueEventTitle(
id=62,
@ -621,7 +621,7 @@ Genius_Society_Regular_Experiments_Part_1 = RogueEventTitle(
en='Genius Society: Regular Experiments (Part 1)',
jp='「天才クラブ-通常実験」・その1',
es='Círculo de Genios: experimentos cotidianos(I)',
option_ids=[206, 207],
option_ids=[174, 175],
)
Genius_Society_Regular_Experiments_Part_2 = RogueEventTitle(
id=63,
@ -631,7 +631,7 @@ Genius_Society_Regular_Experiments_Part_2 = RogueEventTitle(
en='Genius Society: Regular Experiments (Part 2)',
jp='「天才クラブ-通常実験」・その2',
es='Círculo de Genios: experimentos cotidianos(II)',
option_ids=[208, 209],
option_ids=[176, 177],
)
Genius_Society_Regular_Experiments_Part_3 = RogueEventTitle(
id=64,
@ -641,7 +641,7 @@ Genius_Society_Regular_Experiments_Part_3 = RogueEventTitle(
en='Genius Society: Regular Experiments (Part 3)',
jp='「天才クラブ-通常実験」・その3',
es='Círculo de Genios: experimentos cotidianos(III)',
option_ids=[210, 211],
option_ids=[178, 179],
)
Gondola_Helping_Gods_Part_1 = RogueEventTitle(
id=65,
@ -651,7 +651,7 @@ Gondola_Helping_Gods_Part_1 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 1)',
jp='「ゴンドラ-神を助ける」・その1',
es='Góndola: ¡ayudando a los dioses!(I)',
option_ids=[212, 213],
option_ids=[180, 181],
)
Gondola_Helping_Gods_Part_2 = RogueEventTitle(
id=66,
@ -661,7 +661,7 @@ Gondola_Helping_Gods_Part_2 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 2)',
jp='「ゴンドラ-神を助ける」・その2',
es='Góndola: ¡ayudando a los dioses!(II)',
option_ids=[214, 215],
option_ids=[69, 182],
)
Gondola_Helping_Gods_Part_3 = RogueEventTitle(
id=67,
@ -671,7 +671,7 @@ Gondola_Helping_Gods_Part_3 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 3)',
jp='「ゴンドラ-神を助ける」・その3',
es='Góndola: ¡ayudando a los dioses!(III)',
option_ids=[216, 217],
option_ids=[183, 184],
)
Gondola_Helping_Gods_Part_4 = RogueEventTitle(
id=68,
@ -681,7 +681,7 @@ Gondola_Helping_Gods_Part_4 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 4)',
jp='「ゴンドラ-神を助ける」・その4',
es='Góndola: ¡ayudando a los dioses!(IV)',
option_ids=[218, 219],
option_ids=[185, 186],
)
Gondola_Helping_Gods_Part_5 = RogueEventTitle(
id=69,
@ -691,7 +691,7 @@ Gondola_Helping_Gods_Part_5 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 5)',
jp='「ゴンドラ-神を助ける」・その5',
es='Góndola: ¡ayudando a los dioses!(V)',
option_ids=[220, 221],
option_ids=[187, 188],
)
Gondola_Helping_Gods_Part_6 = RogueEventTitle(
id=70,
@ -701,7 +701,7 @@ Gondola_Helping_Gods_Part_6 = RogueEventTitle(
en='Gondola: Helping Gods! (Part 6)',
jp='「ゴンドラ-神を助ける」・その6',
es='Góndola: ¡ayudando a los dioses!(VI)',
option_ids=[222, 223],
option_ids=[189, 190],
)
Beyond_the_Sky_Choir_Anomaly_Archives_Part_1 = RogueEventTitle(
id=71,
@ -711,7 +711,7 @@ Beyond_the_Sky_Choir_Anomaly_Archives_Part_1 = RogueEventTitle(
en='Beyond the Sky Choir: Anomaly Archives (Part 1)',
jp='「天外聖歌隊-異象紀」・その1',
es='Coro del Firmamento: crónicas sobre anomalías(I)',
option_ids=[224, 225],
option_ids=[191, 192],
)
Beyond_the_Sky_Choir_Anomaly_Archives_Part_2 = RogueEventTitle(
id=72,
@ -721,7 +721,7 @@ Beyond_the_Sky_Choir_Anomaly_Archives_Part_2 = RogueEventTitle(
en='Beyond the Sky Choir: Anomaly Archives (Part 2)',
jp='「天外聖歌隊-異象紀」・その2',
es='Coro del Firmamento: crónicas sobre anomalías(II)',
option_ids=[226, 227],
option_ids=[193, 194],
)
Beyond_the_Sky_Choir_Anomaly_Archives_Part_3 = RogueEventTitle(
id=73,
@ -731,7 +731,7 @@ Beyond_the_Sky_Choir_Anomaly_Archives_Part_3 = RogueEventTitle(
en='Beyond the Sky Choir: Anomaly Archives (Part 3)',
jp='「天外聖歌隊-異象紀」・その3',
es='Coro del Firmamento: crónicas sobre anomalías(III)',
option_ids=[228, 229],
option_ids=[195, 196],
)
The_Architects_Annals_of_Fortification_Part_1 = RogueEventTitle(
id=74,
@ -741,7 +741,7 @@ The_Architects_Annals_of_Fortification_Part_1 = RogueEventTitle(
en='The Architects: Annals of Fortification (Part 1)',
jp='「建創者-修築紀」・その1',
es='Los Arquitectos: anales de la fortificación(I)',
option_ids=[230, 231],
option_ids=[197, 198],
)
The_Architects_Annals_of_Fortification_Part_2 = RogueEventTitle(
id=75,
@ -751,7 +751,7 @@ The_Architects_Annals_of_Fortification_Part_2 = RogueEventTitle(
en='The Architects: Annals of Fortification (Part 2)',
jp='「建創者-修築紀」・その2',
es='Los Arquitectos: anales de la fortificación(II)',
option_ids=[232, 233],
option_ids=[199, 200],
)
The_Architects_Annals_of_Fortification_Part_3 = RogueEventTitle(
id=76,
@ -761,7 +761,7 @@ The_Architects_Annals_of_Fortification_Part_3 = RogueEventTitle(
en='The Architects: Annals of Fortification (Part 3)',
jp='「建創者-修築紀」・その3',
es='Los Arquitectos: anales de la fortificación(III)',
option_ids=[234, 235],
option_ids=[201, 202],
)
Screwllum_Blessing_Store = RogueEventTitle(
id=77,
@ -771,7 +771,7 @@ Screwllum_Blessing_Store = RogueEventTitle(
en="Screwllum's Blessing Store",
jp='スクリューガムの祝福ショップ',
es='Tienda de bendiciones de Tornillum',
option_ids=[236, 237, 238],
option_ids=[6, 7, 8],
)
Herta_Store = RogueEventTitle(
id=78,
@ -781,7 +781,7 @@ Herta_Store = RogueEventTitle(
en="Herta's Store",
jp='ヘルタショップ',
es='Tienda de Herta',
option_ids=[239, 240],
option_ids=[7, 8],
)
Screwllum_Store = RogueEventTitle(
id=79,
@ -791,7 +791,7 @@ Screwllum_Store = RogueEventTitle(
en="Screwllum's Store",
jp='スクリューガムショップ',
es='Tienda de Tornillum',
option_ids=[241],
option_ids=[8],
)
Knights_of_Beauty_to_the_Rescue = RogueEventTitle(
id=80,
@ -801,7 +801,7 @@ Knights_of_Beauty_to_the_Rescue = RogueEventTitle(
en='Knights of Beauty to the Rescue',
jp='純美の騎士の助け',
es='Caballeros de la Belleza al rescate',
option_ids=[242, 243, 244, 245, 246, 247, 248, 249],
option_ids=[203, 204, 205, 206, 207, 208, 209, 210],
)
Cosmic_Crescendo = RogueEventTitle(
id=81,
@ -811,7 +811,7 @@ Cosmic_Crescendo = RogueEventTitle(
en='Cosmic Crescendo',
jp='天外大合唱',
es='Crescendo cósmico',
option_ids=[250, 251, 252],
option_ids=[211, 212, 213],
)
Genius_Society_55_Yu_Qingtu = RogueEventTitle(
id=82,
@ -821,7 +821,7 @@ Genius_Society_55_Yu_Qingtu = RogueEventTitle(
en='Genius Society #55 Yu Qingtu',
jp='天才クラブ#55余清塗',
es='Yu Qingtu, miembro n.º 55 del Círculo de Genios',
option_ids=[253, 254, 255, 256, 257, 258, 259, 260, 261],
option_ids=[214, 215, 216, 217, 218, 219, 220, 221, 222],
)
Beast_Horde_Voracious_Catastrophe = RogueEventTitle(
id=83,
@ -831,7 +831,7 @@ Beast_Horde_Voracious_Catastrophe = RogueEventTitle(
en='Beast Horde: Voracious Catastrophe',
jp='獣の群れ・貪慾の災厄',
es='Horda de bestias: catástrofe voraz',
option_ids=[262, 263, 264],
option_ids=[223, 224, 225],
)
The_Curio_Fixer = RogueEventTitle(
id=84,
@ -841,7 +841,7 @@ The_Curio_Fixer = RogueEventTitle(
en='The Curio Fixer',
jp='奇物修理エキスパート',
es='Reparador de objetos raros',
option_ids=[265, 266, 267, 268, 269],
option_ids=[226, 227, 228, 229, 230],
)
Showman_Sleight = RogueEventTitle(
id=85,
@ -851,7 +851,7 @@ Showman_Sleight = RogueEventTitle(
en="Showman's Sleight",
jp='伶人の手品',
es='El truco del actor',
option_ids=[270, 271],
option_ids=[231, 232],
)
The_Double_Lottery_Experience = RogueEventTitle(
id=86,
@ -861,7 +861,7 @@ The_Double_Lottery_Experience = RogueEventTitle(
en='The Double Lottery Experience',
jp='ダブルロッタリー体験',
es='La experiencia de la doble lotería',
option_ids=[272, 273, 274],
option_ids=[69, 233, 234],
)
Ruan_Mei_Part_2 = RogueEventTitle(
id=87,
@ -871,7 +871,7 @@ Ruan_Mei_Part_2 = RogueEventTitle(
en='Ruan Mei (Part 2)',
jp='ルアン・メェイ2',
es='Ruan Mei II',
option_ids=[275, 276, 277],
option_ids=[1, 235, 236],
)
The_Perfect_Grand_Challenge = RogueEventTitle(
id=88,
@ -881,7 +881,7 @@ The_Perfect_Grand_Challenge = RogueEventTitle(
en='The *Perfect* Grand Challenge!',
jp='※完璧※大挑戦!',
es='¡El gran desafío perfecto!',
option_ids=[278, 279, 280, 281],
option_ids=[127, 237, 238, 239],
)
The_IPC_Promotion_Saga_Part_1 = RogueEventTitle(
id=89,
@ -891,7 +891,7 @@ The_IPC_Promotion_Saga_Part_1 = RogueEventTitle(
en='The IPC Promotion Saga (Part 1)',
jp='スターピースカンパニー「昇進記」1',
es='La saga del ascenso de la Corporación I',
option_ids=[282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296],
option_ids=[240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254],
)
The_IPC_Promotion_Saga_Part_2 = RogueEventTitle(
id=90,
@ -901,7 +901,7 @@ The_IPC_Promotion_Saga_Part_2 = RogueEventTitle(
en='The IPC Promotion Saga (Part 2)',
jp='スターピースカンパニー「昇進記」2',
es='La saga del ascenso de la Corporación II',
option_ids=[297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310],
option_ids=[241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254],
)
The_IPC_Promotion_Saga_Part_3 = RogueEventTitle(
id=91,
@ -911,7 +911,7 @@ The_IPC_Promotion_Saga_Part_3 = RogueEventTitle(
en='The IPC Promotion Saga (Part 3)',
jp='スターピースカンパニー「昇進記」3',
es='La saga del ascenso de la Corporación III',
option_ids=[311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323],
option_ids=[242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254],
)
The_IPC_Promotion_Saga_Part_4 = RogueEventTitle(
id=92,
@ -921,7 +921,7 @@ The_IPC_Promotion_Saga_Part_4 = RogueEventTitle(
en='The IPC Promotion Saga (Part 4)',
jp='スターピースカンパニー「昇進記」4',
es='La saga del ascenso de la Corporación IV',
option_ids=[324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335],
option_ids=[243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254],
)
Ka_ching_IPC_Banking_Part_1 = RogueEventTitle(
id=93,
@ -931,7 +931,7 @@ Ka_ching_IPC_Banking_Part_1 = RogueEventTitle(
en='Ka-ching! IPC Banking (Part 1)',
jp='カチャッ――スターピース銀行1',
es='El banco de la Corporación I',
option_ids=[336, 337, 338, 339, 340],
option_ids=[127, 255, 256, 257, 258],
)
Ka_ching_IPC_Banking_Part_2 = RogueEventTitle(
id=94,
@ -941,7 +941,7 @@ Ka_ching_IPC_Banking_Part_2 = RogueEventTitle(
en='Ka-ching! IPC Banking (Part 2)',
jp='カチャッ――スターピース銀行2',
es='El banco de la Corporación II',
option_ids=[341, 342, 343, 344, 345],
option_ids=[127, 255, 256, 257, 258],
)
Loneliness_Costic_Beauty_Bugs_Simulated_Universe_Part_1 = RogueEventTitle(
id=95,
@ -951,7 +951,7 @@ Loneliness_Costic_Beauty_Bugs_Simulated_Universe_Part_1 = RogueEventTitle(
en='Loneliness, Costic Beauty Bugs, Simulated Universe (Part 1)',
jp='孤独、宇宙の美虫、模擬宇宙1',
es='Soledad, gusanos espaciales y el Universo Simulado I',
option_ids=[346, 347, 348, 349, 350, 351, 352, 353],
option_ids=[69, 259, 260, 261, 262, 263, 264, 265],
)
Loneliness_Costic_Beauty_Bugs_Simulated_Universe_Part_2 = RogueEventTitle(
id=96,
@ -961,7 +961,7 @@ Loneliness_Costic_Beauty_Bugs_Simulated_Universe_Part_2 = RogueEventTitle(
en='Loneliness, Costic Beauty Bugs, Simulated Universe (Part 2)',
jp='孤独、宇宙の美虫、模擬宇宙2',
es='Soledad, gusanos espaciales y el Universo Simulado II',
option_ids=[354, 355, 356, 357, 358, 359, 360],
option_ids=[69, 260, 261, 262, 263, 264, 265],
)
Ace_Trash_Digger = RogueEventTitle(
id=97,
@ -971,7 +971,7 @@ Ace_Trash_Digger = RogueEventTitle(
en='Ace Trash Digger',
jp='ゴミ箱あさりの達人',
es='Gran rebuscador de la basura',
option_ids=[361, 362, 363, 364],
option_ids=[230, 266, 267, 268],
)
Swarm_Slumbering_Overlord_First_Praetorian = RogueEventTitle(
id=98,
@ -981,7 +981,7 @@ Swarm_Slumbering_Overlord_First_Praetorian = RogueEventTitle(
en='Swarm: Slumbering Overlord (First Praetorian)',
jp='虫の潮・深眠の領主(一級守備)',
es='Enjambre: Cacique dormido (primer pretoriano)',
option_ids=[365, 366, 367, 368, 369, 370],
option_ids=[230, 269, 270, 271, 272, 273],
)
Swarm_Slumbering_Overlord_Second_Praetorian = RogueEventTitle(
id=99,
@ -991,7 +991,7 @@ Swarm_Slumbering_Overlord_Second_Praetorian = RogueEventTitle(
en='Swarm: Slumbering Overlord (Second Praetorian)',
jp='虫の潮・深眠の領主(二級守備)',
es='Enjambre: Cacique dormido (segundo pretoriano)',
option_ids=[371, 372, 373, 374, 375],
option_ids=[230, 270, 271, 272, 273],
)
Swarm_Slumbering_Overlord_Third_Praetorian = RogueEventTitle(
id=100,
@ -1001,7 +1001,7 @@ Swarm_Slumbering_Overlord_Third_Praetorian = RogueEventTitle(
en='Swarm: Slumbering Overlord (Third Praetorian)',
jp='虫の潮・深眠の領主(三級守備)',
es='Enjambre: Cacique dormido (tercer pretoriano)',
option_ids=[376, 377, 378, 379],
option_ids=[230, 271, 272, 273],
)
Propagation_Slumbering_Overlord_First_Praetorian = RogueEventTitle(
id=101,
@ -1011,7 +1011,7 @@ Propagation_Slumbering_Overlord_First_Praetorian = RogueEventTitle(
en='Propagation: Slumbering Overlord (First Praetorian)',
jp='繁殖・深眠の領主(一級守備)',
es='Propagación: Cacique dormido (primer pretoriano)',
option_ids=[380, 381],
option_ids=[274, 275],
)
Propagation_Slumbering_Overlord_Second_Praetorian = RogueEventTitle(
id=102,
@ -1021,7 +1021,7 @@ Propagation_Slumbering_Overlord_Second_Praetorian = RogueEventTitle(
en='Propagation: Slumbering Overlord (Second Praetorian)',
jp='繁殖・深眠の領主(二級守備)',
es='Propagación: Cacique dormido (segundo pretoriano)',
option_ids=[382, 383],
option_ids=[274, 275],
)
Propagation_Slumbering_Overlord_Third_Praetorian = RogueEventTitle(
id=103,
@ -1031,7 +1031,7 @@ Propagation_Slumbering_Overlord_Third_Praetorian = RogueEventTitle(
en='Propagation: Slumbering Overlord (Third Praetorian)',
jp='繁殖・深眠の領主(三級守備)',
es='Propagación: Cacique dormido (tercer pretoriano)',
option_ids=[384, 385],
option_ids=[274, 275],
)
Swarm_Nest_Exploration_First_Praetorian = RogueEventTitle(
id=104,
@ -1041,7 +1041,7 @@ Swarm_Nest_Exploration_First_Praetorian = RogueEventTitle(
en='Swarm: Nest Exploration (First Praetorian)',
jp='虫の潮・虫の巣探険(一級守備)',
es='Enjambre: Exploración del nido (primer pretoriano)',
option_ids=[386, 387, 388],
option_ids=[276, 277, 278],
)
Swarm_Nest_Exploration_Second_Praetorian = RogueEventTitle(
id=105,
@ -1051,7 +1051,7 @@ Swarm_Nest_Exploration_Second_Praetorian = RogueEventTitle(
en='Swarm: Nest Exploration (Second Praetorian)',
jp='虫の潮・虫の巣探険(二級守備)',
es='Enjambre: Exploración del nido (segundo pretoriano)',
option_ids=[389, 390, 391],
option_ids=[276, 277, 278],
)
Swarm_Nest_Exploration_Third_Praetorian = RogueEventTitle(
id=106,
@ -1061,7 +1061,7 @@ Swarm_Nest_Exploration_Third_Praetorian = RogueEventTitle(
en='Swarm: Nest Exploration (Third Praetorian)',
jp='虫の潮・虫の巣探険(三級守備)',
es='Enjambre: Exploración del nido (tercer pretoriano)',
option_ids=[392, 393, 394],
option_ids=[276, 277, 278],
)
Propagation_Nest_Exploration_First_Praetorian = RogueEventTitle(
id=107,
@ -1071,7 +1071,7 @@ Propagation_Nest_Exploration_First_Praetorian = RogueEventTitle(
en='Propagation: Nest Exploration (First Praetorian)',
jp='繁殖・虫の巣探険(一級守備)',
es='Propagación: Exploración del nido (primer pretoriano)',
option_ids=[395, 396],
option_ids=[279, 280],
)
Propagation_Nest_Exploration_Second_Praetorian = RogueEventTitle(
id=108,
@ -1081,7 +1081,7 @@ Propagation_Nest_Exploration_Second_Praetorian = RogueEventTitle(
en='Propagation: Nest Exploration (Second Praetorian)',
jp='繁殖・虫の巣探険(二級守備)',
es='Propagación: Exploración del nido (segundo pretoriano)',
option_ids=[397, 398],
option_ids=[279, 280],
)
Swarm_Mind_of_the_Domain_First_Praetorian = RogueEventTitle(
id=109,
@ -1091,7 +1091,7 @@ Swarm_Mind_of_the_Domain_First_Praetorian = RogueEventTitle(
en='Swarm: Mind of the Domain (First Praetorian)',
jp='虫の潮・区域脳(一級守備)',
es='Enjambre: Mente de zona (primer pretoriano)',
option_ids=[399, 400, 401, 402, 403],
option_ids=[281, 282, 283, 284, 285],
)
Swarm_Mind_of_the_Domain_Second_Praetorian = RogueEventTitle(
id=110,
@ -1101,7 +1101,7 @@ Swarm_Mind_of_the_Domain_Second_Praetorian = RogueEventTitle(
en='Swarm: Mind of the Domain (Second Praetorian)',
jp='虫の潮・区域脳(二級守備)',
es='Enjambre: Mente de zona (segundo pretoriano)',
option_ids=[404, 405, 406, 407],
option_ids=[282, 283, 284, 285],
)
Swarm_Mind_of_the_Domain_Third_Praetorian = RogueEventTitle(
id=111,
@ -1111,7 +1111,7 @@ Swarm_Mind_of_the_Domain_Third_Praetorian = RogueEventTitle(
en='Swarm: Mind of the Domain (Third Praetorian)',
jp='虫の潮・区域脳(三級守備)',
es='Enjambre: Mente de zona (tercer pretoriano)',
option_ids=[408, 409, 410],
option_ids=[283, 284, 285],
)
Insights_from_the_Universal_Dancer = RogueEventTitle(
id=112,
@ -1121,7 +1121,7 @@ Insights_from_the_Universal_Dancer = RogueEventTitle(
en='Insights from the Universal Dancer',
jp='世界の踊り手の啓示',
es='Reflexiones del bailarín universal',
option_ids=[411, 412],
option_ids=[286, 287],
)
Pixel_World_Hidden_Stage = RogueEventTitle(
id=113,
@ -1131,7 +1131,7 @@ Pixel_World_Hidden_Stage = RogueEventTitle(
en='Pixel World: Hidden Stage',
jp='ピクセルワールド・隠しステージ',
es='Mundo de píxeles: Mecanismo invisible',
option_ids=[413, 414, 415],
option_ids=[288, 289, 290],
)
Mirror_of_Transcendence = RogueEventTitle(
id=114,
@ -1141,7 +1141,7 @@ Mirror_of_Transcendence = RogueEventTitle(
en='Mirror of Transcendence',
jp='超越の鏡',
es='Espejo de la Trascendencia',
option_ids=[416, 417, 418, 419, 420, 421],
option_ids=[61, 291, 292, 293, 294, 295],
)
The_Cuckoo_Clock_Fanatic_Part_1 = RogueEventTitle(
id=115,
@ -1151,7 +1151,7 @@ The_Cuckoo_Clock_Fanatic_Part_1 = RogueEventTitle(
en='The Cuckoo Clock Fanatic (Part 1)',
jp='鳩時計の熱狂的ファン1',
es='El fanático del reloj de cuco I',
option_ids=[422, 423, 424],
option_ids=[296, 297, 298],
)
The_Cuckoo_Clock_Fanatic_Part_2 = RogueEventTitle(
id=116,
@ -1161,7 +1161,7 @@ The_Cuckoo_Clock_Fanatic_Part_2 = RogueEventTitle(
en='The Cuckoo Clock Fanatic (Part 2)',
jp='鳩時計の熱狂的ファン2',
es='El fanático del reloj de cuco II',
option_ids=[425, 426],
option_ids=[297, 298],
)
The_Cuckoo_Clock_Fanatic_Part_3 = RogueEventTitle(
id=117,
@ -1171,5 +1171,5 @@ The_Cuckoo_Clock_Fanatic_Part_3 = RogueEventTitle(
en='The Cuckoo Clock Fanatic (Part 3)',
jp='鳩時計の熱狂的ファン3',
es='El fanático del reloj de cuco III',
option_ids=[427],
option_ids=[298],
)