1 var BakingOvenObjectClass = function(ownerStage, args){
\r
2 BakingOvenObjectClass.base.apply(this, arguments);
\r
4 this.imgs = new Array();
\r
5 for(var i = 0; i < 3; i++){
\r
6 this.imgs[i] = document.createElement('img');
\r
8 this.imgs[0].src = "images/furnace.png";
\r
9 this.imgs[1].src = "images/furnaceof1.png";
\r
10 this.imgs[2].src = "images/furnaceof2.png";
\r
13 this.img_puff[0] = document.createElement('img');
\r
14 this.img_puff[0].src = "images/puff.png";
\r
15 this.img_puff[1] = document.createElement('img');
\r
16 this.img_puff[1].src = "images/puff2.png";
\r
18 this.cookSound = createAudio("baking.mp3");
\r
19 this.image = this.imgs[0];
\r
22 this.isPhantom = true;
\r
23 this.isSelecting = false;
\r
25 this.bakingTickCount = 0;
\r
26 this.bakingCount = 0;
\r
27 this.bakingStartTime = -1; //調理開始時に時刻を代入
\r
28 this.isBaking = false;
\r
30 this.selectKeyPushed = false;
\r
32 }.extend(BlockClass, {
\r
35 this.checkTouchingDirection();
\r
36 if((this.touchingDirection & CollideBody) == CollideBody){
\r
37 if(this.ownerStage.manager.UIManager.keyState.select && !this.isSelecting && !this.selectKeyPushed){
\r
38 this.selectKeyPushed = true;
\r
40 var thatManager = that.ownerStage.manager;
\r
43 if(thatManager.userManager.ingredientList.length <= 0){
\r
44 thatManager.addWidget(new MessageWidgetClass(thatManager, ["手持ちの材料がありません!\n"]));
\r
45 that.isSelecting = false;
\r
46 } else if(!this.isSelecting){
\r
47 this.isSelecting = true;
\r
48 thatManager.addWidget(
\r
49 new SelectWidgetClass(thatManager, [thatManager.userManager.ingredientList, function(retv){
\r
51 if(retv.length > 0){
\r
52 that.basePoint = that.calculateBreadBasePoint(retv);
\r
53 if(that.basePoint < 0){
\r
54 thatManager.addWidget(new MessageWidgetClass(thatManager, ["見るからにまずそう…焼くのはやめておこう。\n"]));
\r
56 var text = new TextWidgetClass(thatManager, ["焼き始めました!\nもう一度窯を選択すると取り出します。 ", true, true]);
\r
57 thatManager.addWidget(text);
\r
58 that.bakingTickCount = 0;
\r
59 that.bakingCount = 0;
\r
60 that.bakingStartTime = +new Date(); //時間のミリ秒を代入
\r
61 that.isBaking = true;
\r
62 for(var i = 0, m = retv.length; i < m; i++){
\r
63 removeAnObjectFromArray(thatManager.userManager.ingredientList, retv[i]);
\r
65 that.cookSound.load();
\r
66 that.cookSound.play();
\r
69 thatManager.addWidget(new MessageWidgetClass(thatManager, ["一つも材料が選択されていないので、パンを焼くことができません!\n"]));
\r
72 that.isSelecting = false;
\r
76 } else if(this.bakingCount > 10){
\r
78 this.isSelecting = true;
\r
81 var t = parseInt(((+new Date()) - this.bakingStartTime) / 100);
\r
100 } else if(t < 110){
\r
101 s = "ちょっとやりすぎた感ただようがいい焦げ方だ!";
\r
103 } else if(t < 116){
\r
106 } else if(t < 121){
\r
110 s = "もはや灰しか残らなかった…。";
\r
113 that.basePoint = Math.floor(p * that.basePoint);
\r
114 thatManager.userManager.breadList.push(that.basePoint);
\r
115 thatManager.addWidget(new MessageWidgetClass(thatManager, [s + "\n" + that.basePoint + "ポイントのパンをゲットした。\n"]));
\r
116 that.isSelecting = false;
\r
117 that.isBaking = false;
\r
118 this.bakingCount = 0;
\r
119 this.image = this.imgs[0];
\r
120 that.cookSound.pause();
\r
123 if(!this.ownerStage.manager.UIManager.keyState.select) this.selectKeyPushed = false;
\r
127 this.bakingTickCount++;
\r
128 if(this.bakingTickCount >= 6){
\r
129 this.bakingTickCount = 0;
\r
130 this.bakingCount++;
\r
131 this.image = this.imgs[(this.bakingCount & 1) + 1];
\r
135 calculateBreadBasePoint: function(ingr){
\r
137 for(var i = 0, m = ingr.length; i < m; i++){
\r
138 p += IngredientAttributeList[ingr[i].index][1];
\r
142 draw : function(x, y)
\r
144 BakingOvenObjectClass.base.prototype.draw.apply(this, [x, y]);
\r
145 this.touchingDirection = 0;
\r
146 if(this.bakingCount > 80)
\r
148 var puff = (((+new Date()) - this.bakingStartTime) / 100) - 80;
\r
149 if(puff > 40)puff = 40;
\r
150 if(puff < 0) puff = 0;
\r
151 var opacity = (puff / 40);
\r
152 this.ownerStage.mainContext.save();
\r
153 this.ownerStage.mainContext.globalAlpha = opacity;
\r
154 this.ownerStage.mainContext.drawImage(this.img_puff[this.ownerStage.manager.tickCount % 20 < 10 ? 0 : 1], x - 32 , y - 400, 320, 480);
\r
155 this.ownerStage.mainContext.restore();
\r