void ApplyAction(int actionType, int actionArg, int actionArg2, BattleEffectItemData cardData, BattlePlayer owner, BattlePlayer target, object userdata) { if (target == null) { target = IsMe ? Game.BattleManager.OppPlayer : Game.BattleManager.MyPlayer; } BattleAction battleAction = BattleAction.CreateNew((BattleActionType)actionType, actionArg, actionArg2, cardData, owner, target, userdata); battleAction.Excute(); }
public BattleEquipData(int equipId, BattleEffectItemData cardData, BattlePlayer owner) { EquipId = equipId; Data = BattleEquipTableSettings.Get(equipId); if (Data == null) { Debug.LogError("BuffId: " + equipId + " not exist!"); return; } Type = (EquipType)Data.Type; CardData = cardData; Owner = owner; }
public BattleBuffData(int buffId, int time, int layer, BattleEffectItemData cardData, BattlePlayer owner, BattlePlayer target) { BuffId = buffId; Data = BattleBuffTableSettings.Get(buffId); if (Data == null) { Debug.LogError("BuffId: " + buffId + " not exist!"); return; } Time = time == 0 ? Data.Time : time; Layer = layer == 0 ? Data.DefaultLayer : layer; CardData = cardData; Owner = owner; Target = target; ItemType = BattleEffectItemType.Buff; }
/// <summary> /// 创建新效果应用,新的递归深度 /// </summary> /// <param name="actionType">效果类型</param> /// <param name="actionArg">效果参数1</param> /// <param name="actionArg2">效果参数2</param> /// <param name="sourceData">效果来源</param> /// <param name="owner">所有者</param> /// <param name="target">目标</param> /// <param name="userdata">携带的自定义参数</param> /// <returns>创建的效果</returns> public static BattleAction CreateNew(BattleActionType actionType, int actionArg, int actionArg2, BattleEffectItemData sourceData, BattlePlayer owner, BattlePlayer target, object userdata) { if (dicActionType == null) { Init(); } BattleAction battleAction = Activator.CreateInstance(dicActionType[actionType]) as BattleAction; battleAction.actionArg = actionArg; battleAction.actionArg2 = actionArg2; battleAction.sourceData = sourceData; battleAction.owner = owner; battleAction.target = target; battleAction.battleMgr = Game.BattleManager; battleAction.userdata = userdata; //StackTrace st = new StackTrace(); //执行深度 battleAction.depth = 1; return(battleAction); }
/// <summary> /// 效果内部创建效果应用,递归深度+1 /// </summary> /// <param name="actionType">效果类型</param> /// <param name="actionArg">效果参数1</param> /// <param name="actionArg2">效果参数2</param> /// <param name="sourceData">效果来源</param> /// <param name="owner">所有者</param> /// <param name="target">目标</param> /// <param name="userdata">携带的自定义参数</param> /// <returns>创建的效果</returns> protected BattleAction Create(BattleActionType actionType, int actionArg, int actionArg2, BattleEffectItemData sourceData, BattlePlayer owner, BattlePlayer target, object userdata) { if (depth > MAX_EXCUTE_DEPTH) { return(Create(BattleActionType.None, 0, 0, null, null, null, null)); } BattleAction battleAction = CreateNew(actionType, actionArg, actionArg2, sourceData, owner, target, userdata); //StackTrace st = new StackTrace(); //执行深度 battleAction.depth = depth + 1; return(battleAction); }