Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        public override void LinkToDependency(Module dependency)
        {
            if (dependency.IsModuleType(ModuleType.Agent))
            {
                _agent = dependency as AgentModule;
            }

            if (dependency.IsModuleType(ModuleType.Pathfinding))
            {
                _pathfinding = dependency as PathfindingModule;
            }

            if (dependency.IsModuleType(ModuleType.Health))
            {
                _health = dependency as HealthModule;
                _health.OnHealthChanged += OnHealthChanged;
            }

            if (dependency.IsModuleType(ModuleType.Collision))
            {
                (dependency as CollisionModule).collision.SetTriggerCallback(OnTrigger);
            }
        }