Exemple #1
0
        private bool IsBeamInFireControlList(Entity beam)
        {
            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return(false);
            }

            var instancesDB = SelectedShip.GetDataBlob <ComponentInstancesDB>();
            List <KeyValuePair <Entity, List <Entity> > > fcList = EntityStoreHelpers.GetComponentsOfType <BeamFireControlAtbDB>(instancesDB.SpecificInstances);

            //new List<KeyValuePair<Entity, List<Entity>>>(SelectedShip.GetDataBlob<ComponentInstancesDB>().SpecificInstances.Where(item => item.Key.HasDataBlob<BeamFireControlAtbDB>()).ToList());

            foreach (KeyValuePair <Entity, List <Entity> > kvp in fcList)
            {
                foreach (Entity instance in kvp.Value)
                {
                    if (SelectedFireControl.GetDataBlob <FireControlInstanceAbilityDB>().AssignedWeapons.Contains(beam))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemple #2
0
        public void OnRemoveBeam()
        {
            Entity beam = SelectedAttachedBeam;


            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return;
            }

            if (SelectedAttachedBeam == null || _attachedBeamList.SelectedIndex == -1)
            {
                return;
            }

            List <Entity> weaponList = SelectedFireControl.GetDataBlob <FireControlInstanceAbilityDB>().AssignedWeapons;

            weaponList.Remove(SelectedAttachedBeam);

            // @todo: unset the fire control for the beam

            beam.GetDataBlob <WeaponStateDB>().FireControl = null;

            RefreshBeamWeaponsList(0, 0);
        }
Exemple #3
0
        public void OnRemoveBeam()
        {
            ComponentInstance beam = SelectedAttachedBeam;


            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return;
            }

            if (SelectedAttachedBeam == null || _attachedBeamList.SelectedIndex == -1)
            {
                return;
            }

            List <ComponentInstance> weaponList = SelectedFireControl.GetAbilityState <FireControlAbilityState>().AssignedWeapons;

            weaponList.Remove(SelectedAttachedBeam);

            // @todo: unset the fire control for the beam

            beam.GetAbilityState <WeaponState>().FireControl = null;

            RefreshBeamWeaponsList(0, 0);
        }
Exemple #4
0
        public void RefreshFCTarget(int a, int b)
        {
            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return;
            }

            _targetedEntity = SelectedFireControl.GetDataBlob <FireControlInstanceAbilityDB>().Target;
            OnPropertyChanged(TargetedEntity);
        }
Exemple #5
0
        public void RefreshFCTarget(int a, int b)
        {
            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return;
            }

            _targetedEntity = SelectedFireControl.GetAbilityState <FireControlAbilityState>().Target;
            OnPropertyChanged(TargetedEntity);
        }
Exemple #6
0
        public void RefreshBeamWeaponsList(int a, int b)
        {
            _attachedBeamList.Clear();
            _freeBeamList.Clear();

            if (SelectedShip == null || _shipList.SelectedIndex == -1)
            {
                return;
            }

            if (_fireControlList.Count > 0 && _fireControlList.SelectedIndex != -1)
            {
                int beamCount = 0;
                foreach (Entity beam in SelectedFireControl.GetDataBlob <FireControlInstanceAbilityDB>().AssignedWeapons)
                {
                    beamCount++;
                    _attachedBeamList.Add(beam, beam.GetDataBlob <ComponentInstanceInfoDB>().DesignEntity.GetDataBlob <NameDB>().DefaultName + " " + beamCount);
                }
            }
            else
            {
                _attachedBeamList.Clear();
            }
            var instancesDB = SelectedShip.GetDataBlob <ComponentInstancesDB>();
            List <KeyValuePair <Entity, List <Entity> > > beamList = EntityStoreHelpers.GetComponentsOfType <BeamWeaponAtbDB>(instancesDB.SpecificInstances);

            beamList.AddRange(EntityStoreHelpers.GetComponentsOfType <SimpleBeamWeaponAtbDB>(instancesDB.SpecificInstances));
            //new List<KeyValuePair<Entity, List<Entity>>>(SelectedShip.GetDataBlob<ComponentInstancesDB>().SpecificInstances.Where(item => item.Key.HasDataBlob<BeamWeaponAtbDB>() || item.Key.HasDataBlob<SimpleBeamWeaponAtbDB>()).ToList());

            bool isBeamControlled = false;

            _freeBeamList.Clear();

            // Get a list of all beam weapons not currently controlled by a fire control
            // @todo: make sure you check all fire controls - currently only lists
            // beams not set to the current fire control
            foreach (KeyValuePair <Entity, List <Entity> > kvp in beamList)
            {
                int beamCount = 0;
                foreach (Entity instance in kvp.Value)
                {
                    if (instance.GetDataBlob <WeaponStateDB>().FireControl == null)
                    {
                        _freeBeamList.Add(new KeyValuePair <Entity, string>(instance, kvp.Key.GetDataBlob <NameDB>().DefaultName + " " + ++beamCount));
                    }
                }
            }

            OnPropertyChanged(nameof(AttachedBeamList));
            OnPropertyChanged(nameof(FreeBeamList));
        }
Exemple #7
0
        public void OnAddBeam()
        {
            Entity beam = SelectedFreeBeam;

            if (SelectedFireControl == null || _fireControlList.SelectedIndex == -1)
            {
                return;
            }

            if (SelectedFreeBeam == null || _freeBeamList.SelectedIndex == -1)
            {
                return;
            }

            List <Entity> weaponList = SelectedFireControl.GetDataBlob <FireControlInstanceStateDB>().AssignedWeapons;

            weaponList.Add(SelectedFreeBeam);

            // @todo: set the fire control for the beam
            beam.GetDataBlob <WeaponInstanceStateDB>().FireControl = SelectedFireControl;

            RefreshBeamWeaponsList(0, 0);
        }