Towing Tentacle
Lvl: 1 Attack Range: 99

Summons a single Tentacle on one random side of the deck, which will attract the adventurers on the field and the existing Corrupted Whirlpool towards itself. When Corrupted Whirlpool touches it, the tentacle will disappear.

Formula

function CommonFun.calcDamage_20(srcUser, targetUser, params, damageParam, logger)
  local Str = srcUser:GetProperty("Str")
  local Dex = srcUser:GetProperty("Dex")
  local Luk = srcUser:GetProperty("Luk")
  local Atk = srcUser:GetProperty("Atk")
  local AtkPer = srcUser:GetProperty("AtkPer")
  local DamIncrease = srcUser:GetProperty("DamIncrease")
  local IgnoreDef = 0
  local IgnoreDef1 = srcUser:GetProperty("IgnoreDef")
  local IgnoreDef2 = srcUser:GetProperty("IgnoreEquipDef")
  if targetUser.boss or targetUser.mini then
    IgnoreDef = IgnoreDef1
  else
    IgnoreDef = IgnoreDef1 + IgnoreDef2
  end
  if 1 <= IgnoreDef then
    IgnoreDef = 1
  end
  local Refine = srcUser:GetProperty("Refine")
  local Def2 = targetUser:GetProperty("Def")
  local DefPer2 = targetUser:GetProperty("DefPer")
  local Vit2 = targetUser:GetProperty("Vit")
  local VitPer2 = targetUser:GetProperty("VitPer")
  local DamReduc2 = CommonFun.calcDamReDuc(srcUser, targetUser)
  local RefineDamReduc = targetUser:GetProperty("RefineDamReduc")
  local damChangePer = damageParam.damChangePer
  local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
  local bodyparam = CommonFun.CalcBodyParam(srcUser, targetUser, params, damageParam, logger)
  local elementparam = CommonFun.CalcElementParam(srcUser, targetUser, params, damageParam, logger)
  local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
  local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
  local bodyparam2 = CommonFun.CalcBodyParam2(srcUser, targetUser, params, damageParam, logger)
  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
  local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
  if skillID == 380_RUNE_KNIGHT:SONIC_CLAW or skillID == 383_RUNE_KNIGHT:SILVER_CHARGE or skillID == 384_RUNE_KNIGHT:TINDER_BREAKER then
    AtkPer = 0
  end
  local BaseAtk = Str * 2 + math.floor(Str * Str / 100) + math.floor(Dex / 5) + math.floor(Luk / 5)
  local AtkFinal = ((Atk - BaseAtk) * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * bodyparam * elementparam * elementparam2 + BaseAtk) * raceparam * bossparam * bossparam2
  local DefReduc = CommonFun.CalcDef(srcUser, targetUser)
  local ShortRangeDamReduc2 = targetUser:GetProperty("ShortRangeDamReduc")
  local A = (AtkFinal * DefReduc * (1 - DamReduc2) + Refine) * damChangePer * (1 - RefineDamReduc) * (1 + DamIncrease - ShortRangeDamReduc2) - Vit2 * (1 + VitPer2)
  if A <= 1 then
    return 1
  end
  return A
end

Formula

{
  "id": 23609001,
  "Cost": 0,
  "Desc": [
    {
      "id": 23609001,
      "params": [
        100
      ]
    }
  ],
  "Icon": "skill_1328001",
  "Camps": "Enemy",
  "Level": 1,
  "Logic": "SkillSelfRange",
  "Damage": [
    {
      "type": 20,
      "damChangePer": 1,
      "elementparam": 5
    }
  ],
  "DescId": "##1191173",
  "NameZh": "##1191031",
  "DamTime": {
    "type": 1,
    "value": 1
  },
  "Fire_EP": 3,
  "AttackAct": [
    "attack"
  ],
  "Attack_EP": 0,
  "SkillType": "Attack",
  "Target_EP": 3,
  "HitEffects": [
    {
      "type": 1,
      "speed": 20,
      "distance": 5,
      "direction": "forward"
    }
  ],
  "Logic_Param": {
    "range": 99,
    "noSpeak": 1,
    "range_num": 12
  },
  "Launch_Range": 99
}