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(); }
public override void ObjectRemoved(IGameObject obj) { if (this.m_VonNeumannMom != null && this.m_VonNeumannMom.GetShip() == obj) { if (this.m_VonNeumannMom.GetShip().IsDestroyed&& this.m_VonNeumannChild != null) { this.m_VonNeumannChild.KillShip(false); } this.m_VonNeumannMom = (VonNeumannMomControl)null; } if (this.m_Target != obj) { return; } this.m_Target = (IGameObject)null; }
public override void FindParent(IEnumerable <CombatAIController> controllers) { foreach (CombatAIController controller in controllers) { if (controller is VonNeumannMomControl) { VonNeumannMomControl neumannMomControl = controller as VonNeumannMomControl; if (neumannMomControl.IsThisMyMom(this.m_VonNeumannChild)) { neumannMomControl.AddChild((CombatAIController)this); this.m_VonNeumannMom = neumannMomControl; break; } } } }
private int GetNumChildrenToMaintain() { return(VonNeumannMomControl.CalcNumChildren(this.m_Game.AssetDatabase.GlobalVonNeumannData, this.m_SpawnedDefensePlatforms.Count, this.m_SpawnedEnemies.Count)); }