예제 #1
0
    //==============================================================
    //位置情報を適用する
    // moveX -> 動く方向
    // moveY -> 動く方向
    private void ApplyPosition(int moveX, int moveY)
    {
        PosX += moveX;
        PosY += moveY;

        //壁なら位置情報を適用しない
        if (manager.GetFieldData(PosX, PosY) == 1)
        {
            dismovable = true;
            PosX      -= moveX;
            PosY      -= moveY;
        }

        //ななめ移動状態の時、「現在位置」と「進行予定位置」が部屋じゃない場所なら位置情報を適用しない
        if (dismovable == false)
        {
            if (IsDiagonal)
            {
                if (fieldManager.IsRoom(PosX, PosY) == false || fieldManager.IsRoom(PosX - moveX, PosY - moveY) == false)
                {
                    dismovable = true;
                    PosX      -= moveX;
                    PosY      -= moveY;
                }
            }
        }

        //方向選択状態なら位置情報を適用しない
        if (dismovable == false)
        {
            if (manager.IsSelectDirection)
            {
                dismovable = true;
                PosX      -= moveX;
                PosY      -= moveY;
            }
        }

        //進行先に敵がいたら位置情報を適用しない
        if (dismovable == false)
        {
            for (int i = 0; i < manager.GetEnemyNum(); i++)
            {
                if (manager.GetEnemyPos(i).x == PosX && manager.GetEnemyPos(i).y == PosY)
                {
                    dismovable = true;
                    PosX      -= moveX;
                    PosY      -= moveY;
                }
            }
        }

        //動いたなら
        if (dismovable == false)
        {
            actionSaver.AddAction(0);
        }
    }
예제 #2
0
    //=================================================================
    public IEnumerator UseItemRoutine()
    {
        //使用アイテムのIDを一時保存
        int usedItemId = parameterManager.playerParameters.HoldItems[itemDisplayer.CursorPoint_UseItemIndex];

        //アイテムの使用
        parameterManager.playerParameters.UseItem(itemDisplayer.CursorPoint_UseItemIndex);
        //Debug.Log(usedItemId);

        //エフェクト
        manager.Player.GetComponent <Player>().CreateEffect(usedItemId);

        //アクションセーバーに適用
        actionSaver.AddAction(1);

        if (usedItemId != 2)
        {
            //テキストボックス表示
            textBox.Apply(ValueDefinition.ITEMS_USED_TEXT[usedItemId], false);
        }

        //初期化
        itemDisplayer.Initialize();
        Initialize();
        manager.IsDisplayingItemDisplayer = false;

        //ターン処理
        manager.WasPlayerAct      = true;
        manager.IsActiceActPlayer = true;
        manager.Turn++; //ターンを追加

        //アイテム使用と敵の行動の間に時間を設ける
        yield return(new WaitForSeconds(0.5f));

        manager.EndedPlayerAct = true;
        yield break;
    }