| | |
| | | using DG.Tweening; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using Core.Utilities; |
| | | |
| | | /** |
| | |
| | | /// </summary> |
| | | public EndlessBossActionState ActionState { get; set; } |
| | | |
| | | public Image Title; |
| | | |
| | | private string titlePath = "UI/Endless/SkillTitle/"; |
| | | |
| | | // Start is called before the first frame update |
| | | private void Start() |
| | | { |
| | | |
| | | ColorVal = 0; |
| | | EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessBossSkillGlintTitle, Glint); |
| | | } |
| | | |
| | | // Update is called once per frame |
| | | private void Update() |
| | | { |
| | | |
| | | } |
| | | |
| | | private void Glint(int skillType) |
| | | { |
| | | Title.sprite = Resources.Load<Sprite>($"{titlePath}{skillType}"); |
| | | //设置一个DOTween队列 |
| | | Sequence flashSeq = DOTween.Sequence(); |
| | | Color c = Title.color; |
| | | c.a = 0; |
| | | Title.color = c; |
| | | Title.gameObject.SetActive(true); |
| | | |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 1, 0.3f)); |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 0, 0.15f)); |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 1, 0.3f)); |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 0, 0.15f)); |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 1, 0.3f)); |
| | | flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 0, 0.15f)); |
| | | flashSeq.AppendCallback(() => { EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBossSkillGlintTitleCompleted); }); |
| | | } |
| | | |
| | | private float ColorVal |
| | | { |
| | | get { return Title.color.a; } |
| | | set |
| | | { |
| | | Title.gameObject.SetActive(value != 0); |
| | | Color c = Title.color; |
| | | c.a = value; |
| | | Title.color = c; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | if (frameName == "summonEnd") |
| | | { |
| | | EventCenter.Ins.BroadCast((int)EventType.EndlessBossSummonEnd); |
| | | // 召唤动作结束后自动切换到站立状态 |
| | | ChangeState(EndlessBossActionState.Standing); |
| | | } |
| | | else if (frameName == "death") |
| | | { |
| | | BossAnimator.speed = 0; |
| | | EventCenter.Ins.BroadCast((int)EventType.EndlessBossDeathActionEnd); |
| | | } |
| | | } |
| | | |
| | |
| | | /// <param name="newState"></param> |
| | | public void ChangeState(EndlessBossActionState newState) |
| | | { |
| | | if (newState == ActionState) return; |
| | | |
| | | ActionState = newState; |
| | | |
| | | if (newState == EndlessBossActionState.Standing || newState == EndlessBossActionState.Summon) |
| | | BossAnimator.speed = 1; |
| | | BossAnimator.SetInteger("State", (int)newState); |
| | | } |
| | | } |