MCE 通过多态命令模式支持 30+ 种进化类型。每种进化类型都是继承自 EvolutionData 的具体类,并定义了自己的触发条件。本指南涵盖所有内置进化类型及其配置方法。
进化机制
进化由 EvolutionManager 管理,它在关键时刻检查进化条件:
- 升级后(在战斗中或通过稀有糖果)。
- 对怪兽使用道具后。
- 交换完成后。
- 特定游戏事件(亲密度达到阈值、进入特定地点等)。
当条件满足时,EvolutionAnimation 播放,MonsterInstance 变为目标物种,保留其昵称、个体值、努力值、亲密度和其他个人数据。
配置进化
在 MonsterEntry ScriptableObject 上,Evolutions 数组包含一个或多个 EvolutionData 条目。每个条目指定:
- 进化类型(使用哪个具体类)。
- 目标物种(
MonsterEntry 引用)。
- 目标形态(可选,用于特定形态的进化)。
- 类型特定参数(等级阈值、所需道具等)。
内置进化类型
基于等级
| 类型 | 描述 | 参数 |
|---|
EvolveByLevel | 在特定等级进化 | RequiredLevel |
EvolveByLevelAtSpecificTime | 在特定等级且特定时间段进化 | RequiredLevel、TimeOfDay |
EvolveByLevelWhenAttackIsHigherThanDefense | 在特定等级且攻击 > 防御时进化 | RequiredLevel |
EvolveByLevelWhenDefenseIsHigherThanAttack | 在特定等级且防御 > 攻击时进化 | RequiredLevel |
EvolveByLevelWhenAttackEqualsDefense | 在特定等级且攻击 = 防御时进化 | RequiredLevel |
EvolveByLevelWhenSpecificGender | 在特定等级且特定性别时进化 | RequiredLevel、Gender |
EvolveByLevelWithSceneTag | 在特定等级且特定地点进化 | RequiredLevel、SceneTag |
EvolveByLevelWithSceneTagAtSpecificTime | 等级 + 地点 + 时间 | RequiredLevel、SceneTag、TimeOfDay |
EvolveToRandomSpeciesByLevel | 在特定等级随机进化为列表中的一个物种 | RequiredLevel、PossibleTargets[] |
基于亲密度
| 类型 | 描述 | 参数 |
|---|
EvolveByFriendship | 亲密度达到阈值时进化 | RequiredFriendship |
EvolveByFriendshipAtSpecificTime | 亲密度 + 时间段 | RequiredFriendship、TimeOfDay |
EvolveByFriendshipWithMoveOfType | 亲密度 + 学会特定属性的招式 | RequiredFriendship、MoveType |
基于道具
| 类型 | 描述 | 参数 |
|---|
EvolveOnItemUse | 使用特定道具时进化 | RequiredItem |
EvolveOnItemUseAtSpecificTime | 道具 + 时间段 | RequiredItem、TimeOfDay |
EvolveOnItemUseOnSpecificGender | 道具 + 特定性别 | RequiredItem、Gender |
EvolveOnItemUseWithSceneTag | 道具 + 特定地点 | RequiredItem、SceneTag |
EvolveOnLevelUpHoldingItem | 携带道具时升级进化 | RequiredLevel、HeldItem |
EvolveOnLevelUpHoldingItemAtSpecificTime | 等级 + 携带道具 + 时间 | RequiredLevel、HeldItem、TimeOfDay |
基于交换
| 类型 | 描述 | 参数 |
|---|
EvolveWhenTraded | 被交换时进化 | (无) |
EvolveWhenTradedHoldingItem | 携带道具交换时进化 | HeldItem |
EvolveWhenTradedWithMonster | 与特定物种交换时进化 | RequiredPartner |
基于招式
| 类型 | 描述 | 参数 |
|---|
EvolveOnLevelUpWhenAMoveHasBeenLearnt | 学会特定招式后升级时进化 | RequiredMove |
EvolveOnLevelUpWhenAMoveHasBeenLearntWithSceneTag | 招式 + 地点 | RequiredMove、SceneTag |
EvolveToRandomFormOnLevelUpWhenAMoveHasBeenLearnt | 等级 + 招式,随机形态结果 | RequiredMove、PossibleForms[] |
EvolveByUsingMoveXTimes | 在战斗中使用特定招式 X 次后进化 | RequiredMove、TimesRequired |
基于条件
| 类型 | 描述 | 参数 |
|---|
EvolveOnLevelUpWithOtherMonInParty | 队伍中有特定物种时升级进化 | RequiredPartyMember |
EvolveOnLevelUpWhenConditionHasLevel | 游戏条件达到某级别时升级进化 | Condition、ConditionLevel |
EvolveByEvolutionCounter | 进化了 X 只其他怪兽后进化 | RequiredCount |
基于战斗条件
| 类型 | 描述 | 参数 |
|---|
EvolveByCriticalHitCounter | 在一场战斗中命中 X 次要害后进化 | CriticalHitsRequired |
EvolveByDefeatingRivals | 击败 X 个对手训练师后进化 | RivalsRequired |
EvolveByRecoilDamageBasedOnGender | 受到反伤伤害后进化(性别相关) | Gender、RecoilThreshold |
| 类型 | 描述 | 参数 |
|---|
NincadaEvolution | 特殊的双重进化(一只怪兽变为两只) | SecondSpecies |
设置进化链