예제 #1
0
 public void addRow(BBResRow para_nwRow)
 {
     if(rows == null) { rows = new List<BBResRow>(); }
     rows.Add(para_nwRow);
 }
예제 #2
0
    public override void buildPage(int para_pageID, GameObject para_pageParent)
    {
        if(pageInitFlags == null) { pageInitFlags = new bool[]{false,false}; }

        if(para_pageID == 0)
        {
            string reqPageObjName = "ResultScreens_A";
            Transform reqResultScreenPage = transform.FindChild(reqPageObjName);
            Transform subPageTemplate = reqResultScreenPage.FindChild("Pages").FindChild("Ac"+acPKey);
            subPageTemplate.gameObject.SetActive(true);

            if(pageInitFlags[0] == false)
            {
                // Load necessary items.
                string fullPathToTemplate = reqPageObjName + "*" + "Pages" + "*" + ("Ac"+acPKey);

                // Init Items.
                BBGameyResultData gameyData = (BBGameyResultData) acResultData.getGameyData();

                int numCompleteCorrectBridges = gameyData.getNumOfCompleteCorrectBridges();
                int numBrokenBridges = gameyData.getNumBrokenBridges();
                string timeStr = gameyData.getTimeString();

                string[] elementNames   = {"FieldTitle-0","FieldTitle-1","FieldTitle-2","FieldContent-0","FieldContent-1","FieldContent-2"};
                string[] elementContent = {LocalisationMang.translate("Full correct bridges"),LocalisationMang.translate("Broken bridges"),LocalisationMang.translate("Time"),""+numCompleteCorrectBridges,""+numBrokenBridges,timeStr};
                bool[] destroyGuideArr = {false,false,false,false,false,false};
                int[] textElementTypeArr = {0,0,0,0,0,0};
                prepTextElements(elementNames,elementContent,destroyGuideArr,textElementTypeArr,fullPathToTemplate);

                pageInitFlags[0] = true;
            }
        }
        else if(para_pageID == 1)
        {
            string reqPageObjName = "ResultScreens_B";
            Transform reqResultScreenPage = transform.FindChild(reqPageObjName);
            Transform subPageTemplate = reqResultScreenPage.FindChild("Pages").FindChild("Ac"+acPKey);
            subPageTemplate.gameObject.SetActive(true);

            if(pageInitFlags[1] == false)
            {
                // Load necessary items.
                string fullPathToTemplate = reqPageObjName + "*" + "Pages" + "*" + ("Ac"+acPKey);

                availableTables = new List<BBResTable>();

                // Table to column lookup.
                Dictionary<string, List<BBResColumn>> tableLookup = new Dictionary<string, List<BBResColumn>>();

                List<ILevelConfig> presentedContent = acResultData.getPresentedContent();
                List<LevelOutcome> outcomeList = acResultData.getOutcomeList();

                for(int i=0; i<presentedContent.Count; i++)
                {
                    BBLevelConfig tmpContent = (BBLevelConfig) presentedContent[i];
                    BBLevelOutcome tmpOutcome = (BBLevelOutcome) outcomeList[i];

                    string contentDescription = tmpContent.getDescription();
                    List<BBResColumn> workbenchTableColumns = null;
                    if(tableLookup.ContainsKey(contentDescription))
                    {
                        workbenchTableColumns = tableLookup[contentDescription];
                    }
                    else
                    {
                        workbenchTableColumns = new List<BBResColumn>();
                        workbenchTableColumns.Add(new BBResColumn());
                        workbenchTableColumns.Add(new BBResColumn());
                        tableLookup.Add(contentDescription,workbenchTableColumns);
                    }

                    //List<IndexRegion> playerHighlights = tmpOutcome.getPlayerHighlights();

                    string cellText = "";
                    cellText = produceFancyText(tmpContent.getBridgeWord(),tmpContent.getCorrectHighlightAreas());
                    if(tmpOutcome.isPositiveOutcome())
                    {
                        workbenchTableColumns[0].addCell(new BBResCell(cellText));
                    }
                    else
                    {
                        workbenchTableColumns[1].addCell(new BBResCell(cellText));
                    }

                    tableLookup[contentDescription] = workbenchTableColumns;
                }

                // Compress all tables.
                List<string> lookupKeys = new List<string>(tableLookup.Keys);
                for(int i=0; i<lookupKeys.Count; i++)
                {
                    List<BBResColumn> tmpTableColumns = tableLookup[lookupKeys[i]];

                    BBResTable workbenchTable = new BBResTable(lookupKeys[i]);
                    workbenchTable.addHeaderName(LocalisationMang.translate("Success"));
                    workbenchTable.addHeaderName(LocalisationMang.translate("Revise"));

                    // Convert columns to rows.
                    bool canMakeMoreRows = true;
                    int dataRowIndex = 0;
                    while(canMakeMoreRows)
                    {
                        canMakeMoreRows = false;

                        List<BBResCell> nwRowData = new List<BBResCell>();
                        for(int k=0; k<tmpTableColumns.Count; k++)
                        {
                            List<BBResCell> columnContent = tmpTableColumns[k].columnContent;
                            if((columnContent != null)&&(dataRowIndex < (columnContent.Count)))
                            {
                                nwRowData.Add(columnContent[dataRowIndex]);
                                canMakeMoreRows = true;
                            }
                            else
                            {
                                nwRowData.Add(null);
                            }
                        }

                        if(canMakeMoreRows)
                        {
                            BBResRow nwRow = new BBResRow(nwRowData);
                            workbenchTable.addRow(nwRow);
                        }

                        dataRowIndex++;
                    }

                    availableTables.Add(workbenchTable);
                }

                string[] elementNames   = {"TableScrollArea"};
                string[] elementContent = {"Table Scroll Area"};
                bool[] destroyGuideArr = {true};
                int[] textElementTypeArr = {0};
                prepTextElements(elementNames,elementContent,destroyGuideArr,textElementTypeArr,fullPathToTemplate);

                columnEqualGuiWidth = ((uiBounds["TableScrollArea"].width * 0.9f) / (2 * 1.0f));
                float minimumColumnWidth = (uiBounds["TableScrollArea"].width * 0.45f);
                if(columnEqualGuiWidth <= minimumColumnWidth)
                {
                    columnEqualGuiWidth = minimumColumnWidth;
                }

                pageInitFlags[1] = true;
            }
        }
    }