Beispiel #1
0
    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();
    }
Beispiel #2
0
    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;
    }
Beispiel #3
0
    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;
    }
Beispiel #4
0
    /// <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);
    }
Beispiel #5
0
    /// <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);
    }