function main(self)
	local claw = GetClaw()
	if self.State == 0 then
		self.MoveRect = {-60,-8,64,0}
		self.AttackRect = {-60,-8,64,0}
		self.HitRect = {-60,-8,64,0}
		self.ObjectTypeFlags = ObjectType.Special
		self.Flags.AlwaysActive = true
		self:SetImage("CUSTOM_ELEVATORLONG")
		self.StartingX = self.X
		self.State = 1
	end
	if self.State == 1 then
		self.X = self.X + 1
		if self:IsBelow(claw) then
			self.MoveClawX = 1
		end
		if self.X >= self.StartingX + 192 then
			self.State = 2
		end
	end
	if self.State == 2 and self:IsBelow(claw) then
		self.X = self.X + 4
		self.MoveClawX = 4
	end
	if self.State == 2 and not self:IsBelow(claw) then
		self.State = 3
	end
	if self.State == 3 and self:IsBelow(claw) then
		self.State = 2
	end
	
	-- Triggered by changing State to 4 in Arcanis logic:
	if self.State == 4 or self.State == 5 then
		self.X = self.X + 2
	end
	if self.State == 4 and self:IsBelow(claw) then
		self.MoveClawX = 2
	end
	if self.State == 4 and not self:IsBelow(claw) then
		self.State = 5
	end
	if self.State == 5 and self:IsBelow(claw) then
		self.State = 4
	end
end
  