Transcendental Brutal
Brutal Transcendent
SpectreY
AreaO Refúgio Zigurate, As Câmaras Negras, As Câmaras Negras
Tags2HBluntWood_onhit_audio, allows_additional_projectiles, allows_inc_aoe, construct, humanoid, lightning_affinity, medium_movement, not_dex, ranged, red_blood
Packs
  • As Câmaras Negras, As Câmaras Negras: Transcendental Brutal, Elite de Doryani
  • As Câmaras Negras, As Câmaras Negras: Transcendental Brutal, Golias Transcendental, Corte Transcendente
  • O Refúgio Zigurate: Transcendental Brutal, Elite de Doryani
  • Transcendental Brutal, Elite de Doryani
  • Vida
    250%
    Energy Shield From Life
    8%
    Armadura
    +100%
    Ailment Threshold
    %
    Resistência
    0 0 0 0
    Damage
    250%
    Precisão
    100%
    Chance de Crítico
    +5%
    Multiplicador de Acerto Crítico
    +130%
    Attack Distance
    5 ~ 14
    Attack Time
    1.5 Second
    Damage Spread
    ±20%
    Experiência
    250%
    Model Size
    100%
    Type
    VaalPyramidHands
    Metadata
    VaalPyramidHands
    Nível
    70
    Vida
    21,790
    Armadura
    7,754
    Evasão
    502
    Energy Shield
    697
    Damage
    620
    Dano Mágico
    620
    Precisão
    1,164
    Attack Time
    1.5
    Experiência
    86,598
    EDSPyramidHandLightningLance
    Triggerable, Spell, Damage
    Tempo de Conjuração: 1 seg
    Causa 20.58 a 30.87 de Dano de Raio
    action attack or cast time uses animation length [1]
    is area damage [1]
    spell maximum action distance +% [-65]
    MPSVaalHumanoidPyramidHandsGrenade
    Spell, Projectile, ProjectilesFromUser, Triggerable, Damage
    Tempo de Conjuração: 1 seg
    Recarga: 10 seg
    action attack or cast time uses animation length [1]
    ballistic projectiles always bounce [1]
    base deal no damage [1]
    base is projectile [1]
    maintain projectile direction when using contact position [1]
    monster projectile variation [1126]
    projectile ballistic angle from reference event [1]
    projectile ballistic gravity override [3000]
    projectile spread radius [9]
    projectile uses contact position [1]
    spell maximum action distance +% [-30]
    GSPyramidHandGenadeExplosion
    Triggerable, Spell, Damage
    Tempo de Conjuração: 1 seg
    Causa 12.86 a 38.58 de Dano de Raio
    base is projectile [1]
    is area damage [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    Stats
    {
    	strafe_distance_+% = -60
    }
    
    StateMachine
    {
    	define_shared_state = "lock_on;"
    	on_state_lock_on_0 = "SetUsesDirectionalRunAnimations( false );"
    	on_state_lock_on_1 = "SetUsesDirectionalRunAnimations( true );"
    }
    
    Animated
    {
    	// need this to enable the turn anims
    	always_interpolate_bearing = true
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Movement/Turning */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    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 or 11 for left/right turns
    	// 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
    	// 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( Or( And( angle_diff <= 5.0, angle_diff >= -5.0 ), GetCurrentMoveSpeed() > 1.0 ), (){ SetStateTo( current_rotate_dir, 0 ); } );
    		If( And( angle_diff > 5.0, GetCurrentMoveSpeed() < 1.0 ), (){ SetStateTo( current_rotate_dir, 1 ); } );
    		If( And( angle_diff < -5.0, GetCurrentMoveSpeed() < 1.0 ), (){ SetStateTo( current_rotate_dir, 2 ); } );
    		// Speed up the additive turn anims as the turn speed increases
    		local angle_diff_clamped = Clamp( angle_diff, -100, 100 );
    		local scaling_factor = 1.0 + Eval( Abs( angle_diff_clamped ) / 100 );
    		local layer_speed = Clamp( scaling_factor, 1.0, 3.0 );
    		// Log( 'Angle Diff: {angle_diff} | Layer Speed: {layer_speed}', c );
    		SetLayerAnimationSpeed( 9, layer_speed );
    		SetLayerAnimationSpeed( 10, layer_speed );
    		StartStateTimer( check_bearing );
    	"
    
    	// if current_rotate_dir is 0, it means the monster isn't turning so fade out the additive turns
    	on_state_current_rotate_dir_0 =
    	"
    		FadeAnimations( 9, 0.5 );
    		FadeAnimations( 10, 0.5 );
    	"
    
    	// play a different additive turn anim for different turn directions and velocity
    	on_state_current_rotate_dir_1 =
    	"
    		FadeAnimations( 10, 0.5 );
    		PlayAdditiveAnimation( turn_01_right, 9 );
    	"
    
    	on_state_current_rotate_dir_2 =
    	"
    		FadeAnimations( 9, 0.5 );
    		PlayAdditiveAnimation( turn_01_left, 10 );
    	"
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/VaalHumanoids/VaalHumanoidPyramidHands/VaalPyramidHands"] = {
        name = "Brutal Transcendent",
        life = 2.5,
        energyShield = 0.08,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 2.5,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 14,
        accuracy = 1,
        skillList = {
            "MPSVaalHumanoidPyramidHandsGrenade",
            "GSPyramidHandGenadeExplosion",
            "EDSPyramidHandLightningLance",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MPSVaalHumanoidPyramidHandsGrenade"] = {
        name = "MPSVaalHumanoidPyramidHandsGrenade",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Triggerable] = true,
            [SkillType.Damage] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "monster_projectile_variation",
            "spell_maximum_action_distance_+%",
            "projectile_spread_radius",
            "projectile_ballistic_gravity_override",
            "base_is_projectile",
            "projectile_uses_contact_position",
            "maintain_projectile_direction_when_using_contact_position",
            "action_attack_or_cast_time_uses_animation_length",
            "base_deal_no_damage",
            "projectile_ballistic_angle_from_reference_event",
            "ballistic_projectiles_always_bounce",
        },
        levels = {
            [1] = {1126, -30, 9, 3000, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPyramidHandGenadeExplosion"] = {
        name = "GSPyramidHandGenadeExplosion",
        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,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "is_area_damage",
            "base_is_projectile",
        },
        levels = {
            [1] = {0.5, 1.5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["EDSPyramidHandLightningLance"] = {
        name = "EDSPyramidHandLightningLance",
        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",
            "spell_maximum_action_distance_+%",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, -65, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }