/** 添加场景角色 */ public Role addRole(SceneRoleData data) { if (ShineSetting.openCheck) { if (_roleDic.contains(data.playerID)) { Ctrl.throwError("场景角色重复添加", data.playerID); return(null); } } Role role = GameC.pool.rolePool.getOne(); role.setData(data); role.setScene(_scene); role.enabled = true; _roleDic.put(role.playerID, role); if (role.playerID == GameC.player.role.playerID) { //设置 _scene.setSelfRole(role); } role.init(); onAddRole(role); return(role); }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is SceneRoleData)) { return; } SceneRoleData mData = (SceneRoleData)data; this.playerID = mData.playerID; this.showData = mData.showData; this.attribute = mData.attribute; this.force = mData.force; }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is SceneRoleData)) { return; } SceneRoleData mData = (SceneRoleData)data; this.playerID = mData.playerID; if (mData.showData != null) { this.showData = (RoleShowData)mData.showData.clone(); } else { this.showData = null; } if (mData.attribute != null) { this.attribute = (RoleAttributeData)mData.attribute.clone(); } else { this.attribute = null; } if (mData.force != null) { this.force = (RoleForceData)mData.force.clone(); } else { this.force = null; nullObjError("force"); } }
/** 设置数据 */ public void setData(SceneRoleData data) { _data = data; playerID = data != null ? data.playerID : -1; }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { SceneRoleData mData = (SceneRoleData)data; if (this.playerID != mData.playerID) { return(false); } if (mData.showData != null) { if (this.showData == null) { return(false); } if (!this.showData.dataEquals(mData.showData)) { return(false); } } else { if (this.showData != null) { return(false); } } if (mData.attribute != null) { if (this.attribute == null) { return(false); } if (!this.attribute.dataEquals(mData.attribute)) { return(false); } } else { if (this.attribute != null) { return(false); } } if (mData.force != null) { if (this.force == null) { return(false); } if (!this.force.dataEquals(mData.force)) { return(false); } } else { if (this.force != null) { return(false); } } return(true); }
/// <summary> /// 转文本输出 /// </summary> protected override void toWriteDataString(DataWriter writer) { writer.writeTabs(); writer.sb.Append("hero"); writer.sb.Append(':'); if (this.hero != null) { this.hero.writeDataString(writer); } else { writer.sb.Append("UnitData=null"); } writer.writeEnter(); writer.writeTabs(); writer.sb.Append("units"); writer.sb.Append(':'); writer.sb.Append("List<UnitData>"); if (this.units != null) { SList <UnitData> unitsT = this.units; int unitsLen = unitsT.size(); writer.sb.Append('('); writer.sb.Append(unitsLen); writer.sb.Append(')'); writer.writeEnter(); writer.writeLeftBrace(); for (int unitsI = 0; unitsI < unitsLen; ++unitsI) { UnitData unitsV = unitsT.get(unitsI); writer.writeTabs(); writer.sb.Append(unitsI); writer.sb.Append(':'); if (unitsV != null) { unitsV.writeDataString(writer); } else { writer.sb.Append("UnitData=null"); } writer.writeEnter(); } writer.writeRightBrace(); } else { writer.sb.Append("=null"); } writer.writeEnter(); writer.writeTabs(); writer.sb.Append("roles"); writer.sb.Append(':'); writer.sb.Append("Map<long,SceneRoleData>"); if (this.roles != null) { writer.sb.Append('('); writer.sb.Append(this.roles.size()); writer.sb.Append(')'); writer.writeEnter(); writer.writeLeftBrace(); if (!this.roles.isEmpty()) { long rolesKFreeValue = this.roles.getFreeValue(); long[] rolesKKeys = this.roles.getKeys(); SceneRoleData[] rolesVValues = this.roles.getValues(); for (int rolesKI = rolesKKeys.Length - 1; rolesKI >= 0; --rolesKI) { long rolesK = rolesKKeys[rolesKI]; if (rolesK != rolesKFreeValue) { SceneRoleData rolesV = rolesVValues[rolesKI]; writer.writeTabs(); writer.sb.Append(rolesK); writer.sb.Append(':'); if (rolesV != null) { rolesV.writeDataString(writer); } else { writer.sb.Append("SceneRoleData=null"); } writer.writeEnter(); } } } writer.writeRightBrace(); } else { writer.sb.Append("=null"); } writer.writeEnter(); writer.writeTabs(); writer.sb.Append("selfBindFieldItemBags"); writer.sb.Append(':'); writer.sb.Append("Map<int,FieldItemBagBindData>"); if (this.selfBindFieldItemBags != null) { writer.sb.Append('('); writer.sb.Append(this.selfBindFieldItemBags.size()); writer.sb.Append(')'); writer.writeEnter(); writer.writeLeftBrace(); if (!this.selfBindFieldItemBags.isEmpty()) { int selfBindFieldItemBagsKFreeValue = this.selfBindFieldItemBags.getFreeValue(); int[] selfBindFieldItemBagsKKeys = this.selfBindFieldItemBags.getKeys(); FieldItemBagBindData[] selfBindFieldItemBagsVValues = this.selfBindFieldItemBags.getValues(); for (int selfBindFieldItemBagsKI = selfBindFieldItemBagsKKeys.Length - 1; selfBindFieldItemBagsKI >= 0; --selfBindFieldItemBagsKI) { int selfBindFieldItemBagsK = selfBindFieldItemBagsKKeys[selfBindFieldItemBagsKI]; if (selfBindFieldItemBagsK != selfBindFieldItemBagsKFreeValue) { FieldItemBagBindData selfBindFieldItemBagsV = selfBindFieldItemBagsVValues[selfBindFieldItemBagsKI]; writer.writeTabs(); writer.sb.Append(selfBindFieldItemBagsK); writer.sb.Append(':'); if (selfBindFieldItemBagsV != null) { selfBindFieldItemBagsV.writeDataString(writer); } else { writer.sb.Append("FieldItemBagBindData=null"); } writer.writeEnter(); } } } writer.writeRightBrace(); } else { writer.sb.Append("=null"); } writer.writeEnter(); writer.writeTabs(); writer.sb.Append("bindVisionUnits"); writer.sb.Append(':'); writer.sb.Append("Map<int,UnitSimpleData>"); if (this.bindVisionUnits != null) { writer.sb.Append('('); writer.sb.Append(this.bindVisionUnits.size()); writer.sb.Append(')'); writer.writeEnter(); writer.writeLeftBrace(); if (!this.bindVisionUnits.isEmpty()) { int bindVisionUnitsKFreeValue = this.bindVisionUnits.getFreeValue(); int[] bindVisionUnitsKKeys = this.bindVisionUnits.getKeys(); UnitSimpleData[] bindVisionUnitsVValues = this.bindVisionUnits.getValues(); for (int bindVisionUnitsKI = bindVisionUnitsKKeys.Length - 1; bindVisionUnitsKI >= 0; --bindVisionUnitsKI) { int bindVisionUnitsK = bindVisionUnitsKKeys[bindVisionUnitsKI]; if (bindVisionUnitsK != bindVisionUnitsKFreeValue) { UnitSimpleData bindVisionUnitsV = bindVisionUnitsVValues[bindVisionUnitsKI]; writer.writeTabs(); writer.sb.Append(bindVisionUnitsK); writer.sb.Append(':'); if (bindVisionUnitsV != null) { bindVisionUnitsV.writeDataString(writer); } else { writer.sb.Append("UnitSimpleData=null"); } writer.writeEnter(); } } } writer.writeRightBrace(); } else { writer.sb.Append("=null"); } writer.writeEnter(); writer.writeTabs(); writer.sb.Append("battleData"); writer.sb.Append(':'); if (this.battleData != null) { this.battleData.writeDataString(writer); } else { writer.sb.Append("BattleSceneData=null"); } writer.writeEnter(); }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { SceneEnterData mData = (SceneEnterData)data; if (mData.hero != null) { if (this.hero == null) { return(false); } if (!this.hero.dataEquals(mData.hero)) { return(false); } } else { if (this.hero != null) { return(false); } } if (mData.units != null) { if (this.units == null) { return(false); } if (this.units.size() != mData.units.size()) { return(false); } SList <UnitData> unitsT = this.units; SList <UnitData> unitsR = mData.units; int unitsLen = unitsT.size(); for (int unitsI = 0; unitsI < unitsLen; ++unitsI) { UnitData unitsU = unitsT.get(unitsI); UnitData unitsV = unitsR.get(unitsI); if (unitsV != null) { if (unitsU == null) { return(false); } if (!unitsU.dataEquals(unitsV)) { return(false); } } else { if (unitsU != null) { return(false); } } } } else { if (this.units != null) { return(false); } } if (mData.roles != null) { if (this.roles == null) { return(false); } if (this.roles.size() != mData.roles.size()) { return(false); } LongObjectMap <SceneRoleData> rolesR = mData.roles; if (!this.roles.isEmpty()) { long rolesKFreeValue = this.roles.getFreeValue(); long[] rolesKKeys = this.roles.getKeys(); SceneRoleData[] rolesVValues = this.roles.getValues(); for (int rolesKI = rolesKKeys.Length - 1; rolesKI >= 0; --rolesKI) { long rolesK = rolesKKeys[rolesKI]; if (rolesK != rolesKFreeValue) { SceneRoleData rolesV = rolesVValues[rolesKI]; SceneRoleData rolesU = rolesR.get(rolesK); if (rolesU != null) { if (rolesV == null) { return(false); } if (!rolesV.dataEquals(rolesU)) { return(false); } } else { if (rolesV != null) { return(false); } } } } } } else { if (this.roles != null) { return(false); } } if (mData.selfBindFieldItemBags != null) { if (this.selfBindFieldItemBags == null) { return(false); } if (this.selfBindFieldItemBags.size() != mData.selfBindFieldItemBags.size()) { return(false); } IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsR = mData.selfBindFieldItemBags; if (!this.selfBindFieldItemBags.isEmpty()) { int selfBindFieldItemBagsKFreeValue = this.selfBindFieldItemBags.getFreeValue(); int[] selfBindFieldItemBagsKKeys = this.selfBindFieldItemBags.getKeys(); FieldItemBagBindData[] selfBindFieldItemBagsVValues = this.selfBindFieldItemBags.getValues(); for (int selfBindFieldItemBagsKI = selfBindFieldItemBagsKKeys.Length - 1; selfBindFieldItemBagsKI >= 0; --selfBindFieldItemBagsKI) { int selfBindFieldItemBagsK = selfBindFieldItemBagsKKeys[selfBindFieldItemBagsKI]; if (selfBindFieldItemBagsK != selfBindFieldItemBagsKFreeValue) { FieldItemBagBindData selfBindFieldItemBagsV = selfBindFieldItemBagsVValues[selfBindFieldItemBagsKI]; FieldItemBagBindData selfBindFieldItemBagsU = selfBindFieldItemBagsR.get(selfBindFieldItemBagsK); if (selfBindFieldItemBagsU != null) { if (selfBindFieldItemBagsV == null) { return(false); } if (!selfBindFieldItemBagsV.dataEquals(selfBindFieldItemBagsU)) { return(false); } } else { if (selfBindFieldItemBagsV != null) { return(false); } } } } } } else { if (this.selfBindFieldItemBags != null) { return(false); } } if (mData.bindVisionUnits != null) { if (this.bindVisionUnits == null) { return(false); } if (this.bindVisionUnits.size() != mData.bindVisionUnits.size()) { return(false); } IntObjectMap <UnitSimpleData> bindVisionUnitsR = mData.bindVisionUnits; if (!this.bindVisionUnits.isEmpty()) { int bindVisionUnitsKFreeValue = this.bindVisionUnits.getFreeValue(); int[] bindVisionUnitsKKeys = this.bindVisionUnits.getKeys(); UnitSimpleData[] bindVisionUnitsVValues = this.bindVisionUnits.getValues(); for (int bindVisionUnitsKI = bindVisionUnitsKKeys.Length - 1; bindVisionUnitsKI >= 0; --bindVisionUnitsKI) { int bindVisionUnitsK = bindVisionUnitsKKeys[bindVisionUnitsKI]; if (bindVisionUnitsK != bindVisionUnitsKFreeValue) { UnitSimpleData bindVisionUnitsV = bindVisionUnitsVValues[bindVisionUnitsKI]; UnitSimpleData bindVisionUnitsU = bindVisionUnitsR.get(bindVisionUnitsK); if (bindVisionUnitsU != null) { if (bindVisionUnitsV == null) { return(false); } if (!bindVisionUnitsV.dataEquals(bindVisionUnitsU)) { return(false); } } else { if (bindVisionUnitsV != null) { return(false); } } } } } } else { if (this.bindVisionUnits != null) { return(false); } } if (mData.battleData != null) { if (this.battleData == null) { return(false); } if (!this.battleData.dataEquals(mData.battleData)) { return(false); } } else { if (this.battleData != null) { return(false); } } return(true); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is SceneEnterData)) { return; } SceneEnterData mData = (SceneEnterData)data; if (mData.hero != null) { this.hero = (UnitData)mData.hero.clone(); } else { this.hero = null; } if (mData.units != null) { if (this.units != null) { this.units.clear(); this.units.ensureCapacity(mData.units.size()); } else { this.units = new SList <UnitData>(); } SList <UnitData> unitsT = this.units; if (!mData.units.isEmpty()) { UnitData[] unitsVValues = mData.units.getValues(); for (int unitsVI = 0, unitsVLen = mData.units.length(); unitsVI < unitsVLen; ++unitsVI) { UnitData unitsV = unitsVValues[unitsVI]; UnitData unitsU; if (unitsV != null) { unitsU = (UnitData)unitsV.clone(); } else { unitsU = null; nullObjError("unitsU"); } unitsT.add(unitsU); } } } else { this.units = null; nullObjError("units"); } if (mData.roles != null) { if (this.roles != null) { this.roles.clear(); this.roles.ensureCapacity(mData.roles.size()); } else { this.roles = new LongObjectMap <SceneRoleData>(mData.roles.size()); } LongObjectMap <SceneRoleData> rolesT = this.roles; if (!mData.roles.isEmpty()) { SceneRoleData[] rolesVValues = mData.roles.getValues(); for (int rolesVI = rolesVValues.Length - 1; rolesVI >= 0; --rolesVI) { SceneRoleData rolesV = rolesVValues[rolesVI]; if (rolesV != null) { SceneRoleData rolesU; if (rolesV != null) { rolesU = (SceneRoleData)rolesV.clone(); } else { rolesU = null; nullObjError("rolesU"); } rolesT.put(rolesU.playerID, rolesU); } } } } else { this.roles = null; nullObjError("roles"); } if (mData.selfBindFieldItemBags != null) { if (this.selfBindFieldItemBags != null) { this.selfBindFieldItemBags.clear(); this.selfBindFieldItemBags.ensureCapacity(mData.selfBindFieldItemBags.size()); } else { this.selfBindFieldItemBags = new IntObjectMap <FieldItemBagBindData>(mData.selfBindFieldItemBags.size()); } IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsT = this.selfBindFieldItemBags; if (!mData.selfBindFieldItemBags.isEmpty()) { FieldItemBagBindData[] selfBindFieldItemBagsVValues = mData.selfBindFieldItemBags.getValues(); for (int selfBindFieldItemBagsVI = selfBindFieldItemBagsVValues.Length - 1; selfBindFieldItemBagsVI >= 0; --selfBindFieldItemBagsVI) { FieldItemBagBindData selfBindFieldItemBagsV = selfBindFieldItemBagsVValues[selfBindFieldItemBagsVI]; if (selfBindFieldItemBagsV != null) { FieldItemBagBindData selfBindFieldItemBagsU; if (selfBindFieldItemBagsV != null) { selfBindFieldItemBagsU = (FieldItemBagBindData)selfBindFieldItemBagsV.clone(); } else { selfBindFieldItemBagsU = null; } selfBindFieldItemBagsT.put(selfBindFieldItemBagsU.instanceID, selfBindFieldItemBagsU); } } } } else { this.selfBindFieldItemBags = null; } if (mData.bindVisionUnits != null) { if (this.bindVisionUnits != null) { this.bindVisionUnits.clear(); this.bindVisionUnits.ensureCapacity(mData.bindVisionUnits.size()); } else { this.bindVisionUnits = new IntObjectMap <UnitSimpleData>(mData.bindVisionUnits.size()); } IntObjectMap <UnitSimpleData> bindVisionUnitsT = this.bindVisionUnits; if (!mData.bindVisionUnits.isEmpty()) { int bindVisionUnitsKFreeValue = mData.bindVisionUnits.getFreeValue(); int[] bindVisionUnitsKKeys = mData.bindVisionUnits.getKeys(); UnitSimpleData[] bindVisionUnitsVValues = mData.bindVisionUnits.getValues(); for (int bindVisionUnitsKI = bindVisionUnitsKKeys.Length - 1; bindVisionUnitsKI >= 0; --bindVisionUnitsKI) { int bindVisionUnitsK = bindVisionUnitsKKeys[bindVisionUnitsKI]; if (bindVisionUnitsK != bindVisionUnitsKFreeValue) { UnitSimpleData bindVisionUnitsV = bindVisionUnitsVValues[bindVisionUnitsKI]; int bindVisionUnitsW; UnitSimpleData bindVisionUnitsU; bindVisionUnitsW = bindVisionUnitsK; if (bindVisionUnitsV != null) { bindVisionUnitsU = (UnitSimpleData)bindVisionUnitsV.clone(); } else { bindVisionUnitsU = null; } bindVisionUnitsT.put(bindVisionUnitsW, bindVisionUnitsU); } } } } else { this.bindVisionUnits = null; } if (mData.battleData != null) { this.battleData = (BattleSceneData)mData.battleData.clone(); } else { this.battleData = null; } }
/// <summary> /// 写入字节流(简版) /// </summary> protected override void toWriteBytesSimple(BytesWriteStream stream) { if (this.hero != null) { stream.writeBoolean(true); stream.writeDataSimpleNotNull(this.hero); } else { stream.writeBoolean(false); } if (this.units != null) { stream.writeLen(this.units.size()); if (!this.units.isEmpty()) { UnitData[] unitsVValues = this.units.getValues(); for (int unitsVI = 0, unitsVLen = this.units.length(); unitsVI < unitsVLen; ++unitsVI) { UnitData unitsV = unitsVValues[unitsVI]; if (unitsV != null) { stream.writeDataSimpleNotNull(unitsV); } else { nullObjError("unitsV"); } } } } else { nullObjError("units"); } if (this.roles != null) { stream.writeLen(this.roles.size()); if (!this.roles.isEmpty()) { SceneRoleData[] rolesVValues = this.roles.getValues(); for (int rolesVI = rolesVValues.Length - 1; rolesVI >= 0; --rolesVI) { SceneRoleData rolesV = rolesVValues[rolesVI]; if (rolesV != null) { if (rolesV != null) { stream.writeDataSimpleNotNull(rolesV); } else { nullObjError("rolesV"); } } } } } else { nullObjError("roles"); } if (this.selfBindFieldItemBags != null) { stream.writeBoolean(true); stream.writeLen(this.selfBindFieldItemBags.size()); if (!this.selfBindFieldItemBags.isEmpty()) { FieldItemBagBindData[] selfBindFieldItemBagsVValues = this.selfBindFieldItemBags.getValues(); for (int selfBindFieldItemBagsVI = selfBindFieldItemBagsVValues.Length - 1; selfBindFieldItemBagsVI >= 0; --selfBindFieldItemBagsVI) { FieldItemBagBindData selfBindFieldItemBagsV = selfBindFieldItemBagsVValues[selfBindFieldItemBagsVI]; if (selfBindFieldItemBagsV != null) { if (selfBindFieldItemBagsV != null) { stream.writeBoolean(true); stream.writeDataSimpleNotNull(selfBindFieldItemBagsV); } else { stream.writeBoolean(false); } } } } } else { stream.writeBoolean(false); } if (this.bindVisionUnits != null) { stream.writeBoolean(true); stream.writeLen(this.bindVisionUnits.size()); if (!this.bindVisionUnits.isEmpty()) { int bindVisionUnitsKFreeValue = this.bindVisionUnits.getFreeValue(); int[] bindVisionUnitsKKeys = this.bindVisionUnits.getKeys(); UnitSimpleData[] bindVisionUnitsVValues = this.bindVisionUnits.getValues(); for (int bindVisionUnitsKI = bindVisionUnitsKKeys.Length - 1; bindVisionUnitsKI >= 0; --bindVisionUnitsKI) { int bindVisionUnitsK = bindVisionUnitsKKeys[bindVisionUnitsKI]; if (bindVisionUnitsK != bindVisionUnitsKFreeValue) { UnitSimpleData bindVisionUnitsV = bindVisionUnitsVValues[bindVisionUnitsKI]; stream.writeInt(bindVisionUnitsK); if (bindVisionUnitsV != null) { stream.writeBoolean(true); stream.writeDataSimpleNotNull(bindVisionUnitsV); } else { stream.writeBoolean(false); } } } } } else { stream.writeBoolean(false); } if (this.battleData != null) { stream.writeBoolean(true); stream.writeDataSimpleNotNull(this.battleData); } else { stream.writeBoolean(false); } }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); if (stream.readBoolean()) { BaseData heroT = stream.readDataFullNotNull(); if (heroT != null) { if (heroT is UnitData) { this.hero = (UnitData)heroT; } else { this.hero = new UnitData(); if (!(heroT.GetType().IsAssignableFrom(typeof(UnitData)))) { stream.throwTypeReadError(typeof(UnitData), heroT.GetType()); } this.hero.shadowCopy(heroT); } } else { this.hero = null; } } else { this.hero = null; } int unitsLen = stream.readLen(); if (this.units != null) { this.units.clear(); this.units.ensureCapacity(unitsLen); } else { this.units = new SList <UnitData>(); } SList <UnitData> unitsT = this.units; for (int unitsI = unitsLen - 1; unitsI >= 0; --unitsI) { UnitData unitsV; BaseData unitsVT = stream.readDataFullNotNull(); if (unitsVT != null) { if (unitsVT is UnitData) { unitsV = (UnitData)unitsVT; } else { unitsV = new UnitData(); if (!(unitsVT.GetType().IsAssignableFrom(typeof(UnitData)))) { stream.throwTypeReadError(typeof(UnitData), unitsVT.GetType()); } unitsV.shadowCopy(unitsVT); } } else { unitsV = null; } unitsT.add(unitsV); } int rolesLen = stream.readLen(); if (this.roles != null) { this.roles.clear(); this.roles.ensureCapacity(rolesLen); } else { this.roles = new LongObjectMap <SceneRoleData>(rolesLen); } LongObjectMap <SceneRoleData> rolesT = this.roles; for (int rolesI = rolesLen - 1; rolesI >= 0; --rolesI) { SceneRoleData rolesV; BaseData rolesVT = stream.readDataFullNotNull(); if (rolesVT != null) { if (rolesVT is SceneRoleData) { rolesV = (SceneRoleData)rolesVT; } else { rolesV = new SceneRoleData(); if (!(rolesVT.GetType().IsAssignableFrom(typeof(SceneRoleData)))) { stream.throwTypeReadError(typeof(SceneRoleData), rolesVT.GetType()); } rolesV.shadowCopy(rolesVT); } } else { rolesV = null; } rolesT.put(rolesV.playerID, rolesV); } if (stream.readBoolean()) { int selfBindFieldItemBagsLen = stream.readLen(); if (this.selfBindFieldItemBags != null) { this.selfBindFieldItemBags.clear(); this.selfBindFieldItemBags.ensureCapacity(selfBindFieldItemBagsLen); } else { this.selfBindFieldItemBags = new IntObjectMap <FieldItemBagBindData>(selfBindFieldItemBagsLen); } IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsT = this.selfBindFieldItemBags; for (int selfBindFieldItemBagsI = selfBindFieldItemBagsLen - 1; selfBindFieldItemBagsI >= 0; --selfBindFieldItemBagsI) { FieldItemBagBindData selfBindFieldItemBagsV; if (stream.readBoolean()) { BaseData selfBindFieldItemBagsVT = stream.readDataFullNotNull(); if (selfBindFieldItemBagsVT != null) { if (selfBindFieldItemBagsVT is FieldItemBagBindData) { selfBindFieldItemBagsV = (FieldItemBagBindData)selfBindFieldItemBagsVT; } else { selfBindFieldItemBagsV = new FieldItemBagBindData(); if (!(selfBindFieldItemBagsVT.GetType().IsAssignableFrom(typeof(FieldItemBagBindData)))) { stream.throwTypeReadError(typeof(FieldItemBagBindData), selfBindFieldItemBagsVT.GetType()); } selfBindFieldItemBagsV.shadowCopy(selfBindFieldItemBagsVT); } } else { selfBindFieldItemBagsV = null; } } else { selfBindFieldItemBagsV = null; } selfBindFieldItemBagsT.put(selfBindFieldItemBagsV.instanceID, selfBindFieldItemBagsV); } } else { this.selfBindFieldItemBags = null; } if (stream.readBoolean()) { int bindVisionUnitsLen = stream.readLen(); if (this.bindVisionUnits != null) { this.bindVisionUnits.clear(); this.bindVisionUnits.ensureCapacity(bindVisionUnitsLen); } else { this.bindVisionUnits = new IntObjectMap <UnitSimpleData>(bindVisionUnitsLen); } IntObjectMap <UnitSimpleData> bindVisionUnitsT = this.bindVisionUnits; for (int bindVisionUnitsI = bindVisionUnitsLen - 1; bindVisionUnitsI >= 0; --bindVisionUnitsI) { int bindVisionUnitsK; UnitSimpleData bindVisionUnitsV; bindVisionUnitsK = stream.readInt(); if (stream.readBoolean()) { BaseData bindVisionUnitsVT = stream.readDataFullNotNull(); if (bindVisionUnitsVT != null) { if (bindVisionUnitsVT is UnitSimpleData) { bindVisionUnitsV = (UnitSimpleData)bindVisionUnitsVT; } else { bindVisionUnitsV = new UnitSimpleData(); if (!(bindVisionUnitsVT.GetType().IsAssignableFrom(typeof(UnitSimpleData)))) { stream.throwTypeReadError(typeof(UnitSimpleData), bindVisionUnitsVT.GetType()); } bindVisionUnitsV.shadowCopy(bindVisionUnitsVT); } } else { bindVisionUnitsV = null; } } else { bindVisionUnitsV = null; } bindVisionUnitsT.put(bindVisionUnitsK, bindVisionUnitsV); } } else { this.bindVisionUnits = null; } if (stream.readBoolean()) { BaseData battleDataT = stream.readDataFullNotNull(); if (battleDataT != null) { if (battleDataT is BattleSceneData) { this.battleData = (BattleSceneData)battleDataT; } else { this.battleData = new BattleSceneData(); if (!(battleDataT.GetType().IsAssignableFrom(typeof(BattleSceneData)))) { stream.throwTypeReadError(typeof(BattleSceneData), battleDataT.GetType()); } this.battleData.shadowCopy(battleDataT); } } else { this.battleData = null; } } else { this.battleData = null; } stream.endReadObj(); }
public override void dispose() { base.dispose(); _data = null; }
public override void init() { base.init(); _data = _role.getData(); }