private void SpawnBeam(IGameObject target, bool absorbTarget)
        {
            this.ClearBeam();
            if (this.m_BeamWeapon == null || target == null)
            {
                return;
            }
            Turret turretWithWeaponTrait = this.m_VonNeumannChild.GetTurretWithWeaponTrait(WeaponEnums.WeaponTraits.Disintegrating);
            int    num  = turretWithWeaponTrait == null ? this.m_VonNeumannChild.ObjectID : turretWithWeaponTrait.ObjectID;
            int    val1 = this.m_Game.AssetDatabase.GlobalVonNeumannData.ChildRUCarryCap;

            if (target is StellarBody)
            {
                PlanetInfo planetInfo = this.m_Game.GameDatabase.GetPlanetInfo((target as StellarBody).Parameters.OrbitalID);
                if (planetInfo != null)
                {
                    val1 = Math.Min(val1, planetInfo.Resources);
                }
            }
            this.m_Beam = this.m_Game.AddObject <VonNeumannDisintegrationBeam>(new List <object>()
            {
                (object)target.ObjectID,
                (object)this.m_BeamWeapon.GameObject.ObjectID,
                (object)this.m_VonNeumannChild.ObjectID,
                (object)this.m_VonNeumannChild.Player.ObjectID,
                (object)num,
                (object)absorbTarget,
                (object)val1,
                (object)this.m_Game.AssetDatabase.GlobalVonNeumannData.RUTransferRateShip,
                (object)this.m_Game.AssetDatabase.GlobalVonNeumannData.RUTransferRatePlanet,
                (object)this.m_Game.AssetDatabase.GlobalVonNeumannData.ChildIntegrationTime
            }.ToArray());
        }
 private void ClearBeam()
 {
     if (this.m_Beam == null)
     {
         return;
     }
     this.m_Game.ReleaseObject((IGameObject)this.m_Beam);
     this.m_Beam = (VonNeumannDisintegrationBeam)null;
 }
 public override void Initialize()
 {
     this.m_Target        = (IGameObject)null;
     this.m_VonNeumannMom = (VonNeumannMomControl)null;
     this.m_State         = VonNeumannChildStates.SEEK;
     this.m_Vanished      = false;
     this.m_RUStore       = 0;
     this.m_Beam          = (VonNeumannDisintegrationBeam)null;
     this.m_ApproachRange = 1000f;
     this.m_BeamWeapon    = this.m_Game.AssetDatabase.Weapons.FirstOrDefault <LogicalWeapon>((Func <LogicalWeapon, bool>)(x => ((IEnumerable <WeaponEnums.WeaponTraits>)x.Traits).Any <WeaponEnums.WeaponTraits>((Func <WeaponEnums.WeaponTraits, bool>)(k => k == WeaponEnums.WeaponTraits.Disintegrating))));
     if (this.m_BeamWeapon == null)
     {
         return;
     }
     this.m_BeamWeapon.AddGameObjectReference();
 }