public void SetTarget(XEntity target) { if (target == null) { _target = null; } else { _target = target; if (XEntity.Valide(_target)) { _target_distance = (_entity.Position - _target.Position).magnitude; _tree.SetVariable(AITreeArg.TargetDistance, _target_distance); _tree.SetVariable(AITreeArg.TARGET, _target.EntityObject); } } }
private void SetTreeVariable(IXBehaviorTree tree) { tree.SetVariable(AITreeArg.TARGET, _target == null ? null : _target.EntityObject); tree.SetVariable(AITreeArg.MASTER, XEntityMgr.singleton.Player == null ? null : XEntityMgr.singleton.Player.EntityObject); tree.SetVariable(AITreeArg.IsOppoCastingSkill, _is_oppo_casting_skill); tree.SetVariable(AITreeArg.IsHurtOppo, _is_hurt_oppo); tree.SetVariable(AITreeArg.TargetDistance, _target_distance); tree.SetVariable(AITreeArg.MasterDistance, _master_distance); tree.SetVariable(AITreeArg.IsFixedInCD, _is_fixed_in_cd); tree.SetVariable(AITreeArg.NormalAttackProb, _normal_attack_prob); tree.SetVariable(AITreeArg.EnterFightRange, _enter_fight_range); tree.SetVariable(AITreeArg.FightTogetherDis, _fight_together_dis); tree.SetVariable(AITreeArg.MaxHP, _max_hp); tree.SetVariable(AITreeArg.CurrHP, _current_hp); tree.SetVariable(AITreeArg.MaxSupperArmor, _max_super_armor); tree.SetVariable(AITreeArg.CurrSuperArmor, _current_super_armor); tree.SetVariable(AITreeArg.EntityType, (int)_entity.Type); tree.SetVariable(AITreeArg.TargetRot, _target_rotation); tree.SetVariable(AITreeArg.AttackRange, _attack_range); tree.SetVariable(AITreeArg.MinKeepRange, _min_keep_range); tree.SetVariable(AITreeArg.IsCastingSkill, _is_casting_skill); tree.SetVariable(AITreeArg.IsFighting, _is_fighting); tree.SetVariable(AITreeArg.IsQteState, _is_qte_state); tree.SetVariable(AITreeArg.BornPos, _entity.Position); }