Files
expression-2/printer_bank_manager_v1.txt

142 lines
5.0 KiB
Plaintext

@name Printer Bank Manager V1
@inputs EGP:wirelink
@persist PRINTER_COSTS:table PRINTER_TYPE:string Selected:array
@trigger
# Chat Commands
# &tax <float> - Moves the tax to a certain level. 1.00 = +100%. Can be negative.
# &clearinv - Forcefully clear selected items
# &cleargui - Move to main menu
# &clearall - clearinv & cleargui combined
# &time - Set the current contract time (in hours).
# &sumcost - Print the raw cost of buying the selected items.
# &sumtax - Print the inflicted payment upon buying the select items.
# &sumcontract - The amount of money paid upon contract signature.
# Begin program intervals, timers etc.
runOnChat(1)
# Selected - An array of strings holding the names
# Constants and other first-only executions
if (first()) {
EGP:egpClear() # Clear in-case E2 is repasted
PRINTER_TYPE = "none" # holds the changing menu type the user is currently on
PRINTER_COSTS = table() # holds the constant costs of printers
PRINTER_MAX = table() # holds constants concerning the maximum of each printer
PRINTER_UPGRADE = table()
### Configure printer costs (bitminer only)
# SERVER 7 x CPU ($2,000) = $14,000
# S2 -
# S1 - 3 Cores ($50,000), 7 CPUs ($2,000)
## Configure printer price costs here in-case they change
# Bitminers
PRINTER_COSTS["bitminer_rack", number] = 100000
PRINTER_COSTS["bitminer_server", number] = 50000
PRINTER_COSTS["bitminer_s2", number] = 25000
PRINTER_COSTS["bitminer_s1", number] = 5000
PRINTER_COSTS["bitminer_extensionlead", number] = 500
PRINTER_COSTS["bitminer_powerlead", number] = 500
PRINTER_COSTS["bitminer_generator", number] = 6000
PRINTER_COSTS["bitminer_fueltank", number] = 10000
PRINTER_COSTS["bitminer_fuelline", number] = 1500
# Moneyprinters
PRINTER_COSTS["printer_sapphire", number] = 20000
PRINTER_COSTS["printer_emerald", number] = 45000
PRINTER_COSTS["printer_ruby", number] = 60000
PRINTER_COSTS["printer_diamond", number] = 85000
PRINTER_COSTS["printer_platinum", number] = 150000
PRINTER_COSTS["printer_god", number] = 350000
## Configure printer maximums here in-case they change
# Bitminers
PRINTER_MAX["bitminer_rack", number] = 2
PRINTER_MAX["bitminer_server", number] = 16
PRINTER_MAX["bitminer_s2", number] = 4
PRINTER_MAX["bitminer_s1", number] = 4
PRINTER_MAX["bitminer_extensionlead", number] = 8
PRINTER_MAX["bitminer_powerlead", number] = 10
PRINTER_MAX["bitminer_generator", number] = 3
PRINTER_MAX["bitminer_fueltank", number] = 2
PRINTER_MAX["bitminer_fuelline", number] = 2
# Moneyprinters
PRINTER_MAX["printer_sapphire", number] = 2
PRINTER_MAX["printer_emerald", number] = 2
PRINTER_MAX["printer_ruby", number] = 2
PRINTER_MAX["printer_diamond", number] = 2
PRINTER_MAX["printer_platinum", number] = 1
PRINTER_MAX["printer_god", number] = 1
}
# Graphics Drawing
# Main Menu
function main_menu(){
### Center Gradients
## Top Portion Gradient
EGP:egpBox(1,vec2(256,256),vec2(520,520))
EGP:egpMaterial(1,"gui/gradient_up")
EGP:egpColor(1,vec(42,200,240))
## Bottom Portion Gradient
EGP:egpBox(2,vec2(256,256),vec2(520,520))
EGP:egpMaterial(2,"gui/gradient_down")
EGP:egpColor(2,vec(1,70,90))
### Right/Left Lighter Boxes
## Left
EGP:egpBox(3,vec2(15,256),vec2(35,550))
EGP:egpColor(3,vec(1,110,140))
## Right
EGP:egpBox(4,vec2(495,256),vec2(35,550))
EGP:egpColor(4,vec(1,110,140))
### Top/Bottom Underlying Dark Cyan
## Bottom
EGP:egpBox(5,vec2(256,495),vec2(450,35))
EGP:egpColor(5,vec(1,110,140))
## Top
EGP:egpBox(6,vec2(256,15),vec2(450,35))
EGP:egpColor(6,vec(1,110,140))
### Top & Bottom Ultralight Trim Corners
## Top
EGP:egpBox(7,vec2(256,18),vec2(485,5))
EGP:egpColor(7,vec(1,200,255))
## Bottom
EGP:egpBox(8,vec2(256,493),vec2(485,5))
EGP:egpColor(8,vec(1,200,255))
### Left and Right Vertical Trim
## Right
EGP:egpBox(9,vec2(496,256),vec2(5,478))
EGP:egpColor(9,vec(1,200,255))
## Left
EGP:egpBox(10,vec2(16,256),vec2(5,478))
EGP:egpColor(10,vec(1,200,255))
### Top Title Text Box
## Rounded Box w/ Shadow
EGP:egpRoundedBox(11,vec2(254,20),vec2(440,40))
EGP:egpColor(11,vec(1,110,140))
# Shadow Element
EGP:egpRoundedBox(12,vec2(254,20),vec2(434,34))
EGP:egpColor(12,vec(1,200,255))
## Text
EGP:egpText(15,owner():name():left(13)+"'s Printer Bank",vec2(256,20))
EGP:egpFont(15,"coolvetica",35)
EGP:egpAlign(15,1,1)
EGP:egpColor(15,vec(0,0,0))
### Bottom Subtitle Text Box
## Rounded Box w/ Shadow
EGP:egpRoundedBox(13,vec2(254,490),vec2(440,40))
EGP:egpColor(13,vec(1,110,140))
# Shadow Element
EGP:egpRoundedBox(14,vec2(254,490),vec2(434,34))
EGP:egpColor(14,vec(1,200,255))
## Text
EGP:egpText(16,"Select a Type of Printer to Sell",vec2(255,490))
EGP:egpFont(16,"coolvetica",26)
EGP:egpAlign(16,1,1)
EGP:egpColor(16,vec(0,0,0))
}
main_menu()