This commit is contained in:
2026-04-23 17:24:31 +08:00
parent c5d933dcad
commit cdcfa7eee9
10 changed files with 179 additions and 220 deletions
@@ -189,6 +189,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
private NativeArray<float> frequencies;
private NativeArray<int> shouldSpawn;
public GameObject dieFXPrefab;
public GameObject dieFXPrefabAward;
private List<RoomFishDetailConfig> spawnList; // 当前房间的鱼配置
private Dictionary<string, RoomFishDetailConfig> spawnDic; // 当前房间的鱼配置
Dictionary<FishTypeEnum, List<RoomFishDetailConfig>> fishTypeConfig;//当前房间鱼类型配置列表
@@ -379,11 +380,13 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
{
result.Add(rand.Next(min, max)); // max 是开区间
}
return result.ToList();
}
/// <summary>
/// 检测是否创建鱼(主线程执行,负责生成鱼对象)
/// </summary>
private void Update()
{
if (spawnList == null)
@@ -417,14 +420,14 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
{
list.Add(item);
}
//list[Random.Range(0, c.Count)].isCreate = 2;
foreach (var item in list)
{
if (item.fishNumber == 13029.ToString())
{
item.isCreate = 2;
}
}
list[Random.Range(0, list.Count)].isCreate = 2;
//foreach (var item in list)
//{
// if (item.fishNumber == 13029.ToString())
// {
// item.isCreate = 2;
// }
//}
}
boss = 25;
}
@@ -542,6 +545,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
}
}
#region 创建鱼
public void CreateFish(SyncGameData syncGameData)
{
//if (syncGameData.sitPos == GameManager.Instance.gameData.roomJoinNotice.position)
@@ -844,6 +848,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
#endregion
public void EnterRoom(GameTypeEnum gameType)
{
InitSpawnSystem(gameType);
@@ -875,6 +880,83 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
break;
}
}
#region 杀鱼
/// <summary>
/// 随机杀死count条小鱼/黄金鱼
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public List<string> SyncGameData_SendRendromDieFishID(int count)
{
List<string> list = new List<string>();
List<string> templist = new List<string>();
templist.AddRange(fishDatas_hashCodekey_Small.Keys);
if (fishDatas_hashCodekey_Small.Count < count)
{
foreach (var item in fishDatas_hashCodekey_Small)
{
list.Add(item.Key);
}
}
else
{
for (int i = 0; i < count; i++)
{
int index = Random.Range(0, templist.Count);
list.Add(templist[index]);
templist.RemoveAt(index);
}
}
{
int posID=0;
switch (GameManager.Instance.gameData.currGameType)
{
case GameType.JQQD:
break;
case GameType.defaultPanel:
break;
case GameType.FLZY:
posID = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelFLZY).currSitData.posID;
break;
case GameType.TGXX:
posID = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelTGXX).currSitData.posID;
break;
case GameType.ZGXQ:
break;
case GameType.XJMH:
posID = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelXJMH).currSitData.posID;
break;
case GameType.HHWK:
posID = UIManager.Instance.Get<GameMainPanel_FishBase>(UIPanel.MainGamePanelHHWK).currSitData.posID;
break;
default:
break;
}
SyncGameData sgd = new SyncGameData
{
sitPos = posID,
frameType = FrameDataType.changeAutoTarget,
time = BeijingTimeManager.Instance.CurrentTimestampMs,
frameData = new FrameData_RandomDieFish
{
guids = list
}
};
WebSocketSendList.SyncGameData(sgd);
}
return list;
}
public void Id_DieFish_NotFX(string fishId)
{
if (fishDatas_hashCodekey.ContainsKey(fishId))
@@ -892,6 +974,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
AudioManager.Instance.PlayerFX(60004);
var monster = fishDatas_hashCodekey[fishId];
Instantiate(monster.effect_Die == null ? dieFXPrefab : monster.effect_Die, monster.transform.position, Quaternion.identity, transform.parent);
//award效果
//Instantiate(monster.effect_DieAward == null ? dieFXPrefabAward : monster.effect_DieAward, monster.transform.position, Quaternion.identity, transform.parent);
MonsterDieList.Instance.SmallHuangYiHuang(monster.transform.position, monster.monsterData.fishTypeConfig.fishNumber, 1000);
//Destroy(monster.gameObject);
monster.DieFish();
@@ -913,18 +999,6 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
}
public void SyncGameData_SendRendromDieFishID(int count)
{
List<string> list = new List<string>();
if (fishDatas_hashCodekey_Small.Count<count)
{
foreach (var item in fishDatas_hashCodekey_Small)
{
list.Add(item.Key);
}
}
}
public void Id_DieListFish_FX(List<string> ids)
{
@@ -994,6 +1068,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
}
#endregion
}