starraid/star-raid/js/data.js
JOJO 676f4344ed 重制主武器/僚机/治疗反馈
- 新增追踪主武器:蜜蜂手雷、叶绿弹
- 蜂针刺弹/月牙斩/落雷术/火雨/电弧手里剑改为追踪或偏转
- 主武器数值 buff:蜂针x3、圣光x5、月牙攻速x2、泡泡x5等
- 副武器/僚机合并:移除 beamdrone/repair/frostd/teslaD/sweeper
- 僚机重做:机枪高速连射、狙击自瞄穿透、导弹追踪爆炸、全体伤害加强
- 治疗反馈:绿十字粒子+血条绿闪+数字
- 同步 CODEX_KEYS 白名单
2026-08-06 20:40:23 +08:00

130 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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}}
};
/* ================= 军械库27 主武器 =================
beh: 行为引擎类型 lvl(w): 该等级的战斗参数 */
const WEAPONS={
vulcan:{name:"火神机炮",spr:"trcr",rare:0,beh:"streams",ds:"!?神神?!",
lvl:w=>({n:1+Math.floor(w/2),dmg:9*(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:5*(1+.18*(w-1)),int:22,spd:5.5,fan:0.5,gap:2,skipMid:1})},
needle:{name:"蜂针刺弹",spr:"ndl",rare:0,beh:"needle",ds:"这可是吐了剧毒的飞刀",
lvl:w=>({n:1+Math.floor(w/3),dmg:7.8*(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.2*(1+.22*(w-1)),range:90+8*w,burst:44+4*w,cd:Math.max(40,74-5*w)})},
shotgun2:{name:"霜冻霰弹",spr:"shard",rare:1,beh:"streams",ds:"冷冷冷",
lvl:w=>({n:3+w,dmg:3.2*(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:11*(1+.25*(w-1)),int:44-2*w,range:110})},
railgun:{name:"电磁炮",icon:"rail",rare:2,beh:"rail",ds:"带轮子的垃圾桶",
lvl:w=>({dmg:70*(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:1.2*(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:60,spd:3.4,hits:3})},
fission:{name:"分裂弹",spr:"fiss",rare:1,beh:"fission",ds:"四阶村长",
lvl:w=>({dmg:7*(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:10*(1+.2*(w-1)),int:13,spd:6,freeze:70+25*w})},
swarm:{name:"蜂巢导弹",spr:"msl2",rare:1,beh:"homing",ds:"不可用于对付肉山",
lvl:w=>({n:1+w,dmg:2.5*(1+.2*(w-1)),int:22,spd:3.2,aoe:10})},
bubble:{name:"重力泡泡",spr:"bub",rare:1,beh:"bubble",ds:"天呐!是海绵宝宝",
lvl:w=>({dmg:90*(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:9*(1+.22*(w-1)),int:21,spd:4.8})},
singularity:{name:"奇点炮",spr:"sing",rare:2,beh:"sing",ds:"雷工蛋?",
lvl:w=>({dmg:120*(1+.3*(w-1)),int:200,pull:88,aoe:62,fuse:160})},
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:130*(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:7*(1+.22*(w-1)),int:95-4*w,spd:2.2,zapDmg:6*(1+.25*(w-1)),pulse:7,deflect:0.04})},
volt:{name:"电能机炮",spr:"voltb",rare:1,beh:"volt",ds:"疑似电大",
lvl:w=>({n:1+Math.floor(w/3),dmg:4.5*(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:14*(1+.25*(w-1)),int:100-5*w,spd:1.6,stars:10+2*w})},
loiter:{name:"巡飞弹",spr:"loms",rare:1,beh:"loiter",ds:"堵桥来",
lvl:w=>({dmg:22*(1+.25*(w-1)),int:68-5*w,spd:4.2,zone:20+3*w,fire:95+15*w})},
beegrenade:{name:"蜜蜂手雷",spr:"beegrenade",rare:1,beh:"beegrenade",ds:"嗡嗡嗡",
lvl:w=>({n:2,dmg:10*(1+.25*(w-1)),beeDmg:4*(1+.25*(w-1)),int:55-4*w,spd:3.2,aoe:18,bees:5,fuse:40})},
chlorophyte:{name:"叶绿弹",spr:"chloro",rare:1,beh:"chlorophyte",ds:"丛林之怒",
lvl:w=>({n:1+Math.floor(w/2),dmg:4*(1+.2*(w-1)),int:10,spd:5.2,gap:5})}
};
const MAINS=Object.keys(WEAPONS);
/* ================= 15 副武器 =================
爆发/控场/防御分类原则一次性大范围或长CD特效 */
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)},
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)}
};
const SUB_KEYS=Object.keys(SUBS);
/* ================= 10 僚机 =================
自动跟随/持续输出;全部获得伤害与功能强化 */
const DRONES={
gunner:{name:"机枪僚机",spr:"dGun",rare:0,max:3,beh:"burst",ds:l=>"高速连射+随机散布Lv"+(l+1)},
gunner2:{name:"双翼机枪手",spr:"dGun2",rare:1,max:3,beh:"burst2",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)},
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)}
};
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);} // 数量缩放