mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
87 lines
2.0 KiB
Plaintext
87 lines
2.0 KiB
Plaintext
#include maps/mp/animscripts/utility;
|
|
#include maps/mp/animscripts/shared;
|
|
#include common_scripts/utility;
|
|
|
|
main()
|
|
{
|
|
debug_anim_print( "dog_combat::main() " );
|
|
self endon( "killanimscript" );
|
|
self setaimanimweights( 0, 0 );
|
|
/#
|
|
if ( !debug_allow_combat() )
|
|
{
|
|
combatidle();
|
|
return;
|
|
#/
|
|
}
|
|
if ( isDefined( level.hostmigrationtimer ) )
|
|
{
|
|
combatidle();
|
|
return;
|
|
}
|
|
/#
|
|
assert( isDefined( self.enemy ) );
|
|
#/
|
|
if ( !isalive( self.enemy ) )
|
|
{
|
|
combatidle();
|
|
return;
|
|
}
|
|
if ( isplayer( self.enemy ) )
|
|
{
|
|
self meleebiteattackplayer( self.enemy );
|
|
}
|
|
}
|
|
|
|
combatidle()
|
|
{
|
|
self set_orient_mode( "face enemy" );
|
|
self animmode( "zonly_physics", 0 );
|
|
idleanims = [];
|
|
idleanims[ 0 ] = "combat_attackidle";
|
|
idleanims[ 1 ] = "combat_attackidle_bark";
|
|
idleanims[ 2 ] = "combat_attackidle_growl";
|
|
idleanim = random( idleanims );
|
|
debug_anim_print( "dog_combat::combatIdle() - Setting " + idleanim );
|
|
self setanimstate( idleanim );
|
|
self maps/mp/animscripts/shared::donotetracks( "done" );
|
|
debug_anim_print( "dog_combat::combatIdle() - " + idleanim + " notify done." );
|
|
}
|
|
|
|
meleebiteattackplayer( player )
|
|
{
|
|
self set_orient_mode( "face enemy" );
|
|
self animmode( "gravity", 0 );
|
|
self.safetochangescript = 0;
|
|
if ( use_low_attack() )
|
|
{
|
|
self animmode( "angle deltas", 0 );
|
|
self setanimstate( "combat_attack_player_close_range" );
|
|
self maps/mp/animscripts/shared::donotetracksfortime( 1,4, "done" );
|
|
self animmode( "gravity", 0 );
|
|
}
|
|
else
|
|
{
|
|
attack_time = 1,2 + randomfloat( 0,4 );
|
|
debug_anim_print( "dog_combat::meleeBiteAttackPlayer() - Setting combat_run_attack" );
|
|
self setanimstate( "combat_attack_run" );
|
|
self maps/mp/animscripts/shared::donotetracksfortime( attack_time, "done", ::handlemeleebiteattacknotetracks, player );
|
|
debug_anim_print( "dog_combat::meleeBiteAttackPlayer() - combat_attack_run notify done." );
|
|
}
|
|
self.safetochangescript = 1;
|
|
self animmode( "none", 0 );
|
|
}
|
|
|
|
handlemeleebiteattacknotetracks( note, player )
|
|
{
|
|
if ( note == "dog_melee" )
|
|
{
|
|
self melee( anglesToForward( self.angles ) );
|
|
}
|
|
}
|
|
|
|
use_low_attack( player )
|
|
{
|
|
return 0;
|
|
}
|