-var BakingOvenObjectClass = function(ownerStage, args){
- BakingOvenObjectClass.base.apply(this, arguments);
-
- this.imgs = new Array();
- for(var i = 0; i < 3; i++){
- this.imgs[i] = document.createElement('img');
- }
- this.imgs[0].src = "images/furnace.png";
- this.imgs[1].src = "images/furnaceof1.png";
- this.imgs[2].src = "images/furnaceof2.png";
-
- this.img_puff = [];
- this.img_puff[0] = document.createElement('img');
- this.img_puff[0].src = "images/puff.png";
- this.img_puff[1] = document.createElement('img');
- this.img_puff[1].src = "images/puff2.png";
-
- this.cookSound = createAudio("baking.mp3");
- this.image = this.imgs[0];
- this.size.x = 64;
- this.size.y = 96;
- this.isPhantom = true;
- this.isSelecting = false;
- this.basePoint = 0;
- this.bakingTickCount = 0;
- this.bakingCount = 0;
- this.bakingStartTime = -1; //調理開始時に時刻を代入
- this.isBaking = false;
-
- this.selectKeyPushed = false;
-
-}.extend(BlockClass, {
- tick : function()
- {
- this.checkTouchingDirection();
- if((this.touchingDirection & CollideBody) == CollideBody){
- if(this.ownerStage.manager.UIManager.keyState.select && !this.isSelecting && !this.selectKeyPushed){
- this.selectKeyPushed = true;
- var that = this;
- var thatManager = that.ownerStage.manager;
- if(!this.isBaking){
- //焼き始め
- if(thatManager.userManager.ingredientList.length <= 0){
- thatManager.addWidget(new MessageWidgetClass(thatManager, ["手持ちの材料がありません!\n"]));
- that.isSelecting = false;
- } else if(!this.isSelecting){
- this.isSelecting = true;
- thatManager.addWidget(
- new SelectWidgetClass(thatManager, [thatManager.userManager.ingredientList, function(retv){
- if(retv != null){
- if(retv.length > 0){
- that.basePoint = that.calculateBreadBasePoint(retv);
- if(that.basePoint < 0){
- thatManager.addWidget(new MessageWidgetClass(thatManager, ["見るからにまずそう…焼くのはやめておこう。\n"]));
- } else{
- var text = new TextWidgetClass(thatManager, ["焼き始めました!\nもう一度窯を選択すると取り出します。 ", true, true]);
- thatManager.addWidget(text);
- that.bakingTickCount = 0;
- that.bakingCount = 0;
- that.bakingStartTime = +new Date(); //時間のミリ秒を代入
- that.isBaking = true;
- for(var i = 0, m = retv.length; i < m; i++){
- removeAnObjectFromArray(thatManager.userManager.ingredientList, retv[i]);
- }
- that.cookSound.load();
- that.cookSound.play();
- }
- } else{
- thatManager.addWidget(new MessageWidgetClass(thatManager, ["一つも材料が選択されていないので、パンを焼くことができません!\n"]));
- }
- }
- that.isSelecting = false;
- },true, 0, true])
- );
- }
- } else if(this.bakingCount > 10){
- //焼き終わり
- this.isSelecting = true;
- var s = null;
- var p = 1;
- var t = parseInt(((+new Date()) - this.bakingStartTime) / 100);
- if(t < 30){
- s = "まだ生だった…。";
- p = 0.25;
- } else if(t < 60){
- s = "生焼けだった…。";
- p = 0.50;
- } else if(t < 80){
- s = "火通りが甘い…。";
- p = 0.75;
- } else if(t < 95){
- s = "いい焼け具合だ!";
- p = 1.00;
- } else if(t < 100){
- s = "最高の焼き具合だ!";
- p = 1.25;
- } else if(t < 101){
- s = "完璧な焼き具合だ!";
- p = 1.50;
- } else if(t < 110){
- s = "ちょっとやりすぎた感ただようがいい焦げ方だ!";
- p = 1.00;
- } else if(t < 116){
- s = "焦げ過ぎだった…。";
- p = 0.50;
- } else if(t < 121){
- s = "炭になってる…。";
- p = 0.25;
- } else{
- s = "もはや灰しか残らなかった…。";
- p = 0.00;
- }
- that.basePoint = Math.floor(p * that.basePoint);
- thatManager.userManager.breadList.push(that.basePoint);
- thatManager.addWidget(new MessageWidgetClass(thatManager, [s + "\n" + that.basePoint + "ポイントのパンをゲットした。\n"]));
- that.isSelecting = false;
- that.isBaking = false;
- this.bakingCount = 0;
- this.image = this.imgs[0];
- that.cookSound.pause();
- }
- }
- if(!this.ownerStage.manager.UIManager.keyState.select) this.selectKeyPushed = false;
- }
- if(this.isBaking){
- //焼き途中
- this.bakingTickCount++;
- if(this.bakingTickCount >= 6){
- this.bakingTickCount = 0;
- this.bakingCount++;
- this.image = this.imgs[(this.bakingCount & 1) + 1];
- }
- }
- },
- calculateBreadBasePoint: function(ingr){
- var p = 0;
- for(var i = 0, m = ingr.length; i < m; i++){
- p += IngredientAttributeList[ingr[i].index][1];
- }
- return p;
- },
- draw : function(x, y)
- {
- BakingOvenObjectClass.base.prototype.draw.apply(this, [x, y]);
-
- if(this.bakingCount > 80)
- {
- var puff = (((+new Date()) - this.bakingStartTime) / 100) - 80;
- if(puff > 40)puff = 40;
- if(puff < 0) puff = 0;
- var opacity = (puff / 40);
- this.ownerStage.mainContext.save();
- this.ownerStage.mainContext.globalAlpha = opacity;
- this.ownerStage.mainContext.drawImage(this.img_puff[this.ownerStage.manager.tickCount % 20 < 10 ? 0 : 1], x - 32 , y - 400, 320, 480);
- this.ownerStage.mainContext.restore();
- }
- }
+var BakingOvenObjectClass = function(ownerStage, args){\r
+ BakingOvenObjectClass.base.apply(this, arguments);\r
+ \r
+ this.imgs = new Array();\r
+ for(var i = 0; i < 3; i++){\r
+ this.imgs[i] = document.createElement('img');\r
+ }\r
+ this.imgs[0].src = "images/furnace.png";\r
+ this.imgs[1].src = "images/furnaceof1.png";\r
+ this.imgs[2].src = "images/furnaceof2.png";\r
+ \r
+ this.img_puff = [];\r
+ this.img_puff[0] = document.createElement('img');\r
+ this.img_puff[0].src = "images/puff.png";\r
+ this.img_puff[1] = document.createElement('img');\r
+ this.img_puff[1].src = "images/puff2.png";\r
+ \r
+ this.cookSound = createAudio("baking.mp3");\r
+ this.image = this.imgs[0];\r
+ this.size.x = 64;\r
+ this.size.y = 96;\r
+ this.isPhantom = true;\r
+ this.isSelecting = false;\r
+ this.basePoint = 0;\r
+ this.bakingTickCount = 0;\r
+ this.bakingCount = 0;\r
+ this.bakingStartTime = -1; //調理開始時に時刻を代入\r
+ this.isBaking = false;\r
+ \r
+ this.selectKeyPushed = false;\r
+ \r
+}.extend(BlockClass, {\r
+ tick : function()\r
+ {\r
+ this.checkTouchingDirection();\r
+ if((this.touchingDirection & CollideBody) == CollideBody){\r
+ if(this.ownerStage.manager.UIManager.keyState.select && !this.isSelecting && !this.selectKeyPushed){\r
+ this.selectKeyPushed = true;\r
+ var that = this;\r
+ var thatManager = that.ownerStage.manager;\r
+ if(!this.isBaking){\r
+ //焼き始め\r
+ if(thatManager.userManager.ingredientList.length <= 0){\r
+ thatManager.addWidget(new MessageWidgetClass(thatManager, ["手持ちの材料がありません!\n"]));\r
+ that.isSelecting = false;\r
+ } else if(!this.isSelecting){\r
+ this.isSelecting = true;\r
+ thatManager.addWidget(\r
+ new SelectWidgetClass(thatManager, [thatManager.userManager.ingredientList, function(retv){\r
+ if(retv != null){\r
+ if(retv.length > 0){\r
+ that.basePoint = that.calculateBreadBasePoint(retv);\r
+ if(that.basePoint < 0){\r
+ thatManager.addWidget(new MessageWidgetClass(thatManager, ["見るからにまずそう…焼くのはやめておこう。\n"]));\r
+ } else{\r
+ var text = new TextWidgetClass(thatManager, ["焼き始めました!\nもう一度窯を選択すると取り出します。 ", true, true]);\r
+ thatManager.addWidget(text);\r
+ that.bakingTickCount = 0;\r
+ that.bakingCount = 0;\r
+ that.bakingStartTime = +new Date(); //時間のミリ秒を代入\r
+ that.isBaking = true;\r
+ for(var i = 0, m = retv.length; i < m; i++){\r
+ removeAnObjectFromArray(thatManager.userManager.ingredientList, retv[i]);\r
+ }\r
+ that.cookSound.load();\r
+ that.cookSound.play();\r
+ }\r
+ } else{\r
+ thatManager.addWidget(new MessageWidgetClass(thatManager, ["一つも材料が選択されていないので、パンを焼くことができません!\n"]));\r
+ }\r
+ }\r
+ that.isSelecting = false;\r
+ },true, 0, true])\r
+ );\r
+ }\r
+ } else if(this.bakingCount > 10){\r
+ //焼き終わり\r
+ this.isSelecting = true;\r
+ var s = null;\r
+ var p = 1;\r
+ var t = parseInt(((+new Date()) - this.bakingStartTime) / 100);\r
+ if(t < 30){\r
+ s = "まだ生だった…。";\r
+ p = 0.25;\r
+ } else if(t < 60){\r
+ s = "生焼けだった…。";\r
+ p = 0.50;\r
+ } else if(t < 80){\r
+ s = "火通りが甘い…。";\r
+ p = 0.75;\r
+ } else if(t < 95){\r
+ s = "いい焼け具合だ!";\r
+ p = 1.00;\r
+ } else if(t < 100){\r
+ s = "最高の焼き具合だ!";\r
+ p = 1.25;\r
+ } else if(t < 101){\r
+ s = "完璧な焼き具合だ!";\r
+ p = 1.50;\r
+ } else if(t < 110){\r
+ s = "ちょっとやりすぎた感ただようがいい焦げ方だ!";\r
+ p = 1.00;\r
+ } else if(t < 116){\r
+ s = "焦げ過ぎだった…。";\r
+ p = 0.50;\r
+ } else if(t < 121){\r
+ s = "炭になってる…。";\r
+ p = 0.25;\r
+ } else{\r
+ s = "もはや灰しか残らなかった…。";\r
+ p = 0.00;\r
+ }\r
+ that.basePoint = Math.floor(p * that.basePoint);\r
+ thatManager.userManager.breadList.push(that.basePoint);\r
+ thatManager.addWidget(new MessageWidgetClass(thatManager, [s + "\n" + that.basePoint + "ポイントのパンをゲットした。\n"]));\r
+ that.isSelecting = false;\r
+ that.isBaking = false;\r
+ this.bakingCount = 0;\r
+ this.image = this.imgs[0];\r
+ that.cookSound.pause();\r
+ }\r
+ }\r
+ if(!this.ownerStage.manager.UIManager.keyState.select) this.selectKeyPushed = false;\r
+ }\r
+ if(this.isBaking){\r
+ //焼き途中\r
+ this.bakingTickCount++;\r
+ if(this.bakingTickCount >= 6){\r
+ this.bakingTickCount = 0;\r
+ this.bakingCount++;\r
+ this.image = this.imgs[(this.bakingCount & 1) + 1];\r
+ }\r
+ }\r
+ },\r
+ calculateBreadBasePoint: function(ingr){\r
+ var p = 0;\r
+ for(var i = 0, m = ingr.length; i < m; i++){\r
+ p += IngredientAttributeList[ingr[i].index][1];\r
+ }\r
+ return p;\r
+ },\r
+ draw : function(x, y)\r
+ {\r
+ BakingOvenObjectClass.base.prototype.draw.apply(this, [x, y]);\r
+ this.touchingDirection = 0;\r
+ if(this.bakingCount > 80)\r
+ {\r
+ var puff = (((+new Date()) - this.bakingStartTime) / 100) - 80;\r
+ if(puff > 40)puff = 40;\r
+ if(puff < 0) puff = 0;\r
+ var opacity = (puff / 40);\r
+ this.ownerStage.mainContext.save();\r
+ this.ownerStage.mainContext.globalAlpha = opacity;\r
+ this.ownerStage.mainContext.drawImage(this.img_puff[this.ownerStage.manager.tickCount % 20 < 10 ? 0 : 1], x - 32 , y - 400, 320, 480);\r
+ this.ownerStage.mainContext.restore();\r
+ }\r
+ }\r
});
\ No newline at end of file