This is the Lua for your UA:
Code:
local eSgtWolfCiv = GameInfoTypes["[COLOR="Red"]CIVILIZATION_YOUR_CIV_HERE[/COLOR]"]
function CitadelReplenishMoves(iPlayer, iUnit, iPlotX, iPlotY)
local pPlayer = Players[iPlayer]
if pPlayer:GetCivilizationType() == eSgtWolfCiv then
local pPlot = Map.GetPlot(iPlotX, iPlotY)
if pPlot:GetImprovementType() == GameInfoTypes["IMPROVEMENT_CITADEL"] then
local pUnit = pPlayer:GetUnitByID(iUnit)
local iExtraMoves = math.floor(pUnit:MaxMoves() / 2)
pUnit:ChangeMoves(iExtraMoves)
end
end
end
GameEvents.UnitSetXY.Add(CitadelReplenishMoves)
Change this to your civ's actual name.
This will make any unit gain half their maximum amount of movements when stepping on a Citadel tile; note, this might cause it to have more moves than their maximum [an unit with 4/4 moves uses it's first step to enter a citadel (3/4 moves), earning 2 moves(3/4 + 2); it's total is now 5/4].
If you need something different, specify and it shall be done.
EDIT:
You better test this code before launching, because I never used the MaxMoves() method, I don't know if it returns the real value of the movement (a multiple of 60) or the amount displayed in the Unit panel.
EDIT2: Ok, just took a quick look at the UnitPanel.lua, MaxMoves() returns the correct amount. The code is good to go!