@name Bank Main
@inputs EGP:wirelink E:entity
@outputs 
@persist Cursor:vector2 B_SQ B_SL B_D B_100 B_10 B_M100 B_M10 B_F
@persist Value Mode:string Acc Ent:entity Active1 Active2 G:gtable I

interval(100)

if(first()){
    
    G=gTable("banco_menthos",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(200,450))
    EGP:egpColor(2,vec(150,150,150))
    
    EGP:egpBox(3,vec2(384,256),vec2(200,450))
    EGP:egpColor(3,vec(150,150,150))
    
    EGP:egpBox(4,vec2(128,100),vec2(180,100)) #BUTTON 1
    
    EGP:egpBox(5,vec2(128,256),vec2(180,100)) #BUTTON 2
    
    EGP:egpBox(6,vec2(128,412),vec2(180,100)) #BUTTON 3
    
    EGP:egpBox(7,vec2(384,384),vec2(180,150)) #VALUE
    
    EGP:egpBox(8,vec2(340,100),vec2(80,80)) #+10
    
    EGP:egpBox(9,vec2(428,100),vec2(80,80)) #+100
    
    EGP:egpBox(10,vec2(340,200),vec2(80,80)) #-10
    
    EGP:egpBox(11,vec2(428,200),vec2(80,80)) #-100
    
    EGP:egpText(12,"+10",vec2(315,90))
    EGP:egpColor(12,vec(20,20,20))
    EGP:egpSize(12,30)
    
    EGP:egpText(13,"+100",vec2(395,90))
    EGP:egpColor(13,vec(20,20,20))
    EGP:egpSize(13,30)
    
    EGP:egpText(14,"-10",vec2(315,190))
    EGP:egpColor(14,vec(20,20,20))
    EGP:egpSize(14,30)
    
    EGP:egpText(15,"-100",vec2(395,190))
    EGP:egpColor(15,vec(20,20,20))
    EGP:egpSize(15,30)
    
    EGP:egpText(16,"Withdrawal",vec2(65,75))
    EGP:egpColor(16,vec(20,20,20))
    EGP:egpSize(16,45)
    
    EGP:egpText(17,"Deposit",vec2(50,235))
    EGP:egpColor(17,vec(20,20,20))
    EGP:egpSize(17,45)
    
    EGP:egpText(18,"Balance",vec2(65,390))
    EGP:egpColor(18,vec(20,20,20))
    EGP:egpSize(18,45)
    
    EGP:egpBox(19,vec2(384,275),vec2(180,50))
    EGP:egpColor(19,vec(0,150,0))
    
    EGP:egpText(20,"Finish",vec2(335,260))
    EGP:egpColor(20,vec(20,20,20))
    EGP:egpSize(20,30)
    
    EGP:egpText(21,"",vec2(300,355)) #VALUE
    EGP:egpColor(21,vec(150,0,150))
    EGP:egpSize(21,40)
    
    EGP:egpBox(22,vec2(128,256),vec2(220,470))
    EGP:egpColor(22,vec(0,0,0))
    EGP:egpAlpha(22,150)
    
    EGP:egpBox(23,vec2(384,256),vec2(220,470))
    EGP:egpColor(23,vec(0,0,0))
    EGP:egpAlpha(23,150)
    
}

if(E & ~E & !Ent){
    Active1 = 1
    Ent = E
    
    EGP:egpAlpha(22,0)
}

if(changed(Ent)){
    Acc = G[Ent:id(),number]
}

Cursor = EGP:egpCursor(owner())

B_SQ = Cursor:x()>40 & Cursor:x()<220 & Cursor:y()>50 & Cursor:y()<150 & owner():keyUse()

B_D = Cursor:x()>40 & Cursor:x()<220 & Cursor:y()>200 & Cursor:y()<300 & owner():keyUse()

B_SL = Cursor:x()>40 & Cursor:x()<220 & Cursor:y()>360 & Cursor:y()<460 & owner():keyUse()

B_10 = Cursor:x()>300 & Cursor:x()<380 & Cursor:y()>60 & Cursor:y()<140 & owner():keyUse()

B_100 = Cursor:x()>390 & Cursor:x()<470 & Cursor:y()>60 & Cursor:y()<140 & owner():keyUse()

B_M10 = Cursor:x()>300 & Cursor:x()<380 & Cursor:y()>160 & Cursor:y()<240 & owner():keyUse()

B_M100 = Cursor:x()>390 & Cursor:x()<470 & Cursor:y()>160 & Cursor:y()<240 & owner():keyUse()

B_F = Cursor:x()>300 & Cursor:x()<470 & Cursor:y()>250 & Cursor:y()<300 & owner():keyUse()

if(B_SQ & $B_SQ & Active1 & !Active2){
    Active2 = 1
    
    EGP:egpColor(4,vec(200,200,200))
    
    EGP:egpAlpha(23,0)
    
    Mode="Withdrawal"
}

if(B_D & $B_D & Active1 & !Active2){
    Active2 = 1
    
    EGP:egpColor(5,vec(200,200,200))
    
    EGP:egpAlpha(23,0)
    
    Mode="Deposit"
}

if(B_SL & $B_SL & Active1 & !Active2){
    Active2 = 1
    
    EGP:egpAlpha(23,0)
    
    EGP:egpColor(6,vec(200,200,200))
    
    EGP:egpSetText(21,toString(Acc))
}

if(B_F & $B_F & Active2){
    EGP:egpAlpha(22,150)
    EGP:egpAlpha(23,150)
    
    EGP:egpColor(4,vec(255,255,255))
    EGP:egpColor(5,vec(255,255,255))
    EGP:egpColor(6,vec(255,255,255))
    
    if(Mode=="Withdrawal"){
        if(Acc>=Value){
            G[Ent:id(),number]=Acc-Value
            soundPlay(0,0,"buttons/button14.wav")
        }else{
        soundPlay(0,0,"buttons/button8.wav")
        }
    }
    elseif(Mode=="Deposit"){
        G[Ent:id(),number]=Acc+Value
        soundPlay(0,0,"buttons/button14.wav")
    }
    
    Ent = noentity()
    
    Active1 = 0
    
    Active2 = 0
    
    Value = 0
    
    Mode = ""
    
    EGP:egpSetText(21,"")
}

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

if(B_10 & $B_10 & Active2){
    Value+=10
}

if(B_100 & $B_100 & Active2){
    Value+=100
}

if(B_M10 & $B_M10 & Active2){
    Value-=10
}

if(B_M100 & $B_M100 & Active2){
    Value-=100
}
