BattleParam.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. namespace YLBattle
  5. {
  6. /// <summary >
  7. /// 战斗环境
  8. /// </summary>
  9. public class BattleParam
  10. {
  11. #region 配置信息
  12. /// <summary>
  13. /// 单场战斗总时间, 单位毫秒
  14. /// </summary>
  15. public int BattleShowTime = 0;
  16. #endregion
  17. #region 战场变量
  18. /// <summary>
  19. /// 万一是打副本呢? 副本的ID 502000开始
  20. /// </summary>
  21. public int carbonId = 0;
  22. /// <summary>
  23. /// 关卡模式 [0=普通关卡 【1=无穷尽】 2=pvp 3=test 4=guide]
  24. /// </summary>
  25. public int levelMode = 0;
  26. /// <summary>
  27. /// 当前关卡编号
  28. /// </summary>
  29. public int levelID = 0;
  30. /// <summary>
  31. /// 关卡(波次)进度
  32. /// </summary>
  33. public int levelStatus = 0;
  34. /// <summary>
  35. /// 关卡总数
  36. /// </summary>
  37. public int levelTotalStatus = 0;
  38. /// <summary>
  39. /// 当前关卡的难度
  40. /// </summary>
  41. public int levelDifficity;
  42. /// <summary>
  43. /// 地图名称
  44. /// </summary>
  45. public string levelSenceBundle = "";
  46. /// <summary>
  47. /// 地图名称
  48. /// </summary>
  49. public string levelSenceBGBundle = "";
  50. /// <summary>
  51. /// 关卡名称
  52. /// </summary>
  53. public string levelName = string.Empty;
  54. /// <summary>
  55. /// Boss警告id
  56. /// </summary>
  57. public string warningFighterId = string.Empty;
  58. /// <summary>
  59. /// 必杀警告id
  60. /// </summary>
  61. public string criticalFighterId = string.Empty;
  62. /// <summary>
  63. /// 己方技能释放者id
  64. /// </summary>
  65. public string mBlueSkillFighterId = string.Empty;
  66. /// <summary>
  67. /// 敌方技能释放者id
  68. /// </summary>
  69. public string mRedSkillFighterId = string.Empty;
  70. /// <summary>
  71. /// (当前波次)是否有boss出场
  72. /// </summary>
  73. public bool IsBossArrival = false;
  74. /// <summary>
  75. /// 是否释放了队长技能
  76. /// </summary>
  77. public bool IsCastLeaderSkill = false;
  78. /// <summary>
  79. /// 当前boss.Fighter.ID()
  80. /// </summary>
  81. public string bossId = string.Empty;
  82. /// <summary>
  83. /// 暂停标志
  84. /// </summary>
  85. public bool IsPause = false;
  86. /// <summary>
  87. /// 蓝队数据重新加载标志
  88. /// </summary>
  89. public bool reloadBlue = false;
  90. /// <summary>
  91. /// 是否双倍速
  92. /// </summary>
  93. public bool isSecSpeed = false;
  94. /// <summary>
  95. /// 连击伤害倍率 (X/100)
  96. /// </summary>
  97. public int BattleLianJiDamageRate = 50;
  98. /// <summary>
  99. /// 连击
  100. /// 1、只要是攻击,就+1是吧,普通,技能,连击,都算
  101. /// 2、上一次的更新(+1)超过2秒没更新,就重置
  102. /// </summary>
  103. public int BattleLianJiIndex = 0;
  104. /// <summary>
  105. /// 上一次连击时间
  106. /// </summary>
  107. public long LastBattleLianJiTime = 0;
  108. /// <summary>
  109. /// 己方上一次TeamPower值
  110. /// </summary>
  111. public long LastCOMBOTime = 0;
  112. /// <summary>
  113. /// 己方上一次Power值
  114. /// </summary>
  115. public long LastPowerTime = 0;
  116. /// <summary>
  117. /// 当前己方(连击)能量值值
  118. /// </summary>
  119. private long BlueCOMBOPower = 0;
  120. /// <summary>
  121. /// 当前己方(连击)能量值上限
  122. /// </summary>
  123. public long BlueTeamMaxPower = 0;
  124. /// <summary>
  125. /// 当前己方(技能)能量值值
  126. /// </summary>
  127. private long BlueTeamSkillPower = 0;
  128. /// <summary>
  129. /// 当前敌方(技能)能量值值
  130. /// </summary>
  131. private long RedTeamSkillPower = 0;
  132. /// <summary>
  133. /// 当前己方(技能)能量值上限
  134. /// </summary>
  135. public long BlueTeamMaxSkillPower = 0;
  136. /// <summary>
  137. /// 当前敌方(技能)能量值上限
  138. /// </summary>
  139. public long RedTeamMaxSkillPower = 0;
  140. /// <summary>
  141. /// 己方必杀时间
  142. /// </summary>
  143. public long BlueCriticalTime = 0;
  144. /// <summary>
  145. /// 释放技能恢复值
  146. /// </summary>
  147. public int IncreasePowerByCastSkill = 0;
  148. /// <summary>
  149. /// 战斗队伍最大人数
  150. /// </summary>
  151. public int BattleTeamMaxFighter = 0;
  152. /// <summary>
  153. /// 是否有友情支援
  154. /// </summary>
  155. public bool isFriendHelp = false;
  156. /// <summary>
  157. /// 好友playerID
  158. /// </summary>
  159. public string mFriendUID = string.Empty;
  160. /// <summary>
  161. /// 对手UID
  162. /// </summary>
  163. public string mPVP_PlayerUID = string.Empty;
  164. /// <summary>
  165. /// 对手类型
  166. /// </summary>
  167. public string mPVP_Type = string.Empty;
  168. /// <summary>
  169. /// 无穷尽关卡模式, 战斗结束,玩家离开战斗时的状态
  170. /// 0 = 未通关 1= 通关
  171. /// </summary>
  172. public int mBattleForever_LeaveState = 0;
  173. /// <summary>
  174. /// 己方当前正在攻击的角色ID
  175. /// </summary>
  176. public string mBlueCurrentCenterAttacker = string.Empty;
  177. /// <summary>
  178. /// 敌方当前正在攻击的角色ID
  179. /// </summary>
  180. public string mRedCurrentCenterAttacker = string.Empty;
  181. #endregion
  182. #region 关卡数据
  183. /// <summary>
  184. /// 己方
  185. /// </summary>
  186. public List<IFighterAdapter> blueteam = new List<IFighterAdapter>();
  187. /// <summary>
  188. /// 敌方
  189. /// </summary>
  190. public List<IFighterAdapter> redteam = new List<IFighterAdapter>();
  191. /// <summary>
  192. /// 友方
  193. /// </summary>
  194. public IFighterAdapter friend = null;
  195. #endregion
  196. #region 数据提供及通用适配器
  197. /// <summary>
  198. /// 显示适配器
  199. /// </summary>
  200. public IShowAdapter mShowAdapter;
  201. /// <summary>
  202. /// 地图数据适配器
  203. /// </summary>
  204. public IFieldAdapter mFieldAdapter;
  205. /// <summary>
  206. /// 技能适配器
  207. /// </summary>
  208. public ISkillAdapter mSkillAdapter;
  209. /// <summary>
  210. /// 调试输出适配
  211. /// </summary>
  212. public IDebug mDebugHelper;
  213. /// <summary>
  214. /// 时间中心
  215. /// </summary>
  216. public TimeHelper mTimeHelper;
  217. /// <summary>
  218. /// 随机数发生器
  219. /// </summary>
  220. public RandomHelper mRandom;
  221. #endregion
  222. #region 数据及逻辑处理适配器
  223. /// <summary>
  224. /// 战斗全局接口
  225. /// </summary>
  226. public IBattleGlobalOper mBattleGlobalOper;
  227. /// <summary>
  228. /// 战场交互接口
  229. /// </summary>
  230. public IBattleInnerOper mBattleInnerOper;
  231. /// <summary>
  232. /// 事件中心
  233. /// </summary>
  234. public IEventDispatcher mEventDisp;
  235. /// <summary>
  236. /// 战斗对象操作接口
  237. /// </summary>
  238. public ILogicFighterOper mLogicFighterOper;
  239. /// <summary>
  240. /// 子弹管理操作
  241. /// </summary>
  242. public X2Battle.BulletManager mBulletManagerOpr;
  243. /// <summary>
  244. /// buff管理操作
  245. /// </summary>
  246. public IBuffOper mBuffManagerOpr;
  247. #endregion
  248. #region (get)
  249. /// <summary>
  250. /// (连击)能量值
  251. /// </summary>
  252. public long BattleCOMBOPower
  253. {
  254. set
  255. {
  256. BlueCOMBOPower = value;
  257. if (BlueCOMBOPower >= BlueTeamMaxPower)
  258. {
  259. BlueCOMBOPower = BlueTeamMaxPower;
  260. }
  261. if (BlueCOMBOPower < 0)
  262. {
  263. BlueCOMBOPower = 0;
  264. }
  265. }
  266. get { return BlueCOMBOPower; }
  267. }
  268. /// <summary>
  269. /// (技能槽)能量值
  270. /// </summary>
  271. public long BattleBlueTeamSkillPower
  272. {
  273. set
  274. {
  275. BlueTeamSkillPower = value;
  276. if (BlueTeamSkillPower >= BlueTeamMaxSkillPower)
  277. {
  278. BlueTeamSkillPower = BlueTeamMaxSkillPower;
  279. }
  280. if (BlueTeamSkillPower < 0)
  281. {
  282. BlueTeamSkillPower = 0;
  283. }
  284. }
  285. get { return BlueTeamSkillPower; }
  286. }
  287. /// <summary>
  288. /// (技能槽)能量值
  289. /// </summary>
  290. public long BattleRedTeamSkillPower
  291. {
  292. set
  293. {
  294. RedTeamSkillPower = value;
  295. if (RedTeamSkillPower >= RedTeamMaxSkillPower)
  296. {
  297. RedTeamSkillPower = RedTeamMaxSkillPower;
  298. }
  299. if (RedTeamSkillPower < 0)
  300. {
  301. RedTeamSkillPower = 0;
  302. }
  303. }
  304. get { return RedTeamSkillPower; }
  305. }
  306. /// <summary>
  307. /// 无穷尽关卡模式, 战斗结束,玩家离开战斗时的状态
  308. /// 0 = 未通关 1= 通关
  309. /// </summary>
  310. /// <returns>关卡编号</returns>
  311. public int BattleForever_LeaveState()
  312. {
  313. return this.mBattleForever_LeaveState;
  314. }
  315. /// <summary>
  316. /// 当前战斗关卡编号
  317. /// </summary>
  318. /// <returns>关卡编号</returns>
  319. public int BattleLevelID()
  320. {
  321. return this.levelID;
  322. }
  323. /// <summary>
  324. /// 当前战斗关卡所 归属的副本编号
  325. /// </summary>
  326. /// <returns></returns>
  327. public int BattleCarbonID()
  328. {
  329. return this.carbonId;
  330. }
  331. /// <summary>
  332. /// 获取当前关卡场景进度
  333. /// </summary>
  334. /// <returns>进度值</returns>
  335. public int BattleLevelStatus()
  336. {
  337. return this.levelStatus;
  338. }
  339. /// <summary>
  340. /// 获取战斗场景背景图名称
  341. /// </summary>
  342. /// <returns>背景图名称</returns>
  343. public string BattleSceneBundle()
  344. {
  345. return this.levelSenceBundle;
  346. }
  347. /// <summary>
  348. /// 获取战斗场景背景图名称
  349. /// </summary>
  350. /// <returns>背景图名称</returns>
  351. public string BattleSceneBgBundle()
  352. {
  353. return this.levelSenceBGBundle;
  354. }
  355. /// <summary>
  356. /// 获取调试信息适配器
  357. /// </summary>
  358. /// <returns>适配器对象</returns>
  359. public IDebug DebugHelper()
  360. {
  361. return this.mDebugHelper;
  362. }
  363. /// <summary>
  364. /// 获取显示适配器
  365. /// </summary>
  366. /// <returns>适配器信息</returns>
  367. public IShowAdapter ShowAdapter()
  368. {
  369. return this.mShowAdapter;
  370. }
  371. /// <summary>
  372. /// 获取战场地图模板数据适配器
  373. /// </summary>
  374. /// <returns>适配器信息</returns>
  375. public IFieldAdapter FieldAdapter()
  376. {
  377. return this.mFieldAdapter;
  378. }
  379. /// <summary>
  380. /// 获取技能数据适配器
  381. /// </summary>
  382. /// <returns>适配器信息</returns>
  383. public ISkillAdapter SkillAdapter()
  384. {
  385. return this.mSkillAdapter;
  386. }
  387. /// <summary>
  388. /// 时间辅助类
  389. /// </summary>
  390. /// <returns>时间对象</returns>
  391. public TimeHelper TimeCenter()
  392. {
  393. return this.mTimeHelper;
  394. }
  395. /// <summary>
  396. /// 随机数发生器
  397. /// </summary>
  398. /// <returns>随机数对象</returns>
  399. public RandomHelper Random()
  400. {
  401. return this.mRandom;
  402. }
  403. /// <summary>
  404. /// 事件中心
  405. /// </summary>
  406. /// <returns></returns>
  407. public IEventDispatcher EventDisp()
  408. {
  409. return this.mEventDisp;
  410. }
  411. /// <summary>
  412. /// 外部数据交互接口
  413. /// </summary>
  414. /// <returns>接口信息</returns>
  415. public IBattleGlobalOper BattleGlobalOper()
  416. {
  417. return this.mBattleGlobalOper;
  418. }
  419. /// <summary>
  420. /// 获取内部交互接口
  421. /// </summary>
  422. /// <returns>接口信息</returns>
  423. public IBattleInnerOper BattleInnerOper()
  424. {
  425. return this.mBattleInnerOper;
  426. }
  427. /// <summary>
  428. /// 获取蓝队重新加载标志
  429. /// </summary>
  430. /// <returns>true重新加载, false不重新加载</returns>
  431. public bool RealodBule()
  432. {
  433. return this.reloadBlue;
  434. }
  435. /// <summary>
  436. /// 己方成员列表
  437. /// </summary>
  438. /// <returns>己方成员列表</returns>
  439. public List<IFighterAdapter> BlueTeam()
  440. {
  441. return this.blueteam;
  442. }
  443. /// <summary>
  444. /// 敌方成员列表
  445. /// </summary>
  446. /// <returns>敌方成员列表</returns>
  447. public List<IFighterAdapter> RedTeam()
  448. {
  449. return this.redteam;
  450. }
  451. /// <summary>
  452. /// 朋友
  453. /// </summary>
  454. /// <returns></returns>
  455. public string FriendUID
  456. {
  457. set
  458. {
  459. mFriendUID = value;
  460. if (mFriendUID.Trim().Length > 0)
  461. {
  462. isFriendHelp = true;
  463. }
  464. }
  465. get { return mFriendUID; }
  466. }
  467. #endregion
  468. /// <summary>
  469. /// 购买buff,所花费的金币
  470. /// </summary>
  471. public int BuyBuffCostGold { get; set; }
  472. /// <summary>
  473. /// 战前已购买并配置的buff
  474. /// </summary>
  475. public List<string> TeamBuffs { get; set; }
  476. }
  477. }