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 업뎃해주기 위해. 여기서 업뎃하면 안댐
    }
Ejemplo n.º 2
0
    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;
        }
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    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();
    }
Ejemplo n.º 6
0
    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);
        }
    }
Ejemplo n.º 7
0
    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);
    }
Ejemplo n.º 9
0
    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);
    }
Ejemplo n.º 10
0
 public void SetClientIdea(ClientIdea cd)
 {
     clientIdeaFrame = cd;
 }
Ejemplo n.º 11
0
 public void ResetIdeas()
 {
     clientIdeaFrame = null;
     hunterIdeaFrame = null;
 }