70 lines
2.2 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
using Sirenix.OdinInspector;
using Fungus;
/// <summary>
/// 演出,贵族之怒
/// </summary>
public class NobleFury : Stage
{
[Header("贵族")]
public Transform noble;
[Header("宗教信徒")]
public NormalEnemy enemy;
private bool conversationEnd = false;
private bool conversationEnd1 = false;
private CinemachineVirtualCamera m_Camera;
protected override void Init(){
//找到必要的游戏物体和组件
base.Init();
m_Camera = FindObjectOfType<CinemachineVirtualCamera>();
}
protected override IEnumerator Main(){
yield return new WaitForEndOfFrame();
//让玩家停下来
player.inputDir = 0;
//让怪物停下来
enemy.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.FreezeAll;
//镜头指向贵族
m_Camera.Follow = noble;
yield return new WaitForSeconds(1f);
//执行贵族踢人动画
noble.GetComponent<Animator>().SetBool("isKick",true);
//执行宗教小怪的死亡动画
enemy.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.None;
enemy.OnBeHit(MyPlayer.AtkMethod.,-1);
yield return new WaitForSeconds(2f);
noble.GetComponent<Animator>().SetBool("isKick",false);
//Callfungus对话
Flowchart.BroadcastFungusMessage("贵族之怒");
yield return new WaitUntil(
() => {
return conversationEnd;
}
);
yield return new WaitForSeconds(1f);
noble.localScale = new Vector3(1,1,1);
yield return new WaitForSeconds(1f);
Flowchart.BroadcastFungusMessage("贵族对话");
yield return new WaitUntil(
() => {
return conversationEnd1;
}
);
//将摄像机重新对准玩家
m_Camera.Follow = player.transform;
//执行善后工作
StartCoroutine(base.Main());
}
public void ConversationEnd(){conversationEnd = true;}
public void ConversationEnd1(){conversationEnd1 = true;}
}