Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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);
        }