去除反序列化联盟的重绑定

This commit is contained in:
wuwenbo 2026-05-29 14:57:22 +08:00
parent a9e469c2bc
commit e1e8f89135

View File

@ -111,6 +111,12 @@ namespace RuntimeData
SetSinglePlayerCiv(civId, forceId);
}
public MapConfig CreateRuntimeCopy()
{
var bytes = MemoryPackSerializer.Serialize(this);
return MemoryPackSerializer.Deserialize<MapConfig>(bytes);
}
// MemoryPack 反序列化之后的后处理
[MemoryPackOnDeserialized]
public void OnAfterMemoryPackDeserialize()
@ -1985,10 +1991,10 @@ namespace RuntimeData
public MapData(MapConfig mapCfg, NetMode netMode)
{
MapID = (uint)Guid.NewGuid().GetHashCode();
MapConfig = mapCfg;
MapConfig = mapCfg.CreateRuntimeCopy();
_idGenerator = new MapIdGenerator();
GridMap = new GridMapData(mapCfg, _idGenerator);
GridMap = new GridMapData(MapConfig, _idGenerator);
PlayerMap = new PlayerMapData(this, _idGenerator, netMode);
CityMap = new CityMapData();
UnitMap = new UnitMapData();
@ -2001,7 +2007,7 @@ namespace RuntimeData
CityToGridDict = new Dictionary<uint, uint>();
_gridToCityDict = new Dictionary<uint, uint>();
_gridToUnitDict = new Dictionary<uint, uint>();
MatchSettlement.Init(this, mapCfg);
MatchSettlement.Init(this, MapConfig);
}
public MapData(MapData copyMap)
@ -2102,7 +2108,6 @@ namespace RuntimeData
action.Param.MapData = this;
action.Param.RefreshParams();
}
MapConfig?.ApplyTeamDiplomacy(this);
}
// 当场上有小兵受伤前