public void StartBattle(List <UnitConfigData> fighterDatas) { IsInBattle = true; CurFrameCount = 0; BattleFiled.Instance.AddUnitMoveListener(delegate(int unitId, IntVector2 fromPos, IntVector2 toPos) { BattleActorManager.Instance.OnUnitMove(unitId, fromPos, toPos); if (unitId == GameMain.Instance.ProxyMgr.Player.PlayerId) { SceneCameraManager.Instance.MoveWithPlayer(BattleUtils.LogicPosToScenePos(toPos)); } }); BattleFiled.Instance.AddUseSkillListener(delegate(int unitId, short skillId) { BattleActorManager.Instance.OnUnitUseSkill(unitId, skillId); }); BattleFiled.Instance.AddUnitEnterIdleListener(delegate(int unitId) { BattleActorManager.Instance.OnUnitEnterIdle(unitId); }); BattleFiled.Instance.AddSkillEffectListener(delegate(short skillEffectId, IntVector2 pos) { GDSKit.SkillEffect skillEffect = GDSKit.SkillEffect.GetInstance(skillEffectId); EffectManager.Instance.CreateEffect(skillEffect.gameEffectId, BattleUtils.LogicPosToScenePos(pos)); }); BattleFiled.Instance.AddUnitAttrChgListener(delegate(int unitId, FighterAttributeType attrType, int value) { BattleActorManager.Instance.OnUnitAttrChg(unitId, attrType, value); }); BattleFiledLattile.Instance.InitLattile(1000); BattleUnitManager.Instance.StartBattle(fighterDatas); BattleActorManager.Instance.StartBattle(fighterDatas); BattleLogManager.Instance.Start(); }
public void SetInfo(GDSKit.SkillEffect effectGds, IntVector2 effectPos, int targetUnitId , short effectAngler, short param1, short param2, CampType casterCampType) { mEffectConfig = effectGds; mEffectPos = effectPos; mEffectAngler = effectAngler; mEffectParam1 = param1; mEffectParam2 = param2; mTargetUnitId = targetUnitId; mEffectCamp = mEffectConfig.isEffectSelfCamp ? casterCampType : BattleUtils.GetAnotherCamp(casterCampType); }
int CreateEffect(CampType casterCampType, IntVector2 effectPos, short effectId, int targetUnitId, short effectAngler, short param1, short param2) { UnityEngine.Debug.Log("創建技能效果 " + casterCampType.ToString() + " " + effectPos.ToString() + " " + effectAngler + " " + param1 + " " + param2); GDSKit.SkillEffect effectConfig = GDSKit.SkillEffect.GetInstance(effectId); SkillEffectBase createEffect = null; switch ((SkillEffectType)effectConfig.type) { case SkillEffectType.ChgAttr: createEffect = new SkillAttrChgEffect(); break; default: throw new System.NotImplementedException("未实现的技能效果类型 " + effectConfig.type); } mEffectDic[createEffect.iD] = createEffect; createEffect.SetInfo(effectConfig, effectPos, targetUnitId, effectAngler, param1, param2, casterCampType); createEffect.BeginWork(); BattleFiled.Instance.OnCreateEffect(effectId, effectPos); return(createEffect.iD); }