internal static void Execute(Command com) { if (!GameStarted) { Debug.LogError("BOOM"); return; } if (com.ControllerID != byte.MaxValue) { AgentController cont = AgentController.InstanceManagers [com.ControllerID]; cont.Execute(com); } else { BehaviourHelperManager.Execute(com); } DefaultMessageRaiser.Execute(com); }
public void Initialize() { Diplomacy.FastClear(); for (int i = 0; i < TeamManager.Teams.Count; i++) { Team team = TeamManager.Teams[i]; if (team != this) { this.SetAllegiance(team, AllegianceType.Neutral); } } TeamManager.UpdateDiplomacy(this); TeamManager.Teams.Add(this); this.SetAllegiance(this, AllegianceType.Friendly); MainController = AgentController.Create(); MainController.JoinTeam(this); }
public static LSProjectile Create(string projCode, LSAgent source, Vector3d offset, AllegianceType targetAllegiance, Func <LSAgent, bool> agentConditional, Action <LSAgent> hitEffect) { Vector2d relativePos = offset.ToVector2d(); Vector2d worldPos = relativePos.Rotated(source.Body.Rotation) + source.Body.Position; Vector3d pos = new Vector3d(worldPos.x, worldPos.y, offset.z + source.Body.HeightPos); AgentController sourceController = source.Controller; LSProjectile proj = Create( projCode, pos, agentConditional, (bite) => { return((sourceController.GetAllegiance(bite) & targetAllegiance) != 0); } , hitEffect); return(proj); }
internal static void Simulate() { MainNetworkHelper.Simulate(); DefaultMessageRaiser.EarlySimulate(); if (InfluenceCount == 0) { InfluenceSimulate(); InfluenceCount = InfluenceResolution - 1; if (FrameManager.CanAdvanceFrame == false) { Stalled = true; return; } Stalled = false; FrameManager.Simulate(); InfluenceFrameCount++; } else { InfluenceCount--; } if (Stalled || IsPaused) { return; } if (FrameCount == 0) { GameStart(); } BehaviourHelperManager.Simulate(); AgentController.Simulate(); PhysicsManager.Simulate(); CoroutineManager.Simulate(); InfluenceManager.Simulate(); ProjectileManager.Simulate(); LateSimulate(); FrameCount++; }
public static void Deactivate() { for (int i = 0; i < PeakGlobalID; i++) { if (GlobalAgentActive[i]) { DestroyAgent(GlobalAgents[i], true); } } CheckDestroyAgent(); for (int i = 0; i < DeathingAgents.PeakCount; i++) { if (DeathingAgents.arrayAllocation[i]) { RTSAgent agent = DeathingAgents[i]; AgentController.CompleteLife(agent); } } DeathingAgents.FastClear(); }
public static void RemoveController(AgentController agentController) { Selector.Clear(); AgentControllers.RemoveAt(agentController.PlayerIndex); if (MainController == agentController) { if (AgentControllers.Count == 0) { MainController = null; } else { for (int i = 0; i < AgentControllers.PeakCount; i++) { if (AgentControllers.arrayAllocation [i]) { MainController = AgentControllers [i]; break; } } } } }
protected override void OnExecute(Command com) { DefaultData target; if (com.TryGetData <DefaultData>(out target) && target.Is(DataType.UShort)) { IsFocused = true; IsHarvestMoving = false; Agent.Tag = AgentTag.Harvester; RTSAgent tempTarget; ushort targetValue = (ushort)target.Value; if (AgentController.TryGetAgentInstance(targetValue, out tempTarget)) { if (tempTarget != Agent) { if (tempTarget.MyAgentType == AgentType.Resource && !tempTarget.GetAbility <ResourceDeposit>().IsEmpty()) { StartHarvest(tempTarget); } else if (tempTarget.MyAgentType == AgentType.Building && currentLoadAmount > 0) { TargetStorage(tempTarget); } } else { StopHarvesting(true); } } else { Debug.Log("nope"); } } }
public static void ChangeController(RTSAgent agent, AgentController newCont) { AgentController leController = agent.Controller; if (leController != null) { leController.LocalAgentActive[agent.LocalID] = false; GlobalAgentActive[agent.GlobalID] = false; leController.OpenLocalIDs.Add(agent.LocalID); OpenGlobalIDs.Add(agent.GlobalID); if (newCont == null) { agent.InitializeController(null, 0, 0); } else { agent.Influencer.Deactivate(); newCont.AddAgent(agent); agent.Influencer.Initialize(); } } }
protected override void OnExecute(Command com) { DefaultData target; if (com.TryGetData <DefaultData>(out target) && target.Is(DataType.UShort)) { IsFocused = true; IsBuildMoving = false; LSAgent tempTarget; ushort targetValue = (ushort)target.Value; if (AgentController.TryGetAgentInstance(targetValue, out tempTarget)) { RTSAgent building = (RTSAgent)tempTarget; if (building && building.GetAbility <Structure>().UnderConstruction()) { SetBuilding(building); } } else { Debug.Log("nope"); } } }
internal static void Deactivate() { DefaultMessageRaiser.EarlyDeactivate(); if (GameStarted == false) { return; } Selector.Clear(); AgentController.Deactivate(); BehaviourHelperManager.Deactivate(); ProjectileManager.Deactivate(); EffectManager.Deactivate(); ClientManager.Deactivate(); ClientManager.Quit(); PhysicsManager.Deactivate(); GameStarted = false; LSServer.Deactivate(); DefaultMessageRaiser.LateDeactivate(); CoroutineManager.Deactivate(); DefaultMessageRaiser.Reset(); }
public void InitializeController(AgentController controller, ushort localID, ushort globalID) { this.Controller = controller; this.LocalID = localID; this.GlobalID = globalID; }
public AllegianceType GetAllegiance(AgentController otherController) { return(HasTeam && otherController.HasTeam ? MyTeam.GetAllegiance(otherController) : DiplomacyFlags[otherController.ControllerID]); }
public AttackerInfo(RTSAgent attacker, AgentController controller) { Attacker = attacker; Controller = controller; }
// public static Player MainController.Commander { get; private set; } // public static AgentController _environmentController { get; set; } #endregion #region Public public static void Initialize() { MainController = null; Players.FastClear(); AgentControllers.FastClear(); }
public AllegianceType GetAllegiance(AgentController controller) { return(GetAllegiance(controller.MyTeam)); }
public void AddController(AgentController controller) { controller.JoinTeam(this); }