public static Entity CreatePlayerTank(string name, Vector3 worldPosition, int maxHp) { var agent = new AgentModule(name, "AgentController", worldPosition); var userInput = new UserAgentModule(Team.Blue); var collision = new CollisionModule(); var health = new HealthModule(maxHp, maxHp); var pathfinding = new PathfindingModule(true); // only used for debugging var tankModel = new PrefabModule <TankModelBehaviour>("TankModel"); tankModel.component.SetColor(Color.green); tankModel.component.SetAgent(agent); tankModel.component.SetHealth(health); return(new Entity(health, agent, tankModel, collision, pathfinding, userInput)); }
public static Entity CreateNpcTank(string name, Vector3 worldPosition, int maxHp, Team team) { var agent = new AgentModule(name, "AgentController", worldPosition); var npc = new NpcAgentModule(team); var collision = new CollisionModule(); var health = new HealthModule(maxHp, maxHp); var pathfinding = new PathfindingModule(); var tankModel = new PrefabModule <TankModelBehaviour>("TankModel"); tankModel.component.SetColor(team == Team.Red ? Color.red : Color.cyan); tankModel.component.SetAgent(agent); tankModel.component.SetHealth(health); return(new Entity(health, agent, tankModel, collision, pathfinding, npc)); }
public override void LinkToDependency(Module dependency) { if (dependency.IsModuleType(ModuleType.Agent)) { _agent = dependency as AgentModule; } if (dependency.IsModuleType(ModuleType.Health)) { _health = dependency as HealthModule; _health.OnHealthChanged += OnHealthChanged; } if (dependency.IsModuleType(ModuleType.Collision)) { (dependency as CollisionModule).collision.SetTriggerCallback(OnTrigger); } }
public void SetAgent(AgentModule agent) { _agent = agent; }