| | |
| | | [SerializeField] Button atkBtn; |
| | | [SerializeField] Image angerAtk; //怒气攻击 |
| | | [SerializeField] Transform normalAtk; //普通攻击 |
| | | [SerializeField] UIEffectPlayer atkEffect; //普通攻击特效 0次不显示 |
| | | [SerializeField] UIEffectPlayer atkEffect; //普通攻击特效 0次不显示 按钮用 |
| | | [SerializeField] Text normalAtkCntText; //普通攻击次数 |
| | | [SerializeField] Text atkCDText; //攻击cd |
| | | [SerializeField] Transform addTimesRect; |
| | |
| | | [SerializeField] Transform attackArea3; |
| | | [SerializeField] GuildBossOtherPlayer otherPlayer; //创建多个用 |
| | | [SerializeField] GuildBossOtherPlayerAttack otherPlayerAttack; //创建多个用 |
| | | |
| | | //自己的攻击 |
| | | [SerializeField] UIEffectPlayer hurtEffect; |
| | | [SerializeField] UIEffectPlayer hurtAngerEffect; |
| | | [SerializeField] Text[] hurtValues; |
| | | [SerializeField] Text[] awardValues; |
| | | [SerializeField] Image[] awardIcons; |
| | | [SerializeField] Transform pos1; |
| | | [SerializeField] Transform pos2; |
| | | |
| | | [SerializeField] Transform fakeRedBZ; |
| | | [SerializeField] Transform fakeRedAward; |
| | |
| | | { |
| | | UIManager.Instance.OpenWindow<GuildBossAwardWin>(); |
| | | }); |
| | | |
| | | bossModel.Create(GuildBossManager.Instance.bossSkinID, 1, motionName: "chuxian"); |
| | | heroModel.Create(PhantasmPavilionManager.Instance.GetMyModelSkinID(), 1.5f); |
| | | } |
| | | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh; |
| | | GuildBossManager.Instance.BossHurtEvent += BossHurtEvent; |
| | | GuildBossManager.Instance.AtkResultEvent += AtkResultEvent; |
| | | Display(); |
| | | InitAttack(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | |
| | | GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh; |
| | | GuildBossManager.Instance.BossHurtEvent -= BossHurtEvent; |
| | | GuildBossManager.Instance.AtkResultEvent -= AtkResultEvent; |
| | | |
| | | } |
| | | protected override void NextFrameAfterOpen() |
| | | { |
| | | SoundPlayer.Instance.PlayUIAudio(28); |
| | | } |
| | | |
| | | |
| | | |
| | | void Display() |
| | |
| | | |
| | | nameText.text = PlayerDatas.Instance.baseData.PlayerName; |
| | | BossHurtEvent(); |
| | | bossModel.Create(GuildBossManager.Instance.bossSkinID); |
| | | heroModel.Create(PhantasmPavilionManager.Instance.GetMyModelSkinID()); |
| | | |
| | | } |
| | | |
| | | //战力变化 |
| | |
| | | curLayer = (int)bossAction.Value3; |
| | | } |
| | | |
| | | if (curLayer >= GuildBossManager.Instance.bzMaxLevel) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("GuildBoss2"); |
| | | return; |
| | | } |
| | | // if (curLayer >= GuildBossManager.Instance.bzMaxLevel) |
| | | // { |
| | | // SysNotifyMgr.Instance.ShowTip("GuildBoss2"); |
| | | // return; |
| | | // } |
| | | if (GuildBossManager.Instance.m_BuZhenState == 1) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("GuildBoss1"); |
| | |
| | | ShowDynamicUI(); |
| | | } |
| | | |
| | | void AtkResultEvent() |
| | | { |
| | | //1. 玩家从pos1 移动到pos2 |
| | | //2. 播放攻击动作 - 显示对应类型特效 |
| | | //3. 延迟100毫秒飘血物品 |
| | | heroModel.onComplete = null; |
| | | heroModel.PlayAnimation("run"); |
| | | heroModel.transform.localPosition = pos1.localPosition; |
| | | heroModel.transform.DOLocalMove(pos2.localPosition, 0.3f).OnComplete(() => |
| | | { |
| | | ShowDmg().Forget(); |
| | | }); |
| | | |
| | | } |
| | | |
| | | async UniTask ShowDmg() |
| | | { |
| | | heroModel.onComplete = () => |
| | | { |
| | | heroModel.transform.localPosition = pos1.localPosition; |
| | | }; |
| | | heroModel.PlayAnimation("attack"); |
| | | if (GuildBossManager.Instance.atkResult.AtkType == 0) |
| | | { |
| | | hurtEffect.Play(); |
| | | } |
| | | else |
| | | { |
| | | hurtAngerEffect.Play(); |
| | | } |
| | | bossModel.PlayAnimation("hit"); |
| | | bossModel.onComplete = () => |
| | | { |
| | | bossModel.PlayAnimation("idle", true); |
| | | bossModel.onComplete = null; |
| | | }; |
| | | |
| | | for (int i = 0; i < hurtValues.Length; i++) |
| | | { |
| | | if (i < GuildBossManager.Instance.atkResult.HurtCount) |
| | | { |
| | | int index = i; |
| | | hurtValues[i].SetActive(true); |
| | | var tween = hurtValues[i].GetComponent<PositionTween>(); |
| | | tween.SetStartState(); |
| | | tween.Play(() => |
| | | { |
| | | hurtValues[index].SetActive(false); |
| | | }); |
| | | var hurtData = GuildBossManager.Instance.atkResult.HurtList[i]; |
| | | BattleDmg dmg = new BattleDmg() |
| | | { |
| | | damage = hurtData.HurtValue + hurtData.HurtValueEx * Constants.ExpPointValue, |
| | | attackType = hurtData.IsSuper == 1 ? (int)DamageType.CritDamage : 2 |
| | | }; |
| | | hurtValues[i].text = BattleUtility.DisplayDamageNum(dmg); |
| | | await UniTask.Delay(100); |
| | | } |
| | | else |
| | | { |
| | | hurtValues[i].SetActive(false); |
| | | } |
| | | } |
| | | |
| | | for (int i = 0; i < awardValues.Length; i++) |
| | | { |
| | | if (i < GuildBossManager.Instance.atkResult.ItemCount) |
| | | { |
| | | var itemData = GuildBossManager.Instance.atkResult.ItemList[i]; |
| | | awardValues[i].SetActive(true); |
| | | var tween = hurtValues[i].GetComponent<PositionTween>(); |
| | | tween.SetStartState(); |
| | | int index = i; |
| | | tween.Play(() => |
| | | { |
| | | awardValues[index].SetActive(false); |
| | | }); |
| | | |
| | | |
| | | awardValues[i].text = itemData.Count.ToString(); |
| | | awardIcons[i].SetItemSprite((int)itemData.ItemID); |
| | | await UniTask.Delay(100); |
| | | } |
| | | else |
| | | { |
| | | awardValues[i].SetActive(false); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | void InitAttack() |
| | | { |
| | | for (int i = 0; i < hurtValues.Length; i++) |
| | | { |
| | | hurtValues[i].SetActive(false); |
| | | } |
| | | |
| | | for (int i = 0; i < awardValues.Length; i++) |
| | | { |
| | | awardValues[i].SetActive(false); |
| | | } |
| | | |
| | | heroModel.transform.localPosition = pos1.localPosition; |
| | | bossModel.onComplete = () => |
| | | { |
| | | bossModel.PlayAnimation("idle", true); |
| | | bossModel.onComplete = null; |
| | | }; |
| | | bossModel.PlayAnimation("chuxian"); |
| | | } |
| | | } |