idol.lua 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. if UiContainer == nil then UiContainer = {} end
  2. UiContainer.Idol = {
  3. picture_number = 8,
  4. picture_state = {},
  5. picture_animation_number = 3,
  6. picture_current = 4,
  7. on_start = function( self )
  8. --script:request( Script.UI, "Idol", "show", 0 )
  9. for i = 1, self.picture_number, 1 do
  10. self.picture_state[ i ] = {}
  11. self.picture_state[ i ].animation = math.random ( 1, self.picture_animation_number )
  12. if i == self.picture_current then
  13. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "RightToCenter" .. self.picture_state[ i ].animation, -1, -1 )
  14. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0 )
  15. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( true )
  16. elseif i > self.picture_current then
  17. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "RightToCenter" .. self.picture_state[ i ].animation, 0, 0 )
  18. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( i - self.picture_current ) )
  19. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  20. else
  21. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "CenterToLeft" .. self.picture_state[ i ].animation, -1, -1 )
  22. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( self.picture_current - i ) )
  23. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  24. end
  25. end
  26. return 0
  27. end,
  28. on_button = function( self, button, event )
  29. if ui_manager:get_widget( "Idol" ):is_visible() ~= false then
  30. if button == "Escape" and event == "Press" then
  31. script:request_end_sync( Script.UI, "Idol", "hide", 0 )
  32. script:request_end_sync( Script.UI, "BeginMenu", "show", 0 )
  33. elseif button == "Left" then
  34. if self.picture_current < self.picture_number then
  35. ui_manager:get_widget( "Idol.ArrowLeft" ):play_animation( "Press" )
  36. self.picture_current = self.picture_current + 1
  37. if self.picture_current == self.picture_number then
  38. ui_manager:get_widget( "Idol.ArrowLeft" ):set_colour( 0.5, 0.5, 0.5 )
  39. ui_manager:get_widget( "Idol.ArrowLeft" ):set_alpha( 0.5 )
  40. end
  41. ui_manager:get_widget( "Idol.ArrowRight" ):set_colour( 1, 1, 1 )
  42. ui_manager:get_widget( "Idol.ArrowRight" ):set_alpha( 1 )
  43. for i = 1, self.picture_number, 1 do
  44. if i == self.picture_current then
  45. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "RightToCenter" .. self.picture_state[ i ].animation )
  46. elseif i == self.picture_current - 1 then
  47. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "CenterToLeft" .. self.picture_state[ i ].animation )
  48. end
  49. if i == self.picture_current then
  50. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0 )
  51. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( true )
  52. elseif i > self.picture_current then
  53. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( i - self.picture_current ) )
  54. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  55. else
  56. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( self.picture_current - i ) )
  57. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  58. end
  59. end
  60. ui_manager:get_widget( "Idol.Picture" .. self.picture_current ):animation_sync()
  61. end
  62. elseif button == "Right" then
  63. if self.picture_current > 1 then
  64. ui_manager:get_widget( "Idol.ArrowRight" ):play_animation( "Press" )
  65. self.picture_current = self.picture_current - 1
  66. if self.picture_current == 1 then
  67. ui_manager:get_widget( "Idol.ArrowRight" ):set_colour( 0.5, 0.5, 0.5 )
  68. ui_manager:get_widget( "Idol.ArrowRight" ):set_alpha( 0.5 )
  69. end
  70. ui_manager:get_widget( "Idol.ArrowLeft" ):set_colour( 1, 1, 1 )
  71. ui_manager:get_widget( "Idol.ArrowLeft" ):set_alpha( 1 )
  72. for i = 1, self.picture_number, 1 do
  73. if i == self.picture_current then
  74. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "LeftToCenter" .. self.picture_state[ i ].animation )
  75. elseif i == self.picture_current + 1 then
  76. ui_manager:get_widget( "Idol.Picture" .. i ):play_animation_stop( "CenterToRight" .. self.picture_state[ i ].animation )
  77. end
  78. if i == self.picture_current then
  79. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0 )
  80. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( true )
  81. elseif i > self.picture_current then
  82. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( i - self.picture_current ) )
  83. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  84. else
  85. ui_manager:get_widget( "Idol.Picture" .. i ):set_z( 0.01 * ( self.picture_current - i ) )
  86. ui_manager:get_widget( "Idol.Name" .. i ):set_visible( false )
  87. end
  88. end
  89. ui_manager:get_widget( "Idol.Picture" .. self.picture_current ):animation_sync()
  90. end
  91. end
  92. end
  93. return 0
  94. end,
  95. show = function( self )
  96. ui_manager:get_widget( "Idol" ):set_visible( true )
  97. return 0;
  98. end,
  99. hide = function( self )
  100. ui_manager:get_widget( "Idol" ):set_visible( false )
  101. return 0;
  102. end,
  103. }