TH1/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentCityLevelUp.cs
2025-10-04 01:57:38 +08:00

75 lines
2.1 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年07月01日 星期二 14:07:05
* @Modify:
*/
using JetBrains.Annotations;
using RuntimeData;
using TH1_Anim.UnitAtomAnim;
using TH1_Core.Events;
using TH1_Core.Managers;
using TH1_DataAssetsScript;
using TH1_Logic.Core;
using TH1_Renderer;
using TH1_Renderer.UnitAtomAnim;
using TH1Renderer;
using UnityEngine;
namespace TH1_Anim.Fragments
{
public class FragmentCityLevelUp : FragmentBase
{
public GridRenderer GridRenderer;
public CityInfoRenderer CityInfoRenderer;
public int Level;
public int LevelExp;
private float _step1_time;
private bool _step1_levelup;
public FragmentCityLevelUp(FragmentCityExpUpData data) : base()
{
GridRenderer = data.GridRenderer;
CityInfoRenderer = data.CityInfoRenderer;
Level = data.Level;
LevelExp = data.LevelExp;
_step1_time = 0f;
_step1_levelup = false;
Duration = 0.5f;
}
public override bool CheckDone(float progressTime)
{
if (!_step1_levelup) return false;
if (progressTime <= Duration)
return false;
return true;
}
public override void OnUpdate(float progressTime)
{
//Step #1执行第一步 升级,宝藏动画
if (progressTime >= _step1_time && !_step1_levelup)
{
_step1_levelup = true;
GridRenderer.PlayVFX(new GridVFXParams(GridVFXType.Treasure){});
CityInfoRenderer.UpdateLevelShow(Level,LevelExp);
GridRenderer.SetUpdateCityBuilding();
//如果是真人玩家,发起界面提示
var interaction = new ShowUIInteractionCityUpgrade() { CityId = (int)CityInfoRenderer.GetCid(),CityLevel = Level - 1};
EventManager.Publish(interaction);
return;
}
}
}
}