Changes

no edit summary
Line 3: Line 3:  
$toggleButton.insertBefore(".asdf");
 
$toggleButton.insertBefore(".asdf");
 
   
 
   
alert(test);
+
'use strict';
 +
 
 +
// Returns the number of pixels the string will take
 +
// when displayed in monospace font.
 +
// Takes a string. Returns an int.
 +
function charsToPixWidth(string) {
 +
var pixelWidth = $(".fdsa").width();
 +
return string.length * pixelWidth;
 +
};
 +
function charLenToPixWidth(integer) {
 +
var pixelWidth = $(".fdsa").width();
 +
return integer * pixelWidth;
 +
};
 +
function charsToPixHeight(string) {
 +
var pixelWidth = $(".fdsa").height();
 +
return string.length * pixelWidth+integer+1;
 +
};
 +
function charLenToPixHeight(integer) {
 +
var pixelWidth = $(".fdsa").height();
 +
return integer * pixelWidth+integer+1;
 +
};
 +
function numberWithCommas(x) {
 +
    var parts = x.toString().split(".");
 +
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 +
    return parts.join(".");
 +
}
 +
function getCookie(cname) {
 +
    var name = cname + "=";
 +
    var ca = document.cookie.split(';');
 +
    for(var i=0; i<ca.length; i++) {
 +
        var c = ca[i];
 +
        while (c.charAt(0)==' ') c = c.substring(1);
 +
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
 +
    }
 +
    return "";
 +
}
 +
 
 +
function kcLolis() {
 +
var game = this;
 +
 
 +
// stats will store all numbers and variables in the game, eg resources and ships and whatnot
 +
this.stats = {};
 +
this.stats.fuel = 0;
 +
this.stats.ammo = 0;
 +
this.stats.steel = 0;
 +
this.stats.bauxite = 0;
 +
this.stats.incrCount = 1;
 +
 
 +
// Ascii art vars are one-dimensional arrays with strings that represent the art in question
 +
// Index 0 represents the top row and index n represents the bottom row.
 +
this.ascii = {};
 +
 
 +
// this.interactables should have the same vars as this.ascii but instead of an array of the art,
 +
// the values should consist of the interactables that will handle events such as on_click,
 +
// the text contained within, class/id/etc information and other information relevant.
 +
// (x,y) coords are the respective displacements of the top-left corner of the "box"
 +
// from the upper-left corner of the entire game window, which is (0,0).
 +
// width and height represent the w/h of the div box
 +
this.interactables = {};
 +
 
 +
//Art loaded from asciiScreens.js
 +
this.ascii.navbar = asciiNavbar;
 +
this.ascii.shop = asciiShop;
 +
this.ascii.base = asciiBase;
 +
 
 +
//Applies to all "frames" of the ascii contained within
 +
this.ascii.colCount = this.ascii.navbar[0].length;
 +
this.ascii.rowCount = this.ascii.navbar.length+this.ascii.base.length;
 +
this.interactables.navbar = {
 +
"menuButton" : {
 +
"html":["//////////","// Base //","//////////"],
 +
"x":4, "y":2,
 +
"width":10, "height":3,
 +
"callback":"lolis.mainBase()",
 +
"classes":["elem-div"],
 +
"unlocked":true
 +
}, "shopButton" : {
 +
"html":["//////////","// Shop //","//////////"],
 +
"x":19, "y":2,
 +
"width":10, "height":3,
 +
"callback":"lolis.mainShop()",
 +
"classes":["elem-div"],
 +
"unlocked":true
 +
}, "sortieButton" : {
 +
"html":["////////////","//  Farm  //","////////////"],
 +
"x":34, "y":2,
 +
"width":12, "height":3,
 +
"callback":"lolis.mainFarm()",
 +
"classes":["elem-div"],
 +
"unlocked":true
 +
}, "mapButton" : {
 +
"html":["/////////","// Map //","/////////"],
 +
"x":51, "y":2,
 +
"width":9, "height":3,
 +
"callback":"lolis.mainMap()",
 +
"classes":["elem-div"],
 +
"unlocked":true
 +
}, "farmButton" : {
 +
"html":["//////////","// Menu //","//////////"],
 +
"x":65, "y":2,
 +
"width":10, "height":3,
 +
"callback":"lolis.mainMenu()",
 +
"classes":["elem-div"],
 +
"unlocked":true
 +
}
 +
};
 +
this.currentFrame = {};
 +
// main, shop, map, farm, menu
 +
this.currentFrame.screen = "base";
 +
this.currentFrame.interactables = [this.interactables.navbar];
 +
this.currentFrame.ascii = this.ascii.base;
 +
this.currentFrame.asciinavbar = this.ascii.navbar;
 +
this.currentFrame.render = [];
 +
// game.currentFrame.changed should only indicate scene changes
 +
// eg, going from different menus to other menus, different maps, etc. Drastic changes.
 +
this.currentFrame.changed = true;
 +
 
 +
// line is the line as-is with no html. The text to be rendered
 +
// data is interactable data. Should contain x,y,width,height,html and attributes
 +
// attributes are
 +
// - css -> table of css information
 +
// - class -> array of classes
 +
// - id -> string
 +
// Ignore Offset and OffsetToAdd. Being lazy cuz tired.
 +
this.returnClickableHTMLOffset = 0;
 +
this.returnClickableHTMLOffsetToAdd = 0;
 +
this.returnClickableHTML = function(line, subline, data){
 +
if (typeof(data) === "undefined"){return line };
 +
if (data.unlocked){
 +
var span = "<span"
 +
if (typeof(data) !== "undefined"){
 +
if (typeof(data["css"]) !== "undefined"){
 +
span += " style='"
 +
var stringified = ""
 +
for (var key in attr["css"]){
 +
stringified += key + ":" + data["css"][key] + ";"
 +
};
 +
span += stringified
 +
span += "'"
 +
};
 +
if (typeof(data["classes"]) !== "undefined"){
 +
span += " class='"
 +
span += data["classes"].join(" ")
 +
span += "'"
 +
};
 +
if (typeof(data["id"]) !== "undefined"){
 +
span += " id='"
 +
span += data["id"]
 +
span += "'"
 +
};
 +
if (typeof(data["callback"]) !== "undefined"){
 +
span += " onclick='"
 +
span += data["callback"]
 +
span += "'"
 +
};
 +
};
 +
span += ">"
 +
span += subline
 +
span += "</span>"
 +
var offset = game.returnClickableHTMLOffset;
 +
game.returnClickableHTMLOffsetToAdd = span.length-subline.length;
 +
return line.substring(0,data.x+offset) + span + line.substring(data.x+data.width+offset);
 +
}
 +
else{return line;};
 +
};
 +
this.foo = function(){alert("a");}
 +
// clear render
 +
this.clear = function(){
 +
$(".elem-div").remove();
 +
$(".game_area").empty();
 +
game.currentFrame.render = [];
 +
game.returnClickableHTMLOffset = 0;
 +
};
 +
// draw render
 +
this.render = function(){
 +
if (game.currentFrame.changed) {
 +
// Clear everything
 +
game.clear();
 +
game.currentFrame.asciinavbar.forEach(function (data) {
 +
game.currentFrame.render.push(data);
 +
});
 +
 
 +
game.currentFrame.ascii.forEach(function (data) {
 +
game.currentFrame.render.push(data);
 +
});
 +
game.currentFrame.interactables.forEach(function (data){
 +
for (var button in data) {
 +
console.log(button);
 +
if (data.hasOwnProperty(button)){
 +
var i = 0;
 +
var info = data[button];
 +
for (var buttonLine in info.html) {
 +
var line = game.currentFrame.render[info.y+i];
 +
if (typeof(line) === "string"){
 +
var newline = game.returnClickableHTML(line,info.html[buttonLine],info)
 +
game.currentFrame.render[info.y+i] = newline
 +
};
 +
i++;
 +
};
 +
game.returnClickableHTMLOffset += game.returnClickableHTMLOffsetToAdd;
 +
};
 +
};
 +
});
 +
game.currentFrame.render.forEach(function (data){
 +
$(".game_area").append(data).append("<br>");
 +
});
 +
game.currentFrame.changed = false;
 +
};
 +
$("#fuel_count").html(game.renderRescString(game.stats.fuel));
 +
$("#ammo_count").html(game.renderRescString(game.stats.ammo));
 +
$("#steel_count").html(game.renderRescString(game.stats.steel));
 +
$("#bauxite_count").html(game.renderRescString(Math.floor(game.stats.bauxite)));
 +
};
 +
 
 +
this.save = function() {
 +
var cookieInfo = ""
 +
cookieInfo += "fuel:"+game.stats.fuel.toString()+"|";
 +
cookieInfo += "ammo:"+game.stats.ammo.toString()+"|";
 +
cookieInfo += "steel:"+game.stats.steel.toString()+"|";
 +
cookieInfo += "bauxite:"+game.stats.bauxite.toString()+"|";
 +
var d = new Date();
 +
  d.setTime(d.getTime() + (401*19*8*168*58*24*60*60*1000)); // basically the cookie never expires
 +
document.cookie = "kcLolisInfo="+cookieInfo+";expires="+d.toUTCString();
 +
};
 +
this.load = function() {
 +
var cookie = getCookie("kcLolisInfo");
 +
var valArray = cookie.split("|");
 +
valArray.forEach(function (data) {
 +
var split = data.split(":");
 +
var key = split[0];
 +
var val = split[1];
 +
if (key == "fuel"){game.stats.fuel = Number(val)}
 +
else if(key == "ammo"){game.stats.ammo = Number(val)}
 +
else if(key == "steel"){game.stats.steel = Number(val)}
 +
else if(key == "bauxite"){game.stats.bauxite = Number(val)};
 +
});
 +
};
 +
 
 +
this.init = function() {
 +
 
 +
};
 +
 
 +
this.start = function() {
 +
game.load();
 +
game.timerLoop();
 +
};
 +
 
 +
this.timerLoop = function() {
 +
game.rescUpdate();
 +
game.render();
 +
game.save();
 +
setTimeout(game.timerLoop,1000);
 +
};
 +
 
 +
this.rescUpdate = function(){
 +
game.stats.fuel += game.stats.incrCount;
 +
game.stats.ammo += game.stats.incrCount;
 +
game.stats.steel += game.stats.incrCount;
 +
game.stats.bauxite += game.stats.incrCount/3;
 +
};
 +
// returns a padded string of an integer
 +
this.renderRescString = function(integer){
 +
var val = numberWithCommas(integer);
 +
//resources should be 23 chars long, so max pad is 23 chars
 +
var pad = "                      "
 +
return pad.substring(0,pad.length-val.length)+val
 +
};
 +
 
 +
this.mainShop = function(){
 +
game.currentFrame.screen = "shop";
 +
game.currentFrame.ascii = game.ascii.shop;
 +
game.currentFrame.interactables = [game.interactables.navbar,game.interactables.shop];
 +
this.currentFrame.changed = true;
 +
};
 +
this.mainBase = function(){
 +
game.currentFrame.screen = "base";
 +
game.currentFrame.ascii = game.ascii.base;
 +
game.currentFrame.interactable = [game.interactables.navbar]
 +
this.currentFrame.changed = true;
 +
};
 +
};
 +
 
 +
 
 +
 
 +
 
 +
var lolis = new kcLolis();
 +
 
 +
$(document).ready(function () {
 +
$("<pre/>").css({"position":"absolute","top":"-100px",
 +
      "font-family":"monospace",
 +
  "font-size":"11px"}).attr("class","fdsa").html("p").appendTo("body");
 +
 
 +
var $gameArea = $(".game_area");
 +
$gameArea.css({
 +
"font-family":"monospace",
 +
"font-size":"11px",
 +
"color":"#00D316",
 +
"background":"black"
 +
});
 +
lolis.start();
 +
});
 +
console.log("done");
 +
 
 +
 
 +
'use strict';
 +
 
 +
 
 +
// "######################################################################################################################",
 +
// "##              #              #                #            #              ##  Fuel:    999,999,999,999,999,999  ##",// 25 chars long
 +
// "##  //////////  #  //////////  #  ////////////  #  /////////  #  //////////  ##  Ammo:    999,999,999,999,999,999  ##",// excluding spaces
 +
// "##  // Base //  #  // Shop //  #  //  Farm  //  #  // Map //  #  // Menu //  ##  Steel:  999,999,999,999,999,999  ##",// on either side
 +
// "##  //////////  #  //////////  #  ////////////  #  /////////  #  //////////  ##  Bauxite: 999,999,999,999,999,999  ##",
 +
// "##              #              #                #            #              ##                                    ##",
 +
// "#####################################################################################################################",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                  art here                                                      ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "##                                                                                                                ##",
 +
// "#####################################################################################################################"
 +
var asciiNavbar = [
 +
"#####################################################################################################################",
 +
"##              #              #                #            #              ##  Fuel:    <span id='fuel_count'>                      </span>  ##",// 25 chars long
 +
"##              #              #                #            #              ##  Ammo:    <span id='ammo_count'>                      </span>  ##",// excluding spaces
 +
"##              #              #                #            #              ##  Steel:  <span id='steel_count'>                      </span>  ##",// on either side
 +
"##              #              #                #            #              ##  Bauxite: <span id='bauxite_count'>                      </span>  ##",
 +
"##              #              #                #            #              ##                                    ##",
 +
"#####################################################################################################################",
 +
];
 +
 
 +
var asciiBase = [
 +
"#####################################################################################################################",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"##                  .--.___                                                                                      ##",
 +
"##                .`--.___ `---.__                                                                                ##",
 +
"##                |-.___  `---._.|                                                                                ##",
 +
"##                |    `---.__.` |                                                                                ##",
 +
"##              .`|          |  |.___                                                                            ##",
 +
"##            .`  `--.___    |  .` .`|                                                                            ##",
 +
"##            |``---.___ `---.|.`-.`  |                                                                            ##",
 +
"##            |        `---.___.`    |                                                                            ##",
 +
"##          .`|                |      |                                                                            ##",
 +
"##        .`-.|                |    .``---.___                                                                    ##",
 +
"##      .`    |                |  .`        .|                                                                  ##",
 +
"##    .`      `---.___        | .`        .` |                                                                  ##",
 +
"##  .`.__              `---.___|` `--.___ .`  |                                                                  ##",
 +
"##  |    `---.___                      .`    |                                                                  ##",
 +
"##  |            `---.___            .`      |                                                                  ##",
 +
"##  |                    `---.___  .`        |                                                                  ##",
 +
"##  |                            `.`        .`                                                                    ##",
 +
"##  |                            |        .`                                                                      ##",
 +
"##  --.__                        |      .`                                                                        ##",
 +
"##        `---.___                |    .`                                                                          ##",
 +
"##                `---.___        |  .`                                                                            ##",
 +
"##                        `---.___|.`                                                                              ##",
 +
"##                                                                                                                ##",
 +
"##                                                                                                                ##",
 +
"#####################################################################################################################"];
 +
 
 +
 
 +
var asciiShop = [
 +
"#####################################################################################################################",
 +
"##                      ...  !`:    ______________________________________    ________________________________    ##",
 +
"##                  ....++++ ....  / What would you like today, Admiral? /    ||  ____ _  _ ____            ||    ##",
 +
"##                  ,??++?C+!.,    /                                    /    || (_  _) )( (  __)          ||    ##",
 +
"##                .:^^^^`..zz+?+. / ____________________________________/      ||  )( ) __ () _)            ||    ##",
 +
"##                .:1^.+,+.Jz?;.!/ /                                          ||  (__)\\_)(_(____)          ||    ##",
 +
"##                `++J??+8`JJd`.                                              ||  _  _ ____ __    __  __ _  ||    ##",
 +
"##                .v.! `` 1WHIJWk.                                            || ( \\/ |  __|  )  /  \\(  ( \\ ||    ##",
 +
"##                .. ...v?\"TQWHJ;                                            || / \\/ \\) _)/ (_/(  O )    / ||    ##",
 +
"##                  ..+?! ..vXukzO.                                            || \\_)(_(____)____/\\__/\\_)__) ||    ##",
 +
"##                ..  :.jOOZXV=?Cz.                                          ||  ____ _  _  __ ____        ||    ##",
 +
"##            .  .Hz+&IJzlkAv!Jy+j;                                          || / ___) )( \\/  (  _ \\      ||    ##",
 +
"##        ..J==?+.Jh+jw?.Ordl..?1iwt      ..J+v.                              || \\___ ) __ (  O ) __/      ||    ##",
 +
"##    ..,+l?====z1zZujl+xwZSW6.`jXXG..  ====?++                              || (____|_)(_/\\__(__)         ||    ##",
 +
"##  :..?!?zl===zudVjVXwSOttdXZt. `7Owz1jAO=zzvz?z=:                            ||____________________________||    ##",
 +
"##      1swXwXVVyY!JvzOOZwOwXSZO, .?UX7juXI`w:1=I=;                                                                ##",
 +
"##        ?TXXWK^..d$^...`?7?It77=1w. ..zdKzdIIOtt!                                                                ##",
 +
"##    ..J. .XI`JUXf4Va+JJJJO&zl    ?3+z!jbKdkzzIl=o                                                                ##",
 +
"##  ,1uwuWkyWQAJwX`.dUWWHMM9C7v:    .aggWHS=1?zzzO                                                                ##",
 +
"##  .wwXHHWfWUHH0^.zwVvwXy+^`^:^.    .THHWZ??=+O=?.                                                              ##",
 +
"##  wQWWWWffV\"!  .v?`J^??O:.^^.^+        .W0O!11I11.                                                              ##",
 +
"##  `4HY\"!    .A+^`^`^^.^`^.`.+        UWX+jOz1X`                                                              ##",
 +
"##              ?ZOu&J.JJJJvCOf          .XS?Iudpf                                                                ##",
 +
"##              .1??z'  z+;?+`            11bbW=`                                                                ##",
 +
"##              z???    z;;;!            .c                                                                    ##",
 +
"##              .Oudk,    ???!              ,%                                                                    ##",
 +
"##            ...JHbppL  .==:                                                                                      ##",
 +
"##            `dMgHWWWH +?d`                                                                                      ##",
 +
"##          .7\"WHHHWkkS.IO0                                                                                      ##",
 +
"##              7TUWWUCI??;                                                                                      ##",
 +
"##                    +z??:                                                                                      ##",
 +
"##                    .Sz?;  ..f`                                                                                  ##",
 +
"##                    .Xw2  .SQ,                                                                                  ##",
 +
"##                    dWSJl.K?\\                                                                                    ##",
 +
"#####################################################################################################################"
 +
];
2,922

edits