修改,特技战力加成通过时装表获得

This commit is contained in:
luying
2020-12-23 20:32:58 +08:00
parent 3732c536d2
commit 557ee27f43
9 changed files with 7353 additions and 802 deletions
@@ -76,7 +76,7 @@ export class HeroHandler {
let curHero = await HeroModel.createHero({
roleId, serverId, roleName, hid, hName, star, quality, job, skins:[{id: initialSkin, enable: true}]
});
await calPlayerCeAndSave(sid, roleId, [curHero], HERO_SYSTEM_TYPE.STAR, getAllAttrStage());
await calPlayerCeAndSave(sid, roleId, [curHero], HERO_SYSTEM_TYPE.INIT);
return resResult(STATUS.SUCCESS, {curHero});
}
+3 -4
View File
@@ -1,12 +1,12 @@
// 时装表
import { decodeArrayListStr, readJsonFile, parseNumberList } from '../util';
import { decodeArrayListStr, readJsonFile } from '../util';
import { FILENAME } from '../../consts';
export interface DicFashions {
// 时装id
readonly id: number;
// 增加的被动技能
readonly seid: Array<number>;
// 指向heroSkill表
readonly skillId: number;
// 全局加成
readonly globalAttr: Array<{id: number, number: number}>;
// 单体加成
@@ -20,7 +20,6 @@ let arr = JSON.parse(str);
export const dicFashions = new Map<number, DicFashions>();
arr.forEach(o => {
o.seid = parseNumberList(o.seid);
o.globalAttr = parseAttr(o.globalAttr);
o.actorAttr = parseAttr(o.actorAttr);
dicFashions.set(o.id, o);
+6 -6
View File
@@ -9,9 +9,9 @@ export interface DicHeroSkill {
// 技能名
readonly name: string;
// 星级解锁
readonly starSeidArr: Array<{star: number, value: number}>;
readonly starSeidArr: Array<{star: number, value: number, type: number}>;
// 觉醒解锁
readonly colorStarSeidArr: Array<{star: number, value: number}>;
readonly colorStarSeidArr: Array<{star: number, value: number, type: number}>;
}
@@ -26,15 +26,15 @@ arr.forEach(o => {
});
function parseSeid(str: string) {
let arr = new Array<{star: number, value: number}>();
let arr = new Array<{star: number, value: number, type: number}>();
if(!str) return arr;
let decodeArr = decodeArrayListStr(str);
for(let [star, value] of decodeArr) {
if(isNaN(parseInt(star)) || isNaN(parseInt(value))) {
for(let [star, value, type] of decodeArr) {
if(isNaN(parseInt(star)) || isNaN(parseInt(value)) || isNaN(parseInt(type))) {
continue;
}
arr.push({ star: parseInt(star), value: parseInt(value)});
arr.push({ star: parseInt(star), value: parseInt(value), type: parseInt(type)});
}
return arr;
}
+87 -32
View File
@@ -30,13 +30,13 @@ export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number,
if (type == HERO_SYSTEM_TYPE.INIT) {
reIncAttr = calHeroInitIncAttr(hero, addSeidList, removeSeidList); // args: 升的星盘
} else if (type == HERO_SYSTEM_TYPE.STAR) {
reIncAttr = calHeroStarIncAttr(hero, args, addSeidList); // args: 升的星盘
reIncAttr = calHeroStarIncAttr(hero, args, addSeidList, removeSeidList); // args: 升的星盘
} else if (type == HERO_SYSTEM_TYPE.TRAIN) {
reIncAttr = calHeroTrainIncAttr(hero);
} else if (type == HERO_SYSTEM_TYPE.STAGEUP) {
reIncAttr = calHeroJobStageUpIncAttr(hero, args, addSeidList, removeSeidList )
reIncAttr = calHeroJobStageUpIncAttr(hero, args, addSeidList, removeSeidList );
} else if (type == HERO_SYSTEM_TYPE.SKIN) {
reIncAttr = calHeroWearSkinIncAttr(hero, args);
reIncAttr = calHeroWearSkinIncAttr(hero, args, addSeidList, removeSeidList );
} else if (type == HERO_SYSTEM_TYPE.FAVOUR) {
reIncAttr = calHeroFavourUpIncAttr(hero, args);
} else if (type == HERO_SYSTEM_TYPE.CONNECT) {
@@ -86,6 +86,8 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
if (type == HERO_SYSTEM_TYPE.INIT) {
reIncAttr = calRoleInitIncAttr(heros, role.globalCeAttr); // 全局变量增
} else if (type == HERO_SYSTEM_TYPE.ADD_SKIN) {
reIncAttr = calHeroAddSkin(args, role.globalCeAttr);
}
for (let attrName in reIncAttr) {
@@ -110,12 +112,16 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
// 初始战力
export function calHeroInitIncAttr(hero: HeroType, addSeidList: Array<number>, removeSeidList: Array<number>) {
let res1 = calHeroStarIncAttr(hero, getAllAttrStage(), addSeidList);
let hero1 = combineHeroCeAttr(hero, res1)
calHeroJobStageUpIncAttr(hero1, [0], addSeidList, removeSeidList);
let res1 = calHeroStarIncAttr(hero, getAllAttrStage(), addSeidList, removeSeidList, true);
let hero1 = combineHeroCeAttr(hero, res1);
console.log(JSON.stringify(res1));
return res1
let curSkin = hero.skins.find(cur => cur.enable);
let res2 = calHeroWearSkinIncAttr(hero1, [curSkin?curSkin.id:0, 0], addSeidList, removeSeidList, true);
let hero2 = combineHeroCeAttr(hero, res2);
calHeroJobStageUpIncAttr(hero2, [0], addSeidList, removeSeidList);
return res2
}
export function calRoleInitIncAttr(heros: HeroType[], globalCeAttr: CeAttr) {
@@ -144,18 +150,28 @@ function combineHeroCeAttr(originalHero: HeroType, result: CeAttr) {
return hero;
}
export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeidList: Array<number>) {
let {star, starStage, quality, colorStar, colorStarStage, ceAttr} = hero;
/**
*
* @param hero HeroType 武将更新后的值
* @param args number[] 参数,表示需要更新多少个维
* @param addSeidList number[] 用于更新被动
* @param removeSeidList number[] 用于更新被动
* @param isInit boolean 是否是初次创建武将
*/
export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false) {
let {star, starStage, quality, colorStar, colorStarStage, ceAttr, skins} = hero;
let originStar = star, originColorStar = colorStar;
let res: CeAttr = {};
const dicHero = gameData.hero.get(hero.hid);
const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1
if(isWake) {
if(colorStarStage == ABI_STAGE.START) colorStar = colorStar -1;
if(colorStarStage == ABI_STAGE.START) originColorStar = colorStar - 1;
} else {
if(starStage == ABI_STAGE.START) star = star -1;
if(starStage == ABI_STAGE.START) originStar = star - 1;
}
const dicStar = isWake? getHeroWakeByQuality(quality, colorStar): getHeroStarByQuality(quality, star); // 星级表
const dicStar = isWake? getHeroWakeByQuality(quality, originColorStar): getHeroStarByQuality(quality, originStar); // 星级表
for(let stage of args) {
@@ -174,26 +190,43 @@ export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeid
}
// 解锁技能
if(dicHero.skill){
let {starSeidArr, colorStarSeidArr} = gameData.heroSkill.get(dicHero.skill);
if(isWake) {
for(let {star, value} of starSeidArr){
if(hero.star == star){
addSeidList.push(value, 0);
}
}
} else {
for(let {star, value} of colorStarSeidArr){
if(hero.colorStar == star){
addSeidList.push(value, 0);
}
}
let curSkin = skins.find(cur => cur.enable);
let curSeidList = getSeidListOfFashion(curSkin.id, star, colorStar);
let preSeidList = getSeidListOfFashion(curSkin.id, isInit?0:originStar, isInit?0:originColorStar);
for(let [type, seid] of curSeidList) {
if(!preSeidList.has(type)) {
addSeidList.push(seid, 0);
}
}
for(let [type, seid] of preSeidList) {
console.log(type, seid)
if(!curSeidList.has(type)) {
removeSeidList.push(seid, 0);
}
}
return res;//属性增量可以是多个
}
function getSeidListOfFashion(fashionid: number, originStar: number, originColorStar: number) {
let seidList = new Map<number, number>(); // type => seid
if(!gameData.fashion.has(fashionid)) return seidList;
let { skillId } = gameData.fashion.get(fashionid);
let { starSeidArr, colorStarSeidArr } = gameData.heroSkill.get(skillId);
for(let {star, value, type} of starSeidArr) {
if(originStar >= star) {
seidList.set(type, value);
}
}
for(let {star, value, type} of colorStarSeidArr) {
if(originColorStar >= star) {
seidList.set(type, value);
}
}
return seidList
}
export function getAllAttrStage () {
let attrs = new Array<number>(); // 有升级的属性 1-hp 2-atk 3-def 4-mdef 5-agi 6-luk
for(let stage = ABI_STAGE.START + 1; stage <= ABI_STAGE.END; stage++) {
@@ -238,21 +271,41 @@ export function calHeroJobStageUpIncAttr(hero: HeroType, args: Array<number>, ad
}
//穿戴时装
export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>) {
export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false) {
let res: CeAttr = {};
let addSkin = gameData.fashion.get(args[0]);
let delSkin = gameData.fashion.get(args[1]);
let attrName: string;
for (let attr of delSkin.actorAttr) {
attrName = getAtrrNameById(attr.id);
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp -= attr.number * HERO_CE_RATIO;
if(delSkin) {
for (let attr of delSkin.actorAttr) {
attrName = getAtrrNameById(attr.id);
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp -= attr.number * HERO_CE_RATIO;
}
}
for (let attr of addSkin.actorAttr) {
attrName = getAtrrNameById(attr.id);
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp += attr.number * HERO_CE_RATIO;
}
if(!isInit) { // 初始的时候,这一段技能在calHeroStarIncAttr里计算了,不用重复算
let { star, colorStar } = hero;
let curSeidList = getSeidListOfFashion(args[0], star, colorStar);
let preSeidList = getSeidListOfFashion(args[1], star, colorStar);
for(let [type, seid] of curSeidList) {
if(!preSeidList.has(type)) {
removeSeidList.push(seid, 0);
}
}
for(let [type, seid] of preSeidList) {
if(!curSeidList.has(type)) {
addSeidList.push(seid, 0);
}
}
}
return res;
}
@@ -436,6 +489,8 @@ function getFieldByStage(stage: number, jobid: number) {
// 添加技能增加的被动属性
function addSeidEffect(reIncAttr: CeAttr, heroCeAttr: CeAttr,addSeidList: Array<number>, removeSeidList: Array<number>) {
console.log('addSeidList', addSeidList)
console.log('removeSeidList', removeSeidList)
let otiginalSeidList = [
{list: addSeidList, multi: 1},
{list: removeSeidList, multi: -1}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+409 -9
View File
@@ -367,7 +367,7 @@
"isShow": 1,
"gainvalue": "20&48&13&0",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有20%概率给自身添加一个基于自身最大血量10%护盾"
},
{
"id": 1038,
@@ -377,7 +377,7 @@
"isShow": 1,
"gainvalue": "20&48&13&10000",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有20%概率给自身添加一个基于自身最大血量10%护盾,该次攻击伤害加深提升10%"
},
{
"id": 1039,
@@ -387,7 +387,7 @@
"isShow": 1,
"gainvalue": "25&48&13&10000",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有25%概率给自身添加一个基于自身最大血量10%护盾,该次攻击伤害加深提升10%"
},
{
"id": 1040,
@@ -485,9 +485,9 @@
"img": 1,
"type": 205,
"isShow": 1,
"gainvalue": "&",
"gainvalue": "15&10",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有15%额外获得怒气10点怒气"
},
{
"id": 1050,
@@ -495,9 +495,9 @@
"img": 1,
"type": 205,
"isShow": 1,
"gainvalue": "&",
"gainvalue": "20&10",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有20%额外获得怒气10点怒气"
},
{
"id": 1051,
@@ -505,9 +505,9 @@
"img": 1,
"type": 205,
"isShow": 1,
"gainvalue": "&",
"gainvalue": "25&10",
"maxOnlyNum": 1,
"info": "&"
"info": "攻击时有25%额外获得怒气10点怒气"
},
{
"id": 1052,
@@ -6719,6 +6719,406 @@
"maxOnlyNum": 1,
"info": "受到的所有治疗效果提升"
},
{
"id": 1701,
"name": "步甲I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "2&14&5",
"maxOnlyNum": 1,
"info": "受枪兵攻击时,伤害减免提升5%"
},
{
"id": 1702,
"name": "步甲II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "2&14&10",
"maxOnlyNum": 1,
"info": "受枪兵攻击时,伤害减免提升10%"
},
{
"id": 1703,
"name": "长刀I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "2&13&5",
"maxOnlyNum": 1,
"info": "攻击枪兵时,伤害加深提高5%"
},
{
"id": 1704,
"name": "长刀II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "2&13&10",
"maxOnlyNum": 1,
"info": "攻击枪兵时,伤害加深提高10%"
},
{
"id": 1705,
"name": "大盾I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 0,
"info": "物理伤害免减提升10%"
},
{
"id": 1706,
"name": "勇士I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "3&14&5",
"maxOnlyNum": 1,
"info": "受骑兵攻击时,伤害减免提升5%"
},
{
"id": 1707,
"name": "勇士II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "3&14&10",
"maxOnlyNum": 1,
"info": "受骑兵攻击时,伤害减免提升10%"
},
{
"id": 1708,
"name": "横枪I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "3&13&5",
"maxOnlyNum": 1,
"info": "攻击骑兵时,伤害加深提高5%"
},
{
"id": 1709,
"name": "横枪II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "3&13&10",
"maxOnlyNum": 1,
"info": "攻击骑兵时,伤害加深提高10%"
},
{
"id": 1710,
"name": "枪阵I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "13&10000",
"maxOnlyNum": 1,
"info": "物理伤害加深提升10%"
},
{
"id": 1711,
"name": "铁骑I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "4&14&5",
"maxOnlyNum": 1,
"info": "受弓兵攻击时,伤害减免提升5%"
},
{
"id": 1712,
"name": "铁骑II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "4&14&10",
"maxOnlyNum": 1,
"info": "受弓兵攻击时,伤害减免提升10%"
},
{
"id": 1713,
"name": "冲阵I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "4&13&5",
"maxOnlyNum": 1,
"info": "攻击弓兵时,伤害加深提高5%"
},
{
"id": 1714,
"name": "冲阵II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "4&13&10",
"maxOnlyNum": 1,
"info": "攻击弓兵时,伤害加深提高10%"
},
{
"id": 1715,
"name": "呼啸I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 1,
"info": "移动力提升1"
},
{
"id": 1716,
"name": "长守I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "1&14&5",
"maxOnlyNum": 1,
"info": "受步兵攻击时,伤害减免提升5%"
},
{
"id": 1717,
"name": "长守II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "1&14&10",
"maxOnlyNum": 1,
"info": "受步兵攻击时,伤害减免提升10%"
},
{
"id": 1718,
"name": "箭雨I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "1&13&5",
"maxOnlyNum": 1,
"info": "攻击步兵时,伤害加深提高5%"
},
{
"id": 1719,
"name": "箭雨II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "1&13&10",
"maxOnlyNum": 1,
"info": "攻击步兵时,伤害加深提高10%"
},
{
"id": 1720,
"name": "穿杨I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 0,
"info": "射程提升1"
},
{
"id": 1721,
"name": "锤石I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "6&14&5",
"maxOnlyNum": 1,
"info": "受策士攻击时,伤害减免提升5%"
},
{
"id": 1722,
"name": "锤石II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "6&14&10",
"maxOnlyNum": 1,
"info": "受策士攻击时,伤害减免提升10%"
},
{
"id": 1723,
"name": "斗气I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "6&13&5",
"maxOnlyNum": 1,
"info": "攻击策士时,伤害加深提高5%"
},
{
"id": 1724,
"name": "斗气II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "6&13&10",
"maxOnlyNum": 1,
"info": "攻击策士时,伤害加深提高10%"
},
{
"id": 1725,
"name": "怒冲I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "10&5000",
"maxOnlyNum": 0,
"info": "暴击提高5%"
},
{
"id": 1726,
"name": "遁甲I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "7&14&5",
"maxOnlyNum": 1,
"info": "受医者攻击时,伤害减免提升5%"
},
{
"id": 1727,
"name": "遁甲II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "7&14&10",
"maxOnlyNum": 1,
"info": "受医者攻击时,伤害减免提升10%"
},
{
"id": 1728,
"name": "寒心I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "7&13&5",
"maxOnlyNum": 1,
"info": "攻击医者时,伤害加深提高5%"
},
{
"id": 1729,
"name": "寒心II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "7&13&10",
"maxOnlyNum": 1,
"info": "攻击医者时,伤害加深提高10%"
},
{
"id": 1730,
"name": "筹谋I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "13&10000",
"maxOnlyNum": 0,
"info": "策略伤害加深提升10%"
},
{
"id": 1731,
"name": "光盾I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "8&14&5",
"maxOnlyNum": 1,
"info": "受道士攻击时,伤害减免提升5%"
},
{
"id": 1732,
"name": "光盾II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "8&14&10",
"maxOnlyNum": 1,
"info": "受道士攻击时,伤害减免提升10%"
},
{
"id": 1733,
"name": "圣手I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "8&13&5",
"maxOnlyNum": 1,
"info": "攻击道士时,伤害加深提高5%"
},
{
"id": 1734,
"name": "圣手II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "8&13&10",
"maxOnlyNum": 1,
"info": "攻击道士时,伤害加深提高10%"
},
{
"id": 1735,
"name": "灵药I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "14&5000",
"maxOnlyNum": 0,
"info": "伤害减免提升5%"
},
{
"id": 1736,
"name": "卸力I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "5&14&5",
"maxOnlyNum": 1,
"info": "受斗士攻击时,伤害减免提升5%"
},
{
"id": 1737,
"name": "卸力II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "5&14&10",
"maxOnlyNum": 1,
"info": "受斗士攻击时,伤害减免提升10%"
},
{
"id": 1738,
"name": "借势I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "5&13&5",
"maxOnlyNum": 1,
"info": "攻击斗士时,伤害加深提高5%"
},
{
"id": 1739,
"name": "借势II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "5&13&10",
"maxOnlyNum": 1,
"info": "攻击斗士时,伤害加深提高10%"
},
{
"id": 1740,
"name": "专注I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "9&5000",
"maxOnlyNum": 0,
"info": "命中提升5%"
},
{
"id": 301,
"name": "血量提升",
+110 -1
View File
@@ -1,6 +1,7 @@
[
{
"id": 1,
"imgId": 2,
"name": "砍一刀",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -20,6 +21,7 @@
},
{
"id": 2,
"imgId": 2,
"name": "无双画戟",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -39,6 +41,7 @@
},
{
"id": 3,
"imgId": 3,
"name": "温侯斩",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -58,6 +61,7 @@
},
{
"id": 4,
"imgId": 4,
"name": "长枪投射I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -77,6 +81,7 @@
},
{
"id": 5,
"imgId": 5,
"name": "赦免I",
"hurt_formula": 0,
"gain_formula": "&",
@@ -96,6 +101,7 @@
},
{
"id": 6,
"imgId": 6,
"name": "连珠三箭 I",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -115,6 +121,7 @@
},
{
"id": 7,
"imgId": 7,
"name": "鼓舞 I",
"hurt_formula": 0,
"gain_formula": "&",
@@ -134,6 +141,7 @@
},
{
"id": 8,
"imgId": 8,
"name": "猛毒迷雾",
"hurt_formula": " (ownAtk*1*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -153,6 +161,7 @@
},
{
"id": 9,
"imgId": 9,
"name": "投毒",
"hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -172,6 +181,7 @@
},
{
"id": 10,
"imgId": 10,
"name": "巨锤震击 I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -191,6 +201,7 @@
},
{
"id": 11,
"imgId": 11,
"name": "虎痴 I",
"hurt_formula": 0,
"gain_formula": "&",
@@ -210,6 +221,7 @@
},
{
"id": 12,
"imgId": 11,
"name": "薤叶芸香",
"hurt_formula": "ownAtk*1",
"gain_formula": "&",
@@ -229,6 +241,7 @@
},
{
"id": 13,
"imgId": 11,
"name": "麻沸散",
"hurt_formula": "ownAtk*1",
"gain_formula": "&",
@@ -248,6 +261,7 @@
},
{
"id": 14,
"imgId": 14,
"name": "敌阵突破 I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -267,6 +281,7 @@
},
{
"id": 15,
"imgId": 15,
"name": "坚壁 I",
"hurt_formula": 0,
"gain_formula": "&",
@@ -286,6 +301,7 @@
},
{
"id": 16,
"imgId": 16,
"name": "回春",
"hurt_formula": "ownAtk*0.6",
"gain_formula": "&",
@@ -305,6 +321,7 @@
},
{
"id": 17,
"imgId": 17,
"name": "反馈",
"hurt_formula": "ownAtk*1",
"gain_formula": "&",
@@ -324,6 +341,7 @@
},
{
"id": 18,
"imgId": 18,
"name": "狼王爪击",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -343,6 +361,7 @@
},
{
"id": 19,
"imgId": 19,
"name": "召唤狼群",
"hurt_formula": 0,
"gain_formula": "&",
@@ -362,6 +381,7 @@
},
{
"id": 20,
"imgId": 4,
"name": "长枪投射II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -381,6 +401,7 @@
},
{
"id": 21,
"imgId": 5,
"name": "赦免II",
"hurt_formula": 0,
"gain_formula": "&",
@@ -400,6 +421,7 @@
},
{
"id": 22,
"imgId": 14,
"name": "敌阵突破 II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -419,6 +441,7 @@
},
{
"id": 23,
"imgId": 15,
"name": "坚壁 II",
"hurt_formula": 0,
"gain_formula": "&",
@@ -438,6 +461,7 @@
},
{
"id": 24,
"imgId": 6,
"name": "连珠三箭 II",
"hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -457,6 +481,7 @@
},
{
"id": 25,
"imgId": 7,
"name": "鼓舞 II",
"hurt_formula": 0,
"gain_formula": "&",
@@ -476,6 +501,7 @@
},
{
"id": 26,
"imgId": 8,
"name": "猛毒迷雾",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -495,7 +521,8 @@
},
{
"id": 27,
"name": "投毒",
"imgId": 9,
"name": "投毒II",
"hurt_formula": " (ownAtk*1.8*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
@@ -514,6 +541,7 @@
},
{
"id": 28,
"imgId": 10,
"name": "巨锤震击 II",
"hurt_formula": " (ownAtk*2.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
@@ -533,6 +561,7 @@
},
{
"id": 29,
"imgId": 11,
"name": "虎痴 II",
"hurt_formula": 0,
"gain_formula": "&",
@@ -549,5 +578,85 @@
"skill_info": "恢复自身20%攻击力的血量,并且给自身附加伤害减免15%,4回合内作用2次",
"skilNameImage": 0,
"skillSceneSpine": "&"
},
{
"id": 5001,
"imgId": 2,
"name": "战龙无双I",
"hurt_formula": " (ownAtk*2.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 2,
"object": 0,
"skill_class": 1,
"effect": "3348&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "猛击地面造成250%的范围伤害,范围内人数越多总伤害越高,同时给目标添加封怒的以及物攻下降效果,命中的目标会降低少量怒气",
"skilNameImage": 0,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 5002,
"imgId": 2,
"name": "战龙无双II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 2,
"object": 0,
"skill_class": 1,
"effect": "3348&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "猛击地面造成300%的范围伤害,范围内人数越多总伤害越高,同时给目标添加封怒的以及物攻下降效果,命中的目标会降低少量怒气",
"skilNameImage": 0,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 5003,
"imgId": 3,
"name": "降龙斩I",
"hurt_formula": " (ownAtk*2.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "3352&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次,每击造成250%的伤害",
"skilNameImage": 0,
"skillSceneSpine": "&"
},
{
"id": 5004,
"imgId": 3,
"name": "降龙斩II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "3352&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次,每击造成300%的伤害",
"skilNameImage": 0,
"skillSceneSpine": "&"
}
]