public void DayOff() //연관된 캐릭터 없는 퀘스트를 삭제 { List <CharactorIdea> charaList = CharactorManager.GetInstance().CharaList; Dictionary <string, Quest> .Enumerator enu = questMg.GetEnumerator(); bool associated = false; List <string> deleteTarget = new List <string>(); while (enu.MoveNext()) { associated = false; string Qkey = enu.Current.Key; for (int i = 0; i < charaList.Count; i++) { if (Qkey == charaList[i].associatedQuestKey) //연관된 애가 있으므로 삭제 대상 패쓰. { associated = true; break; } } if (false == associated) { deleteTarget.Add(Qkey); } } for (int i = 0; i < deleteTarget.Count; i++) { questMg.Remove(deleteTarget[i]); } }
public void CharactorLeave(E_Charactor charactor) { QuestRoomSceneUIManager.GetInstance().OnlyShowMainUIOrigin(); Stack <FSMState> stateStack = CharactorFrame.GetInstance().CharaController.GetStateStack(); CharactorIdea nowChara; //여기가 너무 안좋은데. switch (charactor) { case E_Charactor.CLIENT: nowChara = CharactorFrame.GetInstance().clientIdea; if (stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.COMMISSION_CANCEL))) { CharactorManager.GetInstance().RemoveCharactor(nowChara); break; } if (stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_00)) || stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_50)) || stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_80)) || stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_IMPERFACT_95)) || stateStack.Contains(ClientFSMFactory.GetInstance().GetState(E_ClientState.CHECK_PERFACT)) ) { ClientCommissionCheckCalculateLastincome(); CharactorManager.GetInstance().RemoveCharactor(nowChara); } break; case E_Charactor.HUNTER: nowChara = CharactorFrame.GetInstance().hunterIdea; if (stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.INQUIRE_QUEST_CANCEL))) { CharactorManager.GetInstance().RemoveCharactor(nowChara); break; } if (stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_ALL_PAYMENT)) || stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_PARTIAL_PAYMENT)) || stateStack.Contains(HunterFSMFactory.GetInstance().GetState(E_HunterState.HUNT_REWARD_DENIED)) ) { CharactorManager.GetInstance().RemoveCharactor(nowChara); break; } break; } CharactorFrame.GetInstance().LeaveAnim(); Debug.Log("캐릭터 리브"); }
void EndOfDay() //하루가 끝났을 떄 호출. { Debug.Log("게임매니져 = 엔드 오브 데이"); dayOnGoing = false; dayDone = false; timeCursor = 0f; wineDineCursor = 0f; CharactorManager.GetInstance().DayOff(); //캐릭터들 취합 QuestManager.GetInstance().DayOff(); //연관된 캐릭터가 없는 퀘스트는 삭제. StartCoroutine(LoadingScene("DayOff", () => { })); }
void OnClickQuestBtn(GameObject btn, string key) { AudioThing.GetInstance().PlaySFX(AudioThing.E_SFX.SLIDE); if (selected == null) { selected = btn; btn.GetComponent <Image>().color = selectedColor; questDetailPan.SetActive(true); } else if (selected == btn) { //디테일 패널 접는 로직. 2137 에서 944 임 와이는 786 ClearQuestDetailBtns(); questDetailPan.SetActive(false); btn.GetComponent <Image>().color = Color.white; selected = null; return; } else { questDetailPan.SetActive(true); selected.GetComponent <Image>().color = Color.white; btn.GetComponent <Image>().color = selectedColor; selected = btn; } ClearQuestDetailBtns(); Quest quest = QuestManager.GetInstance().GetQuest(key); List <QuestPerMob> questContext = quest.QuestList; List <HunterIdea> hunters = CharactorManager.GetInstance().GetHuntersByQuestKey(key); for (int i = 0; i < questContext.Count; i++) { GameObject temp = Instantiate(itemBtn, questDetailMobEviContents.transform); SetMobEviBtnTexts(temp, questContext[i]); Destroy(temp.GetComponent <Button>()); } for (int i = 0; i < hunters.Count; i++) { if (hunters[i] == null) { continue; } GameObject temp = Instantiate(questDetailhunterBtn, questDetailHunterContents.transform); SetQDHunterBtnTexts(temp, hunters[i]); Destroy(temp.GetComponent <Button>()); } }
public void Update() { if (!dayDone && !dayOnGoing) //데이 오프. { return; } if (dayDone) //하루가 끝났으면. { dayOnGoing = false; wineDineCursor += Time.deltaTime; if (wineDineCursor >= wineDineCheck) { wineDineCursor = 0f; if (false == RoomEventManager.GetInstance().IsNowWineAndDine) //접대 중이 아니라면 { EndOfDay(); } } return; } else if (dayOnGoing) //하루의 시작 { timeCursor += Time.deltaTime; wineDineCursor += Time.deltaTime; if (timeCursor >= time15Min) { timeCursor = 0f; InGameTimeManager.GetInstance().Update15Minute(out dayDone); //15분 지나게 처리. MainUIManager.GetInstance().AdjustTime(InGameTimeManager.GetInstance().Hour, InGameTimeManager.GetInstance().Minute); } if (wineDineCursor >= wineDineCheck) { wineDineCursor = 0f; if (false == RoomEventManager.GetInstance().IsNowWineAndDine) //접대 중이 아니라면 { VisitNextOne(); } else { //접대 중이면. 만기 방문자 부름. CharactorManager.GetInstance().SelectExpireVisit(); } } } }
/// <summary> /// 初期化 /// </summary> public void Initialize() { //乱数を取得 rnd = new Random(); //終了フラグをオフ isEndFlag = false; //キャラクターマネージャを生成 charactorManager = new CharactorManager(); //パドルを追加 charactorManager.Add(new RightPaddle()); charactorManager.Add(centerPaddle = new CenterPaddle()); charactorManager.Add(new LeftPaddle()); //ブロックを追加 for (int i = 0; i <= Screen.Height /*横の長さ*/; i += 35) { for (int j = 100; j <= 138 /*縦の長さ*/; j += 19) { block = new Block(new Rectangle(100 + i, j, 32, 16)); charactorManager.Add(block); } } //アイテムブロックを追加 for (int i = 0; i <= 770; i += 70) { itemBlock = new ItemBlock(new Rectangle(100 + i, 210, 32, 16)); charactorManager.Add(itemBlock); } //ボールを追加 charactorManager.Add(new Ball(new Vector2(512, 578))); //サウンド関係 var gameDevice = GameDevice.Instance(); sound = gameDevice.GetSound(); //カウントダウンタイマー1秒に設定 timer = new CountDownTimer(1); //アイテムカウントの初期化 itemCount = 0; //バレットカウントの初期化 bulletCount = 0; //バレットUIの生成、初期化 bulletUI = new BulletUI(bulletCount); }
void VisitNextOne() //다음 놈 부르기. { if (RoomEventManager.GetInstance().IsNowWineAndDine) { return; //접대중이면 패쓰함. } EventParameterStorage.GetInstance().ParametersReset(); CharactorIdea nextOne = CharactorManager.GetInstance().GetNextCharactor(); if (nextOne == null) { return; } nextOne.AnamnesisToCharactorFrame(); CharactorFrame.GetInstance().ComeAnim(); }
public void NewStartGame() //완전 새로운 게임 시작. { SaveManager.GetInstance().DeleteSavedGame(); SettingUIManager.GetInstance().PauseBtn.interactable = true; Debug.Log("게임매니져 - 뉴스타트게임-"); InGameTimeManager.GetInstance().SetMainTime(1, 1, 1, 1, 1); WholeMonsterRiskManager.GetInstance().Init(); PhaseManager.GetInstance().InitForNewStart(); GoldManager.GetInstance().SetGold(Constant.newStartGolds); QuestManager.GetInstance().QuestDic.Clear(); Inventory.GetInstance().MobEvidenceInven.Clear(); Inventory.GetInstance().WeaponInventory.Clear(); GameEndJudgeManager.GetInstance().InitForNewStart(); CharactorManager.GetInstance().InitForNewStart(); TextManager.GetInstance().DistributedNames.Clear(); //모킹/ for (int i = 0; i < (int)E_Monster.MAX; i++) { for (int j = 0; j < (int)E_Evidence.MAX; j++) { Inventory.GetInstance().AddMobEvi(new QuestPerMob((E_Monster)i, (E_Evidence)j, 3)); } } List <Weapon> temp = new List <Weapon>(); Weapon w = WeaponInfoManager.GetInstance().CreateWeapon(E_Weapon.AXE); temp.Add(w); Inventory.GetInstance().AddWeaponsToInven(temp); //모킹종료 StartCoroutine(LoadingScene("QuestRoom_1", StartNewMorning)); }
public void SavePrepare() { lang = LanguageManager.GetInstance().Language; golds = GoldManager.GetInstance().Gold; goldRunOutContinuityDays = GameEndJudgeManager.GetInstance().GoldRunOutContinuityDays; threatMaxContinuityDays = GameEndJudgeManager.GetInstance().ThreatMaxContinuityDays; savedDate = InGameTimeManager.GetInstance().GetNowTime(); charactorList_Client = CharactorManager.GetInstance().GetClientListSave(); charactorList_Hunter = CharactorManager.GetInstance().GetHunterListSave(); questDic = QuestManager.GetInstance().QuestDic; inventoryMobEvi = Inventory.GetInstance().MobEvidenceInven; inventoryWeapon = Inventory.GetInstance().GetWeaponInvenSave(); threatState = WholeMonsterRiskManager.GetInstance().MonsterRiskList; threatHunters = WholeMonsterRiskManager.GetInstance().HuntersWhohaveQuest; phaseMobShowedUp = PhaseManager.GetInstance().MobShowedUp; phaseMobOpen = PhaseManager.GetInstance().MobOpen; phaseEvidenceOpen = PhaseManager.GetInstance().EvidenceOpen; phaseUpgradeOpen = PhaseManager.GetInstance().UpgradeOpen; phaseInteriorOpen = PhaseManager.GetInstance().InteriorOpen; distributedNames = TextManager.GetInstance().DistributedNames; }
private void Awake() { Instance = this; }
private void OnGUITest() { // ShowNowCFrame(); // Debug.Log("qweqwe"); CharactorManager cm = CharactorManager.GetInstance(); List <CharactorIdea> charaList = cm.CharaList; List <CharactorIdea> visitedToday = cm.VisitedToday; Queue <CharactorManager.VisitChara> expireQue = cm.ExpireCharaQue; EditorGUILayout.Separator(); showArr[0] = EditorGUILayout.Foldout(showArr[0], "캐릭터리스트"); if (showArr[0]) { foreach (CharactorIdea ci in charaList) { // Debug.Log(charaList.Count + "만큼 래릭터 리스트"); ShowCharaIdea(ci); EditorGUILayout.Separator(); } } EditorGUILayout.Separator(); showArr[1] = EditorGUILayout.Foldout(showArr[1], "방문자 리스트"); if (showArr[1]) { foreach (CharactorIdea ci in visitedToday) { // Debug.Log(visitedToday.Count + "만큼 방문자 리스트"); ShowCharaIdea(ci); EditorGUILayout.Separator(); } } EditorGUILayout.Separator(); showArr[2] = EditorGUILayout.Foldout(showArr[2], "만기큐 "); if (showArr[2]) { foreach (CharactorManager.VisitChara ci in expireQue) { // Debug.Log(visitedToday.Count + "만큼 방문자 리스트"); ShowCharaIdea(ci.one); EditorGUILayout.Separator(); } } EditorGUILayout.Separator(); //EditorGUILayout.LabelField("퀘스트 매니저"); showArr[5] = EditorGUILayout.Foldout(showArr[5], "퀘스트 매니저"); if (showArr[5]) { QuestManager qm = QuestManager.GetInstance(); foreach (Quest q in qm.GetNowWrittenQuestList()) { ShowQuest(q); EditorGUILayout.Separator(); } } EditorGUILayout.Separator(); showArr[3] = EditorGUILayout.Foldout(showArr[3], "인벤토리 - 증거품 "); if (showArr[3]) { foreach (QuestPerMob qpm in Inventory.GetInstance().GetNowMobEvidencesInven()) { EditorGUILayout.TextField(qpm.ToString()); } } showArr[4] = EditorGUILayout.Foldout(showArr[4], "인벤토리 - 무기 "); if (showArr[4]) { foreach (Inventory.weaponInven wi in Inventory.GetInstance().WeaponInventory) { EditorGUILayout.TextField("갯수 = " + wi.number, wi.weapon.ToString()); } } EditorGUILayout.Separator(); showArr[7] = EditorGUILayout.Foldout(showArr[7], "위협도에 애드된 헌터 리스트"); if (showArr[7]) { foreach (HunterIdea ci in WholeMonsterRiskManager.GetInstance().HuntersWhohaveQuest) { // Debug.Log(visitedToday.Count + "만큼 방문자 리스트"); ShowCharaIdea(ci); EditorGUILayout.Separator(); } } }
public bool LoadGame() //이닛 후에 불려져야함. { #if UNITY_ANDROID if (st == null || !savedGame) { Debug.Log("로드게임 - 세이브 데이타가 존재하지 않음 또는 " + savedGame); return(false); } if (false == PlayGamesPlatform.Instance.localUser.authenticated) { PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); Social.localUser.Authenticate((bool success, string msg) => { if (false == success) { Debug.Log("로드 실패 - 로그인 불가"); return; } }); } ISavedGameClient saveClient = PlayGamesPlatform.Instance.SavedGame; saveClient.OpenWithAutomaticConflictResolution(Constant.saveFileNameInGPGSCloud, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseMostRecentlySaved, (status, metaData) => { if (status != SavedGameRequestStatus.Success) { Debug.Log("로드 실패 - 메타데이타 오픈 불가"); return; } saveClient.ReadBinaryData(metaData, (readStatus, savedData) => { if (readStatus == SavedGameRequestStatus.Success) { Debug.Log("바이너리 데이타 리드 읽기 성공!"); byte[] savedDataByteArr = savedData; BinaryFormatter bt = new BinaryFormatter(); MemoryStream ms = new MemoryStream(savedDataByteArr); st = bt.Deserialize(ms) as SaveStructure; ms.Dispose(); ms.Close(); if (st == null) { Debug.Log("리드는 했으나 스트럭쳐가 널임."); } } else { Debug.Log("바이너리 데이타 리드 읽기 실패!"); saveClient.ShowSelectSavedGameUI("리드가 안됨.", 5, false, false, (stq, md) => { }); } }); }); if (st == null) { Debug.Log("리드 실패"); return(false); } #else BinaryFormatter bt = new BinaryFormatter(); FileStream file = File.Open(Constant.saveDataAllPath, FileMode.Open); if (file != null && file.Length > 0) { st = bt.Deserialize(file) as SaveStructure; file.Close(); if (st == null) { Debug.Log("파일이 없음."); return(false); } } else { file.Close(); return(false); } #endif Debug.Log("로드 게임"); // LanguageManager.GetInstance().SetLanguage(st.lang); 언어설정은 새로 할 수 있게. GoldManager.GetInstance().SetGold(st.golds); GameEndJudgeManager.GetInstance().Load(st); InGameTimeManager.GetInstance().Load(st); CharactorManager.GetInstance().Load(st); QuestManager.GetInstance().Load(st); Inventory.GetInstance().Load(st); WholeMonsterRiskManager.GetInstance().Load(st); PhaseManager.GetInstance().Load(st); TextManager.GetInstance().Load(st); return(true); }