diff options
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut index 37b89169..3bdb1d8a 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut @@ -1 +1,72 @@ -//fuck
\ No newline at end of file +global function SpawnHarvester +global function generateBeamFX +global function generateShieldFX + +global struct HarvesterStruct { + entity harvester + entity particleBeam + entity particleShield + entity rings + float lastDamage + bool shieldBoost + bool harvesterShieldDown + float harvesterDamageTaken + bool havesterWasDamaged + +} + +HarvesterStruct function SpawnHarvester( vector origin, vector angles, int health, int shieldHealth, int team ) +{ + entity harvester = CreateEntity( "prop_script" ) + harvester.SetValueForModelKey( $"models/props/generator_coop/generator_coop.mdl" ) + harvester.SetOrigin( origin ) + harvester.SetAngles( angles ) + harvester.kv.solid = SOLID_VPHYSICS + + harvester.SetMaxHealth( health ) + harvester.SetHealth( health ) + harvester.SetShieldHealthMax( shieldHealth ) + harvester.SetShieldHealth( shieldHealth ) + harvester.EnableAttackableByAI( 30, 0, AI_AP_FLAG_NONE ) + SetCustomSmartAmmoTarget( harvester, true ) + SetObjectCanBeMeleed( harvester, true ) + SetVisibleEntitiesInConeQueriableEnabled( harvester, true ) + SetTeam(harvester,team) + + DispatchSpawn( harvester ) + + + entity blackbox = CreatePropDynamic( MODEL_HARVESTER_TOWER_COLLISION, origin, angles, 0 ) + blackbox.Hide() + blackbox.Solid() + // blackbox.kv.CollisionGroup = TRACE_COLLISION_GROUP_PLAYER + + entity rings = CreatePropDynamic( MODEL_HARVESTER_TOWER_RINGS, origin, angles, 6 ) + thread PlayAnim( rings, "generator_cycle_fast" ) + + + + HarvesterStruct ret + ret.harvester = harvester + ret.lastDamage = Time() + ret.rings = rings + + return ret +} + +HarvesterStruct function generateBeamFX( HarvesterStruct harvester ) +{ + entity Harvester_Beam = StartParticleEffectOnEntity_ReturnEntity( harvester.harvester, GetParticleSystemIndex( FX_HARVESTER_BEAM ), FX_PATTACH_ABSORIGIN_FOLLOW ,0 ) + EffectSetControlPointVector( Harvester_Beam, 1, GetShieldTriLerpColor( 0.0 ) ) + harvester.particleBeam = Harvester_Beam + Harvester_Beam.DisableHibernation() + return harvester +} + +HarvesterStruct function generateShieldFX( HarvesterStruct harvester ) +{ + entity Harvester_Shield = StartParticleEffectOnEntity_ReturnEntity( harvester.harvester, GetParticleSystemIndex( FX_HARVESTER_OVERSHIELD ), FX_PATTACH_ABSORIGIN_FOLLOW, 0 ) + EffectSetControlPointVector( Harvester_Shield, 1, GetShieldTriLerpColor( 0.0 ) ) + harvester.particleShield = Harvester_Shield + return harvester +}
\ No newline at end of file |