local empire = pc . get_empire ( ) 
local max_use = item . get_value ( 0 ) 
local n = item . get_socket ( 0 ) 
if n >= max_use then 
say ( gameforge . ring_warp . _010_say ) 
return 
end 
local t = item . get_socket ( 1 ) 
if t > get_global_time ( ) then 
say ( string . format ( gameforge . ring_warp . _020_say , ( t - get_global_time ( ) ) / 60 ) ) 
return 
end 
say ( string . format ( gameforge . ring_warp . _030_say , max_use - n ) ) 
local sub_set = 0 
local town1 = { 
gameforge . functions . _100_say , 
gameforge . functions . _110_say , 
gameforge . functions . _120_say , 
} 
local town2 = { 
gameforge . functions . _130_say , 
gameforge . functions . _140_say , 
gameforge . functions . _150_say , 
} 
sub_set = select ( town1 [ empire ] , town2 [ empire ] , locale . map_name [ 64 ] , locale . map_name [ 63 ] , locale . map_name [ 61 ] , locale . map_name [ 62 ] , gameforge . locale . cancel ) 
if sub_set == 7 then 
return 
end 
local warp = { 
{ 
{ 474300 , 954800 } , 
{ 63800 , 166400 } , 
{ 959900 , 269200 } , 
} , 
{ 
{ 353100 , 882900 } , 
{ 145500 , 240000 } , 
{ 863900 , 246000 } , 
} , 
{ 
{ 402100 , 673900 } , 
{ 270400 , 739900 } , 
{ 321300 , 808000 } , 
} , 
{ 
{ 217800 , 627200 } , 
{ 221900 , 502700 } , 
{ 344000 , 502500 } , 
} , 
{ 
{ 434200 , 290600 } , 
{ 375200 , 174900 } , 
{ 491800 , 173600 } , 
} , 
{ 
{ 599400 , 756300 } , 
{ 597800 , 622200 } , 
{ 730700 , 689800 } , 
} , 
} 
if not pc . warp ( warp [ sub_set ] [ empire ] [ 1 ] , warp [ sub_set ] [ empire ] [ 2 ] ) then 
return 
end 
item . set_socket ( 1 , get_global_time ( ) + item . get_value ( 1 ) ) 
if n == max_use - 1 then 
item . remove ( ) 
else 
item . set_socket ( 0 , n + 1 ) 
end 
