iw6-scripts/maps/mp/agents/alien/_alien_minion.gsc
2024-02-13 13:20:49 +01:00

67 lines
1.9 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
minion_init()
{
thread minion_chatter_monitor();
}
minion_chatter_monitor()
{
self endon( "death" );
for (;;)
{
var_0 = randomfloatrange( 8.0, 15.0 );
wait( var_0 );
self playsoundonmovingent( "alien_minion_idle" );
}
}
minion_approach( var_0, var_1 )
{
self.attacking_player = 1;
self.bypass_max_attacker_counter = 0;
var_2 = 0.0;
var_3 = randomfloat( 1.0 ) < var_2;
if ( var_3 )
return maps\mp\agents\alien\_alien_think::go_for_swipe( var_0 );
self playsoundonmovingent( "alien_minion_alert" );
var_4 = maps\mp\agents\alien\_alien_think::approach_enemy( 80, var_0, 3 );
return "explode";
}
explode_attack( var_0 )
{
self.melee_type = "explode";
maps\mp\agents\alien\_alien_think::alien_melee( var_0 );
}
explode( var_0 )
{
maps\mp\alien\_utility::set_alien_emissive( 0.2, 1.0 );
self playsoundonmovingent( "alien_minion_attack" );
playfxontag( level._effect["alien_minion_preexplode"], self, "tag_origin" );
self scragentsetanimmode( "anim deltas" );
var_1 = 1.25;
self setanimstate( "minion_explode", 0, var_1 );
wait( getanimlength( self getanimentry( "minion_explode", 0 ) ) * ( 1 / var_1 ) );
self suicide();
}
load_minion_fx()
{
level._effect["alien_minion_explode"] = loadfx( "vfx/gameplay/alien/vfx_alien_minion_explode" );
level._effect["alien_minion_preexplode"] = loadfx( "vfx/gameplay/alien/vfx_alien_minion_preexplosion" );
}
minion_explode_on_death( var_0 )
{
common_scripts\utility::waitframe();
playfx( level._effect["alien_minion_explode"], var_0 + ( 0, 0, 32 ) );
playsoundatpos( var_0, "alien_minion_explode" );
radiusdamage( var_0, 200, level.alien_types["minion"].attributes["explode_max_damage"], level.alien_types["minion"].attributes["explode_min_damage"], undefined, "MOD_EXPLOSIVE", "alien_minion_explosion" );
}