From 9a96d0bff56f1969c68bb52a2f33296095bdc67d Mon Sep 17 00:00:00 2001 From: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> Date: Tue, 31 Aug 2021 23:14:58 +0100 Subject: move to new mod format --- .../scripts/vscripts/titan/_battery_generator.gnut | 128 --------------------- 1 file changed, 128 deletions(-) delete mode 100644 Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut (limited to 'Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut') 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 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 -- cgit v1.2.3