mota-js/libs/enemys.min.js
2017-12-04 01:35:38 +08:00

1 line
4.9 KiB
JavaScript

function enemys(){}enemys.prototype.init=function(){this.enemys={greenSlime:{name:"绿头怪",hp:50,atk:18,def:1,money:1,experience:1,special:0},redSlime:{name:"红头怪",hp:70,atk:20,def:2,money:2,experience:2,special:0},bat:{name:"小蝙蝠",hp:90,atk:30,def:4,money:4,experience:3,special:0},vampire:{name:"冥灵魔王",hp:10000,atk:2000,def:2000,money:100,experience:100,special:0,bomb:false},skeleton:{name:"骷髅人",hp:100,atk:35,def:5,money:6,experience:4,special:0},skeletonSoilder:{name:"骷髅士兵",hp:150,atk:55,def:15,money:10,experience:8,special:0},zombie:{name:"兽人",hp:1000,atk:245,def:45,money:26,experience:21,special:0},zombieKnight:{name:"兽人武士",hp:2000,atk:340,def:170,money:70,experience:55,special:0},rock:{name:"石头人",hp:1600,atk:750,def:950,money:31,experience:23,special:3},slimeMan:{name:"影子战士",hp:3000,atk:500,def:250,money:80,experience:60,special:0},bluePriest:{name:"初级法师",hp:150,atk:50,def:10,money:8,experience:7,special:0},redPriest:{name:"高级法师",hp:300,atk:100,def:20,money:20,experience:15,special:0},swordsman:{name:"双手剑士",hp:600,atk:888,def:60,money:77,experience:66,special:4},yellowKnight:{name:"金骑士",hp:2000,atk:1200,def:1000,money:103,experience:94,special:0},redKnight:{name:"红骑士",hp:3500,atk:1350,def:1200,money:125,experience:112,special:0},darkKnight:{name:"黑骑士",hp:6000,atk:1600,def:1400,money:173,experience:144,special:0},blackMagician:{name:"黑魔法师",hp:7000,atk:2000,def:1500,money:200,experience:156,special:11,value:1/3},whiteGhost:{name:"水银战士",hp:4500,atk:1000,def:500,money:100,experience:80,special:0},magicDragon:{name:"魔龙",hp:33333,atk:3333,def:3333,money:0,experience:0,special:0,bomb:false},octopus:{name:"血影",hp:10000,atk:999,def:999,money:999,experience:999,special:0},fairy:{name:"仙子",hp:600000,atk:250000,def:50000,money:0,experience:0,special:0,bomb:false},greenKnight:{name:"强盾骑士",hp:15000,atk:3000,def:2000,money:148,experience:133,special:3}}};enemys.prototype.getEnemys=function(a){if(a==undefined){return this.enemys}return this.enemys[a]};enemys.prototype.getSpecialText=function(b){if(b==undefined){return""}var a=this.enemys[b].special;if(a==1){return"先攻"}if(a==2){return"魔攻"}if(a==3){return"坚固"}if(a==4){return"2连击"}if(a==5){return"3连击"}if(a==6){return"4连击"}if(a==7){return"破甲"}if(a==8){return"反击"}if(a==9){return"净化"}if(a==11){return"吸血"}return""};enemys.prototype.getDamage=function(i){var f=core.material.enemys[i];var e=core.status.hero.atk,h=core.status.hero.def,b=core.status.hero.mdef;var d=f.hp,j=f.atk,k=f.def,a=f.special;var c=this.calDamage(e,h,b,d,j,k,a);var g=0;if(f.special==11){g=core.status.hero.hp*f.value;if(core.status.hero.flags.hasShield5){g/=2}g=parseInt(g)}return c+g};enemys.prototype.getCritical=function(e){var c=core.material.enemys[e];if(c.special==3){return"???"}var d=this.calDamage(core.status.hero.atk,core.status.hero.def,core.status.hero.mdef,c.hp,c.atk,c.def,c.special);if(d==0){return 0}for(var a=core.status.hero.atk+1;a<=c.hp+c.def;a++){var b=this.calDamage(a,core.status.hero.def,core.status.hero.mdef,c.hp,c.atk,c.def,c.special);if(b<d){return a-core.status.hero.atk}d=b}return 0};enemys.prototype.getCriticalDamage=function(d){var e=this.getCritical(d);if(e=="???"){return"???"}if(e==0){return 0}var a=core.material.enemys[d];var b=this.calDamage(core.status.hero.atk,core.status.hero.def,core.status.hero.mdef,a.hp,a.atk,a.def,a.special);if(b==999999999){return"???"}return b-this.calDamage(core.status.hero.atk+e,core.status.hero.def,core.status.hero.mdef,a.hp,a.atk,a.def,a.special)};enemys.prototype.getDefDamage=function(b){var a=core.material.enemys[b];return this.calDamage(core.status.hero.atk,core.status.hero.def,core.status.hero.mdef,a.hp,a.atk,a.def,a.special)-this.calDamage(core.status.hero.atk,core.status.hero.def+1,core.status.hero.mdef,a.hp,a.atk,a.def,a.special)};enemys.prototype.calDamage=function(f,h,c,e,j,k,a){if(a==2){h=0}if(a==3&&k<f-1){k=f-1}if(a==10){j=f;k=h}if(f<=k){return 999999999}var b=j-h;if(b<0){b=0}if(a==4){b*=2}if(a==5){b*=3}if(a==6){b*=4}if(a==8){b+=parseInt(0.1*f)}var d=a==1?b:0;if(a==7){d=parseInt(0.9*h)}if(a==9){d=3*c}var g=parseInt((e-1)/(f-k));var i=d+g*b;i-=c;return i<=0?0:i};enemys.prototype.getCurrentEnemys=function(){var c=[];var f={};var d=core.status.thisMap.blocks;for(var a=0;a<d.length;a++){if(core.isset(d[a].event)&&d[a].event.cls=="enemys"){var h=d[a].event.id;if(core.isset(f[h])){continue}var e=core.material.enemys[h];var g=e.def;if(e.special==3&&g<core.status.hero.atk-1){g=core.status.hero.atk-1}c.push({id:h,name:e.name,hp:e.hp,atk:e.atk,def:g,money:e.money,experience:e.experience,special:core.enemys.getSpecialText(h),damage:this.getDamage(h),critical:this.getCritical(h),criticalDamage:this.getCriticalDamage(h),defDamage:this.getDefDamage(h)});f[h]=true}}c.sort(function(j,i){if(j.damage==i.damage){return j.money-i.money}return j.damage-i.damage});return c};main.instance.enemys=new enemys();