Add luck points

This commit is contained in:
Gabriel Augendre 2022-10-30 22:02:21 +01:00
parent aa5fb92640
commit 991de5a5bb
3 changed files with 132 additions and 82 deletions

View file

@ -211,6 +211,38 @@
</div> </div>
</th> </th>
<td id="recovery-points-remaining">{{ character.recovery_points_remaining }}</td> <td id="recovery-points-remaining">{{ character.recovery_points_remaining }}</td>
<tr>
<th scope="row">PC max</th>
<td>{{ character.luck_points_max }}</td>
</tr>
<tr>
<th scope="row"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-title="[1 dé de vie + {{ character.modifier_constitution|add:character.level }}] PV">
PC restants
<div class="btn-group btn-group-sm" role="group">
<button
hx-get="{% url "character:luck_points_change" pk=character.pk %}?value=-1"
hx-target="#luck-points-remaining"
hx-swap="innerHTML"
type="button"
class="btn btn-danger">-</button>
<button
hx-get="{% url "character:luck_points_change" pk=character.pk %}?value=1"
hx-target="#luck-points-remaining"
hx-swap="innerHTML"
type="button"
class="btn btn-success">+</button>
<button
hx-get="{% url "character:luck_points_change" pk=character.pk %}?value=max"
hx-target="#luck-points-remaining"
hx-swap="innerHTML"
type="button"
class="btn btn-outline-success">max</button>
</div>
</th>
<td id="luck-points-remaining">{{ character.luck_points_remaining }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -12,6 +12,11 @@ urlpatterns = [
views.character_recovery_points_change, views.character_recovery_points_change,
name="recovery_points_change", name="recovery_points_change",
), ),
path(
"<int:pk>/luck_points_change",
views.character_luck_points_change,
name="luck_points_change",
),
path("<int:pk>/notes_change", views.character_notes_change, name="notes_change"), path("<int:pk>/notes_change", views.character_notes_change, name="notes_change"),
path( path(
"<int:pk>/equipment_change", "<int:pk>/equipment_change",

View file

@ -53,6 +53,19 @@ def character_recovery_points_change(request: WSGIRequest, pk: int) -> HttpRespo
return HttpResponse(value) return HttpResponse(value)
@login_required
def character_luck_points_change(request: WSGIRequest, pk: int) -> HttpResponse:
character = get_object_or_404(
Character.objects.only("luck_points_remaining", "luck_points_max"), pk=pk
)
value = get_updated_value(
request, character.luck_points_remaining, character.luck_points_max
)
character.luck_points_remaining = value
character.save(update_fields=["luck_points_remaining"])
return HttpResponse(value)
def get_updated_value( def get_updated_value(
request: WSGIRequest, remaining_value: int, max_value: int request: WSGIRequest, remaining_value: int, max_value: int
) -> int: ) -> int: