Exemplo n.º 1
0
    void create(Group group, Entity entity, int index, IComponent component)
    {
        PlayerModelComponent playerModel = (PlayerModelComponent)component;

        Entity player = _pool.CreateEntity()
                        .AddPlayer(playerModel.name)
                        .AddPosition(new Vector2(0.0f, 0.0f))
                        .AddVelocity(new Vector2(0.0f, 0.0f))
                        .AddVelocityLimit(playerModel.maxVelocity)
                        .AddCollision(CollisionTypes.Player)
                        .AddHealth(playerModel.health)
                        .AddResource(Resource.Player);

        player.AddParent(getChildren(player, playerModel));
    }
Exemplo n.º 2
0
    public void Execute(List <Entity> entities)
    {
        PlayerModelComponent component = _group.GetSingleEntity().playerModel;

        foreach (Entity e in entities)
        {
            if (e.isWeapon)
            {
                e.AddMissileSpawner(0.0f, component.missileSpawnDelay, Resource.Missile, 0.0f, component.missileVelocity, CollisionTypes.Player);
            }
            else
            {
                e.RemoveMissileSpawner();
            }
        }
    }
Exemplo n.º 3
0
    List<Entity> getChildren(Entity parent, PlayerModelComponent component)
    {
        List<Entity> children = new List<Entity>();
        if (component.hasHomeMissile) {
             children.Add(_pool.CreateEntity()
                 .AddRelativePosition(0.5f, 0.5f)
                 .AddPosition(new Vector2(0.0f, 0.0f))
                 .AddChild(parent)
                 .AddHomeMissileSpawner(0.0f, component.homeMissileSpawnDelay, Resource.Missile, component.homeMissileVelocity, CollisionTypes.Player)
                 .AddResource(Resource.Weapon));
             children.Add(_pool.CreateEntity()
                 .AddRelativePosition(-0.5f, 0.5f)
                 .AddPosition(new Vector2(0.0f, 0.0f))
                 .AddChild(parent)
                 .AddHomeMissileSpawner(0.0f, component.homeMissileSpawnDelay, Resource.Missile, component.homeMissileVelocity, CollisionTypes.Player)
                 .AddResource(Resource.Weapon));
        }

        addNonRemovable(children);
        return children;
    }
Exemplo n.º 4
0
    List <Entity> getChildren(Entity parent, PlayerModelComponent component)
    {
        List <Entity> children = new List <Entity>();

        if (component.hasHomeMissile)
        {
            children.Add(_pool.CreateEntity()
                         .AddRelativePosition(0.5f, 0.5f)
                         .AddPosition(new Vector2(0.0f, 0.0f))
                         .AddChild(parent)
                         .AddHomeMissileSpawner(0.0f, component.homeMissileSpawnDelay, Resource.Missile, component.homeMissileVelocity, CollisionTypes.Player)
                         .AddResource(Resource.Weapon));
            children.Add(_pool.CreateEntity()
                         .AddRelativePosition(-0.5f, 0.5f)
                         .AddPosition(new Vector2(0.0f, 0.0f))
                         .AddChild(parent)
                         .AddHomeMissileSpawner(0.0f, component.homeMissileSpawnDelay, Resource.Missile, component.homeMissileVelocity, CollisionTypes.Player)
                         .AddResource(Resource.Weapon));
        }

        addNonRemovable(children);
        return(children);
    }