<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fdeployables%2Fshield_generator.script</id>
	<title>Script:Files:script/deployables/shield generator.script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fdeployables%2Fshield_generator.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/deployables/shield_generator.script&amp;action=history"/>
	<updated>2026-04-07T17:05:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Script:Files:script/deployables/shield_generator.script&amp;diff=1822&amp;oldid=prev</id>
		<title>Wizz at 09:57, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/deployables/shield_generator.script&amp;diff=1822&amp;oldid=prev"/>
		<updated>2007-11-05T09:57:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]] : [[ScriptClass:deployable_base|deployable_base]] {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            preinit();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            init();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            destroy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            Idle();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            DestroyMissiles();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            DestroyTarget( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; targetEnt );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            FreeRangeIdentifier();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            SetupRangeIdentifier();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            vOnDeploy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            SpawnDestroyEffect( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; position );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            IdleEffects();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            CreateFireStateThread();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            UpdateFireStateThread();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            maxRange;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            commandmapRangeHandle;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            toolTipDestroyedMissile;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;            noStartJoint;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;            disabledEffect;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            fireStateThread;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::preinit() {&lt;br /&gt;
     commandmapRangeHandle    = -1;&lt;br /&gt;
 &lt;br /&gt;
     maxRange                = MetresToInches( [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;range_max&amp;quot;&amp;lt;/span&amp;gt;, 130 ) );&lt;br /&gt;
     noStartJoint            = [[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;no_start_joint&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     toolTipDestroyedMissile = GetToolTip( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;tt_destroyed_missile&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     fireStateThread            = -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::init() {&lt;br /&gt;
     [[ScriptEvent:setState|setState]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;Idle&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::destroy() {&lt;br /&gt;
     FreeRangeIdentifier();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::Idle() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( ![[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;no_idle_effects&amp;quot;&amp;lt;/span&amp;gt; ) ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; IdleEffects();&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( true ) {&lt;br /&gt;
         sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !disabledState ) {&lt;br /&gt;
             DestroyMissiles();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::vOnDeploy() {&lt;br /&gt;
     SetupRangeIdentifier();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; DoDeploy();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::DestroyMissiles() {&lt;br /&gt;
     [[ScriptEvent:entitiesOfCollection|entitiesOfCollection]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;antiair&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     [[ScriptEvent:filterEntitiesByAllegiance|filterEntitiesByAllegiance]]( TA_FLAG_ENEMY, 1 ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// only damage enemies&amp;lt;/span&amp;gt;&lt;br /&gt;
     [[ScriptEvent:filterEntitiesByRadius|filterEntitiesByRadius]]( [[ScriptEvent:getWorldOrigin|getWorldOrigin]](), maxRange, 1 ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// find entities within maxRange radius&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; count = [[ScriptEvent:getBoundsCacheCount|getBoundsCacheCount]](); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// number of remaining entities&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; i;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;for&amp;lt;/span&amp;gt; ( i = 0; i &amp;lt; count; i++ ) {&lt;br /&gt;
         DestroyTarget( [[ScriptEvent:getBoundsCacheEntity|getBoundsCacheEntity]]( i ) );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::SpawnDestroyEffect( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; position ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; startPos;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( noStartJoint ) {    &lt;br /&gt;
         startPos = [[ScriptEvent:getWorldOrigin|getWorldOrigin]]();&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         startPos = [[ScriptEvent:getJointPos|getJointPos]]( [[ScriptEvent:getJointHandle|getJointHandle]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;joint2&amp;quot;&amp;lt;/span&amp;gt; ) ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// start at the roof of the deployable&amp;lt;/span&amp;gt;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; diff = startPos - position;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; forward = '1 0 0';&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; angles;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; effect;&lt;br /&gt;
     diff = sys.[[ScriptEvent:vecNormalize|vecNormalize]]( diff );&lt;br /&gt;
     angles = sys.[[ScriptEvent:vecToAngles|vecToAngles]]( diff );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Chage up and cool down effect&amp;lt;/span&amp;gt;&lt;br /&gt;
     [[ScriptEvent:playOriginEffect|playOriginEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_charge&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;lt;/span&amp;gt;, startPos, forward, false );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// The electrial beam and shockwave&amp;lt;/span&amp;gt;&lt;br /&gt;
     effect = [[ScriptEvent:spawnClientEffect|spawnClientEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_hit&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( effect != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         effect.[[ScriptEvent:setEffectLooping|setEffectLooping]]( 0 );&lt;br /&gt;
         effect.[[ScriptEvent:setOrigin|setOrigin]]( position );&lt;br /&gt;
         effect.[[ScriptEvent:setEffectEndOrigin|setEffectEndOrigin]]( startPos );&lt;br /&gt;
         effect.[[ScriptEvent:setAngles|setAngles]]( angles );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::IdleEffects() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; jointHandle = [[ScriptEvent:getJointHandle|getJointHandle]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;joint2&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; startPos;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; angles0 = g_vectorZero;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; angles1 = g_vectorZero;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; angles2 = g_vectorZero;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; pos1;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; pos2;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; radius = 125; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Lengt of spikes from centre of symmetry of the model&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; effect;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; diff;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; rand;&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:startSound|startSound]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;snd_idle&amp;quot;&amp;lt;/span&amp;gt;, SND_DEPLOYABLE_IDLE );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( true ) {&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !disabledState ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( disabledEffect ) {&lt;br /&gt;
                 [[ScriptEvent:stopEffect|stopEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_disabled_1&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
                 [[ScriptEvent:stopEffect|stopEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_disabled_2&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
                 disabledEffect = false;&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Get these again as the object may have moved&amp;lt;/span&amp;gt;&lt;br /&gt;
             startPos = [[ScriptEvent:getJointPos|getJointPos]]( jointHandle );&lt;br /&gt;
             startPos_z += 12; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// The joint is slightly below the spikes&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; angleOffset = [[ScriptEvent:getAngles|getAngles]](); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Base rotation of the spikes&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; spikeIndex = int( sys.[[ScriptEvent:random|random]]( 4.4 ) ); &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;//Int between [0..4] is the spike&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Start position of spark&amp;lt;/span&amp;gt;&lt;br /&gt;
             angles1_y = spikeIndex * 72 + angleOffset_y; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// 5 spikes == one spike every 72 degrees&amp;lt;/span&amp;gt;&lt;br /&gt;
             pos1 = startPos + sys.[[ScriptEvent:angToForward|angToForward]]( angles1 ) * radius;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Select a random end position&amp;lt;/span&amp;gt;&lt;br /&gt;
             rand = sys.[[ScriptEvent:random|random]]( 1.0 );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( rand &amp;lt; 0.9 ) {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( rand &amp;lt; 0.45 ) {&lt;br /&gt;
                     angles2_y = (spikeIndex+1) * 72 + angleOffset_y;&lt;br /&gt;
                 } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
                     angles2_y = (spikeIndex-1) * 72 + angleOffset_y;&lt;br /&gt;
                 }&lt;br /&gt;
                 pos2 = startPos + sys.[[ScriptEvent:angToForward|angToForward]]( angles2 ) * radius;&lt;br /&gt;
             } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// 1 in 10 change it goes to the roof instead of another spike&amp;lt;/span&amp;gt;&lt;br /&gt;
                 pos2 = startPos;&lt;br /&gt;
                 pos2_z += 25; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Roof is even higher above the joing&amp;lt;/span&amp;gt;&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// Rotate efect along the axis between the two positions&amp;lt;/span&amp;gt;&lt;br /&gt;
             diff = pos2 - pos1;&lt;br /&gt;
             diff = sys.[[ScriptEvent:vecNormalize|vecNormalize]]( diff );&lt;br /&gt;
             angles0 = sys.[[ScriptEvent:vecToAngles|vecToAngles]]( diff );&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// The electrial beam and shockwave&amp;lt;/span&amp;gt;&lt;br /&gt;
             effect = [[ScriptEvent:spawnClientEffect|spawnClientEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_idle&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( effect != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
                 effect.[[ScriptEvent:setEffectLooping|setEffectLooping]]( 0 );&lt;br /&gt;
                 effect.[[ScriptEvent:setOrigin|setOrigin]]( pos1 );&lt;br /&gt;
                 effect.[[ScriptEvent:setEffectEndOrigin|setEffectEndOrigin]]( pos2 );&lt;br /&gt;
                 effect.[[ScriptEvent:setAngles|setAngles]]( angles0 );&lt;br /&gt;
             }&lt;br /&gt;
 &lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !disabledEffect ) {&lt;br /&gt;
                 [[ScriptEvent:playEffect|playEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_disabled_1&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx1&amp;quot;&amp;lt;/span&amp;gt;, true );&lt;br /&gt;
                 [[ScriptEvent:playEffect|playEffect]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx_disabled_2&amp;quot;&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;fx2&amp;quot;&amp;lt;/span&amp;gt;, true );&lt;br /&gt;
                 disabledEffect = true;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         sys.[[ScriptEvent:wait|wait]]( 1 + sys.[[ScriptEvent:random|random]]( 1 ) );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::DestroyTarget( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; targetEnt ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( targetEnt.vGetDestroyed() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( owner != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; destroyProficiency = targetEnt.vGetDestroyProficiency();&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( destroyProficiency != -1 ) {&lt;br /&gt;
             owner.[[ScriptEvent:giveProficiency|giveProficiency]]( destroyProficiency, 1.f, $null, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;shield generator bonus&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         sys.[[ScriptEvent:increaseStatInt|increaseStatInt]]( sys.[[ScriptEvent:allocStatInt|allocStatInt]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;antimissile_strogg_uses&amp;quot;&amp;lt;/span&amp;gt; ), owner.[[ScriptEvent:getEntityNumber|getEntityNumber]](), 1 );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     SpawnDestroyEffect( targetEnt.[[ScriptEvent:getWorldOrigin|getWorldOrigin]]() );&lt;br /&gt;
     targetEnt.vSetDestroyed();&lt;br /&gt;
     CreateFireStateThread();&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptClass:player|player]] p = targetEnt.[[ScriptEvent:getOwner|getOwner]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( p.[[ScriptEvent:isLocalPlayer|isLocalPlayer]]() ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !p.[[ScriptEvent:isToolTipPlaying|isToolTipPlaying]]() ) {&lt;br /&gt;
                 p.[[ScriptEvent:sendToolTip|sendToolTip]]( toolTipDestroyedMissile );&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::FreeRangeIdentifier() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( commandmapRangeHandle != -1 ) {&lt;br /&gt;
         sys.[[ScriptEvent:freeCMIcon|freeCMIcon]]( self, commandmapRangeHandle );&lt;br /&gt;
         commandmapRangeHandle = -1;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::SetupRangeIdentifier() {&lt;br /&gt;
     FreeRangeIdentifier();&lt;br /&gt;
 &lt;br /&gt;
     commandmapRangeHandle = sys.[[ScriptEvent:allocCMIcon|allocCMIcon]]( self, 100 );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconSizeMode|setCMIconSizeMode]]( commandmapRangeHandle, SM_WORLD );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconColor|setCMIconColor]]( commandmapRangeHandle, g_colorRed, 0.25f );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconSides|setCMIconSides]]( commandmapRangeHandle, 24 );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconDrawMode|setCMIconDrawMode]]( commandmapRangeHandle, DM_CIRCLE );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconMaterial|setCMIconMaterial]]( commandmapRangeHandle, GetMaterial( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_white_depth&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconUnknownMaterial|setCMIconUnknownMaterial]]( commandmapRangeHandle, GetMaterial( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;_white_depth&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconSize|setCMIconSize]]( commandmapRangeHandle, maxRange );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconUnknownSize|setCMIconUnknownSize]]( commandmapRangeHandle, maxRange );&lt;br /&gt;
     sys.[[ScriptEvent:setCMIconFlag|setCMIconFlag]]( commandmapRangeHandle, CMF_ENEMYONLY | CMF_ONLYSHOWKNOWN );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::CreateFireStateThread() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fireStateThread != -1 ) {&lt;br /&gt;
         sys.[[ScriptEvent:terminate|terminate]]( fireStateThread );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     fireStateThread = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; UpdateFireStateThread();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:deployable_shield_generator|deployable_shield_generator]]::UpdateFireStateThread() {&lt;br /&gt;
     fireSupportState = MPS_FIRING;&lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( 3.0f );&lt;br /&gt;
     fireSupportState = MPS_READY;&lt;br /&gt;
     fireStateThread = -1;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>