开发分支
This commit is contained in:
parent
604cd0d34a
commit
8fe8a165a8
|
@ -238,7 +238,7 @@ label[for="screenshot-transparent"]::after{
|
|||
content: "🔄Rotating ABC Team";
|
||||
}
|
||||
.control-box .lbl-henshin-change::before{
|
||||
content: "🦸Henshin";
|
||||
content: "🦸Changes";
|
||||
}
|
||||
.control-box .lbl-remove-assist::before{
|
||||
content: "⛔Remove Assist";
|
||||
|
@ -555,12 +555,12 @@ label[for="real-time-change-card"]::after
|
|||
.henshin .evo-type::before,
|
||||
.henshin .evo-type::after
|
||||
{
|
||||
content: "Henshin";
|
||||
content: "Changes";
|
||||
}
|
||||
.random-henshin .evo-type::before,
|
||||
.random-henshin .evo-type::after
|
||||
{
|
||||
content: "Random Henshin";
|
||||
content: "Random Changes";
|
||||
}
|
||||
.random-henshin .evo-type-div
|
||||
{
|
||||
|
@ -574,7 +574,7 @@ label[for="real-time-change-card"]::after
|
|||
.henshin-loop .evo-type::before,
|
||||
.henshin-loop .evo-type::after
|
||||
{
|
||||
content: "Loop Henshin";
|
||||
content: "Loop Changes";
|
||||
}
|
||||
.henshin-loop .evo-type
|
||||
{
|
||||
|
|
|
@ -134,8 +134,8 @@ let localTranslating = {
|
|||
reduce_damage: tp`${'condition'}${'chance'}${'icon'}Reduces ${'attrs'} damage taken by ${'value'}`,
|
||||
power_up: tp`${'condition'}${'targets'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
|
||||
power_up_targets: tp`[${'attrs_types'}]'s `, //attrs, types, attrs_types
|
||||
henshin: tp`Transforms into ${'cards'}`,
|
||||
random_henshin: tp`Random transforms into ${'cards'}`,
|
||||
henshin: tp`Changes to ${'cards'}`,
|
||||
random_henshin: tp`Random changes to ${'cards'}`,
|
||||
void_poison: tp`Voids ${'poison'} damage`,
|
||||
skill_proviso: tp`The follow-up effect can only be activates ${'condition'}`,
|
||||
impart_awoken: tp`Impart ${'attrs_types'} additional ${'awakenings'}`,
|
||||
|
|
|
@ -649,14 +649,14 @@ function valueAt(level, maxLevel, curve) {
|
|||
function curve(c, level, maxLevel, limitBreakIncr, limitBreakIncr120) {
|
||||
let value = valueAt(level, maxLevel, {
|
||||
min: c.min,
|
||||
max: c.max !== undefined ? c.max : (c.min * maxLevel),
|
||||
max: c.max !== void 0 ? c.max : (c.min * maxLevel),
|
||||
scale: c.scale || 1
|
||||
});
|
||||
|
||||
if (level > maxLevel) {
|
||||
const exceed99 = Math.min(level - maxLevel, 11);
|
||||
const exceed110 = Math.max(0, level - 110);
|
||||
value += c.max !== undefined ?
|
||||
value += c.max !== void 0 ?
|
||||
((c.max * (limitBreakIncr / 100) * (exceed99 / 11)) + (c.max * (limitBreakIncr120 / 100) * (exceed110 / 10))) :
|
||||
(c.min * exceed99 + c.min * exceed110);
|
||||
}
|
||||
|
|
82
script.js
82
script.js
|
@ -123,7 +123,7 @@ class Plus extends Array {
|
|||
this[1] = hp[1];
|
||||
this[2] = hp[2];
|
||||
} else { //传入三个数字的形式
|
||||
if (!Number.isInteger(hp) || !Number.isInteger(atk) || !Number.isInteger(rcv)) throw new TypeError("传入的+值不是整数");
|
||||
if (!Number.isInteger(hp) || !Number.isInteger(atk) || !Number.isInteger(rcv)) throw new TypeError("传入的 +值 不是整数");
|
||||
this[0] = hp;
|
||||
this[1] = atk;
|
||||
this[2] = rcv;
|
||||
|
@ -133,21 +133,24 @@ class Plus extends Array {
|
|||
return this[0];
|
||||
}
|
||||
set hp(num) {
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的+值不是整数");
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的 HP +值 不是整数");
|
||||
if (num < 0 || num > 99) throw new RangeError("HP +值应为 0-99 之间的整数");
|
||||
this[0] = num;
|
||||
}
|
||||
get atk() {
|
||||
return this[1];
|
||||
}
|
||||
set atk(num) {
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的+值不是整数");
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的 ATK +值 不是整数");
|
||||
if (num < 0 || num > 99) throw new RangeError("ATK +值应为 0-99 之间的整数");
|
||||
this[1] = num;
|
||||
}
|
||||
get rcv() {
|
||||
return this[2];
|
||||
}
|
||||
set rcv(num) {
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的+值不是整数");
|
||||
if (!Number.isInteger(num)) throw new TypeError("传入的 RCV +值 不是整数");
|
||||
if (num < 0 || num > 99) throw new RangeError("RCV +值应为 0-99 之间的整数");
|
||||
this[2] = num;
|
||||
}
|
||||
get is297() {
|
||||
|
@ -190,6 +193,9 @@ class LatentAwakening extends Array {
|
|||
Object.assign(this, arg);
|
||||
}
|
||||
}
|
||||
get usedHole() {
|
||||
return this.reduce((p,v)=>p + latentUseHole(v),0);
|
||||
}
|
||||
toBigInt() {
|
||||
//直接使用目前的最新版本
|
||||
const leftNumn = 0b111n;
|
||||
|
@ -220,12 +226,13 @@ class LatentAwakening extends Array {
|
|||
}
|
||||
}
|
||||
class Member2 {
|
||||
id = 0;
|
||||
id = 0; //原始id
|
||||
changes = null; //变身后id
|
||||
level = 1;
|
||||
plus = new Plus();
|
||||
awakening = 0;
|
||||
superAwakening= 0;
|
||||
latentAwakening = new LatentAwakening();
|
||||
#plus = new Plus();
|
||||
#latentAwakening = new LatentAwakening();
|
||||
skillLevel = 0;
|
||||
assistMember = null;
|
||||
get hasAssist() {
|
||||
|
@ -247,6 +254,48 @@ class Member2 {
|
|||
get card() {
|
||||
return Cards[this.id] ?? Cards[0];
|
||||
}
|
||||
get plus() {
|
||||
return this.#plus;
|
||||
}
|
||||
set plus(arr) {
|
||||
if (!Array.isArray(arr) || !arr.every(n=>Number.isInteger(n)))
|
||||
throw new TypeError("直接设定 +值 应当为整形数组");
|
||||
this.#plus[0] = arr[0];
|
||||
this.#plus[1] = arr[1];
|
||||
this.#plus[2] = arr[2];
|
||||
}
|
||||
get latentAwakening() {
|
||||
return this.#latentAwakening;
|
||||
}
|
||||
set latentAwakening(arr) {
|
||||
if (!Array.isArray(arr) || !arr.every(n=>Number.isInteger(n)))
|
||||
throw new TypeError("直接设定 潜在觉醒 应当为整形数组");
|
||||
this.#latentAwakening.length = arr.length;
|
||||
for (let i=0;i<arr.length;i++) {
|
||||
this.#latentAwakening[i] = arr[i];
|
||||
}
|
||||
}
|
||||
get needExp() {
|
||||
const expArray = [
|
||||
Math.round(valueAt(this.level, 99, this.card.exp)) //99级以内的经验
|
||||
];
|
||||
if (this.level > 99)
|
||||
expArray.push(Math.max(0, Math.min(this.level, 110) - 100) * 5000000);
|
||||
if (this.level > 110)
|
||||
expArray.push(Math.max(0, Math.min(this.level, 120) - 110) * 20000000);
|
||||
return expArray;
|
||||
}
|
||||
getWorkingAwakenings(states) {
|
||||
const {awakningsBind, removeAssist} = states;
|
||||
if (awakningsBind) return [];
|
||||
const awaknings = this.card.awakenings.slice(0, this.awakening);
|
||||
if (this.hasAssist && !removeAssist) //有武器并且没有禁武器时
|
||||
awaknings.push(...this.assistMember.getAwakenings(states));
|
||||
return awaknings;
|
||||
}
|
||||
getAbilities(states) {
|
||||
const {awakningsBind, removeAssist, dungeonEnchance} = states;
|
||||
}
|
||||
}
|
||||
class Card {
|
||||
flags = 0;
|
||||
|
@ -553,8 +602,8 @@ class LeaderSkillType_ExtraEffects {
|
|||
class Team extends Array {
|
||||
badge = 0;
|
||||
helperTeam = null;
|
||||
constructor(memberCount = 6)
|
||||
{
|
||||
switchesLeader = null;
|
||||
constructor(memberCount = 6) {
|
||||
super(memberCount);//建立 Array
|
||||
}
|
||||
get leader1(){
|
||||
|
@ -565,6 +614,21 @@ class Team extends Array {
|
|||
return helperTeam instanceof Team ? this.helperTeam.leader1 : this[5];
|
||||
}
|
||||
}
|
||||
class Formation2 {
|
||||
teams = [];
|
||||
title = "";
|
||||
detail = "";
|
||||
dungeonEnchance = null;
|
||||
constructor(teamCount) {
|
||||
for (let i=0; i<teamCount; i++) {
|
||||
this.teams.push(new Team(teamCount === 2 ? 5 : 6));
|
||||
}
|
||||
if (teamCount === 2) { //当为2人对物时,互相设定为互助队伍
|
||||
this.teams[0].helperTeam = this.teams[1];
|
||||
this.teams[1].helperTeam = this.teams[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//队员基本的留空
|
||||
var Member = function(id = 0) {
|
||||
|
|
Loading…
Reference in New Issue