コード例 #1
0
    protected void BuildStationDesignDataList(StationHullData hullData)
    {
        StationDesignDataList.Clear();
        DeselectDesignData();

        float EntrySize = DesignScrollWindowRect.height / 5f;

        if (ResourceManager.stationDesigns.ContainsKey(hullData.Name))
        {
            if (ResourceManager.stationDesigns[hullData.Name].Count > 0)
            {
                foreach (KeyValuePair <string, StationDesign> keyVal in ResourceManager.stationDesigns[hullData.Name])
                {
                    if (!keyVal.Value.Deleted)
                    {
                        Rect rect = new Rect(0, EntrySize * StationDesignDataList.Count, DesignScrollViewRect.width, EntrySize);
                        StationDesignData          stationDesignData = ResourceManager.GetStationDesignData(keyVal.Value);
                        StationDesignDataListEntry DLE = new StationDesignDataListEntry(rect, stationDesignData, LoadStationDesignData);
                        StationDesignDataList.Add(DLE);
                    }
                }
            }
        }

        ResizeViewListWindow(ref DesignScrollViewRect, DesignScrollWindowRect, DesignDataList.Count, EntrySize);
    }
コード例 #2
0
    public StationHullListEntry(Rect rect, StationHullData hullData, int index, ButtonPress callBack, ChangeSelectedIndex changeIndex)
    {
        baseRect             = rect;
        stationHullData      = hullData;
        Index                = index;
        buttonCallBack       = callBack;
        changeSelectionIndex = changeIndex;

        Icon = stationHullData.GetIcon();
    }
コード例 #3
0
 protected virtual bool CheckHullAllowed(StationHullData hull)
 {
     return(true);
 }
コード例 #4
0
    public StationDesignData(StationDesign design)
    {
        Design = design;
        Hull   = design.GetHull();

        float Power         = 0;
        float PowerEffiency = 0;

        StationSlotLayout SlotLayout = Hull.GetSlotLayout();
        int SlotCount = SlotLayout.SlotList.Count;

        //Set base stats from hulldata
        Research        = Hull.BaseResearch;
        Repair          = Hull.BaseRepair;
        Sensor          = Hull.BaseSensor;
        LongRangeSensor = Hull.BaseLongRangeSensor;
        AdvancedSensor  = Hull.BaseAdvancedSensor;
        Crew            = Hull.BaseCrew;
        Health          = Hull.BaseHealthPerSlot * SlotCount;
        ArmorHealth     = Hull.BaseArmorPerSlot * SlotCount;

        //Get stats from each module
        foreach (DesignModule designModule in Design.Modules)
        {
            Module module = ResourceManager.instance.GetModule(designModule.Module);

            ProductionCost     += module.ProductionCost;
            AlloyCost          += module.AlloyCost;
            AdvancedAlloyCost  += module.AdvancedAlloyCost;
            SuperiorAlloyCost  += module.SuperiorAlloyCost;
            CrystalCost        += module.CrystalCost;
            RareCrystalCost    += module.RareCrystalCost;
            ExoticCrystalCost  += module.ExoticCrystalCost;
            ExoticParticleCost += module.ExoticParticleCost;

            PowerGenerated += module.PowerGenerated;
            Ammo           += module.Ammo;
            Power          += module.Power;
            PowerStorage   += module.PowerStorage;
            Crew           += module.Crew;
            RequiredCrew   += module.RequiredCrew;

            Sensor          += module.Sensor;
            LongRangeSensor += module.LongRangeSensor;
            AdvancedSensor  += module.AdvancedSensor;

            Research        += module.Research;
            Mining          += module.Mining;
            Repair          += module.Repair;
            AmmoGenerated   += module.AmmoGenerated;
            Transporter     += module.Transporter;
            Troops          += module.Troops;
            Medical         += module.Medical;
            BoardingDefense += module.BoardingDefense;
            Diplomacy       += module.Diplomacy;

            JammingCount += module.JammingCount;
            if (module.JammingRange > 0)
            {
                if (JammingRange == 0)
                {
                    JammingRange = module.JammingRange;
                }
                else
                {
                    JammingRange = Mathf.Min(JammingRange, module.JammingRange);
                }
            }
            if (module.JammingDelay > 0)
            {
                if (JammingDelay == 0)
                {
                    JammingDelay = module.JammingDelay;
                }
                else
                {
                    JammingDelay = Mathf.Max(JammingDelay, module.JammingDelay);
                }
            }

            DamageBonus   = Mathf.Max(DamageBonus, module.DamageBonus);
            DefenseBonus  = Mathf.Max(DefenseBonus, module.DefenseBonus);
            PowerEffiency = Mathf.Max(PowerEffiency, module.PowerEfficiency);

            Health             += module.Health;
            ArmorHealth        += module.ArmorHealth;
            ArmorRating        += module.ArmorRating;
            ShieldHealth       += module.ShieldHealth;
            ShieldRating       += module.ShieldRating;
            ShieldRechargeDelay = Mathf.Max(ShieldRechargeDelay, module.ShieldRechargeDelay);
            ShieldRechargeRate += module.ShieldRechargeRate;

            foreach (string fighter in module.Fighters)
            {
                AddFighters(fighter, Fighters);
            }
            foreach (string fighter in module.HeavyFighters)
            {
                AddFighters(fighter, HeavyFighters);
            }

            Weapon weapon = module.GetWeapon();
            if (weapon != null)
            {
                Weapons.Add(new SavedWeapon(designModule.Rotation, weapon));
            }
        }

        MinCrew  = (int)(Crew * ResourceManager.instance.GetGameConstants().MinCrewPercent);
        maxRange = CalculateMaxRange();
    }
コード例 #5
0
 void ChangeStationHull(StationHullData data)
 {
     BuildStationDesignDataList(data);
     DesignScrollPostion = Vector2.zero;
 }
コード例 #6
0
 protected virtual bool CheckStationHullValid(StationHullData data)
 {
     return(true);
 }
コード例 #7
0
 protected void BuildStationDesignDataList(StationHullData hullData)
 {
 }