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/scripts/vscripts/titan/_battery_generator.gnut | |
parent | 27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff) | |
download | NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip |
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut')
-rw-r--r-- | Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut b/Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut deleted file mode 100644 index 567ad6e74..000000000 --- a/Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut +++ /dev/null @@ -1,128 +0,0 @@ -global function InitDestroyableGenerator -global function ClearGenerators - -const GENERATOR_HEALTH = 200 - -const MODEL_DESTROYED_GENERATOR = $"models/beacon/charge_generator_01_destroyed.mdl" -const FX_GENERATOR_EXP = $"P_generator_exp" - -struct -{ - array<entity> generators -} file - -void function InitDestroyableGenerator() -{ - AddSpawnCallbackEditorClass( "script_ref", "script_battery_generator", SpawnPropGenerator ) - AddSpawnCallback_ScriptName( "prop_battery_generator", PropBatteryGeneratorThink ) - - PrecacheModel( MODEL_GENERATOR ) - PrecacheModel( MODEL_DESTROYED_GENERATOR ) - PrecacheParticleSystem( FX_GENERATOR_EXP ) -} - -void function SpawnPropGenerator( entity generatorRef ) -{ - entity generator = CreatePropScript( MODEL_GENERATOR, generatorRef.GetOrigin(), generatorRef.GetAngles(), 6 ) - thread PropBatteryGeneratorThink( generator ) - generatorRef.Destroy() -} - -void function PropBatteryGeneratorThink( entity generator ) -{ - SetObjectCanBeMeleed( generator, true ) - SetVisibleEntitiesInConeQueriableEnabled( generator, true ) - generator.SetTakeDamageType( DAMAGE_EVENTS_ONLY ) - generator.SetDamageNotifications( true ) - generator.SetMaxHealth( GENERATOR_HEALTH ) - generator.SetHealth( GENERATOR_HEALTH ) - generator.DisableHibernation() - AddEntityCallback_OnDamaged( generator, GeneratorOnDamage ) - - entity trigger = CreateEntity( "trigger_cylinder" ) - trigger.SetRadius( 150 ) - trigger.SetAboveHeight( 150 ) - trigger.SetBelowHeight( 150 ) //i.e. make the trigger a sphere as opposed to a cylinder - trigger.SetOrigin( generator.GetOrigin() ) - trigger.SetParent( generator ) - DispatchSpawn( trigger ) - trigger.SetEnterCallback( GeneratorTriggerThink ) - - - file.generators.append( generator ) -} - -void function GeneratorTriggerThink( entity trigger, entity ent ) -{ - if ( ent.IsTitan() || IsSuperSpectre( ent ) ) - { - entity generator = trigger.GetParent() - - if ( generator != null ) - { - GeneratorDestroy( generator ) - } - } -} - -void function GeneratorOnDamage( entity generator, var damageInfo ) -{ - if ( !IsValid( generator ) ) - { - // sometimes OnDamage gets called twice in the same frame, ( scorch's fire ) - // and first call destroys generator in GeneratorDestroy() - return - } - - float damage = DamageInfo_GetDamage( damageInfo ) - - int health = generator.GetHealth() - health -= int( damage ) - - if ( health <= 0 ) - GeneratorDestroy( generator ) - else - generator.SetHealth( health ) -} - -void function GeneratorDestroy( entity generator ) -{ - int solidType = 6 //phys collision - entity destroyedProp = CreatePropDynamic( MODEL_DESTROYED_GENERATOR, generator.GetOrigin(), generator.GetAngles(), solidType ) - if ( generator.GetParent() ) - destroyedProp.SetToSameParentAs( generator ) - - destroyedProp.AllowMantle() - destroyedProp.DisableHibernation() - int fxID = GetParticleSystemIndex( FX_GENERATOR_EXP ) - vector origin = generator.GetOrigin() - vector up = generator.GetUpVector() - - EmitSoundOnEntity( destroyedProp, "BatteryCrate_Explosion" ) - StartParticleEffectOnEntity( destroyedProp, fxID, FX_PATTACH_ABSORIGIN_FOLLOW, -1 ) - - entity battery = CreateTitanBattery( origin + ( up * 40 ) ) - battery.DisableHibernation() - - //throw out the battery - vector right = generator.GetRightVector() * RandomFloatRange( -0.5, 0.5 ) - vector forward = generator.GetForwardVector() * RandomFloatRange( -0.5, 0.5 ) - vector velocity = Normalize( up + right + forward ) * 10 - - //for moving geo - vector parentVelocity = generator.GetVelocity() - - battery.SetVelocity( velocity + parentVelocity ) - - file.generators.fastremovebyvalue( generator ) - generator.Destroy() -} - -void function ClearGenerators() -{ - foreach ( g in file.generators ) - { - g.Destroy() - } - file.generators = [] -}
\ No newline at end of file |