diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
commit | 9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch) | |
tree | 4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut | |
parent | 27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff) | |
download | NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip |
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut new file mode 100644 index 000000000..e34b30826 --- /dev/null +++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut @@ -0,0 +1,72 @@ +global function AiTurretSentry_Init + +const DEAD_SENTRY_TURRET_FX = $"P_impact_exp_med_air" +const DEAD_SENTRY_TURRET_SFX = "SentryTurret_DeathExplo" +const SENTRY_TURRET_AIM_FX_RED = $"P_wpn_lasercannon_aim_short" +const SENTRY_TURRET_AIM_FX_BLUE = $"P_wpn_lasercannon_aim_short_blue" + +void function AiTurretSentry_Init() +{ + PrecacheParticleSystem( DEAD_SENTRY_TURRET_FX ) + //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX_RED ) + //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX_BLUE ) + //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX2 ) + + AddSpawnCallback( "npc_turret_sentry", LightTurretSpawnFunction ) + AddDeathCallback( "npc_turret_sentry", LightTurretDeathFX ) + + //RegisterSignal( "TurretDisabled" ) + //RegisterSignal( "HandleTargetDeath" ) + //RegisterSignal( "OnPlayerDisconnectResetTurret" ) + //RegisterSignal( "Deactivate_Turret" ) + //RegisterSignal( "TurretShieldWallRelease") + //RegisterSignal( "DestroyShieldFX") +} + +void function LightTurretDeathFX( entity turret, var damageInfo ) +{ + turret.SetBodygroup( 0, 1 ) + + int turretEHandle = turret.GetEncodedEHandle() + array<entity> players = GetPlayerArray() + foreach( player in players ) + { + Remote_CallFunction_Replay( player, "ServerCallback_TurretRefresh", turretEHandle ) + } + + EmitSoundAtPosition( turret.GetTeam(), turret.GetOrigin(), DEAD_SENTRY_TURRET_SFX ) + PlayFX( DEAD_SENTRY_TURRET_FX, turret.GetOrigin() + Vector( 0,0,38 ) ) // played with a slight offset as requested by BigRig +} + +////////////////////////////////////////////////////////// +void function LightTurretSpawnFunction( entity turret ) +{ + turret.UnsetUsable() + +// float windupTime = TurretGetWindupTime( turret ) +// if ( windupTime > 0 ) +// thread HACK_TurretManagePreAttack( turret, OnWindupBegin_SentryTurret, OnWindupEnd_Turret ) +// + if ( turret.Dev_GetAISettingByKeyField( "aim_laser_disabled" ) ) + return + + thread SentryTurretAimLaser( turret ) +} + +void function SentryTurretAimLaser( entity turret ) +{ + entity fx1 = PlayLoopFXOnEntity( SENTRY_TURRET_AIM_FX_RED, turret, "camera_glow", null, null, ENTITY_VISIBLE_TO_ENEMY ) + entity fx2 = PlayLoopFXOnEntity( SENTRY_TURRET_AIM_FX_BLUE, turret, "camera_glow", null, null, ENTITY_VISIBLE_TO_FRIENDLY ) + + OnThreadEnd( + function() : ( fx1, fx2 ) + { + if ( IsValid( fx1 ) ) + EffectStop( fx1 ) + if ( IsValid( fx2 ) ) + EffectStop( fx2 ) + } + ) + + WaitSignal( turret, "OnDeath" ) +} |