Kodoka
หุ่นกล
จำนวน โทเทมอัญเชิญ สูงสุด +5 เสา
totem art variation [1]
damage vs tiki totems +% [300]
เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
cannot be stunned for ms after stun finished [2000]
cannot be stunned while stunned [1]
เพิ่มพลังชีวิตของ โทเทม 857%
SpectreN
Tagsนักเวท, construct, immobile, is_unarmed, large_height, large_model, lightning_affinity, mud_blood, not_dex, ranged, standalone_map_boss, stone_armour
Packs
  • Kodoka, Kodaka, Totem
  • พลังชีวิต
    400%
    Energy Shield From Life
    50%
    เกราะ
    +50%
    Ailment Threshold
    400%
    ค่าต้านทาน
    40 40 40 25
    Damage
    200%
    ความแม่นยำ
    100%
    โอกาสคริติคอล
    +5%
    ตัวคูณคริติคอล
    +130%
    Attack Distance
    6 ~ 6
    Attack Time
    1.5 Second
    Damage Spread
    ±0%
    ค่าประสบการณ์
    200%
    Model Size
    180%
    Type
    TotemMapBossLightningPlateau
    Metadata
    TotemMapBossLightningNecropolis
    เลเวล
    68
    พลังชีวิต
    557,385
    เกราะ
    43,185
    การหลบหลีก
    4,739
    โล่พลังงาน
    3,064
    Damage
    851
    ความเสียหายเวท
    1,270
    ความแม่นยำ
    290
    Attack Time
    1.005
    ค่าประสบการณ์
    112,805
    Ailment Threshold
    351,153
    Chill
    1,110
    Shock
    1,110
    Brittle
    6,282
    Scorch
    1,110
    Sap
    3,068
    TotemMapBossSparkTotems
    Spell, Projectile, ProjectilesFromUser, Damage, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Lightning, CanRapidFire
    ประกายสายฟ้า (Spark)
    โอกาสคริติคอล: 5%
    ประสิทธิภาพการเสริมความเสียหาย: 50%
    เวลาร่าย: 0.65 วินาที
    ยิงประกายไฟที่คาดเดาไม่ได้ซึ่งเคลื่อนไปแบบสุ่มจนกว่าจะปะทะศัตรูหรือหมดเวลา
    สร้างความเสียหาย สายฟ้า 208.4 ถึง 677.3
    โทเทม คงอยู่ 8 วินาที
    ระยะเวลาพื้นฐาน 1.75 วินาที
    ยิงกระสุน เพิ่มเติม 2 ลูก
    อัญเชิญ โทเทม 1 เสา ที่ใช้ สกิลนี้
    เพิ่มความเร็วกระสุน 25%
    base active skill totem level [68]
    base is projectile [1]
    base totem range [80]
    number of totems summoned in formation [1]
    TotemMapBossLightningMortarProjectile
    Projectile, ProjectilesFromUser, Spell, Damage, Area, Trappable, Totemable, Mineable, Multicastable, Triggerable, AreaSpell
    เวลาร่าย: 1 วินาที
    คูลดาวน์: 2 วินาที
    สกิลระเบิดปูพรมของมอนสเตอร์ทั่วไป ทำงานเหมือนกับ กระสุนของมอนสเตอร์ แต่มีผลในการกระทบด้วย
    สร้างความเสียหาย สายฟ้า 1141 ถึง 1711
    สกิล เกิดซ้ำ เพิ่มเติม 6 ครั้ง
    เพิ่มความเร็วในการร่าย 100%
    base is projectile [1]
    is area damage [1]
    projectile speed variation +% [10]
    projectile spread radius [20]
    projectiles not offset [1]
    TotemMapBossLightningStormCascade
    Spell, Damage, Area, Fire, Triggerable, AreaSpell
    เวลาร่าย: 1 วินาที
    คูลดาวน์: 10 วินาที
    สร้างความเสียหาย สายฟ้า 362.8 ถึง 906.9
    ระยะเวลาพื้นฐาน 2 วินาที
    ระยะเวลารองพื้นฐาน 1.5 วินาที
    ลูกไฟตก 1 ลูก ทุก 0.27 วินาที
    ทำให้เกิด การปะทุ +10 ครั้ง
    active skill area of effect radius +% final [-50]
    base skill show average damage instead of dps [1]
    is area damage [1]
    skill override pvp scaling time ms [450]
    LightningOrbs
    Damage, Area, Lightning, Spell, AreaSpell
    เวลาร่าย: 1 วินาที
    คูลดาวน์: 6 วินาที
    สร้างความเสียหาย สายฟ้า 232.7 ถึง 349.1
    ยิงกระสุน เพิ่มเติม 4 ลูก
    ลดความเร็วในการเคลื่อนที่ 98%
    active skill area of effect radius +% final [30]
    base projectile ground effect duration [4000]
    is area damage [1]
    projectiles drop ground lightning [1]
    RepeatedPulseLightningTotemBoss
    Spell, Area, Duration, Cold, Fire, Lightning, AreaSpell
    เวลาร่าย: 3 วินาที
    คูลดาวน์: 15 วินาที
    ค่าต้านทาน สายฟ้า -10%
    ระยะเวลาพื้นฐาน 3 วินาที
    LightningProjectileSpiralTotemBossTeamBAtollDaemon
    Spell, Projectile, ProjectilesFromUser, Triggerable
    เวลาร่าย: 1 วินาที
    สร้างความเสียหาย สายฟ้า 440.3 ถึง 1321
    ยิงกระสุน 50 ลูกเป็นเกลียวหมุนวน
    base is projectile [1]
    cast when triggered by other skill % [100]
    monster projectile variation [4]
    monster reverse point blank damage -% at minimum range [40]
    projectile spiral nova time ms [3000]

    Object Type

    Object Type Codes

     
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/LeagueNecropolis/TotemMapBossLightningNecropolis"] = {
        name = "Kodoka",
        life = 4,
        energyShield = 0.5,
        fireResist = 40,
        coldResist = 40,
        lightningResist = 40,
        chaosResist = 25,
        damage = 2,
        damageSpread = 0,
        attackTime = 1.5,
        attackRange = 6,
        accuracy = 1,
        skillList = {
            "TotemMapBossSparkTotems",
            "LightningProjectileSpiralTotemBossTeamBAtollDaemon",
            "TotemMapBossLightningMortarProjectile",
            "RepeatedPulseLightningTotemBoss",
            "TotemMapBossLightningStormCascade",
            "LightningOrbs",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["TotemMapBossSparkTotems"] = {
        name = "Spark",
        hidden = true,
        color = "1",
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Launches unpredictable sparks that move randomly until they hit an enemy or expire.",
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Damage] = true,
            [SkillType.Duration] = true,
            [SkillType.Trappable] = true,
            [SkillType.Totemable] = true,
            [SkillType.Mineable] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
            [SkillType.Lightning] = true,
            [SkillType.CanRapidFire] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 0.65,
        baseFlags = {
            spell = true,
            projectile = true,
            duration = true,
            totem = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "base_active_skill_totem_level",
            "base_skill_effect_duration",
            "number_of_additional_projectiles",
            "base_totem_duration",
            "base_totem_range",
            "number_of_totems_summoned_in_formation",
            "base_projectile_speed_+%",
            "is_totem",
            "base_is_projectile",
        },
        levels = {
            [1] = {0.050000000745058, 0.80000001192093, 4, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 4, statInterpolation = {3, 3, 1},  cost = { }, },
            [2] = {0.050000000745058, 0.80000001192093, 8, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 8, statInterpolation = {3, 3, 1},  cost = { }, },
            [3] = {0.050000000745058, 0.80000001192093, 11, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 11, statInterpolation = {3, 3, 1},  cost = { }, },
            [4] = {0.050000000745058, 0.80000001192093, 15, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 15, statInterpolation = {3, 3, 1},  cost = { }, },
            [5] = {0.050000000745058, 0.80000001192093, 20, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 20, statInterpolation = {3, 3, 1},  cost = { }, },
            [6] = {0.050000000745058, 0.80000001192093, 28, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 28, statInterpolation = {3, 3, 1},  cost = { }, },
            [7] = {0.050000000745058, 0.80000001192093, 29, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 29, statInterpolation = {3, 3, 1},  cost = { }, },
            [8] = {0.050000000745058, 0.80000001192093, 31, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 31, statInterpolation = {3, 3, 1},  cost = { }, },
            [9] = {0.050000000745058, 0.80000001192093, 32, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 32, statInterpolation = {3, 3, 1},  cost = { }, },
            [10] = {0.050000000745058, 0.80000001192093, 34, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 34, statInterpolation = {3, 3, 1},  cost = { }, },
            [11] = {0.050000000745058, 0.80000001192093, 37, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 37, statInterpolation = {3, 3, 1},  cost = { }, },
            [12] = {0.050000000745058, 0.80000001192093, 40, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 40, statInterpolation = {3, 3, 1},  cost = { }, },
            [13] = {0.050000000745058, 0.80000001192093, 42, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 42, statInterpolation = {3, 3, 1},  cost = { }, },
            [14] = {0.050000000745058, 0.80000001192093, 44, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 44, statInterpolation = {3, 3, 1},  cost = { }, },
            [15] = {0.050000000745058, 0.80000001192093, 50, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 50, statInterpolation = {3, 3, 1},  cost = { }, },
            [16] = {0.050000000745058, 0.80000001192093, 51, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 51, statInterpolation = {3, 3, 1},  cost = { }, },
            [17] = {0.050000000745058, 0.80000001192093, 52, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 52, statInterpolation = {3, 3, 1},  cost = { }, },
            [18] = {0.050000000745058, 0.80000001192093, 63, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 63, statInterpolation = {3, 3, 1},  cost = { }, },
            [19] = {0.050000000745058, 0.80000001192093, 65, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 65, statInterpolation = {3, 3, 1},  cost = { }, },
            [20] = {0.050000000745058, 0.80000001192093, 66, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 66, statInterpolation = {3, 3, 1},  cost = { }, },
            [21] = {0.050000000745058, 0.80000001192093, 67, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 67, statInterpolation = {3, 3, 1},  cost = { }, },
            [22] = {0.40000000596046, 1.2999999523163, 68, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 68, statInterpolation = {3, 3, 1},  cost = { }, },
            [23] = {0.40000000596046, 1.2999999523163, 69, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 69, statInterpolation = {3, 3, 1},  cost = { }, },
            [24] = {0.40000000596046, 1.2999999523163, 70, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 70, statInterpolation = {3, 3, 1},  cost = { }, },
            [25] = {0.40000000596046, 1.2999999523163, 71, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 71, statInterpolation = {3, 3, 1},  cost = { }, },
            [26] = {0.40000000596046, 1.2999999523163, 72, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 72, statInterpolation = {3, 3, 1},  cost = { }, },
            [27] = {0.40000000596046, 1.2999999523163, 73, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 73, statInterpolation = {3, 3, 1},  cost = { }, },
            [28] = {0.40000000596046, 1.2999999523163, 74, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 74, statInterpolation = {3, 3, 1},  cost = { }, },
            [29] = {0.40000000596046, 1.2999999523163, 75, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 75, statInterpolation = {3, 3, 1},  cost = { }, },
            [30] = {0.40000000596046, 1.2999999523163, 76, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 76, statInterpolation = {3, 3, 1},  cost = { }, },
            [31] = {0.40000000596046, 1.2999999523163, 77, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 77, statInterpolation = {3, 3, 1},  cost = { }, },
            [32] = {0.40000000596046, 1.2999999523163, 78, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 78, statInterpolation = {3, 3, 1},  cost = { }, },
            [33] = {0.40000000596046, 1.2999999523163, 79, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 79, statInterpolation = {3, 3, 1},  cost = { }, },
            [34] = {0.40000000596046, 1.2999999523163, 80, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 80, statInterpolation = {3, 3, 1},  cost = { }, },
            [35] = {0.40000000596046, 1.2999999523163, 81, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 81, statInterpolation = {3, 3, 1},  cost = { }, },
            [36] = {0.40000000596046, 1.2999999523163, 82, 1750, 2, 8000, 80, 1, 25, critChance = 5, levelRequirement = 82, statInterpolation = {3, 3, 1},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["LightningProjectileSpiralTotemBossTeamBAtollDaemon"] = {
        name = "LightningProjectileSpiralTotemBossTeamBAtollDaemon",
        hidden = true,
        color = "3",
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Triggerable] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "monster_projectile_variation",
            "base_number_of_projectiles_in_spiral_nova",
            "projectile_spiral_nova_time_ms",
            "projectile_spiral_nova_angle",
            "monster_reverse_point_blank_damage_-%_at_minimum_range",
            "cast_when_triggered_by_other_skill_%",
            "base_is_projectile",
        },
        levels = {
            [1] = {0.5, 1.5, 4, 50, 3000, 4500, 40, 100, levelRequirement = 3, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["TotemMapBossLightningMortarProjectile"] = {
        name = "TotemMapBossLightningMortarProjectile",
        hidden = true,
        color = 4,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Generic monster mortar skill. Like Monster Projectile but has an impact effect.",
        skillTypes = {
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.Area] = true,
            [SkillType.Trappable] = true,
            [SkillType.Totemable] = true,
            [SkillType.Mineable] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
            [SkillType.AreaSpell] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "skill_repeat_count",
            "base_cast_speed_+%",
            "projectile_spread_radius",
            "projectile_speed_variation_+%",
            "is_area_damage",
            "base_is_projectile",
            "projectiles_not_offset",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 4, 80, 20, 10, levelRequirement = 1, statInterpolation = {3, 3, 1, 1},  cost = { }, },
            [2] = {0.80000001192093, 1.2000000476837, 6, 100, 20, 10, levelRequirement = 68, statInterpolation = {3, 3, 1, 1},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["RepeatedPulseLightningTotemBoss"] = {
        name = "RepeatedPulseLightningTotemBoss",
        hidden = true,
        color = 4,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Area] = true,
            [SkillType.Duration] = true,
            [SkillType.Cold] = true,
            [SkillType.Fire] = true,
            [SkillType.Lightning] = true,
            [SkillType.AreaSpell] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 3,
        baseFlags = {
            area = true,
            spell = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "base_lightning_damage_resistance_%",
            "base_skill_effect_duration",
        },
        levels = {
            [1] = {-10, 3000, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["TotemMapBossLightningStormCascade"] = {
        name = "TotemMapBossLightningStormCascade",
        hidden = true,
        color = 4,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.Area] = true,
            [SkillType.Fire] = true,
            [SkillType.Triggerable] = true,
            [SkillType.AreaSpell] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "base_skill_effect_duration",
            "fire_storm_fireball_delay_ms",
            "skill_override_pvp_scaling_time_ms",
            "upheaval_number_of_spikes",
            "base_secondary_skill_effect_duration",
            "active_skill_area_of_effect_radius_+%_final",
            "base_skill_show_average_damage_instead_of_dps",
            "is_area_damage",
        },
        levels = {
            [1] = {1.2000000476837, 3, 2000, 270, 450, 10, 1500, -50, levelRequirement = 68, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["LightningOrbs"] = {
        name = "LightningOrbs",
        hidden = true,
        color = 4,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Damage] = true,
            [SkillType.Area] = true,
            [SkillType.Lightning] = true,
            [SkillType.Spell] = true,
            [SkillType.AreaSpell] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "number_of_additional_projectiles",
            "base_movement_velocity_+%",
            "base_projectile_ground_effect_duration",
            "active_skill_area_of_effect_radius_+%_final",
            "is_area_damage",
            "projectiles_drop_ground_lightning",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 4, -98, 4000, 30, levelRequirement = 68, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    
    จำนวน โทเทมอัญเชิญ สูงสุด +5 เสา
    IdMonsterAdditionalTotems
    FamilyAdditionalTotems
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • number of additional totems allowed Min: 5 Max: 5 Global
  • totem art variation [1]
    IdMonsterTotemVariationTiki
    FamilyTotemVariation
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • totem art variation Min: 1 Max: 1 Global
  • damage vs tiki totems +% [300]
    IdIncreasedDamageVersusTikiTotems
    FamilyIncreasedDamageVersusTikiTotems
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • damage vs tiki totems +% Min: 300 Max: 300 Global
  • Craft Tagsdamage
    เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
    มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
    IdMonsterMapBoss
    FamilyMonsterMapBoss
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 100 Max: 100 Global
  • monster dropped item rarity +% Min: 15000 Max: 15000 Global
  • cannot be stunned for ms after stun finished [2000]
    cannot be stunned while stunned [1]
    IdStunRepeatImmunityMapBoss_
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • cannot be stunned while stunned Min: 1 Max: 1 Global
  • cannot be stunned for ms after stun finished Min: 2000 Max: 2000 Global
  • IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    เพิ่มพลังชีวิตของ โทเทม 857%
    IdMonsterTotemLifeMapBoss
    FamilyIncreasedTotemLife
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • totem life +% Min: 857 Max: 857 Global
  • Craft Tagsresource life
    Edit

    Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.