コード例 #1
0
    IEnumerator InitBuffBaseData()
    {
        JsonData json = null;

        if (buffBaseDataDic == null)
        {
            buffBaseDataDic = new Dictionary <string, BuffBaseData>();
        }

        buffBaseDataDic.Clear();

        yield return(StartCoroutine(AssetLoader.LoadJsonData("data/buff", "Buff", x => json = x)));

        for (int i = 0; i < json.Count; i++)
        {
            BuffBaseData buffBaseData = new BuffBaseData(json[i]);
            buffBaseDataDic.Add(buffBaseData.id, buffBaseData);
        }


        ArtifactBaseDataDic = new Dictionary <string, ArtifactBaseData>();
        yield return(StartCoroutine(AssetLoader.LoadJsonData("json", "Artifact", x => json = x)));

        for (int i = 0; i < json.Count; i++)
        {
            ArtifactBaseData data = new ArtifactBaseData(json[i]);
            ArtifactBaseDataDic.Add(data.id, data);
        }
    }
コード例 #2
0
    public void SlotInit(ArtifactBaseData data)
    {
        particleObject.SetActive(false);
        artifactBaseData  = data;
        artifactName.text = data.name;
        artifactName.gameObject.SetActive(true);

        AssetLoader.AssignImage(artifactImage, "sprite/artifact", "Atlas_Artifact", artifactBaseData.icon, null);

        ArtifactController artifactController = Battle.currentBattleGroup.artifactController;

        Artifact artifact = artifactController.artifactList.Find(x => x.baseData.id == data.id);

        //현재 스택 상태에 따라 패러미터 변화량 보여줌
        int currentStack = 0;

        if (artifact != null)
        {
            currentStack = artifact.stack;
        }

        float power = 0;

        float.TryParse(data.formula, out power);

        string powerBefore = (power * currentStack).ToString();

        string powerAfter = (power * (currentStack + 1)).ToString();

        string description = data.message.Replace("[formula]", "<color=#00ff00ff>" + powerAfter + "</color>");

        if (artifact != null)
        {
            description = data.message.Replace("[formula]", "<color=#00ff00ff>" + powerBefore + " → " + powerAfter + "</color>");
        }

        artifactMessage.text = description;
        artifactMessage.gameObject.SetActive(true);

        artifactImage.material.SetFloat("_Threshold", 0f);

        //버튼 활성화
        button.interactable = true;

        //캔버스 랜더러들 알파 다 켜기
        for (int i = 0; i < canvasRenderers.Length; i++)
        {
            canvasRenderers[i].SetAlpha(1f);
        }

        //유물 선택되었을 때 콜백 등록
        UIArtifactSelect.onSelected += OnSelected;

        //게임 오브젝트 활성화
        gameObject.SetActive(true);
    }
コード例 #3
0
ファイル: ArtifactController.cs プロジェクト: TimonYoon/Dev
    /// <summary> 버프 전체에서 3개 랜덤하게 보여줌 </summary>
    public void ShowBuff()
    {
        if (showArtifactIDList.Count > 0)
        {
            return;
        }

        int count = 3;

        //유물 리스트
        List <ArtifactBaseData> artifactBaseDataList = GameDataManager.ArtifactBaseDataDic.Values.ToList();

        //사용 가능한 애들만 보여줌
        artifactBaseDataList = artifactBaseDataList.FindAll(x => x.enable);

        for (int i = 0; i < count;)
        {
            ArtifactBaseData artifactBaseData = null;
            while (artifactBaseData == null)
            {
                //최대 스택이면 선택지에서 제외
                int index             = Random.Range(0, artifactBaseDataList.Count);
                ArtifactBaseData data = artifactBaseDataList[index];
                Artifact         a    = artifactList.Find(x => x.baseData == data);
                if (data.maxStack > 0 && a != null && a.stack >= data.maxStack)
                {
                    continue;
                }

                artifactBaseData = data;
            }

            if (showArtifactIDList.Find(x => x == artifactBaseData.id) == null)
            {
                showArtifactIDList.Add(artifactBaseData.id);
                i++;
            }
        }
    }
コード例 #4
0
ファイル: ArtifactController.cs プロジェクト: TimonYoon/Dev
    /// <summary> 유물 획득(추가) </summary>
    public void AddArtifact(ArtifactBaseData data, bool forceSave = true)
    {
        Artifact artifact = null;

        if (artifactList == null)
        {
            return;
        }

        bool isAdd = false;

        if (artifactList.Count <= 0)
        {
            isAdd = true;
        }

        else
        {
            isAdd = true;
            for (int i = 0; i < artifactList.Count; i++)
            {
                if (artifactList[i].baseData.id == data.id)
                {
                    if (artifact != null)
                    {
                        continue;
                    }
                    artifact = artifactList[i];
                    isAdd    = false;
                }
            }
        }

        //아티펙트 포인트 감소
        artifactPoint -= cost;

        //목록에 추가
        if (isAdd)
        {
            artifact = new Artifact(data);
            artifactList.Add(artifact);
        }

        artifact.stack++;
        if (artifact.baseData.type == "hero")
        {
            for (int i = 0; i < battleGroup.redTeamList.Count; i++)
            {
                battleGroup.redTeamList[i].buffController.AttachBuff(battleGroup.redTeamList[i], artifact.baseData.buffID);
            }
        }

        //유물 선택지 리스트 초기화
        showArtifactIDList.Clear();

        //유물 선택창 닫기
        UIArtifactSelect.Close();

        if (onChangedArtifactList != null)
        {
            onChangedArtifactList(battleGroup);
        }

        //유물 선택 후 강제 저장 함
        if (forceSave)
        {
            Battle.SaveArtifactInfo(battleGroup);
        }
    }
コード例 #5
0
 public Artifact(ArtifactBaseData data)
 {
     baseData = data;
 }