970 lines
29 KiB
TypeScript
970 lines
29 KiB
TypeScript
|
import BattleRole from "../battle/BattleRole"
|
|||
|
import GameUtil from "../core/GameUtil"
|
|||
|
import SKDataUtil from "../gear/SKDataUtil"
|
|||
|
import { EMagicType, ESkillType } from "../role/EEnum"
|
|||
|
import SkillUtil from "../skill/core/SkillUtil"
|
|||
|
import GTimer from "../common/GTimer";
|
|||
|
|
|||
|
class Attr {
|
|||
|
name = "" //姓名
|
|||
|
sex = 0 // 性别 0女 1男
|
|||
|
battle = false //是否参战
|
|||
|
|
|||
|
qualitites = 0 //气质
|
|||
|
fame = 0 //名气
|
|||
|
endurance = 0 //耐力
|
|||
|
moral = 0 //道德
|
|||
|
intelligence = 0 //智力
|
|||
|
rebel = 0 //叛逆
|
|||
|
internalForce = 0 //内力
|
|||
|
|
|||
|
bosom = 0 //亲密
|
|||
|
filial = 0 // 孝心
|
|||
|
foodFull = 0 //温饱
|
|||
|
busy = 0 //疲劳值
|
|||
|
}
|
|||
|
|
|||
|
class Skill {
|
|||
|
name: string
|
|||
|
desp: string
|
|||
|
grade: string
|
|||
|
class: string
|
|||
|
type: string
|
|||
|
mod: string
|
|||
|
id: number
|
|||
|
level: number
|
|||
|
pos: number //处于命盘中的位置 1-13 1-6:纯阳 7-12: 太阴 13:合体 0表示未占据位置
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
export default class Baby {
|
|||
|
ID = 0 //todo:宝宝唯一识别ID
|
|||
|
RoundSkill: Skill
|
|||
|
|
|||
|
BattleSkillList: number[] = [] //天地人 012
|
|||
|
PannelSkillList: number[] = [] //命盘技能
|
|||
|
BlessSkillList: Skill[] = [] //已经许愿的技能库, 只在许愿中保持技能副本,其它一律使用技能ID
|
|||
|
Attr = new Attr()
|
|||
|
CareTimeList:any = {}
|
|||
|
|
|||
|
UpdateData(data: any) {
|
|||
|
this.Attr = data.attr
|
|||
|
this.BattleSkillList = data.battleSkillList
|
|||
|
this.PannelSkillList = data.pannelSkillList
|
|||
|
this.BlessSkillList = data.blessSkillList
|
|||
|
this.ID = data.id
|
|||
|
this.CareTimeList = data.careTimeList || {}
|
|||
|
}
|
|||
|
|
|||
|
GetObject(): any {
|
|||
|
return {
|
|||
|
id: this.ID,
|
|||
|
attr: this.Attr,
|
|||
|
battleSkillList: this.BattleSkillList,
|
|||
|
pannelSkillList: this.PannelSkillList,
|
|||
|
blessSkillList: this.BlessSkillList,
|
|||
|
careTimeList: this.CareTimeList,
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
GetSkillByID(id: number): Skill {
|
|||
|
for (let index = 0; index < this.BlessSkillList.length; index++) {
|
|||
|
let skill = this.BlessSkillList[index];
|
|||
|
if (skill.id == id) {
|
|||
|
return skill
|
|||
|
}
|
|||
|
}
|
|||
|
return null;
|
|||
|
}
|
|||
|
|
|||
|
RemoveSkillByID(id: number) {
|
|||
|
for (let index = 0; index < this.BlessSkillList.length; index++) {
|
|||
|
let skill = this.BlessSkillList[index];
|
|||
|
if (skill.id == id) {
|
|||
|
this.BlessSkillList.splice(index, 1)
|
|||
|
return
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
GetTypeCount(type: string): number {
|
|||
|
let cnt = 0
|
|||
|
for (let index = 0; index < this.PannelSkillList.length; index++) {
|
|||
|
let id = this.PannelSkillList[index]
|
|||
|
let skill = this.GetSkillByID(id);
|
|||
|
if (skill && skill.type == type) {
|
|||
|
cnt++
|
|||
|
}
|
|||
|
}
|
|||
|
return cnt
|
|||
|
}
|
|||
|
|
|||
|
ToJson(): string {
|
|||
|
let obj = this.GetObject()
|
|||
|
return SKDataUtil.toJson(obj, "{}")
|
|||
|
}
|
|||
|
|
|||
|
GetPos(skill: Skill) {
|
|||
|
let unUsePosList = []
|
|||
|
for (let index = 1; index <= 13; index++) {
|
|||
|
let use = false
|
|||
|
for (let i = 0; i < this.PannelSkillList.length; i++) {
|
|||
|
let id = this.PannelSkillList[i]
|
|||
|
let _skill = this.GetSkillByID(id);
|
|||
|
if (_skill.pos == index) {
|
|||
|
use = true
|
|||
|
}
|
|||
|
}
|
|||
|
if (!use) {
|
|||
|
unUsePosList.push(index)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (unUsePosList.length == 0) {
|
|||
|
//顶替
|
|||
|
if (skill.type == "纯阳") {
|
|||
|
return SKDataUtil.random(1, 6)
|
|||
|
}
|
|||
|
|
|||
|
if (skill.type == "太阴") {
|
|||
|
return SKDataUtil.random(7, 12)
|
|||
|
}
|
|||
|
return 13
|
|||
|
} else {
|
|||
|
let unuse_yang = []
|
|||
|
let unuse_ying = []
|
|||
|
let unuse_ht = []
|
|||
|
for (let index = 0; index < unUsePosList.length; index++) {
|
|||
|
if (unUsePosList[index] <= 6) {
|
|||
|
unuse_yang.push(unUsePosList[index])
|
|||
|
continue
|
|||
|
}
|
|||
|
|
|||
|
if (unUsePosList[index] <= 12) {
|
|||
|
unuse_ying.push(unUsePosList[index])
|
|||
|
continue
|
|||
|
}
|
|||
|
unuse_ht.push(unUsePosList[index])
|
|||
|
}
|
|||
|
|
|||
|
if (skill.type == "纯阳") {
|
|||
|
return unuse_yang[0]
|
|||
|
}
|
|||
|
|
|||
|
if (skill.type == "太阴") {
|
|||
|
return unuse_ying[0]
|
|||
|
}
|
|||
|
|
|||
|
return unuse_ht[0]
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
AttachSkillPannnel(skill: Skill) {
|
|||
|
for (let index = 0; index < this.PannelSkillList.length; index++) {
|
|||
|
let id = this.PannelSkillList[index]
|
|||
|
let _skill = this.GetSkillByID(id);
|
|||
|
if (skill.pos == _skill.pos) {
|
|||
|
_skill.pos = 0
|
|||
|
this.PannelSkillList.splice(index, 1)
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
this.RemoveSkillByID(skill.id)
|
|||
|
this.BlessSkillList.push(skill)
|
|||
|
this.PannelSkillList.push(skill.id)
|
|||
|
}
|
|||
|
|
|||
|
//许愿
|
|||
|
Bless(): Skill {
|
|||
|
let data = GameUtil.require_ex("../../conf/prop_data/prop_baby_skill.json")
|
|||
|
let skill_list = []
|
|||
|
for (const key in data) {
|
|||
|
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
|||
|
let origin_skill = data[key]
|
|||
|
let skill = this.GetSkillByID(origin_skill.id)
|
|||
|
if (skill == null) {
|
|||
|
skill = new Skill()
|
|||
|
skill.name = origin_skill.name
|
|||
|
skill.desp = origin_skill.desp
|
|||
|
skill.grade = origin_skill.grade
|
|||
|
skill.class = origin_skill.class
|
|||
|
skill.type = origin_skill.type
|
|||
|
skill.mod = origin_skill.mod
|
|||
|
skill.id = origin_skill.id
|
|||
|
skill.level = 1
|
|||
|
skill.pos = 0
|
|||
|
}
|
|||
|
|
|||
|
if (skill.pos != 0) {
|
|||
|
continue
|
|||
|
}
|
|||
|
skill_list.push(skill)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let yang_list = []
|
|||
|
let yin_list = []
|
|||
|
let ht_list = []
|
|||
|
for (let index = 0; index < skill_list.length; index++) {
|
|||
|
let skill = skill_list[index];
|
|||
|
if (skill.type == "纯阳") {
|
|||
|
yang_list.push(skill)
|
|||
|
}
|
|||
|
|
|||
|
if (skill.type == "太阴") {
|
|||
|
yin_list.push(skill)
|
|||
|
}
|
|||
|
|
|||
|
if (skill.type == "合体") {
|
|||
|
ht_list.push(skill)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let yangCnt = this.GetTypeCount("纯阳")
|
|||
|
let yinCnt = this.GetTypeCount("太阴")
|
|||
|
let htCnt = this.GetTypeCount("合体")
|
|||
|
|
|||
|
let random_list = []
|
|||
|
if (yangCnt < 6) {
|
|||
|
random_list.push(...yang_list)
|
|||
|
}
|
|||
|
|
|||
|
if (yinCnt < 6) {
|
|||
|
random_list.push(...yin_list)
|
|||
|
}
|
|||
|
|
|||
|
if (htCnt < 1) {
|
|||
|
random_list.push(...ht_list)
|
|||
|
}
|
|||
|
|
|||
|
if (random_list.length == 0) {
|
|||
|
random_list = skill_list
|
|||
|
}
|
|||
|
|
|||
|
let skill = random_list[SKDataUtil.random(0, random_list.length - 1)]
|
|||
|
skill.pos = this.GetPos(skill)
|
|||
|
this.AttachSkillPannnel(skill)
|
|||
|
|
|||
|
return skill
|
|||
|
}
|
|||
|
|
|||
|
Upgrade(id: number): number {
|
|||
|
let skill = this.GetSkillByID(id)
|
|||
|
if (skill == null) {
|
|||
|
//该技能未许愿
|
|||
|
return 2
|
|||
|
}
|
|||
|
if (skill.level >= 100) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
|
|||
|
skill.level++
|
|||
|
return 0
|
|||
|
}
|
|||
|
|
|||
|
SkillBattle(id: number): Skill {
|
|||
|
let skill = this.GetSkillByID(id)
|
|||
|
if (skill == null) {
|
|||
|
//该技能未许愿
|
|||
|
return null
|
|||
|
}
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let battle_id = this.BattleSkillList[index];
|
|||
|
let battle_skill = this.GetSkillByID(battle_id)
|
|||
|
if (skill.type == battle_skill.type) {
|
|||
|
this.BattleSkillList.splice(index, 1)
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
this.BattleSkillList.push(skill.id)
|
|||
|
return skill
|
|||
|
}
|
|||
|
|
|||
|
EatCandy(): boolean {
|
|||
|
if (this.Attr.bosom >= 1200 && this.Attr.filial >= 1200) {
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
let addType = 0
|
|||
|
if (this.Attr.bosom >= 1200) {
|
|||
|
addType = 1
|
|||
|
}
|
|||
|
if (this.Attr.filial >= 1200) {
|
|||
|
addType = 2
|
|||
|
}
|
|||
|
|
|||
|
if (addType == 0) {
|
|||
|
addType = 1
|
|||
|
let rand = SKDataUtil.random(0, 100)
|
|||
|
if (rand > 50) {
|
|||
|
addType = 2
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (addType == 1) {
|
|||
|
this.Attr.filial += 5
|
|||
|
if (this.Attr.filial > 1200) {
|
|||
|
this.Attr.filial = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (addType == 2) {
|
|||
|
this.Attr.bosom += 5
|
|||
|
if (this.Attr.bosom > 1200) {
|
|||
|
this.Attr.bosom = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return true
|
|||
|
}
|
|||
|
|
|||
|
ReadingBook(): boolean {
|
|||
|
if (this.Attr.rebel <= 0) {
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
this.Attr.rebel -= 10
|
|||
|
if (this.Attr.rebel <= 0) {
|
|||
|
this.Attr.rebel = 0
|
|||
|
}
|
|||
|
return true
|
|||
|
}
|
|||
|
|
|||
|
//培养
|
|||
|
Practice(type: number, index: number): number {
|
|||
|
let now = GTimer.getYearMonthDay()
|
|||
|
let key = (type * 10 + index).toString()
|
|||
|
if(Object.prototype.hasOwnProperty.call(this.CareTimeList, key)){
|
|||
|
let caretime = this.CareTimeList[key]
|
|||
|
if (now == caretime) {
|
|||
|
return 4
|
|||
|
}
|
|||
|
}
|
|||
|
this.CareTimeList[key] = now
|
|||
|
|
|||
|
if (type != 2 && this.Attr.busy >= 700) {
|
|||
|
return 2
|
|||
|
}
|
|||
|
|
|||
|
let config = GameUtil.require_ex("../../conf/prop_data/prop_baby_practice.json")
|
|||
|
let data = null
|
|||
|
|
|||
|
if (type == 0) {
|
|||
|
data = config["Learning"]
|
|||
|
}
|
|||
|
|
|||
|
if (type == 1) {
|
|||
|
data = config["Practice"]
|
|||
|
}
|
|||
|
|
|||
|
if (type == 2) {
|
|||
|
data = config["Enjoy"]
|
|||
|
}
|
|||
|
|
|||
|
if (data == null) {
|
|||
|
return 1
|
|||
|
}
|
|||
|
|
|||
|
if (index < 0 || index >= data.length) {
|
|||
|
return 1
|
|||
|
}
|
|||
|
|
|||
|
let attr = data[index]
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "qizhi")) {
|
|||
|
if (this.Attr.qualitites >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.qualitites += attr["qizhi"]
|
|||
|
if (this.Attr.qualitites < 0) {
|
|||
|
this.Attr.qualitites = 0
|
|||
|
}
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "naili")) {
|
|||
|
if (this.Attr.endurance >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.endurance += attr["naili"]
|
|||
|
if (this.Attr.endurance < 0) {
|
|||
|
this.Attr.endurance = 0
|
|||
|
}
|
|||
|
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "neili")) {
|
|||
|
if (this.Attr.internalForce >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.internalForce += attr["neili"]
|
|||
|
if (this.Attr.internalForce < 0) {
|
|||
|
this.Attr.internalForce = 0
|
|||
|
}
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "zhili")) {
|
|||
|
if (this.Attr.intelligence >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.intelligence += attr["zhili"]
|
|||
|
if (this.Attr.intelligence < 0) {
|
|||
|
this.Attr.intelligence = 0
|
|||
|
}
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "mingqi")) {
|
|||
|
if (this.Attr.fame >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.fame += attr["mingqi"]
|
|||
|
if (this.Attr.fame < 0) {
|
|||
|
this.Attr.fame = 0
|
|||
|
}
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "daode")) {
|
|||
|
if (this.Attr.moral >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.moral += attr["daode"]
|
|||
|
if (this.Attr.moral < 0) {
|
|||
|
this.Attr.moral = 0
|
|||
|
}
|
|||
|
if (this.Attr.endurance > 1200) {
|
|||
|
this.Attr.endurance = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "pani")) {
|
|||
|
if (this.Attr.rebel >= 1200) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.rebel += attr["pani"]
|
|||
|
if (this.Attr.rebel < 0) {
|
|||
|
this.Attr.rebel = 0
|
|||
|
}
|
|||
|
if (this.Attr.rebel > 1200) {
|
|||
|
this.Attr.rebel = 1200
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (Object.prototype.hasOwnProperty.call(attr, "pilao")) {
|
|||
|
if (this.Attr.busy == 0 && attr["pilao"] < 0) {
|
|||
|
return 3
|
|||
|
}
|
|||
|
this.Attr.busy += attr["pilao"]
|
|||
|
if (this.Attr.busy < 0) {
|
|||
|
this.Attr.busy = 0
|
|||
|
}
|
|||
|
|
|||
|
if (this.Attr.busy > 700) {
|
|||
|
this.Attr.busy = 700
|
|||
|
}
|
|||
|
}
|
|||
|
return 0
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/////////战斗功能
|
|||
|
//清空当前技能
|
|||
|
ResetSkill() {
|
|||
|
this.RoundSkill = null
|
|||
|
}
|
|||
|
|
|||
|
HasPlaySkill(): boolean {
|
|||
|
return this.RoundSkill != null
|
|||
|
}
|
|||
|
|
|||
|
GetPlaySkillName(): string {
|
|||
|
if (this.RoundSkill == null) return ""
|
|||
|
return this.RoundSkill.name
|
|||
|
}
|
|||
|
|
|||
|
//0-未释放技能 1 进攻性被动 2 防御型被动
|
|||
|
GetPlaySkillType(): number {
|
|||
|
if (this.RoundSkill == null) return 0
|
|||
|
|
|||
|
if (this.RoundSkill.id >= 35500 &&
|
|||
|
this.RoundSkill.id <= 35513) {
|
|||
|
return 2
|
|||
|
}
|
|||
|
|
|||
|
if (this.RoundSkill.id >= 35514 &&
|
|||
|
this.RoundSkill.id <= 35537) {
|
|||
|
return 1
|
|||
|
}
|
|||
|
|
|||
|
if (this.RoundSkill.id == 35538 ||
|
|||
|
this.RoundSkill.id == 35539 ||
|
|||
|
this.RoundSkill.id == 35542) {
|
|||
|
return 2
|
|||
|
}
|
|||
|
if (this.RoundSkill.id == 35540 ||
|
|||
|
this.RoundSkill.id == 35541) {
|
|||
|
return 1
|
|||
|
}
|
|||
|
return 0
|
|||
|
}
|
|||
|
|
|||
|
HasAttrLessDst(dst: number): boolean {
|
|||
|
if (this.Attr.qualitites < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.fame < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.moral < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.intelligence < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.internalForce < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.bosom < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
if (this.Attr.filial < dst) {
|
|||
|
return true
|
|||
|
}
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
//计算技能触发几率
|
|||
|
GetScore(): number {
|
|||
|
if (this.HasAttrLessDst(300)) {
|
|||
|
return 0
|
|||
|
}
|
|||
|
if (this.HasAttrLessDst(600)) {
|
|||
|
return 3000
|
|||
|
}
|
|||
|
if (this.HasAttrLessDst(900)) {
|
|||
|
return 4000
|
|||
|
}
|
|||
|
return 5000
|
|||
|
}
|
|||
|
|
|||
|
GetSkillBuff(skillid: number): number {
|
|||
|
let skill = this.GetSkillByID(skillid)
|
|||
|
if (skill == null) return 0
|
|||
|
|
|||
|
let buffer = 0
|
|||
|
let level = skill.level
|
|||
|
if (level > 100) {
|
|||
|
level = 100
|
|||
|
let score = this.GetScore()
|
|||
|
|
|||
|
if (score == 0) {
|
|||
|
buffer = 0.05
|
|||
|
}
|
|||
|
|
|||
|
if (score == 3000) {
|
|||
|
buffer = 0.1
|
|||
|
}
|
|||
|
|
|||
|
if (score == 4000) {
|
|||
|
buffer = 0.15
|
|||
|
}
|
|||
|
buffer = 0.2
|
|||
|
}
|
|||
|
|
|||
|
buffer += level * 0.6 / 100
|
|||
|
|
|||
|
return buffer
|
|||
|
}
|
|||
|
|
|||
|
GetSkillDefence(skillid: number): number {
|
|||
|
let skill = this.GetSkillByID(skillid)
|
|||
|
if (skill == null) return 0
|
|||
|
|
|||
|
let base = 500
|
|||
|
if (skill.grade == "超凡") {
|
|||
|
base = 1000
|
|||
|
}
|
|||
|
|
|||
|
let level = skill.level
|
|||
|
if (level > 100) {
|
|||
|
level = 100
|
|||
|
}
|
|||
|
|
|||
|
return base * level
|
|||
|
}
|
|||
|
|
|||
|
IsTriggerSkill(skillid: number): boolean {
|
|||
|
let rand = this.GetSkillBuff(skillid)
|
|||
|
if (Math.random() <= rand) {
|
|||
|
return true
|
|||
|
}
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
IsAddTarget(skillId: number, role: BattleRole): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35514 &&
|
|||
|
skillId == ESkillType.ZhenTianDongDi &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35515 &&
|
|||
|
skillId == ESkillType.CangHaiHengLiu &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35516 &&
|
|||
|
skillId == ESkillType.ZeBeiWanWu &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35517 &&
|
|||
|
skillId == ESkillType.FeiJvJiuTian &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35518 &&
|
|||
|
skillId == ESkillType.SiMianChuGe &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35519 &&
|
|||
|
skillId == ESkillType.ShiXinKuangLuan &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35520 &&
|
|||
|
skillId == ESkillType.WanDuGongXin &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35521 &&
|
|||
|
skillId == ESkillType.BaiRiMian &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
|
|||
|
if (_skillid == 35522 &&
|
|||
|
skillId == ESkillType.YanLuoZhuiMing &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35523 &&
|
|||
|
skillId == ESkillType.QianKunJieSu &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35524 &&
|
|||
|
skillId == ESkillType.HanQingMoMo &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35525 &&
|
|||
|
skillId == ESkillType.MoShenFuShen &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35526 &&
|
|||
|
skillId == ESkillType.TianZhuDiMie &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35527 &&
|
|||
|
skillId == ESkillType.XiuLiQianKun &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35528 &&
|
|||
|
skillId == ESkillType.JiuYinChunHuo &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35529 &&
|
|||
|
skillId == ESkillType.JiuLongBingFeng &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35530 &&
|
|||
|
skillId == ESkillType.XueHaiShenChou &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35531 &&
|
|||
|
skillId == ESkillType.XiXingDaFa &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35532 &&
|
|||
|
skillId == ESkillType.QianNvYouHun &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35533 &&
|
|||
|
skillId == ESkillType.MengPoTang &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
|
|||
|
//test
|
|||
|
// if (_skillid == 35527 &&
|
|||
|
// skillId == ESkillType.XiuLiQianKun) {
|
|||
|
// this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
// return true
|
|||
|
// }
|
|||
|
}
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
IsHitTwice(skillId: number, role: BattleRole): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35534 &&
|
|||
|
skillId == ESkillType.YanLuoZhuiMing &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35535 &&
|
|||
|
skillId == ESkillType.FeiJvJiuTian &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35536 &&
|
|||
|
skillId == ESkillType.ZhenTianDongDi &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
if (_skillid == 35537 &&
|
|||
|
skillId == ESkillType.CangHaiHengLiu &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
Defence(skillId: number, role: BattleRole): number {
|
|||
|
if (this.RoundSkill != null) return 0
|
|||
|
if (this.BattleSkillList.length == 0) return 0
|
|||
|
|
|||
|
let skill = SkillUtil.getSkill(skillId)
|
|||
|
if (skill == null) return 0
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
|
|||
|
if (_skillid == 35500 &&
|
|||
|
skill.skill_type == EMagicType.GHOST_FIRE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
|
|||
|
if (_skillid == 35501 &&
|
|||
|
skill.skill_type == EMagicType.WATER &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35502 &&
|
|||
|
skill.skill_type == EMagicType.THREE_CORPSE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35503 &&
|
|||
|
skill.skill_type == EMagicType.THUNDER &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35504 &&
|
|||
|
skill.skill_type == EMagicType.FIRE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35505 &&
|
|||
|
skill.skill_type == EMagicType.TOXIN &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35506 &&
|
|||
|
skill.skill_type == EMagicType.WIND &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35507 &&
|
|||
|
skill.skill_type == EMagicType.WIND &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35508 &&
|
|||
|
skill.skill_type == EMagicType.WATER &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35509 &&
|
|||
|
skill.skill_type == EMagicType.THUNDER &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35510 &&
|
|||
|
skill.skill_type == EMagicType.THREE_CORPSE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35511 &&
|
|||
|
skill.skill_type == EMagicType.GHOST_FIRE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35512 &&
|
|||
|
skill.skill_type == EMagicType.TOXIN &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
if (_skillid == 35513 &&
|
|||
|
skill.skill_type == EMagicType.FIRE &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return this.GetSkillDefence(_skillid)
|
|||
|
}
|
|||
|
}
|
|||
|
return 0
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
IsTriggerJinGang(): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35538 &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
IsTriggerLongShen(skillid: number): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35539 &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
IsTriggerLingJi(): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35540 &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
IsTriggerSpeed(): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35541 &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return false
|
|||
|
}
|
|||
|
|
|||
|
IsTriggerRelive(): boolean {
|
|||
|
if (this.RoundSkill != null) return false
|
|||
|
if (this.BattleSkillList.length == 0) return false
|
|||
|
|
|||
|
for (let index = 0; index < this.BattleSkillList.length; index++) {
|
|||
|
let _skillid = this.BattleSkillList[index];
|
|||
|
if (_skillid == 35542 &&
|
|||
|
this.IsTriggerSkill(_skillid)) {
|
|||
|
this.RoundSkill = this.GetSkillByID(_skillid)
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return false
|
|||
|
}
|
|||
|
}
|