예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FacilityHullStat" /> class.
 /// </summary>
 /// <param name="hullCategory">The hull category.</param>
 /// <param name="name">The name.</param>
 /// <param name="imageAtlasID">The image atlas identifier.</param>
 /// <param name="imageFilename">The image filename.</param>
 /// <param name="description">The description.</param>
 /// <param name="size">The size.</param>
 /// <param name="mass">The mass.</param>
 /// <param name="pwrRqmt">The PWR RQMT.</param>
 /// <param name="expense">The expense.</param>
 /// <param name="maxHitPts">The maximum hit PTS.</param>
 /// <param name="damageMitigation">The damage mitigation.</param>
 /// <param name="hullDimensions">The hull dimensions.</param>
 /// <param name="science">The science generated by this hull, if any.</param>
 /// <param name="culture">The culture generated by this hull, if any.</param>
 /// <param name="income">The income generated by this hull, if any.</param>
 public FacilityHullStat(FacilityHullCategory hullCategory, string name, AtlasID imageAtlasID, string imageFilename, string description, float size, float mass,
     float pwrRqmt, float expense, float maxHitPts, DamageStrength damageMitigation, Vector3 hullDimensions, float science, float culture, float income)
     : base(name, imageAtlasID, imageFilename, description, size, mass, pwrRqmt, expense, maxHitPts, damageMitigation, hullDimensions) {
     HullCategory = hullCategory;
     Science = science;
     Culture = culture;
     Income = income;
 }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FacilityStat" /> struct.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="mass">The mass.</param>
 /// <param name="maxHitPts">The maximum hit PTS.</param>
 /// <param name="category">The category.</param>
 /// <param name="science">The science.</param>
 /// <param name="culture">The culture.</param>
 /// <param name="income">The income generated by this facility.</param>
 /// <param name="expense">The expense consumed by this facility.</param>
 public FacilityStat(string name, float mass, float maxHitPts, FacilityHullCategory category, float science, float culture,
     float income, float expense)
     : this() {
     Name = name;
     Mass = mass;
     MaxHitPoints = maxHitPts;
     Category = category;
     Science = science;
     Culture = culture;
     Income = income;
     Expense = expense;
 }
예제 #3
0
 public IList<FacilityData> GetData(FacilityHullCategory category) {
     return _composition[category];
 }
 private FacilityHullStat CreateElementHullStat(FacilityHullCategory hullCat, string elementName, bool isSettlement) {
     float science = hullCat.Science(isSettlement);
     float culture = hullCat.Culture(isSettlement);
     float income = hullCat.Income(isSettlement);
     float expense = hullCat.Expense(isSettlement);
     float hullMass = hullCat.Mass();
     Vector3 hullDimensions = hullCat.Dimensions();
     return new FacilityHullStat(hullCat, elementName, AtlasID.MyGui, TempGameValues.AnImageFilename, "Description...", 0F,
         hullMass, 0F, expense, 50F, new DamageStrength(2F, 2F, 2F), hullDimensions, science, culture, income);
 }
예제 #5
0
        protected override void AssignValues(AItemData data) {
            var fData = data as FacilityData;
            var accessCntlr = fData.InfoAccessCntlr;

            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Culture)) {
                Culture = fData.Culture;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Defense)) {
                DefensiveStrength = fData.DefensiveStrength;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Offense)) {
                OffensiveStrength = fData.OffensiveStrength;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Health)) {
                Health = fData.Health;  // Element Health only matters on Element displays
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.AlertStatus)) {
                AlertStatus = fData.AlertStatus;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.CurrentHitPoints)) {
                CurrentHitPoints = fData.CurrentHitPoints;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Science)) {
                Science = fData.Science;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.NetIncome)) {
                Income = fData.Income;
                Expense = fData.Expense;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Name)) {
                Name = fData.Name;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.ParentName)) {
                ParentName = fData.ParentName;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Position)) {
                Position = fData.Position;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Owner)) {
                Owner = fData.Owner;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Category)) {
                Category = fData.HullCategory;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.MaxHitPoints)) {
                MaxHitPoints = fData.MaxHitPoints;  // should always be with or before CurrentHitPts as both are needed to calc CmdReport's UnitHealth
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Mass)) {
                Mass = fData.Mass;
            }
            // SensorRange on an element makes little sense
            //if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.SensorRange)) {
            //    SensorRange = fData.SensorRange;
            //}
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.WeaponsRange)) {
                WeaponsRange = fData.WeaponsRange;
            }
            if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.SectorID)) {
                SectorID = fData.SectorID;
            }
        }