Files
5.24BuYu/Assets/MyGame/Scripts/Characters/Monster/MonsterControl_BossBase.cs
T

145 lines
5.2 KiB
C#
Raw Normal View History

2026-03-18 17:26:14 +08:00
using System.Collections;
using System.Collections.Generic;
2026-04-24 22:51:34 +08:00
using TMPro;
2026-03-18 17:26:14 +08:00
using UnityEngine;
2026-03-27 15:18:35 +08:00
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
2026-03-18 17:26:14 +08:00
using static MonsterMoveLine;
public class MonsterControl_BossBase : MonsterContral
{
2026-04-24 22:51:34 +08:00
2026-03-18 17:26:14 +08:00
public string bossName;
2026-04-24 22:51:34 +08:00
[Header("爆奖")]
public LayeredPool layeredPool;
public TextMeshProUGUI tMP_CurrBossScore;//boss分数
public long currBossScoreValue=0;//boss分数
public long bossScoreValue=0;//boss分数
public int poolNum;//奖池
public int prizeCount;//奖励数量
public override void Awake()
{
base.Awake();
}
public void BigPrize()
{
if (layeredPool==null)
{
layeredPool = new LayeredPool(poolNum, prizeCount); // 初始化LayeredPool,假设5个人,10000分
}
if (tMP_CurrBossScore == null)
{
tMP_CurrBossScore = Instantiate(CreateFishManager.Instance.dieFXPrefabAwardTmp, CreateFishManager.Instance.currGameType.subPanelParent).transform.GetChild(0).GetComponent<TextMeshProUGUI>();
}
var v = layeredPool.BossGlodCoinRandrom();
foreach (var item in v)
{
bossScoreValue += item.Amount;
}
StartCoroutine(ShowBigPrize(CreateFishManager.Instance.currGameType.currSitData.consumeGoldNum));
}
public void BigPrizeAll()
{
int sss = CreateFishManager.Instance.fishDatas_hashCodekey_Small.Count;
prizeCount = 1;
if (layeredPool == null)
{
layeredPool = new LayeredPool(poolNum, prizeCount); // 初始化LayeredPool,假设5个人,10000分
}
if (tMP_CurrBossScore == null)
{
tMP_CurrBossScore = Instantiate(CreateFishManager.Instance.dieFXPrefabAwardTmp, CreateFishManager.Instance.currGameType.subPanelParent).transform.GetChild(0).GetComponent<TextMeshProUGUI>();
}
var v = layeredPool.BossGlodCoin(sss);
foreach (var item in v)
{
bossScoreValue += item.Amount;
}
GameManager.Instance.StartCoroutine(ShowBigPrize(CreateFishManager.Instance.currGameType.currSitData.consumeGoldNum));
}
IEnumerator ShowBigPrize(long turretNum)
{
turretNum =Random.Range((int)(turretNum/2), (int)turretNum+1);
while (currBossScoreValue < bossScoreValue)
{
currBossScoreValue += 1* turretNum; // 每次增加1000分
if (currBossScoreValue > bossScoreValue)
{
currBossScoreValue = bossScoreValue; // 确保不超过总分数
}
tMP_CurrBossScore.text = currBossScoreValue.ToString(); // 更新UI显示
//yield return new WaitForSeconds(0.05f); // 每0.1秒更新一次
yield return null;
}
}
public void EndBigPrize()
{
}
2026-03-27 15:18:35 +08:00
public async override void Init(string pathId, float Time, bool isyuzhen = false, string yzID = "")
2026-03-18 17:26:14 +08:00
{
2026-04-24 22:51:34 +08:00
2026-03-18 17:26:14 +08:00
isyz = isyuzhen;
this.yzID = yzID;
2026-04-24 22:51:34 +08:00
2026-03-31 17:00:05 +08:00
//播报
2026-03-27 15:18:35 +08:00
switch (GameManager.Instance.gameData.currGameType)
{
case GameType.JQQD:
break;
case GameType.defaultPanel:
break;
case GameType.FLZY:
{
2026-04-24 22:51:34 +08:00
AsyncOperationHandle<Sprite> handle = Addressables.LoadAssetAsync<Sprite>("Assets/Art/XJMH/pw/pw_sprite/handbook/" + bossName + ".png");
2026-03-27 15:18:35 +08:00
await handle.Task;
Sprite sprite = handle.Result;
2026-04-24 22:51:34 +08:00
CreateFishManager.Instance. currGameType.subUIManager.ShowBoardBoss(sprite, bossName);
2026-03-27 15:18:35 +08:00
}
2026-04-24 22:51:34 +08:00
2026-03-27 15:18:35 +08:00
break;
case GameType.TGXX:
//还没有写呢
{
AsyncOperationHandle<Sprite> handle = Addressables.LoadAssetAsync<Sprite>("Assets/Art/XJMH/pw/pw_sprite/handbook/" + bossName + ".png");
await handle.Task;
Sprite sprite = handle.Result;
2026-04-24 22:51:34 +08:00
CreateFishManager.Instance.currGameType.subUIManager.ShowBoardBoss(sprite, bossName);
2026-03-27 15:18:35 +08:00
}
break;
case GameType.ZGXQ:
2026-04-24 22:51:34 +08:00
2026-03-27 15:18:35 +08:00
break;
case GameType.XJMH:
{
AsyncOperationHandle<Sprite> handle = Addressables.LoadAssetAsync<Sprite>("Assets/Art/XJMH/pw/pw_sprite/handbook/" + bossName + ".png");
await handle.Task;
Sprite sprite = handle.Result;
2026-04-24 22:51:34 +08:00
CreateFishManager.Instance.currGameType.subUIManager.ShowBoardBoss(sprite, bossName);
2026-03-27 15:18:35 +08:00
}
break;
case GameType.HHWK:
{
AsyncOperationHandle<Sprite> handle = Addressables.LoadAssetAsync<Sprite>("Assets/Art/XJMH/pw/pw_sprite/handbook/" + bossName + ".png");
await handle.Task;
Sprite sprite = handle.Result;
2026-04-24 22:51:34 +08:00
CreateFishManager.Instance.currGameType.subUIManager.ShowBoardBoss(sprite, bossName);
2026-03-27 15:18:35 +08:00
}
break;
default:
break;
}
2026-03-31 17:00:05 +08:00
BezierCurveData bezierCurveData = MonsterMoveLine.dic_BezierCurveDatas[bossName + pathId];
monsterData.moveLine.Init(bezierCurveData, Time);
2026-03-18 17:26:14 +08:00
}
2026-04-24 22:51:34 +08:00
2026-03-18 17:26:14 +08:00
}