|
@@ -26,7 +26,10 @@ namespace ET.Server
|
|
|
self.MapId = Convert.ToInt32(opts.SelectToken("areaId"));
|
|
|
self.Prop = MapConfigCategory.Instance.Get(self.MapId);
|
|
|
self.Type = self.Prop.Type;
|
|
|
- self.UnitObjIds = new List<int>();
|
|
|
+ self.UnitPlayers = new Dictionary<string, int>();
|
|
|
+ self.UnitObjIds = new Dictionary<string, int>();
|
|
|
+ self.UnitPlayerLikes = new Dictionary<string, int>();
|
|
|
+
|
|
|
|
|
|
self.AddComponent<MapEventComponent>();
|
|
|
|
|
@@ -153,37 +156,43 @@ namespace ET.Server
|
|
|
}
|
|
|
|
|
|
|
|
|
- public static async ETTask<int> AddUnits(this Map self, string instanceId, string data)
|
|
|
+ public static async ETTask<int> AddUnits(this Map self, List<Struct.MonsterUnit> data, bool needReturn)
|
|
|
{
|
|
|
- await ETTask.CompletedTask;
|
|
|
- return self.GetXmdsManager().addUnits(instanceId, data);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static async ETTask<int> AddUnits(this Map self, Struct.MonsterUnit unit, bool needReturn)
|
|
|
- {
|
|
|
- List<Struct.MonsterUnit> listData = new List<Struct.MonsterUnit>();
|
|
|
- listData.Add(unit);
|
|
|
+ if (data.Count <= 0)
|
|
|
+ {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
int addUnitsResult = 0;
|
|
|
- int objId = 0;
|
|
|
|
|
|
if (needReturn) {
|
|
|
- addUnitsResult = self.GetXmdsManager().addUnits(self.Id.ToString().Trim(), JsonConvert.SerializeObject(listData, Formatting.Indented));
|
|
|
- Log.Info($"addUnits needReturn : mapId={self.MapId}, instanceId={self.Id.ToString().Trim()}, data={listData}, add units result={addUnitsResult}");
|
|
|
+ addUnitsResult = self.GetXmdsManager().addUnits(self.Id.ToString().Trim(), JsonConvert.SerializeObject(data, Formatting.Indented));
|
|
|
+ Log.Info($"addUnits needReturn : mapId={self.MapId}, instanceId={self.Id.ToString().Trim()}, data={data}, add units result={addUnitsResult}");
|
|
|
} else
|
|
|
{
|
|
|
- objId = await self.AddUnits(self.Id.ToString().Trim(), JsonConvert.SerializeObject(listData, Formatting.Indented));
|
|
|
+ int objId = self.GetXmdsManager().addUnits(self.Id.ToString().Trim(), JsonConvert.SerializeObject(data, Formatting.Indented));
|
|
|
Log.Info($"addUnits: mapId={self.MapId}, instanceId={self.Id.ToString().Trim()}, objId={objId}");
|
|
|
}
|
|
|
|
|
|
- return objId;
|
|
|
+ await ETTask.CompletedTask;
|
|
|
+ return addUnitsResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static async ETTask<int> AddUnits(this Map self, Struct.MonsterUnit data, bool needReturn)
|
|
|
+ {
|
|
|
+ List<Struct.MonsterUnit> listData = new List<Struct.MonsterUnit>();
|
|
|
+ listData.Add(data);
|
|
|
+ return await self.AddUnits(listData, needReturn);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public static async ETTask RemoveUnit(this Map self, int unitId)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static async ETTask RemovePointUnit(this Map self, int objectId)
|
|
|
{
|
|
|
- self.GetXmdsManager().removeUnit(self.Id.ToString().Trim(), unitId);
|
|
|
+ self.GetXmdsManager().removePointUnit(self.Id.ToString().Trim(), objectId);
|
|
|
await ETTask.CompletedTask;
|
|
|
}
|
|
|
|
|
@@ -212,5 +221,93 @@ namespace ET.Server
|
|
|
{
|
|
|
return self.IsGameOver;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static void AddUnitObjId(this Map self, string openId, int objId)
|
|
|
+ {
|
|
|
+ if (objId <= 0 || self.IsGameOver())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!self.UnitObjIds.TryAdd(openId, objId))
|
|
|
+ {
|
|
|
+ self.UnitObjIds[openId] = objId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static int GetUnitObjId(this Map self, string openId)
|
|
|
+ {
|
|
|
+ if (self.UnitObjIds.TryGetValue(openId, out int objId))
|
|
|
+ {
|
|
|
+ return objId;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static void AddUnitPlayer(this Map self, string openId, int templateId)
|
|
|
+ {
|
|
|
+ if (templateId <= 0 || self.IsGameOver())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!self.UnitPlayers.TryAdd(openId, templateId))
|
|
|
+ {
|
|
|
+ self.UnitPlayers[openId] = templateId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static int GetUnitTemplateId(this Map self, string openId)
|
|
|
+ {
|
|
|
+ if (self.UnitPlayers.TryGetValue(openId, out int templateId))
|
|
|
+ {
|
|
|
+ return templateId;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static string GetCurXY(this Map self)
|
|
|
+ {
|
|
|
+ return self.DeadUnits.Count switch
|
|
|
+ {
|
|
|
+
|
|
|
+ 0 => "230;85",
|
|
|
+
|
|
|
+ 1 when self.DeadUnits.Contains(1001) => "150;85",
|
|
|
+
|
|
|
+ 2 when self.DeadUnits.Contains(1001) && self.DeadUnits.Contains(1002) => "70;85",
|
|
|
+ _ => "230;85"
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
}
|