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

        FightUnitIdentityData mData = (FightUnitIdentityData)data;

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

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

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

        return(true);
    }
Esempio n. 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);
                }
            }
        }
    }
Esempio n. 3
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        base.toShadowCopy(data);

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

        FightUnitIdentityData mData = (FightUnitIdentityData)data;

        this.id              = mData.id;
        this.level           = mData.level;
        this.controlPlayerID = mData.controlPlayerID;
    }
Esempio n. 4
0
    /** 通过身份数据初始化战斗单位 */
    public void initByFightUnit(FightUnitIdentityData data)
    {
        int fightUnitID = data.getFightUnitID();

        if (fightUnitID <= 0)
        {
            Ctrl.throwError("不能没有战斗单位ID");
        }

        //主控标记
        isSelfControl = data.controlPlayerID == GameC.player.role.playerID;

        initByFightUnitConfig(fightUnitID);
        initByFightUnitLevelConfig(fightUnitID, data.level);
    }
Esempio n. 5
0
    //傀儡

    /** 创建傀儡数据 */
    public UnitData createPuppetData(int id, int level, Unit master, int lastTime)
    {
        UnitData data = GameC.factory.createUnitData();

        PuppetIdentityData iData;

        if (data.identity == null)
        {
            data.identity = iData = toCreatePuppetIdentityData();
            iData.type    = UnitType.Puppet;
            //初始化部分
            initBaseUnitData(data);
            initFightUnitData(data);
        }
        else
        {
            iData = (PuppetIdentityData)data.identity;
        }

        iData.id               = id;
        iData.level            = level;
        iData.masterInstanceID = master.instanceID;

        FightUnitIdentityData masterIdentity = master.getUnitData().getFightIdentity();

        //归属和控制
        iData.force           = masterIdentity.force;
        iData.playerID        = masterIdentity.playerID;
        iData.controlPlayerID = masterIdentity.controlPlayerID;

        data.fightDataLogic.initByFightUnit(iData);

        //剩余时间
        iData.lastTime = lastTime;

        return(data);
    }