Exemple #1
0
    /// <summary>
    /// シーケンスの遷移処理
    /// 各タスクに指示を出す
    /// </summary>
    private void DoChangeSequence()
    {
        switch (NextSQID.Value)
        {
        case SQID.EnmAutoMove:
            int Index = EnmData.GetNextMoveEnmIndex();
            if (Index == -1)
            {
                //Skip処理
                SendMessage(MessageType.EnmNonMove, -1);
                break;
            }

            EnmData.Telegram_EnmAutoMoveSelectIndex = Index;

            break;

        default:
            break;
        }

        Debug.Log(_NowSQID.Value.ToString() + "->" + _NextSQID.Value.ToString());

        // 更新
        // 各タスクにイベントが飛ぶ
        _NowSQID.Value = _NextSQID.Value;
    }
    /// <summary>
    /// EnmDataが移動可能か判定
    /// </summary>
    public static bool IsEnmMoveOK(int X, int Y)
    {
        FloorObjectData[] datas = GetOnFloorObject(X, Y);

        foreach (FloorObjectData data in datas)
        {
            if (data is PlyData)
            {
                return(false);
            }
            if (data is EnmData)
            {
                EnmData enm = data as EnmData;
                if (enm.IsHide() == false)
                {
                    return(false);
                }
            }
            if (data is SetObjectData)
            {
                SetObjectData setObj = data as SetObjectData;
                if (setObj.IsRideOK() == false)
                {
                    return(false);
                }
            }
        }
        return(true);
    }