This commit is contained in:
2026-05-02 23:52:48 +08:00
parent 8a4e082e6c
commit 8dbcbd17b5
24 changed files with 9751 additions and 16747 deletions
+216 -81
View File
@@ -1,125 +1,260 @@
using Assets.MyGame.Scripts.Net.API;
using Spine.Unity;
//using Assets.MyGame.Scripts.Net.API;
//using Spine.Unity;
//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Linq;
//using TMPro;
//using Unity.VisualScripting;
//using UnityEngine;
//using UnityEngine.UI;
//public class SitPosData : MonoBehaviour
//{
// [Header("用户id")]
// public string user;
// [Header("座位id")]
// public int posID;
// [Header("金币")]
// public TextMeshProUGUI tMP_TurretConsumeNum;
// public TextMeshProUGUI tMP_GoldNum;
// public Button btn_TurretAdd;
// public Button btn_TurretMinus;
// public long goldNum;
// public long consumeGoldNum;
// [Header("炮台")]
// public Dictionary<string, TurretData> dic_Turrets=new Dictionary<string, TurretData>();
// public List<TurretData> list_Turrets=new List<TurretData>();
// public int currentTurretIndex = 0;
// public string currentTurretID = "";
// public TurretData currentTurret;
// [Header("锁定")]
// public MonsterContral monCotl_Lock;
// public Transform monCotl_Lock_Position;
// public bool isLock=false;
// public GameObject lockFX;
// [Header("当前炮塔")]
// public Transform tra_CurrTurret;
// public Transform tra_CurrFly; //星际迷航特有
// public GameObject changeTurretList;
// public Action<TurretState> OnStateChange;
// public void ChangeState(TurretState state)
// {
// OnStateChange?.Invoke(state);
// }
// public void Awake()
// {
// //list_Turrets.Sort((td1,td2) =>
// //{
// // return td1.turretID.CompareTo(td2.turretLevel);
// //});
// dic_Turrets = list_Turrets.ToDictionary(td => td.turretID);
// btn_TurretAdd.onClick.AddListener(() =>
// {
// ChangeTurretAddConsumeNum(1000);
// });
// btn_TurretMinus.onClick.AddListener(() =>
// {
// ChangeTurretMinusConsumeNum(1000);
// });
// }
// public void Update()
// {
// }
// public void ChangeTurret(int n=0)
// {
// if (currentTurretIndex>list_Turrets.Count|| currentTurretIndex<0)
// {
// //currentTurretIndex = currentTurretIndex;
// }
// else
// {
// currentTurretIndex = n;
// }
// if (currentTurret != null)
// {
// currentTurret.gameObject.SetActive(false);
// }
// currentTurretID = list_Turrets[currentTurretIndex].turretID; //dic_Turrets[currentTurretID];
// currentTurret=dic_Turrets[currentTurretID];
// currentTurret.gameObject.SetActive(true);
// // ⭐ 关键:把状态机入口绑定到当前炮台
// OnStateChange = currentTurret.ChangeState;
// gameObject.SetActive(true);
// tra_CurrTurret =currentTurret.transform.GetChild(0);
// tra_CurrFly = currentTurret.transform.GetChild(1);
// }
// public void ChangeTurretConsumeNum(int n = 0)
// {
// consumeGoldNum = n;
// tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
// }
// public void ChangeTurretAddConsumeNum(int n = 0)
// {
// consumeGoldNum += n;
// tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
// }
// public void ChangeTurretMinusConsumeNum(int n = 0)
// {
// consumeGoldNum -= n;
// tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
// }
// public bool ConsumeGold(int bl=1)
// {
// long temp = goldNum - consumeGoldNum*bl;
// if (temp > 0)
// {
// goldNum = temp;
// tMP_GoldNum.text = goldNum.ToString();
// return true;
// }
// return false;
// }
//}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class SitPosData : MonoBehaviour
{
[Header("用户id")]
// -------------------------
// 玩家信息
// -------------------------
public string user;
[Header("座位id")]
public int posID;
[Header("金币")]
public long goldNum;
public long consumeGoldNum;
public TextMeshProUGUI tMP_TurretConsumeNum;
public TextMeshProUGUI tMP_GoldNum;
public Button btn_TurretAdd;
public Button btn_TurretMinus;
public long goldNum;
public long consumeGoldNum;
[Header("炮台")]
public Dictionary<string, TurretData> dic_Turrets=new Dictionary<string, TurretData>();
public List<TurretData> list_Turrets=new List<TurretData>();
// -------------------------
// 炮台管理
// -------------------------
public List<TurretData> list_Turrets = new List<TurretData>();
public Dictionary<string, TurretData> dic_Turrets = new Dictionary<string, TurretData>();
public int currentTurretIndex = 0;
public string currentTurretID = "";
public TurretData currentTurret;
[Header("锁定")]
// 状态机入口(GameMainPanel 调用)
public Action<TurretState> OnStateChange;
// -------------------------
// 炮台旋转
// -------------------------
public Transform tra_CurrTurret;
public float currentAngle;
// -------------------------
// 锁定系统
// -------------------------
public MonsterContral monCotl_Lock;
public Transform monCotl_Lock_Position;
public bool isLock=false;
public bool isLock;
public GameObject lockFX;
[Header("当前炮塔")]
public SkeletonGraphic skeletonAnimation;
public Animation old_CurrAnimation;
public Transform tra_CurrTurret;
public Transform tra_CurrFly; //星际迷航特有
// -------------------------
// UI
// -------------------------
public Button btn_TurretAdd;
public Button btn_TurretMinus;
public GameObject changeTurretList;
public void Awake()
private void Awake()
{
//list_Turrets.Sort((td1,td2) =>
//{
// return td1.turretID.CompareTo(td2.turretLevel);
//});
dic_Turrets = list_Turrets.ToDictionary(td => td.turretID);
btn_TurretAdd.onClick.AddListener(() =>
{
ChangeTurretAddConsumeNum(1000);
});
btn_TurretMinus.onClick.AddListener(() =>
{
ChangeTurretMinusConsumeNum(1000);
dic_Turrets = list_Turrets.ToDictionary(t => t.turretID);
});
btn_TurretAdd.onClick.AddListener(() => ChangeTurretAddConsumeNum(1000));
btn_TurretMinus.onClick.AddListener(() => ChangeTurretMinusConsumeNum(1000));
}
public void Update()
// -------------------------
// 切换炮台
// -------------------------
public void ChangeTurret(int index)
{
}
public void ChangeTurret(int n=0)
{
if (currentTurretIndex>list_Turrets.Count|| currentTurretIndex<0)
{
//currentTurretIndex = currentTurretIndex;
}
else
{
currentTurretIndex = n;
}
if (currentTurret != null)
{
currentTurret.gameObject.SetActive(false);
}
currentTurretID = list_Turrets[currentTurretIndex].turretID; //dic_Turrets[currentTurretID];
currentTurret=dic_Turrets[currentTurretID];
currentTurretIndex = Mathf.Clamp(index, 0, list_Turrets.Count - 1);
currentTurret = list_Turrets[currentTurretIndex];
currentTurret.gameObject.SetActive(true);
// 绑定状态机入口
OnStateChange = currentTurret.ChangeState;
gameObject.SetActive(true);
tra_CurrTurret =currentTurret.transform.GetChild(0);
tra_CurrFly = currentTurret.transform.GetChild(1);
skeletonAnimation = currentTurret.obj_Animation.GetComponent<SkeletonGraphic>();
old_CurrAnimation = currentTurret.obj_Animation.GetComponent<Animation>();
// 缓存旋转点
tra_CurrTurret = currentTurret.transform.GetChild(0);
}
public void ChangeTurretConsumeNum(int n = 0)
// -------------------------
// 切换状态(GameMainPanel 调用)
// -------------------------
public void ChangeState(TurretState state)
{
consumeGoldNum = n;
tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
OnStateChange?.Invoke(state);
}
public void ChangeTurretAddConsumeNum(int n = 0)
// -------------------------
// 炮台旋转
// -------------------------
public void SetRotation(float angle)
{
currentAngle = angle;
tra_CurrTurret.rotation = Quaternion.Euler(0, 0, angle);
}
// -------------------------
// 获取发射点(给 GameMainPanel)
// -------------------------
public Vector2 GetBulletStartPos()
{
return currentTurret.GetBulletStartWorldPos();
}
// -------------------------
// 金币消耗
// -------------------------
public bool ConsumeGold(int mul = 1)
{
long temp = goldNum - consumeGoldNum * mul;
if (temp < 0) return false;
goldNum = temp;
tMP_GoldNum.text = goldNum.ToString();
return true;
}
public void ChangeTurretAddConsumeNum(int n)
{
consumeGoldNum += n;
tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
}
public void ChangeTurretMinusConsumeNum(int n = 0)
public void ChangeTurretMinusConsumeNum(int n)
{
consumeGoldNum -= n;
tMP_TurretConsumeNum.text = consumeGoldNum.ToString();
}
public bool ConsumeGold(int bl=1)
{
long temp = goldNum - consumeGoldNum*bl;
if (temp > 0)
{
goldNum = temp;
tMP_GoldNum.text = goldNum.ToString();
return true;
}
return false;
}
}