Clean up some of the vocab at iltrof's recomendation

This commit is contained in:
dazedanon 2025-05-19 17:45:49 -05:00
parent 12acc67678
commit 5eb08f57ed
2 changed files with 66 additions and 71 deletions

View file

@ -94,7 +94,7 @@ CODE300 = False
CODE250 = False CODE250 = False
# Database # Database
SCENARIOFLAG = True SCENARIOFLAG = False
OPTIONSFLAG = False OPTIONSFLAG = False
NPCFLAG = False NPCFLAG = False
DBNAMEFLAG = False DBNAMEFLAG = False
@ -104,7 +104,7 @@ STATEFLAG = False
ENEMYFLAG = False ENEMYFLAG = False
ARMORFLAG = False ARMORFLAG = False
WEAPONFLAG = False WEAPONFLAG = False
SKILLFLAG = False SKILLFLAG = True
def handleWOLF(filename, estimate): def handleWOLF(filename, estimate):
@ -592,7 +592,7 @@ def searchCodes(events, pbar, jobList, filename):
codeList[i]["stringArgs"][1] = translatedText codeList[i]["stringArgs"][1] = translatedText
# Dialogue # Dialogue
elif codeList[i]["stringArgs"][0] == "infomessage": elif codeList[i]["stringArgs"][0] == "BTLmessage":
jaString = codeList[i]["stringArgs"][1] jaString = codeList[i]["stringArgs"][1]
# Pass 1 # Pass 1
@ -677,12 +677,12 @@ def searchCodes(events, pbar, jobList, filename):
if codeList[i]["code"] == 250 and CODE250 == True: if codeList[i]["code"] == 250 and CODE250 == True:
# Validate size # Validate size
if len(codeList[i]["stringArgs"]) == 4: if len(codeList[i]["stringArgs"]) == 4:
if codeList[i]["stringArgs"][1] == "万能ウィンドウ一時DB" and codeList[i]["stringArgs"][0] != "": if codeList[i]["stringArgs"][1] == "item" and codeList[i]["stringArgs"][2] != "":
# Font Size # Font Size
fontSize = 0 fontSize = 0
# Grab String # Grab String
jaString = codeList[i]["stringArgs"][0] jaString = codeList[i]["stringArgs"][2]
# Remove Textwrap # Remove Textwrap
# jaString = jaString.replace("\r", "") # jaString = jaString.replace("\r", "")
@ -709,9 +709,7 @@ def searchCodes(events, pbar, jobList, filename):
translatedText = f"\\f[{fontSize}]{translatedText}" translatedText = f"\\f[{fontSize}]{translatedText}"
# Set Data # Set Data
codeList[i]["stringArgs"][0] = translatedText codeList[i]["stringArgs"][2] = translatedText
### Iterate ### Iterate
i += 1 i += 1
@ -866,7 +864,7 @@ def formatDramon(jaString):
def handleScenarioScript(jaString, scriptString=""): def handleScenarioScript(jaString, scriptString=""):
# Extract Speaker # Extract Speaker
scriptRegex = r"\n?(//.*?\n|//.+|/b.*?\n|[\w]+\d*.+?\n)" scriptRegex = r"\n?(//.*?\n|//.*|/b.*?\n|[\w]+\d*.*?\n)"
match = re.search(scriptRegex, jaString) match = re.search(scriptRegex, jaString)
if match: if match:
if "//" in match.group(1): if "//" in match.group(1):
@ -928,7 +926,7 @@ def searchDB(events, pbar, jobList, filename):
try: try:
for table in tableList: for table in tableList:
# Grab Armors # Grab Armors
if table["name"] == "立絵画像" and NPCFLAG == True: if table["name"] == "NPC" and NPCFLAG == True:
with open("translations.txt", "a", encoding="utf-8") as file: with open("translations.txt", "a", encoding="utf-8") as file:
if setData: if setData:
file.write(f"\n#Actors\n") file.write(f"\n#Actors\n")
@ -938,7 +936,7 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "キャラ名" in dataList[j].get("name"): if dataList[j].get("name") == "NPC名":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -955,7 +953,7 @@ def searchDB(events, pbar, jobList, filename):
npcList[0].pop(0) npcList[0].pop(0)
# Description # Description
if "肩書き" in dataList[j].get("name"): if dataList[j].get("name") == "NULL":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -988,9 +986,9 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "羞恥心100以下" in dataList[j].get("name"): if dataList[j].get("name") == "転生ちゃん淫乱":
if dataList[j].get("value"): if dataList[j].get("value"):
jaStringList = dataList[j].get("value").split("\r\n\r\n") jaStringList = re.split(r'\r\n\r\n|\n\n', dataList[j].get("value"))
for jaString in jaStringList: for jaString in jaStringList:
speakerNum = None speakerNum = None
ogString = jaString ogString = jaString
@ -1046,9 +1044,9 @@ def searchDB(events, pbar, jobList, filename):
# Set Data # Set Data
dataList[j].update({"value": dataList[j].get("value").replace(ogString, translatedText)}) dataList[j].update({"value": dataList[j].get("value").replace(ogString, translatedText)})
# Description # Description
if "80以下" in dataList[j].get("name"): if dataList[j].get("name") == "転生ちゃん私服":
if dataList[j].get("value"): if dataList[j].get("value"):
jaStringList = dataList[j].get("value").split("\r\n\r\n") jaStringList = re.split(r'\r\n\r\n|\n\n', dataList[j].get("value"))
for jaString in jaStringList: for jaString in jaStringList:
speakerNum = None speakerNum = None
ogString = jaString ogString = jaString
@ -1105,9 +1103,9 @@ def searchDB(events, pbar, jobList, filename):
dataList[j].update({"value": dataList[j].get("value").replace(ogString, translatedText)}) dataList[j].update({"value": dataList[j].get("value").replace(ogString, translatedText)})
# Description # Description
if "60以下" in dataList[j].get("name"): if dataList[j].get("name") == "転生ちゃん裸":
if dataList[j].get("value"): if dataList[j].get("value"):
jaStringList = dataList[j].get("value").split("\r\n\r\n") jaStringList = re.split(r'\r\n\r\n|\n\n', dataList[j].get("value"))
for jaString in jaStringList: for jaString in jaStringList:
speakerNum = None speakerNum = None
ogString = jaString ogString = jaString
@ -1171,7 +1169,7 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "表記用マップ名" in dataList[j].get("name"): if dataList[j].get("name") == "表記用マップ名":
if dataList[j].get("value"): if dataList[j].get("value"):
jaString = dataList[j].get("value") jaString = dataList[j].get("value")
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
@ -1187,7 +1185,7 @@ def searchDB(events, pbar, jobList, filename):
dataList[j].update({"value": dataList[j].get("value").replace(jaString, translatedText)}) dataList[j].update({"value": dataList[j].get("value").replace(jaString, translatedText)})
# Description 1 # Description 1
if "プロフ" in dataList[j].get("name"): if dataList[j].get("name") == "プロフ":
if dataList[j].get("value"): if dataList[j].get("value"):
jaString = dataList[j].get("value") jaString = dataList[j].get("value")
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
@ -1204,7 +1202,7 @@ def searchDB(events, pbar, jobList, filename):
dataList[j].update({"value": dataList[j].get("value").replace(jaString, translatedText)}) dataList[j].update({"value": dataList[j].get("value").replace(jaString, translatedText)})
# Description 2 # Description 2
if "防御破壊文言" in dataList[j].get("name"): if dataList[j].get("name") == "防御破壊文言":
if dataList[j].get("value"): if dataList[j].get("value"):
jaString = dataList[j].get("value") jaString = dataList[j].get("value")
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
@ -1294,7 +1292,7 @@ def searchDB(events, pbar, jobList, filename):
for j in range(len(dataList)): for j in range(len(dataList)):
font = None font = None
# Name # Name
if "名前" in dataList[j].get("name"): if dataList[j].get("name") == "名前":
jaString = dataList[j].get("value") jaString = dataList[j].get("value")
if jaString != "": if jaString != "":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
@ -1312,7 +1310,7 @@ def searchDB(events, pbar, jobList, filename):
itemList[0].pop(0) itemList[0].pop(0)
# Description # Description
if "説明" in dataList[j].get("name"): if dataList[j].get("name") == "説明":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1340,7 +1338,7 @@ def searchDB(events, pbar, jobList, filename):
itemList[1].pop(0) itemList[1].pop(0)
# Log # Log
if "使用時文章" in dataList[j].get("name"): if dataList[j].get("name") == "使用時文章":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1378,7 +1376,7 @@ def searchDB(events, pbar, jobList, filename):
itemList[2].pop(0) itemList[2].pop(0)
# Description # Description
if "使用時文章[戦](人名~" in dataList[j].get("name"): if dataList[j].get("name") == "使用時文章[戦](人名~":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1414,7 +1412,7 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "名前" in dataList[j].get("name"): if dataList[j].get("name") == "名前":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1427,7 +1425,7 @@ def searchDB(events, pbar, jobList, filename):
armorList[0].pop(0) armorList[0].pop(0)
# Description # Description
if "説明" in dataList[j].get("name"): if dataList[j].get("name") == "説明":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1455,14 +1453,14 @@ def searchDB(events, pbar, jobList, filename):
armorList[1].pop(0) armorList[1].pop(0)
# Grab Enemies # Grab Enemies
if table["name"] == "キャラ個体データ" and ENEMYFLAG == True: if table["name"] == "" and ENEMYFLAG == True:
for enemy in table["data"]: for enemy in table["data"]:
dataList = enemy["data"] dataList = enemy["data"]
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "敵キャラ名" in dataList[j].get("name"): if dataList[j].get("name") == "名前":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1475,7 +1473,7 @@ def searchDB(events, pbar, jobList, filename):
enemyList[0].pop(0) enemyList[0].pop(0)
# Description # Description
if "NULL" in dataList[j].get("name"): if dataList[j].get("name") == "NULL":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1508,7 +1506,7 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "武器の名前" in dataList[j].get("name"): if dataList[j].get("name") == "武器の名前":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1521,7 +1519,7 @@ def searchDB(events, pbar, jobList, filename):
weaponsList[0].pop(0) weaponsList[0].pop(0)
# Description # Description
if "武器の説明" in dataList[j].get("name"): if dataList[j].get("name") == "武器の説明":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1549,14 +1547,14 @@ def searchDB(events, pbar, jobList, filename):
weaponsList[1].pop(0) weaponsList[1].pop(0)
# Grab Skills # Grab Skills
if table["name"] == "技能" and SKILLFLAG == True: if table["name"] == "ステート" and SKILLFLAG == True:
for skill in table["data"]: for skill in table["data"]:
dataList = skill["data"] dataList = skill["data"]
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "名前" in dataList[j].get("name"): if dataList[j].get("name") == "付与時文章":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1569,7 +1567,7 @@ def searchDB(events, pbar, jobList, filename):
skillList[0].pop(0) skillList[0].pop(0)
# Description # Description
if "説明" in dataList[j].get("name"): if dataList[j].get("name") == "解除時文章":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1594,7 +1592,7 @@ def searchDB(events, pbar, jobList, filename):
skillList[1].pop(0) skillList[1].pop(0)
# Log # Log
if "発動時文章" in dataList[j].get("name"): if dataList[j].get("name") == "発動時文章":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1632,7 +1630,7 @@ def searchDB(events, pbar, jobList, filename):
skillList[2].pop(0) skillList[2].pop(0)
# Log # Log
if "使用時文章[戦闘](人名~" in dataList[j].get("name"): if dataList[j].get("name") == "使用時文章[戦闘](人名~":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1670,7 +1668,7 @@ def searchDB(events, pbar, jobList, filename):
skillList[3].pop(0) skillList[3].pop(0)
# Log # Log
if "失敗時文章[(対象)]" in dataList[j].get("name"): if dataList[j].get("name") == "失敗時文章[(対象)]":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1715,7 +1713,7 @@ def searchDB(events, pbar, jobList, filename):
# Parse # Parse
for j in range(len(dataList)): for j in range(len(dataList)):
# Name # Name
if "状態名" in dataList[j].get("name"): if dataList[j].get("name") == "状態名":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1728,7 +1726,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[0].pop(0) stateList[0].pop(0)
# Description # Description
if "表示名" in dataList[j].get("name"): if dataList[j].get("name") == "表示名":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1753,7 +1751,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[1].pop(0) stateList[1].pop(0)
# Log # Log
if "発生時の文章[(人名)]" in dataList[j].get("name"): if dataList[j].get("name") == "発生時の文章[(人名)]":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1791,7 +1789,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[2].pop(0) stateList[2].pop(0)
# Log # Log
if "行動制限時文章(空欄:ナシ" in dataList[j].get("name"): if dataList[j].get("name") == "行動制限時文章(空欄:ナシ":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1829,7 +1827,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[3].pop(0) stateList[3].pop(0)
# Log # Log
if "回復時の文章[(人名)]" in dataList[j].get("name"): if dataList[j].get("name") == "回復時の文章[(人名)]":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1866,7 +1864,7 @@ def searchDB(events, pbar, jobList, filename):
dataList[j].update({"value": translatedText}) dataList[j].update({"value": translatedText})
stateList[4].pop(0) stateList[4].pop(0)
# Log # Log
if "┣ カウンター発動文[対象~" in dataList[j].get("name"): if dataList[j].get("name") == "┣ カウンター発動文[対象~":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1904,7 +1902,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[5].pop(0) stateList[5].pop(0)
# Log # Log
if "尻もち 行動不能 持続3ターン" in dataList[j].get("name"): if dataList[j].get("name") == "尻もち 行動不能 持続3ターン":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":
@ -1942,7 +1940,7 @@ def searchDB(events, pbar, jobList, filename):
stateList[6].pop(0) stateList[6].pop(0)
# Log # Log
if "状態異常の説明" in dataList[j].get("name"): if dataList[j].get("name") == "状態異常の説明":
# Pass 1 (Grab Data) # Pass 1 (Grab Data)
if setData == False: if setData == False:
if dataList[j].get("value") != "": if dataList[j].get("value") != "":

View file

@ -135,33 +135,29 @@ Here are some vocabulary and terms so that you know the proper spelling and tran
イラマチオ (irrumatio) イラマチオ (irrumatio)
理性 (Sanity) 理性 (Sanity)
性欲 (Libido) 性欲 (Libido)
子宮の状態 (Uterus St.) 子宮の状態 (Womb St.)
最後の相手 (Last Partner) 最後の相手 (Last Partner)
陰茎の長さ (Penis Length) 陰茎の長さ (Penis Length)
射精量 (Total Cum) 射精量 (Cum Amount)
絶頂回数 (Orgasm) 絶頂回数 (Orgasms)
搾精回数 (Semen Milked) 搾精回数 (Ejaculations)
経験人数 (Partners) 経験人数 (Partners)
膣内射精 (Creampie) 膣内射精 (Creampie)
膣外射精 (Non-Creampie) 膣外射精 (Non-Creampie)
アナル (Anal) アナル (Anal)
パイズリ (Paizuri) パイズリ (Titjob)
フェラ (Blowjob) フェラ (Blowjob)
手コキ (Handjob) 手コキ (Handjob)
太もも (Thighjob) 太もも (Thighs)
尻コキ (Assjob) 尻コキ (Assjob)
ぶっかけ (Cumshot) ぶっかけ (Cumshot)
おさわり (Touched)
受精 (Fertilized) 受精 (Fertilized)
出産 (Births) 出産 (Childbirth)
子宮 (Womb) 子宮 (Womb)
股触られ (Fingered)
乳揉まれ (Fondled) 乳揉まれ (Fondled)
尻揉まれ (Ass Groped) 尻揉まれ (Ass Groped)
乳首 (Nipples) 乳首 (Nipples)
キス (Kiss) キス (Kiss)
舐めた (Lick)
舐められ (Licked By)
衣装ごとの性行為回数 (Sex Acts per Outfit) 衣装ごとの性行為回数 (Sex Acts per Outfit)
回 (x) 回 (x)
人 (x) 人 (x)
@ -175,7 +171,6 @@ Here are some vocabulary and terms so that you know the proper spelling and tran
先輩 (senpai) 先輩 (senpai)
せんぱい (senpai) せんぱい (senpai)
先生 (sensei) 先生 (sensei)
師匠 (shishou)
せんせい (sensei) せんせい (sensei)
にいさん (nii-san) にいさん (nii-san)
兄さん (nii-san) 兄さん (nii-san)
@ -185,7 +180,7 @@ Here are some vocabulary and terms so that you know the proper spelling and tran
お姉ちゃん (onee-chan) お姉ちゃん (onee-chan)
お姉ちゃん (onee-chan) お姉ちゃん (onee-chan)
ねえさん (nee-san) ねえさん (nee-san)
おじさん (uncle) おじさん (old man)
# Terms # Terms
初めから (Start) 初めから (Start)
@ -209,11 +204,12 @@ ME 音量 (ME Volume)
信仰心 (Faith) 信仰心 (Faith)
会話 (Conversation) 会話 (Conversation)
収集 (Collect) 収集 (Collect)
討伐 (Subjugate) 討伐 (Hunt)
破滅 (Destruction) 破滅 (Destruction)
魂 (Soul) 魂 (Soul)
巫女 (Shrine Maiden) 巫女 (Shrine Maiden)
刀 (Sword) 刀 (Blade)
剣 (Sword)
龍神神社 (Dragon God Shrine) 龍神神社 (Dragon God Shrine)
忍び (Shinobi) 忍び (Shinobi)
大魔導士 (Archmage) 大魔導士 (Archmage)
@ -223,16 +219,17 @@ ME 音量 (ME Volume)
紅蓮 (Vermilion) 紅蓮 (Vermilion)
# Demons/Angels/Monsters # Demons/Angels/Monsters
悪魔 (Devil) 悪魔 (Demon)
上級悪魔 (Arch Devil) 上級悪魔 (Arch Demon)
歪魔 (Distorted Devil) 歪魔 (Distorted Demon)
魔神 (Demon) 魔神 (Devil)
魔人 (Majin) 魔人 (Demon)
睡魔 (Mare) 睡魔 (Mare)
淫魔 (Succubus) 淫魔 (Succubus)
夢魔 (Succubus)
天使 (Angel) 天使 (Angel)
大天使 (Archangel) 大天使 (Archangel)
権天使 (Ruler) 権天使 (Principality)
能天使 (Power) 能天使 (Power)
力天使 (Virtue) 力天使 (Virtue)
主天使 (Dominion) 主天使 (Dominion)
@ -246,9 +243,7 @@ ME 音量 (ME Volume)
幽霊 (Ghost) 幽霊 (Ghost)
幽鬼 (Revenant) 幽鬼 (Revenant)
デーモン (Daemon) デーモン (Daemon)
ローバー (Roper) ローパー (Roper)
夢魔 (Succubus)
拘束無し (No Restraints)
人間 (Human) 人間 (Human)
人型 (Humanoid) 人型 (Humanoid)
獣型 (Beast) 獣型 (Beast)
@ -259,7 +254,6 @@ ME 音量 (ME Volume)
竜 (Dragon) 竜 (Dragon)
吸血鬼 (Vampire) 吸血鬼 (Vampire)
ドワーフ (Dwarf) ドワーフ (Dwarf)
神族 (Divine)
# Other # Other
w ((lol)) w ((lol))
@ -267,4 +261,7 @@ w ((lol))
『 (『) 『 (『)
』 (』) 』 (』)
# Game Specific
神族 (Divine)
``` ```