- 8个Boss全部重做:主攻击模式+1~2种随机小攻击+二/三阶段变形动画 - 新增5个雷霆战机参考Boss:太空原种/暗黑突击/激光钢琴/夺权者X/暗黑魔碟 - 多管血条(蓝/红/橙)+锁血转场+入场不掉血(b.y<b.ty-1免疫) - 签名技能:花弹成长/高机动瞄准弹/21键4模式激光/银钉无人机+巨宽激光压制/锥形弹环+眼激光 - 所有激光发射点跟随Boss移动(bossBeam src机制) - Boss挑战模式:随机装备3主武Lv3+3副武Lv3+2僚机Lv2,可选老虎机抽奖动画 - rush模式Boss血量x10,击破计时存档 - 武器修正:黎明重炮近炸引信26px/死光伤害x2/椭圆判定bossHit等
127 lines
10 KiB
JavaScript
127 lines
10 KiB
JavaScript
"use strict";
|
||
/* ================= 机体(各具特色) ================= */
|
||
const SHIPS={
|
||
falcon:{name:"猎鹰",spr:"ship0",cost:0,trait:"均衡型 · 无短板",
|
||
mod:{spd:1,dmg:1,lives:0,crit:0,dodge:0,hitR:0,mag:1,bombs:0,shield:0,drone:0,droneBoost:1}},
|
||
ghost:{name:"幽灵",spr:"ship1",cost:800,trait:"高速 · 闪避+12% · 判定更小",
|
||
mod:{spd:1.18,dmg:0.95,lives:-1,crit:0,dodge:0.12,hitR:-0.6,mag:1,bombs:0,shield:0,drone:0,droneBoost:1}},
|
||
bastion:{name:"堡垒",spr:"ship2",cost:1500,trait:"重装 · 命+2 · 血量+30 · 自带护盾",
|
||
mod:{spd:0.85,dmg:1.1,lives:2,crit:0,dodge:0,hitR:0.5,mag:1.4,bombs:0,shield:1,drone:0,droneBoost:1,hp:30}},
|
||
valkyrie:{name:"女武神",spr:"ship3",cost:3000,trait:"自带僚机 · 僚机火力+50%",
|
||
mod:{spd:1.05,dmg:1,lives:0,crit:0,dodge:0,hitR:0,mag:1,bombs:0,shield:0,drone:1,droneBoost:1.5}},
|
||
asura:{name:"修罗",spr:"ship4",cost:5000,trait:"暴击+15% · 伤害+10% · 命-1",
|
||
mod:{spd:1,dmg:1.1,lives:-1,crit:0.15,dodge:0,hitR:0,mag:1,bombs:1,shield:0,drone:0,droneBoost:1}}
|
||
};
|
||
/* ================= 军械库:21 主武器 =================
|
||
beh: 行为引擎类型 lvl(w): 该等级的战斗参数 */
|
||
const WEAPONS={
|
||
vulcan:{name:"火神机炮",spr:"trcr",rare:0,beh:"streams",ds:"金色曳光弹雨,可靠的老伙计",
|
||
lvl:w=>({n:1+Math.floor(w/2),dmg:7*(1+.22*(w-1)),int:8,spd:5.4,gap:6})},
|
||
shotgun:{name:"超级霰弹",spr:"pelt",rare:0,beh:"streams",ds:"弹丸只从两翼倾泻,中央中空",
|
||
lvl:w=>({n:5+2*w,dmg:4.2*(1+.18*(w-1)),int:22,spd:5.5,fan:0.5,gap:2,skipMid:1})},
|
||
needle:{name:"蜂针刺弹",spr:"ndl",rare:0,beh:"streams",ds:"淬毒细针,命中后持续蚀甲",
|
||
lvl:w=>({n:1+Math.floor(w/3),dmg:2.6*(1+.2*(w-1)),int:3,spd:7,gap:4,poison:100})},
|
||
flame:{name:"火焰喷射器",icon:"flame",rare:0,beh:"flame",ds:"周期性喷吐的宽幅烈焰,近身湮灭",
|
||
lvl:w=>({n:3+Math.floor(w/2),dmg:1.1*(1+.22*(w-1)),range:70+8*w,burst:34+4*w,cd:Math.max(46,74-5*w)})},
|
||
shotgun2:{name:"霜冻霰弹",spr:"shard",rare:1,beh:"streams",ds:"冰晶霰弹,大面积冻结减速",
|
||
lvl:w=>({n:3+w,dmg:3*(1+.18*(w-1)),int:23,spd:5.2,fan:0.42,gap:2,slow:80+25*w})},
|
||
tesla:{name:"电弧发生器",icon:"chain",rare:1,beh:"tesla",ds:"自动电击周围敌人,无处可逃",
|
||
lvl:w=>({n:1+Math.floor(w/2),dmg:8*(1+.25*(w-1)),int:44-2*w,range:110})},
|
||
railgun:{name:"电磁炮",icon:"rail",rare:2,beh:"rail",ds:"蓄力磁轨贯穿敌阵,命中留下电浆区",
|
||
lvl:w=>({dmg:55*(1+.3*(w-1)),charge:120-10*w,spd:11,zone:24+4*w})},
|
||
deathray:{name:"死光",icon:"laser",rare:2,beh:"deathray",ds:"蓄力后自动锁敌的死亡射线",
|
||
lvl:w=>({dps:0.9*(1+.28*(w-1)),charge:160-12*w,beam:55,width:5+2*w})},
|
||
crescent:{name:"月牙斩",spr:"cres",rare:1,beh:"crescent",ds:"巨型旋刃缓慢斩出,贯穿敌阵",
|
||
lvl:w=>({dmg:44*(1+.24*(w-1)),int:120,spd:3.4})},
|
||
fission:{name:"分裂弹",spr:"fiss",rare:1,beh:"fission",ds:"飞行一段距离后炸裂为散射弹幕",
|
||
lvl:w=>({dmg:6*(1+.22*(w-1)),int:20,spd:5.2,split:3+Math.floor(w/2),splitAt:26})},
|
||
frost:{name:"冰冻枪",spr:"icelance",rare:1,beh:"frost",ds:"贯穿冰枪,命中将敌人彻底冻结",
|
||
lvl:w=>({dmg:6*(1+.2*(w-1)),int:16,spd:6,freeze:70+25*w})},
|
||
swarm:{name:"蜂巢导弹",spr:"msl2",rare:1,beh:"homing",ds:"自动追踪的导弹蜂群,命中爆裂",
|
||
lvl:w=>({n:1+w,dmg:2.2*(1+.2*(w-1)),int:22,spd:3.2,aoe:10})},
|
||
bubble:{name:"重力泡泡",spr:"bub",rare:1,beh:"bubble",ds:"缓慢漂浮的大泡泡,爆裂冲击",
|
||
lvl:w=>({dmg:18*(1+.25*(w-1)),int:26,spd:1.4,aoe:30+4*w})},
|
||
starfall:{name:"流星火雨",spr:"met",rare:2,beh:"starfall",ds:"流星自脚下逆冲而起,轰炸前方空域",
|
||
lvl:w=>({n:3+Math.floor(w/2),dmg:16*(1+.25*(w-1)),int:150-8*w,aoe:16})},
|
||
boomerang:{name:"回旋镖",spr:"boomer",rare:0,beh:"boom",ds:"亮蓝回旋刃,远射贯穿后回旋返航",
|
||
lvl:w=>({n:1+Math.floor(w/2),dmg:7*(1+.22*(w-1)),int:21,spd:4.8})},
|
||
singularity:{name:"奇点炮",spr:"sing",rare:2,beh:"sing",ds:"发射微型黑洞,牵引后剧烈坍缩",
|
||
lvl:w=>({dmg:40*(1+.3*(w-1)),int:200,pull:60,aoe:40,fuse:100})},
|
||
wavecannon:{name:"波动炮",spr:"waveb",rare:2,beh:"wave",ds:"蓄力斩出贯穿敌阵的剑气弧光",
|
||
lvl:w=>({dmg:32*(1+.3*(w-1)),charge:100-8*w,spd:5,width:14+6*w})},
|
||
holy:{name:"圣光弹",spr:"holyo",rare:2,beh:"holy",ds:"爆裂为旋转生长的圣光十字",
|
||
lvl:w=>({dmg:13*(1+.25*(w-1)),int:65,spd:3,len:16+3*w})},
|
||
thundercall:{name:"落雷术",spr:"thnd",rare:1,beh:"thunder",ds:"呼唤天雷轰击前方区域",
|
||
lvl:w=>({n:2+Math.floor(w/2),dmg:12*(1+.25*(w-1)),int:90-4*w,aoe:13})},
|
||
arcshu:{name:"电弧手里剑",spr:"shuri",rare:2,beh:"shuriken",ds:"旋转雷刃一路放电,贯穿全场",
|
||
lvl:w=>({dmg:6*(1+.22*(w-1)),int:95-4*w,spd:2.2,zapDmg:5*(1+.25*(w-1)),pulse:20})},
|
||
volt:{name:"电能机炮",spr:"voltb",rare:1,beh:"volt",ds:"高频电能弹,命中后电弧连锁跳跃",
|
||
lvl:w=>({n:1+Math.floor(w/3),dmg:3.2*(1+.2*(w-1)),int:5,spd:6.2,gap:5,chain:2+Math.floor(w/2)})},
|
||
dawn:{name:"黎明重炮",spr:"dawnsh",rare:2,beh:"dawn",ds:"长蓄力重炮,一炮轰出黎明",
|
||
lvl:w=>({dmg:70*(1+.3*(w-1)),charge:170-12*w,spd:5,aoe:30+3*w})},
|
||
proto:{name:"协议武装",spr:"protb",rare:2,beh:"protocol",ds:"青蓝连发压制,周期性蓄能重炮",
|
||
lvl:w=>({dmg:3*(1+.2*(w-1)),int:6,spd:6.5,heavy:120-8*w,hdmg:36*(1+.28*(w-1)),haoe:26+3*w})},
|
||
nebula:{name:"星云奥秘",spr:"neb",rare:2,beh:"nebula",ds:"缓慢追踪的奥术漩涡,命中绽放群星",
|
||
lvl:w=>({dmg:12*(1+.25*(w-1)),int:100-5*w,spd:1.6,stars:10+2*w})}
|
||
};
|
||
const MAINS=Object.keys(WEAPONS);
|
||
/* ================= 18 副武器 ================= */
|
||
const SUBS={
|
||
broad:{name:"侧舷火炮",spr:"broad",rare:0,max:5,beh:"broad",ds:l=>`舷炮斜向前方45°齐射,Lv${l+1}`},
|
||
sweep:{name:"探照扫射",icon:"laser",rare:1,max:5,beh:"sweep",ds:l=>`往复摆动的扫描光束,Lv${l+1}`},
|
||
leech:{name:"寄生电浆",icon:"chain",rare:1,max:3,beh:"leech",ds:l=>`命中附着电浆水蛭,吸血回复结构,Lv${l+1}`},
|
||
orbit:{name:"环绕光刃",spr:"blade",rare:1,max:4,beh:"orbit",ds:l=>`光刃+1(当前${l+1}把)`},
|
||
sats:{name:"卫星屏障",spr:"sat",rare:1,max:3,beh:"sats",ds:l=>`环绕卫星可格挡敌弹,Lv${l+1}`},
|
||
pd:{name:"点防御炮",spr:"dGun",rare:1,max:4,beh:"pd",ds:l=>`自动拦截来袭敌弹(不打贴身弹),Lv${l+1}`},
|
||
slowfield:{name:"时间力场",spr:"grv",rare:2,max:3,beh:"slowfield",ds:l=>"力场内敌人与敌弹大幅减速,Lv"+(l+1)},
|
||
flares:{name:"热诱弹舱",spr:"flare",rare:0,max:4,beh:"flares",ds:l=>"扇形抛射4枚缓速热诱弹,各诱爆一枚敌弹,Lv"+(l+1)},
|
||
seeker:{name:"索敌浮游炮",spr:"dGun2",rare:1,max:3,beh:"seeker",ds:l=>"离机索敌的浮游炮,Lv"+(l+1)},
|
||
beamdrone:{name:"光束浮游炮",spr:"dBeam",rare:2,max:3,beh:"beamdrone",ds:l=>"环绕发射光束的浮游单元,Lv"+(l+1)},
|
||
frostnova:{name:"冰霜新星",spr:"frost",rare:1,max:3,beh:"frostnova",ds:l=>"周期性冻结周围敌人,Lv"+(l+1)},
|
||
thorns:{name:"反伤棘甲",icon:"crit",rare:1,max:3,beh:"thorns",ds:l=>"撞击你的敌人遭到反噬,Lv"+(l+1)},
|
||
sticky:{name:"粘着炸弹",spr:"sticky",rare:0,max:3,beh:"sticky",ds:l=>"粘附敌人的定时高爆炸弹,Lv"+(l+1)},
|
||
magnetar:{name:"磁暴环",icon:"mag",rare:2,max:3,beh:"magnetar",ds:l=>"周期性电磁脉冲,消弹伤敌,Lv"+(l+1)},
|
||
executor:{name:"斩首巡航弹",spr:"cmsl",rare:2,max:3,beh:"executor",ds:l=>"巡航导弹猎杀最强之敌,Lv"+(l+1)},
|
||
airstrike:{name:"空爆弹",spr:"amsl",rare:1,max:5,beh:"airstrike",ds:l=>"双弹侧掠折向直上,穿透机身沿途轰炸,Lv"+(l+1)},
|
||
repair:{name:"修复无人机",spr:"dHeal",rare:1,max:3,beh:"repair",ds:l=>"持续修复机体结构,Lv"+(l+1)}
|
||
};
|
||
const SUB_KEYS=Object.keys(SUBS);
|
||
/* ================= 12 僚机 ================= */
|
||
const DRONES={
|
||
gunner:{name:"机枪僚机",spr:"dGun",rare:0,max:3,beh:"aim",ds:l=>"协同瞄准射击,Lv"+(l+1)},
|
||
gunner2:{name:"双翼机枪手",spr:"dGun2",rare:1,max:3,beh:"aim2",ds:l=>"双管僚机,Lv"+(l+1)},
|
||
sniperd:{name:"狙击僚机",spr:"dSnip",rare:1,max:3,beh:"snipe",ds:l=>"高伤点射,Lv"+(l+1)},
|
||
beamer:{name:"光束僚机",spr:"dBeam",rare:2,max:3,beh:"beam",ds:l=>"周期光束,Lv"+(l+1)},
|
||
bomber:{name:"轰炸僚机",spr:"dBomb",rare:1,max:3,beh:"bomb",ds:l=>"投掷爆炸弹,Lv"+(l+1)},
|
||
frostd:{name:"冰霜僚机",spr:"dFrost",rare:1,max:3,beh:"frostD",ds:l=>"减速弹,Lv"+(l+1)},
|
||
teslaD:{name:"电弧僚机",spr:"dTesla",rare:2,max:3,beh:"teslaD",ds:l=>"近身电击,Lv"+(l+1)},
|
||
rammer:{name:"冲撞僚机",spr:"dRam",rare:1,max:3,beh:"melee",big:1.6,ds:l=>"高速环绕撞击,Lv"+(l+1)},
|
||
healer:{name:"修复僚机",spr:"dHeal",rare:1,max:3,beh:"heal",ds:l=>"缓慢回复结构值,Lv"+(l+1)},
|
||
shieldd:{name:"护盾僚机",spr:"dShield",rare:2,max:3,beh:"block",big:1.5,ds:l=>"环绕格挡敌弹,Lv"+(l+1)},
|
||
missileD:{name:"导弹僚机",spr:"dMsl",rare:1,max:3,beh:"missile",ds:l=>"追踪导弹,Lv"+(l+1)},
|
||
bladeD:{name:"刃舞僚机",spr:"dBlade",rare:1,max:3,beh:"bladeD",ds:l=>"投掷回旋刃,Lv"+(l+1)},
|
||
sweeper:{name:"扫射僚机",spr:"dSweep",rare:1,max:3,beh:"sweep",ds:l=>"扇形区域来回扫射,火力覆盖,Lv"+(l+1)}
|
||
};
|
||
const DRONE_KEYS=Object.keys(DRONES);
|
||
/* ================= 8 被动强化 ================= */
|
||
const PASSIVES={
|
||
fire:{name:"火控雷达",icon:"fire",rare:0,max:5,ds:()=>"射速 +12%"},
|
||
crit:{name:"暴击芯片",icon:"crit",rare:1,max:4,ds:()=>"暴击率 +8%"},
|
||
shield:{name:"能量护盾",icon:"shield",rare:1,max:3,ds:l=>l?"护盾充能加快":"获得可格挡的护盾"},
|
||
nano:{name:"纳米修复",icon:"nano",rare:1,max:3,ds:()=>"血量上限+25 并回复40"},
|
||
mag:{name:"引力核心",icon:"mag",rare:0,max:3,ds:()=>"拾取范围 +60%"},
|
||
bounty:{name:"赏金协议",icon:null,spr:"coin",rare:0,max:3,ds:()=>"星币获取 +30%"},
|
||
odcore:{name:"超频核心",icon:null,spr:"odc",rare:1,max:3,ds:()=>"暴走充能+30%,时长+1s"},
|
||
ghost:{name:"幽灵装甲",icon:"ghost",rare:2,max:2,ds:()=>"闪避率 +10%"}
|
||
};
|
||
const PAS_KEYS=Object.keys(PASSIVES);
|
||
/* ---- 主武器火力衰减与敌人动态缩放 ----
|
||
装备数量 → 每把武器伤害系数:[1]100% [2]80% [3]60% [4]50% [5]45%
|
||
总火力 = 系数×数量;敌人血量与数量随总火力提升 */
|
||
const WMUL=[0,1,0.8,0.6,0.5,0.45];
|
||
function wCount(){return Math.max(1,G.loadout.length);}
|
||
function wMul(){return WMUL[clamp(wCount(),1,5)];}
|
||
function totWMul(){return wMul()*wCount();}
|
||
function enemyScale(){return 1+0.22*(totWMul()-1);} // 血量缩放
|
||
function budgetScale(){return 1+0.22*(totWMul()-1);} // 数量缩放
|