yyl
9 天以前 b6f94e013be7edc0aa3de2440dd52d2c7e6d9d38
Main/System/Battle/ArenaBattleWin.cs
@@ -34,6 +34,12 @@
    [SerializeField] List<ArenaHeroHead> enemyHeroHeads;
    [SerializeField] TextEx txtWaveInfo;
    public TotalDamageDisplayer totalDamageDisplayer;
    public SkillTips skillTipsRed;
    public SkillTips skillTipsBlue;
    // 生命周期
    protected override void InitComponent()
    {
@@ -73,6 +79,7 @@
        MainWin.TabChangeEvent += OnTabChangeEvent;
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
        EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        BattleManager.Instance.storyBattleField.IsPause = true;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
@@ -94,6 +101,7 @@
        MainWin.TabChangeEvent -= OnTabChangeEvent;
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
        EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        BattleManager.Instance.storyBattleField.IsPause = false;
@@ -128,6 +136,7 @@
        if (damageInfo.battleFieldGuid == battleField.guid)
        {
            DisplayHpInfo();
            totalDamageDisplayer.SetDamage(damageInfo);
        }
    }
@@ -183,12 +192,40 @@
        ui.SetBattleField(battleField);
        battleField.UpdateCanvas(canvas);
        textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
        DisplayHpInfo();
        DisplayPlayerInfo();
        Refresh();
        battleField.OnRoundChange -= OnRoundChange;
        battleField.OnRoundChange += OnRoundChange;
        OnRoundChange(battleField.round, battleField.turnMax);
    }
    public override void Refresh()
    {
        base.Refresh();
        DisplayHpInfo();
        DisplayPlayerInfo();
        totalDamageDisplayer.SetActive(false);
        skillTipsBlue.SetActive(false);
        skillTipsRed.SetActive(false);
    }
    private void OnCastSkill(string guid, SkillConfig skillConfig, TeamHero teamHero)
    {
        if (battleField == null)
            return;
        if (battleField.guid != guid)
            return;
        BattleObject battleObject = battleField.battleObjMgr.GetBattleObject(teamHero.ObjID);
        bool isRed = battleObject.Camp == BattleCamp.Red;
        SkillTips tips = isRed ? skillTipsRed : skillTipsBlue;
        tips.PlayMotion(battleField, isRed, teamHero, skillConfig);
    }
    private void DisplayHpInfo()
    {
        if (battleField == null)