Пример #1
0
    /// <summary>
    /// 素材がレシピ通りかどうかを判定
    /// </summary>
    void CookingRecipe()
    {
        //入れられた素材をJam,Choco,Doughの順に並び替える
        checkLis = elemLis.OrderBy(m => m.type.ToString().Length).ThenBy(m => m.type.ToString()).ToArray();

        //レシピを判定する

        //elemLis == {Jam,Dough} → ジャムクッキー
        //elemLis == {Choco,Dough} →チョコクッキー
        //elemLis == {Dough,Dough} →ノーマルクッキー

        foreach (CookingMaterial mat in createCookie.setCookie)
        {
            //レシピ通りの場合、2つめの要素は必ずDough
            if (checkLis[1].type == CookingMaterialType.Dough)
            {
                //作ったクッキーをelemLis[0]に保存
                if (mat.type.ToString() == "Knead_" + checkLis[0].type.ToString())
                {
                    createDone = mat;
                    DisplayCookie(createDone);
                    break;
                }
            }
            //レシピと違う場合はダークマター
            else if (mat.type == CookingMaterialType.Knead_DarkMatter)
            {
                createDone = mat;
                DisplayCookie(mat);
                break;
            }
        }
    }
Пример #2
0
    /// <summary>
    /// 何を作るかのレシピ判定
    /// </summary>
    void CookingRecipe()
    {
        CookingMaterial mat = createCookie.setCookie[0];

        switch (elemLis[0].type)
        {
        case CookingMaterialType.Knead_Dough:
            mat = createCookie.setCookie[0];
            break;

        case CookingMaterialType.Knead_Choco:
            mat = createCookie.setCookie[1];
            break;

        case CookingMaterialType.Knead_Jam:
            mat = createCookie.setCookie[2];
            break;

        case CookingMaterialType.Knead_DarkMatter:
            mat = createCookie.setCookie[3];
            break;
        }

        createDone = mat;
    }
Пример #3
0
    IEnumerator DestroyCookie(GameObject col)
    {
        cookieType = col.GetComponent <CookingMaterial>();

        if (cookieType == null)
        {
            yield break;
        }

        flg = true;
        if (cookieType.type == enemyType.type && flg)
        {
            flg = false;
            AudioManager.Instance.PlaySE("EnemyDown");
            GameObject effect = Instantiate(effectPre, transform.position, Quaternion.identity, transform.parent);

            Destroy(effect, 1.0f);

            EnemyDeath._EnemyDeath    -= 1;
            ImageNumber._EnemyCountFlg = true;

            Destroy(col.gameObject);
            Destroy(gameObject);

            GameObject human = Instantiate(humanPre, transform.position, Quaternion.identity, transform.parent);
            Destroy(human, 3.0f);
        }
    }
Пример #4
0
 /// <summary>
 /// 素材のゲットセット
 /// </summary>
 /// <param name="exe"></param>
 void SetGet_exe()
 {
     if (HaveChildObj() == false)
     {
         haveObjMat = exe.GetElement();
         Instantiate(haveObjMat.gameObject, transform);
     }
 }
Пример #5
0
    /// <summary>
    /// 素材を置く
    /// </summary>
    /// <param name="mat"></param>
    public void SetElement(CookingMaterial mat)
    {
        setElem = mat;

        if (setElem != null)
        {
            CookieRecipe();
        }
    }
Пример #6
0
    /// <summary>
    /// 入れた素材をリストに入れ、調理を始める
    /// </summary>
    /// <param name="mat">入れた素材</param>
    public void SetElement(CookingMaterial mat)
    {
        elemLis.Add(mat);

        if (elemLis.Count == 1)
        {
            StartCoroutine(Cooking());
        }
    }
Пример #7
0
    /// <summary>
    /// テーブルに置いたクッキーを見えるようにする
    /// </summary>
    /// <param name="mat">素材のtype</param>
    void DisplayElem(CookingMaterial mat)
    {
        //置かれた素材を机の上に配置
        GameObject display = Instantiate(
            mat.gameObject,
            displayPos[elemLis.Count - 1].transform.position,
            Quaternion.identity,
            displayPos[elemLis.Count - 1].transform);

        // 表示位置の調整
        display.transform.eulerAngles = new Vector3(-90, 0, 0);
    }
Пример #8
0
    /// <summary>
    /// 子オブジェクトの管理と初期化
    /// </summary>
    void HaveCookieManager()
    {
        //子オブジェクトの特定
        if (transform.childCount >= haveObjCount + 1)
        {
            haveObj = transform.GetChild(haveObjCount).gameObject;

            haveObjMat = haveObj.GetComponent <CookingMaterial>();

            haveObj.transform.localPosition = havePos.localPosition;
        }
    }
Пример #9
0
    /// <summary>
    /// 机に素材を置く
    /// </summary>
    /// <param name="mat">素材の種類</param>
    public void SetElement(CookingMaterial mat)
    {
        //入れた素材をリストに格納
        elemLis.Add(mat);
        DisplayElem(mat);

        //二つの素材が入っていたら
        if (elemLis.Count == 2)
        {
            //調理をはじめる
            StartCoroutine(Cooking());
        }
    }
Пример #10
0
    void Update()
    {
        if (exit.transform.childCount >= 1)
        {
            //AnswerCookieはexitの子オブジェクト
            Answer = exit.transform.GetChild(0).GetComponent <CookingMaterial>();
        }

        //表示時間
        if (missImg.activeSelf)
        {
            StartCoroutine(DisplayTime());
        }
    }
Пример #11
0
 /// <summary>
 /// こねる机の素材のゲットセット
 /// </summary>
 /// <param name="exe"></param>
 void KneadSetGet_kit()
 {
     //ゲット
     if (HaveChildObj() == false)
     {
         haveObjMat = kit.GetElement();
         if (haveObjMat != null)
         {
             Instantiate(haveObjMat.gameObject, transform);
         }
     }
     //セット
     else if (haveObjMat != null)
     {
         kit.SetElement(haveObjMat);
         haveObjMat = null;
     }
 }
Пример #12
0
    /// <summary>
    /// 置こうとしているクッキーと、出さないといけないクッキーが同じかどうかを判定
    /// </summary>
    void CookieRecipe()
    {
        if (Answer.type == setElem.type && exit.transform.childCount != 0)
        {
            //クッキーを出す
            cookieDone = setElem;
            CookingMaterial create = Instantiate(cookieDone, exit.transform.position, Quaternion.identity, exit.transform);

            create.gameObject.AddComponent <SoldierMove>();
            create.gameObject.GetComponent <BoxCollider>().isTrigger = false;

            //出したクッキーの角度を調整
            float xRotate = -90.0f;
            create.transform.eulerAngles = new Vector3(xRotate, 0, 0);

            setElem = null;
        }
    }
Пример #13
0
    void Update()
    {
        //敵クッキーが湧いていたら
        if (transform.childCount != 0)
        {
            //子オブジェクトの取得
            GameObject childCookie = transform.GetChild(0).gameObject;
            //子オブジェクトのtypeを取得する
            CookingMaterial cookieAnswer = childCookie.GetComponent <CookingMaterial>();

            if (cookieAnswer == null)
            {
                return;
            }

            switch (cookieAnswer.type)
            {
            case CookingMaterialType.Bake_Dough:

                answer.sprite = cookieImage.answerImage[0];
                break;

            case CookingMaterialType.Bake_Choco:

                answer.sprite = cookieImage.answerImage[1];
                break;

            case CookingMaterialType.Bake_Jam:

                answer.sprite = cookieImage.answerImage[2];
                break;
            }
            answerColor.a = 1;
        }
        //湧いていなかったら
        else
        {
            answerColor.a = 0;
        }
        answer.color = answerColor;
    }
Пример #14
0
    /// <summary>
    /// 作ったクッキーを机の上に置く
    /// </summary>
    /// <param name="mat">作ったクッキーのtype</param>
    void DisplayCookie(CookingMaterial mat)
    {
        for (int i = 0; i < displayPos.Length - 1; i++)
        {
            Destroy(displayPos[i].gameObject.transform.GetChild(0).gameObject);
        }

        GameObject effect = Instantiate(effectPre, transform);

        AudioManager.Instance.PlaySE("Knead");

        Destroy(effect, 1.0f);

        GameObject displayCookie = Instantiate(
            mat.gameObject,
            displayPos[2].transform.position,
            Quaternion.identity,
            displayPos[2].transform);

        displayCookie.transform.eulerAngles = new Vector3(-90, 0, 0);
    }
Пример #15
0
    void OnCollisionStay(Collision col)
    {
        //各コントローラーのAction1ボタンが押されたら
        if (Input.GetButtonDown(setting.keyAction))
        {
            //衝突した机の種類を取得、tableKindがついていないオブジェクトだったら処理を中断
            table = col.gameObject.GetComponent(typeof(TableKind)) as TableKind;
            if (table == null)
            {
                return;
            }

            //衝突した机のinterfaceを取得する
            exe = col.gameObject.GetComponent(typeof(IExecutable)) as IExecutable;
            kit = col.gameObject.GetComponent(typeof(IKitchenWare)) as IKitchenWare;

            switch (table.type)
            {
            //素材テーブル
            case TableType.ElemTable:

                SetGet_exe();
                break;

            //こねるテーブル
            case TableType.KneadTable:

                knead = col.gameObject.GetComponent <KneadTable>();

                //入れる
                if (knead.elemLis.Count < 2 && ElemType() && knead.createDone == null)
                {
                    KneadSetGet_kit();
                    Destroy(haveObj);
                }
                //出す
                else if (knead.createDone != null && HaveChildObj() == false && knead.CheckProgress() == 1)
                {
                    KneadSetGet_kit();
                    knead.createDone = null;
                }

                break;

            //オーブン
            case TableType.BakingTable:

                bake = col.gameObject.GetComponent <BakingTable>();

                //入れる
                if (KneadType() && bake.elemLis.Count <= 0 && bake.createDone == null)
                {
                    OvenSetGet_kit();
                    Destroy(haveObj);
                }
                //出す
                else if (bake.createDone != null && HaveChildObj() == false && bake.CheckProgress() == 1)
                {
                    OvenSetGet_kit();
                    bake.createDone = null;
                }

                break;

            //コンベア
            case TableType.ExitTable:

                ExitTable exit = col.gameObject.GetComponent <ExitTable>();

                //入れる
                if (HaveChildObj() && BakingType(exit))
                {
                    exe.SetElement(haveObjMat);
                    haveObjMat = null;
                    Destroy(haveObj);
                }
                //出す
                else if (haveObjMat != null && BakingType(exit) == false)
                {
                    exit.missImg.SetActive(true);
                }

                break;
            }
        }
    }
Пример #16
0
 void Start()
 {
     enemyType = GetComponent <CookingMaterial>();
     enemyMove = GetComponent <EnemyMove>();
 }
Пример #17
0
 public void SetElement(CookingMaterial mat)
 {
 }