private static void AddToController(AddToBehavior addToBehavior, BehaviorController controller) { switch (addToBehavior.Type) { case Type.Combat: controller.CombatController.AddRule(addToBehavior.Rule); break; case Type.Pull: controller.PullController.AddRule(addToBehavior.Rule); break; case Type.Buff: controller.BuffController.AddRule(addToBehavior.Rule); break; case Type.Rest: controller.RestController.AddRule(addToBehavior.Rule); break; case Type.PrePull: controller.PrePullController.AddRule(addToBehavior.Rule); break; default: throw new ArgumentOutOfRangeException(); } }
protected virtual void Awake() { behaviorController = GetComponent <BehaviorController>(); // 기본적으로 행동 시작을 허용하도록 합니다. onBehaviorStarted = () => allowStartBehavior = true; }
public void DoMotion(EnumDoMotionType doMotionType) { BehaviorController behaviorController = m_Property.GetBehaviorController(); if (behaviorController == null) { BehaviorManager.Instance.LogErrorFormat(m_Agent, "behaviorController is null"); return; } switch (doMotionType) { case EnumDoMotionType.DoSlide: behaviorController.Slide(0.1f); BehaviorManager.Instance.LogFormat(m_Agent, "DoMotion Slide"); break; case EnumDoMotionType.DoStop: behaviorController.StopMove(); BehaviorManager.Instance.LogFormat(m_Agent, "DoMotion StopMove"); break; default: break; } }
public CollisionProcessor(int _gridSize, FixedPoint w, FixedPoint h, FixedPoint bounds, BehaviorController bc) { gridSize = _gridSize; sceneWidth = w; sceneHeight = h; boundarySize = bounds; gridCellWidth = w / (FixedPoint)_gridSize; gridCellHeight = h / (FixedPoint)_gridSize; colliderGrid = new Body[gridSize][][]; for (int i = 0; i < _gridSize; i++) { colliderGrid[i] = new Body[gridSize][]; for (int j = 0; j < _gridSize; j++) { colliderGrid[i][j] = new Body[gridCapacity]; } } behaviorController = bc; }
void Start() { behaviorController = GetComponent <BehaviorController>(); var builder = new BehaviourTreeBuilder(); tree = builder.Sequence("gatherResources").Splice(CreateGatherTreeSequence()) .End() .Build(); }
public BehaviorForm(BehaviorController behaviorController) { InitializeComponent(); var executableFileInfo = new FileInfo(Application.ExecutablePath); string executableDirectoryName = executableFileInfo.DirectoryName; _ourDirectory = executableDirectoryName; PveBehaviorSettings.LoadSettings(); _behavior = behaviorController ?? new BehaviorController(); }
public static T GetBehavior <T>(this BehaviorController behavior_controller) where T : Behavior { if (!behavior_map.ContainsKey(behavior_controller) || !behavior_map[behavior_controller].ContainsKey(typeof(T))) { return(null); } return(behavior_map[behavior_controller][typeof(T)] as T); }
public static void Stop <T>(this BehaviorController behavior_controller) where T : Behavior { Behavior behavior = behavior_controller.GetBehavior <T>(); if (behavior == null) { return; } behavior.CleanUp(); GameObject.Destroy(behavior); behavior_map[behavior_controller][typeof(T)] = null; }
public void Start() { behaviorController = new BehaviorController(this); collisionController = new CollisionProcessor(10, sceneWidth, sceneHeight, boundarySize, behaviorController); mouseTarget = new Placeholder(2); MaterializeEntity(mouseTarget); mainMenu.start.onClick.AddListener(() => { paused = false; mainMenu.gameObject.SetActive(false); }); }
/// 临时代码 public bool IsHasLeapBreak() { SpacecraftEntity spacecraftEntity = GetMainPlayer(); if (spacecraftEntity != null) { BehaviorController behaviorController = spacecraftEntity.GetSyncTarget().gameObject.GetComponent <BehaviorController>(); if (behaviorController != null) { return(behaviorController.HasBehaviorType(BehaviorController.BehaviorType.BT_LeapBreak)); } } return(false); }
private void LoadBehavior() { _behavior = new BehaviorController(); ClearTree(BeComRules); ClearTree(BePullRules); ClearTree(BeRestRules); ClearTree(BeBuffRules); ClearTree(BePrePullRules); _behavior.Load(_ourDirectory + "\\Behaviors\\" + BeTBSelectBehavior.SelectedItem + ".xml"); _behavior.CombatController.GetRules.Sort(); _behavior.RestController.GetRules.Sort(); _behavior.PullController.GetRules.Sort(); _behavior.BuffController.GetRules.Sort(); _behavior.PrePullController.GetRules.Sort(); BeCombatDistance.Value = _behavior.CombatDistance; BePullDistance.Value = _behavior.PullDistance; BePrePullDistance.Value = _behavior.PrePullDistance; BeEnableAutoAttack.Checked = _behavior.UseAutoAttack; BeSendPet.Checked = _behavior.SendPet; BeGlobalCooldown.Value = _behavior.GlobalCooldown; foreach (Rule rule in _behavior.CombatController.GetRules) { AddCondition(rule, BeComRules); } foreach (Rule rule in _behavior.PullController.GetRules) { AddCondition(rule, BePullRules); } foreach (Rule rule in _behavior.RestController.GetRules) { AddCondition(rule, BeRestRules); } foreach (Rule rule in _behavior.BuffController.GetRules) { AddCondition(rule, BeBuffRules); } foreach (Rule rule in _behavior.PrePullController.GetRules) { AddCondition(rule, BePrePullRules); } BeTabs.Enabled = true; BeBarRuleModifier.Enabled = true; BeGMisc.Enabled = true; PveBehaviorSettings.LoadedBeharvior = BeTBSelectBehavior.SelectedItem.ToString(); PveBehaviorSettings.SaveSettings(); }
public override void BotStarted() { if (File.Exists(OurDirectory + "\\Behaviors\\" + PveBehaviorSettings.LoadedBeharvior + ".xml")) { Behavior = new BehaviorController(); Behavior.Load(OurDirectory + "\\Behaviors\\" + PveBehaviorSettings.LoadedBeharvior + ".xml"); } CheckBuffAndKeys(Behavior.PullController.GetRules); CheckBuffAndKeys(Behavior.CombatController.GetRules); CheckBuffAndKeys(Behavior.BuffController.GetRules); CheckBuffAndKeys(Behavior.RestController.GetRules); Behavior.CombatController.GetRules.Sort(); Behavior.BuffController.GetRules.Sort(); Behavior.BuffController.GetRules.Sort(); Behavior.PrePullController.GetRules.Sort(); Behavior.PullController.GetRules.Sort(); }
public static T Start <T>(this BehaviorController behavior_controller) where T : Behavior { GameObject host = behavior_controller.BehaviorHost; T behavior = host.GetComponent <T>(); if (behavior == null) { behavior = host.AddComponent <T>(); } if (!behavior_map.ContainsKey(behavior_controller)) { behavior_map[behavior_controller] = new Dictionary <System.Type, Behavior>(); } behavior_map[behavior_controller][typeof(T)] = behavior; return(behavior); }
public override void OnInitialize(ISpacecraftMotionProperty property) { m_Property = property; m_Transform = m_Property.GetRootTransform(); m_Rigidbody = m_Property.GetRigidbody(); m_GameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; InitializeMovionAttribute(); m_BehaviorController = m_Property.GetBehaviorController(); m_BehaviorController.Callback += OnBehaviorControllerEvent; RefreshSpacecraftMotionState(); /// TODO 创建运动流 if (m_Property.IsMain()) { HeroMoveHandler.StartHeroMoveStream(); } }
public override void Update(float _TimeElapsed) { Vector2 SteeringForce = VectorMath.Truncate(BehaviorController.CombinedSteeringForce(), MaxForce); Vector2 Acceleration = SteeringForce / this.Mass; this.Velocity += Acceleration * _TimeElapsed; this.Velocity = VectorMath.Truncate(this.Velocity, this.MaxSpeed); this.Location += this.Velocity * _TimeElapsed; if (this.Velocity.LengthSquared() > 0.00000001) { this.Heading = Vector2.Normalize(this.Velocity); this.Side = VectorMath.Perp(this.Heading); } this.Angle = VectorMath.VectorToAngle(this.Velocity); //this.Location = VectorMath.WrapAround(this.Location, 640, 480); }
private void BeTbNewBehaviorPreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { if (e.KeyValue == 13) { SaveCurrentBehavior(); _behavior = new BehaviorController { Name = BeTBNewBehavior.Text }; _behavior.ResetControllers(); ClearTree(BeComRules); ClearTree(BePullRules); ClearTree(BePrePullRules); ClearTree(BeBuffRules); ClearTree(BeRestRules); BeTBSelectBehavior.Items.Add(_behavior.Name); BeTBSelectBehavior.SelectedIndex = BeTBSelectBehavior.FindStringExact(_behavior.Name); BeTBNewBehavior.Text = "Enter name and press return to create new behavior."; PveBehaviorSettings.LoadedBeharvior = _behavior.Name; SaveCurrentBehavior(); LoadBehavior(); } }
/******************************************** OTHER FUNCTIONS *************************************************** * This section holds all other functions that might be called by the primitives to retrieve values for example.* * In principle, every function in this section should only be called from within primitives. * ****************************************************************************************************************/ /// <summary> /// Initialize the main manager /// </summary> private void Init() { this.resources = new List <GameObject>(); this.spawn_c = null; this.selected_unit = null; this.resource_spawn_area = new Area(this.game_area.center, this.game_area.width / 12.0f, this.game_area.height - 30.0f); if (Initializer.Actual != null) { if (!PropertiesManager.Actual.PropertiesAssigned) { PropertiesManager.Actual.AssignProperties(); } GroupController.ClearGroups(); BehaviorController.ClearBehaviors(); BehaviorController.LoadBehaviors(1, Initializer.Actual.red_team); BehaviorController.LoadBehaviors(2, Initializer.Actual.blue_team); this.spawn_delay = (float)60 / (float)Initializer.Actual.ressources_time; this.max_resources = Items.WarResource.MaxRessources; } this.InitTeams(); }
public override void Initialize(GameObject caster, GameObject target) { behaviorController = target.GetComponent <BehaviorController> (); }
private void BtnCreateClick(object sender, EventArgs e) { if (File.Exists(PVEBehaviorCombat.OurDirectory + "\\Behaviors\\" + TBName.Text + ".xml")) { DialogResult result = MessageBoxEx.Show("Behavior exist - overwrite?", "Behavior exist - overwrite?", MessageBoxButtons.OKCancel); switch (result) { case DialogResult.Cancel: return; } } var controller = new BehaviorController { SendPet = false, UseAutoAttack = true, PullDistance = 9, PrePullDistance = 30, CombatDistance = 3, GlobalCooldown = BeGlobalCooldown.Value, Name = TBName.Text, BuffController = new RuleController(), PrePullController = new RuleController(), PullController = new RuleController(), RestController = new RuleController(), CombatController = new RuleController() }; for (int i = 0; i < Normal.Items.Count; i++) { if (Normal.GetItemChecked(i)) { var addToBehavior = (AddToBehavior)Normal.Items[i]; AddToController(addToBehavior, controller); } } for (int i = 0; i < Spec1.Items.Count; i++) { if (Spec1.GetItemChecked(i)) { var addToBehavior = (AddToBehavior)Spec1.Items[i]; AddToController(addToBehavior, controller); } } for (int i = 0; i < Spec2.Items.Count; i++) { if (Spec2.GetItemChecked(i)) { var addToBehavior = (AddToBehavior)Spec2.Items[i]; AddToController(addToBehavior, controller); } } for (int i = 0; i < Spec3.Items.Count; i++) { if (Spec3.GetItemChecked(i)) { var addToBehavior = (AddToBehavior)Spec3.Items[i]; AddToController(addToBehavior, controller); } } AddToController((AddToBehavior)CBSelectSpecial.SelectedItem, controller); AddToController((AddToBehavior)CBSelectSpecial2.SelectedItem, controller); AddToController((AddToBehavior)CBSelectSpecial3.SelectedItem, controller); controller.Save(); PveBehaviorSettings.LoadedBeharvior = TBName.Text; PveBehaviorSettings.SaveSettings(); MessageBoxEx.Show("Created behavior, re-open the behavior settings window to load it"); }
void Start() { behaviorController = GetComponent <BehaviorController>(); }
protected virtual void Start() { behaviorController = GetComponent <BehaviorController> (); }