- Création d'un système de gestion de menu centralisé
- Ajout de nouveau icônes - Suppression de la variable dat et remplacement par une variable unique Menus qui contient une structure décrivant le comportement des menus de jeu.
This commit is contained in:
parent
d157aa4811
commit
f76847a81f
787
WireChem.py
787
WireChem.py
|
@ -82,14 +82,18 @@ def duplicateref(d):
|
|||
for k in d.keys():
|
||||
d[d[k]['nom']]=d[k]
|
||||
|
||||
def interprete(d):
|
||||
for k in d.keys():
|
||||
if 'icon' in d[k]:
|
||||
if type(d[k]['icon']) is str and len(d[k]['icon'])>0 and d[k]['icon'][0]=="%":
|
||||
d[k]['icon']=image.load(d[k]['icon'][1:])
|
||||
def loadpic(d):
|
||||
for j in range(len(d)):
|
||||
for k in range(len(d[j])):
|
||||
if 'icon' in d[j][k]:
|
||||
if type(d[j][k]['icon']) is str and d[j][k]['icon']!="" and os.path.exists(d[j][k]['icon']):
|
||||
d[j][k]['icon']=image.load(d[j][k]['icon'])
|
||||
elif type(d[j][k]['nom']) is not str:
|
||||
for n in range(len(d[j][k]['icon'])):
|
||||
d[j][k]['icon'][n]=image.load(d[j][k]['icon'][n])
|
||||
|
||||
def initgrid():
|
||||
global users,art,Uworlds,statedvar,stat_var,seestat,adirection,worlds,finished,allcout,selected,world,level,over,mousel,mouser,mousem,sizex,sizey,world_old,world_new,world_art,dat,direction,zoom,play,stat,cycle,cout,thecout,rayon,unroll,debug,temp,decx,decy,nrj,tech,victory,current,maxnrj,maxrayon,maxcycle,maxtemp,nom,descriptif,element
|
||||
global savenames,menus,users,art,Uworlds,statedvar,stat_var,seestat,adirection,worlds,finished,allcout,selected,world,level,over,sizex,sizey,world_old,world_new,world_art,dat,direction,zoom,play,stat,cycle,cout,thecout,rayon,debug,temp,decx,decy,nrj,tech,victory,current,maxnrj,maxrayon,maxcycle,maxtemp,nom,descriptif,element
|
||||
|
||||
''' Directions des electrons en fonction de la position de la queue '''
|
||||
direction = {}
|
||||
|
@ -102,15 +106,14 @@ def initgrid():
|
|||
direction[(+1,+0)]=[(-1,+0),(-1,+1),(-1,-1),(+0,+1),(+0,-1),(+1,+1),(+1,-1),(+1,+0)]
|
||||
direction[(+1,+1)]=[(-1,-1),(-1,+0),(+0,-1),(-1,+1),(+1,-1),(+0,+1),(+1,+0),(+1,+1)]
|
||||
adirection=[(-1,-1),(-1,+0),(-1,+1),(+0,-1),(+0,+1),(+1,-1),(+1,+0),(+1,+1)]
|
||||
|
||||
savenames=["#","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","ς","σ","τ","υ","φ","χ","ψ","ω"]
|
||||
verifyhome()
|
||||
read("dbdata")
|
||||
read(gethome()+"/dbdata")
|
||||
reference(worlds,['world','level'])
|
||||
reference(Uworlds,['world','level'])
|
||||
duplicateref(art)
|
||||
duplicateref(dat)
|
||||
interprete(dat)
|
||||
loadpic(menus)
|
||||
''' Variables globales '''
|
||||
zoom=25
|
||||
stat=[0,0,0,0,0,0,0,0,0]
|
||||
|
@ -119,13 +122,10 @@ def initgrid():
|
|||
current=[0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
users=[]
|
||||
stat_var=[]
|
||||
mousel=4
|
||||
mouser=0
|
||||
mousem=3
|
||||
maxnrj=maxrayon=maxcycle=maxtemp=99999
|
||||
allcout=[0,0,0]
|
||||
sizex=sizey=1
|
||||
seestat=thecout=world=over=play=cycle=rayon=temp=cout=decx=decy=unroll=nrj=0
|
||||
seestat=thecout=world=over=play=cycle=rayon=temp=cout=decx=decy=nrj=0
|
||||
debug=0
|
||||
tech=selected=level=-1
|
||||
statedvar=[stat[0],stat[1],stat[2],stat[3],stat[4],stat[5],stat[6],stat[7],stat[8],nrj,temp,rayon,current[7],current[8],current[9],current[10],current[11],current[12]]
|
||||
|
@ -157,7 +157,7 @@ def resize():
|
|||
decy=-zoom+(win.height-zoom*(sizey-2))/2
|
||||
|
||||
def readlevel(w,l,user):
|
||||
global worlds,unroll,mousel,mousem,mouser,cout,selected,sizex,sizey,unroll,stat,debug,tech
|
||||
global worlds,cout,selected,sizex,sizey,stat,debug,tech
|
||||
if user:
|
||||
if w<len(Uworlds) and l<len(Uworlds[w]) and Uworlds[w][l].has_key("element"):
|
||||
load(Uworlds[w][l])
|
||||
|
@ -165,27 +165,13 @@ def readlevel(w,l,user):
|
|||
load(worlds[w][l])
|
||||
else:
|
||||
load(worlds[w][l])
|
||||
menus[0][18]['icon']=copy.deepcopy(art['null'])
|
||||
if debug==1: tech=9
|
||||
if tech<0:
|
||||
dat['setcopper']['value']='setnothinga'
|
||||
dat['setfiber']['value']='setnothinga'
|
||||
dat['setnothing']['value']='setnothinga'
|
||||
dat['others']['value']='setnothinga'
|
||||
elif tech<2:
|
||||
dat['setcopper']['value']='setcopper'
|
||||
dat['setfiber']['value']='setnothinga'
|
||||
dat['setnothing']['value']='setnothing'
|
||||
dat['others']['value']='others'
|
||||
else:
|
||||
dat['setcopper']['value']='setcopper'
|
||||
dat['setfiber']['value']='setfiber'
|
||||
dat['setnothing']['value']='setnothing'
|
||||
dat['others']['value']='others'
|
||||
sizex=len(world_new)
|
||||
sizey=len(world_new[0])
|
||||
resize();
|
||||
stat=[0,0,0,0,0,0,0,0,0]
|
||||
unroll=over=0
|
||||
over=0
|
||||
infos()
|
||||
|
||||
def savelevel(w,l):
|
||||
|
@ -456,7 +442,7 @@ def drawitem(x,y,it,thezoom,activation):
|
|||
|
||||
def drawstat(x,y,x2,y2,tableau,color):
|
||||
global stat
|
||||
drawsquare(x,y,x2,y2,0,[90,90,90])
|
||||
drawsquare(x+1,y+1,x2,y2,0,[90,90,90])
|
||||
oldx=x
|
||||
somme=sum(tableau)
|
||||
for i in range(len(tableau)):
|
||||
|
@ -554,27 +540,27 @@ def drawworld():
|
|||
document=None
|
||||
glColor3ub(255,255,255)
|
||||
if ele['cout']>0:
|
||||
dat['cout']['icon'].blit(740,110)
|
||||
pic_cout.blit(740,110)
|
||||
txt_cout2.text=str(ele['cout'])
|
||||
txt_cout2.draw()
|
||||
if ele['maxcycle']<90000:
|
||||
dat['cycle']['icon'].blit(740,65)
|
||||
pic_cycle.blit(740,65)
|
||||
txt_maxcycle2.text=str(ele['maxcycle'])
|
||||
txt_maxcycle2.draw()
|
||||
if ele['tech']>0:
|
||||
dat['tech']['icon'].blit(940,110)
|
||||
pic_tech.blit(940,110)
|
||||
txt_tech2.text=str(ele['tech'])
|
||||
txt_tech2.draw()
|
||||
if ele['maxrayon']<90000:
|
||||
dat['rayon']['icon'].blit(940,65)
|
||||
pic_rayon.blit(940,65)
|
||||
txt_maxrayon2.text=str(ele['maxrayon'])
|
||||
txt_maxrayon2.draw()
|
||||
if ele['maxtemp']<90000:
|
||||
dat['temp']['icon'].blit(850,110)
|
||||
pic_temp.blit(850,110)
|
||||
txt_maxtemp2.text=str(ele['maxtemp'])
|
||||
txt_maxtemp2.draw()
|
||||
if ele['maxnrj']<90000:
|
||||
dat['nrj']['icon'].blit(850,65)
|
||||
pic_nrj.blit(850,65)
|
||||
txt_maxnrj2.text=str(ele['maxnrj'])
|
||||
txt_maxnrj2.draw()
|
||||
victory=ele['victory']
|
||||
|
@ -598,11 +584,22 @@ def drawworld():
|
|||
txt_nom2.draw()
|
||||
|
||||
def calc_space(nb,nbtot):
|
||||
global unroll
|
||||
return [2*win.width/3+20,(nb-1)*(win.height-100-math.trunc(unroll)*50)/nbtot+50+math.trunc(unroll)*50+20,win.width-20,nb*(win.height-100-math.trunc(unroll)*50)/nbtot+50+math.trunc(unroll)*50]
|
||||
return [2*win.width/3+20,(nb-1)*(win.height-100)/nbtot+50+20,win.width-20,nb*(win.height-100)/nbtot+50]
|
||||
|
||||
def drawpopup():
|
||||
global allcout
|
||||
if type(allcout[2]) is str:
|
||||
txt_drag.x=allcout[0]-txt_drag.content_width/2
|
||||
if txt_drag.x<0:
|
||||
txt_drag.x=0
|
||||
if txt_drag.x+txt_drag.content_width>win.width:
|
||||
txt_drag.x=win.width-txt_drag.content_width
|
||||
txt_drag.y=allcout[1]+6
|
||||
txt_drag.text=allcout[2]
|
||||
drawsquare(txt_drag.x-3,allcout[1],txt_drag.x+txt_drag.content_width+3,allcout[1]+25,1,[40,40,40])
|
||||
drawsquare(txt_drag.x-3,allcout[1],txt_drag.x+txt_drag.content_width+3,allcout[1]+25,0,[255,255,255])
|
||||
txt_drag.draw()
|
||||
return
|
||||
if tech<6:
|
||||
drawsquare(allcout[0],allcout[1],allcout[0]+90,allcout[1]+75,1,[40,40,40])
|
||||
drawsquare(allcout[0],allcout[1],allcout[0]+90,allcout[1]+75,0,[255,255,255])
|
||||
|
@ -612,32 +609,32 @@ def drawpopup():
|
|||
txt_drag.x=allcout[0]+45
|
||||
txt_drag.y=allcout[1]+10
|
||||
glColor3ub(255,255,255,255)
|
||||
dat['cout']['icon'].blit(allcout[0]+2,allcout[1]+2)
|
||||
pic_cout.blit(allcout[0]+2,allcout[1]+2)
|
||||
txt_drag.text=str(allcout[2]['cout'])
|
||||
txt_drag.draw()
|
||||
txt_drag.x=allcout[0]+45
|
||||
txt_drag.y=allcout[1]+45
|
||||
glColor3ub(255,255,255,255)
|
||||
dat['tech']['icon'].blit(allcout[0]+2,allcout[1]+37)
|
||||
pic_tech.blit(allcout[0]+2,allcout[1]+37)
|
||||
txt_drag.text=str(allcout[2]['tech'])
|
||||
txt_drag.draw()
|
||||
if tech>6:
|
||||
txt_drag.x=allcout[0]+45
|
||||
txt_drag.y=allcout[1]+80
|
||||
glColor3ub(255,255,255,255)
|
||||
dat['nrj']['icon'].blit(allcout[0]+2,allcout[1]+72)
|
||||
pic_nrj.blit(allcout[0]+2,allcout[1]+72)
|
||||
txt_drag.text=str(allcout[2]['nrj'])
|
||||
txt_drag.draw()
|
||||
txt_drag.x=allcout[0]+45
|
||||
txt_drag.y=allcout[1]+115
|
||||
glColor3ub(255,255,255,255)
|
||||
dat['temp']['icon'].blit(allcout[0]+2,allcout[1]+107)
|
||||
pic_temp.blit(allcout[0]+2,allcout[1]+107)
|
||||
txt_drag.text=str(allcout[2]['temp'])
|
||||
txt_drag.draw()
|
||||
|
||||
def drawbigstat(page):
|
||||
global unroll,stat_var
|
||||
drawsquare(2*win.width/3,50+math.trunc(unroll)*50,win.width,win.height-50,1,[40,40,40])
|
||||
global stat_var
|
||||
drawsquare(2*win.width/3,50,win.width,win.height-50,1,[40,40,40])
|
||||
if page==1:
|
||||
coord=calc_space(1,3)
|
||||
drawcumulgraph(calc_space(1,3),[stat_var[0],stat_var[1],stat_var[3],stat_var[4],stat_var[5],stat_var[6]],1,[art['headb2']['color'],art['headb']['color'],art['head']['color'],art['head2']['color'],art['headr']['color'],art['headr2']['color']])
|
||||
|
@ -663,13 +660,13 @@ def drawbigstat(page):
|
|||
elif page==2:
|
||||
coord=calc_space(1,3)
|
||||
drawgraph(coord,stat_var[9],1,[180,180,180])
|
||||
dat['nrj']['icon'].blit(coord[0],coord[1])
|
||||
pic_nrj.blit(coord[0],coord[1])
|
||||
coord=calc_space(2,3)
|
||||
drawgraph(coord,stat_var[10],1,[180,180,180])
|
||||
dat['temp']['icon'].blit(coord[0],coord[1])
|
||||
pic_temp.blit(coord[0],coord[1])
|
||||
coord=calc_space(3,3)
|
||||
drawgraph(coord,stat_var[11],1,[180,180,180])
|
||||
dat['rayon']['icon'].blit(coord[0],coord[1])
|
||||
pic_rayon.blit(coord[0],coord[1])
|
||||
elif page==3:
|
||||
coord=calc_space(1,6)
|
||||
drawgraph(coord,stat_var[17],1,art['prot']['color'])
|
||||
|
@ -735,8 +732,120 @@ def drawvictory():
|
|||
txt_over2.y=win.height/2-90
|
||||
txt_over2.draw()
|
||||
|
||||
def drawelement(x,y,x2,y2):
|
||||
global element,world,level,worlds
|
||||
drawsquare(x,y,x2,y2,1,[240,int(worlds[world][level]['_xx']/1024.0*120+100), int(worlds[world][level]['_xx']/1024.0*120+100)])
|
||||
txt_element.text=element
|
||||
txt_element.color=(int(worlds[world][level]['_xx']/1024.0*150),int(worlds[world][level]['_xx']/1024.0*150), int(worlds[world][level]['_xx']/1024.0*150),255)
|
||||
txt_element.x=x+(x2-x-txt_element.content_width)/2
|
||||
txt_element.y=y+5
|
||||
txt_element.draw()
|
||||
|
||||
def drawmenu(themenus):
|
||||
global tech,play
|
||||
for i in range(len(themenus)):
|
||||
if themenus[i][0]['visible']:
|
||||
if themenus[i][0]['place']=='bottom':
|
||||
drawsquare(0,themenus[i][0]['size'],win.width,0,1,[40,40,40])
|
||||
placey=0
|
||||
elif themenus[i][0]['place']=='top':
|
||||
drawsquare(0,win.height,win.width,win.height-themenus[i][0]['size'],1,[40,40,40])
|
||||
placey=win.height-themenus[i][0]['size']
|
||||
else:
|
||||
for search in themenus:
|
||||
if search[0]['place']=='bottom':
|
||||
drawsquare(0,search[0]['size'],win.width,search[0]['size']+themenus[i][0]['size'],1,[40,40,40])
|
||||
placey=search[0]['size']
|
||||
break
|
||||
sizeofall=0
|
||||
variables=0
|
||||
if themenus[i][0]['variable']:
|
||||
themenus[i][0]['size']=win.width/len(themenus[i])-1
|
||||
for j in range(1,len(themenus[i])):
|
||||
themenus[i][j]['size']=themenus[i][0]['size']
|
||||
if (type(themenus[i][j]['icon']) is dict):
|
||||
themenus[i][j]['icon']['size']=themenus[i][0]['size']
|
||||
for j in range(1,len(themenus[i])):
|
||||
if themenus[i][j]['visible']:
|
||||
if not themenus[i][j]['variable']:
|
||||
sizeofall+=themenus[i][j]['size']
|
||||
else:
|
||||
variables+=1
|
||||
for j in range(1,len(themenus[i])):
|
||||
if themenus[i][j]['variable'] and themenus[i][j]['visible']:
|
||||
themenus[i][j]['size']=(win.width-sizeofall)/variables
|
||||
placex=10
|
||||
for j in range(1,len(themenus[i])):
|
||||
placetemp=placex
|
||||
if themenus[i][j]['size']<30: continue
|
||||
if not themenus[i][j]['visible']: continue
|
||||
if themenus[i][j]['tech']>tech:
|
||||
placex+=themenus[i][j]['size']
|
||||
continue
|
||||
if type(themenus[i][j]['icon']) is list:
|
||||
if type(themenus[i][j]['nom']) is list:
|
||||
glColor3ub(255,255,255)
|
||||
themenus[i][j]['icon'][themenus[i][j]['choose']].blit(placex,placey+(themenus[i][0]['size']-themenus[i][j]['icon'][themenus[i][j]['choose']].height)/2)
|
||||
placetemp+=themenus[i][j]['icon'][themenus[i][j]['choose']].width
|
||||
else:
|
||||
drawsquare(placex,placey+(themenus[i][0]['size']-36)/2,placex+36,placey+(themenus[i][0]['size']-36)/2+36,1,themenus[i][j]['icon'])
|
||||
elif type(themenus[i][j]['icon']) is dict:
|
||||
drawitem(placex,placey,themenus[i][j]['icon'],themenus[i][j]['size'],10)
|
||||
elif type(themenus[i][j]['icon']) is str:
|
||||
if themenus[i][j].has_key('params'):
|
||||
eval(themenus[i][j]['icon']+"("+str(placex)+","+str(placey)+","+str(placex+themenus[i][j]['size'])+","+str(placey+themenus[i][0]['size']-15)+","+themenus[i][j]['params']+")")
|
||||
else:
|
||||
eval(themenus[i][j]['icon']+"("+str(placex)+","+str(placey)+","+str(placex+themenus[i][j]['size'])+","+str(placey+themenus[i][0]['size']-15)+")")
|
||||
else:
|
||||
glColor3ub(255,255,255)
|
||||
themenus[i][j]['icon'].blit(placex,placey+(themenus[i][0]['size']-themenus[i][j]['icon'].height)/2)
|
||||
placetemp+=themenus[i][j]['icon'].width
|
||||
if themenus[i][j]['separe']:
|
||||
drawsquare(5+placex+themenus[i][j]['size'],placey,6+placex+themenus[i][j]['size'],placey+themenus[i][0]['size'],0,[90,90,90])
|
||||
if themenus[i][j]['squarred']:
|
||||
if int(time.time())%2==0: drawsquare(placex,placey,placex+themenus[i][j]['size'],placey+themenus[i][0]['size'],1,[255,0,0,110])
|
||||
if themenus[i][j].has_key('text2'):
|
||||
txt_cout.text=eval(themenus[i][j]['text'])
|
||||
if int(eval(themenus[i][j]['text']))==0:
|
||||
txt_cout.color=(255, 0, 0,255)
|
||||
else:
|
||||
txt_cout.color=(180, 180, 180,255)
|
||||
txt_cout.x=placetemp+8
|
||||
txt_cout.y=placey+5
|
||||
txt_cout.draw()
|
||||
elif themenus[i][j].has_key('text'):
|
||||
txt_cout.text=eval(themenus[i][j]['text'])
|
||||
if int(eval(themenus[i][j]['text']))==0:
|
||||
txt_cout.color=(255, 0, 0,255)
|
||||
else:
|
||||
txt_cout.color=(180, 180, 180,255)
|
||||
txt_cout.x=placetemp+5
|
||||
txt_cout.y=placey+5
|
||||
txt_cout.draw()
|
||||
if themenus[i][0]['selectable']:
|
||||
if (themenus[i][0]['mouse'][0]==j):
|
||||
selectcolor=[255,0,0,40]
|
||||
elif (themenus[i][0]['mouse'][1]==j):
|
||||
selectcolor=[0,255,0,40]
|
||||
elif (themenus[i][0]['mouse'][2]==j):
|
||||
selectcolor=[0,0,255,40]
|
||||
else:
|
||||
selectcolor=[40,40,40,0]
|
||||
if play>0 and ((themenus[i][0]['mouse'][0]==j) or (themenus[i][0]['mouse'][1]==j) or (themenus[i][0]['mouse'][2]==j)):
|
||||
glLineWidth(random.randint(1,3))
|
||||
glLineStipple(random.randint(0,10),random.randint(0,65535))
|
||||
drawsquare(placex,placey+(themenus[i][0]['size']-themenus[i][j]['size'])/2,placex+themenus[i][0]['size']-13,placey+(themenus[i][0]['size']-themenus[i][j]['size']-8)/2+themenus[i][j]['size'],2,selectcolor)
|
||||
if play>0 and ((themenus[i][0]['mouse'][0]==j) or (themenus[i][0]['mouse'][1]==j) or (themenus[i][0]['mouse'][2]==j)):
|
||||
glLineStipple(random.randint(0,10),random.randint(0,65535))
|
||||
drawsquare(placex-1,placey-1,placex+themenus[i][j]['size']+1,placey+themenus[i][0]['size']+1,2,selectcolor)
|
||||
glLineStipple(0,65535)
|
||||
glLineWidth(1)
|
||||
placex+=themenus[i][j]['size']
|
||||
return
|
||||
|
||||
|
||||
def drawgrid(zoom):
|
||||
global temp,debug,over,allcout,play,element,seestat,art,users
|
||||
global temp,debug,over,allcout,play,element,seestat,art,users,menus
|
||||
glLineWidth(3)
|
||||
if play>0:
|
||||
drawsquare(decx-1+zoom,decy-1+zoom,decx+zoom*(sizex-1)+1,decy+zoom*(sizey-1)+2,0,[255,0,0])
|
||||
|
@ -771,280 +880,20 @@ def drawgrid(zoom):
|
|||
glVertex2i(x*zoom+decx,(y+1)*zoom+decy)
|
||||
glEnd()
|
||||
drawitem(x*zoom+decx,y*zoom+decy,art[wart(x,y)],zoom,getactive(x,y))
|
||||
drawsquare(0,win.height,win.width,win.height-50,1,[40,40,40])
|
||||
drawsquare(0,50,win.width,0,1,[40,40,40])
|
||||
if unroll==1:
|
||||
if debug==1:
|
||||
nbelements=44
|
||||
else:
|
||||
nbelements=29
|
||||
size=win.width/nbelements
|
||||
drawsquare(0,57+size,win.width,0,1,[40,40,40])
|
||||
cat=65555
|
||||
for i in range(nbelements):
|
||||
it=art[int("0x30000",16)+i]
|
||||
if it['tech']<=tech:
|
||||
drawitem(10+i*size,55,art[int("0x30000",16)+i],size-6,10)
|
||||
if it['cat']!=cat:
|
||||
drawsquare(7+i*size,55,8+i*size,55+size,0,[90,90,90])
|
||||
cat=it['cat']
|
||||
elif unroll==1.01:
|
||||
savenames=["#","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","ς","σ","τ","υ","φ","χ","ψ","ω"]
|
||||
nbelements=len(savenames)
|
||||
size=win.width/nbelements
|
||||
drawsquare(0,57+size,win.width,0,1,[40,40,40])
|
||||
drawsquare(7+1*size,55,8+1*size,55+size,0,[90,90,90])
|
||||
for i in range(nbelements):
|
||||
if savenames[i]=="#" or i<=len(users):
|
||||
drawitem(10+i*size,55,{'color': [220, 220, 220], 'text': savenames[i], 'activable': False},size-6,10)
|
||||
else:
|
||||
drawitem(10+i*size,55,{'color': [40, 40, 40], 'text': savenames[i], 'activable': False},size-6,10)
|
||||
drawsquare(win.width-409,win.height-45,win.width-369,win.height-5,1,[240,int(worlds[world][level]['_xx']/1024.0*120+100), int(worlds[world][level]['_xx']/1024.0*120+100)])
|
||||
txt_element.text=element
|
||||
txt_element.color=(int(worlds[world][level]['_xx']/1024.0*150),int(worlds[world][level]['_xx']/1024.0*150), int(worlds[world][level]['_xx']/1024.0*150),255)
|
||||
txt_element.x=win.width-384-len(element)*10
|
||||
txt_element.y=win.height-38
|
||||
txt_element.draw()
|
||||
addx=(win.width-1024)/4
|
||||
if addx<0: addx=0
|
||||
for i in range(4):
|
||||
if (i==0 and tech>0) or (i==1 and tech>6) or (i==2 and tech>7) or (i==3 and tech>8):
|
||||
glColor3ub(255,255,255)
|
||||
dat[int("0x10000",16)+i]['icon'].blit(10+i*(150+addx),win.height-45)
|
||||
if (tech>=5 and addx>100):
|
||||
txt_temp.text=str(eval(dat[int("0x10000",16)+i]['nom']))
|
||||
txt_temp.x=50+i*(150+addx)
|
||||
txt_temp.y=y=win.height-38
|
||||
txt_temp.color=(180, 180, 180,255)
|
||||
txt_temp.font_size=24
|
||||
txt_temp.draw()
|
||||
txt_temp.text="/"+str(eval("max"+dat[int("0x10000",16)+i]['nom']))
|
||||
if txt_temp.text=="/99999": txt_temp.text="/illimité".decode('utf-8')
|
||||
txt_temp.x=150+i*(150+addx)
|
||||
txt_temp.y=win.height-38
|
||||
txt_temp.color=(110, 110, 110,255)
|
||||
txt_temp.font_size=12
|
||||
txt_temp.draw()
|
||||
elif (tech>=5):
|
||||
txt_temp.text=str(eval(dat[int("0x10000",16)+i]['nom']))
|
||||
txt_temp.x=50+i*(150+addx)
|
||||
txt_temp.y=win.height-29
|
||||
txt_temp.color=(180, 180, 180,255)
|
||||
txt_temp.font_size=24
|
||||
txt_temp.draw()
|
||||
txt_temp.text=str(eval("max"+dat[int("0x10000",16)+i]['nom']))
|
||||
if txt_temp.text=="99999": txt_temp.text="illimité".decode('utf-8')
|
||||
txt_temp.x=50+i*(150+addx)
|
||||
txt_temp.y=win.height-47
|
||||
txt_temp.color=(110, 110, 110,255)
|
||||
txt_temp.font_size=12
|
||||
txt_temp.draw()
|
||||
else:
|
||||
txt_temp.text=str(eval(dat[int("0x10000",16)+i]['nom']))
|
||||
txt_temp.x=50+i*(150+addx)
|
||||
txt_temp.y=y=win.height-38
|
||||
txt_temp.color=(180, 180, 180,255)
|
||||
txt_temp.font_size=24
|
||||
txt_temp.draw()
|
||||
drawcondvictory(win.width-364,win.height-45,1020,win.height-5,[90,90,90])
|
||||
for i in range(16):
|
||||
glColor3ub(255,255,255)
|
||||
if dat[int("0x20000",16)+i]['icon']=="/":
|
||||
drawitem(10+i*45,8,dat[int("0x20000",16)+i]['ref'],36,10)
|
||||
elif dat[int("0x20000",16)+i]['icon']!="":
|
||||
dat[int("0x20000",16)+i]['icon'].blit(10+i*45,8)
|
||||
else:
|
||||
drawsquare(10+i*45,8,46+i*45,44,1,dat[int("0x20000",16)+i]['color'])
|
||||
if i==12 or i==7 or i==2 or i==4:
|
||||
drawsquare(5+i*45,8,6+i*45,44,0,[90,90,90])
|
||||
if i==1:
|
||||
drawsquare(45+i*45,8,49+i*45,44,1,[0,0,0])
|
||||
drawsquare(45+i*45,8,49+i*45,44*10*len(str(play))/100,1,[255,0,0])
|
||||
if (mousel==i):
|
||||
selectcolor=[255,0,0,40]
|
||||
elif (mouser==i):
|
||||
selectcolor=[0,255,0,40]
|
||||
elif (mousem==i):
|
||||
selectcolor=[0,0,255,40]
|
||||
else:
|
||||
selectcolor=[40,40,40,0]
|
||||
if play>0 and ((mousem==i) or (mousel==i) or (mouser==i)):
|
||||
glLineWidth(random.randint(1,3))
|
||||
glLineStipple(random.randint(0,10),random.randint(0,65535))
|
||||
drawsquare(10+i*45,8,46+i*45,44,2,selectcolor)
|
||||
if play>0 and ((mousem==i) or (mousel==i) or (mouser==i)):
|
||||
glLineStipple(random.randint(0,10),random.randint(0,65535))
|
||||
drawsquare(9+i*45,7,47+i*45,45,2,selectcolor)
|
||||
glLineStipple(0,65535)
|
||||
glLineWidth(1)
|
||||
drawsquare(5+16*45,8,6+16*45,44,0,[90,90,90])
|
||||
posx=10+16*45
|
||||
addx=130+win.width-1024
|
||||
if addx<500:
|
||||
drawstat(posx,8,posx+addx,44,[stat[0],stat[1],stat[3],stat[4],stat[5],stat[6],stat[2],stat[7],stat[8]],[art['headb2']['color'],art['headb']['color'],art['head']['color'],art['head2']['color'],art['headr']['color'],art['headr2']['color'],art['headp']['color'],art['neut']['color'],art['prot']['color']])
|
||||
else:
|
||||
drawstat(posx,8,posx+(addx-20)/2,44,[stat[0],stat[1],stat[3],stat[4],stat[5],stat[6]],[art['headb2']['color'],art['headb']['color'],art['head']['color'],art['head2']['color'],art['headr']['color'],art['headr2']['color']])
|
||||
drawstat(posx+(addx-20)/2+20,8,posx+addx,44,[stat[2],stat[7],stat[8]],[art['headp']['color'],art['neut']['color'],art['prot']['color']])
|
||||
if tech>=0:
|
||||
glColor3ub(255,255,255)
|
||||
dat['cout']['icon'].blit(posx+addx+4,7)
|
||||
txt_cout.text=str(cout-thecout)
|
||||
txt_cout.x=posx+addx+44
|
||||
if (cout-thecout)>0:
|
||||
txt_cout.color=(180, 180, 180,255)
|
||||
else:
|
||||
txt_cout.color=(255, 0, 0,255)
|
||||
txt_cout.draw()
|
||||
if tech>0:
|
||||
glColor3ub(255,255,255)
|
||||
dat['tech']['icon'].blit(posx+addx+109,7)
|
||||
txt_tech.x=posx+addx+144
|
||||
txt_tech.text=str(tech)
|
||||
txt_tech.draw()
|
||||
|
||||
drawmenu(menus)
|
||||
if seestat>=1: drawbigstat(seestat)
|
||||
if over>0: drawgameover()
|
||||
if over<0: drawvictory()
|
||||
if allcout[2]>0: drawpopup()
|
||||
return
|
||||
|
||||
''' *********************************************************************************************** '''
|
||||
''' Fonctions liees aux menus '''
|
||||
|
||||
def settings(dummy1,dummy2,dummy3,dummy4):
|
||||
global level,world
|
||||
reallystop()
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
level=-2
|
||||
|
||||
def raz(dummy1,dummy2,dummy3,dummy4):
|
||||
global unroll
|
||||
if unroll!=0:
|
||||
unroll=0
|
||||
else:
|
||||
unroll=1.01
|
||||
|
||||
def save(dummy1,dummy2,dummy3,dummy4):
|
||||
global world_art,world_dat,world,level,users
|
||||
users.append([datetime.datetime.now(),copy.deepcopy(world_new),copy.deepcopy(world_art)])
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
|
||||
def speed(x,y,dummy1,dummy2):
|
||||
global play,zoom
|
||||
if x==1980 and y==2:
|
||||
play=float(play)*2
|
||||
else:
|
||||
play=float(play)/2
|
||||
if play>=5:
|
||||
play=0.01953125
|
||||
if play<0.01953125:
|
||||
play=2.5
|
||||
clock.unschedule(calculate)
|
||||
clock.schedule_interval(calculate,play)
|
||||
|
||||
def others(x,y,dummy1,dummy2):
|
||||
global tech
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0 and (world_art[x][y]==0 or art[world_art[x][y]]['tech']<tech):
|
||||
value=dat['others']['ref']['value']
|
||||
if value==art['null']['value']:
|
||||
value=art['nothing']['value']
|
||||
if world_new[x][y]!=art['fiber']['value'] and world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-dat['others']['ref']['cout'] >= 0:
|
||||
world_art[x][y] = value
|
||||
infos()
|
||||
|
||||
def setnothinga(x,y,dummy1,dummy2):
|
||||
infos()
|
||||
|
||||
def setnothing(x,y,dummy1,dummy2):
|
||||
global tech
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_art[x][y] == art['nothing']['value']:
|
||||
world_new[x][y] = art['nothing']['value']
|
||||
elif art[world_art[x][y]]['tech']<=tech:
|
||||
world_art[x][y] = art['nothing']['value']
|
||||
infos()
|
||||
|
||||
def setcopper(x,y,dummy1,dummy2):
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-art['copper']['cout'] >= 0:
|
||||
world_new[x][y] = art['copper']['value']
|
||||
infos()
|
||||
|
||||
def setfiber(x,y,dummy1,dummy2):
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_art[x][y]==0 and world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-art['fiber']['cout'] >= 0:
|
||||
world_new[x][y]=art['fiber']['value']
|
||||
infos()
|
||||
|
||||
def levels(dummy1,dummy2,dummy3,dummy4):
|
||||
global level,world
|
||||
reallystop()
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
level=-1
|
||||
|
||||
def exits(dummy1,dummy2,dummy3,dummy4):
|
||||
if level>=0:
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
pyglet.app.exit()
|
||||
|
||||
def stater(dummy1,dummy2,dummy3,dummy4):
|
||||
global seestat
|
||||
if seestat>3:
|
||||
seestat=0
|
||||
else:
|
||||
seestat=seestat+1
|
||||
resize()
|
||||
|
||||
def stop(dummy1,dummy2,dummy3,dummy4):
|
||||
global play
|
||||
if play>0:
|
||||
reallystop()
|
||||
else:
|
||||
reallyrun()
|
||||
|
||||
def run(dummy1,dummy2,dummy3,dummy4):
|
||||
global play
|
||||
if play>0:
|
||||
reallystop()
|
||||
else:
|
||||
reallyrun()
|
||||
|
||||
def move(dummy1,dummy2,dx,dy):
|
||||
global decx,decy
|
||||
decx=decx+dx
|
||||
decy=decy+dy
|
||||
|
||||
def screen(dummy1,dummy2,dummy3,dummy4):
|
||||
if win.fullscreen:
|
||||
win.set_fullscreen(fullscreen=False)
|
||||
else:
|
||||
win.set_fullscreen(fullscreen=True)
|
||||
resize()
|
||||
|
||||
def zoomm(x,y,dummy1,dummy2):
|
||||
global zoom,decx,decy
|
||||
if zoom>2:
|
||||
decx=decx+2*x
|
||||
decy=decy+2*y
|
||||
zoom=zoom-2
|
||||
|
||||
def zoomp(x,y,dummy1,dummy2):
|
||||
global zoom,decx,decy
|
||||
decx=decx-2*x
|
||||
decy=decy-2*y
|
||||
zoom=zoom+2
|
||||
|
||||
''' *********************************************************************************************** '''
|
||||
''' Fonctions gestion du monde '''
|
||||
|
||||
def reallystop():
|
||||
global play,world,level,stat,stat_var,current,cycle,temp,nrj,rayon
|
||||
dat['run']['value']='stop'
|
||||
play=0
|
||||
clock.unschedule(calculate)
|
||||
current=copy.deepcopy(worlds[world][level]['current'])
|
||||
|
@ -1063,7 +912,6 @@ def reallystop():
|
|||
def reallyrun():
|
||||
global play
|
||||
play=0.15625
|
||||
dat['run']['value']='run'
|
||||
clock.schedule_interval(calculate,play)
|
||||
|
||||
def retriern():
|
||||
|
@ -1467,6 +1315,12 @@ pic_arrows=image.load("picture/arrows.png")
|
|||
pic_arrows2=image.load("picture/arrows2.png")
|
||||
pic_levels2=image.load("picture/levels2.png")
|
||||
pic_locked=image.load("picture/locked.png")
|
||||
pic_cycle=image.load("picture/cycle.png")
|
||||
pic_nrj=image.load("picture/nrj.png")
|
||||
pic_temp=image.load("picture/temp.png")
|
||||
pic_rayon=image.load("picture/rayon.png")
|
||||
pic_cout=image.load("picture/cout.png")
|
||||
pic_tech=image.load("picture/tech.png")
|
||||
document=pyglet.text.decode_attributed("test")
|
||||
txt_description=pyglet.text.layout.TextLayout(document,dpi=72,multiline=True,width=732,height=140)
|
||||
txt_description.x=8
|
||||
|
@ -1494,9 +1348,223 @@ txt_temp=pyglet.text.Label("",font_name='Mechanihan',font_size=20,x=0,y=0,bold=F
|
|||
txt_son=pyglet.text.Label("Reglages du son",font_name='Mechanihan',font_size=30,x=0,y=0,bold=False,italic=False,color=(180, 180, 180,255))
|
||||
txt_video=pyglet.text.Label("Options Video",font_name='Mechanihan',font_size=30,x=0,y=0,bold=False,italic=False,color=(180, 180, 180,255))
|
||||
|
||||
''' *********************************************************************************************** '''
|
||||
''' Fonctions liees aux menus '''
|
||||
|
||||
def settings(dummy1,dummy2,dummy3,dummy4):
|
||||
global level,world
|
||||
reallystop()
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
level=-2
|
||||
|
||||
def loadfromit(dummy1,dummy2,dummy3,dummy4,save):
|
||||
global users,world_art,world_new,world,level
|
||||
if save<99999:
|
||||
world_new=copy.deepcopy(users[save][1])
|
||||
world_art=copy.deepcopy(users[save][2])
|
||||
else:
|
||||
readlevel(world,level,False)
|
||||
|
||||
def loadfrom(dummy1,dummy2,dummy3,dummy4):
|
||||
global menus,savenames,users
|
||||
if menus[2][0]['visible']:
|
||||
menus[2][0]['visible']=False
|
||||
return
|
||||
if len(menus[2])<10:
|
||||
menus[2].append({'nom': 'loadfromit', 'params': 99999, 'tech':1, 'popup':'Version originale', 'size':0,'drag': False, 'icon': {'color': [220, 220, 220], 'text': '#', 'activable': False},'variable':False,'visible':True,'separe':True,'squarred':False})
|
||||
for i in range(1,len(savenames)):
|
||||
if i<=len(users):
|
||||
menus[2].append({'nom': 'loadfromit', 'params': len(users)-i, 'tech':1, 'popup':users[len(users)-i][0].strftime("%Y-%m-%d %H:%M"), 'size':0,'drag': False, 'icon': {'color': [220, 220, 220], 'text': savenames[i], 'activable': False},'variable':False,'visible':True,'separe':False,'squarred':False})
|
||||
else:
|
||||
menus[2].append({'nom': 'setnothinga', 'tech':1, 'popup':0, 'size':0,'drag': False, 'icon': {'color': [40, 40, 40], 'text': savenames[i], 'activable': False},'variable':False,'visible':True,'separe':False,'squarred':False})
|
||||
else:
|
||||
for i in range(1,len(savenames)):
|
||||
if i<=len(users):
|
||||
menus[2][i]['popup']=users[len(users)-i][0].strftime("%Y-%m-%d %H:%M")
|
||||
menus[2][i]['icon']['color']=[220, 220, 220]
|
||||
else:
|
||||
menus[2][i]['popup']=0
|
||||
menus[2][i]['icon']['color']=[40, 40, 40]
|
||||
menus[2][0]['visible']=True
|
||||
|
||||
def save(dummy1,dummy2,dummy3,dummy4):
|
||||
global world_art,world_dat,world,level,users
|
||||
users.append([datetime.datetime.now(),copy.deepcopy(world_new),copy.deepcopy(world_art)])
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
|
||||
def speed(x,y,dummy1,dummy2):
|
||||
global play,zoom
|
||||
if x==1980 and y==2:
|
||||
play=float(play)*2
|
||||
else:
|
||||
play=float(play)/2
|
||||
if play>=5:
|
||||
play=0.01953125
|
||||
if play<0.01953125:
|
||||
play=2.5
|
||||
clock.unschedule(calculate)
|
||||
clock.schedule_interval(calculate,play)
|
||||
|
||||
def others(x,y,dummy1,dummy2):
|
||||
global tech,menus
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0 and (world_art[x][y]==0 or art[world_art[x][y]]['tech']<tech):
|
||||
value=menus[0][18]['icon']['value']
|
||||
if value==art['null']['value']:
|
||||
value=art['nothing']['value']
|
||||
if world_new[x][y]!=art['fiber']['value'] and world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-menus[0][18]['icon']['cout'] >= 0:
|
||||
world_art[x][y] = value
|
||||
infos()
|
||||
|
||||
def setnothinga(x,y,dummy1,dummy2):
|
||||
infos()
|
||||
|
||||
def setnothing(x,y,dummy1,dummy2):
|
||||
global tech
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_art[x][y] == art['nothing']['value']:
|
||||
world_new[x][y] = art['nothing']['value']
|
||||
elif art[world_art[x][y]]['tech']<=tech:
|
||||
world_art[x][y] = art['nothing']['value']
|
||||
infos()
|
||||
|
||||
def setcopper(x,y,dummy1,dummy2):
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-art['copper']['cout'] >= 0:
|
||||
world_new[x][y] = art['copper']['value']
|
||||
infos()
|
||||
|
||||
def setfiber(x,y,dummy1,dummy2):
|
||||
if x>=1 and y>=1 and x<sizex-1 and y<sizey-1 and play==0:
|
||||
if world_art[x][y]==0 and world_new[x][y]<art['tail']['value']:
|
||||
if cout-thecout-art['fiber']['cout'] >= 0:
|
||||
world_new[x][y]=art['fiber']['value']
|
||||
infos()
|
||||
|
||||
def tutoriel(dummy1,dummy2,dummy3,dummy4):
|
||||
print "tuto"
|
||||
|
||||
def popup(dummy1,dummy2,dummy3,dummy4):
|
||||
print "popup"
|
||||
|
||||
def simple(dummy1,dummy2,dummy3,dummy4):
|
||||
print "simple"
|
||||
|
||||
def levels(dummy1,dummy2,dummy3,dummy4):
|
||||
global level,world
|
||||
reallystop()
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
level=-1
|
||||
|
||||
def exits(dummy1,dummy2,dummy3,dummy4):
|
||||
if level>=0:
|
||||
savelevel(world,level)
|
||||
sync()
|
||||
pyglet.app.exit()
|
||||
|
||||
def stater(dummy1,dummy2,dummy3,dummy4):
|
||||
global seestat
|
||||
if seestat>3:
|
||||
seestat=0
|
||||
else:
|
||||
seestat=seestat+1
|
||||
resize()
|
||||
|
||||
def stop(dummy1,dummy2,dummy3,dummy4):
|
||||
reallystop()
|
||||
|
||||
def run(dummy1,dummy2,dummy3,dummy4):
|
||||
reallyrun()
|
||||
|
||||
def move(dummy1,dummy2,dx,dy):
|
||||
global decx,decy
|
||||
decx=decx+dx
|
||||
decy=decy+dy
|
||||
|
||||
def screen(dummy1,dummy2,dummy3,dummy4):
|
||||
if win.fullscreen:
|
||||
win.set_fullscreen(fullscreen=False)
|
||||
else:
|
||||
win.set_fullscreen(fullscreen=True)
|
||||
resize()
|
||||
|
||||
def zoomm(x,y,dummy1,dummy2):
|
||||
global zoom,decx,decy
|
||||
if zoom>2:
|
||||
decx=decx+2*x
|
||||
decy=decy+2*y
|
||||
zoom=zoom-2
|
||||
|
||||
def zoomp(x,y,dummy1,dummy2):
|
||||
global zoom,decx,decy
|
||||
decx=decx-2*x
|
||||
decy=decy-2*y
|
||||
zoom=zoom+2
|
||||
|
||||
|
||||
''' *********************************************************************************************** '''
|
||||
''' Fonctions evenementielles liees a la fenetre '''
|
||||
''' Fonctions liée à la gestion des menus '''
|
||||
|
||||
def testmenu(themenus,x,y,dx,dy,buttons,modifiers):
|
||||
global tech,play,decx,decy,zoom
|
||||
allcout[2]=0
|
||||
for i in range(len(themenus)):
|
||||
if themenus[i][0]['visible']:
|
||||
if themenus[i][0]['place']=='bottom':
|
||||
placey=8
|
||||
elif themenus[i][0]['place']=='top':
|
||||
placey=win.height-themenus[i][0]['size']+8
|
||||
else:
|
||||
for search in themenus:
|
||||
if search[0]['place']=='bottom':
|
||||
placey=search[0]['size']+8
|
||||
break
|
||||
placex=0
|
||||
for j in range(1,len(themenus[i])):
|
||||
if themenus[i][j]['size']<30: continue
|
||||
if not themenus[i][j]['visible']: continue
|
||||
if themenus[i][j]['tech']>tech:
|
||||
placex+=themenus[i][j]['size']
|
||||
continue
|
||||
if x>placex and x<placex+themenus[i][j]['size'] and y>placey and y<placey+themenus[i][0]['size']-8:
|
||||
if buttons>0:
|
||||
realx=(x-decx)/zoom
|
||||
realy=(y-decy)/zoom
|
||||
if themenus[i][0]['selectable']:
|
||||
themenus[i][0]['mouse'][buttons-1]=j
|
||||
if themenus[i][j].has_key('choose'):
|
||||
eval(themenus[i][j]['nom'][themenus[i][j]['choose']]+"("+str(realx)+","+str(realy)+","+str(dx)+","+str(dy)+")")
|
||||
themenus[i][j]['choose']+=1
|
||||
if themenus[i][j]['choose']>=len(themenus[i][j]['nom']):
|
||||
themenus[i][j]['choose']=0
|
||||
else:
|
||||
eval(themenus[i][j]['nom']+"("+str(realx)+","+str(realy)+","+str(dx)+","+str(dy)+")")
|
||||
else:
|
||||
allcout[0]=x
|
||||
allcout[1]=y
|
||||
if type(themenus[i][j]['nom']) is list:
|
||||
allcout[2]=themenus[i][j]['popup'][themenus[i][j]['choose']]
|
||||
else:
|
||||
allcout[2]=themenus[i][j]['popup']
|
||||
placex+=themenus[i][j]['size']
|
||||
return
|
||||
|
||||
def testgrid(themenus,x,y,dx,dy,buttons,modifiers):
|
||||
for i in range(len(themenus)):
|
||||
if themenus[i][0]['visible'] and themenus[i][0]['selectable']:
|
||||
for j in range(3):
|
||||
if themenus[i][themenus[i][0]['mouse'][j]]['drag'] and buttons==j+1:
|
||||
realx=(x-decx)/zoom
|
||||
realy=(y-decy)/zoom
|
||||
eval(themenus[i][themenus[i][0]['mouse'][j]]['nom']+"("+str(realx)+","+str(realy)+","+str(dx)+","+str(dy)+")")
|
||||
break
|
||||
|
||||
''' *********************************************************************************************** '''
|
||||
''' Fonctions evenementielles '''
|
||||
|
||||
@win.event
|
||||
def on_key_press(symbol, modifiers):
|
||||
|
@ -1525,24 +1593,9 @@ def on_key_press(symbol, modifiers):
|
|||
|
||||
@win.event
|
||||
def on_mouse_motion(x, y, dx, dy):
|
||||
global world,selected,allcout,over,level,worlds,finished
|
||||
global world,selected,allcout,over,level,worlds,finished,users,menus
|
||||
if level>=0:
|
||||
realx=(x-decx)/zoom
|
||||
realy=(y-decy)/zoom
|
||||
if unroll==1:
|
||||
if debug==1:
|
||||
nbelements=44
|
||||
else:
|
||||
nbelements=29
|
||||
size=win.width/nbelements
|
||||
allcout[2]=0
|
||||
allcout[0]=x
|
||||
allcout[1]=y
|
||||
for i in range(nbelements):
|
||||
if x>=5+i*size and x<=5+i*size+size and y>=55 and y<55+size:
|
||||
if art[int("0x30000",16)+i]['tech']<=tech:
|
||||
allcout[2]=art[int("0x30000",16)+i]
|
||||
return
|
||||
testmenu(menus,x,y,dx,dy,0,0)
|
||||
selected=-1
|
||||
for l in range(len(worlds[world])):
|
||||
ele=worlds[world][l]
|
||||
|
@ -1557,7 +1610,7 @@ def on_mouse_motion(x, y, dx, dy):
|
|||
|
||||
@win.event
|
||||
def on_mouse_drag(x, y, dx, dy, buttons, modifiers):
|
||||
global zoom,mousel,mouser,mousem,over,level,unroll
|
||||
global zoom,over,level,menus
|
||||
if player.source and player.source.video_format:
|
||||
player.next()
|
||||
ambiance.play()
|
||||
|
@ -1569,21 +1622,11 @@ def on_mouse_drag(x, y, dx, dy, buttons, modifiers):
|
|||
itsvictory_ok()
|
||||
return
|
||||
if level<0: return
|
||||
realx=(x-decx)/zoom
|
||||
realy=(y-decy)/zoom
|
||||
mouses=23
|
||||
if buttons == mouse.LEFT:
|
||||
mouses=mousel
|
||||
if buttons == mouse.RIGHT:
|
||||
mouses=mouser
|
||||
if buttons == mouse.MIDDLE:
|
||||
mouses=mousem
|
||||
if mouses!=23 and dat[int("0x20000",16)+mouses]['drag']==1 and (unroll==0 or y>100) and (y>50):
|
||||
eval(dat[int("0x20000",16)+mouses]['nom']+"("+str(realx)+","+str(realy)+","+str(dx)+","+str(dy)+")")
|
||||
testgrid(menus,x,y,dx,dy,[mouse.LEFT,mouse.MIDDLE,mouse.RIGHT].index(buttons)+1, modifiers)
|
||||
|
||||
@win.event
|
||||
def on_mouse_press(x, y, button, modifiers):
|
||||
global zoom,mousel,mouser,mousem,unroll,over,level,selected,world,users,world_new,world_art
|
||||
global zoom,over,level,selected,world,users,world_new,world_art,menus
|
||||
if player.source and player.source.video_format:
|
||||
player.next()
|
||||
ambiance.play()
|
||||
|
@ -1611,60 +1654,8 @@ def on_mouse_press(x, y, button, modifiers):
|
|||
ambiance.pause()
|
||||
selected=-1
|
||||
return
|
||||
realx=(x-decx)/zoom
|
||||
realy=(y-decy)/zoom
|
||||
for i in range(16):
|
||||
if x>=10+i*45 and x<=49+i*45 and y>=8 and y<44:
|
||||
if 'color' in dat[int("0x20000",16)+i] and dat[int("0x20000",16)+i]['color']!=[40,40,40]:
|
||||
if button == mouse.LEFT:
|
||||
mousel=i
|
||||
if button == mouse.RIGHT:
|
||||
mouser=i
|
||||
if button == mouse.MIDDLE:
|
||||
mousem=i
|
||||
if button!="" and i==15:
|
||||
if unroll!=0:
|
||||
unroll=0
|
||||
else:
|
||||
unroll=1
|
||||
if i>=12: return
|
||||
if unroll==1:
|
||||
if debug==1:
|
||||
nbelements=44
|
||||
else:
|
||||
nbelements=29
|
||||
size=win.width/nbelements
|
||||
for i in range(nbelements):
|
||||
if x>=5+i*size and x<=5+i*size+size and y>=55 and y<55+size:
|
||||
if art[int("0x30000",16)+i]['tech']<=tech:
|
||||
dat['others']['ref']=art[int("0x30000",16)+i]
|
||||
if button == mouse.LEFT:
|
||||
mousel=15
|
||||
if button == mouse.RIGHT:
|
||||
mouser=15
|
||||
if button == mouse.MIDDLE:
|
||||
mousem=15
|
||||
return
|
||||
elif unroll==1.01:
|
||||
nbelements=26
|
||||
size=win.width/nbelements
|
||||
for i in range(nbelements):
|
||||
if x>=5+i*size and x<=5+i*size+size and y>=55 and y<55+size:
|
||||
if i==0:
|
||||
readlevel(world,level,False)
|
||||
else:
|
||||
world_new=copy.deepcopy(users[len(users)-i][1])
|
||||
world_art=copy.deepcopy(users[len(users)-i][2])
|
||||
return
|
||||
mouses=23
|
||||
if button == mouse.LEFT:
|
||||
mouses=mousel
|
||||
if button == mouse.RIGHT:
|
||||
mouses=mouser
|
||||
if button == mouse.MIDDLE:
|
||||
mouses=mousem
|
||||
if mouses!=23:
|
||||
eval(dat[int("0x20000",16)+mouses]['nom']+"("+str(realx)+","+str(realy)+","+str(0)+","+str(0)+")")
|
||||
testmenu(menus,x,y,0,0,[mouse.LEFT,mouse.MIDDLE,mouse.RIGHT].index(button)+1,modifiers)
|
||||
testgrid(menus,x,y,0,0,[mouse.LEFT,mouse.MIDDLE,mouse.RIGHT].index(button)+1, modifiers)
|
||||
|
||||
@win.event
|
||||
def on_resize(width,height):
|
||||
|
|
109
dbsrc
109
dbsrc
|
@ -70,7 +70,8 @@ worlds=[[{'nom': 'Introduction',
|
|||
'rayon': 0,
|
||||
'cycle': 0,
|
||||
'tech': -1,
|
||||
'cout': 0}, {'nom': 'Trajectoires',
|
||||
'cout': 0},
|
||||
{'nom': 'Trajectoires',
|
||||
'maxtemp': 99999,
|
||||
'world_art': [[0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
|
@ -786,7 +787,7 @@ worlds=[[{'nom': 'Introduction',
|
|||
'element': 'Li',
|
||||
'current': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
'_xx': 300,
|
||||
'victory': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1],
|
||||
'victory': [0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 4],
|
||||
'_yy': 320,
|
||||
'link': [(1, 6)],
|
||||
'video': False,
|
||||
|
@ -956,7 +957,8 @@ worlds=[[{'nom': 'Introduction',
|
|||
'cycle': 0,
|
||||
'tech': 4,
|
||||
'cout': 1200}]]
|
||||
art={196608: {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0], 'text': '', 'value': 196608, 'cat': 0, 'tech': 0, 'activable': False},
|
||||
art={
|
||||
196608: {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0], 'text': '', 'value': 196608, 'cat': 0, 'tech': 0, 'activable': False},
|
||||
196609: {'nrj': 0, 'cout': 60, 'temp': 0.05, 'nom': 'positiver', 'color': [255, 0, 0], 'text': '+', 'value': 196609, 'cat': 1, 'tech': 2, 'activable': True},
|
||||
196610: {'nrj': 0, 'cout': 60, 'temp': 0.05, 'nom': 'negativer', 'color': [0, 0, 255], 'text': '-', 'value': 196610, 'cat': 1, 'tech': 4, 'activable': True},
|
||||
196611: {'nrj': 0, 'cout': 20, 'temp': 0.05, 'nom': 'inverter', 'color': [125, 13, 114], 'text': '\xc2\xb1', 'value': 196611, 'cat': 1, 'tech': 1, 'activable': False},
|
||||
|
@ -1012,48 +1014,69 @@ art={196608: {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0],
|
|||
196661: {'nrj': 0, 'cout': 300, 'temp': 0.05, 'nom': 'triern0-4a', 'color': [255, 255, 255], 'text': '0', 'value': 196661, 'cat': 7, 'tech': 0, 'activable': True},
|
||||
196662: {'nrj': 0, 'cout': 25, 'temp': 0.05, 'nom': 'dir3', 'color': [125, 13, 114], 'text': '\xe2\x96\xb2', 'value': 196662, 'cat': 2, 'tech': 5, 'activable': False},
|
||||
196663: {'nrj': 0, 'cout': 25, 'temp': 0.05, 'nom': 'dir4', 'color': [125, 13, 114], 'text': '\xe2\x96\xbc', 'value': 196663, 'cat': 2, 'tech': 5, 'activable': False},
|
||||
1: {'color': [240, 100, 38], 'nom': 'copper', 'cout': 1, 'value': 1},
|
||||
4608: {'color': [50, 50, 200], 'nom': 'headb', 'cout': 1, 'value': 4608},
|
||||
32: {'color': [80, 80, 80], 'nom': 'tail2', 'cout': 1, 'value': 32},
|
||||
2: {'color': [208, 213, 79], 'nom': 'fiber', 'cout': 5, 'value': 2},
|
||||
8192: {'color': [40, 40, 40], 'nom': 'head2', 'cout': 1, 'value': 8192},
|
||||
33: {'color': [150, 50, 50], 'nom': 'tailr2', 'cout': 1, 'value': 33},
|
||||
4352: {'color': [200, 50, 50], 'nom': 'headr', 'cout': 1, 'value': 4352},
|
||||
34: {'color': [50, 50, 150], 'nom': 'tailb2', 'cout': 1, 'value': 34},
|
||||
4864: {'color': [44, 120, 44], 'nom': 'headp', 'cout': 5, 'value': 4864},
|
||||
8448: {'color': [255, 0, 0], 'nom': 'headr2', 'cout': 1, 'value': 8448},
|
||||
0: {'color': [0, 0, 0], 'nom': 'nothing', 'cout': 0, 'value': 0},
|
||||
1: {'color': [240, 100, 38], 'nom': 'copper', 'cout': 1, 'value': 1},
|
||||
2: {'color': [208, 213, 79], 'nom': 'fiber', 'cout': 5, 'value': 2},
|
||||
4: {'color': [122, 49, 25], 'nom': 'prot', 'cout': 0, 'value': 4},
|
||||
5: {'color': [75, 119, 157], 'nom': 'neut', 'cout': 0, 'value': 5},
|
||||
16: {'color': [80, 80, 80], 'nom': 'tail', 'cout': 1, 'value': 16},
|
||||
17: {'color': [150, 50, 50], 'nom': 'tailr', 'cout': 1, 'value': 17},
|
||||
18: {'color': [50, 50, 150], 'nom': 'tailb', 'cout': 1, 'value': 18},
|
||||
4096: {'color': [60, 60, 60], 'nom': 'head', 'cout': 1, 'value': 4096},
|
||||
19: {'color': [68, 165, 68], 'nom': 'tailp', 'cout': 5, 'value': 19},
|
||||
8704: {'color': [0, 0, 255], 'nom': 'headb2', 'cout': 1, 'value': 8704},
|
||||
5: {'color': [75, 119, 157], 'nom': 'neut', 'cout': 0, 'value': 5},
|
||||
4: {'color': [122, 49, 25], 'nom': 'prot', 'cout': 0, 'value': 4}}
|
||||
dat={65536: {'nom': 'cycle', 'value': 65536, 'icon': '%picture/cycle.png'},
|
||||
131073: {'nom': 'speed', 'color': '', 'value': 131073, 'drag': 0, 'ref': '', 'icon': '%picture/speed.png'},
|
||||
65538: {'nom': 'rayon', 'value': 65538, 'icon': '%picture/rayon.png'},
|
||||
65539: {'nom': 'temp', 'value': 65539, 'icon': '%picture/temp.png'},
|
||||
65540: {'nom': 'cout', 'value': 65540, 'icon': '%picture/cout.png'},
|
||||
65541: {'nom': 'tech', 'value': 65541, 'icon': '%picture/tech.png'},
|
||||
131072: {'nom': 'run', 'color': '', 'value': 131072, 'drag': 0, 'ref': '', 'icon': '%picture/stop.png'},
|
||||
131080: {'nom': 'levels', 'color': '', 'value': 131080, 'drag': 0, 'ref': '', 'icon': '%picture/levels.png'},
|
||||
131081: {'nom': 'screen', 'color': '', 'value': 131081, 'drag': 0, 'ref': '', 'icon': '%picture/screen.png'},
|
||||
131082: {'nom': 'settings', 'color': '', 'value': 131082, 'drag': 0, 'ref': '', 'icon': '%picture/settings.png'},
|
||||
131083: {'nom': 'exits', 'color': '', 'value': 131083, 'drag': 0, 'ref': '', 'icon': '%picture/exits.png'},
|
||||
131084: {'nom': 'setcopper', 'color': [240, 100, 38], 'value': 131084, 'drag': 1, 'ref': '', 'icon': ''},
|
||||
131085: {'nom': 'setfiber', 'color': [208, 213, 79], 'value': 131085, 'drag': 1, 'ref': '', 'icon': ''},
|
||||
131086: {'nom': 'setnothing', 'color': [0, 0, 0], 'value': 131086, 'drag': 1, 'ref': '', 'icon': ''},
|
||||
131087: {'nom': 'others', 'color': '', 'value': 131087, 'drag': 1, 'ref': {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0], 'text': '', 'value': 196608, 'cat': 0, 'tech': 0, 'activable': False},
|
||||
'icon': '/'},
|
||||
131088: {'nom': 'setnothinga', 'color': [40, 40, 40], 'value': 131088, 'drag': 1, 'ref': '', 'icon': ''},
|
||||
131089: {'nom': 'stop', 'color': '', 'value': 131089, 'drag': 0, 'ref': '', 'icon': '%picture/run.png'},
|
||||
131076: {'nom': 'move', 'color': '', 'value': 131076, 'drag': 1, 'ref': '', 'icon': '%picture/move.png'},
|
||||
131077: {'nom': 'zoomp', 'color': '', 'value': 131077, 'drag': 0, 'ref': '', 'icon': '%picture/zoomp.png'},
|
||||
131078: {'nom': 'zoomm', 'color': '', 'value': 131078, 'drag': 0, 'ref': '', 'icon': '%picture/zoomm.png'},
|
||||
65537: {'nom': 'nrj', 'value': 65537, 'icon': '%picture/nrj.png'},
|
||||
131079: {'nom': 'stater', 'color': '', 'value': 131079, 'drag': 0, 'ref': '', 'icon': '%picture/stat.png'},
|
||||
131075: {'nom': 'save', 'color': '', 'value': 131075, 'drag': 0, 'ref': '', 'icon': '%picture/save.png'},
|
||||
131074: {'nom': 'raz', 'color': '', 'value': 131074, 'drag': 0, 'ref': '', 'icon': '%picture/raz.png'}}
|
||||
write("dbdata",["worlds","art","dat"])
|
||||
32: {'color': [80, 80, 80], 'nom': 'tail2', 'cout': 1, 'value': 32},
|
||||
33: {'color': [150, 50, 50], 'nom': 'tailr2', 'cout': 1, 'value': 33},
|
||||
34: {'color': [50, 50, 150], 'nom': 'tailb2', 'cout': 1, 'value': 34},
|
||||
4096: {'color': [60, 60, 60], 'nom': 'head', 'cout': 1, 'value': 4096},
|
||||
4352: {'color': [200, 50, 50], 'nom': 'headr', 'cout': 1, 'value': 4352},
|
||||
4608: {'color': [50, 50, 200], 'nom': 'headb', 'cout': 1, 'value': 4608},
|
||||
4864: {'color': [44, 120, 44], 'nom': 'headp', 'cout': 5, 'value': 4864},
|
||||
8192: {'color': [40, 40, 40], 'nom': 'head2', 'cout': 1, 'value': 8192},
|
||||
8448: {'color': [255, 0, 0], 'nom': 'headr2', 'cout': 1, 'value': 8448},
|
||||
8704: {'color': [0, 0, 255], 'nom': 'headb2', 'cout': 1, 'value': 8704}}
|
||||
|
||||
menus=[
|
||||
[
|
||||
{'place':'bottom','visible':True,'size':50,'variable':False,'selectable':True,'mouse':[1,2,3]},
|
||||
{'nom': ['run','stop'], 'tech':-1, 'popup':['Simuler','Fin simulation'], 'size':45, 'drag': False, 'icon': ['picture/run.png','picture/stop.png'], 'choose': 0,'variable':False,'visible':True,'separe':False,'squarred':True},
|
||||
{'nom': 'speed', 'tech':0, 'popup':'Vitesse', 'size':45, 'drag': False, 'icon': 'picture/speed.png','variable':False,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'loadfrom', 'tech':1, 'popup':'Charger', 'size':45,'drag': False,'icon': 'picture/raz.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'save', 'tech':1, 'popup':'Enregistrer', 'size':45,'drag': False,'icon': 'picture/save.png','variable':False,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'move', 'tech':-1, 'popup':'Deplacer', 'size':45, 'drag': True,'icon': 'picture/move.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'zoomp','tech':-1, 'popup':'Zommer', 'size':45, 'drag': False, 'icon': 'picture/zoomp.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'zoomm', 'tech':-1, 'popup':'Dezommer', 'size':45, 'drag': False, 'icon': 'picture/zoomm.png','variable':False,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'stater', 'tech':2, 'popup':'Statistiques...', 'size':45,'drag': False, 'icon': 'picture/stat.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'levels', 'tech':-1, 'popup':'Laboratoires', 'size':45, 'drag': False,'icon': 'picture/levels.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': ['fullscreen','windowed'], 'tech':-1, 'popup':['Plein ecran','Fenetre'], 'size':45, 'drag': False, 'icon': ['picture/screen.png','picture/windows.png'], 'choose': 0,'variable':False,'visible':False,'separe':False,'squarred':False},
|
||||
{'nom': ['sound','nosound'], 'tech':-1, 'popup':['Activer son','Desactiver son'], 'size':45, 'drag': False, 'icon': ['picture/sound.png','picture/nosound.png'], 'choose': 0,'variable':False,'visible':False,'separe':False,'squarred':False},
|
||||
{'nom': ['tutoriel','popup','simple'], 'tech':-1, 'popup':['Activer Tutoriel','Activer Popup','Sans aide/Tutoriel',], 'size':45, 'drag': False, 'icon': ['picture/tuto.png','picture/popup.png','picture/nothing.png'], 'choose': 0,'variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'settings', 'tech':-1, 'popup':'Options...', 'size':45, 'drag': False, 'icon': 'picture/settings.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'exits', 'tech':-1, 'popup':'Quitter', 'size':45,'drag': False,'icon': 'picture/exits.png','variable':False,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'setcopper', 'tech':0, 'popup':'Cuivre', 'size':45,'drag': True, 'icon': [240, 100, 38],'variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'setfiber', 'tech':2, 'popup':'Fibre', 'size':45,'drag': True, 'icon': [208, 213, 79],'variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'setnothing', 'tech':0, 'popup':'Effacer', 'size':45,'drag': True, 'icon': [0, 0, 0],'variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'others', 'tech':2, 'popup':'Transmuteurs', 'size':45,'drag': True, 'icon': '','variable':False,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'stat', 'tech':2, 'popup':'Statistiques', 'size':0,'drag': False, 'icon': 'drawstat', 'icon_params': '''[stat[0],stat[1],stat[3],stat[4],stat[5],stat[6],stat[2],stat[7],stat[8]],[art['headb2']['color'],art['headb']['color'],art['head']['color'],art['head2']['color'],art['headr']['color'],art['headr2']['color'],art['headp']['color'],art['neut']['color'],art['prot']['color']]''', 'variable':True,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'stat1', 'tech':2, 'popup':'Statistiques', 'size':0,'drag': False, 'icon': 'drawstat', 'icon_params': '''[stat[0],stat[1],stat[3],stat[4],stat[5],stat[6]],[art['headb2']['color'],art['headb']['color'],art['head']['color'],art['head2']['color'],art['headr']['color'],art['headr2']['color']]''', 'variable':True,'visible':False,'separe':False,'squarred':False},
|
||||
{'nom': 'stat2', 'tech':2, 'popup':'Statistiques hors electrons', 'size':0,'drag': False, 'icon': 'drawstat', 'icon_params': '''[stat[2],stat[7],stat[8]],[art['headp']['color'],art['neut']['color'],art['prot']['color']]''','variable':True,'visible':False,'separe':True,'squarred':False},
|
||||
{'nom': 'cout', 'tech':0,'text':'str(cout-thecout)', 'popup':'Argent', 'size':140,'drag': False, 'icon': 'picture/cout.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'tech', 'tech':1,'text':'str(tech)', 'popup':'Degre technologique', 'size':65,'drag': False, 'icon': 'picture/tech.png','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
]
|
||||
,
|
||||
[
|
||||
{'place':'top','visible':True,'variable':False,'size':50,'selectable':False},
|
||||
{'nom': 'cycle','text':'str(cycle)','text2':"if maxcycle<99999: return str(maxcycle) else: return 'illimite'", 'tech':-2, 'popup':'Nb de cycles', 'size':0, 'drag': False, 'icon': 'picture/cycle.png', 'variable':True,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'nrj','text':'str(nrj)','text2':"if maxnrj<99999: return str(maxnrj) else: return 'illimite'", 'tech':5, 'popup':'Quantite energie', 'size':0, 'drag': False, 'icon': 'picture/nrj.png','variable':True,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'rayon','text':'str(rayon)','text2':"if maxrayon<99999: return str(maxrayon) else: return 'illimite'", 'tech':6, 'popup':'Niveau de rayonnements', 'size':0,'drag': False,'icon': 'picture/rayon.png','variable':True,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'temp','text':'str(temp)','text2':"if maxtemp<99999: return str(maxtemp) else: return 'illimite'", 'tech':7, 'popup':'Temperature ambiante', 'size':0,'drag': False,'icon': 'picture/temp.png','variable':True,'visible':True,'separe':True,'squarred':False},
|
||||
{'nom': 'objectif', 'tech':-1, 'popup':'Objectif a atteindre', 'size':44, 'drag': True,'icon': 'drawelement','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
{'nom': 'condition', 'tech':0, 'popup':'Conditions de victoire', 'size':300, 'drag': False, 'icon': 'drawcondvictory','icon_params': '[90,90,90]','variable':False,'visible':True,'separe':False,'squarred':False},
|
||||
],
|
||||
[
|
||||
{'place':'bottom+','visible':False,'size':0,'variable':True,'selectable':False},
|
||||
],
|
||||
[
|
||||
{'place':'bottom+','visible':False,'size':0,'variable':True,'selectable':False},
|
||||
]
|
||||
]
|
||||
|
||||
write("dbdata",["worlds","art","menus"])
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 445 B |
Binary file not shown.
After Width: | Height: | Size: 955 B |
Binary file not shown.
After Width: | Height: | Size: 605 B |
Binary file not shown.
After Width: | Height: | Size: 793 B |
Binary file not shown.
After Width: | Height: | Size: 810 B |
Binary file not shown.
After Width: | Height: | Size: 454 B |
Loading…
Reference in New Issue