憎惡者.賈嫚拉
人形地區: 無畏隊先鋒
i am boss of tier [3]
monster dropped item rarity +% [4800]
monster slain experience +% [0]
monster dropped item rarity +% [4800]
monster slain experience +% [0]
Jamanra, the Abomination
| Spectre | N |
|---|---|
| Area | 無畏隊先鋒 |
| Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
生命
717%
+50%
抗性
傷害
200%
命中
100%
暴擊 Chance
5%
+30%
Attack Distance
6 ~ 18
攻擊時間
1.5 Second
Damage Spread
±20%
經驗值
300%
Model Size
100%
Type
PerennialKing
Metadata
PerennialKing
下列的數值並未包含地圖加成、怪物Buff加成、祭壇加成、輿圖天賦加成。
下列的數值為技能基礎數值,並未包含地圖加成、怪物Buff加成、祭壇加成、輿圖天賦加成、怪物本身傷害加成(例: 釋界 150% 加成),怪物稀有度加成(例: 傳奇 +70% 更多, 傳奇攻擊 33% 更少)。
MASPerennialKingSandWhip
攻擊, 範圍攻擊, 技能可幻影射手, 投射物, 近戰單一目標, 近戰, 玩家投射物
基礎攻擊
Base Damage: 104–157
暴擊率: 5%
攻擊傷害: 75%
攻擊時間: 1.5 秒
冷卻時間: 6 秒
造成 25% 更少攻擊傷害
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
冷卻時間: 15 秒
action attack or cast time uses animation length [1]
EASPerennialKingLightningSpray
冷卻時間: 22.5 秒
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitStart
冷卻時間: 30 秒
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitRecall
action attack or cast time uses animation length [1]
CTS3PerennialKingMultistab
冷卻時間: 25 秒
action attack or cast time uses animation length [1]
CTS1PerennialKingEndMultistab
action attack or cast time uses animation length [1]
GPAPerennialKingGlassSpearMultiToss
可觸發, 攻擊
Base Damage: 104–157
暴擊率: 5%
攻擊時間: 1.5 秒
冷卻時間: 17 秒
穿透所有目標
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
可觸發, 攻擊
Base Damage: 104–157
暴擊率: 5%
攻擊傷害: 450%
攻擊時間: 1.5 秒
冷卻時間: 18 秒
造成 350% 更多攻擊傷害
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
冷卻時間: 17 秒
action attack or cast time uses animation length [1]
attack maximum action distance + [30]
GAPerennialKingAxeCleave
可觸發, 攻擊
Base Damage: 104–157
暴擊率: 5%
攻擊傷害: 400%
攻擊時間: 1.5 秒
冷卻時間: 26 秒
造成 300% 更多攻擊傷害
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
法術可重複, 可觸發
冷卻時間: 40 秒
action attack or cast time uses animation length [1]
MDPerennialKingTornado
法術可重複, 可觸發
冷卻時間: 42 秒
action attack or cast time uses animation length [1]
EASPerennialKingOrbitTornado
action attack or cast time uses animation length [1]
SOPerennialKingObsidianMinigun
可觸發
冷卻時間: 17 秒
action attack or cast time uses animation length [1]
EASAbsoluteCartnage
action attack or cast time uses animation length [1]
GSPerennialKingBeaconOrbitLightningBeam
可觸發, 法術, 傷害
施放時間: 1 秒
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GTPerennialKingGlassSpearToss
可觸發
action attack or cast time uses animation length [1]
SOPerennialKingGlassSpearMultiRock
可觸發
action attack or cast time uses animation length [1]
SOPerennialKingGlassSwordFence
可觸發
action attack or cast time uses animation length [1]
GSPerennialKingGlassSwordFenceZap
GAPerennialKingObsidianStormImpact
可觸發, 攻擊
Base Damage: 104–157
暴擊率: 5%
攻擊時間: 1.5 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoPhysDamage
可觸發, 法術, 傷害
施放時間: 1 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoLightningDamage
可觸發, 法術, 傷害
施放時間: 1 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MPWPerennialKingObsidianMinigun
攻擊, 範圍攻擊, 技能可幻影射手, 投射物, 玩家投射物, 傷害, 可觸發
Base Damage: 104–157
暴擊率: 5%
攻擊傷害: 50%
攻擊時間: 1.5 秒
造成 50% 更少攻擊傷害
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 = { }, },
},
}
i am boss of tier [3]
monster dropped item rarity +% [4800]
monster slain experience +% [0]
| Family | MonsterActBoss |
|---|---|
| Domains | 怪物 (3) |
| GenerationType | 傳奇 (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.} ); |
憎惡者.賈嫚拉
| Spectre | N |
|---|---|
| Area | 青銅城塞 |
| Tags | 2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement |
生命
717%
+50%
抗性
傷害
200%
命中
100%
暴擊 Chance
5%
+30%
Attack Distance
6 ~ 18
攻擊時間
1.5 Second
Damage Spread
±20%
經驗值
300%
Model Size
100%
Type
PerennialKingMap
Metadata
PerennialKingMap
下列的數值並未包含地圖加成、怪物Buff加成、祭壇加成、輿圖天賦加成。
下列的數值為技能基礎數值,並未包含地圖加成、怪物Buff加成、祭壇加成、輿圖天賦加成、怪物本身傷害加成(例: 釋界 150% 加成),怪物稀有度加成(例: 傳奇 +70% 更多, 傳奇攻擊 33% 更少)。
MASPerennialKingSandWhip
攻擊, 範圍攻擊, 技能可幻影射手, 投射物, 近戰單一目標, 近戰, 玩家投射物
基礎攻擊
Base Damage: 534–801
暴擊率: 5%
攻擊傷害: 75%
攻擊時間: 1.5 秒
冷卻時間: 6 秒
造成 25% 更少攻擊傷害
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
冷卻時間: 15 秒
action attack or cast time uses animation length [1]
EASPerennialKingLightningSpray
冷卻時間: 22.5 秒
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitStart
冷卻時間: 30 秒
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitRecall
action attack or cast time uses animation length [1]
CTS3PerennialKingMultistab
冷卻時間: 25 秒
action attack or cast time uses animation length [1]
CTS1PerennialKingEndMultistab
action attack or cast time uses animation length [1]
GPAPerennialKingGlassSpearMultiToss
可觸發, 攻擊
Base Damage: 534–801
暴擊率: 5%
攻擊時間: 1.5 秒
冷卻時間: 17 秒
穿透所有目標
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
可觸發, 攻擊
Base Damage: 534–801
暴擊率: 5%
攻擊傷害: 450%
攻擊時間: 1.5 秒
冷卻時間: 18 秒
造成 350% 更多攻擊傷害
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
冷卻時間: 17 秒
action attack or cast time uses animation length [1]
attack maximum action distance + [30]
GAPerennialKingAxeCleave
可觸發, 攻擊
Base Damage: 534–801
暴擊率: 5%
攻擊傷害: 400%
攻擊時間: 1.5 秒
冷卻時間: 26 秒
造成 300% 更多攻擊傷害
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
法術可重複, 可觸發
冷卻時間: 40 秒
action attack or cast time uses animation length [1]
MDPerennialKingTornado
法術可重複, 可觸發
冷卻時間: 42 秒
action attack or cast time uses animation length [1]
EASPerennialKingOrbitTornado
action attack or cast time uses animation length [1]
SOPerennialKingObsidianMinigun
可觸發
冷卻時間: 17 秒
action attack or cast time uses animation length [1]
EASAbsoluteCartnage
action attack or cast time uses animation length [1]
GSPerennialKingBeaconOrbitLightningBeam
可觸發, 法術, 傷害
施放時間: 1 秒
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GTPerennialKingGlassSpearToss
可觸發
action attack or cast time uses animation length [1]
SOPerennialKingGlassSpearMultiRock
可觸發
action attack or cast time uses animation length [1]
SOPerennialKingGlassSwordFence
可觸發
action attack or cast time uses animation length [1]
GSPerennialKingGlassSwordFenceZap
GAPerennialKingObsidianStormImpact
可觸發, 攻擊
Base Damage: 534–801
暴擊率: 5%
攻擊時間: 1.5 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoPhysDamage
可觸發, 法術, 傷害
施放時間: 1 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoLightningDamage
可觸發, 法術, 傷害
施放時間: 1 秒
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MPWPerennialKingObsidianMinigun
攻擊, 範圍攻擊, 技能可幻影射手, 投射物, 玩家投射物, 傷害, 可觸發
Base Damage: 534–801
暴擊率: 5%
攻擊傷害: 50%
攻擊時間: 1.5 秒
造成 50% 更少攻擊傷害
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 = { }, },
},
}
i am boss of tier [3]
monster dropped item rarity +% [4800]
monster slain experience +% [0]
| Family | MonsterActBoss |
|---|---|
| Domains | 怪物 (3) |
| GenerationType | 傳奇 (3) |
| Req. level | 1 |
| Stats |
增加 200% 感電機率
| Family | ShockChanceIncrease |
|---|---|
| Domains | 怪物 (3) |
| GenerationType | 傳奇 (3) |
| Req. level | 1 |
| Stats | |
| Adds Tags | no_fire_spell_mods no_cold_spell_mods no_chaos_spell_mods |
憎惡者.賈嫚拉 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.