Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[🇪🇸] Cambiar el requerimiento de permisos para el actor en el combate automatizado #101

Closed
Lui-Sin opened this issue Jan 7, 2022 · 4 comments · Fixed by #111
Closed
Milestone

Comments

@Lui-Sin
Copy link

Lui-Sin commented Jan 7, 2022

Información

  • Versión de Foundry: X.X.X
  • Versión del sistema: Sí
  • Navegador: Desktop
  • Tipo de sugerencia: Mejora

Descripción

El combate automatizado requiere que un jugador sea dueño de la ficha de su personaje y además que la tenga seleccionada como "perfil" al entrar en la partida. Esto limita enormemente el uso del combate automatizado con personajes que, por ejemplo, tengan familiares o criaturas controladas ya que los ataques y defensas solo puede realizarlas el GM, resultando en una mecánica muy tediosa.

Deberíamos mirar si se puede eliminar el requerimiento de que la ficha tenga que estar seleccionada como perfil para agilizar el combate y que el jugador no tenga que estar cambiando de perfil una o dos veces por turno de combate.

@Eryx5502
Copy link
Contributor

Eryx5502 commented Feb 7, 2022

Esto podría solucionarse cambiando la forma en que se obtiene el token cuando un usuario lanza el asistente de combate

const token = this.game.scenes?.current?.tokens.find(t => t.data.actorId === this.user.character!.id);

Tal cual está, coge el token del personaje que tienes seleccionado como "perfil". Sin embargo, cuando el máster es quien lanza el asistente se coge el token seleccionado.

const selectedToken = this.game.scenes?.current?.tokens.find(t => (t.object as any)?._controlled);

Aún no conozco el código tanto, pero me parece que podría cambiarse sin problema para usar siempre el token seleccionado. ¿Se me escapa algo, @Linkaynn?

@Linkaynn
Copy link
Contributor

Linkaynn commented Feb 7, 2022

@Eryx5502

La razón por la que cogí el token que tenía asignado el jugador como perfil era debido a que es la unica forma que encontré para gestionar que X persona tiene permisos para "atacar" con Y fichas.

Foundry tiene un sistema para gestionar quien es owner o tiene permisos para hacer ciertas cosas, pero no recuerdo que solucionara 100% el problema.

Aquí veo dos formas de atacar el problema:

  • Ver si es posible con lo que ya nos da Foundry, discernir si un usuario tiene permisos "para atacar"
  • Hacer un servicio custom que permita al GM decidir con qué fichas puede atacar cada usuario

Lo primero tiene el problema de que si Foundry cambia, nosotros tendremos que tocar eso, con el segundo punto, tardarémos más pero es más fiable ante actualizaciones.

Mi opinión es ir por la segunda opción.

@Eryx5502
Copy link
Contributor

Eryx5502 commented Feb 7, 2022

@Linkaynn

Entiendo lo que dices. Igual estoy siendo ingenuo, pero diría que podemos mantenernos con los permisos de foundry. Foundry sólo deja seleccionar tokens owned por un usuario, y usa este mismo permiso para decidir qué jugador puede mover qué token. Sin haberlo pensado demasiado, mi impresión es que con los permisos definidos por foundry debería ser suficiente:

  • Se daría owner a los jugadores que puedan manejar al personaje (tanto mover su token como atacar con él).
  • Se daría observer o limited a los jugadores que pueden ver la ficha pero no pueden manejar el personaje.
  • Se daría none a los jugadores que no pueden ver la ficha del pj ni tampoco manejarlo.

Si esta lógica fuese suficiente, la solución más sencilla sería cambiar lo que decía en mi mensaje anterior. ¿Se os ocurren escenarios en que este manejo de permisos no sea suficiente?

@Linkaynn
Copy link
Contributor

Linkaynn commented Feb 7, 2022

@Eryx5502

Si con observer o limited el usuario puede visualizar el token dentro de niebla de guerra, lo veo genial usar el owner para este caso 👍🏻

@Eryx5502 Eryx5502 linked a pull request Feb 9, 2022 that will close this issue
@Linkaynn Linkaynn added this to the v1.14.0 milestone Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants