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()
}
)
)