public override void Start() { bossSkill = GetComponent <BossSkill>(); sensor = new Sensor(10, 120, this); FsmManager = new FsmManager((int)DragonAnimEnum.Max); DragonIdleState dragonIdleState = new DragonIdleState(anim, this); DragonDieState dragonDieState = new DragonDieState(anim, this); DragonHitState dragonHitState = new DragonHitState(anim, this); DragonAttackState dragonAttackState = new DragonAttackState(anim, this); DragonPersueState dragonPersueState = new DragonPersueState(anim, this); DragonReleaseSkillState dragonReleaseSkillState = new DragonReleaseSkillState(anim, this); FsmManager.AddState(dragonIdleState); FsmManager.AddState(dragonDieState); FsmManager.AddState(dragonHitState); FsmManager.AddState(dragonAttackState); FsmManager.AddState(dragonPersueState); FsmManager.AddState(dragonReleaseSkillState); FsmManager.ChangeState((int)DragonAnimEnum.Idle); }
private void Awake() { bossSkill = GetComponent <BossSkill>(); NavAgent = GetComponent <PolyNavAgent>(); Player = GameObject.FindGameObjectWithTag("Player"); Anim = GetComponent <QueenAnim>(); Main_Camera = GameObject.FindGameObjectWithTag("MainCamera"); playerLayer = LayerMask.NameToLayer("Player"); lightController = Main_Camera.GetComponent <FogOfWar>(); StartCoroutine(NormalAttack()); StartCoroutine(UseSkill()); }
public void OnBossAttack(GameObject boss) { BossSkill bossSkill = boss.GetComponent<BossSkill>(); int damage = Mathf.Max(0, bossSkill.attack - Defense); GameObject go = Instantiate(DamageTxt, transform.position, Camera.main.transform.rotation); go.GetComponent<UI_DmgTxt>().SetDmgText(damage, false, false, Color.blue); Hp -= damage; if (Hp < 0) { Hp = 0; OnDead(null); } }