-var MainCharacterClass = function(stage, args, isFromNetwork){
- MainCharacterClass.base.apply(this);
- this.create(stage, args);
- if(stage){
- if(!isFromNetwork){
- this.ownerUID = stage.manager.userID;
- stage.userControlledCharacter = this;
- stage.addStageObject(this, true);
- } else{
- stage.addStageObject(this, true, true);
- }
- }
-
- // 攻撃を受けた際などに一時的に無敵モードになるように
- // これがないと攻撃を受けたことが分かりにくくなる
- this.isDamageDefenseMode = false;
- this.damageDefenseModeTimeStamp = 0;
- this.damageDefenseModeLong = 500;
-
- // 探し回ってしまった。こんな時間の無駄を今後はしないようにするため記述しておく
- this.max_HP = 100;
- this.HP = 100;
-
-}.extend(OperatedCharacterClass, {
- className: "MainCharacterClass",
- create: function(stage, args){
- MainCharacterClass.base.apply(this, arguments);
- this.max_HP = 100;
- this.HP = this.max_HP;
- },
- tick : function()
- {
- if(this.isDamageDefenseMode)
- {
- if((+new Date()) > this.damageDefenseModeTimeStamp + this.damageDefenseModeLong)
- {
- this.isDamageDefenseMode = false;
- }
- }
- MainCharacterClass.base.prototype.tick.apply(this);
- if((!mainManager.runningStageName || this.ownerStage.manager.userID == this.ownerUID) && this.origin.y > 1000){
- this.kill();
- }
- },
- damage: function(p){
- if(!this.isDamageDefenseMode)
- {
- if(this.HP <= p){
-
- this.kill();
- } else{
- this.HP -= p;
- }
- this.isDamageDefenseMode = true;
- this.damageDefenseModeTimeStamp = (+new Date());
- }
- },
- heal: function(p){
- if(this.HP + p > this.max_HP){
- this.HP = this.max_HP;
- } else{
- this.HP += p;
- }
- },
- kill: function(){
- this.HP = 0;
- //終了処理および再読み込みはmainManager側で行われる。
- },
- draw: function(x, y){
-
- if(!this.isDamageDefenseMode || (+new Date()) % 200 < 100)
- {
- //自分を描画
- MainCharacterClass.base.prototype.draw.apply(this, [x, y]);
- }
-
- if(this != this.ownerStage.userControlledCharacter)
- {
- this.ownerStage.mainContext.save();
- var color = "green";
- var backColor = "gray";
- var thickness = 4;
- var barWidth = this.max_HP;
- if(barWidth < 16) barWidth = 16;
- if(barWidth > this.size.x) barWidth = this.size.x;
- var barPerHP = this.HP / this.max_HP;
-
- if(barPerHP < 0.2)
- {
- var backColor = "red";
- }else if(barPerHP < 0.4)
- {
- var backColor = "yellow";
- }
-
- this.ownerStage.mainContext.fillStyle = backColor;
- this.ownerStage.mainContext.fillRect(x + (this.size.x - barWidth) / 2, y - thickness, barWidth, thickness);
- this.ownerStage.mainContext.fillStyle = color;
- this.ownerStage.mainContext.fillRect(x + (this.size.x - barWidth) / 2, y - thickness, barWidth * barPerHP, thickness);
-
- this.ownerStage.mainContext.restore();
- }
- }
-});
-
-/*
-MainCharacterClass.createCharacter = function(stage, args)
-{
- var id = stage.manager.userManager.characterId;
- if(id == 0)
- {
- return new MainCharacterClass_Hunter(stage, args);
- }else if(id == 1)
- {
- return new MainCharacterClass_Man(stage, args);
- }else if(id == 2)
- {
- return new MainCharacterClass_NakedMan(stage, args);
- }else if(id == 3)
- {
- return new MainCharacterClass_Thief(stage, args);
- }else if(id == 4)
- {
- return new MainCharacterClass_Witch(stage, args);
- }else
- {
- return new MainCharacterClass_Woman(stage, args);
- }
-};
-*/
-
+var MainCharacterClass = function(stage, args, isFromNetwork){\r
+ MainCharacterClass.base.apply(this);\r
+ this.create(stage, args);\r
+ if(stage){\r
+ if(!isFromNetwork){\r
+ this.ownerUID = stage.manager.userID;\r
+ stage.userControlledCharacter = this;\r
+ stage.addStageObject(this, true);\r
+ } else{\r
+ stage.addStageObject(this, true, true);\r
+ }\r
+ }\r
+ \r
+ // 攻撃を受けた際などに一時的に無敵モードになるように\r
+ // これがないと攻撃を受けたことが分かりにくくなる\r
+ this.isDamageDefenseMode = false;\r
+ this.damageDefenseModeTimeStamp = 0;\r
+ this.damageDefenseModeLong = 500;\r
+ \r
+ // 探し回ってしまった。こんな時間の無駄を今後はしないようにするため記述しておく\r
+ this.max_HP = 100;\r
+ this.HP = 100;\r
+ //this.isPhantom = true;\r
+}.extend(OperatedCharacterClass, {\r
+ className: "MainCharacterClass",\r
+ create: function(stage, args){\r
+ MainCharacterClass.base.apply(this, arguments);\r
+ this.max_HP = 100;\r
+ this.HP = this.max_HP;\r
+ },\r
+ tick : function()\r
+ {\r
+ if(this.isDamageDefenseMode)\r
+ {\r
+ if((+new Date()) > this.damageDefenseModeTimeStamp + this.damageDefenseModeLong)\r
+ {\r
+ this.isDamageDefenseMode = false;\r
+ }\r
+ }\r
+ MainCharacterClass.base.prototype.tick.apply(this);\r
+ if((!mainManager.runningStageName || this.ownerStage.manager.userID == this.ownerUID) && this.origin.y > 1000){\r
+ this.kill();\r
+ }\r
+ },\r
+ damage: function(p){\r
+ if(!this.isDamageDefenseMode)\r
+ {\r
+ if(this.HP <= p){\r
+ \r
+ this.kill();\r
+ } else{\r
+ this.HP -= p;\r
+ }\r
+ this.isDamageDefenseMode = true;\r
+ this.damageDefenseModeTimeStamp = (+new Date());\r
+ }\r
+ },\r
+ heal: function(p){\r
+ if(this.HP + p > this.max_HP){\r
+ this.HP = this.max_HP;\r
+ } else{\r
+ this.HP += p;\r
+ }\r
+ },\r
+ kill: function(){\r
+ this.HP = 0;\r
+ //終了処理および再読み込みはmainManager側で行われる。\r
+ },\r
+ draw: function(x, y){\r
+ \r
+ if(!this.isDamageDefenseMode || (+new Date()) % 200 < 100)\r
+ {\r
+ //自分を描画\r
+ MainCharacterClass.base.prototype.draw.apply(this, [x, y]);\r
+ }\r
+ \r
+ if(this != this.ownerStage.userControlledCharacter)\r
+ {\r
+ this.ownerStage.mainContext.save();\r
+ var color = "green";\r
+ var backColor = "gray";\r
+ var thickness = 4;\r
+ var barWidth = this.max_HP;\r
+ if(barWidth < 16) barWidth = 16;\r
+ if(barWidth > this.size.x) barWidth = this.size.x;\r
+ var barPerHP = this.HP / this.max_HP;\r
+ \r
+ if(barPerHP < 0.2)\r
+ {\r
+ var backColor = "red";\r
+ }else if(barPerHP < 0.4)\r
+ {\r
+ var backColor = "yellow";\r
+ }\r
+ \r
+ this.ownerStage.mainContext.fillStyle = backColor;\r
+ this.ownerStage.mainContext.fillRect(x + (this.size.x - barWidth) / 2, y - thickness, barWidth, thickness);\r
+ this.ownerStage.mainContext.fillStyle = color;\r
+ this.ownerStage.mainContext.fillRect(x + (this.size.x - barWidth) / 2, y - thickness, barWidth * barPerHP, thickness);\r
+ \r
+ this.ownerStage.mainContext.restore();\r
+ }\r
+ },\r
+ canMoveTo: function(x, y){\r
+ //すべてのオブジェクトに対して(x, y)にあるときの自分の衝突状態を調べる。\r
+ var retv = true;\r
+ var d = this.ownerStage.stageObjectLinearList;\r
+ \r
+ this.onLadder = false;\r
+ for(var i = 0, i_max = d.length; i < i_max; i++){\r
+ var f = d[i];\r
+ if(f !== this && !(f instanceof MainCharacterClass)){\r
+ //自分でない\r
+ if(f.isOverlappedWithLocatedObject(this, x, y)){\r
+ //衝突先fの衝突範囲内にいる\r
+ if(this.isItemCollector){\r
+ //衝突先fを取得したアイテムに加える。\r
+ var titem = null;\r
+ for(titem in this.collectedItems){\r
+ //複数追加の防止\r
+ if(titem == f){\r
+ break;\r
+ }\r
+ }\r
+ if(titem != f){\r
+ this.collectedItems.push(f);\r
+ if(f instanceof LadderBlockClass){\r
+ this.onLadder = true;\r
+ }\r
+ }\r
+ }\r
+ if(f.isPhantom){\r
+ //衝突先fが衝突判定無視だったら、衝突はしない\r
+ } else{\r
+ //衝突した\r
+ retv = false;\r
+ //break;\r
+ }\r
+ \r
+ }\r
+ }\r
+ }\r
+ return retv;\r
+ },\r
+});\r
+\r
+/*\r
+MainCharacterClass.createCharacter = function(stage, args)\r
+{\r
+ var id = stage.manager.userManager.characterId;\r
+ if(id == 0)\r
+ {\r
+ return new MainCharacterClass_Hunter(stage, args);\r
+ }else if(id == 1)\r
+ {\r
+ return new MainCharacterClass_Man(stage, args);\r
+ }else if(id == 2)\r
+ {\r
+ return new MainCharacterClass_NakedMan(stage, args);\r
+ }else if(id == 3)\r
+ {\r
+ return new MainCharacterClass_Thief(stage, args);\r
+ }else if(id == 4)\r
+ {\r
+ return new MainCharacterClass_Witch(stage, args);\r
+ }else\r
+ {\r
+ return new MainCharacterClass_Woman(stage, args);\r
+ }\r
+};\r
+*/\r
+\r