Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- boolean runSourceTerminalFile(string file) {
- static {
- string [string] fileType;
- fileType[".edu"] = "educate";
- fileType[".enh"] = "enhance";
- fileType[".enq"] = "enquiry";
- fileType[".ext"] = "extrude";
- int [string] extrudeCost;
- extrudeCost["food.ext"] = 10;
- extrudeCost["booze.ext"] = 10;
- extrudeCost["goggles.ext"] = 100;
- extrudeCost["familiar.ext"] = 10000;
- extrudeCost["pram.ext"] = 100;
- extrudeCost["gram.ext"] = 100;
- extrudeCost["spam.ext"] = 100;
- extrudeCost["cram.ext"] = 1000;
- extrudeCost["dram.ext"] = 1000;
- extrudeCost["tram.ext"] = 1000;
- }
- if(item_amount($item[Source terminal]) == 0 && !is_unrestricted($item[Source terminal])) {
- return false;
- }
- string fileExtension = substring(file, file.index_of("."));
- if(!(get_property("sourceTerminal" + to_upper_case(substring(fileType[fileExtension], 0, 1)) + substring(fileType[fileExtension], 1) + "Known").contains_text(file))) {
- return false;
- }
- switch(fileExtension) {
- case ".edu":
- int maxEducates = 1 + (get_property("sourceTerminalChips").contains_text("DRAM")).to_int();
- for i from 1 upto maxEducates {
- if(get_property("sourceTerminalEducate" + i) == file){
- return true;
- }
- }
- break;
- case ".enh":
- int maxEnhances = 1 + (get_property("sourceTerminalChips").contains_text("CRAM")).to_int() + (get_property("sourceTerminalChips").contains_text("SCRAM")).to_int();
- if(get_property("_sourceTerminalEnhanceUses").to_int() >= maxEnhances) {
- return false;
- }
- break;
- case ".enq":
- if(get_property("sourceTerminalEnquiry") == file) {
- return true;
- }
- break;
- case ".ext":
- if(get_property("_sourceTerminalExtrudes").to_int() >= 3) {
- return false;
- }
- if(item_amount($item[Source essence]) < extrudeCost[file]) {
- return false;
- }
- break;
- default:
- abort("The input file does not have a valid extension");
- }
- return cli_execute("terminal " + fileType[fileExtension] + " " + file);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement