Jamanra, the Abomination
Slug: Jamanra%2C_the_Abomination
Open Source Page
Tags:
2HSharpMetal_onhit_audio
human
humanoid
not_dex
not_int
red_blood
very_slow_movement
Areas:
Dreadnought Vanguard
The Copper Citadel
No custom art yet. Upload one to replace the placeholder.
Core Stat Percentiles
Spell Damage
668
Top 5.8%
Evasion Rating
905
Top 9.5%
Damage
668
Top 38%
Life
111,917
Top 69%
Armour
7,205
Top 69%
Accuracy
3,928
Top 69%
Other Notable Percentiles
Critical Damage Bonus
+30%
Top 0.1%
Level
80
Top 0.1%
Minion Life
72,302
Top 0.1%
Experience
300,000
Top 0.5%
Minion Armour
12,008
Top 0.5%
Minion Damage
3,553
Top 1.6%
Jamanra, the Abomination
Variant code: PerennialKingOverview
Implicit Mods: i am boss of tier [3] monster dropped item rarity +% [4800] monster slain experience +% [0]
Summary
| Spectre | N | |
|---|---|---|
| Area | Dreadnought Vanguard | |
| Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
Base Multipliers
Life
717%
Armour
+50%
Resistance
Damage
200%
Accuracy
100%
Critical Hits Chance
5%
Critical Damage Bonus
+30%
Attack Distance
6 ~ 18
Attack Time
1.5 Second
Damage Spread
±20%
Experience
300%
Model Size
100%
Type
PerennialKing
Metadata
PerennialKing
Extra Data
version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"
/* ------------------------------------------------------------------------------------------------------------------- */
/* Generic */
/* ------------------------------------------------------------------------------------------------------------------- */
BaseEvents
{
on_construction_complete = { globals.pen_king = this; AddToPlayerWakeGroup( true ); }
set_is_act_boss = true
}
Preload
{
preload_character_animation = "KnockdownLoop"
preload_animated_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingStage2OnlyCorpses.ao"
preload_environment = "G2_12_2"
}
Actor
{
basic_action = "MoveForced"
basic_action = "StrafeLeftNoFlee"
basic_action = "StrafeRightNoFlee"
leveled_starting_effects = "DoLiterallyNothing"
}
StateMachine
{
// the fake PK sets this to 0 when the emerge sequence begins, so it can swap to the correct skin
define_shared_state =
"
invis = 1;
lock_on;
tornados;
"
define_shared_checkpoint_state = "seen_intro;"
on_state_lock_on_0 = "SetUsesDirectionalRunAnimations( false );"
on_state_lock_on_1 = "SetUsesDirectionalRunAnimations( true );"
on_or_create_state_invis_0 = "MakeCollidable();"
on_or_create_state_invis_1 = "RemoveCollidability();"
}
Stats
{
set_monster_delay_item_drops_millis = 11000
strafe_distance_+% = -60
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Beacon Shared */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
// these states are used for ALL the beacon skills and keep track of the beacons, so the boss knows if it can use the other beacon skills
define_shared_state =
"
has_left_beacon = 1;
has_right_beacon = 1;
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Phase change to second arena */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
define_shared_state = "first_arena_complete;"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Obsidian Spear Toss (multi) */
/* ------------------------------------------------------------------------------------------------------------------- */
Animated
{
// this event fires a bit before the projectiles do, so they target a location that is a bit behind to prevent them from always hitting the target
// the target points are generated around a circle, so they need to be reshuffled to minimise projectile crossover
on_event_prepare_proj_center =
"
this.spear_count = 0;
this.multi_spear_target_center = target.GetLocation();
Call( generate_spear_target_points, multi_spear_target_center, 20.0, 8 );
this.target_points = null;
this.target_points += target_points2[2];
this.target_points += target_points2[1];
this.target_points += target_points2[3];
this.target_points += target_points2[0];
this.target_points += target_points2[4];
this.target_points += target_points2[7];
this.target_points += target_points2[5];
this.target_points += target_points2[6];
"
on_event_prepare_proj =
"
SetTargetLocation( GetVariablesFromGroup( target_points, spear_count, Index ), 0, 0, true );
this.spear_count = spear_count + 1;
"
}
Functions
{
// arg1: center (location)
// arg2: radius (float)
// arg3: num points (float)
generate_spear_target_points =
"
this.target_points2 = null;
this.angle = 0.0;
local angle_increment = 360.0 / arg3;
local pi = 3.14159265359;
Repeat( 8, ()
{
local new_loc = MakeLocation( arg1.x + Eval( arg2 * Cos( angle ) ), arg1.y + Eval( arg2 * Sin( angle ) ) );
this.target_points2 += new_loc;
this.angle = angle + angle_increment;
} );
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
define_shared_state = "lost_head;"
}
version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"
/* ------------------------------------------------------------------------------------------------------------------- */
/* Generic */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
// this state is set by the 'fake' perennial king that exists pre-emerge, so when it does emerge it can swap skins
// fake PK: Metadata/Terrain/Gallows/Act2/2_12_2/Objects/PerennialKingHuman
on_or_create_state_invis_0 = "EnableRendering();"
on_or_create_state_invis_1 = "DisableRendering();"
on_state_dead_1 =
{
globals.destructable_arena_core.PlayAnimation( crash_01 );
globals.destructable_arena_core.GoToAnimationEnd();
}
}
Render
{
use_ao_lights = true
allow_attached_arrows = false
}
Preload
{
preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/sand_storm_arena.ao"
preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/big_zap_01.ao"
preload_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingBeacon"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend1"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend2"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend3"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend4_"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend5"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend6"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend7"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend8"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend9"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend10__"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend11"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend12"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend13"
preload_environment = "G2_12_2_boss"
preload_misc_beam = "PerennialKingBeaconSprayBeam"
preload_misc_beam = "PerennialKingHandsprayBeam"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Movement/Turning */
/* ------------------------------------------------------------------------------------------------------------------- */
// whenever PK turns need to also play an additive turn animation, using the correct animation for the turn direction (left or right)
// can do this by constantly checking the monsters orientation (GetOrientation() and comparing it with its bearing (GetAnimatedBearing()))
// orientation is the server orientation, so this value will always be the actual direction the monster is facing
// bearing is the clients current facing direction, and this one does visually match with the monsters facing direction
// so whenever those two aren't the same, you can assume the monster is turning
// also, when the monster is moving don't do any of this cause it messes with the additive n-directional anims
Positioned
{
on_initial_position_set = "StartStateTimer( check_bearing );"
on_movement_started =
"
If( GetState( current_rotate_dir ) > 0, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
}
StateMachine
{
define_state = "current_rotate_dir;"
define_timer = "check_bearing = 0.033;"
// compare the bearing and orientation here, and then set the current_rotate_dir state to 1/2/11/12 (if its not already set)
// that state being set to one of those values causes the additive turn anim to play, then the state is reset after that anim is finished
// 1 and 2 are for the right turns, 1 being used for shorter turns (based on the angle_diff value), and 11/12 are for left with 11 being the short one
// there is a 10 degree no-turn forward angle, to prevent tiny turns that aren't needed
on_timer_check_bearing =
"
this.orientation = GetOrientation();
this.bearing = GetAnimatedBearing();
this.angle_diff = bearing - orientation;
this.angle_diff = Round( EvalIf( angle_diff > 180.0, angle_diff - 360.0, EvalIf( angle_diff < -180, angle_diff + 360.0, angle_diff ) ), 2 );
// If( angle_diff == 0.0, (){ FadeAnimations( 9, 0.666 ); } );
If( And( angle_diff > 5.0, angle_diff <= 45.0 ), ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 1 ); } );
} );
If( angle_diff > 45.0, ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 2 ); } );
} );
If( And( angle_diff < -5.0, angle_diff >= -45.0 ), ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 11 ); } );
} );
If( angle_diff < -45.0, ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 12 ); } );
} );
StartStateTimer( check_bearing );
"
// play a different additive turn anim for different turn directions and velocity
on_state_current_rotate_dir_1 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_02_right, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_2 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_01_right, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_11 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_02_left, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_12 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_01_left, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Phase change to second arena */
/* ------------------------------------------------------------------------------------------------------------------- */
Functions
{
fade_out = "FadeToBlack( 0, 3000, 6000 );"
destroy_cart_core = "globals.destructable_arena_core.PlayAnimationAtSpeed( crash_01, 1.0 );"
destroy_cart_core_instant =
"
globals.destructable_arena_core.PlayAnimation( crash_01 );
globals.destructable_arena_core.GoToAnimationEnd();
"
hide_player_weapons = "arg1.HideWeapons();"
show_player_weapons = "arg1.ShowWeapons();"
}
StateMachine
{
on_or_create_state_first_arena_complete_1 = "TriggerBracket( arena_sector_destruction, 1 );"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
on_or_create_state_lost_head_1 =
"
HideMeshSegment( PerennialKing_headShape );
DetachAllOfType( 'Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.fmt;Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.ao' );
"
}
Functions
{
get_up_asala = { PlayCharacterAudioEvent( AfterPerennialKingSeeAsala ); }
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Audio */
/* ------------------------------------------------------------------------------------------------------------------- */
GlobalAudioParamEvents
{
player_in_range_param = "PerennialKing2InRange"
life_percent_param = "PerennialKing2LifePercentage"
range = 130
}
Life
{
on_life_percent_reaches_1 = "PlayTextAudio( PerennialKing_Dreadnought_DeathMisc_7, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1500 );"
}
Actor
{
on_effect_start_CTS1BossFightStart = "QueueTextAudio( PerennialKing_Dreadnought_Intro_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 3500 );"
on_effect_start_GSPerennialKingBasicLightningZap =
"
Roll( 1, 6, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MASPerennialKingSandWhip =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_CTS5PerennialKingSandstorm =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_SummonSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconToss =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconBolts =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconLightning_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingLightningSpray =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconLightningSpray_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconOrbitStart =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconSend_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_CTS3PerennialKingMultistab =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconStab_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MPWPerennialKingGlassSpearToss =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GPAPerennialKingGlassSpearMultiToss =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_SpearThrow_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GAPerennialKingGlassSwordSlam =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_2hSword_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EAAPerennialKingGlassSwordFence =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Lacerate_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GAPerennialKingAxeCleave =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MDPerennialKingObsidianStorm =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_ObsidianTornado_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MDPerennialKingTornado =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Tornado_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_SOPerennialKingObsidianMinigun =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconElectrify_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASAbsoluteCartnage =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Countess_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1000 );
} );
"
on_effect_event_contact_for_EASPerennialKingOrbitTornado =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeastSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
}
Animated
{
on_heavy_stun_01 =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_HeavyStun_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_death_idle_01 =
"
Delay( 2, { PlayTextAudio( PerennialKing_Dreadnought_PostStabDeath, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' ); } );
"
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/PerennialKingStage2/PerennialKing"] = {
name = "Jamanra, the Abomination",
life = 7.17,
fireResist = 0,
coldResist = 0,
lightningResist = 0,
chaosResist = 0,
damage = 2,
damageSpread = 0.2,
attackTime = 1.5,
attackRange = 18,
accuracy = 1,
skillList = {
"MASPerennialKingSandWhip",
"GPAPerennialKingGlassSpearMultiToss",
"MPWPerennialKingGlassSpearToss",
"MPWPerennialKingObsidianMinigun",
"CTS1PerennialKingEndMultistab",
"CTS3PerennialKingMultistab",
"CTS5PerennialKingSandstorm",
"CTS1PerennialKingEndSandstorm",
"GAPerennialKingBeaconSpearStab",
"GAPerennialKingBeaconSpearImpact",
"GSPerennialKingBeaconOrbitLightningBeam",
"GSPerennialKingBasicLightningZap",
"GAPerennialKingGlassSwordSlam",
"GAPerennialKingAxeCleave",
"GAPerennialKingObsidianStormImpact",
"GSPerennialKingSandnadoPhysDamage",
"GSPerennialKingSandnadoLightningDamage",
"GSPerennialKingBeaconSpray",
"GAPerennialKingGlassSpearTossImpact",
"GAPerennialKingGlassSpearTossImpactMulti",
"GSPerennialKingGlassSwordFenceZap",
"EASPerennialKingBeaconToss",
"EASPerennialKingBeaconBolts",
"EASPerennialKingLightningSpray",
"EASPerennialKingBeaconOrbitStart",
"EASPerennialKingBeaconOrbitRecall",
"EASAbsoluteCartnage",
"EAAPerennialKingGlassSwordFence",
"EASPerennialKingOrbitTornado",
"MDPerennialKingObsidianStorm",
"MDPerennialKingTornado",
"SOPerennialKingObsidianMinigun",
"SOPerennialKingGlassSpearMultiRock",
"SOPerennialKingGlassSwordFence",
"GTPerennialKingGlassSpearToss",
"EDSPerennialKingBeaconLightningBolt",
},
modList = {
},
}
-- src\Data\Skills\spectre.lua
skills["MASPerennialKingSandWhip"] = {
name = "Basic Attack",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.MeleeSingleTarget] = true,
[SkillType.Melee] = true,
[SkillType.ProjectilesFromUser] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
melee = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"skill_can_fire_arrows",
"skill_can_fire_wand_projectiles",
"action_attack_or_cast_time_uses_animation_length",
"projectile_uses_contact_position",
"use_scaled_contact_offset",
},
levels = {
[1] = {8, baseMultiplier = 0.75, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GPAPerennialKingGlassSpearMultiToss"] = {
name = "GPAPerennialKingGlassSpearMultiToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_projectile_speed_+%_variation_final",
"projectile_spread_radius",
"base_is_projectile",
"use_scaled_contact_offset",
"projectile_uses_contact_position",
"action_attack_or_cast_time_uses_animation_length",
"always_pierce",
},
levels = {
[1] = {70, 0, 5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingGlassSpearToss"] = {
name = "MPWPerennialKingGlassSpearToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.ProjectilesFromUser] = true,
[SkillType.Damage] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_projectile_variation",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"base_is_projectile",
"projectile_uses_contact_position",
"action_attack_or_cast_time_uses_animation_length",
"always_pierce",
},
levels = {
[1] = {1125, 25, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingObsidianMinigun"] = {
name = "MPWPerennialKingObsidianMinigun",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.ProjectilesFromUser] = true,
[SkillType.Damage] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_projectile_variation",
"projectile_spread_radius",
"projectile_ballistic_gravity_override",
"projectile_maximum_range_override",
"active_skill_projectile_speed_+%_variation_final",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"base_is_projectile",
"action_attack_or_cast_time_uses_animation_length",
"projectile_ballistic_angle_from_target_distance",
},
levels = {
[1] = {1127, 0, 400, 250, 20, 25, baseMultiplier = 0.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS1PerennialKingEndMultistab"] = {
name = "CTS1PerennialKingEndMultistab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS3PerennialKingMultistab"] = {
name = "CTS3PerennialKingMultistab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS5PerennialKingSandstorm"] = {
name = "CTS5PerennialKingSandstorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS1PerennialKingEndSandstorm"] = {
name = "CTS1PerennialKingEndSandstorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingBeaconSpearStab"] = {
name = "GAPerennialKingBeaconSpearStab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {200, baseMultiplier = 0.7, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingBeaconSpearImpact"] = {
name = "GAPerennialKingBeaconSpearImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {200, baseMultiplier = 0.9, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconOrbitLightningBeam"] = {
name = "GSPerennialKingBeaconOrbitLightningBeam",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBasicLightningZap"] = {
name = "GSPerennialKingBasicLightningZap",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"spell_maximum_action_distance_+%",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_can_be_blocked",
},
levels = {
[1] = {0.5, 1.5, -85, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSwordSlam"] = {
name = "GAPerennialKingGlassSwordSlam",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {25, 35, 200, baseMultiplier = 4.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingAxeCleave"] = {
name = "GAPerennialKingAxeCleave",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {12, 25, 200, baseMultiplier = 4, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingObsidianStormImpact"] = {
name = "GAPerennialKingObsidianStormImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {200, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoPhysDamage"] = {
name = "GSPerennialKingSandnadoPhysDamage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {200, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoLightningDamage"] = {
name = "GSPerennialKingSandnadoLightningDamage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconSpray"] = {
name = "GSPerennialKingBeaconSpray",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"active_skill_shock_chance_+%_final",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_can_be_blocked",
"base_skill_cannot_be_parried",
},
levels = {
[1] = {0.5, 1.5, 25, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpact"] = {
name = "GAPerennialKingGlassSpearTossImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_is_projectile",
},
levels = {
[1] = {25, 200, baseMultiplier = 1.8, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpactMulti"] = {
name = "GAPerennialKingGlassSpearTossImpactMulti",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_is_projectile",
},
levels = {
[1] = {25, 200, baseMultiplier = 1.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingGlassSwordFenceZap"] = {
name = "GSPerennialKingGlassSwordFenceZap",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"active_skill_electrocutes_as_though_dealt_damage_+%_final",
"base_skill_effect_duration",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_lightning_damage_can_electrocute",
"base_skill_can_be_avoided_by_dodge_roll",
},
levels = {
[1] = {0.5, 1.5, 90, 4000, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconToss"] = {
name = "EASPerennialKingBeaconToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_maximum_action_distance_+%",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {-35, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconBolts"] = {
name = "EASPerennialKingBeaconBolts",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingLightningSpray"] = {
name = "EASPerennialKingLightningSpray",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconOrbitStart"] = {
name = "EASPerennialKingBeaconOrbitStart",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconOrbitRecall"] = {
name = "EASPerennialKingBeaconOrbitRecall",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASAbsoluteCartnage"] = {
name = "EASAbsoluteCartnage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EAAPerennialKingGlassSwordFence"] = {
name = "EAAPerennialKingGlassSwordFence",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {30, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingOrbitTornado"] = {
name = "EASPerennialKingOrbitTornado",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MDPerennialKingObsidianStorm"] = {
name = "MDPerennialKingObsidianStorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Multicastable] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MDPerennialKingTornado"] = {
name = "MDPerennialKingTornado",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Multicastable] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingObsidianMinigun"] = {
name = "SOPerennialKingObsidianMinigun",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingGlassSpearMultiRock"] = {
name = "SOPerennialKingGlassSpearMultiRock",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingGlassSwordFence"] = {
name = "SOPerennialKingGlassSwordFence",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GTPerennialKingGlassSpearToss"] = {
name = "GTPerennialKingGlassSpearToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EDSPerennialKingBeaconLightningBolt"] = {
name = "EDSPerennialKingBeaconLightningBolt",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {0.5, 1.5, 150, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
Jamanra, the Abomination
Variant code: PerennialKingMapOverview
Implicit Mods: i am boss of tier [3] monster dropped item rarity +% [4800] monster slain experience +% [0] 200 % increased chance to Shock
Summary
| Spectre | N | |
|---|---|---|
| Area | The Copper Citadel | |
| Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
Base Multipliers
Life
717%
Armour
+50%
Resistance
Damage
200%
Accuracy
100%
Critical Hits Chance
5%
Critical Damage Bonus
+30%
Attack Distance
6 ~ 18
Attack Time
1.5 Second
Damage Spread
±20%
Experience
300%
Model Size
100%
Type
PerennialKingMap
Metadata
PerennialKingMap
Extra Data
version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"
/* ------------------------------------------------------------------------------------------------------------------- */
/* Generic */
/* ------------------------------------------------------------------------------------------------------------------- */
BaseEvents
{
on_construction_complete = { globals.pen_king = this; AddToPlayerWakeGroup( true ); }
}
Preload
{
preload_character_animation = "KnockdownLoop"
preload_animated_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingStage2OnlyCorpses.ao"
preload_environment = "G2_12_2"
}
Actor
{
basic_action = "MoveForced"
basic_action = "StrafeLeftNoFlee"
basic_action = "StrafeRightNoFlee"
leveled_starting_effects = "DoLiterallyNothing"
}
StateMachine
{
// the fake PK sets this to 0 when the emerge sequence begins, so it can swap to the correct skin
define_shared_state =
"
invis = 1;
lock_on;
tornados;
seen_intro = 1;
"
on_state_lock_on_0 = "SetUsesDirectionalRunAnimations( false );"
on_state_lock_on_1 = "SetUsesDirectionalRunAnimations( true );"
on_or_create_state_invis_0 = "MakeCollidable();"
on_or_create_state_invis_1 = "RemoveCollidability();"
}
Stats
{
set_monster_delay_item_drops_millis = 11000
strafe_distance_+% = -60
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Beacon Shared */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
// these states are used for ALL the beacon skills and keep track of the beacons, so the boss knows if it can use the other beacon skills
define_shared_state =
"
has_left_beacon = 1;
has_right_beacon = 1;
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Obsidian Spear Toss (multi) */
/* ------------------------------------------------------------------------------------------------------------------- */
Animated
{
// this event fires a bit before the projectiles do, so they target a location that is a bit behind to prevent them from always hitting the target
// the target points are generated around a circle, so they need to be reshuffled to minimise projectile crossover
on_event_prepare_proj_center =
"
this.spear_count = 0;
this.multi_spear_target_center = target.GetLocation();
Call( generate_spear_target_points, multi_spear_target_center, 20.0, 8 );
this.target_points = null;
this.target_points += target_points2[2];
this.target_points += target_points2[1];
this.target_points += target_points2[3];
this.target_points += target_points2[0];
this.target_points += target_points2[4];
this.target_points += target_points2[7];
this.target_points += target_points2[5];
this.target_points += target_points2[6];
"
on_event_prepare_proj =
"
SetTargetLocation( GetVariablesFromGroup( target_points, spear_count, Index ), 0, 0, true );
this.spear_count = spear_count + 1;
"
}
Functions
{
// arg1: center (location)
// arg2: radius (float)
// arg3: num points (float)
generate_spear_target_points =
"
this.target_points2 = null;
this.angle = 0.0;
local angle_increment = 360.0 / arg3;
local pi = 3.14159265359;
Repeat( 8, ()
{
local new_loc = MakeLocation( arg1.x + Eval( arg2 * Cos( angle ) ), arg1.y + Eval( arg2 * Sin( angle ) ) );
this.target_points2 += new_loc;
this.angle = angle + angle_increment;
} );
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
define_shared_state = "lost_head;"
}
version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"
/* ------------------------------------------------------------------------------------------------------------------- */
/* Generic */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
// this state is set by the 'fake' perennial king that exists pre-emerge, so when it does emerge it can swap skins
// fake PK: Metadata/Terrain/Gallows/Act2/2_12_2/Objects/PerennialKingHuman
on_or_create_state_invis_0 = "EnableRendering();"
on_or_create_state_invis_1 = "DisableRendering();"
on_state_dead_1 =
{
globals.destructable_arena_core.PlayAnimation( crash_01 );
globals.destructable_arena_core.GoToAnimationEnd();
}
}
Render
{
use_ao_lights = true
allow_attached_arrows = false
}
Preload
{
preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/sand_storm_arena.ao"
preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/big_zap_01.ao"
preload_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingBeacon"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend1"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend2"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend3"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend4_"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend5"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend6"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend7"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend8"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend9"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend10__"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend11"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend12"
preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend13"
preload_environment = "G2_12_2_boss"
preload_misc_beam = "PerennialKingBeaconSprayBeam"
preload_misc_beam = "PerennialKingHandsprayBeam"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Movement/Turning */
/* ------------------------------------------------------------------------------------------------------------------- */
// whenever PK turns need to also play an additive turn animation, using the correct animation for the turn direction (left or right)
// can do this by constantly checking the monsters orientation (GetOrientation() and comparing it with its bearing (GetAnimatedBearing()))
// orientation is the server orientation, so this value will always be the actual direction the monster is facing
// bearing is the clients current facing direction, and this one does visually match with the monsters facing direction
// so whenever those two aren't the same, you can assume the monster is turning
// also, when the monster is moving don't do any of this cause it messes with the additive n-directional anims
Positioned
{
on_initial_position_set = "StartStateTimer( check_bearing );"
on_movement_started =
"
If( GetState( current_rotate_dir ) > 0, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
}
StateMachine
{
define_state = "current_rotate_dir;"
define_timer = "check_bearing = 0.033;"
// compare the bearing and orientation here, and then set the current_rotate_dir state to 1/2/11/12 (if its not already set)
// that state being set to one of those values causes the additive turn anim to play, then the state is reset after that anim is finished
// 1 and 2 are for the right turns, 1 being used for shorter turns (based on the angle_diff value), and 11/12 are for left with 11 being the short one
// there is a 10 degree no-turn forward angle, to prevent tiny turns that aren't needed
on_timer_check_bearing =
"
this.orientation = GetOrientation();
this.bearing = GetAnimatedBearing();
this.angle_diff = bearing - orientation;
this.angle_diff = Round( EvalIf( angle_diff > 180.0, angle_diff - 360.0, EvalIf( angle_diff < -180, angle_diff + 360.0, angle_diff ) ), 2 );
// If( angle_diff == 0.0, (){ FadeAnimations( 9, 0.666 ); } );
If( And( angle_diff > 5.0, angle_diff <= 45.0 ), ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 1 ); } );
} );
If( angle_diff > 45.0, ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 2 ); } );
} );
If( And( angle_diff < -5.0, angle_diff >= -45.0 ), ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 11 ); } );
} );
If( angle_diff < -45.0, ()
{
If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 12 ); } );
} );
StartStateTimer( check_bearing );
"
// play a different additive turn anim for different turn directions and velocity
on_state_current_rotate_dir_1 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_02_right, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_2 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_01_right, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_11 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_02_left, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
on_state_current_rotate_dir_12 =
"
If( GetCurrentMoveSpeed() < 1.0, ()
{
PlayAdditiveAnimation( turn_01_left, 9 );
Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
}, (){ SetStateTo( current_rotate_dir, 0 ); } );
"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Phase change to second arena */
/* ------------------------------------------------------------------------------------------------------------------- */
Functions
{
fade_out = "FadeToBlack( 0, 3000, 6000 );"
destroy_cart_core = "globals.destructable_arena_core.PlayAnimationAtSpeed( crash_01, 1.0 );"
destroy_cart_core_instant =
"
globals.destructable_arena_core.PlayAnimation( crash_01 );
globals.destructable_arena_core.GoToAnimationEnd();
"
hide_player_weapons = "arg1.HideWeapons();"
show_player_weapons = "arg1.ShowWeapons();"
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */
StateMachine
{
on_or_create_state_lost_head_1 =
"
HideMeshSegment( PerennialKing_headShape );
DetachAllOfType( 'Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.fmt;Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.ao' );
SetGlobalAudioParam( PerennialKingUberDeath, 1 );
"
}
Functions
{
get_up_asala = { PlayCharacterAudioEvent( AfterPerennialKingSeeAsala ); }
}
/* ------------------------------------------------------------------------------------------------------------------- */
/* Audio */
/* ------------------------------------------------------------------------------------------------------------------- */
GlobalAudioParamEvents
{
player_in_range_param = "PerennialKing2InRange"
life_percent_param = "PerennialKing2LifePercentage"
range = 130
}
Life
{
on_life_percent_reaches_1 =
"
PlayTextAudio( PerennialKing_Dreadnought_DeathMisc_7, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1500 );
SetGlobalAudioParam( PerennialKingUberDeath, 1 );
"
}
Actor
{
on_effect_start_CTS1BossFightStart = "QueueTextAudio( PerennialKing_Dreadnought_Intro_ThisEnds_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 3500 );"
on_effect_start_GSPerennialKingBasicLightningZap =
"
Roll( 1, 6, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MASPerennialKingSandWhip =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_CTS5PerennialKingSandstorm =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_SummonSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconToss =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconBolts =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconLightning_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingLightningSpray =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconLightningSpray_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASPerennialKingBeaconOrbitStart =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconSend_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_CTS3PerennialKingMultistab =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconStab_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MPWPerennialKingGlassSpearToss =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GPAPerennialKingGlassSpearMultiToss =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_SpearThrow_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GAPerennialKingGlassSwordSlam =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_2hSword_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EAAPerennialKingGlassSwordFence =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Lacerate_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_GAPerennialKingAxeCleave =
"
Roll( 1, 5, ()
{
PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MDPerennialKingObsidianStorm =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_ObsidianTornado_2, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_MDPerennialKingTornado =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Tornado_4, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_SOPerennialKingObsidianMinigun =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeaconElectrify_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
on_effect_start_EASAbsoluteCartnage =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_Countess_3, 'Metadata/Monsters/PerennialKingStage2/PerennialKing');
} );
"
on_effect_event_contact_for_EASPerennialKingOrbitTornado =
"
Roll( 1, 1, ()
{
PlayTextAudio( PerennialKing_Dreadnought_BeastSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
}
Animated
{
on_heavy_stun_01 =
"
Roll( 1, 2, ()
{
PlayTextAudio( PerennialKing_Dreadnought_HeavyStun_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
} );
"
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/PerennialKingStage2/PerennialKingMap"] = {
name = "Jamanra, the Abomination",
life = 7.17,
fireResist = 0,
coldResist = 0,
lightningResist = 0,
chaosResist = 0,
damage = 2,
damageSpread = 0.2,
attackTime = 1.5,
attackRange = 18,
accuracy = 1,
skillList = {
"MASPerennialKingSandWhip",
"GPAPerennialKingGlassSpearMultiToss",
"MPWPerennialKingGlassSpearToss",
"MPWPerennialKingObsidianMinigun",
"CTS1PerennialKingEndMultistab",
"CTS3PerennialKingMultistab",
"CTS5PerennialKingSandstorm",
"CTS1PerennialKingEndSandstorm",
"GAPerennialKingBeaconSpearStab",
"GAPerennialKingBeaconSpearImpact",
"GSPerennialKingBeaconOrbitLightningBeam",
"GSPerennialKingBasicLightningZap",
"GAPerennialKingGlassSwordSlam",
"GAPerennialKingAxeCleave",
"GAPerennialKingObsidianStormImpact",
"GSPerennialKingSandnadoPhysDamage",
"GSPerennialKingSandnadoLightningDamage",
"GSPerennialKingBeaconSpray",
"GAPerennialKingGlassSpearTossImpact",
"GAPerennialKingGlassSpearTossImpactMulti",
"GSPerennialKingGlassSwordFenceZap",
"EASPerennialKingBeaconToss",
"EASPerennialKingBeaconBolts",
"EASPerennialKingLightningSpray",
"EASPerennialKingBeaconOrbitStart",
"EASPerennialKingBeaconOrbitRecall",
"EASAbsoluteCartnage",
"EAAPerennialKingGlassSwordFence",
"EASPerennialKingOrbitTornado",
"MDPerennialKingObsidianStorm",
"MDPerennialKingTornado",
"SOPerennialKingObsidianMinigun",
"SOPerennialKingGlassSpearMultiRock",
"SOPerennialKingGlassSwordFence",
"GTPerennialKingGlassSpearToss",
"EDSPerennialKingBeaconLightningBolt",
},
modList = {
},
}
-- src\Data\Skills\spectre.lua
skills["MASPerennialKingSandWhip"] = {
name = "Basic Attack",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.MeleeSingleTarget] = true,
[SkillType.Melee] = true,
[SkillType.ProjectilesFromUser] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
melee = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"skill_can_fire_arrows",
"skill_can_fire_wand_projectiles",
"action_attack_or_cast_time_uses_animation_length",
"projectile_uses_contact_position",
"use_scaled_contact_offset",
},
levels = {
[1] = {8, baseMultiplier = 0.75, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GPAPerennialKingGlassSpearMultiToss"] = {
name = "GPAPerennialKingGlassSpearMultiToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_projectile_speed_+%_variation_final",
"projectile_spread_radius",
"base_is_projectile",
"use_scaled_contact_offset",
"projectile_uses_contact_position",
"action_attack_or_cast_time_uses_animation_length",
"always_pierce",
},
levels = {
[1] = {70, 0, 5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingGlassSpearToss"] = {
name = "MPWPerennialKingGlassSpearToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.ProjectilesFromUser] = true,
[SkillType.Damage] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_projectile_variation",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"base_is_projectile",
"projectile_uses_contact_position",
"action_attack_or_cast_time_uses_animation_length",
"always_pierce",
},
levels = {
[1] = {1125, 25, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingObsidianMinigun"] = {
name = "MPWPerennialKingObsidianMinigun",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Attack] = true,
[SkillType.RangedAttack] = true,
[SkillType.MirageArcherCanUse] = true,
[SkillType.Projectile] = true,
[SkillType.ProjectilesFromUser] = true,
[SkillType.Damage] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_projectile_variation",
"projectile_spread_radius",
"projectile_ballistic_gravity_override",
"projectile_maximum_range_override",
"active_skill_projectile_speed_+%_variation_final",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"base_is_projectile",
"action_attack_or_cast_time_uses_animation_length",
"projectile_ballistic_angle_from_target_distance",
},
levels = {
[1] = {1127, 0, 400, 250, 20, 25, baseMultiplier = 0.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS1PerennialKingEndMultistab"] = {
name = "CTS1PerennialKingEndMultistab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS3PerennialKingMultistab"] = {
name = "CTS3PerennialKingMultistab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS5PerennialKingSandstorm"] = {
name = "CTS5PerennialKingSandstorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["CTS1PerennialKingEndSandstorm"] = {
name = "CTS1PerennialKingEndSandstorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingBeaconSpearStab"] = {
name = "GAPerennialKingBeaconSpearStab",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {200, baseMultiplier = 0.7, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingBeaconSpearImpact"] = {
name = "GAPerennialKingBeaconSpearImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {200, baseMultiplier = 0.9, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconOrbitLightningBeam"] = {
name = "GSPerennialKingBeaconOrbitLightningBeam",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
},
levels = {
[1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBasicLightningZap"] = {
name = "GSPerennialKingBasicLightningZap",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"spell_maximum_action_distance_+%",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_can_be_blocked",
},
levels = {
[1] = {0.5, 1.5, -85, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSwordSlam"] = {
name = "GAPerennialKingGlassSwordSlam",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {25, 35, 200, baseMultiplier = 4.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingAxeCleave"] = {
name = "GAPerennialKingAxeCleave",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {12, 25, 200, baseMultiplier = 4, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingObsidianStormImpact"] = {
name = "GAPerennialKingObsidianStormImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {200, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoPhysDamage"] = {
name = "GSPerennialKingSandnadoPhysDamage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {200, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoLightningDamage"] = {
name = "GSPerennialKingSandnadoLightningDamage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconSpray"] = {
name = "GSPerennialKingBeaconSpray",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"active_skill_shock_chance_+%_final",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_can_be_blocked",
"base_skill_cannot_be_parried",
},
levels = {
[1] = {0.5, 1.5, 25, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpact"] = {
name = "GAPerennialKingGlassSpearTossImpact",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_is_projectile",
},
levels = {
[1] = {25, 200, baseMultiplier = 1.8, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpactMulti"] = {
name = "GAPerennialKingGlassSpearTossImpactMulti",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Attack] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
attack = true,
area = true,
projectile = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"active_skill_base_physical_damage_%_to_convert_to_lightning",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_is_projectile",
},
levels = {
[1] = {25, 200, baseMultiplier = 1.5, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingGlassSwordFenceZap"] = {
name = "GSPerennialKingGlassSwordFenceZap",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "geometry_spell",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"active_skill_electrocutes_as_though_dealt_damage_+%_final",
"base_skill_effect_duration",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_lightning_damage_can_electrocute",
"base_skill_can_be_avoided_by_dodge_roll",
},
levels = {
[1] = {0.5, 1.5, 90, 4000, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconToss"] = {
name = "EASPerennialKingBeaconToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_maximum_action_distance_+%",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {-35, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconBolts"] = {
name = "EASPerennialKingBeaconBolts",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingLightningSpray"] = {
name = "EASPerennialKingLightningSpray",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconOrbitStart"] = {
name = "EASPerennialKingBeaconOrbitStart",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconOrbitRecall"] = {
name = "EASPerennialKingBeaconOrbitRecall",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASAbsoluteCartnage"] = {
name = "EASAbsoluteCartnage",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EAAPerennialKingGlassSwordFence"] = {
name = "EAAPerennialKingGlassSwordFence",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"attack_maximum_action_distance_+",
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {30, levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingOrbitTornado"] = {
name = "EASPerennialKingOrbitTornado",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MDPerennialKingObsidianStorm"] = {
name = "MDPerennialKingObsidianStorm",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Multicastable] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["MDPerennialKingTornado"] = {
name = "MDPerennialKingTornado",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Multicastable] = true,
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingObsidianMinigun"] = {
name = "SOPerennialKingObsidianMinigun",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingGlassSpearMultiRock"] = {
name = "SOPerennialKingGlassSpearMultiRock",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["SOPerennialKingGlassSwordFence"] = {
name = "SOPerennialKingGlassSwordFence",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["GTPerennialKingGlassSpearToss"] = {
name = "GTPerennialKingGlassSpearToss",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
},
baseMods = {
},
qualityStats = {
},
stats = {
"action_attack_or_cast_time_uses_animation_length",
},
levels = {
[1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, },
},
}
-- src\Data\Skills\spectre.lua
skills["EDSPerennialKingBeaconLightningBolt"] = {
name = "EDSPerennialKingBeaconLightningBolt",
hidden = true,
color = ,
baseEffectiveness = 0,
incrementalEffectiveness = 0,
skillTypes = {
[SkillType.Triggerable] = true,
[SkillType.Spell] = true,
[SkillType.Damage] = true,
},
statDescriptionScope = "skill_stat_descriptions",
castTime = 1,
baseFlags = {
spell = true,
area = true,
},
baseMods = {
},
qualityStats = {
},
stats = {
"spell_minimum_base_lightning_damage",
"spell_maximum_base_lightning_damage",
"monster_penalty_against_minions_damage_+%_final_vs_player_minions",
"is_area_damage",
"action_attack_or_cast_time_uses_animation_length",
"base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
},
levels = {
[1] = {0.5, 1.5, 150, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, },
},
}