Example #1
0
    /**
     * When the door is clicked, this function is called, and if the door can be opened, it moves player and generate monsters by calling functions in gameManager and boardManager.
     */
    private void OnMouseUpAsButton()
    {
        Debug.Log(isOpened + " " + gameManager.CurrentSituation);
        if (isOpened && !gameManager.CurrentSituation)
        {
            if (GetComponentsInChildren <UnityEngine.UI.Image>().Length == 1)
            {
                switch (tag)
                {
                case "EastDoor": direction = BoardManager.Direction.Right; break;

                case "WestDoor": direction = BoardManager.Direction.Left; break;

                case "NorthDoor": direction = BoardManager.Direction.UpSide; break;

                case "SouthDoor": direction = BoardManager.Direction.DownSide; break;

                default: break;
                }

                boardManager.MoveNextFloor();
                gameManager.EndPlayerTurn(Unit.Action.Move);
                gameManager.GenerateItems(boardManager.XPos, boardManager.YPos);
                gameManager.GenerateMonsters(boardManager.XPos, boardManager.YPos);
                gameManager.GenerateNPCs(boardManager.XPos, boardManager.YPos);
            }
            else
            {
                Player player = GameObject.Find("Player").GetComponent <Player>();
                if (transform.GetChild(0) == null)
                {
                    Debug.Log("문짝에서 자물쇠 오브젝트를 못찾았대 ㅋ");
                    return;
                }
                else
                {
                    if (player.InventoryList.CheckItem(ItemManager.Label.BlackCard))
                    {
                        player.UseItem(player.InventoryList.Getindex(ItemManager.Label.BlackCard));
                        Destroy(GetComponentsInChildren <UnityEngine.UI.Image>()[1].gameObject);
                    }
                    else
                    {
                        MessageMaker messageMaker = GameObject.Find("Logger").GetComponent <MessageMaker>();
                        messageMaker.MakeCannotMessage(ItemManager.Label.BlackCard);
                    }
                }
            }
        }
    }
Example #2
0
    /**
     * 플레이어가 선택 상자에서 주사하는 명령을 선택하였을 때 실행되는 함수
     * \see player::InjectItem
     */
    public void InjectCommand()
    {
        Destroy(gObject);
        player.GetInventoryList().isDialogBoxOn = false;

        Buff adTemp = new Adrenaline(1);
        Buff ad     = player.FindBuff(adTemp);
        Buff moTemp = new Morfin(1);
        Buff mo     = player.FindBuff(moTemp);

        if ((ItemManager.LabelToCategory(player.InventoryList.LabelList[index]) == ItemManager.ItemCategory.AdrenalineDrug && mo != null) ||
            (ItemManager.LabelToCategory(player.InventoryList.LabelList[index]) == ItemManager.ItemCategory.MorfinDrug && ad != null))
        {
            messageMaker.MakeCannotMessage(player.InventoryList.LabelList[index]);
            return;
        }

        messageMaker.MakeItemMessage(MessageMaker.UnitAction.UseItem, player.InventoryList.LabelList[index]);
        player.UseItem(index);
    }