예제 #1
0
 public static string UnitSkinImage(UnitParam unit, ArtifactParam skin, string jobName)
 {
     if (skin == null)
     {
         return(AssetPath.UnitImage(unit, jobName));
     }
     AssetPath.mSB.Length = 0;
     AssetPath.mSB.Append("UnitImages/");
     AssetPath.mSB.Append(unit.image);
     AssetPath.mSB.Append("_");
     AssetPath.mSB.Append(skin.asset);
     return(AssetPath.mSB.ToString());
 }
예제 #2
0
        private void Start()
        {
            GameManager instanceDirect = MonoSingleton <GameManager> .GetInstanceDirect();

            if (Object.op_Equality((Object)instanceDirect, (Object)null))
            {
                return;
            }
            SceneBattle instance = SceneBattle.Instance;

            if (!Object.op_Implicit((Object)instance) || !instance.IsGetFirstClearItem || !Object.op_Implicit((Object)this.GoGetUnitAnim))
            {
                return;
            }
            string    firstClearItemId = instance.FirstClearItemId;
            ItemParam itemParam        = instanceDirect.GetItemParam(firstClearItemId);

            if (itemParam == null || itemParam.type != EItemType.Unit)
            {
                return;
            }
            UnitParam unitParam = instanceDirect.GetUnitParam(firstClearItemId);

            if (unitParam == null)
            {
                return;
            }
            DataSource.Bind <ItemParam>(((Component)this).get_gameObject(), itemParam);
            DataSource.Bind <UnitParam>(((Component)this).get_gameObject(), unitParam);
            if (Object.op_Implicit((Object)this.ImgUnit))
            {
                instanceDirect.ApplyTextureAsync(this.ImgUnit, AssetPath.UnitImage(unitParam, unitParam.GetJobId(0)));
            }
            GameParameter.UpdateAll(((Component)this).get_gameObject());
            Animator component = (Animator)this.GoGetUnitAnim.GetComponent <Animator>();

            if (!Object.op_Implicit((Object)component))
            {
                return;
            }
            component.SetInteger("rariry", (int)unitParam.rare + 1);
        }
예제 #3
0
        public void Refresh(UnitParam param, string shard_name = "", int awake_lv = 0, int get_shard = 0, int current_index = 0)
        {
            if (param == null)
            {
                return;
            }
            GameManager instance1 = MonoSingleton <GameManager> .Instance;

            this.InitRebirthStar();
            this.rebirthstar_template.SetActive(false);
            this.mNotUnlockUnit = true;
            this.mget_shard     = get_shard;
            this.msub_shard     = this.GetPastShard(current_index, (string)param.piece);
            this.muse_shard     = 0;
            this.mstart_gauge   = 0;
            this.mremain_shard  = this.mget_shard;
            UnitData unitDataByUnitId = instance1.Player.FindUnitDataByUnitID(param.iname);

            this.mCurrentUnitIname = param.iname;
            string path1 = AssetPath.UnitImage(param, param.GetJobId(0));

            instance1.ApplyTextureAsync(this.unit_img, path1);
            instance1.ApplyTextureAsync(this.unit_img_blur01, path1);
            instance1.ApplyTextureAsync(this.unit_img_blur02, path1);
            string path2 = AssetPath.UnitIconSmall(param, param.GetJobId(0));

            instance1.ApplyTextureAsync((RawImage)this.unit_icon, path2);
            GameSettings instance2 = GameSettings.Instance;

            if (unitDataByUnitId != null && EElement.None <= unitDataByUnitId.Element && unitDataByUnitId.Element < (EElement)instance2.Elements_IconSmall.Length)
            {
                this.element_icon.set_sprite(instance2.Elements_IconSmall[(int)unitDataByUnitId.Element]);
            }
            else
            {
                this.element_icon.set_sprite((Sprite)null);
            }
            this.ShardName.set_text(shard_name);
            this.StartAwakeLv = this.NowAwakeLv = awake_lv;
            if (unitDataByUnitId != null)
            {
                this.mNotUnlockUnit = false;
                this.AwakeLvCap     = unitDataByUnitId.GetAwakeLevelCap();
                int num1 = (int)instance1.MasterParam.GetRarityParam(unitDataByUnitId.Rarity).UnitAwakeLvCap / 5;
                for (int index = 0; index < num1; ++index)
                {
                    GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.rebirthstar_template);
                    gameObject.get_transform().SetParent(this.rebirthstar_root.get_transform(), false);
                    gameObject.SetActive(true);
                    this.mRebirthStars.Add(gameObject);
                }
                int index1 = this.StartAwakeLv / 5;
                for (int index2 = 0; index2 < index1 && this.mRebirthStars.Count >= index2; ++index2)
                {
                    Transform child = this.mRebirthStars[index2].get_transform().FindChild("Rebirth_star_anim");
                    ((Component)child.FindChild("Rebirthstar_01")).get_gameObject().SetActive(true);
                    ((Component)child.FindChild("Rebirthstar_02")).get_gameObject().SetActive(true);
                    ((Component)child.FindChild("Rebirthstar_03")).get_gameObject().SetActive(true);
                    ((Component)child.FindChild("Rebirthstar_04")).get_gameObject().SetActive(true);
                    ((Component)child.FindChild("Rebirthstar_05")).get_gameObject().SetActive(true);
                }
                int num2 = this.StartAwakeLv % 5;
                if (num2 > 0)
                {
                    Transform child = this.mRebirthStars[index1].get_transform().FindChild("Rebirth_star_anim");
                    for (int index2 = 0; index2 < num2; ++index2)
                    {
                        string str = "Rebirthstar_0" + (object)(index2 + 1);
                        ((Component)child.FindChild(str)).get_gameObject().SetActive(true);
                    }
                }
                if (this.msub_shard > 0)
                {
                    int startAwakeLv    = this.StartAwakeLv;
                    int msubShard       = this.msub_shard;
                    int awakeNeedPieces = instance1.MasterParam.GetAwakeNeedPieces(startAwakeLv);
                    int num3            = this.AwakeLvCap / 5;
                    while (msubShard >= awakeNeedPieces)
                    {
                        int       num4  = startAwakeLv / 5;
                        int       num5  = Math.Min(5, startAwakeLv % 5) + 1;
                        Transform child = this.mRebirthStars[num4 + 1 < num3 ? num4 : num3 - 1].get_transform().FindChild("Rebirth_star_anim").FindChild("Rebirthstar_0" + num5.ToString());
                        if (Object.op_Inequality((Object)child, (Object)null))
                        {
                            ((Component)child).get_gameObject().SetActive(true);
                        }
                        ++startAwakeLv;
                        if (startAwakeLv < this.AwakeLvCap)
                        {
                            msubShard      -= awakeNeedPieces;
                            awakeNeedPieces = instance1.MasterParam.GetAwakeNeedPieces(startAwakeLv);
                            if (msubShard < awakeNeedPieces)
                            {
                                break;
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (Object.op_Inequality((Object)this.ShardNext, (Object)null))
                    {
                        this.ShardNext.set_text(awakeNeedPieces.ToString());
                    }
                    if (Object.op_Inequality((Object)this.ShardCurrent, (Object)null))
                    {
                        this.ShardCurrent.set_text(msubShard.ToString());
                    }
                    this.mstart_gauge = msubShard;
                    this.ShardGauge.AnimateValue((float)msubShard / (float)awakeNeedPieces, 0.0f);
                    this.StartAwakeLv = startAwakeLv;
                    this.NowAwakeLv   = this.StartAwakeLv;
                    this.NextAwakeLv  = this.StartAwakeLv + 1 <= this.AwakeLvCap ? this.StartAwakeLv + 1 : this.AwakeLvCap;
                }
            }
            int num = unitDataByUnitId == null?param.GetUnlockNeedPieces() : instance1.MasterParam.GetAwakeNeedPieces(this.StartAwakeLv);

            this.mnext_shard = num;
            this.muse_shard  = this.mget_shard >= num ? num : this.mget_shard;
            if (this.mstart_gauge > 0 && this.mstart_gauge + this.muse_shard > this.mnext_shard)
            {
                this.muse_shard -= this.mstart_gauge;
            }
            this.mremain_shard -= this.muse_shard;
            if (unitDataByUnitId == null && this.muse_shard >= this.mnext_shard)
            {
                this.mUnlockUnit = true;
            }
            if (this.muse_shard >= this.mnext_shard && this.msub_shard <= 0)
            {
                this.NextAwakeLv = this.NowAwakeLv + 1 <= this.AwakeLvCap ? this.NowAwakeLv + 1 : this.AwakeLvCap;
            }
            if (param.jobsets != null && param.jobsets.Length > 0)
            {
                this.mJobID      = new List <string>();
                this.mJobAwakeLv = new List <int>();
                for (int index = 0; index < param.jobsets.Length; ++index)
                {
                    JobSetParam jobSetParam = MonoSingleton <GameManager> .Instance.GetJobSetParam((string)param.jobsets[index]);

                    if (jobSetParam != null && jobSetParam.lock_awakelv > 0 && (unitDataByUnitId == null || !unitDataByUnitId.Jobs[index].IsActivated) && this.StartAwakeLv < jobSetParam.lock_awakelv)
                    {
                        this.mJobID.Add(jobSetParam.job);
                        this.mJobAwakeLv.Add(jobSetParam.lock_awakelv);
                    }
                }
                if (this.mJobID != null && this.mJobID.Count > 1)
                {
                    JobParam jobParam = MonoSingleton <GameManager> .Instance.GetJobParam(this.mJobID[0]);

                    this.JobName.set_text(jobParam.name);
                    this.JobComment.set_text(LocalizedText.Get("sys.GACHA_TEXT_SHARD_AWAKE", new object[1]
                    {
                        (object)jobParam.name
                    }));
                }
            }
            this.isRunningAnimator = true;
        }
예제 #4
0
        public void Setup(ConceptCardData conceptCardData)
        {
            try
            {
                UnitParam unitParam = MonoSingleton <GameManager> .Instance.GetUnitParam(conceptCardData.Param.first_get_unit);

                ConceptCardParam card = conceptCardData.Param;
                if (Object.op_Inequality((Object)this.m_ConceptCardImage, (Object)null) && card != null)
                {
                    MonoSingleton <GameManager> .Instance.ApplyTextureAsync(this.m_ConceptCardImage, AssetPath.ConceptCard(card));
                }
                if (Object.op_Inequality((Object)this.m_UnitImage, (Object)null) && unitParam != null)
                {
                    MonoSingleton <GameManager> .Instance.ApplyTextureAsync(this.m_UnitImage, AssetPath.UnitImage(unitParam, unitParam.GetJobId(0)));
                }
                if (Object.op_Inequality((Object)this.m_UnitBlurImage, (Object)null) && unitParam != null)
                {
                    MonoSingleton <GameManager> .Instance.ApplyTextureAsync(this.m_UnitBlurImage, AssetPath.UnitImage(unitParam, unitParam.GetJobId(0)));
                }
                if (Object.op_Inequality((Object)this.m_ConceptCardFrame, (Object)null))
                {
                    this.m_ConceptCardFrame.ImageIndex = card.rare;
                }
                if (Object.op_Inequality((Object)this.m_UnitTextDescription, (Object)null))
                {
                    this.m_UnitTextDescription.set_text(LocalizedText.Get("sys.CONCEPT_CARD_UNIT_GET_DESCRIPTION", (object)card.name, (object)unitParam.name));
                }
                this.SetConceptCardRarity(card.rare + 1);
                this.SetUnitRarity((int)unitParam.rare + 1);
                this.m_UnitRarity = (int)unitParam.rare;
                this.StartCoroutine(this.WaitConceptCardEffectEnd());
            }
            catch
            {
                this.SetConceptCardRarity(1);
                this.SetUnitRarity(1);
            }
        }