public DesignDataListEntry(Rect r, ShipDesignData design, ButtonPress callback)
    {
        rect           = r;
        Design         = design;
        buttonCallBack = callback;
        Name           = Design.Design.Name + "  ";

        Command = new GUIContent();
        Money   = new GUIContent();

        GameManager.instance.UIContent.image = null;
        GameManager.instance.UIContent.text  = Name;
        Command.image = ResourceManager.GetIconTexture("Icon_CommandPoint");
        Command.text  = ":" + Design.CommandPoints.ToString("0") + "  ";
        Money.image   = ResourceManager.GetIconTexture("Icon_Money");
        Money.text    = ":" + Design.GetTotalValue().ToString("0.#");

        float nameWidthMax;
        float nameWidthMin;
        float commandWidthMax;
        float commandWidthMin;
        float moneyWidthMax;
        float moneyWidthMin;

        GameManager.instance.largeLabelStyle.CalcMinMaxWidth(GameManager.instance.UIContent, out nameWidthMin, out nameWidthMax);
        GameManager.instance.largeLabelStyle.CalcMinMaxWidth(Command, out commandWidthMin, out commandWidthMax);
        GameManager.instance.largeLabelStyle.CalcMinMaxWidth(Money, out moneyWidthMin, out moneyWidthMax);

        float indent = (rect.width - (nameWidthMax + commandWidthMax + moneyWidthMax)) / 2f;

        NameRect    = new Rect(rect.x + indent, rect.y, nameWidthMax, rect.height);
        CommandRect = new Rect(NameRect.xMax, rect.y, commandWidthMax, rect.height);
        MoneyRect   = new Rect(CommandRect.xMax, rect.y, moneyWidthMax, rect.height);
    }
    protected void BuildDeignDataList(ShipHullData hullData)
    {
        DesignDataList.Clear();
        DeselectDesignData();

        float EntrySize = DesignScrollWindowRect.height / 5f;

        if (ResourceManager.shipDesigns.ContainsKey(hullData.Name))
        {
            if (ResourceManager.shipDesigns[hullData.Name].Count > 0)
            {
                foreach (KeyValuePair <string, ShipDesign> keyVal in ResourceManager.shipDesigns[hullData.Name])
                {
                    if (!keyVal.Value.Deleted)
                    {
                        Rect                rect           = new Rect(0, EntrySize * DesignDataList.Count, DesignScrollViewRect.width, EntrySize);
                        ShipDesignData      shipDesignData = ResourceManager.GetShipDesignData(keyVal.Value);
                        DesignDataListEntry DLE            = new DesignDataListEntry(rect, shipDesignData, LoadDesignData);
                        DesignDataList.Add(DLE);
                    }
                }
            }
        }

        ResizeViewListWindow(ref DesignScrollViewRect, DesignScrollWindowRect, DesignDataList.Count, EntrySize);
    }
 bool CanAffordDesign(ShipDesignData design)
 {
     if (design.CommandPoints <= CommandLimit - CommandUsed)
     {
         if (design.GetTotalValue() <= MoneyLimit - MoneyUsed)
         {
             return(true);
         }
     }
     return(false);
 }
    public void SetShipDesign(ShipDesign design, ButtonPress callBack, DeleteButtonPress deleteMethod)
    {
        shipDesign     = design;
        buttonCallBack = callBack;
        deleteCallBack = deleteMethod;

        ShipDesignData designData = shipDesign.GetShipDesignData();

        DesignName.text   = shipDesign.Name;
        CommandValue.text = designData.CommandPoints.ToString();
        CostValue.text    = designData.GetTotalValue().ToString("0.#");

        CommandIcon.overrideSprite = ResourceManager.instance.GetIconTexture("Icon_CommandPoint");
        CommandIcon.preserveAspect = true;

        CostIcon.overrideSprite = ResourceManager.instance.GetIconTexture("Icon_Money");
        CostIcon.preserveAspect = true;
    }
 protected override void LoadDesignData(ShipDesignData designData)
 {
     selectedDesign = designData;
     CreateDummyShips();
     if (PlayerSelected)
     {
         DummyUnit.transform.GetChild(0).gameObject.layer = 9;
     }
     else if (EnemySelected)
     {
         DummyUnit.transform.GetChild(0).gameObject.layer = 10;
     }
     else if (AllySelected)
     {
         DummyUnit.transform.GetChild(0).gameObject.layer = 11;
     }
     else if (NeutralSelected)
     {
         DummyUnit.transform.GetChild(0).gameObject.layer = 13;
     }
 }
    public void Draw(ShipDesignData selected)
    {
        if (selected == Design)
        {
            if (GUI.Button(rect, "", GameManager.instance.SquareButtonGreenStyle))
            {
                buttonCallBack(Design);
                AudioManager.instance.PlayUIClip("SelectButtonClick");
            }
        }
        else
        {
            if (GUI.Button(rect, ""))
            {
                buttonCallBack(Design);
                AudioManager.instance.PlayUIClip("SelectButtonClick");
            }
        }

        GUI.Label(NameRect, Name, GameManager.instance.largeLabelStyle);
        GUI.Label(CommandRect, Command, GameManager.instance.largeLabelStyle);
        GUI.Label(MoneyRect, Money, GameManager.instance.largeLabelStyle);
    }
 protected override void LoadDesignData(ShipDesignData designData)
 {
     selectedDesign = designData;
     CreateDummyShips();
     DummyUnit.transform.GetChild(0).gameObject.layer = 9;
 }
Beispiel #8
0
    public ShipData(ShipDesignData shipDesignData)
    {
        designData  = shipDesignData;
        DisplayName = designData.Design.Name;

        ForeSection      = new ShipQuadrant(this, designData.ForeQuadrant, QuadrantTypes.Fore);
        AftSection       = new ShipQuadrant(this, designData.AftQuadrant, QuadrantTypes.Aft);
        StarboardSection = new ShipQuadrant(this, designData.StarboardQuadrant, QuadrantTypes.Starboard);
        PortSection      = new ShipQuadrant(this, designData.PortQuadrant, QuadrantTypes.Port);
        CenterSection    = new ShipQuadrant(this, designData.CenterQuadrant, QuadrantTypes.Center);

        //Add Fighters
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.Fighters)
        {
            Fighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.HeavyFighters)
        {
            HeavyFighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.AssaultPods)
        {
            AssaultPods.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }

        fuelMax         = designData.Fuel;
        fuel            = fuelMax;
        ammo            = designData.Ammo;
        ammoMax         = designData.Ammo;
        power           = designData.PowerStorage;
        powerMax        = designData.PowerStorage;
        crew            = designData.Crew;
        crewMax         = designData.Crew;
        supplies        = designData.Supplies;
        suppliesMax     = designData.Supplies;
        troops          = designData.Troops;
        troopsMax       = designData.Troops;
        commandPoints   = designData.CommandPoints;
        mass            = designData.Mass;
        powerGenerated  = designData.PowerGenerated;
        FTLSpeed        = designData.FTLSpeed;
        research        = designData.Research;
        mining          = designData.Mining;
        repair          = designData.Repair;
        ammoGenerated   = designData.AmmoGenerated;
        transporter     = designData.Transporter;
        medical         = designData.Medical;
        cloakingPower   = designData.CloakingPower;
        stealth         = designData.Stealth;
        boardingDefense = designData.BoardingDefense;
        colonies        = designData.Colonies;
        diplomacy       = designData.Diplomacy;
        sensor          = designData.Sensor;
        longRangeSensor = designData.LongRangeSensor;
        advancedSensor  = designData.AdvancedSensor;

        CalculateEngines();
        AttackDirection = designData.Design.attackDirection;
        AttackStyle     = designData.Design.attackStyle;
        if (designData.Design.attackRange != -1)
        {
            attackRange = designData.Design.attackRange;
        }
        else
        {
            attackRange = designData.maxRange;
        }

        SetCrewEffeciency();
    }
Beispiel #9
0
 protected abstract void LoadDesignData(ShipDesignData designData);