FunGame 框架今日更新:
版本:v2.0.0-dev.0118
该版本为【0113】、【0114】、【0115】、【0116】、【0118】五个版本的累积更新。
【0113更新内容】
1、添加了豁免检定的特效钩子,允许添加投掷加值或跳过检定。
2、添加了队列的基础功能对角色“是否是单位”的判断——这很重要。
并制定了以下规则:
1)单位击杀任意角色时,将以单位的所属角色来进行击杀结算;单位死亡时,不会有特殊的结算效果,但角色死亡的钩子仍然可触发。
2)基本上,数据统计均统计至所属角色。
现有的钩子中需要对角色参数进行 IsUnit 判断。(0114更新:框架中现在使用 Master 判断,而不是 IsUnit)
3、在选定决策【普通攻击】、【吟唱魔法】、【释放战技/爆发技】、【使用物品】后、选择作用目标前添加了技能钩子:
InquiryBeforeTargetSelection,返回值为InquiryOptions?,若不为空,框架会以此向当前角色发起询问。
【0114更新内容】
1、修复了非指向性技能在非战棋模式退回指向性技能目标选择器、额外选取扩散目标时,已选目标被意外清空的问题。
2、在 Skill 类中添加了新的钩子:
void OnCharacterRespawn(Skill newSkill)
在复活时,因为复活是重新构建角色,如果需要继承死亡角色的技能数据,可以重写此方法并返回。
newSkill 是一个自定义的、继承了 Skill 类的技能实现,在该实现中,可添加一些公开的属性,重写此方法时,只需要给 newSkill 的属性赋值即可(强转或使用 is 模式匹配为实现类)。
3、修复了 Effect 在角色死亡钩子中,永远无法接收 killer 为 Skill.Character 时的事件的问题,即在击杀事件发生后,永远不会触发击杀者特效的角色死亡事件。
4、在 Effect 类中添加了 BeforeSkillCasted 钩子。该钩子于 Skill 类的 OnSkillCasted 方法中触发,相比于 Effect 类的 OnSkillCasted 触发更早。这是一个能通知施法目标的特效的钩子。
5、修复了真实伤害的统计会被错误地额外统计到物理伤害中的问题。
6、框架中所有对于 IsUnit 的判断全都修改为了使用 Master,因为它更符合我们的设计,所有的召唤物、单位、生成物都基于行动顺序表的初始化角色,并且 Master 也必须来自于这些角色。
【0115更新内容】
在精准的分步控制伤害计算选项(DamageCalculationOptions)中添加了仅为框架使用的多个属性。这些属性对于追踪特效的伤害加值十分重要,在队列框架的 Debug 模式开启后,我们会输出包含这些加值的日志,并且可以清晰看到特效是基于哪个乘区作用加值的。
示例效果如下:
=== Round 853 [ Time: 434.26 ] ===
现在是 [ LUOLI66(趣多多的小队) ] 的回合!
[ LUOLI66 ] 消耗了 494.97 点魔法值,释放了魔法 [ 次元上升 ]!
[ LUOLI66 ] 发动了破釜沉舟,获得了 1922.96 点伤害加成!
[ 雇佣兵语破(超市) ] 受到了 2160.51 点魔法伤害!【1169.39(基础) + 1922.96(破釜沉舟) – 192.34(减伤) – 739.5(虚弱) = 2160.51 点魔法伤害】
[ LUOLI66 ] 回复了 596.3 点生命值!【864.2(基础) – 267.9(虚弱) = 596.3 点生命值】
[ LUOLI66 ] 回复了 324.08 点生命值!【324.08(基础) = 324.08 点生命值】
[ LUOLI66 ] 发动了破釜沉舟,回复了 324.08 点生命值!
[ LUOLI66 ] 的征服者层数:2,获得了 16 点核心属性(智力)加成。
[ LUOLI66 ] 发动了征服者!
[ 雇佣兵语破(超市) ] 受到了 232 点真实伤害!【232(基础) = 232 点真实伤害】
[ LUOLI66 ] 回复了 64.03 点生命值!【92.8(基础) – 28.77(虚弱) = 64.03 点生命值】
[ LUOLI66 ] 回合结束,获得硬直时间:8 秒
【0116更新内容】
1、在 AfterDeathCalculation 等钩子中添加了 bool hasMaster 参数,现在开发者不需要自己再在钩子中判断。【重要·中断性变更】
2、修改了行动顺序表死亡结算的事件触发顺序,修复了某些钩子可能会被重复触发的问题。
3、修复了单位在受到伤害后,后续目标会被转移到其 Master 的错误。
4、修复了单位无法进入死亡结算的问题。
5、修改了混战模式的终局存活检查逻辑,修复了该逻辑对单位无法正常判断的问题。
6、优化 BeforeApplyRecoveryAtTimeLapsing 钩子的返回值。
7、添加 BeforeHealToTarget、BeforeLifesteal 钩子。
【0118更新内容】
1、Skill 添加【无魔法消耗、无能量消耗、无 CD、魔法瓶颈、魔法效能%】属性。
无魔法消耗、无能量消耗、无 CD:这些属性可以强制把相关的属性赋为 0。
2、在伤害计算中添加【魔法效能%】乘区:若伤害来自魔法技能(Skill.IsMagic = true)并且魔法瓶颈 > 0,则会应用该乘区。
魔法瓶颈和魔法效能
部分魔法技能可能对角色的智力具有要求,我们称之为魔法瓶颈。
魔法效能是一个表示魔法技能实际施展效果被放大或缩小的系数关系,以魔法瓶颈为基准线,角色智力减去魔法瓶颈的差值的正负决定了实际施展效果。
魔法效能、魔法瓶颈、智力的关系如下公式所示:
魔法效能 = 1.0 + (角色智力 – 魔法瓶颈) ÷ 魔法瓶颈
当角色的智力恰好等于魔法瓶颈时,该魔法实际施展效果为 100%。
当角色的智力小于魔法瓶颈时,魔法效能会被削弱,实际施展效果低于 100%,最低可降至 1%;反之,魔法效果获得增强,至多可提升至 200%。
3、行动顺序表添加了工具方法:void AddCharacterEquipSlotSkills(Character character, List<Skill> list)
修复了装备的主动技能无法用于决策的问题。
评论(0)
暂无评论