refactor name logic
This commit is contained in:
197
src/classes/name.py
Normal file
197
src/classes/name.py
Normal file
@@ -0,0 +1,197 @@
|
||||
import random
|
||||
from typing import Optional
|
||||
from dataclasses import dataclass
|
||||
|
||||
from src.utils.df import game_configs
|
||||
from src.classes.avatar import Gender
|
||||
|
||||
|
||||
@dataclass
|
||||
class LastName:
|
||||
"""姓氏"""
|
||||
name: str
|
||||
sect: Optional[str]
|
||||
|
||||
@dataclass
|
||||
class GivenName:
|
||||
"""名字"""
|
||||
name: str
|
||||
gender: Gender
|
||||
sect: Optional[str]
|
||||
|
||||
|
||||
class NameManager:
|
||||
"""姓名管理器"""
|
||||
|
||||
def __init__(self):
|
||||
# 散修通用姓氏
|
||||
self.common_last_names: list[str] = []
|
||||
# 按宗门分类的姓氏 {宗门名: [姓氏列表]}
|
||||
self.sect_last_names: dict[str, list[str]] = {}
|
||||
|
||||
# 散修通用名字 {Gender: [名字列表]}
|
||||
self.common_given_names: dict[Gender, list[str]] = {
|
||||
Gender.MALE: [],
|
||||
Gender.FEMALE: []
|
||||
}
|
||||
# 按宗门和性别分类的名字 {宗门名: {Gender: [名字列表]}}
|
||||
self.sect_given_names: dict[str, dict[Gender, list[str]]] = {}
|
||||
|
||||
self._load_names()
|
||||
|
||||
def _load_names(self):
|
||||
"""从CSV加载姓名数据"""
|
||||
# 加载姓氏
|
||||
last_name_df = game_configs["last_name"]
|
||||
for _, row in last_name_df.iterrows():
|
||||
name = str(row["last_name"]).strip()
|
||||
sect = str(row.get("sect", "")).strip() if row.get("sect") and str(row.get("sect")) != "nan" else None
|
||||
|
||||
if sect:
|
||||
if sect not in self.sect_last_names:
|
||||
self.sect_last_names[sect] = []
|
||||
self.sect_last_names[sect].append(name)
|
||||
else:
|
||||
self.common_last_names.append(name)
|
||||
|
||||
# 加载名字
|
||||
given_name_df = game_configs["given_name"]
|
||||
for _, row in given_name_df.iterrows():
|
||||
name = str(row["given_name"]).strip()
|
||||
gender_str = str(row["gender"]).strip()
|
||||
gender = Gender.MALE if gender_str == "男" else Gender.FEMALE
|
||||
sect = str(row.get("sect", "")).strip() if row.get("sect") and str(row.get("sect")) != "nan" else None
|
||||
|
||||
if sect:
|
||||
if sect not in self.sect_given_names:
|
||||
self.sect_given_names[sect] = {Gender.MALE: [], Gender.FEMALE: []}
|
||||
self.sect_given_names[sect][gender].append(name)
|
||||
else:
|
||||
self.common_given_names[gender].append(name)
|
||||
|
||||
def get_random_last_name(self, sect_name: Optional[str] = None) -> str:
|
||||
"""
|
||||
获取随机姓氏
|
||||
|
||||
Args:
|
||||
sect_name: 宗门名称,如果为None则从散修姓氏中选择
|
||||
|
||||
Returns:
|
||||
姓氏字符串
|
||||
"""
|
||||
if sect_name and sect_name in self.sect_last_names:
|
||||
return random.choice(self.sect_last_names[sect_name])
|
||||
return random.choice(self.common_last_names)
|
||||
|
||||
def get_random_given_name(self, gender: Gender, sect_name: Optional[str] = None) -> str:
|
||||
"""
|
||||
获取随机名字
|
||||
|
||||
Args:
|
||||
gender: 性别
|
||||
sect_name: 宗门名称,如果为None则从散修名字中选择
|
||||
|
||||
Returns:
|
||||
名字字符串
|
||||
"""
|
||||
if sect_name and sect_name in self.sect_given_names:
|
||||
sect_names = self.sect_given_names[sect_name][gender]
|
||||
if sect_names:
|
||||
return random.choice(sect_names)
|
||||
return random.choice(self.common_given_names[gender])
|
||||
|
||||
def get_random_full_name(self, gender: Gender, sect_name: Optional[str] = None) -> str:
|
||||
"""
|
||||
获取随机全名
|
||||
|
||||
Args:
|
||||
gender: 性别
|
||||
sect_name: 宗门名称,如果为None则为散修
|
||||
|
||||
Returns:
|
||||
完整姓名
|
||||
"""
|
||||
last_name = self.get_random_last_name(sect_name)
|
||||
given_name = self.get_random_given_name(gender, sect_name)
|
||||
return last_name + given_name
|
||||
|
||||
def get_random_full_name_with_surname(
|
||||
self,
|
||||
gender: Gender,
|
||||
surname: str,
|
||||
sect_name: Optional[str] = None
|
||||
) -> str:
|
||||
"""
|
||||
使用指定姓氏生成随机全名
|
||||
|
||||
Args:
|
||||
gender: 性别
|
||||
surname: 指定的姓氏
|
||||
sect_name: 宗门名称,如果为None则为散修
|
||||
|
||||
Returns:
|
||||
完整姓名
|
||||
"""
|
||||
if not surname:
|
||||
return self.get_random_full_name(gender, sect_name)
|
||||
given_name = self.get_random_given_name(gender, sect_name)
|
||||
return surname + given_name
|
||||
|
||||
|
||||
# 全局单例
|
||||
_name_manager = NameManager()
|
||||
|
||||
|
||||
def get_random_name(gender: Gender, sect_name: Optional[str] = None) -> str:
|
||||
"""获取随机全名"""
|
||||
return _name_manager.get_random_full_name(gender, sect_name)
|
||||
|
||||
|
||||
def get_random_name_for_sect(gender: Gender, sect) -> str:
|
||||
"""
|
||||
基于宗门生成姓名(兼容旧接口)
|
||||
|
||||
Args:
|
||||
gender: 性别
|
||||
sect: Sect对象或None
|
||||
|
||||
Returns:
|
||||
完整姓名
|
||||
"""
|
||||
sect_name = sect.name if sect is not None else None
|
||||
return _name_manager.get_random_full_name(gender, sect_name)
|
||||
|
||||
|
||||
def pick_surname_for_sect(sect) -> str:
|
||||
"""
|
||||
从宗门常见姓或全局库中挑选一个姓氏(兼容旧接口)
|
||||
|
||||
Args:
|
||||
sect: Sect对象或None
|
||||
|
||||
Returns:
|
||||
姓氏
|
||||
"""
|
||||
sect_name = sect.name if sect is not None else None
|
||||
return _name_manager.get_random_last_name(sect_name)
|
||||
|
||||
|
||||
def get_random_name_with_surname(
|
||||
gender: Gender,
|
||||
surname: str,
|
||||
sect
|
||||
) -> str:
|
||||
"""
|
||||
使用指定姓氏生成随机全名(兼容旧接口)
|
||||
|
||||
Args:
|
||||
gender: 性别
|
||||
surname: 指定的姓氏
|
||||
sect: Sect对象或None
|
||||
|
||||
Returns:
|
||||
完整姓名
|
||||
"""
|
||||
sect_name = sect.name if sect is not None else None
|
||||
return _name_manager.get_random_full_name_with_surname(gender, surname, sect_name)
|
||||
|
||||
@@ -20,7 +20,7 @@ from src.classes.cultivation import CultivationProgress
|
||||
from src.classes.root import Root
|
||||
from src.classes.age import Age
|
||||
from src.run.create_map import create_cultivation_world_map, add_sect_headquarters
|
||||
from src.utils.names import get_random_name, get_random_name_for_sect
|
||||
from src.classes.name import get_random_name, get_random_name_for_sect
|
||||
from src.utils.id_generator import get_avatar_id
|
||||
from src.utils.config import CONFIG
|
||||
from src.classes.sect import sects_by_id
|
||||
|
||||
@@ -10,7 +10,7 @@ from src.classes.calendar import MonthStamp
|
||||
from src.classes.cultivation import CultivationProgress
|
||||
from src.classes.root import Root
|
||||
from src.classes.age import Age
|
||||
from src.utils.names import get_random_name_for_sect, pick_surname_for_sect, get_random_name_with_surname
|
||||
from src.classes.name import get_random_name_for_sect, pick_surname_for_sect, get_random_name_with_surname
|
||||
from src.utils.id_generator import get_avatar_id
|
||||
from src.classes.sect import Sect, sects_by_id, sects_by_name
|
||||
from src.classes.alignment import Alignment
|
||||
|
||||
@@ -8,7 +8,7 @@ from src.classes.cultivation import Realm
|
||||
from src.classes.world import World
|
||||
from src.classes.event import Event, is_null_event
|
||||
from src.classes.ai import llm_ai
|
||||
from src.utils.names import get_random_name
|
||||
from src.classes.name import get_random_name
|
||||
from src.utils.config import CONFIG
|
||||
from src.run.log import get_logger
|
||||
from src.classes.fortune import try_trigger_fortune
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
import random
|
||||
from typing import Optional
|
||||
from src.classes.avatar import Gender
|
||||
from src.classes.sect import Sect
|
||||
|
||||
"""
|
||||
仙侠风格姓名数据库
|
||||
包含50个姓氏和200个名字(男女各100个)
|
||||
"""
|
||||
|
||||
# 50个仙侠风格的姓氏
|
||||
SURNAMES = [
|
||||
"司马", "慕容", "上官", "独孤", "东方", "南宫", "西门", "北冥", "欧阳", "夏侯",
|
||||
"令狐", "诸葛", "皇甫", "公孙", "轩辕", "百里", "呼延", "闻人", "长孙", "段干",
|
||||
"云", "叶", "夜", "风", "霜", "雪", "星", "月", "冷", "凌",
|
||||
"苏", "陆", "萧", "林", "君", "墨", "白", "顾", "秦", "楚",
|
||||
"赵", "唐", "韩", "魏", "宋", "齐", "燕", "晋", "陈", "李"
|
||||
]
|
||||
|
||||
# 200个仙侠风格的名字
|
||||
MALE_GIVEN_NAMES = [
|
||||
# 男性名字 (100个)
|
||||
"逍遥", "无极", "天行", "凌云", "破晓", "斩风", "御风", "追星", "景天", "清源",
|
||||
"玄机", "天骄", "无双", "惊鸿", "绝尘", "傲天", "剑心", "风华", "无尘", "天启",
|
||||
"墨染", "凌霄", "天羽", "星辰", "飞雪", "幽冥", "天籁", "破军", "神威", "无痕",
|
||||
"天策", "剑魂", "风流", "绝世", "天命", "扶摇", "傲骨", "星河", "天机", "风云",
|
||||
"天成", "无忧", "破空", "凌波", "天涯", "风尘", "玄凌", "天阙", "元衡", "剑尘",
|
||||
# 新增的50个仙侠风格名字
|
||||
"云霄", "青玄", "玄霄", "沧澜", "断尘", "清尘", "承影", "寒月", "晨旭", "破阵",
|
||||
"北辰", "南斗", "青冥", "太虚", "玄空", "长生", "寒川", "寒星", "惊雷", "苍穹",
|
||||
"辰渊", "赤霄", "炎霆", "逐霜", "啸月", "逐风", "青穹", "玄霜", "白羽", "青羽",
|
||||
"紫霄", "云衡", "星衡", "沧海", "霆骁", "擎天", "孤川", "孤鸿", "墨白", "清越",
|
||||
"青霖", "驭风", "重楼", "寒洲", "星阑", "子陵", "元诚", "行舟", "凌寒", "青霜"
|
||||
]
|
||||
|
||||
FEMALE_GIVEN_NAMES = [
|
||||
# 女性名字 (100个)
|
||||
"如雪", "若梦", "凝香", "紫霞", "月华", "清音", "蝶舞", "花颜", "雅韵", "诗涵",
|
||||
"静雯", "慕蓉", "婉儿", "柔情", "霓裳", "晚颜", "如烟", "妙音", "冰心", "玉颜",
|
||||
"如玉", "清影", "梦瑶", "紫嫣", "霜华", "若水", "青莲", "雪儿", "慧心", "素衣",
|
||||
"如意", "诗雨", "梦蝶", "紫萱", "冰莲", "若兰", "清雅", "雪梅", "慕雪", "天音",
|
||||
"如风", "诗韵", "梦云", "紫烟", "冰雪", "若霜", "清秋", "雪莲", "慕凝", "天香",
|
||||
# 新增的50个仙侠风格名字
|
||||
"月影", "青衣", "素心", "霜凝", "清欢", "暮雪", "月灵", "云岚", "灵汐", "冷月",
|
||||
"冰瑶", "玄月", "青璇", "紫凝", "雪鸢", "绛霓", "绯烟", "流苏", "墨琴", "断晴",
|
||||
"雨霖", "归晚", "临渊", "婵娟", "听雪", "凝霜", "岚烟", "疏影", "清宵", "流萤",
|
||||
"夜阑", "素锦", "锦瑟", "孤鸢", "青萝", "碧落", "飞霜", "无霜", "明玥", "皎月",
|
||||
"醉花", "半夏", "初霁", "白芷", "青黛", "灵芸", "绮罗", "初晴", "寒烟", "月珑"
|
||||
]
|
||||
|
||||
def get_random_male_name():
|
||||
"""
|
||||
获取随机男性全名
|
||||
"""
|
||||
return random.choice(SURNAMES) + random.choice(MALE_GIVEN_NAMES)
|
||||
|
||||
def get_random_female_name():
|
||||
"""
|
||||
获取随机女性全名
|
||||
"""
|
||||
return random.choice(SURNAMES) + random.choice(FEMALE_GIVEN_NAMES)
|
||||
|
||||
def get_random_name(gender: Gender) -> str:
|
||||
"""
|
||||
获取随机全名
|
||||
"""
|
||||
if gender == Gender.MALE:
|
||||
return get_random_male_name()
|
||||
else:
|
||||
return get_random_female_name()
|
||||
|
||||
|
||||
def get_random_name_for_sect(gender: Gender, sect: Optional[Sect]) -> str:
|
||||
"""
|
||||
基于宗门生成姓名:优先使用宗门常见姓与性别对应名,若缺失则回退到全局库。
|
||||
"""
|
||||
surname = pick_surname_for_sect(sect)
|
||||
given_pool = get_given_pool_for_sect(gender, sect)
|
||||
return surname + random.choice(given_pool)
|
||||
|
||||
|
||||
# —— 新增:基于指定姓氏与宗门风格生成姓名 ——
|
||||
def pick_surname_for_sect(sect: Optional[Sect]) -> str:
|
||||
"""
|
||||
从宗门常见姓或全局库中挑选一个姓氏。
|
||||
"""
|
||||
if sect is not None and sect.sect_surnames:
|
||||
return random.choice(sect.sect_surnames)
|
||||
return random.choice(SURNAMES)
|
||||
|
||||
|
||||
def get_given_pool_for_sect(gender: Gender, sect: Optional[Sect]) -> list[str]:
|
||||
"""
|
||||
返回给定性别与宗门下的名库(回退到全局)。
|
||||
"""
|
||||
if sect is None:
|
||||
return MALE_GIVEN_NAMES if gender == Gender.MALE else FEMALE_GIVEN_NAMES
|
||||
if gender == Gender.MALE:
|
||||
return sect.male_sect_given_names or MALE_GIVEN_NAMES
|
||||
return sect.female_sect_given_names or FEMALE_GIVEN_NAMES
|
||||
|
||||
|
||||
def get_random_name_with_surname(gender: Gender, surname: str, sect: Optional[Sect]) -> str:
|
||||
"""
|
||||
使用给定姓氏,结合宗门偏好名库生成姓名;若宗门未配置则回退全局。
|
||||
"""
|
||||
if not surname:
|
||||
return get_random_name_for_sect(gender, sect)
|
||||
given_pool = get_given_pool_for_sect(gender, sect)
|
||||
return surname + random.choice(given_pool)
|
||||
433
static/game_configs/given_name.csv
Normal file
433
static/game_configs/given_name.csv
Normal file
@@ -0,0 +1,433 @@
|
||||
given_name,gender,sect,cond
|
||||
名字,性别(男/女),宗门名称(空=散修通用),条件(暂不用)
|
||||
逍遥,男,,
|
||||
无极,男,,
|
||||
天行,男,,
|
||||
凌云,男,,
|
||||
破晓,男,,
|
||||
斩风,男,,
|
||||
御风,男,,
|
||||
追星,男,,
|
||||
景天,男,,
|
||||
清源,男,,
|
||||
玄机,男,,
|
||||
天骄,男,,
|
||||
无双,男,,
|
||||
惊鸿,男,,
|
||||
绝尘,男,,
|
||||
傲天,男,,
|
||||
剑心,男,,
|
||||
风华,男,,
|
||||
无尘,男,,
|
||||
天启,男,,
|
||||
墨染,男,,
|
||||
凌霄,男,,
|
||||
天羽,男,,
|
||||
星辰,男,,
|
||||
飞雪,男,,
|
||||
幽冥,男,,
|
||||
天籁,男,,
|
||||
破军,男,,
|
||||
神威,男,,
|
||||
无痕,男,,
|
||||
天策,男,,
|
||||
剑魂,男,,
|
||||
风流,男,,
|
||||
绝世,男,,
|
||||
天命,男,,
|
||||
扶摇,男,,
|
||||
傲骨,男,,
|
||||
星河,男,,
|
||||
天机,男,,
|
||||
风云,男,,
|
||||
天成,男,,
|
||||
无忧,男,,
|
||||
破空,男,,
|
||||
凌波,男,,
|
||||
天涯,男,,
|
||||
风尘,男,,
|
||||
玄凌,男,,
|
||||
天阙,男,,
|
||||
元衡,男,,
|
||||
剑尘,男,,
|
||||
云霄,男,,
|
||||
青玄,男,,
|
||||
玄霄,男,,
|
||||
沧澜,男,,
|
||||
断尘,男,,
|
||||
清尘,男,,
|
||||
承影,男,,
|
||||
寒月,男,,
|
||||
晨旭,男,,
|
||||
破阵,男,,
|
||||
北辰,男,,
|
||||
南斗,男,,
|
||||
青冥,男,,
|
||||
太虚,男,,
|
||||
玄空,男,,
|
||||
长生,男,,
|
||||
寒川,男,,
|
||||
寒星,男,,
|
||||
惊雷,男,,
|
||||
苍穹,男,,
|
||||
辰渊,男,,
|
||||
赤霄,男,,
|
||||
炎霆,男,,
|
||||
逐霜,男,,
|
||||
啸月,男,,
|
||||
逐风,男,,
|
||||
青穹,男,,
|
||||
玄霜,男,,
|
||||
白羽,男,,
|
||||
青羽,男,,
|
||||
紫霄,男,,
|
||||
云衡,男,,
|
||||
星衡,男,,
|
||||
沧海,男,,
|
||||
霆骁,男,,
|
||||
擎天,男,,
|
||||
孤川,男,,
|
||||
孤鸿,男,,
|
||||
墨白,男,,
|
||||
清越,男,,
|
||||
青霖,男,,
|
||||
驭风,男,,
|
||||
重楼,男,,
|
||||
寒洲,男,,
|
||||
星阑,男,,
|
||||
子陵,男,,
|
||||
元诚,男,,
|
||||
行舟,男,,
|
||||
凌寒,男,,
|
||||
青霜,男,,
|
||||
如雪,女,,
|
||||
若梦,女,,
|
||||
凝香,女,,
|
||||
紫霞,女,,
|
||||
月华,女,,
|
||||
清音,女,,
|
||||
蝶舞,女,,
|
||||
花颜,女,,
|
||||
雅韵,女,,
|
||||
诗涵,女,,
|
||||
静雯,女,,
|
||||
慕蓉,女,,
|
||||
婉儿,女,,
|
||||
柔情,女,,
|
||||
霓裳,女,,
|
||||
晚颜,女,,
|
||||
如烟,女,,
|
||||
妙音,女,,
|
||||
冰心,女,,
|
||||
玉颜,女,,
|
||||
如玉,女,,
|
||||
清影,女,,
|
||||
梦瑶,女,,
|
||||
紫嫣,女,,
|
||||
霜华,女,,
|
||||
若水,女,,
|
||||
青莲,女,,
|
||||
雪儿,女,,
|
||||
慧心,女,,
|
||||
素衣,女,,
|
||||
如意,女,,
|
||||
诗雨,女,,
|
||||
梦蝶,女,,
|
||||
紫萱,女,,
|
||||
冰莲,女,,
|
||||
若兰,女,,
|
||||
清雅,女,,
|
||||
雪梅,女,,
|
||||
慕雪,女,,
|
||||
天音,女,,
|
||||
如风,女,,
|
||||
诗韵,女,,
|
||||
梦云,女,,
|
||||
紫烟,女,,
|
||||
冰雪,女,,
|
||||
若霜,女,,
|
||||
清秋,女,,
|
||||
雪莲,女,,
|
||||
慕凝,女,,
|
||||
天香,女,,
|
||||
月影,女,,
|
||||
青衣,女,,
|
||||
素心,女,,
|
||||
霜凝,女,,
|
||||
清欢,女,,
|
||||
暮雪,女,,
|
||||
月灵,女,,
|
||||
云岚,女,,
|
||||
灵汐,女,,
|
||||
冷月,女,,
|
||||
冰瑶,女,,
|
||||
玄月,女,,
|
||||
青璇,女,,
|
||||
紫凝,女,,
|
||||
雪鸢,女,,
|
||||
绛霓,女,,
|
||||
绯烟,女,,
|
||||
流苏,女,,
|
||||
墨琴,女,,
|
||||
断晴,女,,
|
||||
雨霖,女,,
|
||||
归晚,女,,
|
||||
临渊,女,,
|
||||
婵娟,女,,
|
||||
听雪,女,,
|
||||
凝霜,女,,
|
||||
岚烟,女,,
|
||||
疏影,女,,
|
||||
清宵,女,,
|
||||
流萤,女,,
|
||||
夜阑,女,,
|
||||
素锦,女,,
|
||||
锦瑟,女,,
|
||||
孤鸢,女,,
|
||||
青萝,女,,
|
||||
碧落,女,,
|
||||
飞霜,女,,
|
||||
无霜,女,,
|
||||
明玥,女,,
|
||||
皎月,女,,
|
||||
醉花,女,,
|
||||
半夏,女,,
|
||||
初霁,女,,
|
||||
白芷,女,,
|
||||
青黛,女,,
|
||||
灵芸,女,,
|
||||
绮罗,女,,
|
||||
初晴,女,,
|
||||
寒烟,女,,
|
||||
月珑,女,,
|
||||
澄川,男,明心剑宗,
|
||||
宏石,男,明心剑宗,
|
||||
磐岳,男,明心剑宗,
|
||||
霆岱,男,明心剑宗,
|
||||
寂岚,男,明心剑宗,
|
||||
久安,男,明心剑宗,
|
||||
宸秋,男,明心剑宗,
|
||||
烁离,男,明心剑宗,
|
||||
沧岳,男,明心剑宗,
|
||||
砺锋,男,明心剑宗,
|
||||
炎洲,男,明心剑宗,
|
||||
远歌,男,明心剑宗,
|
||||
采微,女,明心剑宗,
|
||||
霏岚,女,明心剑宗,
|
||||
韶华,女,明心剑宗,
|
||||
绮澜,女,明心剑宗,
|
||||
珠影,女,明心剑宗,
|
||||
远岫,女,明心剑宗,
|
||||
若水,女,明心剑宗,
|
||||
凝香,女,明心剑宗,
|
||||
雪瑶,女,明心剑宗,
|
||||
南絮,女,明心剑宗,
|
||||
轻萝,女,明心剑宗,
|
||||
宛竹,女,明心剑宗,
|
||||
驼王,男,百兽宗,
|
||||
飞熊,男,百兽宗,
|
||||
虎魄,男,百兽宗,
|
||||
狼行,男,百兽宗,
|
||||
熊罡,男,百兽宗,
|
||||
白猿,男,百兽宗,
|
||||
石坚,男,百兽宗,
|
||||
山岚,男,百兽宗,
|
||||
青鬃,男,百兽宗,
|
||||
玄爪,男,百兽宗,
|
||||
金瞳,男,百兽宗,
|
||||
裂爪,男,百兽宗,
|
||||
破角,男,百兽宗,
|
||||
狂鬃,男,百兽宗,
|
||||
赤鬣,男,百兽宗,
|
||||
苍隼,男,百兽宗,
|
||||
啸风,男,百兽宗,
|
||||
裂岩,男,百兽宗,
|
||||
狐绮,女,百兽宗,
|
||||
白貂,女,百兽宗,
|
||||
青翎,女,百兽宗,
|
||||
雪牙,女,百兽宗,
|
||||
赤羽,女,百兽宗,
|
||||
玄狸,女,百兽宗,
|
||||
灵爪,女,百兽宗,
|
||||
月狐,女,百兽宗,
|
||||
银鳞,女,百兽宗,
|
||||
霜蹄,女,百兽宗,
|
||||
云貉,女,百兽宗,
|
||||
绒尾,女,百兽宗,
|
||||
锦狐,女,百兽宗,
|
||||
轻蹄,女,百兽宗,
|
||||
涟光,男,水镜宗,
|
||||
沧浪,男,水镜宗,
|
||||
泽远,男,水镜宗,
|
||||
浩川,男,水镜宗,
|
||||
泊舟,男,水镜宗,
|
||||
涓石,男,水镜宗,
|
||||
溪原,男,水镜宗,
|
||||
涵舟,男,水镜宗,
|
||||
泠曜,男,水镜宗,
|
||||
漪岑,男,水镜宗,
|
||||
淞岳,男,水镜宗,
|
||||
涔雨,男,水镜宗,
|
||||
漫霖,女,水镜宗,
|
||||
洛漪,女,水镜宗,
|
||||
潋月,女,水镜宗,
|
||||
涵烟,女,水镜宗,
|
||||
沁波,女,水镜宗,
|
||||
翠波,女,水镜宗,
|
||||
漫葭,女,水镜宗,
|
||||
汀兰,女,水镜宗,
|
||||
潭歌,女,水镜宗,
|
||||
涓玥,女,水镜宗,
|
||||
澧宁,女,水镜宗,
|
||||
潇然,女,水镜宗,
|
||||
血燎,男,冥王宗,
|
||||
焚魄,男,冥王宗,
|
||||
灰灭,男,冥王宗,
|
||||
殁川,男,冥王宗,
|
||||
绝尘,男,冥王宗,
|
||||
厌离,男,冥王宗,
|
||||
朔寒,男,冥王宗,
|
||||
邪风,男,冥王宗,
|
||||
归墟,男,冥王宗,
|
||||
朽骨,男,冥王宗,
|
||||
朔月,男,冥王宗,
|
||||
止戈,男,冥王宗,
|
||||
寒绫,女,冥王宗,
|
||||
霜瑶,女,冥王宗,
|
||||
凄歌,女,冥王宗,
|
||||
素鸢,女,冥王宗,
|
||||
祭宁,女,冥王宗,
|
||||
黛魂,女,冥王宗,
|
||||
夙梦,女,冥王宗,
|
||||
绫雪,女,冥王宗,
|
||||
凛珑,女,冥王宗,
|
||||
霁月,女,冥王宗,
|
||||
旷音,女,冥王宗,
|
||||
凝岚,女,冥王宗,
|
||||
暗阑,男,朱勾宗,
|
||||
机括,男,朱勾宗,
|
||||
鬼匣,男,朱勾宗,
|
||||
夜禁,男,朱勾宗,
|
||||
幻锁,男,朱勾宗,
|
||||
残锋,男,朱勾宗,
|
||||
暗弦,男,朱勾宗,
|
||||
影栅,男,朱勾宗,
|
||||
幽钩,男,朱勾宗,
|
||||
断线,男,朱勾宗,
|
||||
潜匿,男,朱勾宗,
|
||||
迷踪,男,朱勾宗,
|
||||
玄簪,女,朱勾宗,
|
||||
霜绡,女,朱勾宗,
|
||||
纤罗,女,朱勾宗,
|
||||
碎玉,女,朱勾宗,
|
||||
影裳,女,朱勾宗,
|
||||
轻弦,女,朱勾宗,
|
||||
凝黛,女,朱勾宗,
|
||||
凝烟,女,朱勾宗,
|
||||
冷珥,女,朱勾宗,
|
||||
素纱,女,朱勾宗,
|
||||
凛钗,女,朱勾宗,
|
||||
寒袖,女,朱勾宗,
|
||||
流烟,男,合欢宗,
|
||||
迟夜,男,合欢宗,
|
||||
长陌,男,合欢宗,
|
||||
归舟,男,合欢宗,
|
||||
暮成,男,合欢宗,
|
||||
远辞,男,合欢宗,
|
||||
行止,男,合欢宗,
|
||||
轻寒,男,合欢宗,
|
||||
沉香,男,合欢宗,
|
||||
野鹤,男,合欢宗,
|
||||
乘风,男,合欢宗,
|
||||
婉心,女,合欢宗,
|
||||
轻柔,女,合欢宗,
|
||||
疏影,女,合欢宗,
|
||||
如梦,女,合欢宗,
|
||||
绮念,女,合欢宗,
|
||||
惜香,女,合欢宗,
|
||||
慕雪,女,合欢宗,
|
||||
倾城,女,合欢宗,
|
||||
绯烟,女,合欢宗,
|
||||
晚晴,女,合欢宗,
|
||||
素袖,女,合欢宗,
|
||||
霁眉,女,合欢宗,
|
||||
绸缪,女,合欢宗,
|
||||
静妍,女,合欢宗,
|
||||
安魄,男,镇魂宗,
|
||||
靖川,男,镇魂宗,
|
||||
霁阳,男,镇魂宗,
|
||||
季衡,男,镇魂宗,
|
||||
砺甲,男,镇魂宗,
|
||||
烁锋,男,镇魂宗,
|
||||
昊戈,男,镇魂宗,
|
||||
祁光,男,镇魂宗,
|
||||
漠石,男,镇魂宗,
|
||||
启封,男,镇魂宗,
|
||||
殷策,男,镇魂宗,
|
||||
定魄,男,镇魂宗,
|
||||
清宁,女,镇魂宗,
|
||||
素铃,女,镇魂宗,
|
||||
靖霜,女,镇魂宗,
|
||||
澄心,女,镇魂宗,
|
||||
霁雪,女,镇魂宗,
|
||||
安祈,女,镇魂宗,
|
||||
净月,女,镇魂宗,
|
||||
宁枝,女,镇魂宗,
|
||||
祷绫,女,镇魂宗,
|
||||
明槐,女,镇魂宗,
|
||||
采霁,女,镇魂宗,
|
||||
定寒,女,镇魂宗,
|
||||
噬影,男,幽魂噬影宗,
|
||||
无藏,男,幽魂噬影宗,
|
||||
绝响,男,幽魂噬影宗,
|
||||
断痕,男,幽魂噬影宗,
|
||||
影渊,男,幽魂噬影宗,
|
||||
暗行,男,幽魂噬影宗,
|
||||
潜踪,男,幽魂噬影宗,
|
||||
魄隐,男,幽魂噬影宗,
|
||||
迷雾,男,幽魂噬影宗,
|
||||
空蝉,男,幽魂噬影宗,
|
||||
断念,男,幽魂噬影宗,
|
||||
裂隙,男,幽魂噬影宗,
|
||||
影绫,女,幽魂噬影宗,
|
||||
暗萝,女,幽魂噬影宗,
|
||||
霜绡,女,幽魂噬影宗,
|
||||
素鹭,女,幽魂噬影宗,
|
||||
玄绮,女,幽魂噬影宗,
|
||||
凝灯,女,幽魂噬影宗,
|
||||
绫岚,女,幽魂噬影宗,
|
||||
凛铃,女,幽魂噬影宗,
|
||||
朔华,女,幽魂噬影宗,
|
||||
漠音,女,幽魂噬影宗,
|
||||
宵岑,女,幽魂噬影宗,
|
||||
泠歌,女,幽魂噬影宗,
|
||||
持衡,男,千帆城,
|
||||
清评,男,千帆城,
|
||||
问价,男,千帆城,
|
||||
立契,男,千帆城,
|
||||
通衡,男,千帆城,
|
||||
问道,男,千帆城,
|
||||
理市,男,千帆城,
|
||||
衡准,男,千帆城,
|
||||
守约,男,千帆城,
|
||||
筑匠,男,千帆城,
|
||||
铸衡,男,千帆城,
|
||||
估算,男,千帆城,
|
||||
素蓝,女,千帆城,
|
||||
明衡,女,千帆城,
|
||||
巧心,女,千帆城,
|
||||
青帆,女,千帆城,
|
||||
绫舟,女,千帆城,
|
||||
观星,女,千帆城,
|
||||
衡绫,女,千帆城,
|
||||
星槎,女,千帆城,
|
||||
织霓,女,千帆城,
|
||||
采绫,女,千帆城,
|
||||
芸巧,女,千帆城,
|
||||
霁行,女,千帆城,
|
||||
砚秋,女,千帆城,
|
||||
镶玑,女,千帆城,
|
||||
绘蓝,女,千帆城,
|
||||
银梭,女,千帆城,
|
||||
珩心,女,千帆城,
|
||||
|
||||
|
101
static/game_configs/last_name.csv
Normal file
101
static/game_configs/last_name.csv
Normal file
@@ -0,0 +1,101 @@
|
||||
last_name,sect,cond
|
||||
姓氏,宗门名称(空=散修通用),条件(暂不用)
|
||||
司马,,
|
||||
慕容,,
|
||||
上官,,
|
||||
独孤,,
|
||||
东方,,
|
||||
南宫,,
|
||||
西门,,
|
||||
北冥,,
|
||||
欧阳,,
|
||||
夏侯,,
|
||||
令狐,,
|
||||
诸葛,,
|
||||
皇甫,,
|
||||
公孙,,
|
||||
轩辕,,
|
||||
百里,,
|
||||
呼延,,
|
||||
闻人,,
|
||||
长孙,,
|
||||
段干,,
|
||||
云,,
|
||||
叶,,
|
||||
夜,,
|
||||
风,,
|
||||
霜,,
|
||||
雪,,
|
||||
星,,
|
||||
月,,
|
||||
冷,,
|
||||
凌,,
|
||||
苏,,
|
||||
陆,,
|
||||
萧,,
|
||||
林,,
|
||||
君,,
|
||||
墨,,
|
||||
白,,
|
||||
顾,,
|
||||
秦,,
|
||||
楚,,
|
||||
赵,,
|
||||
唐,,
|
||||
韩,,
|
||||
魏,,
|
||||
宋,,
|
||||
齐,,
|
||||
燕,,
|
||||
晋,,
|
||||
陈,,
|
||||
李,,
|
||||
明,明心剑宗,
|
||||
心,明心剑宗,
|
||||
剑,明心剑宗,
|
||||
霄,明心剑宗,
|
||||
玄,明心剑宗,
|
||||
霁,明心剑宗,
|
||||
衡,明心剑宗,
|
||||
孤,明心剑宗,
|
||||
徽,明心剑宗,
|
||||
肃,明心剑宗,
|
||||
水,水镜宗,
|
||||
镜,水镜宗,
|
||||
寒,水镜宗,
|
||||
清,水镜宗,
|
||||
沐,水镜宗,
|
||||
澜,水镜宗,
|
||||
渊,水镜宗,
|
||||
泉,水镜宗,
|
||||
冥,冥王宗,
|
||||
王,冥王宗,
|
||||
幽,冥王宗,
|
||||
狱,冥王宗,
|
||||
魇,冥王宗,
|
||||
阴,冥王宗,
|
||||
朱,朱勾宗,
|
||||
绯,朱勾宗,
|
||||
刃,朱勾宗,
|
||||
戮,朱勾宗,
|
||||
蚀,朱勾宗,
|
||||
钧,朱勾宗,
|
||||
鸦,朱勾宗,
|
||||
殷,朱勾宗,
|
||||
合,合欢宗,
|
||||
欢,合欢宗,
|
||||
柳,合欢宗,
|
||||
花,合欢宗,
|
||||
厉,镇魂宗,
|
||||
卢,镇魂宗,
|
||||
镇,镇魂宗,
|
||||
魂,镇魂宗,
|
||||
钟,镇魂宗,
|
||||
青,镇魂宗,
|
||||
阎,幽魂噬影宗,
|
||||
鬼,幽魂噬影宗,
|
||||
归,幽魂噬影宗,
|
||||
应,幽魂噬影宗,
|
||||
魅,幽魂噬影宗,
|
||||
商,千帆城,
|
||||
|
||||
|
@@ -2,10 +2,11 @@ from src.utils.id_generator import get_avatar_id
|
||||
from src.classes.avatar import Avatar, Gender
|
||||
from src.classes.calendar import Month, Year, MonthStamp, create_month_stamp
|
||||
from src.classes.world import World
|
||||
from src.classes.tile import Map, TileType
|
||||
from src.classes.map import Map
|
||||
from src.classes.tile import TileType
|
||||
from src.classes.age import Age
|
||||
from src.classes.cultivation import Realm
|
||||
from src.utils.names import get_random_name
|
||||
from src.classes.name import get_random_name
|
||||
|
||||
def test_basic():
|
||||
"""
|
||||
|
||||
@@ -4,9 +4,10 @@ from src.sim.simulator import Simulator
|
||||
from src.classes.avatar import Avatar, Gender
|
||||
from src.classes.calendar import Month, Year, MonthStamp, create_month_stamp
|
||||
from src.classes.world import World
|
||||
from src.classes.tile import Map, TileType
|
||||
from src.classes.map import Map
|
||||
from src.classes.tile import TileType
|
||||
from src.classes.action import Move
|
||||
from src.utils.names import get_random_name
|
||||
from src.classes.name import get_random_name
|
||||
|
||||
|
||||
def test_simulator_step_moves_avatar_and_sets_tile():
|
||||
|
||||
Reference in New Issue
Block a user