OSDN Git Service

パン焼き得点計算まで実装
author西田 耀 <hikarupsp@users.sourceforge.jp>
Thu, 29 Aug 2013 02:17:53 +0000 (11:17 +0900)
committer西田 耀 <hikarupsp@users.sourceforge.jp>
Thu, 29 Aug 2013 02:17:53 +0000 (11:17 +0900)
www/corelib/attribute.js
www/corelib/classes/BakingOvenObjectClass.js

index f679ad5..7088f18 100644 (file)
@@ -41,13 +41,13 @@ var IngredientAttributeList = [
        ["051",-20, "固形の薬品", "キケンな感じ。中身は白い粉…"],
        ["052", -3, "枯れ葉", "命を繋ぐ大切な自然の形。"],
 ];
-
+/*
 var IngredientCombinationList = [
        [["024", "046"],"ナメクジは塩をかけて消すことができた!"],
        [["003", "015"],"生肉と油でこんがり肉をつくった!"],
        
 ];
-
+*/
 var IngredientImageList = new Array();
 
 for(var i = 0, i_max = IngredientAttributeList.length; i < i_max; i++){
index 4cdc8fe..a79a8af 100644 (file)
@@ -14,6 +14,10 @@ var BakingOvenObjectClass = function(ownerStage, args){
        this.size.y = 96;
        this.isPhantom = true;
        this.isSelecting = false;
+       this.basePoint = 0;
+       this.bakingTickCount = 0;
+       this.bakingCount = 0;
+       this.isBaking = false;
 }.extend(BlockClass, {
        tick : function()
        {
@@ -22,28 +26,96 @@ var BakingOvenObjectClass = function(ownerStage, args){
                        if(this.ownerStage.manager.UIManager.keyState.select && !this.isSelecting){
                                var that = this;
                                var thatManager = that.ownerStage.manager;
-                               if(thatManager.userManager.ingredientList.length <= 0){
-                                       thatManager.addWidget(new MessageWidgetClass(thatManager, ["手持ちの材料がありません!\n"]));
-                                       that.isSelecting = false;
-                               } else{
-                                       this.isSelecting = true;
-                                       thatManager.addWidget(
-                                               new SelectWidgetClass(thatManager, [thatManager.userManager.ingredientList, function(retv){
-                                                       if(retv){
-                                                               if(retv.length > 0){
-                                                                       thatManager.addWidget(new MessageWidgetClass(thatManager, [retv.length + "個の材料が選択されました。\n"]));
+                               if(!this.isBaking){
+                                       //焼き始め
+                                       if(thatManager.userManager.ingredientList.length <= 0){
+                                               thatManager.addWidget(new MessageWidgetClass(thatManager, ["手持ちの材料がありません!\n"]));
+                                               that.isSelecting = false;
+                                       } else{
+                                               this.isSelecting = true;
+                                               thatManager.addWidget(
+                                                       new SelectWidgetClass(thatManager, [thatManager.userManager.ingredientList, function(retv){
+                                                               if(retv){
+                                                                       if(retv.length > 0){
+                                                                               that.basePoint = that.calculateBreadBasePoint(retv);
+                                                                               if(that.basePoint < 0){
+                                                                                       thatManager.addWidget(new MessageWidgetClass(thatManager, ["見るからにまずそう…焼くのはやめておこう。\n"]));
+                                                                               } else{
+                                                                                       thatManager.addWidget(new MessageWidgetClass(thatManager, ["焼き始めました!もう一度窯を選択すると取り出します。\n"]));
+                                                                                       that.bakingTickCount = 0;
+                                                                                       that.bakingCount = 0;
+                                                                                       that.isBaking = true;
+                                                                               }
+                                                                       } else{
+                                                                               thatManager.addWidget(new MessageWidgetClass(thatManager, ["一つも材料が選択されていないので、パンを焼くことができません!\n"]));
+                                                                       }
                                                                } else{
-                                                                       thatManager.addWidget(new MessageWidgetClass(thatManager, ["一つも材料が選択されていないので、パンを焼くことができません!\n"]));
+                                                                       thatManager.addWidget(new MessageWidgetClass(thatManager, ["キャンセルされました。\n"]));
                                                                }
-                                                       } else{
-                                                               thatManager.addWidget(new MessageWidgetClass(thatManager, ["キャンセルされました。\n"]));
-                                                       }
-                                                       that.isSelecting = false;
-                                               },true, 0, true])
-                                       );
+                                                               that.isSelecting = false;
+                                                       },true, 0, true])
+                                               );
+                                       }
+                               } else{
+                                       //焼き終わり
+                                       this.isSelecting = true;
+                                       var s = null;
+                                       var p = 1;
+                                       var c = this.bakingCount;
+                                       if(c < 30){
+                                               s = "まだ生だった…。";
+                                               p = 0.25;
+                                       } else if(c < 60){
+                                               s = "生焼けだった…。";
+                                               p = 0.50;
+                                       } else if(c < 80){
+                                               s = "火通りが甘い…。";
+                                               p = 0.75;
+                                       } else if(c < 95){
+                                               s = "いい焼け具合だ!";
+                                               p = 1.00;
+                                       } else if(c < 100){
+                                               s = "最高の焼き具合だ!";
+                                               p = 1.25;
+                                       } else if(c < 101){
+                                               s = "完璧な焼き具合だ!";
+                                               p = 1.50;
+                                       } else if(c < 110){
+                                               s = "いい焦げ方だ!";
+                                               p = 1.00;
+                                       } else if(c < 116){
+                                               s = "焦げ過ぎだった…。";
+                                               p = 0.50;
+                                       } else if(c < 121){
+                                               s = "炭になってる…。";
+                                               p = 0.25;
+                                       } else{
+                                               s = "もはや灰しか残らなかった…。";
+                                               p = 0.00;
+                                       }
+                                       that.basePoint = Math.floor(p * that.basePoint);
+                                       thatManager.addWidget(new MessageWidgetClass(thatManager, [s + that.basePoint + "ポイントのパンをゲットした。\n"]));
+                                       that.isSelecting = false;
+                                       that.isBaking = false;
+                                       this.image = this.imgs[0];
                                }
                        }
                }
+               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;
        },
-
 });
\ No newline at end of file