@name Taco's EGP Full Tank hud v2.5
@inputs Gear FuelCap FuelLev Gun:entity Gun2:entity EGP:wirelink Engine:entity
@inputs Active Chair:entity
@inputs FU:entity FL:entity LS:entity RS:entity BH:entity TH:entity BP:entity TF:entity
@persist [AmmoSelect]:number [TextColor CrossHairColor]:vector [Res]:vector2

FuelPer = FuelLev / FuelCap * 100
FUT = FU:acfPropHealth() / FU:acfPropHealthMax() * 100    
FLT = FL:acfPropHealth() / FL:acfPropHealthMax() * 100     
LST = LS:acfPropHealth() / LS:acfPropHealthMax() * 100   
RST = RS:acfPropHealth() / RS:acfPropHealthMax() * 100   
BT = BH:acfPropHealth() / BH:acfPropHealthMax() * 100   
TT = TH:acfPropHealth() / TH:acfPropHealthMax() * 100   
BPT = BP:acfPropHealth() / BP:acfPropHealthMax() * 100   
TFT = TF:acfPropHealth() / TF:acfPropHealthMax() * 100   
GT = Gun:acfPropHealth() / Gun:acfPropHealthMax() * 100   
GST = Gun2:acfPropHealth() / Gun2:acfPropHealthMax() * 100   
                   
if ( changed(Active) ) {             
    Great = vec(0,255,100)
    Good = vec(155,255,100) 
    Moderate = vec(100,200,55) 
    Bad = vec(200,100,55) 
    Critical = vec(255,0,55) 
            
    CrossHairColor = vec(255,0,55)
    TextColor = vec(255,0,55)  
                              
    ReloadingSound = "acf_extra/tankfx/gnomefather/reload7.wav"                                  
                                                                        
    Turret_Left_right = "physics/metal/canister_roll_loop1.wav"                                    
    Turret_Up_Down = "physics/metal/metal_box_scrape_smooth_loop1.wav"                                    
    ScreenRes = egpScrSize(Chair:driver())
    Res = ScreenRes/2                         

    EGP:egpClear() 
    EGP:egp3DTracker(1,entity():pos()) 
    EGP:egpCircleOutline(2,vec2(10,5),vec2(66,66)) 
    EGP:egpPos(1,Gun:toLocal(Gun:attachmentPos("Muzzle") + (Gun:forward() * 999)))
    EGP:egpParent(1,Gun)
    
    EGP:egpColor(2,CrossHairColor)     
    EGP:egpParent(2,1)
    
    EGP:egpText(3,"Ammo:",vec2(85.5,-25))
    EGP:egpFont(3,"WireGPU_ConsoleFont",20) 
    EGP:egpParent(3,1)
      if(GT < 20) {
       EGP:egpColor(3,Critical)}
    elseif(GT < 40) {
        EGP:egpColor(3,Bad)}
    elseif(GT < 60) {
        EGP:egpColor(3,Moderate)}
    elseif(GT < 80) {
        EGP:egpColor(3,Good)}
    elseif(GT < 101) {
        EGP:egpColor(3,Great)}
        
    EGP:egpText(4,"Ammo:",vec2(88.5,-7.5))
    EGP:egpFont(4,"WireGPU_ConsoleFont",20) 
    EGP:egpParent(4,1)
      if(GST < 20) {
       EGP:egpColor(4,Critical)}
    elseif(GST < 40) {
        EGP:egpColor(4,Bad)}
    elseif(GST < 60) {
        EGP:egpColor(4,Moderate)}
    elseif(GST < 80) {
        EGP:egpColor(4,Good)}
    elseif(GST < 101) {
        EGP:egpColor(4,Great)}
    
    EGP:egpBox(5,vec2(0,-10),vec2(20,2))
    EGP:egpColor(5,CrossHairColor)

    EGP:egpParent(5,2)

    EGP:egpBox(6,vec2(-2.5,-5),vec2(15,2))
    EGP:egpColor(6,CrossHairColor)

    EGP:egpParent(6,2)

    EGP:egpBox(7,vec2(-5,0),vec2(10,2))
    EGP:egpColor(7,CrossHairColor)

    EGP:egpParent(7,2)

    EGP:egpBox(8,vec2(-7.5,5),vec2(5,2))
    EGP:egpColor(8,CrossHairColor)

    EGP:egpParent(8,2)

    EGP:egpBox(9,vec2(-10,0),vec2(20,2))
    EGP:egpAngle(9,90)
    EGP:egpColor(9,CrossHairColor)
    EGP:egpParent(9,2)
    
    EGP:egpText(10,"Gear:",vec2(77.5,7.5))
    EGP:egpParent(10,2)
    EGP:egpColor(10,TextColor)
    
    EGP:egpText(11,"Fuel:",vec2(72.5,27.5))  
    EGP:egpParent(11,2)  
    EGP:egpColor(11,TextColor) 
    
    EGP:egpText(12,"FU",vec2(-300,-65))
    EGP:egpParent(12,2)  
    if(FUT < 20) {
       EGP:egpColor(12,Critical)}
    elseif(FUT < 40) {
        EGP:egpColor(12,Bad)}
    elseif(FUT < 60) {
        EGP:egpColor(12,Moderate)}
    elseif(FUT < 80) {
        EGP:egpColor(12,Good)}
    elseif(FUT < 101) {
        EGP:egpColor(12,Great)}
        
    EGP:egpText(13,"FU",vec2(-300,-50))
    EGP:egpParent(13,2)  
    if(FLT < 20) {
       EGP:egpColor(13,Critical)}
    elseif(FLT < 40) {
        EGP:egpColor(13,Bad)}
    elseif(FLT < 60) {
        EGP:egpColor(13,Moderate)}
    elseif(FLT < 80) {
        EGP:egpColor(13,Good)}
    elseif(FLT < 101) {
        EGP:egpColor(13,Great)}
    
    EGP:egpText(14,"FL",vec2(-300,-35))
    EGP:egpParent(14,2)  
     if(LST < 20) {
       EGP:egpColor(14,Critical)}
    elseif(LST < 40) {
        EGP:egpColor(14,Bad)}
    elseif(LST < 60) {
        EGP:egpColor(14,Moderate)}
    elseif(LST < 80) {
        EGP:egpColor(14,Good)}
    elseif(LST < 101) {
        EGP:egpColor(14,Great)}
    
    EGP:egpText(15,"FL",vec2(-300,-20))
    EGP:egpParent(15,2)  
     if(RST < 20) {
       EGP:egpColor(15,Critical)}
    elseif(RST < 40) {
        EGP:egpColor(15,Bad)}
    elseif(RST < 60) {
        EGP:egpColor(15,Moderate)}
    elseif(RST < 80) {
        EGP:egpColor(15,Good)}
    elseif(RST < 101) {
        EGP:egpColor(15,Great)}
    
    EGP:egpText(16,"FL",vec2(-300,-5))
    EGP:egpParent(16,2)  
     if(TT < 20) {
       EGP:egpColor(16,Critical)}
    elseif(TT < 40) {
        EGP:egpColor(16,Bad)}
    elseif(TT < 60) {
        EGP:egpColor(16,Moderate)}
    elseif(TT < 80) {
        EGP:egpColor(16,Good)}
    elseif(TT < 101) {
        EGP:egpColor(16,Great)}
        
    EGP:egpText(17,"FL",vec2(-300,10)) 
    EGP:egpParent(17,2)  
     if(BT < 20) {
       EGP:egpColor(17,Critical)}
    elseif(BT < 40) {
        EGP:egpColor(17,Bad)}
    elseif(BT < 60) {
        EGP:egpColor(17,Moderate)}
    elseif(BT < 80) {
        EGP:egpColor(17,Good)}
    elseif(BT < 101) {
        EGP:egpColor(17,Great)}
        
    EGP:egpText(18,"FL",vec2(-300,25))
    EGP:egpParent(18,2)  
     if(BPT < 20) {
       EGP:egpColor(18,Critical)}
    elseif(BPT < 40) {
        EGP:egpColor(18,Bad)}
    elseif(BPT < 60) {
        EGP:egpColor(18,Moderate)}
    elseif(BPT < 80) {
        EGP:egpColor(18,Good)}
    elseif(BPT < 101) {
        EGP:egpColor(18,Great)}
        
    EGP:egpText(19,"FL",vec2(-300,40))
    EGP:egpParent(19,2)  
     if(TFT < 20) {
       EGP:egpColor(19,Critical)}
    elseif(TFT< 40) {
        EGP:egpColor(19,Bad)}
    elseif(TFT < 60) {
        EGP:egpColor(19,Moderate)}
    elseif(TFT < 80) {
        EGP:egpColor(19,Good)}
    elseif(TFT < 101) {
        EGP:egpColor(19,Great)}
        
    soundPlay("turn",0,Turret_Left_right)
    soundVolume("turn",0)
    
    soundPlay("pitch",0,Turret_Up_Down)
    soundVolume("pitch",0)

    interval(50)                                
}
elseif( Active ) {
    interval(100)
    
    EGP:egpSetText(12, "Frontal Upper Glacis: " + round(FUT) + "%")
    EGP:egpSetText(13, "Frontal Lower Glacis: " + round(FLT) + "%")
    EGP:egpSetText(14, "Left Side Armor: " + round(LST) + "%")
    EGP:egpSetText(15, "Right Side Armor: " + round(RST) + "%")
    EGP:egpSetText(17, "Back Armor: " + round(BT) + "%")
    EGP:egpSetText(16, "Top Armor: " + round(TT) + "%")
    EGP:egpSetText(18, "Bottom Armor: " + round(BPT) + "%")
    EGP:egpSetText(19, "Turret Armor: " + round(TFT) + "%")

    EGP:egpSetText(3, "30mm Autocannon: " + Gun:acfAmmoCount() + " Rounds" )
    EGP:egpSetText(4, "12.7mm Machinegun: " + Gun2:acfAmmoCount() + " Rounds" )
    
    if (Gear == 1) {
    EGP:egpSetText(10,"1st Gear")}  
    elseif (Gear == 2) {
    EGP:egpSetText(10,"2nd Gear")}
    elseif (Gear == 3) {
    EGP:egpSetText(10,"3rd Gear")}
    elseif (Gear == 4) {
    EGP:egpSetText(10,"Reverse")}
    else {
    EGP:egpSetText(10,"Neutral")}
    EGP:egpSetText(11,"Fuel: " + round(FuelPer) + "%")   
    
    soundVolume( "turn", 0.00555 * abs(Gun:angVel()[2]) )
    soundVolume( "pitch", 0.00555 * abs(Gun:angVel()[1]) )
}                                  
