public void QuestMakingDone(List <QuestPerMob> madeQPMList)//작성한 퀘스트. { if (madeQPMList == null || madeQPMList.Count == 0) { Debug.LogError("퀘스트 메이킹 작업물이 존재하지 않음."); } ClientIdea client = CharactorFrame.GetInstance().clientIdea; string newKey = Quest.MakeQuestKey(client.CharaName); Quest writtenQuest = new Quest(); //작성한 퀘스트 생성. writtenQuest.SettingQuestMetaDataByToday(newKey, client.CharaName, client.DaysExpire, madeQPMList); QuestManager.GetInstance().AddQuest(newKey, writtenQuest); //퀘스트매니져에 작성한 퀘스트를 넣어둬 client.SetHasCommission(newKey); //여기서 의뢰인의 오리진 퀘스트 의뢰일과 만기가 설정됨. MainCamAnim.GetInstance().CamToPosNormal( () => { CharactorFrame.GetInstance().UpdateFSM(); //메인 카메라가 원상태로 복귀한 후에 fsm 업뎃해주기 위해. int deposit = PayFormula.CalculateClientRequestDeposit(client.OriginOrderedQuest, client.DaysExpire); //디포짓 얻는 것. GoldManager.GetInstance().AdjustGold(deposit, GoldManager.E_PayType.FROM_CLIENT); }); //메인카메라 원상태로. // CharactorFrame.GetInstance().UpdateFSM(); 메인 카메라가 원상태로 복귀한 후에 fsm 업뎃해주기 위해. 여기서 업뎃하면 안댐 }
void ShowNowCFrame() { HunterIdea ch = CharactorFrame.GetInstance().hunterIdea; ClientIdea cc = CharactorFrame.GetInstance().clientIdea; if (ch == null && cc == null) { EditorGUILayout.LabelField("현재 캐릭터 프레임 = 널"); return; } if (ch != null && cc != null) { Debug.LogError("캐릭터 프레임에 현재 헌터 클라이언트 모두 있음" + ch.CharaName + cc.CharaName); return; } if (ch != null) { EditorGUILayout.LabelField("현재 캐릭터 프레임 = 헌터" + ch.CharaName); ShowCharaIdea(ch); return; } if (cc != null) { EditorGUILayout.LabelField("현재 캐릭터 프레임 = 클라이언트" + cc.CharaName); ShowCharaIdea(cc); return; } }
public string[] GetClient_PlayerText(E_ClientState state, ClientIdea client) { string pt1 = null; string pt2 = null; Client_TextData textData = clientText.dataArray[(int)state]; switch (LanguageManager.GetInstance().Language) { case E_Language.KOREAN: pt1 = textData.Playertext1kor; pt2 = textData.Playertext2kor; break; case E_Language.ENGLISH: pt1 = textData.Playertext1eng; pt2 = textData.Playertext2eng; break; } string[] result; if (pt2 == "-") { result = new string[1]; result[0] = pt1; } else { result = new string[2]; result[0] = pt1; result[1] = pt2; } return(result); }
CharactorIdea GambleGetNewbie() { bool makeNewbie = (Random.Range(0, 2) == 1) ? makeNewbie = true : makeNewbie = false; E_Charactor charaType = (E_Charactor)(Random.Range(0, (int)E_Charactor.MAX)); if (QuestManager.GetInstance().QuestDic.Count == 0) //현재 퀘스트가 한 개도 없으면 확정으로 클라이언트 생성. { charaType = E_Charactor.CLIENT; makeNewbie = true; } if (!makeNewbie) { return(null); //캐릭터를 새로 생성 안하는 경우도 있음. } string charaName = TextManager.GetInstance().GetNewbieName(); CharactorIdea newbie = null; int spriteNum = Random.Range(0, SpriteManager.GetInstance().charactorSprites.Length); //캐릭터 스프라이트는... 그냥 랜덤으로... switch (charaType) { case E_Charactor.CLIENT: newbie = new ClientIdea(spriteNum, charaName); break; case E_Charactor.HUNTER: float nowQuestsAverageCap = Mathf.Floor(QuestManager.GetInstance().GetAverageQuestCap()); //현재 퀘스트에 올라온 평균 능력치의 절반 부터 평균치의 1~2.5배 능력치 중에서 랜덤 float hunterCap = Mathf.Floor(Random.Range( nowQuestsAverageCap / 2, checked ( nowQuestsAverageCap * Random.Range(1f, 2.5f) ))); newbie = new HunterIdea(spriteNum, charaName, hunterCap); break; } return(newbie); /* * * CharactorIdea tempforDebugNewbie; #if UNITY_EDITOR * //모킹 * if(ds.GetInstance().clientBorn) * tempforDebugNewbie = new ClientIdea(0, tempName, E_Personality.CHEAP); * //새로운 캐릭터 생성. * else * tempforDebugNewbie = new HunterIdea(1, tempName, E_Personality.CHEAP, hunterCap); #endif * return tempforDebugNewbie; */ }
public void QuestCheckIsDone(List <QuestPerMob> checkedList) { ClientIdea client = CharactorFrame.GetInstance().clientIdea; float completeness = client.GetCompletenessClientOriginQuest(checkedList); EventParameterStorage.GetInstance().QuestCompareCompleteness = completeness; CharactorFrame.GetInstance().UpdateFSM(); }
void ShowCharaIdea(CharactorIdea ci) { // Debug.Log(ci.CharaName); HunterIdea hunter = ci as HunterIdea; ClientIdea client = ci as ClientIdea; if (hunter != null) { EditorGUILayout.TextField("☆★헌터", ci.CharaName); EditorGUILayout.ObjectField(ci.CharaSprite, typeof(Sprite), true); EditorGUILayout.TextField("연관키", ci.associatedQuestKey); if (hunter.GetExpire() != null) { EditorGUILayout.TextField("헌터 겟 익스파이어.", hunter.GetExpire().ToString()); } else { EditorGUILayout.TextField("헌터 겟 익스파이어.", "아직 존재 안함."); } EditorGUILayout.Toggle("커미션 가진 여부", ci.hasCommission); EditorGUILayout.TextField("밑은 헌팅 리스트 , 만기여부=", hunter.haveComeBeforeExpire.ToString()); int idx = 0; if (hunter.HuntedList != null) { foreach (QuestPerMob qpm in hunter.HuntedList) { EditorGUILayout.TextField("QPM [" + idx + "]", qpm.ToString()); idx++; } } else { EditorGUILayout.TextField("헌팅 리스트 존재하지 않아.", ""); } } else { EditorGUILayout.TextField("☆★클라이언트", ci.CharaName); EditorGUILayout.ObjectField(ci.CharaSprite, typeof(Sprite), true); EditorGUILayout.TextField("연관키", ci.associatedQuestKey); EditorGUILayout.Toggle("커미션 가진 여부", ci.hasCommission); EditorGUILayout.TextField("설정된 만기 기간은 = ", client.DaysExpire.ToString()); EditorGUILayout.TextField("밑은 의뢰인 오리진 퀘스트, 만기 텀 여부는", client.haveComeBeforeExpire.ToString()); ShowQuest(client.OriginOrderedQuest); } }
public List <ClientIdea> GetClientListSave() { List <ClientIdea> temp = new List <ClientIdea>(); for (int i = 0; i < charaList.Count; i++) { ClientIdea client = charaList[i] as ClientIdea; if (client != null) { temp.Add(client); } } return(temp); }
void ClientCommissionCheckCalculateLastincome() //만기여부와 등등을 고려하여 정산할것!! 클라이언트가 qc 정산 하는 단계! { ClientIdea client = CharactorFrame.GetInstance().clientIdea; int outDue = 0; if (client.haveComeBeforeExpire) { InGameTime clientExpire = client.GetExpire(); InGameTime nowTime = InGameTimeManager.GetInstance().GetNowTime(); outDue = nowTime.GetDaysGap(clientExpire); } int lastClientPayment = PayFormula.CalculateClientRequestLastPayment(client.OriginOrderedQuest, client.DaysExpire, EventParameterStorage.GetInstance().QuestCompareCompleteness, outDue); GoldManager.GetInstance().AdjustGold(lastClientPayment, GoldManager.E_PayType.FROM_CLIENT); }
public string GetClientText(E_ClientState state, ClientIdea client) { string result = ""; Client_TextData textData = clientText.dataArray[(int)state]; switch (LanguageManager.GetInstance().Language) { case E_Language.KOREAN: result = textData.Charatextkor; break; case E_Language.ENGLISH: result = textData.Charatexteng; break; } int deposit = PayFormula.CalculateClientRequestDeposit(client.OriginOrderedQuest, client.DaysExpire); switch (state) //치환해야하는 문자열의 경우. { case E_ClientState.COMMISSION: int clientLastPayin100per = PayFormula.CalculateClientRequestLastPayment( client.OriginOrderedQuest, client.DaysExpire, 100f, 0 ); result = result.Replace("[0]", deposit.ToString()); result = result.Replace("[1]", clientLastPayin100per.ToString()); break; case E_ClientState.COMMISION_MAKE_DONE: result = result.Replace("[0]", client.DaysExpire.ToString()); result = result.Replace("[1]", deposit.ToString()); break; case E_ClientState.CHECK_NO_EXPIRE: result = result.Replace("[0]", client.DaysExpire.ToString()); break; case E_ClientState.CHECK_IMPERFACT_00: //뺐을 착수금으로 치환 result = result.Replace("[0]", deposit.ToString()); break; case E_ClientState.CHECK_IMPERFACT_50: //성공보수금으로 치환 case E_ClientState.CHECK_IMPERFACT_80: case E_ClientState.CHECK_IMPERFACT_95: case E_ClientState.CHECK_PERFACT: int outDue = 0; if (client.haveComeBeforeExpire) { InGameTime clientExpire = client.GetExpire(); InGameTime nowTime = InGameTimeManager.GetInstance().GetNowTime(); outDue = nowTime.GetDaysGap(clientExpire); } int lastClientPayment = PayFormula.CalculateClientRequestLastPayment(client.OriginOrderedQuest, client.DaysExpire, EventParameterStorage.GetInstance().QuestCompareCompleteness, outDue); result = result.Replace("[0]", lastClientPayment.ToString()); break; } return(result); }
public void SetClientIdea(ClientIdea cd) { clientIdeaFrame = cd; }
public void ResetIdeas() { clientIdeaFrame = null; hunterIdeaFrame = null; }