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; }
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); } }
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()); }
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; }
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); }
public static MonsterData GetMonsterData(this eMonster eMonster) { return(TableMng.Ins.GetMonsterValue(eMonster)); }
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("#############"); }
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; } } }