public void HandleTroopDeployedEvent(object cookie) { SmartEntity smartEntity = (SmartEntity)cookie; TroopComponent troopComp = smartEntity.TroopComp; if (troopComp == null) { return; } TransformComponent transformComp = smartEntity.TransformComp; if (transformComp == null) { return; } TroopPlacedAction troopPlacedAction = new TroopPlacedAction(); troopPlacedAction.Time = this.GetActionTime(); troopPlacedAction.TroopId = troopComp.TroopType.Uid; troopPlacedAction.BoardX = transformComp.CenterGridX(); troopPlacedAction.BoardZ = transformComp.CenterGridZ(); TeamComponent teamComp = smartEntity.TeamComp; troopPlacedAction.TeamType = teamComp.TeamType; this.battleRecord.Add(troopPlacedAction); }
private void TroopPlacedActionCallback(uint id, object cookie) { TroopPlacedAction troopPlacedAction = cookie as TroopPlacedAction; IDataController dataController = Service.Get <IDataController>(); TroopTypeVO troopTypeVO = dataController.Get <TroopTypeVO>(troopPlacedAction.TroopId); IntPosition boardPosition = new IntPosition(troopPlacedAction.BoardX, troopPlacedAction.BoardZ); Service.Get <TroopController>().SpawnTroop(troopTypeVO, troopPlacedAction.TeamType, boardPosition, (troopPlacedAction.TeamType == TeamType.Defender) ? TroopSpawnMode.LeashedToBuilding : TroopSpawnMode.Unleashed, true); this.battleController.OnTroopDeployed(troopTypeVO.Uid, troopPlacedAction.TeamType, boardPosition); }