예제 #1
0
        /// <summary>
        /// Constructor for the turret component itself.
        /// </summary>
        /// <param name="definition">definition for this turret.</param>
        public TurretTN(TurretDefTN definition)
        {
            TurretDef = definition;

            FireController = null;

            CurrentCapacitor = TurretDef.powerRequirement;

            isDestroyed = false;
        }
예제 #2
0
        /// <summary>
        /// Add a Turret to this ship class
        /// </summary>
        /// <param name="Turret">Turret to add</param>
        /// <param name="inc">number to add or subtract.</param>
        public void AddTurret(TurretDefTN Turret, short inc)
        {
            int TurretIndex = ShipTurretDef.IndexOf(Turret);
            if (TurretIndex != -1)
            {
                ShipTurretCount[TurretIndex] = (ushort)((short)ShipTurretCount[TurretIndex] + inc);
            }

            if (TurretIndex == -1 && inc >= 1)
            {
                ShipTurretDef.Add(Turret);
                ShipTurretCount.Add((ushort)inc);
            }
            else
            {
                if (TurretIndex != -1)
                {
                    if (ShipTurretCount[TurretIndex] <= 0)
                    {
                        ShipTurretCount.RemoveAt(TurretIndex);
                        ShipTurretDef.RemoveAt(TurretIndex);
                    }
                }
                else
                {
                    /// <summary>
                    /// Error here so return.
                    /// </summary>
                    return;
                }
            }

            TotalPowerRequirement = TotalPowerRequirement + (int)(Turret.powerRequirement * inc);
            UpdateClass(Turret, inc);
        }
예제 #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        public TurretDesignHandler()
        {
            m_oTurretDesignPanel = new Panels.TurretDesign();

            VM = new ViewModels.TurretDesignViewModel();

            /// <summary>
            /// Bind factions to the empire selection combo box.
            /// </summary>
            m_oTurretDesignPanel.EmpireComboBox.Bind(c => c.DataSource, VM, d => d.Factions);
            m_oTurretDesignPanel.EmpireComboBox.Bind(c => c.SelectedItem, VM, d => d.CurrentFaction, DataSourceUpdateMode.OnPropertyChanged);
            m_oTurretDesignPanel.EmpireComboBox.DisplayMember = "Name";
            VM.FactionChanged += (s, args) => _CurrnetFaction = VM.CurrentFaction;
            _CurrnetFaction = VM.CurrentFaction;
            m_oTurretDesignPanel.EmpireComboBox.SelectedIndexChanged += (s, args) => m_oTurretDesignPanel.EmpireComboBox.DataBindings["SelectedItem"].WriteValue();
            m_oTurretDesignPanel.EmpireComboBox.SelectedIndexChanged += new EventHandler(EmpireComboBox_SelectedIndexChanged);

            /// <summary>
            /// Binding missile engines to the appropriate combo box.
            /// </summary>
            m_oTurretDesignPanel.BeamComboBox.Bind(c => c.DataSource, VM, d => d.TurretableList);
            m_oTurretDesignPanel.BeamComboBox.Bind(c => c.SelectedItem, VM, d => d.CurrentBeam, DataSourceUpdateMode.OnPropertyChanged);
            m_oTurretDesignPanel.BeamComboBox.DisplayMember = "Name";
            VM.BeamChanged += (s, args) => _CurrnetBeam = VM.CurrentBeam;
            _CurrnetBeam = VM.CurrentBeam;
            m_oTurretDesignPanel.BeamComboBox.SelectedIndexChanged += (s, args) => m_oTurretDesignPanel.BeamComboBox.DataBindings["SelectedItem"].WriteValue();
            m_oTurretDesignPanel.BeamComboBox.SelectedIndexChanged += new EventHandler(BeamComboBox_SelectedIndexChanged);


            m_oTurretDesignPanel.SingleRadioButton.CheckedChanged += new EventHandler(MultRadioButton_CheckedChanged);
            m_oTurretDesignPanel.TwinRadioButton.CheckedChanged += new EventHandler(MultRadioButton_CheckedChanged);
            m_oTurretDesignPanel.TripleRadioButton.CheckedChanged += new EventHandler(MultRadioButton_CheckedChanged);
            m_oTurretDesignPanel.QuadRadioButton.CheckedChanged += new EventHandler(MultRadioButton_CheckedChanged);

            m_oTurretDesignPanel.TrackSpeedTextBox.TextChanged += new EventHandler(TrackSpeedTextBox_TextChanged);
            m_oTurretDesignPanel.TurretArmourTextBox.TextChanged += new EventHandler(TurretArmourTextBox_TextChanged);

            m_oTurretDesignPanel.InstantButton.Click += new EventHandler(InstantButton_Click);

            m_oTurretDesignPanel.CloseTDButton.Click += new EventHandler(CloseTDButton_Click);

            Multiplier = 1;
            TurretProjTracking = 10000;
            TurretProjArmour = 0;

            TurretProject = null;
        }
예제 #4
0
        /// <summary>
        /// Overall display function.
        /// </summary>
        private void BuildTurretDesignPage()
        {
#warning two occurences of magic number tech checking here.
            int TrackTech = _CurrnetFaction.FactionTechLevel[(int)Faction.FactionTechnology.TurretTracking];

            if (TrackTech > 11)
                TrackTech = 11;

            int ArmourTech = _CurrnetFaction.FactionTechLevel[(int)Faction.FactionTechnology.ArmourProtection];

            if (ArmourTech > 12)
                ArmourTech = 12;

            if (_CurrnetBeam != null)
            {
                TurretProject = new TurretDefTN("---Working Title---", _CurrnetBeam, Multiplier, TurretProjTracking, TrackTech, TurretProjArmour, ArmourTech);
            }
            else
                TurretProject = null;

            BuildFactionInfo();
            BuildBeamInfo();
            BuildTurretInfo();
            BuildSystemParamters();
        }
예제 #5
0
        /// <summary>
        /// Constructor for the turret component itself.
        /// </summary>
        /// <param name="definition">definition for this turret.</param>
        public TurretTN(TurretDefTN definition)
        {
            TurretDef = definition;

            FireController = null;

            CurrentCapacitor = TurretDef.powerRequirement;

            isDestroyed = false;
        }