// プロデューサーを殺す private void KillProducer() { GameObject p = GameObject.Find("producer"); ProducerAction pAction = p.GetComponent <ProducerAction>(); pAction.Die(); // プロデューサーを殺すとストレスが減る(TODO ストレスコントロールは定数にしたい) Koume koume = GetComponent <Koume>(); koume.ReduceStress(Koume.StressStep * 350); IsActing = true; lastAct = Time.time; ActDuration = 1.0f; }
// Update is called once per frame void Update() { Koume koume = GetComponent <Koume>(); KoumeMove kMove = GetComponent <KoumeMove>(); // 移動中でないとき、アクションできる if (!kMove.isMoving() && Time.time - lastAct > ActDuration) { IsActing = false; ActDuration = Constant.ActDuraion; GetComponent <Animator>().SetBool("Special", false); // プロデューサーが隣接しているとき、プロデューサーを殺す if (IsNextToProducer()) { KillProducer(); } // ストレスが最大の時、特殊アクションを行う else if (koume.Stress >= Koume.StressMax) { int special = GameUtil.Rand.Next() % 2; switch (special) { case 0: // 8方向の障害物を破壊 BlowObstacles(); break; case 1: // ワープ Warp(); break; default: break; } koume.ReduceStress(Koume.StressStep * 100); // ストレスを減らす } } }