123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using YLBattle;
- namespace YLBattle
- {
- /// <summary>
- /// 战斗管理
- /// </summary>
- public partial class BattleManager : IBattleGlobalOper
- {
- /// <summary>
- /// 战斗上下文环境信息
- /// </summary>
- protected BattleParam mBattleParam = null;
- /// <summary>
- /// 当前战场
- /// </summary>
- protected BattleField mFieldModule = new BattleField();
- /// <summary>
- /// 战斗对象管理器
- /// </summary>
- protected LogicFighterManager mLogicFightersModel = new LogicFighterManager();
- /// <summary>
- /// (技能)子弹管理器
- /// </summary>
- protected X2Battle.BulletManager mBulletModel = new X2Battle.BulletManager();
- /// <summary>
- /// buff管理器
- /// </summary>
- protected BuffManager mBuffModel = new BuffManager();
- /// <summary>
- /// 战斗事件处理器
- /// </summary>
- protected FieldEventDispatcher mEventDisp = new FieldEventDispatcher();
- /// <summary>
- /// 返回上下文环境信息
- /// </summary>
- /// <returns>上下文环境信息</returns>
- public BattleParam Env()
- {
- return this.mBattleParam;
- }
- /// <summary>
- /// 开始一场战斗
- /// </summary>
- /// <param name="param">战斗参数</param>
- public void BattleStart(BattleParam param)
- {
- ///战场模块数据间的交互
- this.mBattleParam = param;
- this.mBattleParam.mBattleGlobalOper = this;
- this.mBattleParam.mBattleInnerOper = this.mFieldModule;
- this.mBattleParam.mLogicFighterOper = this.mLogicFightersModel;
- this.mBattleParam.mBulletManagerOpr = this.mBulletModel;
- this.mBattleParam.mBuffManagerOpr = this.mBuffModel;
- this.mBattleParam.mEventDisp = this.mEventDisp;
- this.mBattleParam.ShowAdapter().Initialize(this,
- this.Env().BattleSceneBundle(),
- this.Env().BattleSceneBgBundle(),
- this.Env().levelMode);
- // 交互模块的初始化
- this.mFieldModule.Initialize(this.mBattleParam);
- this.mLogicFightersModel.Initialize(this.mBattleParam);
- this.mBulletModel.Initialize(this.mBattleParam);
- this.mEventDisp.Initialize(this.mBattleParam);
- this.mBuffModel.Initialize(this.mBattleParam);
- this.mBattleParam.TimeCenter().Start();
- if(GameDateManager.Instance.isMultiRoom)
- {
- // 网络回调
- MultiBattleProxy.Instance.On_PeopleList = GetPeoplistSC;
- MultiBattleProxy.Instance.On_BroadCast = NetBattleBroadCastSC;
- MultiBattleProxy.Instance.On_UpdatePosition = NetBattlePostionSC;
- MultiBattleProxy.Instance.On_BTStatus = NetBattleStatusSC;
- // 刷新战斗成员列表
- MultiBattleProxy.Instance.GetPeopleList();
- }
- }
- public void GetPeoplistSC(MultiDup.SC_BT_PeopleList pList)
- {
- foreach(var p in pList.PlayerUids)
- {
- if(p == UserProxy.Instance.player.uid)
- {
- continue;
- }
- RoleManager.Instance.CreateFriendPlayers(p, () => { });
- }
- }
- public void NetBattleBroadCastSC(MultiDup.SC_BT_BroadCast broadMsg)
- {
- }
- public void NetBattlePostionSC(MultiDup.SC_BT_Position positionMsg)
- {
- RoleManager.Instance.SetFriendPosition(positionMsg.SenderUid, positionMsg.X, positionMsg.Y, positionMsg.Z);
- }
- public void NetBattleStatusSC(MultiDup.SC_BT_Status statusMsg)
- {
- RoleManager.Instance.SetFiendStatus(statusMsg.SenderUid, statusMsg.PropertyName, statusMsg.Value);
- }
- /// <summary>
- /// 帧调度
- /// </summary>
- /// <returns>调度结果</returns>
- public EBattleUpdateStatus Update()
- {
- if (this.Env().IsPause == true)
- {
- return EBattleUpdateStatus.Continue;
- }
- ///// 计时器调度
- //this.mBattleParam.TimeCenter().Update();
- ///// 时间
- //long now = this.Env().TimeCenter().Now();
- ///// 事件调度
- //this.mEventDisp.OnUpdateFieldEvent(now);
- ///// 对象调度
- //this.mLogicFightersModel.OnUpdate(now);
- ///// 技能调度
- //this.mBulletModel.OnUpdateBullet(now);
- ///// buff调度
- //this.mBuffModel.OnUpdateBuffs(now);
- ///// 战场策略调度
- //if (this.mFieldModule.CurrentPoilcy().IsComplete())
- //{
- // if (this.mFieldModule.CurrentPoilcy().Type() == EBattleStaus.EBATTLE_STATUS_FIGHTING)
- // {
- // LogHelper.Log(" 清空战场残留,比如Buff");
- // mBuffModel.ClearAllBuff();
- // }
- // this.mFieldModule.ChangeFieldPolicy(this.mFieldModule.CurrentPoilcy().Next(), this.mFieldModule.CurrentPoilcy().Result());
- //}
- return this.mFieldModule.OnUpdate(0);
- }
- }
- }
|