✓ ESS21仅限 【TA】【技能】冰钩(0720)

TAAAAAAA

天王
成员
2024-06-16
173
1
27
1,110
这个帖子我们来看一下这个技能该如何实现。

招式:冰钩 属性:冰 物理
威力:90 pp:10 命中:100
被命中的宝可梦进行替换时会再受到一次此招式的伤害

参考:https://bbs.pokefans.cn/threads/230/

关于这个技能,总得来说的话,难点就在于技能的效果,而不在于技能本身,所以我们也就不新创建技能了。
我们只需要把这个效果做出来,接着给需要这个效果的技能分配这个效果就好了。

这个效果是——被该技能命中的精灵替换时,会再受到一次这个技能的伤害。

我们从描述入手,大概可以预见,我们需要新增加两个基于battler的变量。
一个用于记录被这个技能命中的精灵,另一个用于记录这个技能造成的伤害。

所以,新增加变量——
1721484059543.png
Ruby:
  attr_accessor :switchSoftLock
  attr_accessor :switchCost
初始化——
1721484118380.png
Ruby:
    @switchSoftLock          = false
    @switchCost              = 0

接着,搜索pbEffectsAfterMove,并修改代码如下——
1721484239032.png
Ruby:
    if move.switchSoftLockMove?
      targets.each do |b|
        next if b.damageState.unaffected || b.damageState.substitute
        @battle.pbDisplay(_INTL("{1}受到了重创!", b.pbThis))
        b.switchSoftLock = true
      end
    end
这里是在技能成功造成伤害之后,记录精灵被这个技能造成了伤害。
也就是说,具有这个“标记”的精灵,才会在替换时再次受到伤害。

这里用了一个新方法switchSoftLockMove?,我们需要给它定义一下,搜索pbInflictHPDamage,在上方增加如下代码——
1721484508129.png
Ruby:
  def switchSoftLockMove?
    [].include?(@id)
  end
这个方法用于检查哪些技能具有这个效果。
目前还有没任何技能具有这个效果,那我们就把电光加进去,让电光具有这个效果——
Ruby:
  def switchSoftLockMove?
    [:SPARK].include?(@id)
  end

接着,搜索pbReduceDamage——
1721484756195.png
找到这个方法的最后面,加上一行——
1721484789826.png
Ruby:
    target.switchCost               = damage if switchSoftLockMove?
这里记录下这个技能造成的实际伤害。

到目前为止,我们达成了——
1.哪些技能具有这个效果
2.哪些精灵会受到这个效果
3.这个效果生效时会造成的伤害

也就是说,我们还需要最后一步,那就是,在受到这个效果的精灵替换时,应用伤害。

搜索pbAttackPhaseSwitch,并增加一行代码——
1721485176625.png
Ruby:
      pbSwitchLockedCost(b)
在上方新增加一个pbSwitchLockedCost方法——
1721485599305.png
Ruby:
  def pbSwitchLockedCost(battler)
    return if !battler.switchSoftLock
    @switching = true
    pbDisplay(_INTL("{1}受到了2次伤害!", battler.name))
    battler.switchSoftLock = false
    @scene.pbDamageAnimation(battler)
    battler.pbReduceHP(battler.switchCost, false)
    battler.pbFaint if battler.fainted?
    @switching = false
  end
这里是应用伤害。

这样就好了。

视频预览——

浏览附件2024-07-20 22-30-04.mp4

感谢阅读。
 
最后编辑:
  • 支持
反馈: 帆高mo

在线成员

现在没有会员在线。

论坛统计

主题
458
消息
2,072
会员
2,854
最新会员
jiuchuan

关于我们

  • 宝可梦以及其他相关名称是任天堂的商标,版权归宝可梦公司所有。宝可饭堂是一个同人游戏中文社区,不隶属于宝可梦公司。在宝可饭堂上的粉丝游戏亦未获得其授权,请支持正版游戏。
© 2022- pokefans.cn
点此延长宝可饭堂生命