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); }
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(); }
protected virtual bool CheckHullAllowed(StationHullData hull) { return(true); }
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(); }
void ChangeStationHull(StationHullData data) { BuildStationDesignDataList(data); DesignScrollPostion = Vector2.zero; }
protected virtual bool CheckStationHullValid(StationHullData data) { return(true); }
protected void BuildStationDesignDataList(StationHullData hullData) { }