Beispiel #1
0
 /// <summary>
 /// 初始化初值
 /// </summary>
 public override void initDefault()
 {
     this.identity = new UnitIdentityData();
     this.identity.initDefault();
     this.normal = new UnitNormalData();
     this.normal.initDefault();
 }
Beispiel #2
0
    public override void init()
    {
        base.init();

        UnitIdentityData identity = _iData = _data.identity;

        playerID = identity.playerID;


        if (BaseC.constlist.unit_canFight(identity.type))
        {
            FightUnitIdentityData fData = (FightUnitIdentityData)identity;

            //有控制单位
            if ((controlPlayerID = fData.controlPlayerID) != -1)
            {
                //控主分离
                if (fData.playerID != fData.controlPlayerID)
                {
                    _isCUnitNotM = true;
                }
                else
                {
                    _isCUnitNotM = !BaseC.constlist.unit_isMUnit(_unit.type);
                }
            }
        }
    }
Beispiel #3
0
 /// <summary>
 /// 回池
 /// </summary>
 protected override void toRelease(DataPool pool)
 {
     this.instanceID = 0;
     this.identity   = null;
     this.pos        = null;
     this.attributes = null;
 }
Beispiel #4
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is UnitInfoData))
        {
            return;
        }

        UnitInfoData mData = (UnitInfoData)data;

        if (mData.identity != null)
        {
            this.identity = (UnitIdentityData)mData.identity.clone();
        }
        else
        {
            this.identity = null;
            nullObjError("identity");
        }

        if (mData.avatar != null)
        {
            this.avatar = (UnitAvatarData)mData.avatar.clone();
        }
        else
        {
            this.avatar = null;
        }
    }
Beispiel #5
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        BaseData identityT = stream.readDataFullNotNull();

        if (identityT != null)
        {
            if (identityT is UnitIdentityData)
            {
                this.identity = (UnitIdentityData)identityT;
            }
            else
            {
                this.identity = new UnitIdentityData();
                if (!(identityT.GetType().IsAssignableFrom(typeof(UnitIdentityData))))
                {
                    stream.throwTypeReadError(typeof(UnitIdentityData), identityT.GetType());
                }
                this.identity.shadowCopy(identityT);
            }
        }
        else
        {
            this.identity = null;
        }

        if (stream.readBoolean())
        {
            BaseData avatarT = stream.readDataFullNotNull();
            if (avatarT != null)
            {
                if (avatarT is UnitAvatarData)
                {
                    this.avatar = (UnitAvatarData)avatarT;
                }
                else
                {
                    this.avatar = new UnitAvatarData();
                    if (!(avatarT.GetType().IsAssignableFrom(typeof(UnitAvatarData))))
                    {
                        stream.throwTypeReadError(typeof(UnitAvatarData), avatarT.GetType());
                    }
                    this.avatar.shadowCopy(avatarT);
                }
            }
            else
            {
                this.avatar = null;
            }
        }
        else
        {
            this.avatar = null;
        }

        stream.endReadObj();
    }
Beispiel #6
0
    public override void dispose()
    {
        base.dispose();

        controlPlayerID = -1;
        playerID        = -1;
        _iData          = null;
        _unitName       = "";
    }
Beispiel #7
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is UnitInfoData))
        {
            return;
        }

        UnitInfoData mData = (UnitInfoData)data;

        this.identity = mData.identity;
        this.avatar   = mData.avatar;
    }
Beispiel #8
0
    /// <summary>
    /// 读取字节流(简版)
    /// </summary>
    protected override void toReadBytesSimple(BytesReadStream stream)
    {
        this.identity = (UnitIdentityData)stream.readDataSimpleNotNull();

        if (stream.readBoolean())
        {
            this.avatar = (UnitAvatarData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.avatar = null;
        }
    }
Beispiel #9
0
 /// <summary>
 /// 回池
 /// </summary>
 protected override void toRelease(DataPool pool)
 {
     this.instanceID = 0;
     this.identity   = null;
     this.normal     = null;
     this.pos        = null;
     this.avatar     = null;
     this.move       = null;
     this.fight      = null;
     this.fightEx    = null;
     this.ai         = null;
     this.func       = null;
 }
Beispiel #10
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is UnitIdentityData))
        {
            return;
        }

        UnitIdentityData mData = (UnitIdentityData)data;

        this.type     = mData.type;
        this.playerID = mData.playerID;
        this.force    = mData.force;
    }
Beispiel #11
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is UnitSimpleData))
        {
            return;
        }

        UnitSimpleData mData = (UnitSimpleData)data;

        this.instanceID = mData.instanceID;
        this.identity   = mData.identity;
        this.pos        = mData.pos;
        this.attributes = mData.attributes;
    }
Beispiel #12
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is UnitData))
        {
            return;
        }

        UnitData mData = (UnitData)data;

        this.instanceID = mData.instanceID;
        this.identity   = mData.identity;
        this.normal     = mData.normal;
        this.pos        = mData.pos;
        this.avatar     = mData.avatar;
        this.move       = mData.move;
        this.fight      = mData.fight;
        this.fightEx    = mData.fightEx;
        this.ai         = mData.ai;
        this.func       = mData.func;
    }
Beispiel #13
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        UnitIdentityData mData = (UnitIdentityData)data;

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

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

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

        return(true);
    }
Beispiel #14
0
    /// <summary>
    /// 读取字节流(简版)
    /// </summary>
    protected override void toReadBytesSimple(BytesReadStream stream)
    {
        this.instanceID = stream.readInt();

        this.identity = (UnitIdentityData)stream.readDataSimpleNotNull();

        if (stream.readBoolean())
        {
            this.pos = (UnitPosData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.pos = null;
        }

        int attributesLen = stream.readLen();

        if (this.attributes != null)
        {
            this.attributes.clear();
            this.attributes.ensureCapacity(attributesLen);
        }
        else
        {
            this.attributes = new IntIntMap(attributesLen);
        }

        IntIntMap attributesT = this.attributes;

        for (int attributesI = attributesLen - 1; attributesI >= 0; --attributesI)
        {
            int attributesK;
            int attributesV;
            attributesK = stream.readInt();

            attributesV = stream.readInt();

            attributesT.put(attributesK, attributesV);
        }
    }
Beispiel #15
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is UnitSimpleData))
        {
            return;
        }

        UnitSimpleData mData = (UnitSimpleData)data;

        this.instanceID = mData.instanceID;

        if (mData.identity != null)
        {
            this.identity = (UnitIdentityData)mData.identity.clone();
        }
        else
        {
            this.identity = null;
            nullObjError("identity");
        }

        if (mData.pos != null)
        {
            this.pos = (UnitPosData)mData.pos.clone();
        }
        else
        {
            this.pos = null;
        }

        if (mData.attributes != null)
        {
            if (this.attributes != null)
            {
                this.attributes.clear();
                this.attributes.ensureCapacity(mData.attributes.size());
            }
            else
            {
                this.attributes = new IntIntMap(mData.attributes.size());
            }

            IntIntMap attributesT = this.attributes;
            if (!mData.attributes.isEmpty())
            {
                int   attributesKFreeValue = mData.attributes.getFreeValue();
                int[] attributesKKeys      = mData.attributes.getKeys();
                int[] attributesVValues    = mData.attributes.getValues();
                for (int attributesKI = attributesKKeys.Length - 1; attributesKI >= 0; --attributesKI)
                {
                    int attributesK = attributesKKeys[attributesKI];
                    if (attributesK != attributesKFreeValue)
                    {
                        int attributesV = attributesVValues[attributesKI];
                        int attributesW;
                        int attributesU;
                        attributesW = attributesK;

                        attributesU = attributesV;

                        attributesT.put(attributesW, attributesU);
                    }
                }
            }
        }
        else
        {
            this.attributes = null;
            nullObjError("attributes");
        }
    }
Beispiel #16
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        this.instanceID = stream.readInt();

        BaseData identityT = stream.readDataFullNotNull();

        if (identityT != null)
        {
            if (identityT is UnitIdentityData)
            {
                this.identity = (UnitIdentityData)identityT;
            }
            else
            {
                this.identity = new UnitIdentityData();
                if (!(identityT.GetType().IsAssignableFrom(typeof(UnitIdentityData))))
                {
                    stream.throwTypeReadError(typeof(UnitIdentityData), identityT.GetType());
                }
                this.identity.shadowCopy(identityT);
            }
        }
        else
        {
            this.identity = null;
        }

        BaseData normalT = stream.readDataFullNotNull();

        if (normalT != null)
        {
            if (normalT is UnitNormalData)
            {
                this.normal = (UnitNormalData)normalT;
            }
            else
            {
                this.normal = new UnitNormalData();
                if (!(normalT.GetType().IsAssignableFrom(typeof(UnitNormalData))))
                {
                    stream.throwTypeReadError(typeof(UnitNormalData), normalT.GetType());
                }
                this.normal.shadowCopy(normalT);
            }
        }
        else
        {
            this.normal = null;
        }

        if (stream.readBoolean())
        {
            BaseData posT = stream.readDataFullNotNull();
            if (posT != null)
            {
                if (posT is UnitPosData)
                {
                    this.pos = (UnitPosData)posT;
                }
                else
                {
                    this.pos = new UnitPosData();
                    if (!(posT.GetType().IsAssignableFrom(typeof(UnitPosData))))
                    {
                        stream.throwTypeReadError(typeof(UnitPosData), posT.GetType());
                    }
                    this.pos.shadowCopy(posT);
                }
            }
            else
            {
                this.pos = null;
            }
        }
        else
        {
            this.pos = null;
        }

        if (stream.readBoolean())
        {
            BaseData avatarT = stream.readDataFullNotNull();
            if (avatarT != null)
            {
                if (avatarT is UnitAvatarData)
                {
                    this.avatar = (UnitAvatarData)avatarT;
                }
                else
                {
                    this.avatar = new UnitAvatarData();
                    if (!(avatarT.GetType().IsAssignableFrom(typeof(UnitAvatarData))))
                    {
                        stream.throwTypeReadError(typeof(UnitAvatarData), avatarT.GetType());
                    }
                    this.avatar.shadowCopy(avatarT);
                }
            }
            else
            {
                this.avatar = null;
            }
        }
        else
        {
            this.avatar = null;
        }

        if (stream.readBoolean())
        {
            BaseData moveT = stream.readDataFullNotNull();
            if (moveT != null)
            {
                if (moveT is UnitMoveData)
                {
                    this.move = (UnitMoveData)moveT;
                }
                else
                {
                    this.move = new UnitMoveData();
                    if (!(moveT.GetType().IsAssignableFrom(typeof(UnitMoveData))))
                    {
                        stream.throwTypeReadError(typeof(UnitMoveData), moveT.GetType());
                    }
                    this.move.shadowCopy(moveT);
                }
            }
            else
            {
                this.move = null;
            }
        }
        else
        {
            this.move = null;
        }

        if (stream.readBoolean())
        {
            BaseData fightT = stream.readDataFullNotNull();
            if (fightT != null)
            {
                if (fightT is UnitFightData)
                {
                    this.fight = (UnitFightData)fightT;
                }
                else
                {
                    this.fight = new UnitFightData();
                    if (!(fightT.GetType().IsAssignableFrom(typeof(UnitFightData))))
                    {
                        stream.throwTypeReadError(typeof(UnitFightData), fightT.GetType());
                    }
                    this.fight.shadowCopy(fightT);
                }
            }
            else
            {
                this.fight = null;
            }
        }
        else
        {
            this.fight = null;
        }

        if (stream.readBoolean())
        {
            BaseData fightExT = stream.readDataFullNotNull();
            if (fightExT != null)
            {
                if (fightExT is UnitFightExData)
                {
                    this.fightEx = (UnitFightExData)fightExT;
                }
                else
                {
                    this.fightEx = new UnitFightExData();
                    if (!(fightExT.GetType().IsAssignableFrom(typeof(UnitFightExData))))
                    {
                        stream.throwTypeReadError(typeof(UnitFightExData), fightExT.GetType());
                    }
                    this.fightEx.shadowCopy(fightExT);
                }
            }
            else
            {
                this.fightEx = null;
            }
        }
        else
        {
            this.fightEx = null;
        }

        if (stream.readBoolean())
        {
            BaseData aiT = stream.readDataFullNotNull();
            if (aiT != null)
            {
                if (aiT is UnitAIData)
                {
                    this.ai = (UnitAIData)aiT;
                }
                else
                {
                    this.ai = new UnitAIData();
                    if (!(aiT.GetType().IsAssignableFrom(typeof(UnitAIData))))
                    {
                        stream.throwTypeReadError(typeof(UnitAIData), aiT.GetType());
                    }
                    this.ai.shadowCopy(aiT);
                }
            }
            else
            {
                this.ai = null;
            }
        }
        else
        {
            this.ai = null;
        }

        if (stream.readBoolean())
        {
            BaseData funcT = stream.readDataFullNotNull();
            if (funcT != null)
            {
                if (funcT is UnitFuncData)
                {
                    this.func = (UnitFuncData)funcT;
                }
                else
                {
                    this.func = new UnitFuncData();
                    if (!(funcT.GetType().IsAssignableFrom(typeof(UnitFuncData))))
                    {
                        stream.throwTypeReadError(typeof(UnitFuncData), funcT.GetType());
                    }
                    this.func.shadowCopy(funcT);
                }
            }
            else
            {
                this.func = null;
            }
        }
        else
        {
            this.func = null;
        }

        stream.endReadObj();
    }
Beispiel #17
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        this.instanceID = stream.readInt();

        BaseData identityT = stream.readDataFullNotNull();

        if (identityT != null)
        {
            if (identityT is UnitIdentityData)
            {
                this.identity = (UnitIdentityData)identityT;
            }
            else
            {
                this.identity = new UnitIdentityData();
                if (!(identityT.GetType().IsAssignableFrom(typeof(UnitIdentityData))))
                {
                    stream.throwTypeReadError(typeof(UnitIdentityData), identityT.GetType());
                }
                this.identity.shadowCopy(identityT);
            }
        }
        else
        {
            this.identity = null;
        }

        if (stream.readBoolean())
        {
            BaseData posT = stream.readDataFullNotNull();
            if (posT != null)
            {
                if (posT is UnitPosData)
                {
                    this.pos = (UnitPosData)posT;
                }
                else
                {
                    this.pos = new UnitPosData();
                    if (!(posT.GetType().IsAssignableFrom(typeof(UnitPosData))))
                    {
                        stream.throwTypeReadError(typeof(UnitPosData), posT.GetType());
                    }
                    this.pos.shadowCopy(posT);
                }
            }
            else
            {
                this.pos = null;
            }
        }
        else
        {
            this.pos = null;
        }

        int attributesLen = stream.readLen();

        if (this.attributes != null)
        {
            this.attributes.clear();
            this.attributes.ensureCapacity(attributesLen);
        }
        else
        {
            this.attributes = new IntIntMap(attributesLen);
        }

        IntIntMap attributesT = this.attributes;

        for (int attributesI = attributesLen - 1; attributesI >= 0; --attributesI)
        {
            int attributesK;
            int attributesV;
            attributesK = stream.readInt();

            attributesV = stream.readInt();

            attributesT.put(attributesK, attributesV);
        }

        stream.endReadObj();
    }
Beispiel #18
0
 /// <summary>
 /// 初始化初值
 /// </summary>
 public override void initDefault()
 {
     this.identity = new UnitIdentityData();
     this.identity.initDefault();
     this.attributes = new IntIntMap();
 }
Beispiel #19
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is UnitData))
        {
            return;
        }

        UnitData mData = (UnitData)data;

        this.instanceID = mData.instanceID;

        if (mData.identity != null)
        {
            this.identity = (UnitIdentityData)mData.identity.clone();
        }
        else
        {
            this.identity = null;
            nullObjError("identity");
        }

        if (mData.normal != null)
        {
            this.normal = (UnitNormalData)mData.normal.clone();
        }
        else
        {
            this.normal = null;
            nullObjError("normal");
        }

        if (mData.pos != null)
        {
            this.pos = (UnitPosData)mData.pos.clone();
        }
        else
        {
            this.pos = null;
        }

        if (mData.avatar != null)
        {
            this.avatar = (UnitAvatarData)mData.avatar.clone();
        }
        else
        {
            this.avatar = null;
        }

        if (mData.move != null)
        {
            this.move = (UnitMoveData)mData.move.clone();
        }
        else
        {
            this.move = null;
        }

        if (mData.fight != null)
        {
            this.fight = (UnitFightData)mData.fight.clone();
        }
        else
        {
            this.fight = null;
        }

        if (mData.fightEx != null)
        {
            this.fightEx = (UnitFightExData)mData.fightEx.clone();
        }
        else
        {
            this.fightEx = null;
        }

        if (mData.ai != null)
        {
            this.ai = (UnitAIData)mData.ai.clone();
        }
        else
        {
            this.ai = null;
        }

        if (mData.func != null)
        {
            this.func = (UnitFuncData)mData.func.clone();
        }
        else
        {
            this.func = null;
        }
    }
Beispiel #20
0
 /// <summary>
 /// 回池
 /// </summary>
 protected override void toRelease(DataPool pool)
 {
     this.identity = null;
     this.avatar   = null;
 }
Beispiel #21
0
    /// <summary>
    /// 读取字节流(简版)
    /// </summary>
    protected override void toReadBytesSimple(BytesReadStream stream)
    {
        this.instanceID = stream.readInt();

        this.identity = (UnitIdentityData)stream.readDataSimpleNotNull();

        this.normal = (UnitNormalData)stream.readDataSimpleNotNull();

        if (stream.readBoolean())
        {
            this.pos = (UnitPosData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.pos = null;
        }

        if (stream.readBoolean())
        {
            this.avatar = (UnitAvatarData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.avatar = null;
        }

        if (stream.readBoolean())
        {
            this.move = (UnitMoveData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.move = null;
        }

        if (stream.readBoolean())
        {
            this.fight = (UnitFightData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.fight = null;
        }

        if (stream.readBoolean())
        {
            this.fightEx = (UnitFightExData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.fightEx = null;
        }

        if (stream.readBoolean())
        {
            this.ai = (UnitAIData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.ai = null;
        }

        if (stream.readBoolean())
        {
            this.func = (UnitFuncData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.func = null;
        }
    }