Exemplo n.º 1
0
    //场景特效

    /** 创建场景特效 */
    public UnitData createSceneEffectData(int id)
    {
        UnitData data = GameC.factory.createUnitData();

        SceneEffectIdentityData iData;

        if (data.identity == null)
        {
            data.identity = iData = new SceneEffectIdentityData();
            iData.type    = UnitType.SceneEffect;

            //初始化部分
            initBaseUnitData(data);
        }
        else
        {
            iData = (SceneEffectIdentityData)data.identity;
        }

        iData.force          = SceneForceType.None;
        iData.playerID       = -1;//无归属
        iData.id             = id;
        iData.signedEffectID = -1;

        return(data);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        base.toShadowCopy(data);

        if (!(data is SceneEffectIdentityData))
        {
            return;
        }

        SceneEffectIdentityData mData = (SceneEffectIdentityData)data;

        this.id = mData.id;
    }
Exemplo n.º 3
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        if (!base.toDataEquals(data))
        {
            return(false);
        }

        SceneEffectIdentityData mData = (SceneEffectIdentityData)data;

        if (this.id != mData.id)
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 4
0
    /** 特效播放完毕 */
    public void effectPlayOver(UnitEffect effect)
    {
        int id = effect.id;

        int num = _effectNumDic.get(id);

        if (num <= 0)
        {
            Ctrl.throwError("出错,effect数目小于0");
            return;
        }

        _effectNumDic.put(id, --num);

        _effectList.removeObj(effect);

        effect.dispose();
        GameC.pool.unitEffectPool.back(effect);

        //场景特效
        if (_unit.type == UnitType.SceneEffect)
        {
            SceneEffectIdentityData iData = _data.getSceneEffectIdentity();

            if (iData.signedEffectID > 0)
            {
                if (id == iData.signedEffectID)
                {
                    sceneEffectOver();
                }
            }
            else
            {
                SceneEffectConfig config = SceneEffectConfig.get(iData.id);

                if (config.effectID > 0)
                {
                    sceneEffectOver();
                }
            }
        }
    }
Exemplo n.º 5
0
    //--主显示部分--//

    /** 初始化主显示 */
    protected virtual void initMainShow()
    {
        bool hasModel = false;

        if (_data.avatar != null && _data.avatar.modelID > 0)
        {
            hasModel = true;

            setModel(_data.avatar.modelID);

            _data.avatar.parts.forEach((k, v) =>
            {
                setPart(k, _unit.avatar.getShowPart(k));
            });
        }

        if (BaseC.constlist.unit_canFight(_data.identity.type))
        {
            int fightUnitID = _data.getFightIdentity().getFightUnitID();

            if (fightUnitID > 0)
            {
                FightUnitConfig fConfig = FightUnitConfig.get(fightUnitID);

                if (!hasModel && fConfig.modelID > 0)
                {
                    setModel(fConfig.modelID);
                }

                if (fConfig.effectID > 0)
                {
                    addEffect(fConfig.effectID);
                }
            }
        }

        //特殊的

        switch (_unit.type)
        {
        case UnitType.SceneEffect:
        {
            SceneEffectIdentityData iData = _data.getSceneEffectIdentity();

            if (iData.signedEffectID > 0)
            {
                addOrPlayEffect(iData.signedEffectID);
            }
            else
            {
                SceneEffectConfig config = SceneEffectConfig.get(((SceneEffectIdentityData)_data.identity).signedEffectID);

                if (config.modelID > 0)
                {
                    setModel(config.modelID);
                }

                if (config.effectID > 0)
                {
                    addOrPlayEffect(config.effectID);
                }
            }
        }
        break;

        case UnitType.FieldItem:
        {
            FieldItemIdentityData iData = (FieldItemIdentityData)_data.identity;

            ItemConfig itemConfig = ItemConfig.get(iData.item.id);

            if (itemConfig.fieldItemModelID > 0)
            {
                setModel(itemConfig.fieldItemModelID);
            }
        }
        break;
        }
    }