void EventField()
        {
            Console.Write("사냥터를 선택하세요 ");
            for (int i = (int)eMonster.SLIME + 1; i < (int)eMonster.MAX; i++)
            {
                Console.WriteLine(String.Format("{0}. {1}", i, (eMonster)i));
            }
            m_eMonster = (eMonster)int.Parse(Console.ReadLine());
            switch (m_eMonster)
            {
            case eMonster.SLIME:
                m_cMonster = new Player("Slime", 100, 100, 20, 0, 0, 100, 0);
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.WoodenSword));
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.WoodenArmor));
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.WoodenRing));
                break;

            case eMonster.SKELETON:
                m_cMonster = new Player("Skeleton", 200, 200, 30, 0, 0, 200, 0);
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.BoneSword));
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.BoneArmor));
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.BoneRing));
                break;

            case eMonster.BOSS:
                m_cMonster = new Player("Boss", 400, 400, 50, 0, 0, 500, 0);
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.WoodenArmor));
                m_cMonster.SetInventory(m_cItemManager.GetItem(ItemManager.eItem.WoodenRing));
                break;

            default:
                break;
            }
            m_eStage = eStage.BATTLE;
        }
        public void EventFiled()
        {
            Console.Write("필드을 선택하세요! ");
            for (int i = (int)eMonster.SLIME; i < (int)eMonster.MAX; i++)
            {
                Console.Write(String.Format("{0}:{1},", i, (eMonster)i));
            }
            m_eMonsterIdx = (eMonster)int.Parse(Console.ReadLine());

            switch (m_eMonsterIdx)
            {
            case eMonster.SLIME:
                m_cMonster = new Player("Slime", 100, 100, 10, 0, 0, 100);
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.WoodSword));
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.WoodArmor));
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.WoodRing));
                break;

            case eMonster.SKELTON:
                m_cMonster = new Player("Skelton", 200, 200, 20, 10, 0, 100);
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.BoneSword));
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.BoneArmor));
                m_cMonster.SetInvetory(m_cItemManager.GetItem(ItemManager.eItem.BoneRing));
                break;

            case eMonster.BOSS:
                m_cMonster = new Player("Boss", 300, 300, 30, 15, 0, 100);
                break;

            default:
                m_eStage = eStage.FILED;
                break;
            }
            m_eStage = eStage.BATTLE;
        }
示例#3
0
    public void SetPool(Transform hero, Transform monster)
    {
        heroRoot    = hero;
        monsterRoot = monster;

        for (int i = 1; i < (int)eHero.Max; ++i)
        {
            eHero eHero = (eHero)i;
            SetHero(eHero);
        }

        for (int i = 0; i < (int)eMonster.Max; ++i)
        {
            eMonster eMonster    = (eMonster)i;
            string   monsterPath = string.Format(Path.MONSTERPREFAB, eMonster.ToString());

            obj = Instantiate(Resources.Load(monsterPath)) as GameObject;

            obj.transform.parent = monsterRoot;
            obj.SetActive(false);

            monsterPoolList.Add(obj.transform);
            eMonsterList.Add(eMonster);
        }
    }
示例#4
0
    public void NextFloor()
    {
        int idx      = GameMng.Ins.currentTileIdx;
        int stageIdx = GameMng.Ins.StageNum;

        //GameMng.Ins.tile[idx].bStageClear[stageIdx] == false ||
        if (stageIdx >= GameMng.Ins.tile[GameMng.Ins.currentTileIdx].bStageClear.Count)
        {
            StartCoroutine(PopupText());
            //Debug.LogError("마지막 층");
            return;
        }

        //BattleUIMng.Ins.stageReward.SetVisible(false);
        SetVisible(false);

        //던전 재입장 카메라 위치
        Camera.main.transform.eulerAngles = BattleMng.Ins.waitCameraRotX;
        Camera.main.transform.position    = BattleMng.Ins.waitCameraPos;

        for (int i = 0; i < BattleMng.Ins.heroDatas.Count; ++i)
        {
            BattleMng.Ins.heroList[i].gameObject.SetActive(true);
            BattleMng.Ins.heroList[i].transform.position = BattleMng.Ins.heroRespawn[i].position;
            BattleMng.Ins.heroList[i].Init();
            BattleMng.Ins.heroList[i].SetData();

            BattleMng.Ins.heroSpawnEffect[i].gameObject.SetActive(true);
        }

        BattleUIMng.Ins.hitText.Init();

        SkillMng.Ins.Clear();
        //hero hp
        BattleUIMng.Ins.heroinfo.SetInfo();

        //다음 스테이지 몬스터로 바꿔주고
        eMonster eMonster = (eMonster)Enum.Parse(typeof(eMonster), BattleMng.Ins.sMonsterName);

        int temp = (int)eMonster + monsterNum;

        eMonster = (eMonster)temp;

        BattleMng.Ins.sMonsterName = eMonster.ToString();

        //스테이지 보상 다시 셋팅
        BattleMng.Ins.stageRewardData = ExtensionMethod.GetStageRewardData(GameMng.Ins.StageNum);

        BattleMng.Ins.StartCoroutine(BattleMng.Ins.StartDungeon());
    }
示例#5
0
    public void BattleStart()
    {
        int heroIdx = 0;

        for (int i = 0; i < heroList.Count; ++i)
        {
            heroIdx = heroIdxList[i];
            heroStatCalc.AddHeroStat(heroIdx, heroList[i]);
        }

        BattleUIMng.Ins.topBattleUI.SetActive(true);
        BattleUIMng.Ins.bottomBattleUI.SetActive(true);

        Camera.main.transform.eulerAngles = cameraRotX;
        Camera.main.transform.position    = cameraPos;

        for (int i = 0; i < pool.monsterPoolList.Count; ++i)
        {
            eMonster eMonster = (eMonster)Enum.Parse(typeof(eMonster), sMonsterName);

            if (eMonster == pool.eMonsterList[i])
            {
                pool.monsterPoolList[i].gameObject.SetActive(true);
                pool.monsterPoolList[i].position = monsterRespawn.position;

                monster = pool.monsterPoolList[i].GetComponent <Monster>();
                monster.Init();
                monster.SetData();
                break;
            }
        }

        for (int i = 0; i < heroObjList.Length; ++i)
        {
            if (heroObjList[i] != null)
            {
                heroObjList[i].transform.position = heroRespawn1[i].position;
                monster.currentTarget.Add(inGameHeroList[i]);
            }
        }

        battleStart = true;
    }
示例#6
0
    public MonsterData GetMonsterValue(eMonster eMonster)
    {
        var         tb   = monsterTb.GetTable();
        MonsterData data = null;

        if (tb == null)
        {
            Debug.LogError("TableError"); return(null);
        }

        foreach (var val in tb)
        {
            if (eMonster == (eMonster)val.Value.nMonster)
            {
                return(data = val.Value);
            }
        }

        return(null);
    }
示例#7
0
 public static MonsterData GetMonsterData(this eMonster eMonster)
 {
     return(TableMng.Ins.GetMonsterValue(eMonster));
 }
示例#8
0
        static void Main(string[] args)
        {
            GameManager cGameManager = new GameManager();
            ItemManager cItemManager = new ItemManager();
            eMonster    m_eMonster   = eMonster.SLIME;
            Player      cPlayer      = null; // 구조체 포인터와 유사한 역할을 함. C++기준으로 동적할당이 됨.
            Player      cMonster     = null;
            Player      cStore       = new Player("Store");

            // C#에서 구조체는 무조건 정적할당.


            cStore.SetInventory(cItemManager.GetItem(ItemManager.eItem.HPPotion));
            cStore.SetInventory(cItemManager.GetItem(ItemManager.eItem.MPPotion));
            cStore.SetInventory(cItemManager.GetItem(ItemManager.eItem.Sotne));
            cStore.SetInventory(cItemManager.GetItem(ItemManager.eItem.Boom));

            Status sStatus = new Status(100);



            int nSelect;

            while (m_eStage != eStage.GAMEOVER)
            {
                switch (m_eStage)
                {
                case eStage.CREATE:
                    Console.Write("캐릭터 이름 입력 : ");
                    string strName = Console.ReadLine();
                    cPlayer  = new Player(strName, 100, 100, 10, 10, 10, 0, 1000000);
                    m_eStage = eStage.TOWN;
                    break;

                case eStage.STORE:
                    Console.WriteLine("뭘 할 건가요? 1. 구매 2. 판매 etc. 마을");
                    nSelect = int.Parse(Console.ReadLine());
                    if (nSelect == 1)
                    {
                        cStore.ShowInventory();
                        nSelect = int.Parse(Console.ReadLine());
                        cPlayer.Buy(nSelect, cStore);
                    }
                    else if (nSelect == 2)
                    {
                        cPlayer.ShowInventory();
                        nSelect = int.Parse(Console.ReadLine());
                        cPlayer.Sell(nSelect);
                    }
                    else
                    {
                        m_eStage = eStage.TOWN;
                    }
                    break;

                case eStage.TOWN:
                    cPlayer.Recovery();
                    Console.WriteLine("마을입니다.\n\n체력회복 완료!\n어디로 갈 건가요? ");
                    for (int i = (int)eStage.FILED; i < (int)eStage.GAMEOVER; i++)
                    {
                        Console.WriteLine(String.Format("{0}. {1}", i, (eStage)i));
                    }
                    m_eStage = (eStage)int.Parse(Console.ReadLine());
                    break;

                case eStage.INVENTORY:
                    cPlayer.ShowInventory();
                    Console.Write("어떻게 할 건가요?\n1. 장착 2. 수리 etc. 마을");
                    nSelect = int.Parse(Console.ReadLine());

                    if (nSelect == 1)
                    {
                        nSelect = int.Parse(Console.ReadLine());
                        Item cItem = cPlayer.GetInventory(nSelect);
                        cPlayer.SetEquip(cItem);
                    }
                    else if (nSelect == 2)
                    {
                        nSelect = int.Parse(Console.ReadLine());
                        Item cItem = cPlayer.GetInventory(nSelect);
                        for (int i = 0; i < (int)Player.eEquipKind.MAX; i++)
                        {
                            Console.WriteLine(String.Format("{0}. {1}", i, (Player.eEquipKind)i));
                        }
                        cPlayer.ReleaseEquip((Player.eEquipKind)nSelect);
                    }
                    else
                    {
                        m_eStage = eStage.TOWN;
                    }
                    break;

                case eStage.FILED:
                    Console.Write("사냥터를 선택하세요 ");
                    for (int i = (int)eMonster.SLIME; i < (int)eMonster.MAX; i++)
                    {
                        Console.WriteLine(String.Format("{0}. {1}", i, (eMonster)i));
                    }
                    m_eMonster = (eMonster)int.Parse(Console.ReadLine());
                    switch (m_eMonster)
                    {
                    case eMonster.SLIME:
                        cMonster = new Player("Slime", 100, 100, 20, 0, 0, 100, 100);
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.WoodenSword));
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.WoodenArmor));
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.WoodenRing));
                        break;

                    case eMonster.SKELETON:
                        cMonster = new Player("Skeleton", 200, 200, 30, 0, 0, 200, 200);
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.BoneSword));
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.BoneArmor));
                        cMonster.SetInventory(cItemManager.GetItem(ItemManager.eItem.BoneRing));
                        break;

                    case eMonster.BOSS:
                        cMonster = new Player("Boss", 400, 400, 50, 0, 0, 500, 500);
                        break;

                    default:
                        m_eStage = eStage.FILED;
                        break;
                    }
                    m_eStage = eStage.BATTLE;
                    break;

                case eStage.BATTLE:
                    Battle(cPlayer, cMonster);
                    break;

                case eStage.GAMEOVER:
                    Console.WriteLine("Game Over");
                    break;

                case eStage.THE_END:
                    Console.WriteLine("THE END");
                    break;
                }
            }

            cPlayer.Show();
            Console.WriteLine("#############");
        }
示例#9
0
        static void Main(string[] args)
        {
            Status sA, sB;

            sA = new Status(100);
            sB = new Status(0, 100);

            Console.WriteLine(String.Format("A:{0},{1]", sA.m_nStr, sA.m_nDef));
            Console.WriteLine(String.Format("B:{0},{1]", sB.m_nStr, sB.m_nDef));
            SwapStatus(sA, sB);
            Console.WriteLine(String.Format("{0},{1]", sA.m_nStr, sA.m_nDef));
            Console.WriteLine(String.Format("{0},{1]", sB.m_nStr, sB.m_nDef));

            ItemManager cItemManager = new ItemManager();
            Player      cPlayer      = null;
            Player      cMonster     = null;
            Player      cStore       = new Player("Store");



            cStore.SetInvetory(cItemManager.GetItem(ItemManager.eItem.HPPotion));
            cStore.SetInvetory(cItemManager.GetItem(ItemManager.eItem.MPPotion));
            cStore.SetInvetory(cItemManager.GetItem(ItemManager.eItem.Stone));
            cStore.SetInvetory(cItemManager.GetItem(ItemManager.eItem.Boom));

            eMonster nMonsterIdx = eMonster.SLIME;
            int      nSelect;

            while (m_eStage != eStage.GAMEOVER)
            {
                switch (m_eStage)
                {
                case eStage.CREATE:
                    Console.WriteLine("케릭터이름을 입력하세요:");
                    string strName = Console.ReadLine();
                    cPlayer  = new Player(strName, 100, 100, 10, 10, 10, 0, 9999999);
                    m_eStage = eStage.TOWN;
                    break;

                case eStage.INVENTORY:
                    cPlayer.ShowInevtory();
                    Console.WriteLine("어떻게 하시겠습니까? 1:장착, 2:해재 etc:마을");
                    nSelect = int.Parse(Console.ReadLine());
                    if (nSelect == 1)
                    {
                        nSelect = int.Parse(Console.ReadLine());
                        Item cItem = cPlayer.GetInvetory(nSelect);
                        cPlayer.SetEquemnt(cItem);
                    }
                    else if (nSelect == 2)
                    {
                        nSelect = int.Parse(Console.ReadLine());
                        Item cItem = cPlayer.GetInvetory(nSelect);
                        for (int i = 0; i < (int)Player.eEqumentKind.MAX; i++)
                        {
                            Console.Write(String.Format("{0}:{1},", i, (Player.eEqumentKind)i));
                        }
                        cPlayer.ReleaseEquemnt((Player.eEqumentKind)nSelect);
                    }
                    else
                    {
                        m_eStage = eStage.TOWN;
                    }
                    break;

                case eStage.STORE:
                    Console.WriteLine("어떻게 하시겠습니까? 1:구매, 2:판매 etc:마을");
                    nSelect = int.Parse(Console.ReadLine());
                    if (nSelect == 1)
                    {
                        cStore.ShowInevtory();
                        nSelect = int.Parse(Console.ReadLine());
                        cPlayer.Buy(nSelect, cStore);
                    }
                    else if (nSelect == 2)
                    {
                        cPlayer.ShowInevtory();
                        nSelect = int.Parse(Console.ReadLine());
                        cPlayer.Sell(nSelect);
                    }
                    else
                    {
                        m_eStage = eStage.TOWN;
                    }
                    break;

                case eStage.TOWN:
                    cPlayer.Recovery();
                    cPlayer.ShowInevtory();
                    Console.Write("마을 입니다. 어디로 가시겠습니까? ");
                    for (int i = (int)eStage.TOWN + 1; i < (int)eStage.GAMEOVER; i++)
                    {
                        Console.Write(String.Format("{0}:{1},", i, (eStage)i));
                    }
                    m_eStage = (eStage)int.Parse(Console.ReadLine());
                    break;

                case eStage.FILED:
                    Console.Write("필드을 선택하세요! ");
                    for (int i = (int)eMonster.SLIME; i < (int)eMonster.MAX; i++)
                    {
                        Console.Write(String.Format("{0}:{1},", i, (eMonster)i));
                    }
                    nMonsterIdx = (eMonster)int.Parse(Console.ReadLine());

                    switch (nMonsterIdx)
                    {
                    case eMonster.SLIME:
                        cMonster = new Player("Slime", 100, 100, 10, 0, 0, 100);
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.WoodSword));
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.WoodArmor));
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.WoodRing));
                        break;

                    case eMonster.SKELTON:
                        cMonster = new Player("Skelton", 200, 200, 20, 10, 0, 100);
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.BoneSword));
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.BoneArmor));
                        cMonster.SetInvetory(cItemManager.GetItem(ItemManager.eItem.BoneRing));
                        break;

                    case eMonster.BOSS:
                        cMonster = new Player("Boss", 300, 300, 30, 15, 0, 100);
                        break;

                    default:
                        m_eStage = eStage.FILED;
                        break;
                    }

                    m_eStage = eStage.BATTLE;
                    break;

                case eStage.BATTLE:
                    Battle(cPlayer, cMonster);
                    break;

                case eStage.GAMEOVER:
                    Console.WriteLine("GAMEOVER");
                    break;

                case eStage.THEEND:
                    Console.WriteLine("THE END");
                    break;

                default:
                    break;
                }
            }
        }