Så fort min patch för arenan i XMLDataInfo är inlagd så kommer ArenaPage
att använda sig av det.
/Björn
#Boa:FramePanel:ArenaPage
# Mattricks, a free helper program for hattricks players.
# Copyright (C) 2003-2004 Mattricks Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import Countries
import XMLParse
import CommonData
import Common
from wxPython.wx import *
from wxPython.lib.anchors import LayoutAnchors
[wxID_ARENAPAGE, wxID_ARENAPAGEBUILD_BASIC_SEATS, wxID_ARENAPAGEBUILD_COST,
wxID_ARENAPAGEBUILD_PANEL, wxID_ARENAPAGEBUILD_ROOFED,
wxID_ARENAPAGEBUILD_TERRACES, wxID_ARENAPAGEBUILD_TOTAL,
wxID_ARENAPAGEBUILD_VIP, wxID_ARENAPAGECURRENT_ARENA_PANEL,
wxID_ARENAPAGECUR_BASIC, wxID_ARENAPAGECUR_ROOFED,
wxID_ARENAPAGECUR_TERRACES, wxID_ARENAPAGECUR_TOTAL, wxID_ARENAPAGECUR_VIP,
wxID_ARENAPAGENEW_ARENA_PANEL, wxID_ARENAPAGENEW_BASIC_SEATINGS,
wxID_ARENAPAGENEW_ROOFED, wxID_ARENAPAGENEW_TERRACES,
wxID_ARENAPAGENEW_TOTAL, wxID_ARENAPAGENEW_VIP, wxID_ARENAPAGEPANEL3,
wxID_ARENAPAGEPANEL4, wxID_ARENAPAGEPREFERENCES_PANEL,
wxID_ARENAPAGEPREF_62_5_PERCENT, wxID_ARENAPAGEPREF_63_PERCENT,
wxID_ARENAPAGEPREF_BUILDTO, wxID_ARENAPAGEPREF_USE_BUILDTO,
wxID_ARENAPAGEPREF_USE_SUPPORTERS, wxID_ARENAPAGEPREF_X20,
wxID_ARENAPAGEPREF_X25, wxID_ARENAPAGEPREF_X30, wxID_ARENAPAGESTATICBOX1,
wxID_ARENAPAGESTATICBOX2, wxID_ARENAPAGESTATICBOX3, wxID_ARENAPAGESTATICBOX4,
wxID_ARENAPAGESTATICBOX5, wxID_ARENAPAGESTATICBOX6,
wxID_ARENAPAGESTATICTEXT1, wxID_ARENAPAGESTATICTEXT10,
wxID_ARENAPAGESTATICTEXT11, wxID_ARENAPAGESTATICTEXT12,
wxID_ARENAPAGESTATICTEXT13, wxID_ARENAPAGESTATICTEXT14,
wxID_ARENAPAGESTATICTEXT16, wxID_ARENAPAGESTATICTEXT17,
wxID_ARENAPAGESTATICTEXT18, wxID_ARENAPAGESTATICTEXT2,
wxID_ARENAPAGESTATICTEXT3, wxID_ARENAPAGESTATICTEXT4,
wxID_ARENAPAGESTATICTEXT5, wxID_ARENAPAGESTATICTEXT6,
wxID_ARENAPAGESTATICTEXT7, wxID_ARENAPAGESTATICTEXT8,
wxID_ARENAPAGESTATICTEXT9,
] = map(lambda _init_ctrls: wxNewId(), range(54))
class ArenaPage(wxPanel):
""""""
def _init_utils(self):
# generated method, don't edit
pass
def _init_ctrls(self, prnt):
# generated method, don't edit
wxPanel.__init__(self, id=wxID_ARENAPAGE, name='ArenaPage', parent=prnt,
pos=wxPoint(313, 222), size=wxSize(856, 659),
style=wxTAB_TRAVERSAL)
self._init_utils()
self.SetClientSize(wxSize(856, 659))
self.SetAutoLayout(True)
self.current_arena_panel = wxPanel(id=wxID_ARENAPAGECURRENT_ARENA_PANEL,
name='current_arena_panel', parent=self, pos=wxPoint(16, 64),
size=wxSize(328, 168), style=wxTAB_TRAVERSAL)
self.staticText6 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT6,
label=_("Terraces") + ':', name='staticText6',
parent=self.current_arena_panel, pos=wxPoint(24, 32),
size=wxSize(76, 18), style=0)
self.staticText6.SetConstraints(LayoutAnchors(self.staticText6, True,
True, False, False))
self.staticText6.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.cur_terraces = wxStaticText(id=wxID_ARENAPAGECUR_TERRACES,
label='', name='cur_terraces', parent=self.current_arena_panel,
pos=wxPoint(264, 32), size=wxSize(0, 18), style=0)
self.staticText2 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT2,
label=_('Basic seating') + ':', name='staticText2',
parent=self.current_arena_panel, pos=wxPoint(24, 56),
size=wxSize(114, 18), style=0)
self.staticText2.SetConstraints(LayoutAnchors(self.staticText2, True,
True, False, False))
self.staticText2.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText3 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT3,
label=_('Roofed seating') + ':', name='staticText3',
parent=self.current_arena_panel, pos=wxPoint(24, 80),
size=wxSize(129, 18), style=0)
self.staticText3.SetConstraints(LayoutAnchors(self.staticText3, True,
True, False, False))
self.staticText3.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText4 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT4,
label=_('Seating in VIP boxes') + ':', name='staticText4',
parent=self.current_arena_panel, pos=wxPoint(24, 104),
size=wxSize(176, 18), style=0)
self.staticText4.SetConstraints(LayoutAnchors(self.staticText4, True,
True, False, False))
self.staticText4.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.cur_basic = wxStaticText(id=wxID_ARENAPAGECUR_BASIC, label='',
name='cur_basic', parent=self.current_arena_panel,
pos=wxPoint(264, 56), size=wxSize(0, 18), style=0)
self.cur_roofed = wxStaticText(id=wxID_ARENAPAGECUR_ROOFED, label='',
name='cur_roofed', parent=self.current_arena_panel,
pos=wxPoint(264, 80), size=wxSize(0, 18), style=0)
self.cur_VIP = wxStaticText(id=wxID_ARENAPAGECUR_VIP, label='',
name='cur_VIP', parent=self.current_arena_panel, pos=wxPoint(264,
104), size=wxSize(0, 18), style=0)
self.cur_total = wxStaticText(id=wxID_ARENAPAGECUR_TOTAL, label='',
name='cur_total', parent=self.current_arena_panel,
pos=wxPoint(264, 128), size=wxSize(0, 18), style=0)
self.staticText5 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT5,
label=_('Total capacity') +':', name='staticText5',
parent=self.current_arena_panel, pos=wxPoint(24, 128),
size=wxSize(119, 18), style=0)
self.staticText5.SetConstraints(LayoutAnchors(self.staticText5, True,
True, False, False))
self.staticText5.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticBox1 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX1,
label=_('Current arena'), name='staticBox1',
parent=self.current_arena_panel, pos=wxPoint(8, 8),
size=wxSize(320, 160), style=0)
self.preferences_panel = wxPanel(id=wxID_ARENAPAGEPREFERENCES_PANEL,
name='preferences_panel', parent=self, pos=wxPoint(16, 264),
size=wxSize(328, 304), style=wxTAB_TRAVERSAL)
self.staticBox2 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX2,
label=_('Preferences'), name='staticBox2',
parent=self.preferences_panel, pos=wxPoint(8, 8), size=wxSize(320,
264), style=0)
self.panel3 = wxPanel(id=wxID_ARENAPAGEPANEL3, name='panel3',
parent=self.preferences_panel, pos=wxPoint(24, 40),
size=wxSize(288, 112), style=wxTAB_TRAVERSAL)
self.pref_use_buildto = wxRadioButton(id=wxID_ARENAPAGEPREF_USE_BUILDTO,
label=_('Build to'), name='pref_use_buildto', parent=self.panel3,
pos=wxPoint(8, 8), size=wxSize(120, 24), style=0)
self.pref_use_buildto.SetValue(False)
self.pref_use_buildto.SetAutoLayout(True)
EVT_RADIOBUTTON(self.pref_use_buildto, wxID_ARENAPAGEPREF_USE_BUILDTO,
self.OnPref_use_buildtoRadiobutton)
self.pref_use_supporters = wxRadioButton(id=wxID_ARENAPAGEPREF_USE_SUPPORTERS,
label=_('Supporters'), name='pref_use_supporters',
parent=self.panel3, pos=wxPoint(136, 8), size=wxSize(152, 24),
style=0)
self.pref_use_supporters.SetAutoLayout(True)
self.pref_use_supporters.SetValue(False)
EVT_RADIOBUTTON(self.pref_use_supporters,
wxID_ARENAPAGEPREF_USE_SUPPORTERS,
self.OnPref_use_supportersRadiobutton)
self.pref_buildto = wxTextCtrl(id=wxID_ARENAPAGEPREF_BUILDTO,
name='pref_buildto', parent=self.panel3, pos=wxPoint(16, 40),
size=wxSize(104, 24), style=0, value='')
EVT_TEXT(self.pref_buildto, wxID_ARENAPAGEPREF_BUILDTO,
self.OnPref_buildtoText)
self.panel4 = wxPanel(id=wxID_ARENAPAGEPANEL4, name='panel4',
parent=self.panel3, pos=wxPoint(136, 32), size=wxSize(128, 80),
style=wxTAB_TRAVERSAL)
self.panel4.SetAutoLayout(True)
self.pref_x20 = wxRadioButton(id=wxID_ARENAPAGEPREF_X20, label='x 20',
name='pref_x20', parent=self.panel4, pos=wxPoint(56, 8),
size=wxSize(72, 22), style=0)
self.pref_x20.SetValue(True)
self.pref_x20.Enable(False)
EVT_RADIOBUTTON(self.pref_x20, wxID_ARENAPAGEPREF_X20,
self.OnPref_use_supportersRadiobutton)
self.pref_x25 = wxRadioButton(id=wxID_ARENAPAGEPREF_X25, label='x25',
name='pref_x25', parent=self.panel4, pos=wxPoint(56, 32),
size=wxSize(80, 24), style=0)
self.pref_x25.SetValue(True)
self.pref_x25.Enable(False)
EVT_RADIOBUTTON(self.pref_x25, wxID_ARENAPAGEPREF_X25,
self.OnPref_use_supportersRadiobutton)
self.pref_x30 = wxRadioButton(id=wxID_ARENAPAGEPREF_X30, label='x30',
name='pref_x30', parent=self.panel4, pos=wxPoint(56, 56),
size=wxSize(80, 24), style=0)
self.pref_x30.SetValue(False)
self.pref_x30.Enable(False)
EVT_RADIOBUTTON(self.pref_x30, wxID_ARENAPAGEPREF_X30,
self.OnPref_use_supportersRadiobutton)
self.staticBox3 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX3,
label=_('When building, use'), name='staticBox3',
parent=self.preferences_panel, pos=wxPoint(16, 24),
size=wxSize(304, 136), style=0)
self.new_arena_panel = wxPanel(id=wxID_ARENAPAGENEW_ARENA_PANEL,
name='new_arena_panel', parent=self, pos=wxPoint(368, 64),
size=wxSize(328, 168), style=wxTAB_TRAVERSAL)
self.staticText1 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT1,
label=_('Terraces') +':', name='staticText1',
parent=self.new_arena_panel, pos=wxPoint(24, 32), size=wxSize(76,
18), style=0)
self.staticText1.SetConstraints(LayoutAnchors(self.staticText1, True,
True, False, False))
self.staticText1.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText7 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT7,
label=_('Seating in VIP boxes') + ':', name='staticText7',
parent=self.new_arena_panel, pos=wxPoint(24, 104),
size=wxSize(176, 18), style=0)
self.staticText7.SetConstraints(LayoutAnchors(self.staticText7, True,
True, False, False))
self.staticText7.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText8 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT8,
label=_('Total capacity') + ':', name='staticText8',
parent=self.new_arena_panel, pos=wxPoint(24, 128),
size=wxSize(119, 18), style=0)
self.staticText8.SetConstraints(LayoutAnchors(self.staticText8, True,
True, False, False))
self.staticText8.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText9 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT9,
label=_('Basic seating') + ':', name='staticText9',
parent=self.new_arena_panel, pos=wxPoint(24, 56), size=wxSize(114,
18), style=0)
self.staticText9.SetConstraints(LayoutAnchors(self.staticText9, True,
True, False, False))
self.staticText9.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.new_terraces = wxStaticText(id=wxID_ARENAPAGENEW_TERRACES,
label='', name='new_terraces', parent=self.new_arena_panel,
pos=wxPoint(264, 32), size=wxSize(0, 18), style=0)
self.staticText10 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT10,
label=_('Roofed seating') + ':', name='staticText10',
parent=self.new_arena_panel, pos=wxPoint(24, 80), size=wxSize(129,
18), style=0)
self.staticText10.SetConstraints(LayoutAnchors(self.staticText10, True,
True, False, False))
self.staticText10.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.new_VIP = wxStaticText(id=wxID_ARENAPAGENEW_VIP, label='',
name='new_VIP', parent=self.new_arena_panel, pos=wxPoint(264,
104), size=wxSize(0, 18), style=0)
self.new_roofed = wxStaticText(id=wxID_ARENAPAGENEW_ROOFED, label='',
name='new_roofed', parent=self.new_arena_panel, pos=wxPoint(264,
80), size=wxSize(0, 18), style=0)
self.staticBox4 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX4,
label=_('The new arena'), name='staticBox4',
parent=self.new_arena_panel, pos=wxPoint(8, 8), size=wxSize(320,
160), style=0)
self.new_basic_seatings = wxStaticText(id=wxID_ARENAPAGENEW_BASIC_SEATINGS,
label='', name='new_basic_seatings', parent=self.new_arena_panel,
pos=wxPoint(264, 56), size=wxSize(0, 18), style=0)
self.new_total = wxStaticText(id=wxID_ARENAPAGENEW_TOTAL, label='',
name='new_total', parent=self.new_arena_panel, pos=wxPoint(264,
128), size=wxSize(0, 18), style=0)
self.staticBox5 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX5,
label=_('Formula'), name='staticBox5',
parent=self.preferences_panel, pos=wxPoint(16, 168),
size=wxSize(304, 88), style=0)
self.pref_62_5_percent = wxRadioButton(id=wxID_ARENAPAGEPREF_62_5_PERCENT,
label='62,5/25/10/2,5 %', name='pref_62_5_percent',
parent=self.preferences_panel, pos=wxPoint(80, 184),
size=wxSize(176, 30), style=0)
self.pref_62_5_percent.SetValue(True)
EVT_RADIOBUTTON(self.pref_62_5_percent, wxID_ARENAPAGEPREF_62_5_PERCENT,
self.OnPref_62_5_percentRadiobutton)
self.pref_63_percent = wxRadioButton(id=wxID_ARENAPAGEPREF_63_PERCENT,
label='63/25/10/2 %', name='pref_63_percent',
parent=self.preferences_panel, pos=wxPoint(80, 208),
size=wxSize(176, 40), style=0)
self.pref_63_percent.SetValue(True)
EVT_RADIOBUTTON(self.pref_63_percent, wxID_ARENAPAGEPREF_63_PERCENT,
self.OnPref_62_5_percentRadiobutton)
self.build_panel = wxPanel(id=wxID_ARENAPAGEBUILD_PANEL,
name='build_panel', parent=self, pos=wxPoint(368, 272),
size=wxSize(360, 352), style=wxTAB_TRAVERSAL)
self.staticBox6 = wxStaticBox(id=wxID_ARENAPAGESTATICBOX6,
label=_('Build'), name='staticBox6', parent=self.build_panel,
pos=wxPoint(8, 0), size=wxSize(320, 264), style=0)
self.staticText11 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT11,
label=_('Terraces') + ':', name='staticText11',
parent=self.build_panel, pos=wxPoint(24, 48), size=wxSize(76, 18),
style=0)
self.staticText11.SetConstraints(LayoutAnchors(self.staticText11, True,
True, False, False))
self.staticText11.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText12 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT12,
label=_('Basic seating') + ':', name='staticText12',
parent=self.build_panel, pos=wxPoint(24, 72), size=wxSize(114,
18), style=0)
self.staticText12.SetConstraints(LayoutAnchors(self.staticText12, True,
True, False, False))
self.staticText12.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText13 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT13,
label=_('Roofed seating') + ':', name='staticText13',
parent=self.build_panel, pos=wxPoint(24, 96), size=wxSize(129,
18), style=0)
self.staticText13.SetConstraints(LayoutAnchors(self.staticText13, True,
True, False, False))
self.staticText13.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText14 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT14,
label=_('Seating in VIP boxes') + ':', name='staticText14',
parent=self.build_panel, pos=wxPoint(24, 120), size=wxSize(176,
18), style=0)
self.staticText14.SetConstraints(LayoutAnchors(self.staticText14, True,
True, False, False))
self.staticText14.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.build_terraces = wxStaticText(id=wxID_ARENAPAGEBUILD_TERRACES,
label='', name='build_terraces', parent=self.build_panel,
pos=wxPoint(256, 48), size=wxSize(0, 18), style=0)
self.build_basic_seats = wxStaticText(id=wxID_ARENAPAGEBUILD_BASIC_SEATS,
label='', name='build_basic_seats', parent=self.build_panel,
pos=wxPoint(256, 72), size=wxSize(0, 18), style=0)
self.build_roofed = wxStaticText(id=wxID_ARENAPAGEBUILD_ROOFED,
label='', name='build_roofed', parent=self.build_panel,
pos=wxPoint(256, 96), size=wxSize(0, 18), style=0)
self.build_VIP = wxStaticText(id=wxID_ARENAPAGEBUILD_VIP, label='',
name='build_VIP', parent=self.build_panel, pos=wxPoint(256, 120),
size=wxSize(0, 18), style=0)
self.build_total = wxStaticText(id=wxID_ARENAPAGEBUILD_TOTAL, label='',
name='build_total', parent=self.build_panel, pos=wxPoint(256,
144), size=wxSize(0, 18), style=0)
self.staticText16 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT16,
label=_('Build total') + ':', name='staticText16',
parent=self.build_panel, pos=wxPoint(24, 144), size=wxSize(88,
18), style=0)
self.staticText16.SetConstraints(LayoutAnchors(self.staticText16, True,
True, False, False))
self.staticText16.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.staticText17 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT17,
label=_('Building cost') + ':', name='staticText17',
parent=self.build_panel, pos=wxPoint(24, 184), size=wxSize(140,
22), style=0)
self.staticText17.SetConstraints(LayoutAnchors(self.staticText17, True,
True, False, False))
self.staticText17.SetFont(wxFont(12, wxSWISS, wxNORMAL, wxBOLD, False,
'Sans'))
self.build_cost = wxStaticText(id=wxID_ARENAPAGEBUILD_COST, label='',
name='build_cost', parent=self.build_panel, pos=wxPoint(208, 184),
size=wxSize(0, 22), style=wxALIGN_RIGHT)
self.build_cost.SetFont(wxFont(12, wxSWISS, wxNORMAL, wxNORMAL, False,
'Sans'))
self.staticText18 = wxStaticText(id=wxID_ARENAPAGESTATICTEXT18,
label=_('Seats'), name='staticText18', parent=self.panel3,
pos=wxPoint(40, 72), size=wxSize(56, 26), style=0)
def __init__(self, parent, id):
self._init_ctrls(parent)
data = XMLParse.get(["economy"])
self.fanclub = data.get("Team.FanClubSize")
(dummy, dummy, self.currency_name,
self.currency_prefix, self.currency_rate, dummy) = Countries.country_info[CommonData.get_country_league_id()]
arena = XMLParse.get(["arena details"])
self.terraces = arena.get("Arena.CurrentCapacity.Terraces")
self.basic_seats = arena.get("Arena.CurrentCapacity.Basic")
self.roofed = arena.get("Arena.CurrentCapacity.Roof")
self.vip = arena.get("Arena.CurrentCapacity.VIP")
self.total_seats = arena.get("Arena.CurrentCapacity.Total")
self.n_terraces = self.terraces
self.n_basic_seats = self.basic_seats
self.n_roofed = self.roofed
self.n_vip = self.vip
self.n_total_seats = self.total_seats
self.__updategui()
def __updategui(self):
"""Updates all labels on the page with new information.
Run everytime we have made some choices on the page"""
self.cur_terraces.SetLabel(str(self.terraces))
self.cur_basic.SetLabel(str(self.basic_seats))
self.cur_roofed.SetLabel(str(self.roofed))
self.cur_VIP.SetLabel(str(self.vip))
self.cur_total.SetLabel(str(self.total_seats))
self.new_terraces.SetLabel(str(self.n_terraces))
self.new_basic_seatings.SetLabel(str(self.n_basic_seats))
self.new_roofed.SetLabel(str(self.n_roofed))
self.new_VIP.SetLabel(str(self.n_vip))
self.new_total.SetLabel(str(self.n_total_seats))
b_terraces = self.n_terraces - self.terraces
b_basic = self.n_basic_seats - self.basic_seats
b_roofed = self.n_roofed - self.roofed
b_vip = self.n_vip - self.vip
b_total = b_terraces + b_basic + b_roofed + b_vip
#calculate building cost
b_cost = 0
if b_total != 0:
b_cost = 300000.0
if b_terraces > 0:
b_cost += b_terraces * 150
else:
b_cost += -b_terraces * 20
if b_basic > 0:
b_cost += b_basic * 250
else:
b_cost += -b_basic * 20
if b_roofed > 0:
b_cost += b_roofed * 300
else:
b_cost += -b_roofed * 20
if b_vip > 0:
b_cost += b_vip * 1000
else:
b_cost += -b_vip * 20
#fix so the building cost is in correct currency
b_cost = int(round(b_cost / self.currency_rate))
if self.currency_prefix:
b_cost_string = self.currency_name + str(b_cost)
else:
b_cost_string = str(b_cost) + self.currency_name
self.build_terraces.SetLabel(str(b_terraces))
self.build_basic_seats.SetLabel(str(b_basic))
self.build_roofed.SetLabel(str(b_roofed))
self.build_VIP.SetLabel(str(b_vip))
self.build_total.SetLabel(str(b_total))
self.build_cost.SetLabel(b_cost_string)
def OnPref_use_buildtoRadiobutton(self, event):
"""Called when we have chosen to use the "build to # of seats" option."""
event.Skip()
self.pref_buildto.Enable(True)
self.pref_x20.Enable(False)
self.pref_x25.Enable(False)
self.pref_x30.Enable(False)
self.OnPref_buildtoText(event)
def OnPref_use_supportersRadiobutton(self, event):
"""Called when we have chosen to base our calculations on how big
the users fanclub is."""
event.Skip()
self.pref_buildto.Enable(False)
self.pref_x20.Enable(True)
self.pref_x25.Enable(True)
self.pref_x30.Enable(True)
if self.pref_x20.GetValue():
multiplier = 20
elif self.pref_x25.GetValue():
multiplier = 25
else:
multiplier = 30
total = self.fanclub * multiplier
self.__calculate_different_seats(total)
self.__updategui()
def __calculate_different_seats(self, total):
"""Split the total number of seats in the new arena on the different
types of seating. We also check which formula to use.
total - The amount of seats the new arena should have."""
if self.pref_62_5_percent.GetValue():
self.n_terraces = int(round(total * 0.625))
self.n_basic_seats = int(round(total * 0.25))
self.n_roofed = int(round(total * 0.10))
self.n_vip = int(round(total * 0.025))
else:
self.n_terraces = int(round(total * 0.63))
self.n_basic_seats = int(round(total * 0.25))
self.n_roofed = int(round(total * 0.10))
self.n_vip = int(round(total * 0.02))
self.n_total_seats = self.n_terraces + self.n_basic_seats + self.n_roofed + self.n_vip
def OnPref_62_5_percentRadiobutton(self, event):
"""Called when user selects another formula. """
event.Skip()
self.__calculate_different_seats(self.n_total_seats)
self.__updategui()
def OnPref_buildtoText(self, event):
"""Called when user inputs how large arena he wants to have."""
event.Skip()
#Fix so we dont get an error when textbox is empty or
#when we type in something that is not a number.
value = str(self.pref_buildto.GetValue())
try:
total = int(value)
except ValueError:
value = value[0: self.pref_buildto.GetLastPosition() - 1]
self.pref_buildto.Clear()
self.pref_buildto.SetValue(value)
if value != '':
total = int(value)
else:
total = self.total_seats
self.__calculate_different_seats(total)
self.__updategui()