local UISlgGvEMiniMap = UIViewClass() local DISTANCE_OFFSET = 5 function UISlgGvEMiniMap:OnOpened(context) local bgWidth, bgHeight = self.root_MiniMap.transform:GetSizeDelta() self.scaleRate_X = bgWidth / CTL.SlgGvE.MiniMap_WIDTH self.scaleRate_Y = bgHeight / CTL.SlgGvE.MiniMap_HEIGHT local x, y = UTL.SLG.PositionToUnitUIPosition(MDL.SlgGvE.GRID_SIZE / 2, MDL.SlgGvE.GRID_SIZE / 2) self.middlePosX = x self.middlePosY = y UIUtils.SetLocalPosition(self.item_pos, self:GetItemPosition(context.gridIndex)) --城池地块 self.eliteBossGrids = {} MDL.SlgGvE.CollectEliteBossGrids(self.eliteBossGrids) local templateObj = self.group_Item.gameObject for i, v in ipairs(self.eliteBossGrids) do local item = self:InstantiateCollection(self.item_boss, templateObj) local gridCfg = DataSheetManager.SlgGvEPlotData:GetDataByGveMapID(v.gveMapID) if gridCfg.GveMapType == MDL.SlgGvE.GridType.Boss then item.state_image:SetState(1) UIUtils.SetImageByAssetBundle(item.img_HeroHeadBg02, gridCfg.CityIcon) else item.state_image:SetState(0) UIUtils.SetImageByAssetBundle(item.img_HeroHeadBg, gridCfg.CityIcon) end UIUtils.SetLabelText(item.lab_Explain, Const_IDS[gridCfg.GveMapName]) local index = MDL.SlgGvE.GetEliteBossGridIndex(v.gveMapID) UIUtils.SetLocalPosition(item.gameObject, self:GetItemPosition(index)) end --自己占领地块 local imageObj = self.image_Occupied.gameObject for index, _ in MDL.SlgGvE.PairsMyOccupyGridInfo() do local item = TK2API.InstantiateObject(imageObj, self.item_occupied, false) UIUtils.SetLocalPosition(item, self:GetItemPosition(index)) end end function UISlgGvEMiniMap:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UISlgGvEMiniMap:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() elseif comp == self.event_Explain then UIManager.OpenView(Const_UI_Lua.UIEnum.UISlgGvEIllustrate) end end function UISlgGvEMiniMap:GetItemPosition(index) local x, y = UTL.SLG.IndexToPosition(index) local posX, posY = UTL.SLG.PositionToUnitUIPosition(x, y) return (posX - self.middlePosX + DISTANCE_OFFSET) * self.scaleRate_X, (posY - self.middlePosY) * self.scaleRate_Y, 0 end return UISlgGvEMiniMap