123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System;
- using System.Collections.Generic;
- namespace ET.Server
- {
- [FriendOf(typeof (MapReliveTimeComponent))]
- public static class MapReliveTimeComponentSystem
- {
- public class MapReliveTimeComponentAwakeSystem: AwakeSystem<MapReliveTimeComponent>
- {
- protected override void Awake(MapReliveTimeComponent self)
- {
- Log.Info($"创建单位玩家复活组件...");
- self.ReliveDatas = new List<Struct.UnitPlayerReliveData>();
- }
- }
- public class MapReliveTimeComponentUpdateSystem: UpdateSystem<MapReliveTimeComponent>
- {
- protected override void Update(MapReliveTimeComponent self)
- {
- if (self.ReliveDatas.Count <= 0)
- {
- return;
- }
- for (int i = self.ReliveDatas.Count - 1; i >= 0; i--)
- {
- Struct.UnitPlayerReliveData data = self.ReliveDatas[i];
- if (data == null)
- {
- continue;
- }
- if (TimeHelper.ServerNow() < data.ReliveTime)
- {
- continue;
- }
-
- Struct.MonsterUnit unit = new Struct.MonsterUnit();
- unit.id = data.ID;
- unit.force = 1;
- unit.x = data.x;
- unit.y = data.y;
- unit.autoGuard = true;
- int objId = data.Map.AddUnits(unit, false).GetResult();
- if (objId > 0 && !data.Map.UnitObjIds.Contains(objId) && !data.Map.IsGameOver())
- {
- data.Map.UnitObjIds.Add(objId);
- }
- self.ReliveDatas.Remove(data);
- }
- }
- }
- }
- }
|