Source code for tuxemon.event.actions.set_player_template

# SPDX-License-Identifier: GPL-3.0
# Copyright (c) 2014-2023 William Edwards <shadowapex@gmail.com>, Benjamin Bean <superman2k5@gmail.com>
from __future__ import annotations

from dataclasses import dataclass
from typing import Union, final

from tuxemon.event.eventaction import EventAction


[docs]@final @dataclass class SetPlayerTemplateAction(EventAction): """ Switch template (sprite and combat_front). Please remember that if you change the combat_front, automatically will change the combat_back. Eg if you put xxx, it's going to add xxx_back.png if you choose a feminine sprite, then it's advisable: heroine if you choose a masculine sprite, then it's advisable: adventurer Script usage: .. code-block:: set_player_template <sprite>[,combat_front] Script parameters: sprite: must be inside mods/tuxemon/sprites (default = original) eg: adventurer_brown_back.png -> adventurer combat_front: must be inside mods/tuxemon/gfx/sprites/player eg: adventurer.png -> adventurer """ name = "set_player_template" sprite: str combat_front: Union[str, None] = None
[docs] def start(self) -> None: player = self.session.player for ele in player.template: # repristinate default sprite (gender_choice) if self.sprite == "default": if player.game_variables["gender_choice"] == "gender_male": ele.sprite_name = "adventurer" elif player.game_variables["gender_choice"] == "gender_female": ele.sprite_name = "heroine" else: ele.sprite_name = player.game_variables["gender_choice"] else: ele.sprite_name = self.sprite if self.combat_front is not None: ele.combat_front = self.combat_front player.load_sprites()