diff --git a/index.html b/index.html
new file mode 100644
index 0000000..32d9404
--- /dev/null
+++ b/index.html
@@ -0,0 +1,37 @@
+
+
+ Turkey Banking Simulator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/main.js b/js/main.js
new file mode 100644
index 0000000..81ec3a2
--- /dev/null
+++ b/js/main.js
@@ -0,0 +1,443 @@
+function GameState(){
+
+ var that = this;
+ this.oldTime = new Date().getTime();
+
+ this.mainUI = new GameUI( "demoCanvas" );
+ createjs.Ticker.addEventListener( "tick", gameLoop );
+
+ function gameLoop(){
+ if( ( new Date().getTime() - that.oldTime ) > 1000 ){
+ // It's been at least one second, do logic loop depending on difference
+ console.log("One second");
+ that.oldTime = new Date().getTime();
+ }
+ that.mainUI.draw();
+ }
+
+ return {
+
+ }
+}
+
+function GameUI( canvasElem ){
+ var that = this;
+
+ this.stage = new createjs.Stage( canvasElem );
+ this.activeScreenName = "EndingScreen";
+ this.activeScreenObj = {};
+
+ /* Initialize All Screens */
+ this.screens = {
+ "LoadingTitleScreen" : LoadingTitleScreen,
+ "InfoHelpScreen" : InfoHelpScreen,
+ "MainScreen" : MainScreen,
+ "KitchenScreen" : KitchenScreen,
+ "MarketScreen" : MarketScreen,
+ "TurkeyOutScreen" : TurkeyOutScreen,
+ "EndingScreen" : EndingScreen,
+ "ScoreScreen" : ScoreScreen,
+ "CreditsScreen" : CreditsScreen
+ }
+
+ this.activeScreenObj = new MainScreen( this.stage );
+
+ this.switchScreen = function( screenName ){
+ console.log("Switch screen called with" + screenName);
+ that.stage.removeAllChildren();
+ that.activeScreenObj = new that.screens[ screenName ]( that.stage );
+ }
+
+ pubsub.subscribe( "SwitchScreen", this.switchScreen );
+
+ return {
+ draw : function(){
+ that.activeScreenObj.blit();
+ that.stage.update();
+ }
+ }
+}
+
+/* Screens, inheritance would be nice */
+function LoadingTitleScreen( stage ){
+ var that = this;
+ this.picture = new createjs.Bitmap( "res/Loading-Title.png" );
+ this.ovenLight = new createjs.Shape();
+ this.ovenLight.graphics.beginFill( "red" ).drawCircle( 396, 318, 5 );
+ this.ovenLight.addEventListener( "click", function(){alert("hello world")});
+
+ stage.addChild( this.picture );
+ stage.addChild( this.ovenLight );
+
+ this.uiElems = [];
+ this.uiElems.push( new DialogUI( stage ) );
+
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+}
+
+function InfoHelpScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+
+}
+
+function MainScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ // buttons info/credits/start
+ var infoButton = new createjs.Shape();
+ infoButton.graphics.beginFill("#ffffff").drawRect(13, 445, 222, 65);
+ infoButton.alpha = 0.1;
+ infoButton.addEventListener( "click", function(){ pubsub.publish( "SwitchScreen", "InfoHelpScreen" ) } );
+
+ var creditsButton = new createjs.Shape();
+ creditsButton.graphics.beginFill("#ffffff").drawRect(13, 515, 222, 65);
+ creditsButton.alpha = 0.1;
+ creditsButton.addEventListener( "click", function(){ pubsub.publish( "SwitchScreen", "CreditsScreen" ) } );
+
+ var startButton = new createjs.Shape();
+ startButton.graphics.beginFill("#ffffff").drawRect(564, 520, 222, 65);
+ startButton.alpha = 0.1;
+ startButton.addEventListener( "click", function(){ pubsub.publish( "SwitchScreen", "KitchenScreen" ) } );
+
+ stage.addChild( infoButton );
+ stage.addChild( creditsButton );
+ stage.addChild( startButton );
+ this.uiElems = [];
+
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+//start button
+//difficulty selection
+}
+
+function KitchenScreen( stage ){
+ var that = this;
+ this.uiElems = [];
+
+ this.uiElems.push( new OvenUI( stage ) );
+ this.uiElems.push( new DialogUI( stage ) );
+
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+}
+
+function MarketScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+
+}
+
+function TurkeyOutScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+
+}
+
+function EndingScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+
+}
+
+function ScoreScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+
+ // Retry Button
+}
+
+function CreditsScreen( stage ){
+ var that = this;
+
+ this.background = new createjs.Bitmap( "res/Main.png" );
+ stage.addChild( this.background );
+
+ this.uiElems = [];
+ return {
+ blit : function(){
+
+ // Draw all the uiElements
+ for( var index in that.uiElems ){
+ that.uiElems[ index ].tick();
+ }
+ }
+ }
+ //
+}
+
+/* Object models */
+function TurkeyModel( weight ){
+ this.weight = weight;
+}
+
+function OvenModel(){
+ this.temperature = "";
+}
+
+
+function GameModel(){
+ this.timeElapsed = 0;
+ this.ovenModel = new OvenModel();
+ this.turkeyModel = new TurkeyModel();
+}
+
+function OvenUI( stage ){
+ var that = this;
+
+ this.ovenLight = new createjs.Shape();
+ this.analogClock = "";
+ this.text = new createjs.Text( "325F", "50px Arial", "#ff7700" );
+ this.text.x = 70;
+ this.text.y = 100;
+ this.text.textBaseline = "alphabetic";
+
+ //Create a Shape DisplayObject.
+ this.circle = new createjs.Shape();
+ this.circle.graphics.beginFill( "red" ).drawCircle( 0, 0, 40 );
+ this.ovenLight.graphics.beginFill( "red" ).drawCircle( 223, 73, 5 );
+
+ //Set position of Shape instance.
+ this.circle.x = this.circle.y = 50;
+
+ this.picture = new createjs.Bitmap( "res/Base_Game_Screen.png" );
+ //this.picture.scaleX = this.picture.scaleY = 0.5;
+ stage.addChild( this.picture );
+ stage.addChild( this.circle );
+ stage.addChild( this.ovenLight );
+ stage.addChild( this.text );
+ return {
+ tick: function(){
+ // Circle will move 10 units to the right.
+ that.circle.x += 1;
+
+ // Will cause the circle to wrap back
+ if ( that.circle.x > stage.canvas.width ) { that.circle.x = 0; }
+ }
+ }
+}
+
+function DialogUI( stage ){
+ var that = this;
+ // Dialog States
+ var DIALOG_RECEDING = 0;
+ var DIALOG_SHOWING = 1;
+ var DIALOG_PAUSING = 2;
+
+ this.dialogSpeed = 25;
+ this.dialogState = DIALOG_PAUSING;
+
+ this.dialogMotionQueue = [DIALOG_RECEDING,DIALOG_SHOWING,DIALOG_RECEDING];
+ dialogQueue = [];
+
+
+ // Replace with bitmap
+ this.dialogBox = new createjs.Shape();
+ this.dialogBox.graphics.beginFill( "#00ffff" ).drawRect( 0, 450, 800, 150 );
+
+ stage.addChild( this.dialogBox );
+
+ return {
+ tick: function(){
+
+ if( that.dialogState == DIALOG_RECEDING ){
+ that.dialogBox.y+=that.dialogSpeed;
+ console.log( "Receding" + that.dialogBox.y );
+ }
+ if( that.dialogState == DIALOG_SHOWING ){
+ that.dialogBox.y-=that.dialogSpeed;
+ console.log( "Advancing" + that.dialogBox.y );
+ }
+
+ // toggle states
+ if( that.dialogBox.y > 150 && that.dialogState == DIALOG_RECEDING ){
+ that.dialogBox.y = 150;
+ that.dialogState = DIALOG_PAUSING;
+ console.log( "Pausing on recede" + that.dialogBox.y );
+
+ }
+ if( that.dialogBox.y < 0 && that.dialogState == DIALOG_SHOWING ){
+ that.dialogBox.y = 0;
+ that.dialogState = DIALOG_PAUSING;
+ console.log( "Pausing on showing" + that.dialogBox.y );
+ }
+
+ /* next states if there are any on the queue */
+ if( that.dialogMotionQueue.length > 0 && that.dialogState == DIALOG_PAUSING ){
+ that.dialogState = that.dialogMotionQueue.pop();
+ }
+ },
+
+ minDialog: function(){
+ that.dialogMotionQueue.push( DIALOG_RECEDING );
+ },
+
+ maxDialog: function(){
+ that.dialogMotionQueue.push( DIALOG_SHOWING );
+ },
+ }
+}
+
+function Dialogue( character, text ){
+ var that = this;
+ this.text = text;
+ this.character = character;
+
+ return {
+ getText: function(){
+ return that.text;
+ },
+
+ getCharacter: function(){
+ return that.character;
+ },
+
+ getDuration: function(){
+
+ // length of text, for each dialog
+ },
+ }
+ // Render one character at a time
+}
+
+
+var pubsub = {};
+(function(q) {
+ var topics = {}, subUid = -1;
+ q.subscribe = function(topic, func) {
+ if (!topics[topic]) {
+ topics[topic] = [];
+ }
+ var token = (++subUid).toString();
+ topics[topic].push({
+ token: token,
+ func: func
+ });
+ return token;
+ };
+
+ q.publish = function(topic, args) {
+ if (!topics[topic]) {
+ return false;
+ }
+ setTimeout(function() {
+ var subscribers = topics[topic],
+ len = subscribers ? subscribers.length : 0;
+
+ while (len--) {
+ subscribers[len].func(args);
+ }
+ }, 0);
+ return true;
+
+ };
+
+ q.unsubscribe = function(token) {
+ for (var m in topics) {
+ if (topics[m]) {
+ for (var i = 0, j = topics[m].length; i < j; i++) {
+ if (topics[m][i].token === token) {
+ topics[m].splice(i, 1);
+ return token;
+ }
+ }
+ }
+ }
+ return false;
+ };
+}(pubsub));
\ No newline at end of file
diff --git a/res/Base_Game_Screen.png b/res/Base_Game_Screen.png
new file mode 100644
index 0000000..d92ad77
Binary files /dev/null and b/res/Base_Game_Screen.png differ
diff --git a/res/Loading-Title.png b/res/Loading-Title.png
new file mode 100644
index 0000000..98a8e89
Binary files /dev/null and b/res/Loading-Title.png differ
diff --git a/res/Main.png b/res/Main.png
new file mode 100644
index 0000000..72215e5
Binary files /dev/null and b/res/Main.png differ
diff --git a/res/Untitled-1.png b/res/Untitled-1.png
new file mode 100644
index 0000000..48e43f6
Binary files /dev/null and b/res/Untitled-1.png differ