Skip to content
🚧 Esta documentação ainda estÔ em desenvolvimento e pode conter informações incompletas.

BuffsData

A classe BuffsData Ć© usada para definir buffs personalizados no jogo.

Construtor

def __init__(
    self,
    *,
    key:str,
    DisplayName:str,
    Duration:int,
    IconTexture:str,
    IconSpriteIndex:int,
    Description:Optional[str]=None,
    IsDebuff:Optional[bool]=None,
    GlowColor:Optional[str]=None, 
    MaxDuration:Optional[int]=None,
    Effects:Optional[Effects]=None,
    ActionsOnApply:Optional[list[str]]=None,
    CustomFields:Optional[dict[str,str]]=None
)

Parâmetros

Name Type Description
key (str) Identificação do buff
DisplayName (str) Nome de exibição do buff
Duration (int) Duração do buff
IconTexture (str) Identificação do asset de textura
IconSpriteIndex (int) Indice/Posição do asset de textura
Description (str, Optional) Descrição do buff
IsDebuff (bool, Optional) Se o buff (Status positivo) Ć© debuff (Status negativo)
GlowColor (str, Optional) Cor do brilho do buff
MaxDuration (int, Optional) Duração mÔxima do buff
Effects (Effects, Optional) Efeitos do buff
ActionsOnApply (list[str], Optional) AƧƵes a serem executadas quando o buff for aplicado
CustomFields (dict[str,str], Optional) Campos personalizados

Comportamento

...

Criando um novo objeto

ModEntry.py:

from StardewValley import Manifest, EditData
from StardewValley.helper import Helper
from StardewValley.Data import BuffsData, Effects

# Criando o objeto BuffsData
novo_buff = BuffsData(
    key = "author.modName_NomeBuff",
    DisplayName = "Nome do buff",
    duration = 180000, # Milisegundos | -2 para todo o dia
    IconTexture = "NomeBuff_texture", # Carregue sua textura a partir do Load
    IconSpriteIndex = 0,
    Description = "Descrição do buff",
    IsDebuff = False,
    GlowColor = "DarkRed",
    MaxDuration = 3600000, # Milisegundos 
    effects = Effects(CombatLevel = 1)
)

# Registrando o objeto atravƩs do EditData
self.content.registryContentData(
    EditData(
        LogName="Criando um novo buff",
        Target="Data/Buffs",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            novo_buff.key: novo_buff.getJson()
        }
    )
)

Criando um novo objeto atravƩs de uma classe personalizada

Para usar uma classe personalizada, vocĆŖ pode criar um novo arquivo ou no mesmo arquivo criar uma classe:

Um novo arquivo.py:

buff.py

from StardewValley.Data import BuffsData, Effects
from StardewValley.helper import Helper


class NovoBuff(BuffsData):
    def __init__(self, mod: Helper):
        self.key = f"{mod.content.Manifest.UniqueID}_NomeBuff"
        self.DisplayName = "Nome do buff"
        self.Duration = 180000 # Milisegundos | -2 para todo o dia
        self.IconTexture = "NomeBuff_texture" # Carregue sua textura a partir do Load
        self.IconSpriteIndex = 0
        self.Description = "Descrição do buff"
        self.IsDebuff = False
        self.GlowColor = "DarkRed"
        self.MaxDuration = 3600000 # Milisegundos 
        self.Effects = Effects(CombatLevel = 1)

ModEntry.py

from StardewValley import Manifest, EditData
from StardewValley.helper import Helper
from buff import NovoBuff # Importando classe personalizada

#... (dentro de um mƩtodo como contents(self) na sua classe de mod)
novo_buff = NovoBuff(self)

self.content.registryContentData(
    EditData(
        LogName="Criando um novo buff",
        Target="Data/Buffs",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            novo_buff.key: novo_buff.getJson()
        }
    )
)