/// <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); }
/** 检查是否可拾取 */ 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); }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { base.toShadowCopy(data); if (!(data is FieldItemIdentityData)) { return; } FieldItemIdentityData mData = (FieldItemIdentityData)data; this.item = mData.item; }
/// <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"); } }
/** 创建掉落物品数据 */ 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); }
//--主显示部分--// /** 初始化主显示 */ 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; } }