/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.instanceID = 0; this.id = 0; this.level = 0; this.targetData = null; }
protected override void toMakeTargets(SList <Unit> list, Unit from, Unit attacker, Unit mTarget, SkillTargetData tData, AttackConfig config, AttackLevelConfig levelConfig) { if (!_g13) { _m13 = instance.Type.GetMethod("toMakeTargets", 7); _g13 = true; } if (_m13 != null && !_b13) { _b13 = true; _p7[0] = list; _p7[1] = from; _p7[2] = attacker; _p7[3] = mTarget; _p7[4] = tData; _p7[5] = config; _p7[6] = levelConfig; appdomain.Invoke(_m13, instance, _p7); _p7[0] = null; _p7[1] = null; _p7[2] = null; _p7[3] = null; _p7[4] = null; _p7[5] = null; _p7[6] = null; _b13 = false; } else { base.toMakeTargets(list, from, attacker, mTarget, tData, config, levelConfig); } }
public override void clear() { this.currentSkillID = -1; this.currentSkillLevel = 0; this.currentTarget = null; this.currentSkillStep = 0; }
public static SkillTargetData createByNone() { SkillTargetData re = new SkillTargetData(); re.type = SkillTargetType.None; return(re); }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); this.instanceID = stream.readInt(); this.id = stream.readInt(); this.level = stream.readInt(); BaseData targetDataT = stream.readDataFullNotNull(); if (targetDataT != null) { if (targetDataT is SkillTargetData) { this.targetData = (SkillTargetData)targetDataT; } else { this.targetData = new SkillTargetData(); if (!(targetDataT.GetType().IsAssignableFrom(typeof(SkillTargetData)))) { stream.throwTypeReadError(typeof(SkillTargetData), targetDataT.GetType()); } this.targetData.shadowCopy(targetDataT); } } else { this.targetData = null; } stream.endReadObj(); }
/// <summary> /// 判断两个目标是否相等 /// </summary> public bool isEquals(SkillTargetData data) { int t; if ((t = type) != data.type) { return(false); } switch (t) { case SkillTargetType.Single: { return(targetInstanceID == data.targetInstanceID); } case SkillTargetType.Ground: { return(pos.isEquals(data.pos)); } case SkillTargetType.Direction: { return(dir.isEquals(data.dir)); } } return(true); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is BulletData)) { return; } BulletData mData = (BulletData)data; this.instanceID = mData.instanceID; this.id = mData.id; this.level = mData.level; if (mData.targetData != null) { this.targetData = (SkillTargetData)mData.targetData.clone(); } else { this.targetData = null; nullObjError("targetData"); } }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is SkillTargetData)) { return; } SkillTargetData mData = (SkillTargetData)data; this.type = mData.type; this.targetInstanceID = mData.targetInstanceID; if (mData.pos != null) { this.pos = (PosData)BytesControl.createData(PosData.dataID); this.pos.copy(mData.pos); } else { this.pos = null; } if (mData.dir != null) { this.dir = (DirData)BytesControl.createData(DirData.dataID); this.dir.copy(mData.dir); } else { this.dir = null; } this.arg = mData.arg; }
public override void sendCUnitAttack(int id, int level, SkillTargetData tData, SList <Unit> targets, bool isBulletFirstHit) { if (!_g35) { _m35 = instance.Type.GetMethod("sendCUnitAttack", 5); _g35 = true; } if (_m35 != null && !_b35) { _b35 = true; _p5[0] = id; _p5[1] = level; _p5[2] = tData; _p5[3] = targets; _p5[4] = isBulletFirstHit; appdomain.Invoke(_m35, instance, _p5); _p5[0] = null; _p5[1] = null; _p5[2] = null; _p5[3] = null; _p5[4] = null; _b35 = false; } else { base.sendCUnitAttack(id, level, tData, targets, isBulletFirstHit); } }
public override void onFrame(int delay) { base.onFrame(delay); if (_scene.method.canOperate()) { if (_isShooting && !_normalSkills.isEmpty()) { SkillData[] values = _normalSkills.getValues(); SkillData v; for (int i = 0, len = _normalSkills.size(); i < len; ++i) { v = values[i]; if (checkCanUseSkill(v)) { SkillTargetData tData = new SkillTargetData(); tData.type = SkillTargetType.Direction; tData.dir = new DirData(); makeShootDir(tData.dir); useSkill(v, tData); } } } } }
protected override void copyData() { base.copyData(); SkillTargetData targetDataTemp = targetData; if (targetDataTemp != null) { this.targetData = (SkillTargetData)targetDataTemp.clone(); } else { this.targetData = null; nullObjError("targetData"); } PosDirData posDirTemp = posDir; if (posDirTemp != null) { this.posDir = (PosDirData)BytesControl.createData(PosDirData.dataID); this.posDir.copy(posDirTemp); } else { this.posDir = null; nullObjError("posDir"); } }
public override void onAttackDamage(Unit from, AttackConfig config, SkillTargetData targetData) { if (!_g12) { _m12 = instance.Type.GetMethod("onAttackDamage", 3); _g12 = true; } if (_m12 != null && !_b12) { _b12 = true; _p3[0] = from; _p3[1] = config; _p3[2] = targetData; appdomain.Invoke(_m12, instance, _p3); _p3[0] = null; _p3[1] = null; _p3[2] = null; _b12 = false; } else { base.onAttackDamage(from, config, targetData); } }
/** 根据指令目标,设置追击 */ public void setPursueCommandTarget(SkillTargetData tData) { switch (tData.type) { case SkillTargetType.Single: { Unit targetUnit = _scene.getFightUnit(tData.targetInstanceID); if (targetUnit != null) { setPursueUnit(targetUnit); } else { _commandLogic.commandOver(); } } break; default: { _pursueSkillTarget = tData; } break; } }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is UnitFightExData)) { return; } UnitFightExData mData = (UnitFightExData)data; this.currentSkillID = mData.currentSkillID; this.currentSkillLevel = mData.currentSkillLevel; if (mData.currentTarget != null) { this.currentTarget = (SkillTargetData)mData.currentTarget.clone(); } else { this.currentTarget = null; } this.currentSkillStep = mData.currentSkillStep; this.currentSkillStepTimePass = mData.currentSkillStepTimePass; this.currentSkillBarID = mData.currentSkillBarID; this.currentSkillBarTimePass = mData.currentSkillBarTimePass; }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { SkillTargetData mData = (SkillTargetData)data; if (this.type != mData.type) { return(false); } if (this.targetInstanceID != mData.targetInstanceID) { return(false); } if (mData.pos != null) { if (this.pos == null) { return(false); } if (!this.pos.dataEquals(mData.pos)) { return(false); } } else { if (this.pos != null) { return(false); } } if (mData.dir != null) { if (this.dir == null) { return(false); } if (!this.dir.dataEquals(mData.dir)) { return(false); } } else { if (this.dir != null) { return(false); } } if (this.arg != mData.arg) { return(false); } return(true); }
/** 清理战斗AI数据 */ public void clearFightAI() { _fightState = UnitAIFightStateType.Idle; _pursueUnit.clear(); _pursueSkill = null; _pursueDistanceSq = 0f; _pursueSkillTarget = null; }
public static SkillTargetData createByTargetUnit(int instanceID) { SkillTargetData re = new SkillTargetData(); re.type = SkillTargetType.Single; re.targetInstanceID = instanceID; return(re); }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.bulletID = 0; this.bulletLevel = 0; this.target.release(pool); this.target = null; }
/** 清空 */ public override void clear() { config = null; levelConfig = null; targetData = null; fromInstanceID = -1; isBulletFirstHit = false; isRecorded = false; }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.skillID = 0; this.skillLevel = 0; this.targetData = null; this.posDir = null; }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.fromInstanceID = 0; this.target = null; this.id = 0; this.level = 0; this.damageDatas = null; }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.currentSkillID = 0; this.currentSkillLevel = 0; this.currentTarget = null; this.currentSkillStep = 0; this.currentSkillStepTimePass = 0; this.currentSkillBarID = 0; this.currentSkillBarTimePass = 0; }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { this.instanceID = stream.readInt(); this.id = stream.readInt(); this.level = stream.readInt(); this.targetData = (SkillTargetData)stream.readDataSimpleNotNull(); }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.attackID = 0; this.attackLevel = 0; this.targetData = null; this.targets = null; this.isBulletFirstHit = false; }
/** 清空当前数据 */ private void clearCurrentCommand() { _commandType = UnitAICommandType.None; _commandOver = null; _commandSkillData = null; _commandSkillTargetData = null; _commandMoveType = UnitMoveType.Run; _commandUnit.clear(); }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.skillID = 0; this.targetData.release(pool); this.targetData = null; this.posDir.release(pool); this.posDir = null; this.isSuspend = false; }
/// <summary> /// 创建实例 /// </summary> public static CUnitUseSkillRequest create(int instanceID, int skillID, SkillTargetData targetData, PosDirData posDir, bool isSuspend) { CUnitUseSkillRequest re = (CUnitUseSkillRequest)BytesControl.createRequest(dataID); re.instanceID = instanceID; re.skillID = skillID; re.targetData = targetData; re.posDir = posDir; re.isSuspend = isSuspend; return(re); }
/** 获取技能目标数据位置 */ public void getSkillTargetDirection(DirData re, PosData pos, SkillTargetData tData) { if (tData.type == SkillTargetType.None || tData.type == SkillTargetType.AttackScope) { Unit unit = _scene.getFightUnit(tData.targetInstanceID); if (unit != null) { re.copyDir(unit.pos.getDir()); } else { re.clear(); } return; } if (tData.targetInstanceID != -1) { Unit unit = _scene.getFightUnit(tData.targetInstanceID); if (unit != null) { _scene.pos.calculateDirByPos(re, pos, unit.pos.getPos()); } else { re.clear(); } } else { PosData pp = tData.pos; if (pp != null) { _scene.pos.calculateDirByPos(re, pos, pp); } else { if (tData.dir == null) { re.clear(); } else { re.copyDir(tData.dir); } } } }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { base.toReadBytesSimple(stream); this.skillID = stream.readInt(); this.skillLevel = stream.readInt(); this.targetData = (SkillTargetData)stream.readDataSimpleNotNull(); this.posDir = (PosDirData)stream.createData(PosDirData.dataID); this.posDir.readBytesSimple(stream); }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is BulletData)) { return; } BulletData mData = (BulletData)data; this.instanceID = mData.instanceID; this.id = mData.id; this.level = mData.level; this.targetData = mData.targetData; }