12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151 |
- import { BattleTeamId, FightType } from "../../data/const/TypeConst";
- import GameDataCenter from "../../data/GameDataCenter";
- import UEBase from "../../frameWork/compment/UEBase";
- import { eg } from "../../frameWork/eg";
- import { ActionType, fightLogOne, FightStart } from "../../shared/fight/PtlFightTest";
- import AssetMgr from "../../utils/AssetMgr";
- import { BattleGridConstant } from "./BattleGridConstant";
- import UEBattleRole from "./UEBattleRole";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class UEBattleView extends UEBase {
- @property(cc.Prefab)
- rolePrefab: cc.Prefab = null;
- @property(cc.Prefab)
- subHpPrefab: cc.Prefab = null;
- @property(cc.Prefab)
- cellPrefab: cc.Prefab = null!;
- @property(cc.Node)
- roleContent: cc.Node = null;
- @property(cc.Node)
- hpLayer: cc.Node = null
- @property(cc.Node)
- cellLayer: cc.Node = null;
- fightStart: FightStart;
- fightLogList: {
- //战斗日志列表
- //回合ID:单回合内战斗日志
- [huihe: string]: fightLogOne[];
- };
- static readonly BundleKey: string = "battle";
- static readonly PrefabUrl: string = "UEBattleView";
- static readonly CLS: string = "UEBattleView";
- type: FightType;
- huihe: number;
- curIndex: number;
- static s_ins: UEBattleView;
- TxtRound: cc.Label;
- static getInstance() {
- return this.s_ins
- }
- Init() {
- UEBattleView.s_ins = this;
- // this.fightStart = {
- // "from": "pve",
- // "seed": 29576,
- // "teams": {
- // "10": {
- // "fid": "106364",
- // "zhanwei": 0,
- // "level": 0,
- // },
- // "20": {
- // "fid": "1022",
- // "zhanwei": 0,
- // "level": 0,
- // }
- // }
- // };
- // this.fightLogList = {
- // "win": 1,
- // "log": {
- // "1": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 943267,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }],
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 1819,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 11400
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 883267,
- // "nuqi": 659,
- // "buff": [
- // [
- // "jiyun",
- // 1
- // ]
- // ],
- // "effect": [
- // [
- // "hp", -60000
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 1819,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 883267,
- // "nuqi": 659,
- // "buff": [
- // [
- // "jiyun",
- // 1
- // ]
- // ],
- // "effect": [
- // [
- // "jiyun",
- // 1
- // ]
- // ],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 883267,
- // "nuqi": 659,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ],
- // "2": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 885367,
- // "nuqi": 659,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 1819,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 3733,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 22121
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 768942,
- // "nuqi": 1355,
- // "buff": [],
- // "effect": [
- // [
- // "baoji", -116425
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 707156,
- // "nuqi": 3733,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 768942,
- // "nuqi": 1355,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 768942,
- // "nuqi": 3227,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 605306,
- // "nuqi": 4474,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -101850
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 832958,
- // "nuqi": 3227,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 64016
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 507489,
- // "nuqi": 4474,
- // "buff": [],
- // "effect": [
- // [
- // "lianji", -97817
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 832958,
- // "nuqi": 3227,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ],
- // "3": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 835058,
- // "nuqi": 3227,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 507489,
- // "nuqi": 4474,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 518778,
- // "nuqi": 6374,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 11289
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 775646,
- // "nuqi": 3916,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -59412
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 518778,
- // "nuqi": 6374,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 775646,
- // "nuqi": 3916,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 775646,
- // "nuqi": 5767,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 415919,
- // "nuqi": 7039,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -102859
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 775646,
- // "nuqi": 5767,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ],
- // "4": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 777746,
- // "nuqi": 5767,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 415919,
- // "nuqi": 7039,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 427319,
- // "nuqi": 8850,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 11400
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 717746,
- // "nuqi": 6414,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -60000
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 427319,
- // "nuqi": 8850,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 717746,
- // "nuqi": 6414,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 717746,
- // "nuqi": 8377,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 323452,
- // "nuqi": 9529,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -103867
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 781762,
- // "nuqi": 8377,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 64016
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 222610,
- // "nuqi": 9529,
- // "buff": [],
- // "effect": [
- // [
- // "lianji", -100842
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 781762,
- // "nuqi": 8377,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ],
- // "5": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 783862,
- // "nuqi": 8377,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 222610,
- // "nuqi": 9529,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 233675,
- // "nuqi": 11455,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 11065
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 725626,
- // "nuqi": 9055,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -58236
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 233675,
- // "nuqi": 11455,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 725626,
- // "nuqi": 9055,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 725626,
- // "nuqi": 10940,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 129808,
- // "nuqi": 12088,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -103867
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 725626,
- // "nuqi": 10940,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ],
- // "6": [{
- // "aType": ActionType.round,
- // "atker": {
- // "fid": "",
- // "iid": "",
- // "hp": 0,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 727726,
- // "nuqi": 10940,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 2100
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 129808,
- // "nuqi": 12088,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 140761,
- // "nuqi": 13934,
- // "buff": [],
- // "effect": [
- // [
- // "xixue",
- // 10953
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "106364",
- // "iid": "10",
- // "hp": 670079,
- // "nuqi": 11638,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -57647
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "1022",
- // "iid": "20",
- // "hp": 140761,
- // "nuqi": 13934,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.buff,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 670079,
- // "nuqi": 11638,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.skill,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 670079,
- // "nuqi": 0,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 35855
- // ]
- // ],
- // "status": 0
- // },
- // "target": []
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 705934,
- // "nuqi": 1813,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 37902,
- // "nuqi": 14627,
- // "buff": [],
- // "effect": [
- // [
- // "hp", -102859
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.atk,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 779552,
- // "nuqi": 1813,
- // "buff": [],
- // "effect": [
- // [
- // "huifu",
- // 73618
- // ]
- // ],
- // "status": 0
- // },
- // "target": [{
- // "fid": "1022",
- // "iid": "20",
- // "hp": 0,
- // "nuqi": 14627,
- // "buff": [],
- // "effect": [
- // [
- // "lianji", -216709
- // ]
- // ],
- // "status": 0
- // }]
- // },
- // {
- // "aType": ActionType.over,
- // "atker": {
- // "fid": "106364",
- // "iid": "10",
- // "hp": 779552,
- // "nuqi": 1813,
- // "buff": [],
- // "effect": [],
- // "status": 0
- // },
- // "target": []
- // }
- // ]
- // }
- // }
- this.TxtRound = this.node.getChildByName("ImgDi").getChildByName("TxtRound").getComponent(cc.Label);
- this.initEvent();
- this.LoadCell();
- }
- initEvent(): void {
- }
- //关闭界面
- onDisable(): void {
- this.node.destroy();
- }
- /** 加载地图数据 */
- private LoadCell() {
- for (let i = 0; i < BattleGridConstant.COL; i++) {
- for (let j = 0; j < BattleGridConstant.ROW; j++) {
- this.CreateCell(i, j);
- }
- }
- }
- /** 创建格子 */
- private CreateCell(i: number, j: number) {
- let cell = cc.instantiate(this.cellPrefab);
- this.cellLayer.addChild(cell);
- cell.width = BattleGridConstant.CELL_WIDTH;
- cell.height = BattleGridConstant.CELL_HEIGHT;
- let pos = this.GetPosByIdx(i, j);
- cell.setPosition(pos);
- cell.name = `${(i + 1) * 10 + (j + 1)}`;
- cell.getChildByName("txtIndex").getComponent(cc.Label).string = `${(i + 1) * 10 + (j + 1)}`;
- return cell;
- }
- /** 根据索引获取实际像素坐标 */
- private GetPosByIdx(i: number, j: number): cc.Vec3 {
- const startX = -(BattleGridConstant.ROW * BattleGridConstant.CELL_WIDTH) / 2;
- const startY = (BattleGridConstant.COL * BattleGridConstant.CELL_HEIGHT) / 2;
- return cc.v3(
- startX + j * BattleGridConstant.CELL_WIDTH + BattleGridConstant.CELL_WIDTH / 2,
- startY - i * BattleGridConstant.CELL_HEIGHT - BattleGridConstant.CELL_HEIGHT / 2
- )
- }
- /** 获取扣血飘字表现层 */
- GetHpLayer() {
- return this.hpLayer;
- }
- /** 获取扣血飘字预制体 */
- GetSubHpPrefab() {
- return this.subHpPrefab;
- }
- //开始战斗
- async onStartFight() {
- GameDataCenter.battle.SendTestFight(async ()=>{
- eg.poolManager.GetPool("subHPPool").clear();
- await this.produceRole();
- this.huihe = 1;
- this.curIndex = 0;
- this.fightStart = GameDataCenter.battle.fightInfo?.fightStart;
- this.fightLogList = GameDataCenter.battle.fightInfo?.log;
- this.playLog();
- })
- }
- async produceRole() {
- let role1 = this.fightStart.teams[BattleTeamId.role1]
- let role2 = this.fightStart.teams[BattleTeamId.role2]
- let roleZhanwei1: string = "61"
- let roleZhanwei2: string = "66"
- let fightType: FightType = this.type;
- let roleNode1 = AssetMgr.instantiate(this.cellLayer, this.rolePrefab);
- roleNode1.getComponent(UEBattleRole).setRole(this.cellLayer.getChildByName(roleZhanwei1).position, role1, fightType);
- roleNode1.scaleX = 1;
- GameDataCenter.battle.addRole(role1?.fid, roleNode1.getComponent(UEBattleRole));
- let roleNode2 = AssetMgr.instantiate(this.cellLayer, this.rolePrefab);
- roleNode2.getComponent(UEBattleRole).setRole(this.cellLayer.getChildByName(roleZhanwei2).position, role2, fightType);
- roleNode2.scaleX = -1;
- GameDataCenter.battle.addRole(role2?.fid, roleNode2.getComponent(UEBattleRole));
- }
- //播放战斗日志
- playLog() {
- this.TxtRound.string = "第" + this.huihe + "回合";
- let curLog = this.fightLogList.log[this.huihe][this.curIndex];
- // console.error("curLog:", curLog)
- let actionType: ActionType = curLog.aType;
- switch (actionType) {
- case ActionType.round:
- case ActionType.buff:
- this.nextLog();
- break;
- case ActionType.atk:
- this.playAtk(curLog);
- break;
- // case ActionType.skill:
- // this.playAtk(curLog);
- // break;
- case ActionType.over:
- this.nextLog();
- break;
- default:
- break;
- }
- }
- //播放下一条日志
- nextLog() {
- this.curIndex++;
- if (this.fightLogList.log[this.huihe][this.curIndex] == null) {
- this.huihe++;
- if (this.fightLogList.log[this.huihe] != null) {
- this.curIndex = 0;
- this.playLog();
- } else {
- this.scheduleOnce(() => {
- console.log("战斗结束");
- }, 1);
- }
- } else {
- this.playLog();
- }
- }
- playAtk(curLog: fightLogOne) {
- let atker = GameDataCenter.battle.battleRoleList[curLog.atker.iid];
- let target0 = curLog.target.length > 0 ? GameDataCenter.battle.battleRoleList[curLog.target[0].iid]
- : Object.values(GameDataCenter.battle.battleRoleList)[0] //没有target 默认取一个防错
- let delay = 0.5;
- let hitX = 150; //近战偏移量
- cc.tween(atker.node)
- .delay(0.15 / GameDataCenter.battle.realBattleSpeed)
- .to(delay / GameDataCenter.battle.realBattleSpeed, { x: atker.posX < 0 ? target0.node.x - hitX : target0.node.x + hitX })
- .call(() => {
- if (curLog.atker.iid == "1022") {
- atker.playAni("atk", false);
- } else {
- atker.playAni("atk1", false);
- }
- // GameDataCenter.audio.playEffect(atker.atkAudio);
- })
- .delay((delay + 0.3) / GameDataCenter.battle.realBattleSpeed)
- .call(() => {
- //飘血
- let effectList = curLog.target?.[0]?.effect;
- for (let i = 0; i < effectList?.length; i++) {
- let effect = effectList[i];
- console.log("effect:", effect);
- target0.ShowSubHp(effect);
- }
- })
- .delay(0.1 / GameDataCenter.battle.realBattleSpeed)
- .call(() => {
- //显示特效以及连击等特殊效果
- })
- .delay(0.1 / GameDataCenter.battle.realBattleSpeed)
- .call(() => {
- if (curLog.atker.iid != "1022") {
- atker.playAni("walk", true);
- }
- // GameDataCenter.audio.playEffect(atker.atkAudio);
- })
- .to(delay / GameDataCenter.battle.realBattleSpeed, { x: atker.posX })//回到初始位置
- .call(() => {
- if (curLog.atker.iid != "1022") {
- atker.playAni("stand", true);
- }
- let atkerEffectList = curLog.atker?.effect;
- for (let i = 0; i < atkerEffectList?.length; i++) {
- let effect = atkerEffectList[i];
- console.log("atkerEffect:", effect);
- atker.ShowSubHp(effect);
- }
- // GameDataCenter.audio.playEffect(atker.atkAudio);
- })
- .delay(0.3 / GameDataCenter.battle.realBattleSpeed)
- .call(() => {
- this.nextLog();
- })
- .start();
- }
- }
|