111
This commit is contained in:
@@ -32,10 +32,16 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
// ==================== 死亡 ====================
|
||||
public bool isDieFish;
|
||||
public float dieTime = 3f;
|
||||
public Vector3 v3; // 分数飞出目标位置(Inspector 设置)
|
||||
public Vector3 v3; // 分数飞出目标位置(Inspector 设置)
|
||||
private long _turretNum;
|
||||
private bool _isJia;
|
||||
|
||||
/// <summary>是否本地玩家击杀(金/银币样式切换用,由 Ws_DieFish 设置)</summary>
|
||||
public bool isLocalCoin = false;
|
||||
|
||||
/// <summary>击杀者座位 ID(人机击杀时由房主代发,但 sitPos 应为人机座位,而非房主自己)</summary>
|
||||
public int killerSitPos = -1;
|
||||
|
||||
// ==================== Unity 生命周期 ====================
|
||||
|
||||
public override void Awake()
|
||||
@@ -46,9 +52,38 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
action_effect_DieAward = obj =>
|
||||
{
|
||||
tMP_CurrBossScore = obj.transform.GetChild(0).GetComponent<TextMeshProUGUI>();
|
||||
// ⭐ 按 isLocalCoin 切金/银:自己击杀=金币,他人=银币
|
||||
ApplyBossScoreStyle(obj.transform);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按 isLocalCoin 切换 Boss 分数 TMP 的 spriteAsset:
|
||||
/// 自己击杀 → goldSprite
|
||||
/// 他人击杀 → silverSprite
|
||||
/// 优先用 BJImage(新预制体),回退 ScoreNumScrollEvent,再回退直接取 TMP。
|
||||
/// 需对应 sprite 已在 Inspector 赋值,否则跳过不影响原显示。
|
||||
/// </summary>
|
||||
private void ApplyBossScoreStyle(Transform root)
|
||||
{
|
||||
if (tMP_CurrBossScore == null) return;
|
||||
|
||||
var bjImage = root.GetComponentInChildren<BJImage>();
|
||||
if (bjImage != null)
|
||||
{
|
||||
var spriteAsset = isLocalCoin ? bjImage.goldSprite : bjImage.silverSprite;
|
||||
if (spriteAsset != null)
|
||||
tMP_CurrBossScore.spriteAsset = spriteAsset;
|
||||
return;
|
||||
}
|
||||
|
||||
var scrollEvent = root.GetComponentInChildren<ScoreNumScrollEvent>();
|
||||
if (scrollEvent != null)
|
||||
{
|
||||
scrollEvent.SetScoreStyle(isLocalCoin);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
@@ -58,6 +93,8 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
redPacketRecords.Clear();
|
||||
_isJia = false;
|
||||
isDieFish = false;
|
||||
isLocalCoin = false;
|
||||
killerSitPos = -1;
|
||||
|
||||
var res = FishResourcesData.fishResourcesDatasDic[fishTypeID];
|
||||
if (res.showAudio != null && res.showAudio.Count > 0)
|
||||
@@ -111,8 +148,10 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
var parent = CreateFishManager.Instance.bjEffectRoot;
|
||||
if (parent == null) return;
|
||||
|
||||
tMP_CurrBossScore = Instantiate(prefab, parent)
|
||||
.transform.GetChild(0).GetComponent<TextMeshProUGUI>();
|
||||
var board = Instantiate(prefab, parent);
|
||||
tMP_CurrBossScore = board.transform.GetChild(0).GetComponent<TextMeshProUGUI>();
|
||||
// ⭐ 按 isLocalCoin 切金/银:自己击杀=金币,他人=银币
|
||||
ApplyBossScoreStyle(board.transform);
|
||||
}
|
||||
|
||||
/// <summary>初始化红包分层对象池</summary>
|
||||
@@ -128,7 +167,7 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
EnsureScorePanel();
|
||||
EnsureLayeredPool();
|
||||
|
||||
var records = layeredPool.BossGlodCoinRandrom(tMP_CurrBossScore.transform.position, min, max);
|
||||
var records = layeredPool.BossGlodCoinRandrom(tMP_CurrBossScore.transform.position, min, max, killerSitPos);
|
||||
AddRedPacket(records);
|
||||
}
|
||||
|
||||
@@ -150,7 +189,7 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
EnsureScorePanel();
|
||||
EnsureLayeredPool();
|
||||
|
||||
var records = layeredPool.BossGlodCoin(smallFishCount, tMP_CurrBossScore.transform.position);
|
||||
var records = layeredPool.BossGlodCoin(smallFishCount, tMP_CurrBossScore.transform.position, killerSitPos);
|
||||
AddRedPacket(records);
|
||||
}
|
||||
|
||||
@@ -201,7 +240,17 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
{
|
||||
yield return new WaitForSeconds(0.15f);
|
||||
var inst = Instantiate(addScorePrefab, parent.position + Vector3.up * 60, Quaternion.identity, parent);
|
||||
inst.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = CoinScript.NumAdd(item.Amount.ToString());
|
||||
// ⭐ 按 isLocalCoin 切金/银:优先用 ScoreNumScrollEvent,回退直接赋文本
|
||||
var scrollEvent = inst.GetComponent<ScoreNumScrollEvent>();
|
||||
if (scrollEvent != null)
|
||||
{
|
||||
scrollEvent.SetScoreStyle(isLocalCoin);
|
||||
scrollEvent.SetScoreText(CoinScript.NumAdd(item.Amount.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
inst.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = CoinScript.NumAdd(item.Amount.ToString());
|
||||
}
|
||||
AudioManager.Instance.PlayerFX(61009);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user