Exemple #1
0
    public void InitPanel(int contributionID, int questID)
    {
        if (this.m_grayscaleShader != null)
        {
            Material material = new Material(this.m_grayscaleShader);
            this.m_buildingTitleBanner.material = material;
        }
        this.m_questID                    = questID;
        this.m_contributionID             = contributionID;
        this.m_buildingName.font          = GeneralHelpers.LoadFancyFont();
        this.m_buildingState.font         = GeneralHelpers.LoadStandardFont();
        this.m_buildingDescription.font   = GeneralHelpers.LoadStandardFont();
        this.m_costLabel.font             = GeneralHelpers.LoadStandardFont();
        this.m_cost.font                  = GeneralHelpers.LoadStandardFont();
        this.m_contributeButtonLabel.font = GeneralHelpers.LoadStandardFont();
        this.m_cantContributeText.font    = GeneralHelpers.LoadStandardFont();
        this.m_cantContributeText.text    = StaticDB.GetString("CANT_CONTRIBUTE", "You can only contribute when the building is under construction.");
        this.m_healthText.font            = GeneralHelpers.LoadStandardFont();
        this.m_gotLootLabel.font          = GeneralHelpers.LoadStandardFont();
        this.m_gotLootLabel.text          = StaticDB.GetString("YOU_RECEIVED_ITEM", "You received item: (PH)");
        this.m_gotLootItemName.font       = GeneralHelpers.LoadStandardFont();
        this.m_gotLootArea.SetActive(false);
        if (!LegionfallData.legionfallDictionary.ContainsKey(contributionID))
        {
            return;
        }
        MobileContribution contribution = ((LegionfallData.MobileContributionData)LegionfallData.legionfallDictionary[contributionID]).contribution;

        this.m_buildingStateImageFrame_building.gameObject.SetActive(false);
        this.m_buildingStateImageFrame_active.gameObject.SetActive(false);
        this.m_buildingStateImageFrame_underAttack.gameObject.SetActive(false);
        this.m_buildingStateImageFrame_destroyed.gameObject.SetActive(false);
        this.m_contributeArea.SetActive(false);
        this.m_cantContributeArea.SetActive(true);
        this.m_healthText.gameObject.SetActive(true);
        this.m_buildingTitleBanner.material.SetFloat("_GrayscaleAmount", (contribution.State != 4) ? 0f : 1f);
        this.m_buildingTitleBanner.color = ((contribution.State != 4) ? Color.white : Color.gray);
        this.m_progressFillGlow.gameObject.SetActive(false);
        int num;

        switch (contribution.State)
        {
        case 1:
            this.m_progressFillGlow.gameObject.SetActive(true);
            num = contribution.UitextureAtlasMemberIDUnderConstruction;
            this.m_buildingState.text  = StaticDB.GetString("UNDER_CONSTRUCTION", "Under Construction (PH)");
            this.m_buildingState.color = new Color(1f, 0.8235f, 0f, 1f);
            this.m_buildingStateImageFrame_building.gameObject.SetActive(true);
            this.m_contributeArea.SetActive(true);
            this.m_cantContributeArea.SetActive(false);
            this.m_progressFillBar.sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_BarFilling_UnderConstruction");
            break;

        case 2:
            num = contribution.UitextureAtlasMemberIDActive;
            this.m_buildingState.text  = StaticDB.GetString("BUILDING_ACTIVE", "Building Active (PH)");
            this.m_buildingState.color = new Color(0f, 1f, 0f, 1f);
            this.m_buildingStateImageFrame_active.gameObject.SetActive(true);
            this.m_progressFillBar.sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_BarFilling_Active");
            break;

        case 3:
            num = contribution.UitextureAtlasMemberIDUnderAttack;
            this.m_buildingState.text  = StaticDB.GetString("UNDER_ATTACK", "Under Attack (PH)");
            this.m_buildingState.color = new Color(1f, 0f, 0f, 1f);
            this.m_buildingStateImageFrame_underAttack.gameObject.SetActive(true);
            this.m_progressFillBar.sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_BarFilling_UnderAttack");
            break;

        case 4:
            num = contribution.UitextureAtlasMemberIDDestroyed;
            this.m_buildingState.text  = StaticDB.GetString("DESTROYED", "Destroyed (PH)");
            this.m_buildingState.color = new Color(0.6f, 0.6f, 0.6f, 1f);
            this.m_buildingStateImageFrame_destroyed.gameObject.SetActive(true);
            this.m_progressFillBar.sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_BarFilling_UnderConstruction");
            break;

        default:
            return;
        }
        Sprite sprite = null;

        switch (num)
        {
        case 6318:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_CommandCenter_Active-v2");
            break;

        case 6319:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_CommandCenter_Destroyed-v2");
            break;

        case 6320:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_CommandCenter_UnderAttack-v2");
            break;

        case 6321:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_CommandCenter_UnderConstruction-v2");
            break;

        case 6322:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_MageTower_Active-v2");
            break;

        case 6323:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_MageTower_Destroyed-v2");
            break;

        case 6324:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_MageTower_UnderAttack-v2");
            break;

        case 6325:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_MageTower_UnderConstruction-v2");
            break;

        case 6326:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_NetherDisruptor_Active-v2");
            break;

        case 6327:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_NetherDisruptor_Destroyed-v2");
            break;

        case 6328:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_NetherDisruptor_UnderAttack-v2");
            break;

        case 6329:
            sprite = Resources.Load <Sprite>("LegionfallDialog/LegionfallCompanion_NetherDisruptor_UnderConstruction-v2");
            break;
        }
        if (sprite != null)
        {
            this.m_buildingStateImage.sprite = sprite;
        }
        this.m_buildingName.text                 = contribution.Name;
        this.m_buildingDescription.text          = GeneralHelpers.LimitZhLineLength(contribution.Description, 16);
        this.m_progressFillBar.fillAmount        = contribution.UnitCompletion;
        this.m_progressFillGlow.anchorMin        = new Vector2(this.m_progressFillBar.fillAmount, 0.5f);
        this.m_progressFillGlow.anchorMax        = new Vector2(this.m_progressFillBar.fillAmount, 0.5f);
        this.m_progressFillGlow.anchoredPosition = Vector2.zero;
        if (contribution.State == 3)
        {
            this.m_healthText.text = StaticDB.GetString("TIME_LEFT", "Time Left (PH):") + " 123 Hours";
        }
        else
        {
            this.m_healthText.text = ((int)(this.m_progressFillBar.fillAmount * 100f)).ToString() + "%";
        }
        this.m_costLabel.text = StaticDB.GetString("COST", null);
        if (LegionfallData.WarResources() >= contribution.ContributionCurrencyCost)
        {
            this.m_cost.text = LegionfallData.WarResources().ToString("N0") + "/" + contribution.ContributionCurrencyCost;
            this.m_contributeButton.interactable = true;
            this.m_contributeButtonLabel.color   = new Color(1f, 0.859f, 0f, 1f);
        }
        else
        {
            this.m_cost.text = string.Concat(new object[]
            {
                "<color=#ff0000ff>",
                LegionfallData.WarResources().ToString("N0"),
                "</color>/",
                contribution.ContributionCurrencyCost
            });
            this.m_contributeButton.interactable = false;
            this.m_contributeButtonLabel.color   = new Color(0.6f, 0.6f, 0.6f, 1f);
        }
        this.m_currencyIcon.sprite        = GeneralHelpers.LoadCurrencyIcon(contribution.ContributionCurrencyType);
        this.m_contributeButtonLabel.text = StaticDB.GetString("CONTRIBUTE", "Contribute (PH)");
        SpellDisplay[] componentsInChildren = this.m_buffArea.GetComponentsInChildren <SpellDisplay>();
        foreach (SpellDisplay spellDisplay in componentsInChildren)
        {
            Object.DestroyImmediate(spellDisplay.gameObject);
        }
        foreach (int spell2 in contribution.Spell)
        {
            SpellDisplay spellDisplay2 = Object.Instantiate <SpellDisplay>(this.m_legionfallBuffSpellDisplayPrefab);
            spellDisplay2.transform.SetParent(this.m_buffArea, false);
            spellDisplay2.SetSpell(spell2);
            spellDisplay2.SetLocked(contribution.State != 2 && contribution.State != 3);
        }
        iTween.Stop(base.gameObject);
        this.m_progressBarGlow.color      = new Color(1f, 1f, 1f, 0f);
        this.m_progressFillGlowGlow.color = new Color(1f, 1f, 1f, 0f);
    }
    public void SetFollower(int followerID)
    {
        this.m_garrFollowerID = followerID;
        if (followerID == 0)
        {
            RectTransform[] componentsInChildren = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true);
            for (int i = 0; i < componentsInChildren.Length; i++)
            {
                if (componentsInChildren[i] != null && componentsInChildren[i] != this.traitsAndAbilitiesRootObject.get_transform())
                {
                    Object.DestroyImmediate(componentsInChildren[i].get_gameObject());
                }
            }
            AbilityDisplay[] componentsInChildren2 = this.m_equipmentSlotsRootObject.GetComponentsInChildren <AbilityDisplay>(true);
            for (int j = 0; j < componentsInChildren2.Length; j++)
            {
                Object.DestroyImmediate(componentsInChildren2[j].get_gameObject());
            }
        }
        if (!PersistentFollowerData.followerDictionary.ContainsKey(followerID))
        {
            return;
        }
        GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(followerID);

        if (record == null)
        {
            return;
        }
        CreatureRec record2 = StaticDB.creatureDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.HORDE) ? record.AllianceCreatureID : record.HordeCreatureID);

        if (record2 == null)
        {
            return;
        }
        JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary.get_Item(followerID);
        string text   = "Assets/BundleAssets/PortraitIcons/cid_" + record2.ID.ToString("D8") + ".png";
        Sprite sprite = AssetBundleManager.portraitIcons.LoadAsset <Sprite>(text);

        if (sprite != null)
        {
            this.followerSnapshot.set_sprite(sprite);
        }
        RectTransform[] componentsInChildren3 = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true);
        for (int k = 0; k < componentsInChildren3.Length; k++)
        {
            if (componentsInChildren3[k] != null && componentsInChildren3[k] != this.traitsAndAbilitiesRootObject.get_transform())
            {
                Object.DestroyImmediate(componentsInChildren3[k].get_gameObject());
            }
        }
        bool flag = false;

        for (int l = 0; l < jamGarrisonFollower.AbilityID.Length; l++)
        {
            GarrAbilityRec record3 = StaticDB.garrAbilityDB.GetRecord(jamGarrisonFollower.AbilityID[l]);
            if ((record3.Flags & 512u) != 0u)
            {
                if (!flag)
                {
                    GameObject gameObject = Object.Instantiate <GameObject>(this.specializationHeaderPrefab);
                    gameObject.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
                    flag = true;
                    Text component = gameObject.GetComponent <Text>();
                    if (component != null)
                    {
                        component.set_text(StaticDB.GetString("SPECIALIZATION", null));
                    }
                }
                GameObject gameObject2 = Object.Instantiate <GameObject>(this.abilityDisplayPrefab);
                gameObject2.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
                AbilityDisplay component2 = gameObject2.GetComponent <AbilityDisplay>();
                component2.SetAbility(record3.ID, false, false, null);
            }
        }
        bool flag2 = false;

        for (int m = 0; m < jamGarrisonFollower.AbilityID.Length; m++)
        {
            GarrAbilityRec record4 = StaticDB.garrAbilityDB.GetRecord(jamGarrisonFollower.AbilityID[m]);
            if ((record4.Flags & 1u) == 0u)
            {
                if ((record4.Flags & 512u) == 0u)
                {
                    if (!flag2)
                    {
                        GameObject gameObject3 = Object.Instantiate <GameObject>(this.abilitiesHeaderPrefab);
                        gameObject3.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
                        flag2 = true;
                        Text component3 = gameObject3.GetComponent <Text>();
                        if (component3 != null)
                        {
                            component3.set_text(StaticDB.GetString("ABILITIES", null));
                        }
                    }
                    GameObject gameObject4 = Object.Instantiate <GameObject>(this.abilityDisplayPrefab);
                    gameObject4.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
                    AbilityDisplay component4 = gameObject4.GetComponent <AbilityDisplay>();
                    component4.SetAbility(jamGarrisonFollower.AbilityID[m], false, false, null);
                }
            }
        }
        if (jamGarrisonFollower.ZoneSupportSpellID > 0)
        {
            GameObject gameObject5 = Object.Instantiate <GameObject>(this.zoneSupportAbilityHeaderPrefab);
            gameObject5.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
            GameObject gameObject6 = Object.Instantiate <GameObject>(this.m_spellDisplayPrefab);
            gameObject6.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
            SpellDisplay component5 = gameObject6.GetComponent <SpellDisplay>();
            component5.SetSpell(jamGarrisonFollower.ZoneSupportSpellID);
            Text componentInChildren = gameObject5.GetComponentInChildren <Text>();
            if (componentInChildren != null)
            {
                componentInChildren.set_text(StaticDB.GetString("COMBAT_ALLY", null));
            }
        }
        bool flag3 = (jamGarrisonFollower.Flags & 8) != 0;

        if (flag3)
        {
            GarrStringRec record5 = StaticDB.garrStringDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.ALLIANCE) ? record.HordeFlavorGarrStringID : record.AllianceFlavorGarrStringID);
            if (record5 != null)
            {
                Text text2 = Object.Instantiate <Text>(this.m_troopDescriptionPrefab);
                text2.get_transform().SetParent(this.traitsAndAbilitiesRootObject.get_transform(), false);
                text2.set_text(record5.Text);
            }
        }
        this.InitEquipmentSlots(jamGarrisonFollower);
        this.UpdateChampionButtons(jamGarrisonFollower);
    }