Jamanra, the Abomination





Area: Dreadnought Vanguard
monster dropped item rarity +% [4800]
monster slain experience +% [0]
monster slain experience +% [0]
Spectre | N |
---|---|
Area | Dreadnought Vanguard |
Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
Life
717%
Armour
+50%
Resistance




Damage
200%
Accuracy
100%
Critical Hits Chance
5%
Attack Distance
6 ~ 18
Attack Time
1.5 Second
Damage Spread
±20%
Experience
300%
Model Size
100%
Type
PerennialKing
Metadata
PerennialKing
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
Level
32
Life
4,897
Armour
356
Evasion Rating
266
Damage
131
Spell Damage
131
Accuracy
576
Attack Time
1.5
Experience
6,426
Minion Life
12,433
Minion Damage
245
Minion Armour
593
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
GSPerennialKingBasicLightningZap
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
action attack or cast time uses animation length [1]
base skill can be blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
spell maximum action distance +% [-85]
MASPerennialKingSandWhip
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
Basic Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 75%
Attack Time: 1.5 sec
Cooldown Time: 6 sec
Deals 25% less Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [8]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]

CTS5PerennialKingSandstorm
action attack or cast time uses animation length [1]
CTS1PerennialKingEndSandstorm
action attack or cast time uses animation length [1]
EASPerennialKingBeaconToss
action attack or cast time uses animation length [1]
spell maximum action distance +% [-35]
EASPerennialKingBeaconBolts
Cooldown Time: 15 sec
action attack or cast time uses animation length [1]
EASPerennialKingLightningSpray
Cooldown Time: 22.5 sec
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitStart
Cooldown Time: 30 sec
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitRecall
action attack or cast time uses animation length [1]
CTS3PerennialKingMultistab
Cooldown Time: 25 sec
action attack or cast time uses animation length [1]
CTS1PerennialKingEndMultistab
action attack or cast time uses animation length [1]
MPWPerennialKingGlassSpearToss
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Time: 1.5 sec
Cooldown Time: 18 sec
Pierces all Targets
action attack or cast time uses animation length [1]
base is projectile [1]
monster projectile variation [1125]
projectile uses contact position [1]
GPAPerennialKingGlassSpearMultiToss
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Time: 1.5 sec
Cooldown Time: 17 sec
Pierces all Targets
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [0]
attack maximum action distance + [70]
base is projectile [1]
projectile spread radius [5]
projectile uses contact position [1]
use scaled contact offset [1]
GAPerennialKingGlassSwordSlam
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 450%
Attack Time: 1.5 sec
Cooldown Time: 18 sec
Deals 350% more Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [25]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EAAPerennialKingGlassSwordFence
Cooldown Time: 17 sec
action attack or cast time uses animation length [1]
attack maximum action distance + [30]
GAPerennialKingAxeCleave
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 400%
Attack Time: 1.5 sec
Cooldown Time: 26 sec
Deals 300% more Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [12]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MDPerennialKingObsidianStorm
Multicastable, Triggerable
Cooldown Time: 40 sec
action attack or cast time uses animation length [1]
MDPerennialKingTornado
Multicastable, Triggerable
Cooldown Time: 42 sec
action attack or cast time uses animation length [1]
EASPerennialKingOrbitTornado
action attack or cast time uses animation length [1]
SOPerennialKingObsidianMinigun
Triggerable
Cooldown Time: 17 sec
action attack or cast time uses animation length [1]
EASAbsoluteCartnage
action attack or cast time uses animation length [1]
GSPerennialKingBeaconSpray
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
25% more chance to Shock
action attack or cast time uses animation length [1]
base skill can be blocked [1]
base skill cannot be parried [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearStab
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 70%
Attack Time: 1.5 sec
Deals 30% less Attack Damage
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearImpact
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 90%
Attack Time: 1.5 sec
Deals 10% less Attack Damage
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingBeaconOrbitLightningBeam
Triggerable, Spell, Damage
Cast Time: 1 sec
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EDSPerennialKingBeaconLightningBolt
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
action attack or cast time uses animation length [1]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [150]
GTPerennialKingGlassSpearToss
Triggerable
action attack or cast time uses animation length [1]
GAPerennialKingGlassSpearTossImpact
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 180%
Attack Time: 1.5 sec
Deals 80% more Attack Damage
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingGlassSpearTossImpactMulti
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 150%
Attack Time: 1.5 sec
Deals 50% more Attack Damage
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
SOPerennialKingGlassSpearMultiRock
Triggerable
action attack or cast time uses animation length [1]
SOPerennialKingGlassSwordFence
Triggerable
action attack or cast time uses animation length [1]
GSPerennialKingGlassSwordFenceZap
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
90% more Electrocution buildup
action attack or cast time uses animation length [1]
base skill can be avoided by dodge roll [1]
base skill effect duration [4000]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingObsidianStormImpact
Triggerable, Attack
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Time: 1.5 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoPhysDamage
Triggerable, Spell, Damage
Cast Time: 1 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoLightningDamage
Triggerable, Spell, Damage
Cast Time: 1 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MPWPerennialKingObsidianMinigun
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 104–157
Critical Hit Chance: 5%
Attack Damage: 50%
Attack Time: 1.5 sec
Deals 50% less Attack Damage
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [20]
base is projectile [1]
monster projectile variation [1127]
projectile ballistic angle from target distance [1]
projectile ballistic gravity override [400]
projectile maximum range override [250]
projectile spread radius [0]
Object Type
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;" }
Object Type Codes
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 = { }, }, }, }
monster dropped item rarity +% [4800]
monster slain experience +% [0]
Family | MonsterActBoss |
---|---|
Domains | Monster (3) |
GenerationType | Unique (3) |
Req. level | 1 |
Stats |
key | val |
---|---|
StateMachine./* | , |
StateMachine.boss_life_bar - controls when to show the big life bar (also requires the checkbox in MonsterVarieties to be checked) | |
StateMachine.0: Life bar is hidden | |
StateMachine.1: Life bar is visible, will hide on death | |
StateMachine.dont_hide_lifebar_on_unaggro - controls whether the boss life bar should be hidden when the boss unaggros | |
StateMachine.0: Life bar is hidden after a short duration when the boss loses aggro | |
StateMachine.1: Life bar remains visible the entire time, can still be controlled by setting the disable_life_bar state | |
StateMachine.show_life_bar_when_in_range - delay the life bar from showing up, until the boss is on screen (for wild bosses) | |
StateMachine.0: Life bar behaves as normal | |
StateMachine.1: Life bar initially only shows up when a player can see the boss on screen, this doesn't make it get removed if the player goes off screen though | |
StateMachine.hidden - replaces the Unaggro+hidden_monster combo, and optionally pauses delirium fog | |
StateMachine.0: Make aggro and remove hidden monster buff | |
StateMachine.1: Unaggro and add hidden monster buff | |
StateMachine.2: Unaggro, add hidden monster buff and pause delirium fog | |
StateMachine.light - controls the boss point light, attaches to head_light_attachment if it exists (otherwise uses the default) | |
StateMachine.0: Light off, handles the fade out | |
StateMachine.1: Light on, handles the fade in | |
StateMachine.introsequence - for bosses that are doing something before you rudely interrupt them | |
StateMachine.boss uses the ChangeToStance1BossFightStart granted effect for this, which is added through the actor component in here | |
StateMachine.0: no intro sequence | |
StateMachine.1: boss starts off in stance2, then does change to stance1 when a proximity trigger is triggered | |
StateMachine.intro_zoom - for bosses that should have the camera zoom out during the intro | |
StateMachine.0: no zoom | |
StateMachine.1: zoom enabled, with default values. These can be overridden in the monsters ots. | |
StateMachine.intro_pan - for bosses that should have the camera pan towards them during the intro | |
StateMachine.0: no pan | |
StateMachine.1: pan enabled, with default values. These can be overridden in the monsters ots. | |
StateMachine.use_offset_camera_controller - if this is set to 1, the boss will spawn and use a specific object as the zoom/pan center point | |
StateMachine.The location of this object needs to be set by the boss too, if it isn't you will get warning message | |
StateMachine.See GreatWhiteOne (shark boss) as an example, but all you really need is to set the state to 1 and move the object after it spawns | |
StateMachine.0: use self as zoom/pan origin | |
StateMachine.1: use a new object as the zoom/pan origin | |
StateMachine.door_type - defaults to 0 for no door (or no boss control over door), other values are related to specific door types | |
StateMachine.When used, also need to do 'set_telepad_index | x' in the monsters ots (BaseEvents), where x is the telepad index |
StateMachine.0: disable telepad, but only if a telepad index has been set | |
StateMachine.1: force field door, forcefield blocks entrance on boss aggro, is removed on boss death (requires Metadata/MiscellaneousObjects/BossForceFieldDoor.ot in arena) | |
StateMachine.2: prisoner boss door, closed on fight start, doesn't reopen afterwards (Metadata/Terrain/Gallows/Act4/4_5_2/Objects/PrisonBossDoor.ot) | |
StateMachine.roaming - State for disabling instant portals on roaming bosses vs arena bosses. | |
StateMachine.0: Arena Boss | |
StateMachine.1: Roaming Boss | |
StateMachine.arena_sector_id - If there are multiple arena bosses in an instance, each boss needs a different arena_sector_id INCLUDING roaming bosses | |
StateMachine.It defaults to 1 so most bosses wont need this to be changed | |
StateMachine.Currently supports up to three different bosses, but its easy to add more | |
StateMachine.This state value is used to decide which boss sectors to destroy, see the triggerbracket on death in the BossBase.ots for more detail | |
StateMachine.use_custom_sector_removal_handling - Set to 1 if a boss needs to use its own custom handling for sector removal on death (eg Mastodon) | |
StateMachine.0: default behaviour, arena sector is removed on boss death | |
StateMachine.1: custom behaviour, this disables the on death sector removal in boss base, so will need to be handled in the bosses otc AND ots | |
StateMachine.quick_death_enabled - Use this for bosses with long deaths that are visible when you resurrect at checkpoint after killing them | |
StateMachine.DO NOT set the quick_death state manually, this will cause the monster to do its quick death anim when it first dies | |
StateMachine.0: default behaviour, death will be played at regular speed | |
StateMachine.1: death anim is sped up by 10000x, this should be used for bosses that have events in their death that need to trigger | |
StateMachine.2: death anim is sped up by 1000x, deaths with move events dont like being super fast so they can use this slower one | |
StateMachine.am_final_boss_in_fight - This is used for multi boss fights to handle resurrecting etc after killing a single boss from fight | |
StateMachine.0: reaching this state toggles part_of_multiple_boss_fight to be true, and signifies that this boss is not the final boss | |
StateMachine.1: default value, will remain here unless another boss turns flips it to 0 | |
StateMachine.part_of_multiple_boss_fight - helper state for the above, shouldn't be interacted with manually | |
StateMachine.0: currently not part of a multi boss fight | |
StateMachine.1: was part of a multi boss fight at some point | |
StateMachine.*/ | , |
StateMachine.define_shared_state = | |
StateMachine." | , |
StateMachine.boss_life_bar; | |
StateMachine.hidden; | |
StateMachine.light; | |
StateMachine.introsequence; | |
StateMachine.disable_life_bar; | |
StateMachine.intro_zoom; | |
StateMachine.intro_pan; | |
StateMachine.use_offset_camera_controller; | |
StateMachine.door_type; | |
StateMachine.roaming; | |
StateMachine.first_aggro; | |
StateMachine.room_marker; | |
StateMachine.arena_sector_id | 1; |
StateMachine.use_custom_sector_removal_handling; | |
StateMachine.quick_death_enabled; | |
StateMachine.quick_death; | |
StateMachine.am_final_boss_in_fight | 1; |
StateMachine.part_of_multiple_boss_fight; | |
StateMachine.dead - Boss is dead. This state is saved to the character checkpoint, so if you respawn at checkpoint this state will be automatically set. In BossBase.ots, this also calls KillSelfNoDrops(). | |
StateMachine.if you DON'T want this state to save/load automatically, use StateMachine{ checkpoint_save_dead | false } |
StateMachine.0: Boss is alive | |
StateMachine.1: Boss is dead | |
StateMachine.2: Boss is dead and corpse is hidden | |
StateMachine.define_shared_checkpoint_state | dead |
StateMachine.define_shared_state | lost_head; |
Actor.slow_animations_go_to_idle | false |
Actor.leveled_starting_effects | CTS1BossFightStart, DoLiterallyNothing |
Actor.basic_action | MoveForced, StrafeLeftNoFlee, StrafeRightNoFlee |
Stats.corpse_cannot_be_destroyed | 1 |
Stats.base_heavy_stun_duration_ms | 4000 |
Stats.additional_life_scaling_index | 6 |
Stats.monster_delay_item_drops_millis | 11000 |
Stats.strafe_distance_+% | -60 |
Life.corpse_usable | false |
Monster.is_boss | true |
BaseEvents.on_construction_complete | { globals.pen_king = this; AddToPlayerWakeGroup( true ); } |
BaseEvents.is_act_boss | true |
Preload.preload_character_animation | KnockdownLoop |
Preload.preload_animated_object | Metadata/Monsters/PerennialKingStage2/PerennialKingStage2OnlyCorpses.ao |
Preload.preload_environment | G2_12_2 |
Animated.on_event_prepare_proj_center = | |
Animated." | , , , |
Animated.this.spear_count | 0;, spear_count + 1; |
Animated.this.multi_spear_target_center | target.GetLocation(); |
Animated.Call( generate_spear_target_points, multi_spear_target_center, 20.0, 8 ); | |
Animated.this.target_points | null; |
Animated.this.target_points += target_points2[2]; | |
Animated.this.target_points += target_points2[1]; | |
Animated.this.target_points += target_points2[3]; | |
Animated.this.target_points += target_points2[0]; | |
Animated.this.target_points += target_points2[4]; | |
Animated.this.target_points += target_points2[7]; | |
Animated.this.target_points += target_points2[5]; | |
Animated.this.target_points += target_points2[6]; | |
Animated.on_event_prepare_proj = | |
Animated.SetTargetLocation( GetVariablesFromGroup( target_points, spear_count, Index ), 0, 0, true ); | |
Functions.generate_spear_target_points = | |
Functions." | , |
Functions.this.target_points2 | null; |
Functions.this.angle | 0.0;, angle + angle_increment; |
Functions.local angle_increment | 360.0 / arg3; |
Functions.local pi | 3.14159265359; |
Functions.Repeat( 8, () | |
Functions.local new_loc | MakeLocation( arg1.x + Eval( arg2 * Cos( angle ) ), arg1.y + Eval( arg2 * Sin( angle ) ) ); |
Functions.this.target_points2 += new_loc; | |
Functions.} ); |
Jamanra, the Abomination





Area: The Copper Citadel
monster dropped item rarity +% [4800]
monster slain experience +% [0]
monster dropped item quantity +% [800]
monster dropped item rarity +% [3200]
monster map key of at least same tier as current map drop chance % [25]
monster slain experience +% [9000]
unique monster guarantee one rare [1]
200% increased chance to Shock
monster slain experience +% [0]
monster dropped item quantity +% [800]
monster dropped item rarity +% [3200]
monster map key of at least same tier as current map drop chance % [25]
monster slain experience +% [9000]
unique monster guarantee one rare [1]
200% increased chance to Shock
Spectre | N |
---|---|
Area | The Copper Citadel |
Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
Life
717%
Armour
+50%
Resistance




Damage
200%
Accuracy
100%
Critical Hits Chance
5%
Attack Distance
6 ~ 18
Attack Time
1.5 Second
Damage Spread
±20%
Experience
300%
Model Size
100%
Type
PerennialKingMap
Metadata
PerennialKingMap
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
Level
80
Life
111,917
Armour
7,205
Evasion Rating
905
Damage
668
Spell Damage
668
Accuracy
3,718
Attack Time
1.5
Experience
300,000
Minion Life
72,302
Minion Damage
3,553
Minion Armour
12,008
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
GSPerennialKingBasicLightningZap
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
action attack or cast time uses animation length [1]
base skill can be blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
spell maximum action distance +% [-85]
MASPerennialKingSandWhip
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
Basic Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 75%
Attack Time: 1.5 sec
Cooldown Time: 6 sec
Deals 25% less Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [8]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]

CTS5PerennialKingSandstorm
action attack or cast time uses animation length [1]
CTS1PerennialKingEndSandstorm
action attack or cast time uses animation length [1]
EASPerennialKingBeaconToss
action attack or cast time uses animation length [1]
spell maximum action distance +% [-35]
EASPerennialKingBeaconBolts
Cooldown Time: 15 sec
action attack or cast time uses animation length [1]
EASPerennialKingLightningSpray
Cooldown Time: 22.5 sec
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitStart
Cooldown Time: 30 sec
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitRecall
action attack or cast time uses animation length [1]
CTS3PerennialKingMultistab
Cooldown Time: 25 sec
action attack or cast time uses animation length [1]
CTS1PerennialKingEndMultistab
action attack or cast time uses animation length [1]
MPWPerennialKingGlassSpearToss
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Time: 1.5 sec
Cooldown Time: 18 sec
Pierces all Targets
action attack or cast time uses animation length [1]
base is projectile [1]
monster projectile variation [1125]
projectile uses contact position [1]
GPAPerennialKingGlassSpearMultiToss
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Time: 1.5 sec
Cooldown Time: 17 sec
Pierces all Targets
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [0]
attack maximum action distance + [70]
base is projectile [1]
projectile spread radius [5]
projectile uses contact position [1]
use scaled contact offset [1]
GAPerennialKingGlassSwordSlam
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 450%
Attack Time: 1.5 sec
Cooldown Time: 18 sec
Deals 350% more Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [25]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EAAPerennialKingGlassSwordFence
Cooldown Time: 17 sec
action attack or cast time uses animation length [1]
attack maximum action distance + [30]
GAPerennialKingAxeCleave
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 400%
Attack Time: 1.5 sec
Cooldown Time: 26 sec
Deals 300% more Attack Damage
action attack or cast time uses animation length [1]
attack maximum action distance + [12]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MDPerennialKingObsidianStorm
Multicastable, Triggerable
Cooldown Time: 40 sec
action attack or cast time uses animation length [1]
MDPerennialKingTornado
Multicastable, Triggerable
Cooldown Time: 42 sec
action attack or cast time uses animation length [1]
EASPerennialKingOrbitTornado
action attack or cast time uses animation length [1]
SOPerennialKingObsidianMinigun
Triggerable
Cooldown Time: 17 sec
action attack or cast time uses animation length [1]
EASAbsoluteCartnage
action attack or cast time uses animation length [1]
GSPerennialKingBeaconSpray
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
25% more chance to Shock
action attack or cast time uses animation length [1]
base skill can be blocked [1]
base skill cannot be parried [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearStab
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 70%
Attack Time: 1.5 sec
Deals 30% less Attack Damage
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearImpact
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 90%
Attack Time: 1.5 sec
Deals 10% less Attack Damage
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingBeaconOrbitLightningBeam
Triggerable, Spell, Damage
Cast Time: 1 sec
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EDSPerennialKingBeaconLightningBolt
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
action attack or cast time uses animation length [1]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [150]
GTPerennialKingGlassSpearToss
Triggerable
action attack or cast time uses animation length [1]
GAPerennialKingGlassSpearTossImpact
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 180%
Attack Time: 1.5 sec
Deals 80% more Attack Damage
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingGlassSpearTossImpactMulti
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 150%
Attack Time: 1.5 sec
Deals 50% more Attack Damage
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
SOPerennialKingGlassSpearMultiRock
Triggerable
action attack or cast time uses animation length [1]
SOPerennialKingGlassSwordFence
Triggerable
action attack or cast time uses animation length [1]
GSPerennialKingGlassSwordFenceZap
Triggerable, Spell, Damage
Critical Hit Chance: 6%
Cast Time: 1 sec
90% more Electrocution buildup
action attack or cast time uses animation length [1]
base skill can be avoided by dodge roll [1]
base skill effect duration [4000]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingObsidianStormImpact
Triggerable, Attack
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Time: 1.5 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoPhysDamage
Triggerable, Spell, Damage
Cast Time: 1 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoLightningDamage
Triggerable, Spell, Damage
Cast Time: 1 sec
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MPWPerennialKingObsidianMinigun
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 534–801
Critical Hit Chance: 5%
Attack Damage: 50%
Attack Time: 1.5 sec
Deals 50% less Attack Damage
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [20]
base is projectile [1]
monster projectile variation [1127]
projectile ballistic angle from target distance [1]
projectile ballistic gravity override [400]
projectile maximum range override [250]
projectile spread radius [0]
Object Type
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;" }
Object Type Codes
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 = { }, }, }, }
monster dropped item rarity +% [4800]
monster slain experience +% [0]
Family | MonsterActBoss |
---|---|
Domains | Monster (3) |
GenerationType | Unique (3) |
Req. level | 1 |
Stats |
monster dropped item quantity +% [800]
monster dropped item rarity +% [3200]
monster map key of at least same tier as current map drop chance % [25]
monster slain experience +% [9000]
unique monster guarantee one rare [1]
Family | MonsterMapBoss |
---|---|
Domains | Monster (3) |
GenerationType | Unique (3) |
Req. level | 1 |
Stats |
200% increased chance to Shock
Family | ShockChanceIncrease |
---|---|
Domains | Monster (3) |
GenerationType | Unique (3) |
Req. level | 1 |
Stats | |
Adds Tags | no_fire_spell_mods no_cold_spell_mods no_chaos_spell_mods |
Jamanra, the Abomination Text Audio /141
Edit
Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.
Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.