# VirtualSlash **Repository Path**: skyfallen/virtual-slash ## Basic Information - **Project Name**: VirtualSlash - **Description**: 虚幻杀 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-08 - **Last Updated**: 2026-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 更新计划 · 玩家状态栏:将非图标标记但需要替玩家记住的内容放进去,需要注意如果这么做可能需要另行写一份针对状态栏的按固定节点的清除函数,并关注其发动后对内存的占用【后续官方可能会出】。 · AI敌我判断:由于现版本官方敌我判断仅基于身份局,因此针对不同模式需要特殊化定制,建议使用重包装,在本作utility中重包装判断并判定模式,如为身份模式,则依然使用官方判断;否则根据代码内容自行判断(建议一个模式包装一个判断函数然后汇总在总的敌我判断里。 ### To 玩家 #### 规则相关 ##### 专业用语及相关调整 > 存活 > > 在场 > > 死亡 > > 离场 > > 武将 > > 角色 > > 击杀 > > 击败 > > 濒死 > > 濒危 ##### **新旧机制及相关调整** ###### **指定目标** 在三国杀中,一名角色使用牌指定N个目标,将会产生N个“指定目标时”“指定目标后”时机。 在三国杀中的“你使用牌指定一名角色为目标后”将会依次询问对每名目标是否发动技能。 以上部分均继承三国杀。 ###### 轮次 “轮次开始时”的基础概念继承三国杀。 虚幻杀的轮次数可以被技能更改。 增加轮次数不会触发“轮次开始时”时机,也不会影响持续一轮的延时效果的结算,仅增加轮次计数。 ###### 性别 虚幻杀的性别结算规则参考新月杀雌雄双股剑逻辑。 > 无性角色与任何其他角色的性别不同;双性角色与除无性角色外的任何其他角色的性别相同。 ###### 返回牌堆 将牌置入牌堆,这些被置入牌堆的牌将会被分别插入牌堆的任意位置。 ### To 程序员 文字描述的命名方式: ##### 角色及相关 v*_【角色拼音】*_角色称号拼音缩写 ##### 技能及相关 v*_【技能拼音】*_特定描述 如果仅指定该技能,则不需要特定描述 > 特定描述规则暂定如下 > > 询问技能是否发动:ask > > 技能询问发动的原因不同:ask_询问理由首字母/询问理由英文 > > · 如小希【传输】,置于角色牌部分为ask_put,令其他人摸牌为ask_draw > > 技能存在若干选项:choice > > 技能对应的选项:choice_选项拼音首字母/选项英文【待定,也可能就是0123之类的】 > > · 如该选项存在较通用的英文,如摸牌(draw),弃置,确定(confirm)等,则优先使用英文,摸几张牌表述类似draw_1/draw_2。 > > 游戏信息记录类:log_记录理由首字母/记录理由英文 > > 技能卡牌框及相关信息:【待定】 > > 标记:【待定】 > > 存在特定条件下会被清除的牌,该类效果的处理写在了前aux_skill中,后续需要转一下才能用。 ##### 游戏全局日志相关 **后续计划相关** 所有角色势力统一。 > >具体势力待定,暂定为“虚幻”。 aux_skill的内容目前的启动方式将对所有房间生效,内存占用可能较高。 > >建议后续参考aux_skill包中的init.lua描述做单个全局技能/在登场的技能中对相关机制进行如下操作:如无对应机制,则对该机制进行room:addskill()。 > >该方案后续如何应对多模式可以参考gamemode抗秦之类的。 **已完成计划相关** 20260213: 卡牌标签清理者代码汇总至utility,各技能按需调用;新月杀官方清理者也可按需取用。 > >新月杀官方清理者可以和其他非同类清理者同时调用,通过类似于-inhand-turn的方式调用即可。 > >新月杀官方-inhand只要从自己手牌区离开的牌就会触发卡牌标记清空,如果需要到其他人手牌区还有标记(如**止鸽**),建议在utility中增加内容在相关技能中引用,让此类牌在移动后依然可以保留对应的标记(方式也可以一定程度参考**止鸽**)。 > >备选方案:将清理者放入aux_skill中,同时如果有需要的技能且场上无标签清理者,通过room:addskill()调用aux_skill中的标签清理者;可以搞个roomtag之类的东西记录现有此类技能个数,没有了就看情况删技能。 > >(该方式暂时只能想到开局调用,中途不知道如何调用,以及初步计算这个方案内存占用实际上比现在这个高,但还是先记录一下,可能可以应对异常情况)。