# SPDX-License-Identifier: GPL-3.0
# Copyright (c) 2014-2023 William Edwards <shadowapex@gmail.com>, Benjamin Bean <superman2k5@gmail.com>
from __future__ import annotations
import random
from dataclasses import dataclass
from typing import final
from tuxemon.event.eventaction import EventAction
from tuxemon.locale import T
[docs]@final
@dataclass
class SetPlayerNameAction(EventAction):
"""
Set player name without opening the input screen.
Script usage:
.. code-block::
set_player_name name
set_player_name name:name
Script parameters:
choice: single name or multiple names
separated by ":" (random choice)
the names must be in the PO file
"""
name = "set_player_name"
choice: str
[docs] def start(self) -> None:
name: str = ""
if self.choice.find(":"):
elements = self.choice.split(":")
name = random.choice(elements)
else:
name = self.choice
self.session.player.name = T.translate(name)