public virtual void Init(string hudLabelText, MyMwcObjectBuilder_SmallShip_Bot objectBuilder) { System.Diagnostics.Debug.Assert(objectBuilder.Faction != 0); //StringBuilder label = new StringBuilder(hudLabelText); TotalAliveBots++; string fixedHudLabelText = hudLabelText; if (string.IsNullOrEmpty(hudLabelText) || hudLabelText == GetFriendlyName()) { fixedHudLabelText = MyTextsWrapper.GetFormatString(MyTextsWrapperEnum.Ship); } base.Init(fixedHudLabelText, objectBuilder); Faction = objectBuilder.Faction; m_aiTemplate = MyBotAITemplates.GetTemplate(objectBuilder.AITemplate); Aggressivity = objectBuilder.Aggressivity; SeeDistance = objectBuilder.SeeDistance == 0 ? 1000 : objectBuilder.SeeDistance; SleepDistance = objectBuilder.SleepDistance == 0 ? 1000 : objectBuilder.SleepDistance; PatrolMode = objectBuilder.PatrolMode; ActiveAI = true; m_leaderId = objectBuilder.Leader; AITemplate.SetIdleBehavior(objectBuilder.IdleBehavior); LeaderLostEnabled = objectBuilder.LeaderLostEnabled; ActiveAI = ActiveAI; SetupWeapons(objectBuilder); SetupDifficulty(); //if (hudLabelText == GetFriendlyName()) //{ // label = new StringBuilder(""); //} //if (string.IsNullOrEmpty(hudLabelText) || hudLabelText == GetFriendlyName()) //{ // DisplayName = MyTextsWrapper.GetFormatString(MyTextsWrapperEnum.Ship); //} //MyHud.ChangeText(this, label, null, 10000, MyHudIndicatorFlagsEnum.SHOW_ALL); MyModelDummy dummy; if (GetModelLod0().Dummies.TryGetValue("destruction", out dummy)) { m_biochemEffectLocalMatrix = dummy.Matrix; } m_shock_time = -1; MyBotCoordinator.AddBot(this); InitSpoiledHolograms(); MyEntities.OnEntityRemove += MyEntities_OnEntityRemove; m_dangerZoneId = MyDangerZones.Instance.Register(this); MySession.Static.LinkEntities += OnLinkEntities; }
public void SetAITemplate(MyAITemplateEnum template) { MyBotAITemplate oldTemplate = m_aiTemplate; m_aiTemplate = MyBotAITemplates.GetTemplate(template); m_aiTemplate.SetIdleBehavior(oldTemplate.GetBehaviorType(BotDesireType.IDLE)); }