ShowAdapter.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System;
  5. namespace YLBattle
  6. {
  7. /// <summary>
  8. ///
  9. /// </summary>
  10. public class ShowAdapter : IShowAdapter
  11. {
  12. #region(战斗)
  13. /// <summary>
  14. /// 初始化
  15. /// </summary>
  16. /// <param name="op">数据交互接口</param>
  17. /// <param name="scene">背景图名称</param>
  18. public void Initialize(IBattleGlobalOper op, string scene, string bg, int mode)
  19. {
  20. FightingManager.Instance.SetLevelInfo(op, scene, bg, mode);
  21. }
  22. /// <summary>
  23. /// 战斗准备开始
  24. /// </summary>
  25. /// <param name="_status">当前波次</param>
  26. /// <param name="total">总波次</param>
  27. /// <param name="dif">关卡难度</param>
  28. /// <param name="_gateName">关卡名称</param>
  29. public void SetFightingLevelInfo(int _gateID, int _status, int total, int dif, string _gateName, int _buybuffgold, int _levelmode)
  30. {
  31. FightingManager.Instance.SetFightingLevelInfo(_gateID, _status, total, dif, _gateName, _buybuffgold, _levelmode);
  32. }
  33. /// <summary>
  34. /// 设置PVP信息
  35. /// </summary>
  36. /// <param name="pvpPlayerID"></param>
  37. /// <param name="pvpType"></param>
  38. public void SetPVPLevelInfo(int _gateID, string pvpPlayerID, string pvpType)
  39. {
  40. FightingManager.Instance.SetPVPLevelInfo(_gateID, pvpPlayerID, pvpType);
  41. }
  42. /// <summary>
  43. /// 锁定地图状态
  44. /// </summary>
  45. /// <param name="_bol"></param>
  46. public void SetMapLock(bool _bol)
  47. {
  48. FightingManager.Instance.SetMapLock(_bol);
  49. }
  50. /// <summary>
  51. /// 设置地图平板的状态
  52. /// </summary>
  53. /// <param name="_status">当前波次进度值</param>
  54. public void SetMapPlatState(int _status, string _aniName = "")
  55. {
  56. FightingManager.Instance.SetMapPlatState(_status, _aniName);
  57. }
  58. /// <summary>
  59. /// 转盘是否处于准备状态
  60. /// </summary>
  61. /// <returns></returns>
  62. public bool CheckMapPlatState(EMapState state)
  63. {
  64. return FightingManager.Instance.CheckMapState(state);
  65. }
  66. /// <summary>
  67. /// 战斗开始
  68. /// </summary>
  69. /// <param name="status">当前关卡进度值,到哪个场景了</param>
  70. public void BattleStart(int status)
  71. {
  72. FightingManager.Instance.FightingStart(status);
  73. }
  74. /// <summary>
  75. /// 战斗计时刷新
  76. /// </summary>
  77. /// <param name="leftMil">剩余毫秒数</param>
  78. public void BattleTime(long _leftMil)
  79. {
  80. FightingManager.Instance.BattleTime(_leftMil);
  81. }
  82. /// <summary>
  83. /// 设置是否开启必杀状态
  84. /// </summary>
  85. /// <param name="_bol"></param>
  86. public void SetCriticalState(bool _bol)
  87. {
  88. FightingManager.Instance.SetCriticalState(_bol);
  89. }
  90. /// <summary>
  91. /// 暂停本场战斗
  92. /// </summary>
  93. public void BattlePause()
  94. {
  95. }
  96. /// <summary>
  97. /// 暂停后,继续本场战斗
  98. /// </summary>
  99. public void BattleContinue()
  100. {
  101. }
  102. /// <summary>
  103. /// 战斗完成,显示确认离场,开始下一个场景
  104. /// </summary>
  105. public void BattleLeave()
  106. {
  107. FightingManager.Instance.BattleLeave();
  108. }
  109. /// <summary>
  110. /// BOSS警示
  111. /// </summary>
  112. /// <param name="who"></param>
  113. public void BattleBossWarning(string who)
  114. {
  115. FightingManager.Instance.BattleBossWarning(who);
  116. }
  117. /// <summary>
  118. /// 必杀警示
  119. /// </summary>
  120. /// <param name="who"></param>
  121. public void BattleCriticalWarning()
  122. {
  123. FightingManager.Instance.BattleCriticalWarning();
  124. }
  125. /// <summary>
  126. /// 技能警示
  127. /// </summary>
  128. /// <param name="who"></param>
  129. public void BattleSkillWarning(string who, string skillid)
  130. {
  131. FightingManager.Instance.BattleSkillTip(who, skillid);
  132. }
  133. /// <summary>
  134. /// 战斗失败
  135. /// </summary>
  136. /// <param name="levelid">本次战斗关卡id</param>
  137. /// <param name="record">伤害统计</param>
  138. public void BattleFailed(int levelid)
  139. {
  140. FightingManager.Instance.BattleFailed(levelid);
  141. LogHelper.Log("------战斗结束:失败-----");
  142. }
  143. /// <summary>
  144. /// 战斗胜利
  145. /// </summary>
  146. /// <param name="result">战斗结果信息</param>
  147. public void BattleVictory(IBattleResult result)
  148. {
  149. FightingManager.Instance.BattleVictory(result);
  150. LogHelper.Log("-----战斗结束:胜利-----");
  151. }
  152. /// <summary>
  153. /// 战斗超时
  154. /// </summary>
  155. /// <param name="levelid">本次战斗关卡id</param>
  156. /// <param name="record">伤害统计</param>
  157. public void BattleTimeOut(int levelid)
  158. {
  159. FightingManager.Instance.BattleTimeOut(levelid);
  160. LogHelper.Log("-----战斗结束:超时-----");
  161. }
  162. #endregion
  163. #region BattleState
  164. /// <summary>
  165. /// 创建角色
  166. /// </summary>
  167. /// <param name="id">编号</param>
  168. /// <param name="strPrefebName">预置物体资源名</param>
  169. /// <param name="_intTeam">所属队列</param>
  170. /// <param name="_mode">关卡模式</param>
  171. /// <param name="adapter">数据</param>
  172. /// <param name="isFriend">友情支援</param>
  173. public void CreatLogicFighter(string _Id, EBattleTeam _eTeam, int levelmode, IFighterAdapter adapter = null, bool isFriend = false)
  174. {
  175. string _sounds = adapter.NormalSound() + "," + adapter.SkillSound() + "," + adapter.BeattackSound();
  176. FightingManager.Instance.AddOneFighter(_Id, adapter.IID(), adapter.TID(),
  177. adapter.DragonboneName(),
  178. _eTeam,
  179. adapter.Seat,
  180. _sounds,
  181. levelmode,
  182. isFriend,
  183. adapter.PlayerUID());
  184. /**
  185. * 下面预加载技能资源
  186. */
  187. if (adapter != null)
  188. {
  189. NewSkillAndBuff(adapter.Skills());
  190. }
  191. }
  192. /// <summary>
  193. /// 预加载技能和buff数据
  194. /// </summary>
  195. /// <param name="skills">技能id</param>
  196. public void NewSkillAndBuff(string[] skills)
  197. {
  198. /// 预加载 英雄技能
  199. foreach (string skillid in skills)
  200. {
  201. if (skillid == null)
  202. {
  203. continue;
  204. }
  205. var skill = GameConfigData.Ins.GetskillMo(int.Parse(skillid));
  206. if (skill != null)
  207. {
  208. SkillControl.Instance.LoadBundle(skill.redres);
  209. SkillControl.Instance.LoadBundle(skill.blueres);
  210. skill.GetBuffList().ForEach(b =>
  211. {
  212. if (!string.IsNullOrWhiteSpace(b.icon))
  213. {
  214. FightingManager.Instance.AddOneBuffCache(b.icon);
  215. }
  216. });
  217. }
  218. else
  219. {
  220. //LogHelper.Log("################技能数据 ID=" + skillid + " 不存在");
  221. }
  222. }
  223. }
  224. /// <summary>
  225. /// 检测,是否已经创建完毕实体对象
  226. /// </summary>
  227. /// <param name="_strId">实例ID</param>
  228. public bool CheckHasFighterCreated(string _strId)
  229. {
  230. if (FightingManager.Instance.GetFighter(_strId) != null)
  231. {
  232. return true;
  233. }
  234. return false;
  235. }
  236. /// <summary>
  237. /// 进入特定动画状态
  238. /// </summary>
  239. /// <param name="_strId"></param>
  240. /// <param name="_strAniName"></param>
  241. /// <param name="ac"></param>
  242. /// <returns></returns>
  243. public void EnterSpecialAni(string _strId, string _strAniName = "", Action ac = null)
  244. {
  245. FightingManager.Instance.BattleSpecialAni(_strId, _strAniName, ac);
  246. }
  247. /// <summary>
  248. /// 进入静止状态
  249. /// </summary>
  250. /// <param name="_strId">who</param>
  251. /// <param name="_force">是否强制执行静止状态</param>
  252. public void EnterIdleState(string _strId, bool _force)
  253. {
  254. FightingManager.Instance.BattleFighterIdle(_strId, _force);
  255. }
  256. /// <summary>
  257. /// 进入死亡状态
  258. /// </summary>
  259. /// <param name="_strId"></param>
  260. public void EnterDeadState(string _strId)
  261. {
  262. FightingManager.Instance.BattleFighterBeDead(_strId);
  263. }
  264. /// <summary>
  265. /// 进入受伤状态
  266. /// </summary>
  267. /// <param name="_strId"></param>
  268. public void EnterHitState(string _strId)
  269. {
  270. FightingManager.Instance.BattleFighterBeHit(_strId);
  271. }
  272. /// <summary>
  273. /// 进入转位状态
  274. /// </summary>
  275. /// <param name="_strId"></param>
  276. public void EnterMapMoveState(string _strId)
  277. {
  278. FightingManager.Instance.SetMapMove(_strId);
  279. }
  280. public void SetMapLight()
  281. {
  282. FightingMap.Instance.SetMapLight();
  283. }
  284. public void SetMapDark()
  285. {
  286. FightingMap.Instance.SetMapDark();
  287. }
  288. /// <summary>
  289. /// 技能攻击时触发的地图拖拽动作
  290. /// </summary>
  291. /// <param name="lv">等级</param>
  292. public void EnterMapDragState(int dragType)
  293. {
  294. FightingManager.Instance.SetMapDraging(dragType);
  295. }
  296. /// <summary>
  297. /// 技能攻击时触发的地图震动动作
  298. /// </summary>
  299. /// <param name="lv">等级</param>
  300. public void EnterMapShakeState(int shakeType)
  301. {
  302. FightingManager.Instance.SetMapShaking(shakeType);
  303. }
  304. /// <summary>
  305. /// 进入尸体消失状态
  306. /// </summary>
  307. /// <param name="_strId"></param>
  308. public void EnterDisapperState(string _strId)
  309. {
  310. FightingManager.Instance.BattleFighterDisapper(_strId);
  311. }
  312. /// <summary>
  313. /// 进入隐藏状态
  314. /// </summary>
  315. /// <param name="_strId"></param>
  316. public void EnterHiddenState(string _strId)
  317. {
  318. FightingManager.Instance.BattleFighterHidden(_strId);
  319. }
  320. /// <summary>
  321. /// 进入出场状态
  322. /// </summary>
  323. /// <param name="_strId"></param>
  324. public void EnterArrivalState(string _strId, bool _boleffect)
  325. {
  326. FightingManager.Instance.BattleFighterArrival(_strId, _boleffect);
  327. }
  328. /// <summary>
  329. /// 进入高亮状态
  330. /// </summary>
  331. /// <param name="_strId"></param>
  332. public void EnterLightState(string _strId)
  333. {
  334. FightingManager.Instance.BattleFighterLight(_strId);
  335. }
  336. /// <summary>
  337. /// 进入黑暗状态
  338. /// </summary>
  339. /// <param name="_strId"></param>
  340. public void EnterDarkState(string _strId)
  341. {
  342. FightingManager.Instance.BattleFigherDark(_strId);
  343. }
  344. /// <summary>
  345. /// 进入被选中状态
  346. /// </summary>
  347. /// <param name="_strId"></param>
  348. public void EnterBeSelectState(string _strId)
  349. {
  350. FightingManager.Instance.BattleFighterBeSelect(_strId, true);
  351. }
  352. /// <summary>
  353. /// 进入(被选中恢复)正常状态
  354. /// </summary>
  355. /// <param name="_strId"></param>
  356. public void EnterBeGiveUpState(string _strId)
  357. {
  358. FightingManager.Instance.BattleFighterBeSelect(_strId);
  359. }
  360. /// <summary>
  361. /// 进入攻击状态
  362. /// </summary>
  363. /// <param name="_strWhoId">攻击者</param>
  364. /// <param name="_strSkill">技能ID</param>
  365. /// <param name="_isCritical">是否为必杀</param>
  366. public void EnterAttackState(string _strWhoId, string _strSkill, int _atkactiontype)
  367. {
  368. FightingManager.Instance.FighterAttack(_strWhoId, _strSkill, _atkactiontype);
  369. }
  370. #endregion
  371. #region 战斗伤害 UI
  372. /// <summary>
  373. /// 显示敌方技能提示
  374. /// </summary>
  375. /// <param name="who"></param>
  376. /// <param name="_strSkill"></param>
  377. public void OnShowEnemySkillTip(string who, string _strSkill)
  378. {
  379. FightingManager.Instance.OnShowEnemySkillTip(who, _strSkill);
  380. }
  381. /// <summary>
  382. /// 打开地图配合boss出场效果
  383. /// </summary>
  384. public void OnStartMapBossEffect()
  385. {
  386. FightingManager.Instance.OnStartMapBossEffect();
  387. }
  388. /// <summary>
  389. /// 结束地图配合boss出场效果
  390. /// </summary>
  391. public void OnOverMapBossEffect()
  392. {
  393. FightingManager.Instance.OnOverMapBossEffect();
  394. }
  395. /// <summary>
  396. /// 关闭boss介绍窗体
  397. /// </summary>
  398. public void OnSetBossDescriptionWindow(string _bossid, bool isshow)
  399. {
  400. FightingManager.Instance.OnSetBossDescriptionWindow(_bossid, isshow);
  401. }
  402. /// <summary>
  403. /// 战斗伤害信息显示
  404. /// </summary>
  405. /// <param name="who">目标编号</param>
  406. /// <param name="type">伤害类型</param>
  407. /// <param name="val">伤害数值</param>
  408. /// <param name="showStyle">显示位置 0=角色位置 1=屏幕中间</param>
  409. public void BattleTipShowing(string who, EBattleTips type, string val, float tipdelay = 0, int showStyle = 0)
  410. {
  411. FightingManager.Instance.BattleDamageInfo(who, type, val, tipdelay, showStyle);
  412. }
  413. /// <summary>
  414. /// 刷新teamHp,teamPower
  415. /// </summary>
  416. public void OnRefreshWindowData()
  417. {
  418. FightingManager.Instance.OnRefreshWindowData();
  419. }
  420. /// <summary>
  421. /// 开始战斗
  422. /// </summary>
  423. /// <param name="bolSecSpeed">是否2倍速度</param>
  424. public void OnOprStateSetting(bool bolSecSpeed)
  425. {
  426. FightingManager.Instance.OnOprStateSetting(bolSecSpeed);
  427. }
  428. /// <summary>
  429. /// 播放开战动画
  430. /// </summary>
  431. public void OnPlayBattleStartAnimation()
  432. {
  433. FightingManager.Instance.OnPlayBattleStartAnimation();
  434. }
  435. /// <summary>
  436. /// 显示波次数据
  437. /// </summary>
  438. public void OnPlayLevelEffect()
  439. {
  440. FightingManager.Instance.OnPlayLevelEffect();
  441. }
  442. /// <summary>
  443. /// 设置场景UI操作状态
  444. /// </summary>
  445. /// <param name="_bolSkillUI">是否可点击释放技能</param>
  446. /// <param name="_bolTopBtn">是否可点击双倍速按钮</param>
  447. public void OnSetBattleUIOperate(bool _bolSkillUI, bool _bolTopBtn)
  448. {
  449. FightingManager.Instance.OnSetBattleUIOperate(_bolSkillUI, _bolTopBtn);
  450. }
  451. /// <summary>
  452. /// boss开始出场
  453. /// </summary>
  454. public void OnBossArrival(string iid)
  455. {
  456. FightingManager.Instance.OnBossArrival(iid);
  457. FightingManager.Instance.OnHideBattleUI();
  458. }
  459. /// <summary>
  460. /// boss结束出场
  461. /// </summary>
  462. public void OnBossLeave()
  463. {
  464. FightingManager.Instance.OnShowBattleUI();
  465. }
  466. /// <summary>
  467. /// 好友支援提示
  468. /// </summary>
  469. public void OnFriendSupportTip(string friendtid)
  470. {
  471. FightingManager.Instance.OnFriendSupportTip(friendtid);
  472. }
  473. #endregion
  474. #region 技能
  475. /// <summary>
  476. /// 子弹发射
  477. /// </summary>
  478. /// <param name="id">子弹唯一标示符</param>
  479. /// <param name="type">子弹位置目标类型</param>
  480. /// <param name="param">子弹目标参数(目标ID)</param>
  481. public void BulletLaunch(string id, EBulletTargeType type, object param)
  482. {
  483. SkillControl.Instance.BulletLaunch(id, type, param);
  484. }
  485. /// <summary>
  486. /// 检测指定子弹是否创建完成
  487. /// </summary>
  488. /// <param name="id">子弹编号</param>
  489. /// <returns>true创建成功, false创建失败</returns>
  490. public bool BulletLoadComplete(string id)
  491. {
  492. return SkillControl.Instance.BulletLoadComplete(id);
  493. }
  494. /// <summary>
  495. /// 子弹创建
  496. /// </summary>
  497. /// <param name="param">BulletLoadParam</param>
  498. public void BulletLoad(BulletLoadParam param)
  499. {
  500. SkillControl.Instance.BulletLoad(param);
  501. }
  502. #endregion
  503. #region buff
  504. /// <summary>
  505. /// 播放指定的buff效果
  506. /// </summary>
  507. /// <param name="who">目标战斗对象编号</param>
  508. /// <param name="iid">buff唯一id</param>
  509. /// <param name="tid">bufftid</param>
  510. /// <param name="fx">效果名称</param>
  511. public void BuffShowIcon(string who, int iid, string tid, string icon)
  512. {
  513. FightingManager.Instance.AddNewBuffIcon(who, iid, tid, icon);
  514. }
  515. /// <summary>
  516. /// 播放指定的buff阶段效果
  517. /// </summary>
  518. /// <param name="who"></param>
  519. /// <param name="iid"></param>
  520. /// <param name="fx"></param>
  521. /// <param name="pt"></param>
  522. public void BuffShowRes(string who, int iid, string res)
  523. {
  524. FightingManager.Instance.AddNewBuffRes(who, iid, res);
  525. }
  526. /// <summary>
  527. /// 谁的buff消失
  528. /// </summary>
  529. /// <param name="who">目标对象编号</param>
  530. /// <param name="iid">buff唯一编号</param>
  531. public void BuffClear(string who, int iid)
  532. {
  533. FightingManager.Instance.RemoveBuffIcon(who, iid);
  534. }
  535. #endregion
  536. }
  537. }