@name Bank Shop
@inputs EGP:wirelink EGP2:wirelink E:entity
@outputs 
@persist B_1 B_2 B_3 B_4 B_5 B_6 B_7 B_8 B_9 B_0 B_Clear B_Ok B_Cancel
@persist Owner:entity Ent:entity Acc AccO Value Active Cursor:vector2 Pg G:gtable

interval(100)

if(first()){
    
    G=gTable("banco_menthos",1)
    
    Active = 1
    
    EGP:egpClear()
    
    EGP:egpBox(1,vec2(256,256),vec2(512,512))
    EGP:egpColor(1,vec(50,50,50))
    
    EGP:egpBox(2,vec2(128,256),vec2(260,470))
    
    EGP:egpBox(3,vec2(128,256),vec2(240,450))
    EGP:egpColor(3,vec(150,150,150))
    
    EGP:egpBox(4,vec2(384,150),vec2(220,120))
    
    EGP:egpBox(5,vec2(384,150),vec2(200,100))
    EGP:egpColor(5,vec(150,150,150))
    
    EGP:egpBox(6,vec2(320,300),vec2(110,110))
    
    EGP:egpBox(7,vec2(320,300),vec2(100,100))
    EGP:egpColor(7,vec(100,0,0))
    
    EGP:egpBox(8,vec2(448,300),vec2(110,110))
    
    EGP:egpBox(9,vec2(448,300),vec2(100,100))
    EGP:egpColor(9,vec(0,100,0))
    
    EGP:egpBox(10,vec2(128,150),vec2(50,50))
    
    EGP:egpBox(11,vec2(128,210),vec2(50,50))
    
    EGP:egpBox(12,vec2(128,270),vec2(50,50))
    
    EGP:egpBox(13,vec2(128,330),vec2(50,50))
    
    EGP:egpBox(14,vec2(68,150),vec2(50,50))
    
    EGP:egpBox(15,vec2(188,150),vec2(50,50))
    
    EGP:egpBox(16,vec2(68,210),vec2(50,50))
    
    EGP:egpBox(17,vec2(68,270),vec2(50,50))
    
    EGP:egpBox(18,vec2(188,210),vec2(50,50))
    
    EGP:egpBox(19,vec2(188,270),vec2(50,50))
    
    EGP:egpBox(20,vec2(68,420),vec2(80,60))
    
    EGP:egpText(21,"1",vec2(60,130))
    EGP:egpColor(21,vec(0,0,0))
    EGP:egpSize(21,40)
    
    EGP:egpText(22,"2",vec2(120,130))
    EGP:egpColor(22,vec(0,0,0))
    EGP:egpSize(22,40)
    
    EGP:egpText(23,"3",vec2(180,130))
    EGP:egpColor(23,vec(0,0,0))
    EGP:egpSize(23,40)
    
    EGP:egpText(24,"4",vec2(60,190))
    EGP:egpColor(24,vec(0,0,0))
    EGP:egpSize(24,40)
    
    EGP:egpText(25,"5",vec2(120,190))
    EGP:egpColor(25,vec(0,0,0))
    EGP:egpSize(25,40)
    
    EGP:egpText(26,"6",vec2(180,190))
    EGP:egpColor(26,vec(0,0,0))
    EGP:egpSize(26,40)
    
    EGP:egpText(27,"7",vec2(60,250))
    EGP:egpColor(27,vec(0,0,0))
    EGP:egpSize(27,40)
    
    EGP:egpText(28,"8",vec2(120,250))
    EGP:egpColor(28,vec(0,0,0))
    EGP:egpSize(28,40)
    
    EGP:egpText(29,"9",vec2(180,250))
    EGP:egpColor(29,vec(0,0,0))
    EGP:egpSize(29,40)
    
    EGP:egpText(30,"0",vec2(120,310))
    EGP:egpColor(30,vec(0,0,0))
    EGP:egpSize(30,40)
    
    EGP:egpText(31,"Clear",vec2(30,405))
    EGP:egpSize(31,35)
    EGP:egpColor(31,vec(0,0,0))
    
    EGP:egpText(32,"Cancel",vec2(280,285))
    EGP:egpSize(32,30)
    EGP:egpColor(32,vec(0,0,0))
    
    EGP:egpText(33,"OK",vec2(425,280))
    EGP:egpSize(33,40)
    EGP:egpColor(33,vec(0,0,0))
    
    EGP:egpText(34,"",vec2(290,135)) #VALUE
    EGP:egpSize(34,30)
    EGP:egpColor(34,vec(0,0,0))
    
    EGP:egpBox(35,vec2(128,80),vec2(150,50))
    EGP:egpAlpha(35,0)
    
    EGP:egpText(36,"",vec2(70,60))
    EGP:egpSize(36,40)
    EGP:egpAlpha(36,0)
    
    EGP:egpBox(37,vec2(128,256),vec2(240,450))
    EGP:egpColor(37,vec(0,0,0))
    EGP:egpAlpha(37,0)
    
    ## EGP2
    
    EGP2:egpClear()
    
    EGP2:egpBox(1,vec2(256,256),vec2(512,512))
    EGP2:egpColor(1,vec(50,50,50))
    
    EGP2:egpBox(2,vec2(256,100),vec2(470,170))
    
    EGP2:egpBox(3,vec2(256,100),vec2(450,150))
    EGP2:egpColor(3,vec(100,100,100))
    
    EGP2:egpBox(4,vec2(256,350),vec2(470,220))
    
    EGP2:egpBox(5,vec2(256,350),vec2(450,200))
    EGP2:egpColor(5,vec(0,0,150))
    
    EGP2:egpText(6,"To confirm, press the button",vec2(65,340))
    EGP2:egpSize(6,30)
    
    EGP2:egpText(7," $",vec2(40,80))
    EGP2:egpSize(7,40)
    
    EGP2:egpText(8,"",vec2(90,80))
    EGP2:egpSize(8,40)
    EGP2:egpColor(8,vec(255,100,100))
    
    EGP2:egpBox(9,vec2(256,256),vec2(512,512))
    EGP2:egpColor(9,vec(0,0,0))
    
}

Cursor = EGP:egpCursor(Owner)

if(E & ~E & !Owner){
    Owner = E
}
elseif(E & ~E & Pg){
    Pg = 0
    
    Ent = E
    
    Acc = G[Ent:id(),number]
    AccO = G[Owner:id(),number]
    
    EGP:egpAlpha(35,255)
    EGP:egpAlpha(36,255)
    
    if(Acc >= Value & Ent!=Owner){
        G[Ent:id(),number] = Acc-Value
        
        G[Owner:id(),number] = AccO+Value
        
        soundPlay(0,0,"buttons/button14.wav")
        
        EGP:egpSetText(36,"OK!")
        EGP:egpColor(35,vec(0,150,0))
        
        EGP2:egpSetText(6,"Payment Made!")
        EGP2:egpColor(5,vec(0,150,0))
        
    }else{
        EGP:egpSetText(36,"Error!")
        EGP:egpColor(35,vec(150,0,0))
    
        EGP2:egpColor(5,vec(150,0,0))
        EGP2:egpSetText(6,"Insufficient Funds")
        soundPlay(0,0,"buttons/button11.wav")
        
    }
    timer("Ok",3000)    
}

if(clk("Ok")){
    Value = 0
    
    Active = 1
    
    EGP:egpAlpha(37,0)
    
    EGP:egpAlpha(35,0)
    EGP:egpAlpha(36,0)
    
    
    EGP2:egpColor(5,vec(0,0,150))
    EGP2:egpSetText(6,"To confirm, press the button")
    EGP2:egpAlpha(9,255)
}



B_1 = Cursor:x()>45 & Cursor:x()<90 & Cursor:y()>125 & Cursor:y()<175 & Owner:keyUse()

B_2 = Cursor:x()>105 & Cursor:x()<150 & Cursor:y()>125 & Cursor:y()<175 & Owner:keyUse()

B_3 = Cursor:x()>165 & Cursor:x()<210 & Cursor:y()>125 & Cursor:y()<175 & Owner:keyUse()

B_4 = Cursor:x()>45 & Cursor:x()<90 & Cursor:y()>185 & Cursor:y()<235 & Owner:keyUse()

B_5 = Cursor:x()>105 & Cursor:x()<150 & Cursor:y()>185 & Cursor:y()<235 & Owner:keyUse()

B_6 = Cursor:x()>165 & Cursor:x()<210 & Cursor:y()>185 & Cursor:y()<235 & Owner:keyUse()

B_7 = Cursor:x()>45 & Cursor:x()<90 & Cursor:y()>245 & Cursor:y()<295 & Owner:keyUse()

B_8 = Cursor:x()>105 & Cursor:x()<150 & Cursor:y()>245 & Cursor:y()<295 & Owner:keyUse()

B_9 = Cursor:x()>165 & Cursor:x()<210 & Cursor:y()>245 & Cursor:y()<295 & Owner:keyUse()

B_0 = Cursor:x()>108 & Cursor:x()<150 & Cursor:y()>305 & Cursor:y()<355 & Owner:keyUse()

B_Clear = Cursor:x()>30 & Cursor:x()<105 & Cursor:y()>390 & Cursor:y()<450 & Owner:keyUse()

B_Cancel = Cursor:x()>270 & Cursor:x()<370 & Cursor:y()>250 & Cursor:y()<350 & Owner:keyUse()

B_Ok = Cursor:x()>400 & Cursor:x()<500 & Cursor:y()>250 & Cursor:y()<350 & Owner:keyUse()

if(B_0 & $B_0 & Active){
    Value=Value*10
}

if(B_1 & $B_1 & Active){
    Value=Value*10+1
}

if(B_2 & $B_2 & Active){
    Value=Value*10+2
}

if(B_3 & $B_3 & Active){
    Value=Value*10+3
}

if(B_4 & $B_4 & Active){
    Value=Value*10+4
}

if(B_5 & $B_5 & Active){
    Value=Value*10+5
}

if(B_6 & $B_6 & Active){
    Value=Value*10+6
}

if(B_7 & $B_7 & Active){
    Value=Value*10+7
}

if(B_8 & $B_8 & Active){
    Value=Value*10+8
}

if(B_9 & $B_9 & Active){
    Value=Value*10+9
}

if(B_Clear & $B_Clear & Active){
    Value=0
}

if(changed(Value)){
    EGP:egpSetText(34,toString(Value))
}

if(B_Ok & $B_Ok & Active){
    Active = 0
    Pg = 1
    
    EGP:egpAlpha(37,200)
    
    EGP2:egpAlpha(9,0)
    EGP2:egpSetText(8,toString(Value))
}

if(B_Cancel & $B_Cancel){
    Active = 1
    Pg = 0
    
    EGP:egpAlpha(37,0)
    
    EGP2:egpAlpha(9,255)
    EGP2:egpSetText(8,"")
}
