#==============================================================================
# ý¡ Window_RingMenu
#==============================================================================
#==============================================================================
# Edited by MakirouAru
# 3D Version by Deblu
#==============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# ý: ’N’0’X'èý"
#--------------------------------------------------------------------------
# Grafiktyp: Grafiken oder Icons?
grafik_typ = "i" # p = Pictures, i = Icons
# Die Dateinamen (ohne Dateiendung)
grafik_gegenstaende = "034-Item03"
grafik_faehigkeiten = "044-Skill01"
grafik_ausruestung = "001-Weapon01"
grafik_status = "050-Skill07"
grafik_speichern = "038-Item07"
grafik_beenden = "046-Skill03"
STARTUP_FRAMES = 20 # ý0`ú’A’j’ýý[’V’!’"Ì’t’Rý[’¬ý"
MOVING_FRAMES = 5   # ’`’"’O 0ñµ½}~Ì’t’Rý[’¬ý"
RING_R = 256         # ’`’"’OÌ"¼Ra
if grafik_typ == "i"
  PIC_ITEM   = RPG:

ache.icon(grafik_gegenstaende) # ýu’A’C’e’¬ýv’ý’j’&ý[Ì’A’C’R’"
  PIC_SKILL  = RPG:

ache.icon(grafik_faehigkeiten) # ýu’X’L’9ýv’ý’j’&ý[Ì’A’C’R’"
  PIC_EQUIP  = RPG:

ache.icon(grafik_ausruestung) # ýu'""õýv’ý’j’&ý[Ì’A’C’R’"
  PIC_STATUS = RPG:

ache.icon(grafik_status) # ýu’X’eý[’^’Xýv’ý’j’&ý[Ì’A’C’R’"
  PIC_SAVE   = RPG:

ache.icon(grafik_speichern) # ýu’Zý[’uýv’ý’j’&ý[Ì’A’C’R’"
  PIC_EXIT   = RPG:

ache.icon(grafik_beenden) # ýuýI¹ýv’ý’j’&ý[Ì’A’C’R’"
else
  PIC_ITEM   = RPG:

ache.picture(grafik_gegenstaende) # ýu’A’C’e’¬ýv’ý’j’&ý[Ì’A’C’R’"
  PIC_SKILL  = RPG:

ache.picture(grafik_faehigkeiten) # ýu’X’L’9ýv’ý’j’&ý[Ì’A’C’R’"
  PIC_EQUIP  = RPG:

ache.picture(grafik_ausruestung) # ýu'""õýv’ý’j’&ý[Ì’A’C’R’"
  PIC_STATUS = RPG:

ache.picture(grafik_status) # ýu’X’eý[’^’Xýv’ý’j’&ý[Ì’A’C’R’"
  PIC_SAVE   = RPG:

ache.picture(grafik_speichern) # ýu’Zý[’uýv’ý’j’&ý[Ì’A’C’R’"
  PIC_EXIT   = RPG:

ache.picture(grafik_beenden) # ýuýI¹ýv’ý’j’&ý[Ì’A’C’R’"
end
PIC_DISABLE= RPG:

ache.icon("") # }gp9Ö}~ý¬ÚÉ"tA’C’R’"
SE_STARTUP = "056-Right02" # ’ý’j’&ý[ `J¢½Æ«ÉÂç·SE
MODE_START = 1 # ’X’^ý[’g’A’b’v’A’j’ýý[’V’!’"
MODE_WAIT  = 2 # 'Ò9@
MODE_MOVER = 3 # }~Rv0ñè0ñ"]’A’j’ýý[’V’!’"
MODE_MOVEL = 4 # "½}~Rv0ñè0ñ"]’A’j’ýý[’V’!’"
#--------------------------------------------------------------------------
# ý: ’A’N’Z’T
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# ýS ’I’u’W’F’N’gý0`ú0»
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
  super(0, 0, 640, 480)
  self.contents = Bitmap.new(width-32, height-32)
  self.contents.font.name = "Arial"
  self.opacity = 0
  self.back_opacity = 0
  s1 = "Gegenstände"
  s2 = "Fähigkeiten"
  s3 = "Ausrüstung"
  s4 = "Status"
  s5 = "Speichern"
  s6 = "Beenden"
  @commands = [ s1, s2, s3, s4, s5, s6 ]
  @item_max = 6
  @index = 0
  @items = [ PIC_ITEM, PIC_SKILL, PIC_EQUIP, PIC_STATUS, PIC_SAVE, PIC_EXIT ]
  @disabled = [ false, false, false, false, false, false ]
  @cx = center_x - 16
  @cy = center_y - 16
  setup_move_start
  refresh
end
#--------------------------------------------------------------------------
# ýS ’t’Rý[’¬ýXýV
#--------------------------------------------------------------------------
def update
  super
  refresh
end
#--------------------------------------------------------------------------
# ýS 0æÊýÄ"`0æ
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  # ’A’C’R’" "`0æ
  case @mode
  when MODE_START
    refresh_start
  when MODE_WAIT
    refresh_wait
  when MODE_MOVER
    refresh_move(1)
  when MODE_MOVEL
    refresh_move(0)
  end
  # ’A’N’e’B’uÈ’R’}’"’h¼"\}¦
  rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
  self.contents.draw_text(rect, @commands[@index],1)
end
#--------------------------------------------------------------------------
# ý: 0æÊýÄ"`0æ(ý0`ú0»}~)
#--------------------------------------------------------------------------
def refresh_start
  d1 = 2.0 * Math::PI / @item_max
  d2 = 1.0 * Math::PI / STARTUP_FRAMES
  r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
  for i in 0...@item_max
    j = i - @index
    d = d1 * j + d2 * @steps
    x = @cx + ( r * Math.sin( d ) ).to_i
    y = @cy - ( r/3 * Math.cos( d ) ).to_i
    draw_item(x, y, i)
  end
  @steps -= 1
  if @steps < 1
    @mode = MODE_WAIT
  end
end
#--------------------------------------------------------------------------
# ý: 0æÊýÄ"`0æ('Ò9@}~)
#--------------------------------------------------------------------------
def refresh_wait
  d = 2.0 * Math::PI / @item_max
  for i in 0...@item_max
    j = i - @index
    x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
    y = @cy - ( RING_R/3 * Math.cos( d * j ) ).to_i
    draw_item(x, y, i)
  end
end
#--------------------------------------------------------------------------
# ý: 0æÊýÄ"`0æ(0ñ"]}~)
#  mode : 0="½}~Rv0ñè 1=}~Rv0ñè
#--------------------------------------------------------------------------
def refresh_move( mode )
  d1 = 2.0 * Math::PI / @item_max
  d2 = d1 / MOVING_FRAMES
  d2 *= -1 if mode != 0
  for i in 0...@item_max
    j = i - @index
    d = d1 * j + d2 * @steps
    x = @cx + ( RING_R * Math.sin( d ) ).to_i
    y = @cy - ( RING_R/3 * Math.cos( d ) ).to_i
    draw_item(x, y, i)
  end
  @steps -= 1
  if @steps < 1
    @mode = MODE_WAIT
  end
end
#--------------------------------------------------------------------------
# ýS ý¬ÚÌ"`0æ
#     x : 
#     y : 
#     i : ý¬Ú"Ôý 
#--------------------------------------------------------------------------
def draw_item(x, y, i)
  #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
  rect = Rect.new(0, 0, @items[i].width, @items[i].height)
  if @index == i
    self.contents.blt( x, y, @items[i], rect )
    if @disabled[@index]
      self.contents.blt( x, y, ICON_DISABLE, rect )
    end
  else
    self.contents.blt( x, y, @items[i], rect, 128 )
    if @disabled[@index]
      self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
    end
  end
end
#--------------------------------------------------------------------------
# ýS ý¬Ú ³RøÉ·é
#     index : ý¬Ú"Ôý 
#--------------------------------------------------------------------------
def disable_item(index)
  @disabled[index] = true
end
#--------------------------------------------------------------------------
# ý: ý0`ú0»’A’j’ýý[’V’!’"Ìý¬"õ
#--------------------------------------------------------------------------
def setup_move_start
  @mode = MODE_START
  @steps = STARTUP_FRAMES
  if  SE_STARTUP != nil and SE_STARTUP != ""
    Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
  end
end
#--------------------------------------------------------------------------
# ý: 0ñ"]’A’j’ýý[’V’!’"Ìý¬"õ
#--------------------------------------------------------------------------
def setup_move_move(mode)
  if mode == MODE_MOVER
    @index -= 1
    @index = @items.size - 1 if @index < 0
  elsif mode == MODE_MOVEL
    @index += 1
    @index = 0 if @index >= @items.size
  else
    return
  end
  @mode = mode
  @steps = MOVING_FRAMES
end
#--------------------------------------------------------------------------
# ý: ’A’j’ýý[’V’!’"' ©Ç¤©
#--------------------------------------------------------------------------
def animation?
  return @mode != MODE_WAIT
end
end
#==============================================================================
# ý¡ Window_MenuStatus
#------------------------------------------------------------------------------
# ý@’ý’j’&ý[0æÊÅ’pý[’e’B’ý’"’oý[Ì’X’eý[’^’X "\}¦·é’E’B’"’h’EÅ·ýB
#==============================================================================
class Window_RingMenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ýS ’I’u’W’F’N’gý0`ú0»
#--------------------------------------------------------------------------
def initialize
  super(204, 64, 232, 352)
  self.contents = Bitmap.new(width - 32, height - 32)
  refresh
  self.active = false
  self.index = -1
end
#--------------------------------------------------------------------------
# ýS ’`’t’R’b’V’&
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  self.contents.font.name = "Arial"
  @item_max = $game_party.actors.size
  for i in 0...$game_party.actors.size
    x = 80
    y = 80 * i
    actor = $game_party.actors[i]
    draw_actor_graphic(actor, x - 40, y + 80)
    draw_actor_name(actor, x, y + 24)
  end
end
#--------------------------------------------------------------------------
# ýS ’Jý[’\’9Ì9éR`ýXýV
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index < 0
    self.cursor_rect.empty
  else
    self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
  end
end
end
#==============================================================================
# #ý¡ Scene_RingMenu
# ý¡ Scene_Menu
#------------------------------------------------------------------------------
# ý@’ý’j’&ý[0æÊÌýÆý ýs¤’N’0’XÅ·ýB
#==============================================================================
#class Scene_RingMenu
class Scene_Menu
#--------------------------------------------------------------------------
# ýS ’I’u’W’F’N’gý0`ú0»
#     menu_index : ’R’}’"’hÌ’Jý[’\’9ý0`úÆÊ'u
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
  @menu_index = menu_index
end
#--------------------------------------------------------------------------
# ýS ’ý’C’"ýÆý
#--------------------------------------------------------------------------
def main
  # ’X’v’0’C’g’Z’b’g ýìý¬
  @spriteset = Spriteset_Map.new
  # ’R’}’"’h’E’B’"’h’E ýìý¬
  px = $game_player.screen_x - 15
  py = $game_player.screen_y - 24
  @command_window = Window_RingMenu.new(px,py)
  @command_window.index = @menu_index
  # ’pý[’e’Býlý"ª 0 ýlÌýêý!
  if $game_party.actors.size == 0
    # ’A’C’e’¬ýA’X’L’9ýA'""õýA’X’eý[’^’X ³Rø0»
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
  end
  @command_window.z = 100
  # ’Zý[’u9Ö}~Ìýêý!
  if $game_system.save_disabled
    # ’Zý[’u ³RøÉ·é
    @command_window.disable_item(4)
  end
  # ’X’eý[’^’X’E’B’"’h’E ýìý¬
  @status_window = Window_RingMenuStatus.new
  @status_window.x = 160
  @status_window.y = 0
  @status_window.z = 200
  @status_window.visible = false
  # ’g’0’"’W’V’!’"}Àýs
  Graphics.transition
  # ’ý’C’"’9ý[’v
  loop do
    # ’Qý[’¬0æÊ ýXýV
    Graphics.update
    # "üÍýî"ñ ýXýV
    Input.update
    # ’t’Rý[’¬ýXýV
    update
    # 0æÊªýØè'ÖíÁ½ç’9ý[’v ' 'f
    if $scene != self
      break
    end
  end
  # ’g’0’"’W’V’!’"ý¬"õ
  Graphics.freeze
  # ’X’v’0’C’g’Z’b’g 0 "ú
  @spriteset.dispose
  # ’E’B’"’h’E 0 "ú
  @command_window.dispose
  @status_window.dispose
end
#--------------------------------------------------------------------------
# ýS ’t’Rý[’¬ýXýV
#--------------------------------------------------------------------------
def update
  # ’E’B’"’h’E ýXýV
  @command_window.update
  @status_window.update
  # ’R’}’"’h’E’B’"’h’Eª’A’N’e’B’uÌýêý!: update_command  RÄÔ
  if @command_window.active
    update_command
    return
  end
  # ’X’eý[’^’X’E’B’"’h’Eª’A’N’e’B’uÌýêý!: update_status  RÄÔ
  if @status_window.active
    update_status
    return
  end
end
#--------------------------------------------------------------------------
# ýS ’t’Rý[’¬ýXýV (’R’}’"’h’E’B’"’h’Eª’A’N’e’B’uÌýêý!)
#--------------------------------------------------------------------------
def update_command
  # B ’{’^’"ª0x³ê½ýêý!
  if Input.trigger?(Input:

)
    # ’L’’’"’Z’9 SE  00't
    $game_system.se_play($data_system.cancel_se)
    # ’}’b’v0æÊÉýØè'Ö¦
    $scene = Scene_Map.new
    return
  end
  # C ’{’^’"ª0x³ê½ýêý!
  if Input.trigger?(Input:

)
    # ’pý[’e’Býlý"ª 0 ýlÅýA’Zý[’uýA’Qý[’¬ýI¹ÆÈ`OÌ’R’}’"’hÌýêý!
    if $game_party.actors.size == 0 and @command_window.index < 4
      # ’u’Uý[ SE  00't
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # ’R’}’"’h’E’B’"’h’EÌ’Jý[’\’9ÆÊ'uÅ"ª`ò
    case @command_window.index
    when 0  # ’A’C’e’¬
      # RÆ'è  SE  00't
      $game_system.se_play($data_system.decision_se)
      # ’A’C’e’¬0æÊÉýØè'Ö¦
      $scene = Scene_Item.new
    when 1  # ’X’L’9
      # RÆ'è SE  00't
      $game_system.se_play($data_system.decision_se)
      # ’X’eý[’^’X’E’B’"’h’E ’A’N’e’B’uÉ·é
      @command_window.active = false
      @status_window.active = true
      @status_window.visible = true
      @status_window.index = 0
    when 2  # '""õ
      # RÆ'è SE  00't
      $game_system.se_play($data_system.decision_se)
      # ’X’eý[’^’X’E’B’"’h’E ’A’N’e’B’uÉ·é
      @command_window.active = false
      @status_window.active = true
      @status_window.visible = true
      @status_window.index = 0
    when 3  # ’X’eý[’^’X
      # RÆ'è SE  00't
      $game_system.se_play($data_system.decision_se)
      # ’X’eý[’^’X’E’B’"’h’E ’A’N’e’B’uÉ·é
      @command_window.active = false
      @status_window.active = true
      @status_window.visible = true
      @status_window.index = 0
    when 4  # ’Zý[’u
      # ’Zý[’u9Ö}~Ìýêý!
      if $game_system.save_disabled
        # ’u’Uý[ SE  00't
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # RÆ'è SE  00't
      $game_system.se_play($data_system.decision_se)
      # ’Zý[’u0æÊÉýØè'Ö¦
      $scene = Scene_Save.new
    when 5  # ’Qý[’¬ýI¹
      # RÆ'è SE  00't
      $game_system.se_play($data_system.decision_se)
...