IEnumerator CheckForGiving()
    {
        FSLocator.textDisplayer.HideDialogueHolder();
        FSLocator.characterDisplayer.HideImage();

        // 인벤토리 간 조작 금지 설정
        FSLocator.textDisplayer.reactionButton.gameObject.SetActive(false);

        // "주다" 버튼이 포함되어 있는 인벤토리 UI 표시
        inventory.OnClickGive(npcName);

        // 사용자가 아이템 선택 후 "주다" 버튼 클릭까지 대기
        while (inventory.giveBg.activeSelf)
        {
            yield return(null);
        }

        FSLocator.textDisplayer.reactionButton.enabled = true;
        // 아이템을 정상적으로 주었다면..
        if (inventory.isGive)
        {
            GoodReactionCollection.InitAndReact();
            inventory.isGive = false;
        }
        // 아이템을 받지 않았다면..
        else
        {
            BadReactionCollection.InitAndReact();
        }

        // 인벤토리 간 조작 금지 해제
        FSLocator.textDisplayer.reactionButton.gameObject.SetActive(true);

        Destroy(myCorotine);
    }
Beispiel #2
0
    IEnumerator CheckForGiving()
    {
        FSLocator.textDisplayer.HideDialogueHolder();
        FSLocator.characterDisplayer.HideImage();

        // 인벤토리 간 조작 금지 설정
        FSLocator.textDisplayer.reactionButton.gameObject.SetActive(false);

        // "주다" 버튼이 포함되어 있는 인벤토리 UI 표시
        inventory.OnClickGive(npcName);
        inventory.isSimpleGive = false;

        // 사용자가 아이템 선택 후 "주다" 버튼 클릭까지 대기
        while (inventory.giveBg.activeSelf)
        {
            yield return(null);
        }

        // 인벤토리 간 조작 금지 설정 해제
        //FSLocator.textDisplayer.reactionButton.enabled = true;

        // 클릭한 slot 아이템의 이름과 infoList 내의 아이템 이름 중 맞는 게 있다면..
        for (int i = 0; i < infoList.Count; i++)
        {
            if (infoList[i].itemName == inventory.itemName.text)
            {
                // 클릭한 slot의 물건 삭제, condition 체크 수행
                //inventory.Give_OnCondition();
                // 2018-11-10 수정 : 준 아이템에 따른 리액션리스트에서 전달한 아이템을 삭제
                inventory.isGive = true;

                // 해당 아이템을 주었을 때의 reaction 실행
                infoList[i].reactionCollection.InitAndReact();
                break;
            }
        }

        // 주려는 물건이 지정돤 물건이 아니라면..
        if (inventory.isGive == false)
        {
            notGivedReaction.InitAndReact();
        }

        inventory.isGive       = false;
        inventory.isSimpleGive = true;

        // 인벤토리 간 조작 금지 해제
        FSLocator.textDisplayer.reactionButton.gameObject.SetActive(true);

        Destroy(myCorotine);
    }