Files
ft/Client/Assets/Scripts/Event1v1Battle/Panel/TVPanel/Event1v1BattleSlapTvPopupPanelEx.cs
2026-06-29 21:18:33 +08:00

83 lines
4.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using System.Collections.Generic;
namespace game
{
/// <summary>
/// 1v1扇耳光大赛TV演示面板 Event1v1BattleSlapTvPopupPanel
/// 真正的战斗演示面板本版本只实现基础UITimeline/Spine系统留到后续版本
/// </summary>
public partial class Event1v1BattleSlapTvPopupPanel
{
#region SerializeField
[Header("关闭面板")]
[SerializeField][Min(0f)] private float closePanelDelaySeconds = 2f;
[SerializeField][Min(0f)] private float firstMatchShowSeconds = 10f;
[Header("Animation")]
[SerializeField][Min(0)] private float hpBarChangeTime = 0.3f;
[SerializeField][Min(0)] private float hpTextChangeTime = 1f;
/// <summary>罐头品质 &gt;= 该值时使用重击 Timelineattack/hit 的 _2 档)。</summary>
[SerializeField] private int heavyHitQualityMin = 3;
[Header("Result Timeline (_resDirector) 播放前延时(秒)")]
[SerializeField][Min(0f)] private float ko_animation_delay;
[SerializeField][Min(0f)] private float defeat_animation_delay;
[SerializeField][Min(0f)] private float timeout_animation_delay;
[Header("攻击→受击间隔(先播攻击侧 Timeline按秒数推进到「落点」后再播受击侧双方仅此一点耦合收招各自播不回拉双人 idle")]
[SerializeField][Min(0f)] private float attackHitGapPlayerLight = 0.08f;
[SerializeField][Min(0f)] private float attackHitGapPlayerHeavy = 0.12f;
[SerializeField][Min(0f)] private float attackHitGapNpcLight = 0.08f;
[SerializeField][Min(0f)] private float attackHitGapNpcHeavy = 0.12f;
[Header("play Timeline")]
[SerializeField] private PlayableAsset eat_player;
[SerializeField] private PlayableAsset eat_player_buff;
/// <summary>循环待机;扇耳光流程里 hit2idle/攻击收招后以 Loop 播放且不阻塞后续 Timeline。</summary>
[SerializeField] private PlayableAsset idle_player;
[SerializeField] private PlayableAsset ko_player;
[SerializeField] private PlayableAsset win_player;
[SerializeField] private PlayableAsset attack_player_1;
[SerializeField] private PlayableAsset attack_player_2;
/// <summary>受击后过渡到站姿,播完再接 <see cref="idle_player"/> 循环更自然。</summary>
[SerializeField] private PlayableAsset hit2idle_player_1;
[SerializeField] private PlayableAsset hit2idle_player_2;
/// <summary>受击到 KO 的过渡段,播完再接 <see cref="ko_player"/>。</summary>
[SerializeField] private PlayableAsset hit2ko_player_1;
[SerializeField] private PlayableAsset hit2ko_player_2;
[SerializeField] private PlayableAsset hit_player_1;
[SerializeField] private PlayableAsset hit_player_2;
[Header("enemy Timeline")]
/// <summary>循环待机;受击侧 hit2idle 后以 Loop 播放且不阻塞后续逻辑。</summary>
[SerializeField] private PlayableAsset idle_enemy;
[SerializeField] private PlayableAsset ko_enemy;
[SerializeField] private PlayableAsset win_enemy;
[SerializeField] private PlayableAsset attack_enemy_1;
[SerializeField] private PlayableAsset attack_enemy_2;
/// <summary>受击后过渡到站姿,播完再接 <see cref="idle_enemy"/> 循环。</summary>
[SerializeField] private PlayableAsset hit2idle_enemy_1;
[SerializeField] private PlayableAsset hit2idle_enemy_2;
/// <summary>受击到 KO 的过渡段,播完再接 <see cref="ko_enemy"/>。</summary>
[SerializeField] private PlayableAsset hit2ko_enemy_1;
[SerializeField] private PlayableAsset hit2ko_enemy_2;
[SerializeField] private PlayableAsset hit_enemy_1;
[SerializeField] private PlayableAsset hit_enemy_2;
[Header("result Timeline")]
[SerializeField] private PlayableAsset ko_player_res;
[SerializeField] private PlayableAsset defeat_enemy_res;
[SerializeField] private PlayableAsset timeout_player_res;
[Header("Signal")]
[SerializeField] private SignalAsset signalAsset;
[SerializeField]
private List<Event1v1BattleSlapTvData> tvDatas = new List<Event1v1BattleSlapTvData>();
#endregion
}
}