/// <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); }
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); } } } }
/// <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; }
/** 通过身份数据初始化战斗单位 */ 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); }
//傀儡 /** 创建傀儡数据 */ 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); }