コード例 #1
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        if (!base.toDataEquals(data))
        {
            return(false);
        }

        FieldItemIdentityData mData = (FieldItemIdentityData)data;

        if (mData.item != null)
        {
            if (this.item == null)
            {
                return(false);
            }
            if (!this.item.dataEquals(mData.item))
            {
                return(false);
            }
        }
        else
        {
            if (this.item != null)
            {
                return(false);
            }
        }

        return(true);
    }
コード例 #2
0
    /** 检查是否可拾取 */
    public bool checkCanPickUpFieldItem(Unit fieldItem)
    {
        FieldItemIdentityData iData = (FieldItemIdentityData)fieldItem.getUnitData().identity;

        ItemData itemData = iData.item;

        if (!GameC.player.bag.hasItemPlace(itemData))
        {
            return(false);
        }

        return(true);
    }
コード例 #3
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        base.toShadowCopy(data);

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

        FieldItemIdentityData mData = (FieldItemIdentityData)data;

        this.item = mData.item;
    }
コード例 #4
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        base.toCopy(data);

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

        FieldItemIdentityData mData = (FieldItemIdentityData)data;

        if (mData.item != null)
        {
            this.item = (ItemData)mData.item.clone();
        }
        else
        {
            this.item = null;
            nullObjError("item");
        }
    }
コード例 #5
0
    /** 创建掉落物品数据 */
    public UnitData createFieldItemData(ItemData item)
    {
        UnitData data = GameC.factory.createUnitData();

        FieldItemIdentityData iData;

        if (data.identity == null)
        {
            data.identity = iData = new FieldItemIdentityData();
            iData.type    = UnitType.FieldItem;
            //初始化部分
            initBaseUnitData(data);
        }
        else
        {
            iData = (FieldItemIdentityData)data.identity;
        }

        iData.playerID = -1;      //无归属
        iData.item     = item;

        return(data);
    }
コード例 #6
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;
        }
    }