开发分支
This commit is contained in:
parent
604cd0d34a
commit
8fe8a165a8
|
@ -238,7 +238,7 @@ label[for="screenshot-transparent"]::after{
|
||||||
content: "🔄Rotating ABC Team";
|
content: "🔄Rotating ABC Team";
|
||||||
}
|
}
|
||||||
.control-box .lbl-henshin-change::before{
|
.control-box .lbl-henshin-change::before{
|
||||||
content: "🦸Henshin";
|
content: "🦸Changes";
|
||||||
}
|
}
|
||||||
.control-box .lbl-remove-assist::before{
|
.control-box .lbl-remove-assist::before{
|
||||||
content: "⛔Remove Assist";
|
content: "⛔Remove Assist";
|
||||||
|
@ -555,12 +555,12 @@ label[for="real-time-change-card"]::after
|
||||||
.henshin .evo-type::before,
|
.henshin .evo-type::before,
|
||||||
.henshin .evo-type::after
|
.henshin .evo-type::after
|
||||||
{
|
{
|
||||||
content: "Henshin";
|
content: "Changes";
|
||||||
}
|
}
|
||||||
.random-henshin .evo-type::before,
|
.random-henshin .evo-type::before,
|
||||||
.random-henshin .evo-type::after
|
.random-henshin .evo-type::after
|
||||||
{
|
{
|
||||||
content: "Random Henshin";
|
content: "Random Changes";
|
||||||
}
|
}
|
||||||
.random-henshin .evo-type-div
|
.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::before,
|
||||||
.henshin-loop .evo-type::after
|
.henshin-loop .evo-type::after
|
||||||
{
|
{
|
||||||
content: "Loop Henshin";
|
content: "Loop Changes";
|
||||||
}
|
}
|
||||||
.henshin-loop .evo-type
|
.henshin-loop .evo-type
|
||||||
{
|
{
|
||||||
|
|
|
@ -134,8 +134,8 @@ let localTranslating = {
|
||||||
reduce_damage: tp`${'condition'}${'chance'}${'icon'}Reduces ${'attrs'} damage taken by ${'value'}`,
|
reduce_damage: tp`${'condition'}${'chance'}${'icon'}Reduces ${'attrs'} damage taken by ${'value'}`,
|
||||||
power_up: tp`${'condition'}${'targets'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
|
power_up: tp`${'condition'}${'targets'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`,
|
||||||
power_up_targets: tp`[${'attrs_types'}]'s `, //attrs, types, attrs_types
|
power_up_targets: tp`[${'attrs_types'}]'s `, //attrs, types, attrs_types
|
||||||
henshin: tp`Transforms into ${'cards'}`,
|
henshin: tp`Changes to ${'cards'}`,
|
||||||
random_henshin: tp`Random transforms into ${'cards'}`,
|
random_henshin: tp`Random changes to ${'cards'}`,
|
||||||
void_poison: tp`Voids ${'poison'} damage`,
|
void_poison: tp`Voids ${'poison'} damage`,
|
||||||
skill_proviso: tp`The follow-up effect can only be activates ${'condition'}`,
|
skill_proviso: tp`The follow-up effect can only be activates ${'condition'}`,
|
||||||
impart_awoken: tp`Impart ${'attrs_types'} additional ${'awakenings'}`,
|
impart_awoken: tp`Impart ${'attrs_types'} additional ${'awakenings'}`,
|
||||||
|
|
|
@ -649,14 +649,14 @@ function valueAt(level, maxLevel, curve) {
|
||||||
function curve(c, level, maxLevel, limitBreakIncr, limitBreakIncr120) {
|
function curve(c, level, maxLevel, limitBreakIncr, limitBreakIncr120) {
|
||||||
let value = valueAt(level, maxLevel, {
|
let value = valueAt(level, maxLevel, {
|
||||||
min: c.min,
|
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
|
scale: c.scale || 1
|
||||||
});
|
});
|
||||||
|
|
||||||
if (level > maxLevel) {
|
if (level > maxLevel) {
|
||||||
const exceed99 = Math.min(level - maxLevel, 11);
|
const exceed99 = Math.min(level - maxLevel, 11);
|
||||||
const exceed110 = Math.max(0, level - 110);
|
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.max * (limitBreakIncr / 100) * (exceed99 / 11)) + (c.max * (limitBreakIncr120 / 100) * (exceed110 / 10))) :
|
||||||
(c.min * exceed99 + c.min * exceed110);
|
(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[1] = hp[1];
|
||||||
this[2] = hp[2];
|
this[2] = hp[2];
|
||||||
} else { //传入三个数字的形式
|
} 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[0] = hp;
|
||||||
this[1] = atk;
|
this[1] = atk;
|
||||||
this[2] = rcv;
|
this[2] = rcv;
|
||||||
|
@ -133,21 +133,24 @@ class Plus extends Array {
|
||||||
return this[0];
|
return this[0];
|
||||||
}
|
}
|
||||||
set hp(num) {
|
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;
|
this[0] = num;
|
||||||
}
|
}
|
||||||
get atk() {
|
get atk() {
|
||||||
return this[1];
|
return this[1];
|
||||||
}
|
}
|
||||||
set atk(num) {
|
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;
|
this[1] = num;
|
||||||
}
|
}
|
||||||
get rcv() {
|
get rcv() {
|
||||||
return this[2];
|
return this[2];
|
||||||
}
|
}
|
||||||
set rcv(num) {
|
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;
|
this[2] = num;
|
||||||
}
|
}
|
||||||
get is297() {
|
get is297() {
|
||||||
|
@ -190,6 +193,9 @@ class LatentAwakening extends Array {
|
||||||
Object.assign(this, arg);
|
Object.assign(this, arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
get usedHole() {
|
||||||
|
return this.reduce((p,v)=>p + latentUseHole(v),0);
|
||||||
|
}
|
||||||
toBigInt() {
|
toBigInt() {
|
||||||
//直接使用目前的最新版本
|
//直接使用目前的最新版本
|
||||||
const leftNumn = 0b111n;
|
const leftNumn = 0b111n;
|
||||||
|
@ -220,12 +226,13 @@ class LatentAwakening extends Array {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class Member2 {
|
class Member2 {
|
||||||
id = 0;
|
id = 0; //原始id
|
||||||
|
changes = null; //变身后id
|
||||||
level = 1;
|
level = 1;
|
||||||
plus = new Plus();
|
|
||||||
awakening = 0;
|
awakening = 0;
|
||||||
superAwakening= 0;
|
superAwakening= 0;
|
||||||
latentAwakening = new LatentAwakening();
|
#plus = new Plus();
|
||||||
|
#latentAwakening = new LatentAwakening();
|
||||||
skillLevel = 0;
|
skillLevel = 0;
|
||||||
assistMember = null;
|
assistMember = null;
|
||||||
get hasAssist() {
|
get hasAssist() {
|
||||||
|
@ -247,6 +254,48 @@ class Member2 {
|
||||||
get card() {
|
get card() {
|
||||||
return Cards[this.id] ?? Cards[0];
|
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 {
|
class Card {
|
||||||
flags = 0;
|
flags = 0;
|
||||||
|
@ -553,8 +602,8 @@ class LeaderSkillType_ExtraEffects {
|
||||||
class Team extends Array {
|
class Team extends Array {
|
||||||
badge = 0;
|
badge = 0;
|
||||||
helperTeam = null;
|
helperTeam = null;
|
||||||
constructor(memberCount = 6)
|
switchesLeader = null;
|
||||||
{
|
constructor(memberCount = 6) {
|
||||||
super(memberCount);//建立 Array
|
super(memberCount);//建立 Array
|
||||||
}
|
}
|
||||||
get leader1(){
|
get leader1(){
|
||||||
|
@ -565,6 +614,21 @@ class Team extends Array {
|
||||||
return helperTeam instanceof Team ? this.helperTeam.leader1 : this[5];
|
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) {
|
var Member = function(id = 0) {
|
||||||
|
|
Loading…
Reference in New Issue