尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Cataclysm-DDA 模组开发指南:为 Mind Over Matter 灵能模组设计并实现新能力

Cataclysm-DDA 模组开发指南:为 Mind Over Matter 灵能模组设计并实现新能力 Cataclysm-DDA 模组开发指南为 Mind Over Matter 灵能模组设计并实现新能力【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA本文以 data/mods/MindOverMatter/NewPowerGuide.md 为骨架结合仓库内powers/、recipes/practice/、effectoncondition/与 jmath.json 中的真实实现系统讲解如何为《Cataclysm: Dark Days Ahead》的 Mind Over Matter 灵能模组新增一条灵能能力Power。读完本文你将掌握难度分级与 Nether 共鸣Nether Attunement的关系、标准数值缩放公式、实践配方practice recipe与学习型 EoCEffect on Condition的编写方法以及九大灵能路径的能力边界设计准则。Mind Over Matter 是 Cataclysm-DDA 的一个内容模组id为mindovermatter见 modinfo.json它把灵能Psionics以法术SPELL的形式注入游戏却刻意让它们与魔法在主题上完全区分开。模组目前包含九条灵能路径Biokinesis、Clairsentience、Electrokinesis、Photokinesis、Pyrokinesis、Telekinesis、Telepathy、Teleportation 与 Vitakinesis。NewPowerGuide.md正是作者 StandingStorm 写给后续贡献者的新增能力操作手册本文将其要点逐一展开并给出仓库中的代码级佐证。一、新增能力的七步检查清单原文档开门见山地给出了新增能力时必须牢记的要点可以概括为七步清单选择难度Difficulty难度直接决定该能力造成多少 Nether 共鸣是能力设计的第一决策点。加入随机性灵能不同于完全可预测的魔法法术必须包含不确定成分。建立能力间联系每个新能力要么教授其他能力要么被其他能力教授形成技能树。强化随机表达现有能力大量使用RANDOM_DAMAGE、RANDOM_DURATION标志让效果永远不会完全可预测。接入职业/爱好如果能力有前置要把对应的实践配方加入合适的职业profession或爱好hobby。编写实践配方为能力写一个 practice recipe并把它挂到对应的EOC_learn_recipesEoC 中。编写学习型 EoC新增一个能力学习 EoC放入 powers/learning_eocs/ 下对应路径。下面依次深入每一环。二、难度分级与 Nether 共鸣直接挂钩的核心设计参数Difficulty不是随意填的数字它直接决定了能力使用后积累的 Nether 共鸣量。在 effectoncondition/eoc_nether_attunement_events.json 中共鸣的增减数值普遍通过nether_attune_difficulty_scaler(u_latest_channeled_power_difficulty)计算而该函数在 jmath.json 中的定义是_0 * _0即难度值的平方——难度越高共鸣积累越快副作用风险也越高。参考 jmath.json 中的实现难度还与以下机制绑定学习时间窗口learn_new_power_lower_time_bound/learn_new_power_upper_time_bound定义为((难度 2) * 60) * 60秒再乘以 0.8 / 1.2即解锁新能力需要等待的游戏内时间数小时级实际再被智力与形而上学技能修正。解锁所需的共鸣水平learn_new_power_lower_nether_attunement_level 难度 × 10learn_new_power_upper_nether_attunement_level 难度 × 20即新能力的洞察insight通常在特定共鸣区间内触发。领悟判定难度learn_new_power_difficulty_setting 难度 × 1.5 7再叠加维持中的能力数量与专注惩罚。因此新增能力时选择难度本质上是同时在调节共鸣风险、学习等待时间与领悟门槛三个杠杆。原文档同时指出实践配方的经验速率也按难度分档——难度 1/2/3 的能力可以练到 12 级难度 4/5 只能练到 10 级难度 6/7 只能练到 7 级这些上限数字来自对法术书阅读经验速率的参考。三、标准数值公式等级、智力与共鸣的三重缩放原文档给出的标准公式是{ math: [ ( ( (u_spell_level([NAME]) * [LEVELED_VALUE]) [BASE_VALUE]) * ( ( u_val(intelligence) 10) / 20 ) ) * u_nether_attunement_power_scaling ] }这个公式由三个因子构成等级线性项u_spell_level([NAME]) * [LEVELED_VALUE] [BASE_VALUE]其中LEVELED_VALUE是每级成长系数BASE_VALUE是基础值。实际能力中伤害、持续时间、作用范围均按此方式缩放。智力缩放( ( u_val(intelligence) 10) / 20 )即智力每高于 10 一点效果 5%每低于 10 一点效果 −5%。共鸣缩放u_nether_attunement_power_scaling其取值在 effectoncondition/eoc_nether_attunement_events.json 中被动态赋值无共鸣时约为 0.75共鸣等级上升后一路提升到 3.0共鸣 12 级在特定情境下甚至可达 4.0–6.5。这正是 README 所述无共鸣时能力只有 75% 效力共鸣 12 时达到 3 倍的实现来源。对应的封装函数位于 jmath.jsonmom_int_to_level()返回u_val(intelligence) * 1.5即最大能力等级 1.5 × 智力与文档第 2 条一致。psionic_power_modifiers()返回scaling_factor(智力) * u_nether_attunement_power_scaling * weariness_power_scaling()把智力缩放、共鸣缩放与疲劳度缩放打包复用。weariness_power_scaling()按weary_1~weary_6逐档把效力压到 0.9、0.75、0.6、0.45、0.25、0.25。以 powers/biokinesis.json 中的biokin_physical_enhancePhysical Enhancement为例持续时间的写法是min_duration: { math: [ ( (u_spell_level(biokin_physical_enhance) * 1500) 9000) * psionic_power_modifiers() ] }, max_duration: { math: [ ( (u_spell_level(biokin_physical_enhance) * 9000) 45000) * psionic_power_modifiers() ] }而最大等级则直接使用路径专属公式max_level: { math: [ mom_biokinesis_max_power_formula() ] }该函数在 jmath.json 中为mom_int_to_level() ( u_has_wielded_with_flag(MATRIX_CRYSTAL_BIOKINESIS) ? 6 : 0 )——手持对应灵能水晶还能额外获得 6 级上限。九条路径各有一个同构的mom_path_max_power_formula。3.1 施法时间与能量消耗的经验做法观察现有能力的写法还能总结出两个惯例持续时间用min_duration/max_duration区间表达随机性常配合RANDOM_DURATION标志让每次施放的实际效果在区间内浮动。施放时间与能量Stamina例如biokin_physical_enhance的基础施放时间随等级从 120 降到最低 75 移动作能量消耗从 3500 降到最低 1250而biokin_flexibility使用base_energy_cost/final_energy_cost/energy_increment、base_casting_time/final_casting_time/casting_time_increment三件套做线性递减。README 强调灵能快速很多能力施放耗时低于 100 移动作满级 Far Hand 仅需 65 移动作。四、随机性RANDOM_DAMAGE 与 RANDOM_DURATION 的正确用法原文档明确要求与魔法法术不同灵能能力不是完全可预测的。代码层面主要通过三类机制实现标志位现有能力几乎都带PSIONIC、SILENT、NO_HANDS、NO_LEGS、NO_EXPLOSION_SFX需要随机伤害/持续时间的再加RANDOM_DAMAGE与RANDOM_DURATION见 powers/biokinesis.json 中几乎每个能力的 flags 数组。区间字段min_duration/max_duration、min_aoe/max_aoe、min_field_intensity/max_field_intensity等区间对游戏在区间内随机取值。jmath 随机函数如 jmath.json 中psionics_kcal_cost使用rng( 0.3, 1.7)让每次施放的卡路里消耗波动 ±70%learn_new_power_learn_roll用rand(...)、rng(-2,8)等叠加随机判定。共鸣副作用本身也是随机的nether_attunement_*系列法术见 powers/nether_attunement_spells.json会随机触发呕吐、寒流、全体跌倒、全体眩晕甚至无差别闪电风暴且min_aoe随vitamin_psionic_drain共鸣累积值增大。五、能力学习链路实践配方 学习型 EoC 的完整实现新增能力的核心工作之一是搭建练习—领悟—解锁链路它由配方与 EoC 两部分组成。5.1 实践配方Practice Recipe所有灵能实践配方位于 recipes/practice/每路径一个 JSON 文件入口是 recipes/practice/psionics_practice.json 与各路径的嵌套目录。以 recipes/practice/biokinetic_practice.json 为例{ type: recipe, activity_level: LIGHT_EXERCISE, name: contemplation: overcome pain, id: practice_biokin_overcome_pain, description: Contemplate your powers and improve your ability to resist pain.\n\nPower Difficulty: 1\n\nCurrent Power Level: u_spell_level:biokin_overcome_pain, category: CC_*, subcategory: CSC_*_NESTED, skill_used: metaphysics, difficulty: 0, time: 0 s, autolearn: false, proficiencies: [ { proficiency: prof_contemplation_biokinesis, required: false } ], tools: [ [ [ matrix_crystal_drained, -1 ], [ black_nether_crystal_pseudo_tool, -1 ], [ matrix_crystal_biokinesis, -1 ], [ matrix_crystal_biokinesis_artifact, -1 ] ] ], flags: [ SECRET, BLIND_EASY, NO_MANIP, AFFECTED_BY_PAIN, NO_BENCH, NO_ENCHANTMENT ], result_eocs: [ { id: EOC_PRACTICE_BIOKIN_OVERCOME_PAIN, condition: { u_has_trait: BIOKINETIC }, effect: [ { set_string_var: biokin_overcome_pain, target_var: { u_val: latest_studied_power_name } }, { run_eocs: EOC_PSI_STUDYING_BIOKIN_POWER_SETUP }, { if: { math: [ u_spell_level(biokin_overcome_pain) 1 ] }, then: { run_eocs: [ EOC_PSI_STUDYING_POWER_BEGIN, EOC_PSI_STUDYING_POWER_SIDE_EFFECTS ] } } ] } ] }可以提炼出的实践要点使用metaphysics技能模组新增技能难度统一为 0、时间为 0 秒——配方本身不消耗工时真正的练习由后续 EoC 驱动。工具位是沉思媒介matrix_crystal_drained耗尽的水晶、black_nether_crystal_pseudo_tool或对应路径的matrix_crystal_path/matrix_crystal_path_artifact。SECRET标志保证配方不默认显示需要先被学习型 EoC 授予u_learn_recipe才会出现。result_eocs在配方完成时把能力名写入latest_studied_power_name再运行通用研究 EoC模拟沉思来尝试理解该能力的过程。5.2 学习型 EoCLearning EoC每个新能力需要一个学习 EoC放在 powers/learning_eocs/ 下biokinesis.json、telepathy.json等每路径一个文件。以 powers/learning_eocs/biokinesis.json 中的EOC_BIOKIN_LEARNING_OXYGEN_ABSORPTION为例其结构是典型的周期检查 条件门 授予配方模式{ type: effect_on_condition, id: EOC_BIOKIN_LEARNING_OXYGEN_ABSORPTION, recurrence: [ { math: [ jmath_biokinesis_learning_eocs_modifiers(global_tier_one_power_learning_time_low) ] }, { math: [ jmath_biokinesis_learning_eocs_modifiers(global_tier_one_power_learning_time_high) ] } ], condition: { and: [ { u_has_trait: BIOKINETIC }, { math: [ u_vitamin(vitamin_psi_learning_counter) 1 ] }, { or: [ { test_eoc: EOC_CONDITION_ODDS_OF_RANDOM_TIER_ONE_POWER_INSIGHT }, { and: [ { math: [ u_spell_level(biokin_physical_enhance) 4 ] }, { math: [ u_spell_level(biokin_overcome_pain) 3 ] } ] } ] }, { test_eoc: EOC_PSI_LEARNING_BANNED_EFFECTS }, { math: [ u_spell_level(biokin_breathe_skin) 0 ] }, { not: { u_know_recipe: practice_biokin_breathe_skin } } ] }, deactivate_condition: { or: [ { not: { u_has_trait: BIOKINETIC } }, { math: [ u_spell_level(biokin_breathe_skin) 1 ] } ] }, effect: [ { math: [ u_vitamin(vitamin_psi_learning_counter) 0 ] }, { u_learn_recipe: practice_biokin_breathe_skin }, { u_message: Use of your powers has led to an insight..., popup: true } ] }关键设计点周期检查recurrence用jmath_biokinesis_learning_eocs_modifiers(...)对全局时间窗口做修正。该函数在 jmath.json 中体现为智力高于 10 时每点让间隔缩短 3%上限 60%形而上学技能高于 5 后每点再缩 5%的规则并叠加 20% 的沉思熟练度减免。README 所述等待数天到数周不等正是这些时间窗口的宏观表现。条件门要么通过随机洞察判定EOC_CONDITION_ODDS_OF_RANDOM_TIER_ONE_POWER_INSIGHT允许少量跳过前置的幸运解锁对应 README 中小概率发现超出自身能力的能力要么满足指定前置能力等级。健康状态门槛EOC_PSI_LEARNING_BANNED_EFFECTS检查角色是否处于生病、骨折、饥饿、重度抑郁、睡眠、中毒等不宜领悟状态。去重与收尾u_spell_level 0、未掌握配方才触发触发后重置学习计数器、通过u_learn_recipe授予实践配方并弹出提示消息。deactivate_condition保证能力解锁后该 EoC 停止轮询。5.3 起步配方的授予角色开局时已有能力对应的实践配方由 effectoncondition/eoc_learn_recipes.json 中的EOC_BIOKIN_RECIPE_TEACHER等 EoC 在game_begin事件时批量授予EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES会串行运行EOC_CHECK_GAMEBEGIN_BIOKIN_RECIPE_*系列检查。新增能力时需要在这里补一个对应的授予检查并视情况加入职业/爱好——这正是原文档第 5 条把它加到职业或爱好中所指的接入点。六、主题一致性让灵能区别于魔法原文档专门用一节强调主题维护作者刻意反复使用powers而非代码术语spells因为即便游戏风格上的灵能本质上是科幻作者给作品加入魔法的借口Mind Over Matter 的能力也必须在观感上与魔法截然不同——它们是用思维驱动而不是吟唱、手势或研读古卷。落实到代码层面可以观察到一个主题性细节几乎所有能力都带有NO_HANDS、NO_LEGS标志如 powers/biokinesis.json 中的每个能力意味着施展灵能不需要双手与双腿能力名统一使用[Ψ]前缀并附(C)标注持续性能力伤害类型、效果与描述文本也都刻意避开咒语、法阵、法力等魔法词汇。难度基调上作者追求中等强度灵能并不微妙——一个强大的控火者pyrokinetic可以炸掉一栋房子但作者也刻意排除了过于接近魔法的能力具体限制见下文各路径的能力边界。七、智力加成禁令避免雪球效应因为智力会通过(intelligence 10) / 20级联放大几乎所有能力的伤害、持续时间与范围还能提升最大等级1.5 × 智力所以模组中刻意不存在任何提高智力的效果。新增能力时不要引入提升智力上限的 trait、效果或道具否则会破坏以智力为唯一主属性的平衡根基。八、九大路径的能力边界Can / Cant 设计准则原文档强调每条路径都应有明确定义的能力与限制以防主题稀释。下面按原文档逐条整理并补充仓库中的对应实现证据各路径能力文件见 powers/。Biokinesis生物动能身体掌控可以强化基础人类能力更强、更快、更坚韧、更擅战斗超人类但可理解的特技如 Sealed System 屏息近战数分钟、Hardened Skin 挡开刀刃通过移动肌肉骨骼做临时微调外貌足以充当伪装替代锤子、扳手等简单工具让灵能者在高龄仍保持良好运动机能。不可以做出人类生物学不可能之事呼吸氯气、飞行、红外视觉任何形式的变形shapeshifting或把身体部位当镐、锯等工具使用治疗自身这属于 Vitakinesis 的领域。实现佐证powers/biokinesis.json 中的biokin_physical_enhance、biokin_breathe_skin对应水下/低氧呼吸、biokin_flexibility、biokin_sealed_system、biokin_armor_skin等能力且多个能力带有caster_condition检查bio_exodii_cyberframe_*义体——没有有机肢体则无法使用呼应人类生物学的主题限制。Clairsentience超感感官延伸可以看到未来几秒以预感或模糊梦境获得更远期事件警告把平凡感官增强到不逊于甚至超过动物完成平凡感官不可能之事完全黑暗中视物、透视墙壁、听见无线电信号、闻到一氧化碳清除中毒、疾病、精神病等阻碍感官清晰度的状态。不可以做出清晰预言或长期未来预测影响他人的感官修复已受损的自然感官但可借助超感克服其影响治愈 blob 精神病。Electrokinesis电动力学可以发电作为武器或为电子设备充电保护自身与装备免受过量电流含 EMP伤害操纵人体神经系统生物电提高效率或造成异常放电抑制敌人影响电子电路与系统重编程计算机、关闭机器人吸取电能为己用如减少困倦。不可以把自己变成活闪电凝固电流供人操控关闭目标神经系统瞬间致死让电凭空消失电必须去往某处影响不依赖电的机械设备。Photokinesis光动力学可以凭空造光控制或移除区域内的现有光保护自身免受危险/干扰性光辐射操纵伽马射线、无线电波等其他电磁辐射用光制造激光弯曲光线使自身或物体隐形同时保持目标感知环境通过改变光的路径制造幻象。不可以改变自身生物学以用光做新事如光合作用把身体任何部分变成活光凝固光并赋予质量制造硬光hardlight。Pyrokinesis火动力学可以凭空生火包括不可燃表面保护自身免受过热与火焰在空中、物体或人身周制造光斑/发光区域让火焰以不自然方式移动或在无可燃介质的空间中传递加热周围空气维持舒适温度。不可以让火凝固或像液体一样流动把身体部分变成活火焰创造或操控寒冷在物体或人体内部生火。Telekinesis念动力远程移物可以举起物体或生物并掷出造成伤害加速/减速身旁物体运动以保护自身如 Inertial Barrier、Aegis 护盾飞行精细度止于从桌上捡起一枚硬币、从枪套取出枪支的简单操作强迫他人做出粗暴动作丢下武器、摔倒在地。不可以创造可拾取使用的实体物体或平台执行开锁、编程等复杂操作强迫他人做出自然流畅的动作平稳行走、端起咖啡杯。Telepathy心灵感应可以读取表面想法扰乱思维或脑功能可能造成永久伤害甚至死亡提升专注与思维效率直接控制他人心智读取有智慧外星种族mi-go、yrax、triffid的思维以图像或梦境印象学习比表面想法更深的资讯大幅降低洗脑/邪教招募难度保护自身免受灵能攻击、避免在传送门风暴中被异界存在察觉直接编辑自身想法或记忆抹除他人最近几分钟记忆仅短期记忆长期改变动物行为以微小方式影响他人态度如把冷漠变为愿意倾听、把攻击性变为隐晦敌意。不可以创造非由灵能攻击脑损伤导致的永久人格改变跨越语言障碍让自己更聪明读取或影响没有传统心智的存在丧尸、机器人、yrax 构造体、mycus、部分 Nether 住民治愈 blob 精神病或让狂乱者ferals恢复原状直接编辑他人的想法或长期记忆。Teleportation传送可以不穿越中间距离而移动扭曲空间使距离看起来与实际不符把物体传送进出他人手中传送到其他现实或 Nether可能的终局——极强大的传送者直接离开安全传送到附近未见过的地方。不可以只传送生物的一部分如把丧尸头传走、把狂乱者心脏取出胸腔把物品、他人或自己传进墙壁或实心岩石能力本质杜绝不安全传送时间旅行远距离传送到从未见过的地方。Vitakinesis生命动能健康掌控可以把愈合加速到超自然水平骨折数日、重伤数小时抵抗疾病与中毒治愈耳聋、失明等部分不利 trait需相应导引时间与恢复期再生失去的肢体免除睡眠需求在他人之间转移疾病影响他人愈合速率加快或减慢延长自身寿命可能无限。不可以瞬间封闭伤口治愈改变身体根本形态的突变尾巴、爪子对他人造成重伤延长他人寿命治愈 blob 精神病或让狂乱者复原。一条全局补充原文档最后指出矩阵科技Matrix technology可以突破上述部分限制。这与模组中的灵能水晶、matrix 材料及 procgen/ 生成物体系相呼应。九、跨路径能力Cross-path Powers设计上明确反对作者在文档中明确表示不赞成跨路径能力理由有二觉醒的刻意稀缺觉醒机制本身有意设限角色很可能只解锁一条路径而无法解锁另一条灾变之前多路径者本就极其稀少没有现成路径可循。协同乐趣应留给玩家多路径游玩的一大乐趣是玩家自己发现不同能力之间的协同效应通过多路径洞察直接喂给玩家组合会剥夺这种发现的满足感。但文档同时区分了一个例外矩阵科技在概念上不受此限——用它结合多条路径达成目标是合理的现有道具如 morphic reinforcement serum已经这么做了。这意味着如果你要新增矩阵科技装备可以放心让它调用多路径能力而新增灵能能力本体时则应保持单一路径归属。十、实战速查新增一条能力的完整提交清单结合全文一个完整的新能力提交通常包含以下文件改动均位于data/mods/MindOverMatter/内能力本体在对应路径的powers/.json或 classless/knacks 文件中新增SPELL条目设置difficulty、max_level用mom_path_max_power_formula()、min/max_duration、base_energy_cost、base_casting_time、flags含PSIONIC、RANDOM_DURATION等以及effect/effect_streffect_on_condition或attack。效果链如果能力走 EoC 效果在powers/_eoc.json中补上对应的EOC_PATH_POWER_INITIATE等 EoC涉及状态效果则编辑 effects/effects_psionic.json。实践配方在recipes/practice/_practice.json中新增 recipe并在嵌套目录nested_category_data注册配方 ID 遵循practice_path_power命名。学习 EoC在powers/learning_eocs/.json新增周期检查 EoC设定前置能力等级/随机洞察、BANNED_EFFECTS门槛、deactivate_condition用u_learn_recipe授予配方。开局授予在 effectoncondition/eoc_learn_recipes.json 的对应路径授予 EoC 中补一条EOC_CHECK_GAMEBEGIN_*_RECIPE_POWER检查。数值公式若需要新的缩放辅助在 jmath.json 添加jmath_function所有伤害/时长/范围均套用等级线性项 × 智力缩放 × 共鸣缩放标准式。能力网络确保新能力与已有能力形成教授/被教授关系若有前置按第 5 条原文档要求接入合适的职业/爱好professions.json、hobbies.json。十一、进一步阅读模组整体机制力量来源、消耗、觉醒、共鸣、能力类型与专注上限见 data/mods/MindOverMatter/README.md全部能力的完整列表与学习需求见 PowerDescriptionSpoilers.md含剧透觉醒概率与路径解锁规则见 GainingPowerSpoilers.md含剧透共鸣的完整副作用清单见 NetherAttunementSpoilers.md含剧透模组依赖的 jmath 数值体系见 jmath.json是公式类开发的权威参考。【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表