public override uint SelectSkillTarget(SkillSlot _slot) { uint num = this.lockTargetID; SelectEnemyType selectEnemyType = SelectEnemyType.SelectLowHp; Player ownerPlayer = ActorHelper.GetOwnerPlayer(ref this.actorPtr); SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; uint dwSkillTargetFilter = skill.cfgData.dwSkillTargetFilter; if (skill.cfgData.bSkillTargetRule == 2) { num = this.actor.ObjID; } else { ActorRoot useSkillTargetLockAttackMode = _slot.skillIndicator.GetUseSkillTargetLockAttackMode(); if (useSkillTargetLockAttackMode != null) { if (this.IsValidLockTargetID(useSkillTargetLockAttackMode.ObjID)) { num = useSkillTargetLockAttackMode.ObjID; Singleton <NetLockAttackTarget> .GetInstance().SendLockAttackTarget(num); } } else if (!this.IsValidLockTargetID(this.lockTargetID)) { if (ownerPlayer != null) { selectEnemyType = ownerPlayer.AttackTargetMode; } int srchR; if (skill.AppointType == 1) { srchR = skill.GetMaxSearchDistance(_slot.GetSkillLevel()); } else { srchR = skill.cfgData.iMaxAttackDistance; } if (selectEnemyType == SelectEnemyType.SelectLowHp) { num = Singleton <AttackModeTargetSearcher> .GetInstance().SearchLowestHpTarget(ref this.actorPtr, srchR, dwSkillTargetFilter, true, SearchTargetPriority.CommonAttack); } else { num = Singleton <AttackModeTargetSearcher> .GetInstance().SearchNearestTarget(ref this.actorPtr, srchR, dwSkillTargetFilter, true, SearchTargetPriority.CommonAttack); } if (this.IsValidLockTargetID(num)) { Singleton <NetLockAttackTarget> .GetInstance().SendLockAttackTarget(num); } } else if (!this.IsValidSkillTargetID(num, dwSkillTargetFilter)) { num = 0u; } } return(num); }
public override VInt3 SelectSkillDirection(SkillSlot _slot) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; return((VInt3)_slot.skillIndicator.GetUseSkillDirection()); }
public override uint SelectSkillTarget(SkillSlot _slot) { int iMaxSearchDistance = 0; int dwSkillTargetFilter = 0; ActorRoot useSkillTargetLockAttackMode = null; uint lockTargetID = this.lockTargetID; SelectEnemyType selectLowHp = SelectEnemyType.SelectLowHp; Player ownerPlayer = ActorHelper.GetOwnerPlayer(ref this.actorPtr); SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; if (skill.cfgData.dwSkillTargetRule == 2) { return(base.actor.ObjID); } useSkillTargetLockAttackMode = _slot.skillIndicator.GetUseSkillTargetLockAttackMode(); if (useSkillTargetLockAttackMode != null) { if (this.IsValidLockTargetID(useSkillTargetLockAttackMode.ObjID)) { lockTargetID = useSkillTargetLockAttackMode.ObjID; Singleton <NetLockAttackTarget> .GetInstance().SendLockAttackTarget(lockTargetID); } return(lockTargetID); } if (!this.IsValidLockTargetID(this.lockTargetID)) { if (ownerPlayer != null) { selectLowHp = ownerPlayer.AttackTargetMode; } dwSkillTargetFilter = (int)skill.cfgData.dwSkillTargetFilter; if (skill.AppointType == SkillRangeAppointType.Target) { iMaxSearchDistance = skill.cfgData.iMaxSearchDistance; } else { iMaxSearchDistance = (int)skill.cfgData.iMaxAttackDistance; } if (selectLowHp == SelectEnemyType.SelectLowHp) { lockTargetID = Singleton <AttackModeTargetSearcher> .GetInstance().SearchLowestHpTarget(ref this.actorPtr, iMaxSearchDistance, dwSkillTargetFilter); } else { lockTargetID = Singleton <AttackModeTargetSearcher> .GetInstance().SearchNearestTarget(ref this.actorPtr, iMaxSearchDistance, dwSkillTargetFilter); } if (this.IsValidLockTargetID(lockTargetID)) { Singleton <NetLockAttackTarget> .GetInstance().SendLockAttackTarget(lockTargetID); } } return(lockTargetID); }
public ActorRoot GetUseSkillTargetDefaultAttackMode() { if (!this.bUseAdvanceSelect) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (this.skillSlot.NextSkillObj == null) ? this.skillSlot.SkillObj : this.skillSlot.NextSkillObj; this.targetActor = instance.SelectTarget((SkillTargetRule)skill.cfgData.dwSkillTargetRule, this.skillSlot); } return(this.targetActor); }
public override VInt3 SelectSkillDirection(SkillSlot _slot) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; if (Singleton <GameInput> .GetInstance().IsSmartUse()) { return(instance.SelectTargetDir((SkillTargetRule)skill.cfgData.dwSkillTargetRule, _slot)); } return((VInt3)_slot.skillIndicator.GetUseSkillDirection()); }
public void SetUseSkillTarget() { ActorRoot actorRoot = null; Skill skill = (this.skillSlot.NextSkillObj != null) ? this.skillSlot.NextSkillObj : this.skillSlot.SkillObj; if (skill == null || skill.cfgData == null || skill.cfgData.bWheelType == 1 || skill.cfgData.bWheelType == 6) { return; } uint dwSkillTargetFilter = skill.cfgData.dwSkillTargetFilter; if (skill.cfgData.bRangeAppointType == 1) { if (!this.bUseAdvanceSelect && this.guidePrefab != null && this.guideSelectActive) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); actorRoot = instance.SelectTarget((SkillTargetRule)skill.cfgData.bSkillTargetRule, this.skillSlot); } else if (this.bUseAdvanceSelect && this.effectPrefab != null && this.effectSelectActive) { int srchR; if (this.skillSlot.SlotType != SkillSlotType.SLOT_SKILL_0) { srchR = skill.cfgData.iMaxAttackDistance; } else { srchR = skill.GetMaxSearchDistance(this.skillSlot.GetSkillLevel()); } uint num = 2u; num |= dwSkillTargetFilter; actorRoot = Singleton <SectorTargetSearcher> .GetInstance().GetEnemyTarget(this.skillSlot.Actor, srchR, this.useSkillDirection, 50f, num); if (actorRoot == null) { uint num2 = 1u; num2 |= dwSkillTargetFilter; actorRoot = Singleton <SectorTargetSearcher> .GetInstance().GetEnemyTarget(this.skillSlot.Actor, srchR, this.useSkillDirection, 50f, num2); } } if (actorRoot != this.targetActor) { this.StopCommonAttackTargetEffect(this.targetActor); if (this.skillSlot.Actor && actorRoot != null && actorRoot.ObjID != this.skillSlot.Actor.handle.ObjID) { this.PlayCommonAttackTargetEffect(actorRoot); } this.targetActor = actorRoot; } } }
public override bool SelectSkillPos(SkillSlot _slot, out VInt3 _position) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; if (_slot.skillIndicator.IsAllowUseSkill()) { _position = (VInt3)_slot.skillIndicator.GetUseSkillPosition(); return(true); } _position = VInt3.zero; return(false); }
public override uint SelectSkillTarget(SkillSlot _slot) { ActorRoot useSkillTargetDefaultAttackMode; SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj == null) ? _slot.SkillObj : _slot.NextSkillObj; if (Singleton <GameInput> .GetInstance().IsSmartUse() || (skill.cfgData.dwSkillTargetRule == 2)) { useSkillTargetDefaultAttackMode = instance.SelectTarget((SkillTargetRule)skill.cfgData.dwSkillTargetRule, _slot); } else { useSkillTargetDefaultAttackMode = _slot.skillIndicator.GetUseSkillTargetDefaultAttackMode(); } return((useSkillTargetDefaultAttackMode == null) ? 0 : useSkillTargetDefaultAttackMode.ObjID); }
public override bool SelectSkillPos(SkillSlot _slot, out VInt3 _position) { bool result = false; SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj != null) ? _slot.NextSkillObj : _slot.SkillObj; if (Singleton <GameInput> .GetInstance().IsSmartUse()) { _position = instance.SelectTargetPos((SkillTargetRule)skill.cfgData.bSkillTargetRule, _slot, out result); return(result); } if (_slot.skillIndicator.IsAllowUseSkill()) { _position = (VInt3)_slot.skillIndicator.GetUseSkillPosition(); return(true); } _position = VInt3.zero; return(false); }
public override uint SelectSkillTarget(SkillSlot _slot) { SkillSelectControl instance = Singleton <SkillSelectControl> .GetInstance(); Skill skill = (_slot.NextSkillObj != null) ? _slot.NextSkillObj : _slot.SkillObj; ActorRoot actorRoot; if (Singleton <GameInput> .GetInstance().IsSmartUse() || skill.cfgData.bSkillTargetRule == 2) { actorRoot = instance.SelectTarget((SkillTargetRule)skill.cfgData.bSkillTargetRule, _slot); } else { actorRoot = _slot.skillIndicator.GetUseSkillTargetDefaultAttackMode(); } if (actorRoot != null && base.IsValidTargetID(actorRoot.ObjID)) { this.SetShowTargetInfo(actorRoot.ObjID); } return((actorRoot != null) ? actorRoot.ObjID : 0u); }