コード例 #1
0
ファイル: HeroData.cs プロジェクト: TimonYoon/Dev
    public HeroData(HeroBaseData _data)
    {
        baseData = _data;

        heroID        = _data.id;
        heroName      = _data.name;
        heroGrade     = _data.grade;
        heroImageName = _data.image;
        assetBundle   = _data.assetBundle;
        prefab        = _data.prefab;

        string _id = _data.id;

        if (_id.Contains("Territory"))
        {
            heroType = HeroData.HeroType.NonBattle;
        }
        else
        {
            //전투 전용
            heroType = HeroData.HeroType.Battle;
        }

        heroBattleType = _data.type;

        trainingTypeID = _data.trainingTypeID;

        InitStats();
    }
コード例 #2
0
ファイル: CharacterEmptyPool.cs プロジェクト: TimonYoon/Dev
    /// <summary> 세팅부 </summary>
    public IEnumerator GetHero(string heroID, System.Action <GameObject> result)
    {
        HeroBaseData baseData = HeroManager.heroBaseDataDic[heroID];

        string prefabName = baseData.prefab;


        GameObject go = SelectHero(prefabName);

        if (!go)
        {
            yield return(AssetLoader.Instance.InstantiateGameObjectAsync(baseData.assetBundle, baseData.prefab + "_Empty", x => go = x));

            go.transform.SetParent(transform);
            go.name = prefabName;

            UpdateHeroPool(prefabName, go);
        }

        if (!go)
        {
            result(null);
        }
        else
        {
            result(go);
        }
    }
コード例 #3
0
    public void InitSlot(HeroBaseData heroData = null, int monstarCount = 0)
    {
        heroSlotPanel.SetActive(heroData != null);

        if (heroData != null)
        {
            AssetLoader.AssignImage(imageHero, "sprite/hero", "Atlas_HeroImage", heroData.image);

            monsterCountPanel.SetActive(false);
            if (monstarCount > 0)
            {
                monsterCountPanel.SetActive(true);
                textMonsterCount.text = "X " + monstarCount.ToString();
            }


            Sprite frame = null;
            for (int i = 0; i < gradeSpriteList.Count; i++)
            {
                frame = gradeSpriteList[i];
                if (i == (heroData.grade - 1))
                {
                    break;
                }
            }
            if (frame != null)
            {
                gradeFrame.sprite = frame;
            }
        }
    }
コード例 #4
0
ファイル: BattleTestScene.cs プロジェクト: TimonYoon/Dev
    HeroData CreateHeroData()
    {
        HeroBaseData baseData = GameDataManager.heroBaseDataDic[heroID];
        HeroData     data     = new HeroData(baseData);

        return(data);
    }
コード例 #5
0
ファイル: DataManager.cs プロジェクト: eslia0/CastleHero
    void InitializeData()
    {
        heroDatabase = HeroDatabase.Instance;
        heroDatabase.InitializeHeroDatabase();
        itemDatabase = ItemDatabase.Instance;
        itemDatabase.InitializeItemDatabase();
        buildingDatabase = BuildingDatabase.Instance;
        buildingDatabase.InitializeBuildingDatabase();
        unitDatabase = UnitDatabase.Instance;
        unitDatabase.InitializeUnitDatabase();

        Id          = "";
        heroData    = new HeroBaseData();
        resource    = 0;
        heroState   = 0;
        castleState = 0;

        equipment    = new int[equipNum];
        inventoryId  = new int[invenNum];
        inventoryNum = new int[invenNum];
        skill        = new int[skillNum];
        unit         = new Unit[unitNum];
        createUnit   = new Unit();
        attackUnit   = new Unit[unitNum];
        building     = new int[buildingNum];
        upgrade      = new int[unitNum];

        buildBuilding = buildingNum;
    }
コード例 #6
0
 public HeroBaseData(HeroBaseData newBaseData)
 {
     Id           = newBaseData.Id;
     attackRange  = newBaseData.attackRange;
     colliderSize = newBaseData.colliderSize;
     levelData    = new List <HeroLevelData>();
 }
コード例 #7
0
ファイル: DictionaryManager.cs プロジェクト: TimonYoon/Dev
    IEnumerator HeroAdd()
    {
        for (int i = 0; i < heroBaseDataDic.Count; i++)
        {
            HeroBaseData baseData = null;
            baseData = heroBaseDataDic[listHeroID[i]];

            //이런 히어로 우리게임에 없음.
            if (baseData == null)
            {
                Debug.LogError(listHeroID[i] + " 없음");
            }

            HeroData heroData = new HeroData(baseData);
            if (listHeroID[i].Contains("Territory"))
            {
                heroData.heroType = HeroData.HeroType.NonBattle;
            }
            else
            {
                heroData.heroType = HeroData.HeroType.Battle;
            }
            HeroDictionaryData heroDictionaryData = new HeroDictionaryData();
            heroDictionaryData.heroData = heroData;
            heroDictionaryDataDic.Add(listHeroID[i], heroDictionaryData);

            //heroDataDic.Add(listHeroID[i], heroData);
            yield return(null);
        }
    }
コード例 #8
0
ファイル: DataManager.cs プロジェクト: eslia0/CastleHero
    public void SetHeroData(HeroData newHeroData)
    {
        HeroBaseData  baseData  = heroDatabase.GetHeroData(newHeroData.Id);
        HeroLevelData levelData = baseData.GetLevelData(newHeroData.level);

        heroData = new HeroBaseData(heroDatabase.GetHeroData(newHeroData.Id));
        heroData.Leveldata.Add(levelData);
    }
コード例 #9
0
 public bool AddBaseData(HeroBaseData newHeroData)
 {
     try
     {
         heroData.Add(newHeroData);
         return(true);
     }
     catch (Exception e)
     {
         Debug.Log("HeroDatabase::AddBaseData 에러 - " + e.Message);
         return(false);
     }
 }
コード例 #10
0
    void SetHeroData(JsonData serverJsonData)
    {
        string invenID = JsonParser.ToString(serverJsonData["id"]);

        string       heroID   = JsonParser.ToString(serverJsonData["heroID"]);
        HeroBaseData baseData = null;

        if (heroBaseDataDic.ContainsKey(heroID))
        {
            baseData = heroBaseDataDic[heroID];
        }

        //이런 히어로 우리게임에 없음.
        if (baseData == null)
        {
            Debug.LogError(heroID + " 없음");
        }

        //아니면 인벤토리에 추가
        //--------------------------------------------------
        HeroData heroData = null;

        if (heroDataDic.ContainsKey(invenID))
        {
            heroData = heroDataDic[invenID];
        }

        if (heroData == null)
        {
            heroData = new HeroData(baseData);
        }
        heroData.InitServerData(serverJsonData);


        //인벤토리에 담음
        if (heroDataDic.ContainsKey(heroData.id))
        {
            heroDataDic[heroData.id] = heroData;
        }
        else
        {
            if (isInitialized)
            {
                heroData.isChecked = false;
            }

            heroDataDic.Add(heroData.id, heroData);
        }
    }
コード例 #11
0
    IEnumerator Start()
    {
        isInitialization = false;
        while (!HeroManager.Instance)
        {
            yield return(null);
        }

        heroBaseDataList = HeroManager.heroBaseDataDic.Values.ToList().FindAll(x => x.useForMonster);

        monsterKeyList = new List <string>();
        bosskeyList    = new List <string>();
        for (int i = 0; i < heroBaseDataList.Count; i++)
        {
            HeroBaseData data = heroBaseDataList[i];

            if (data.grade == 1)
            {
                monsterIDListGrade1.Add(data.id);
            }
            else if (data.grade == 2)
            {
                monsterIDListGrade2.Add(data.id);
            }
            else if (data.grade == 3)
            {
                monsterIDListGrade3.Add(data.id);
            }

            //if (!data.useForMonster)
            //    continue;
            //if(keyList[i].EndsWith("_Mon"))
            {
                if (data.grade < 3)
                {
                    monsterKeyList.Add(data.id);
                    // 잡몹
                }
                else
                {
                    bosskeyList.Add(data.id);
                    // 보스
                }
            }
        }

        isInitialization = true;
    }
コード例 #12
0
    IEnumerator InitHeroBaseData()
    {
        JsonData clientJsonData = null;
        string   bundle         = "data/hero";
        string   assetName      = "Hero";

        yield return(StartCoroutine(AssetLoader.LoadJsonData(bundle, assetName, x => clientJsonData = x)));

        heroBaseDataDic = new Dictionary <string, HeroBaseData>();

        for (int i = 0; i < clientJsonData.Count; i++)
        {
            HeroBaseData heroBaseData = new HeroBaseData(clientJsonData[i]);
            heroBaseDataDic.Add(heroBaseData.id, heroBaseData);
        }
    }
コード例 #13
0
    public static void InitBlueTeam()
    {
        blueTeamDataList.Clear();
        string key = UIDayDungeonLobby.Instance.currentTapDay.ToString() + "_" + UIDayDungeonLobby.Instance.dungeonLevel;

        if (GameDataManager.dayDungeonBaseDataDic.ContainsKey(key))
        {
            DayDungeonBaseData data = GameDataManager.dayDungeonBaseDataDic[key];
            for (int i = 0; i < data.monsterList.Count; i++)
            {
                DayDungeonMonsterData monster = data.monsterList[i];
                for (int j = 0; j < monster.amount; j++)
                {
                    if (GameDataManager.heroBaseDataDic.ContainsKey(monster.id))
                    {
                        HeroBaseData heroBaseData = GameDataManager.heroBaseDataDic[monster.id];
                        HeroData     hero         = new HeroData(heroBaseData);
                        hero.InitTestData(heroBaseData.id, monster.maxHp, monster.attackPower, monster.defensePower);

                        blueTeamDataList.Add(hero);
                    }
                    else
                    {
                        Debug.LogError(monster.id + " - 이런 아이디 없음");
                    }
                }
            }
            if (data.bossData != null)
            {
                DayDungeonMonsterData boss = data.bossData;
                if (GameDataManager.heroBaseDataDic.ContainsKey(boss.id))
                {
                    HeroBaseData heroBaseData = GameDataManager.heroBaseDataDic[boss.id];
                    HeroData     hero         = new HeroData(heroBaseData);
                    hero.InitTestData(heroBaseData.id, boss.maxHp, boss.attackPower, boss.defensePower);

                    blueTeamDataList.Add(hero);
                }
                else
                {
                    Debug.LogError(boss.id + " - 이런 아이디 없음");
                }
            }
        }
    }
コード例 #14
0
ファイル: BattleHeroSlot.cs プロジェクト: TimonYoon/Dev
    /// <summary> 속성 표시 </summary>
    void ShowElemental()
    {
        objectElementalFire.SetActive(false);
        objectElementalWater.SetActive(false);
        objectElementalEarth.SetActive(false);
        objectElementalLight.SetActive(false);
        objectElementalDark.SetActive(false);
        objectElementalNotDefined.SetActive(false);

        //일단 현재 시점에서 중요한 정보가 아닌 것 같아서 하이드 시킴 (2018-02-20. 화중)
        return;

        HeroBaseData data = battleHero.heroData.baseData;
        objectElementalFire.SetActive(data.elementalType == ElementalType.Fire);
        objectElementalWater.SetActive(data.elementalType == ElementalType.Water);
        objectElementalEarth.SetActive(data.elementalType == ElementalType.Earth);
        objectElementalLight.SetActive(data.elementalType == ElementalType.Light);
        objectElementalDark.SetActive(data.elementalType == ElementalType.Dark);
        objectElementalNotDefined.SetActive(false);
    }
コード例 #15
0
    /// <summary> 몬스터 세팅부 </summary>
    public IEnumerator GetActor(string monsterID, System.Action <BattleHero> result)
    {
        HeroBaseData baseData = HeroManager.heroBaseDataDic[monsterID];

        string monsterObjName = baseData.prefab;

        //풀링 안되어 있으면 함.
        GameObject obj = Battle.GetObjectInPool(monsterObjName);

        if (!obj)
        {
            yield return(AssetLoader.Instance.InstantiateGameObjectAsync(baseData.assetBundle, baseData.prefab, x => obj = x));

            //obj = AssetLoader.InstantiateGameObject(baseData.assetBundle, baseData.prefab);

            obj.name = monsterObjName;

            Battle.AddObjectToPool(obj);
        }

        if (!obj)
        {
            result(null);
        }

        //return null;

        obj.transform.SetParent(actorPool.Instance.transform);

        BattleHero battleHero = obj.GetComponent <BattleHero>();

        if (!battleHero)
        {
            Debug.LogWarning("Cannot get hero from pool. id: " + monsterID);
        }

        result(battleHero);

        //return battleHero;
    }
コード例 #16
0
    HeroData InitHeroData(JsonData serverJsonData)
    {
        string       heroID   = serverJsonData["heroID"].ToStringJ();
        HeroBaseData baseData = null;

        if (HeroManager.heroBaseDataDic.ContainsKey(heroID))
        {
            baseData = HeroManager.heroBaseDataDic[heroID];
        }

        //이런 히어로 우리게임에 없음.
        if (baseData == null)
        {
            Debug.LogError(heroID + " 없음");
            return(null);
        }

        HeroData heroData = new HeroData(baseData);

        heroData.InitServerData(serverJsonData);

        return(heroData);
    }
コード例 #17
0
ファイル: BattleGroup.cs プロジェクト: TimonYoon/Dev
    /// <summary> 미리 생성해 놓은 몬스터 풀에서 출전 몬스터 세팅하기 </summary>
    IEnumerator InitMonster()
    {
        int monsterCount = 15;


        List <HeroData> monsterList = new List <HeroData>();

        for (int i = 0; i < monsterCount; i++)
        {
            int    monsterIndex = UnityEngine.Random.Range(0, actorPool.Instance.monsterKeyList.Count);
            string monsterKey   = actorPool.Instance.monsterKeyList[monsterIndex];

            if (string.IsNullOrEmpty(monsterKey))
            {
                continue;
            }

            HeroBaseData baseData = HeroManager.heroBaseDataDic[monsterKey];
            HeroData     heroData = new HeroData(baseData);
            monsterList.Add(heroData);
        }

        yield return(StartCoroutine(battleTeamList[1].InitCoroutine(this, BattleUnit.Team.Blue, monsterList)));
    }
コード例 #18
0
ファイル: UIDayDungeonLobby.cs プロジェクト: TimonYoon/Dev
    IEnumerator ShowCoroutine()
    {
        string key = currentTapDay.ToString() + "_" + dungeonLevel;

        //Debug.Log(key);

        if (GameDataManager.dayDungeonBaseDataDic.ContainsKey(key))
        {
            DayDungeonBaseData data = GameDataManager.dayDungeonBaseDataDic[key];

            textDungeonName.text = data.name;

            if (string.IsNullOrEmpty(data.bossData.id) == false)
            {
                if (bossObj != null)
                {
                    bossObj.SetActive(false);
                    bossObj.transform.SetParent(CharacterEmptyPool.Instance.transform);
                }


                GameObject go = null;
                yield return(StartCoroutine(CharacterEmptyPool.Instance.GetHero(data.bossData.id, x => go = x)));

                bossObj = go;
                bossObj.transform.position = pivot.position;

                bossObj.transform.SetParent(pivot);

                bossObj.transform.localScale = Vector3.one;
                //bossObj.SetActive(true);
            }

            for (int i = 0; i < monsterSlotList.Count; i++)
            {
                monsterSlotList[i].InitSlot();
            }

            for (int i = 0; i < data.monsterList.Count; i++)
            {
                string monsterID = data.monsterList[i].id;
                int    amount    = data.monsterList[i].amount;
                if (GameDataManager.heroBaseDataDic.ContainsKey(monsterID))
                {
                    HeroBaseData heroBaseData = GameDataManager.heroBaseDataDic[monsterID];
                    monsterSlotList[i].InitSlot(heroBaseData, amount);
                }
            }


            battleStartButton.interactable = currentTapDay == BattleDayDungeonManager.today && dungeonLevel <= topLevel;

            if (GameDataManager.moneyBaseDataDic.ContainsKey(data.rewardID))
            {
                MoneyBaseData moneyBase = GameDataManager.moneyBaseDataDic[data.rewardID];
                AssetLoader.AssignImage(imageReward, "sptire/material", "Atlas_Material", moneyBase.spriteName);
                textRewardName.text   = moneyBase.name;
                textRewardAmount.text = data.rewardAmont.ToStringABC();
            }
        }
        if (bossObj != null)
        {
            bossObj.SetActive(true);
        }
        dayDungeonCanvas.enabled = true;
        lightPanel.SetActive(true);

        dayDungeonPanel.SetActive(true);
        showCoroutine = null;
    }