ObjectsBuffsData
A classe ObjectsBuffsData é usada pra adicionar Buffs nos objetos
Construtor
def __init__(
self,
*,
Id:str,
Duration: Optional[int]=0,
BuffId: Optional[str]=None,
IsDebuff: Optional[bool]=None,
IconTexture: Optional[str]=None,
IconSpriteIndex: Optional[int]=None,
GlowColor: Optional[str]=None,
CustomAttributes: Optional[CustomAttributes]=None,
CustomFields: Optional[dict[str, str]]=None
)
Parâmetros
| Name | Type | Description |
|---|---|---|
Id |
(str) |
O ID de string exclusivo para entrada na lista |
Duration |
(int, Opcional) |
A duração do bônus é medida em minutos no jogo. Isso pode ser definido -2 como para um polimento que deve durar o resto do dia. |
BuffId |
(str, Opcional) |
O ID exclusivo de um buff de Data/Buffs para aplicar, ou nulo para ignorar Data/Buffs e defina o ID para comida ou bebida dependendo do campo IsDrink. |
IsDebuff |
(bool, Opcional) |
Se este bônus conta como um bônus negativo, então sua duração deve ser reduzida pela metade ao usar um Anel Resistente. Padrão falso. |
IconTexture |
(str, Opcional) |
O caminho para o arquivo de textura para o sprite do icone do bônus(é o nome que vocé coloca na target onde carrega o sprite da textura). |
IconSpriteIndex |
(int, Opcional) |
O índice do sprite do icone do bônus dentro do seu arquivo de textura. |
GlowColor |
(str, Opcional) |
A cor de brilho a ser aplicada ao player. Consulte o formato de cor . Padrão: nenhum. |
CustomAttributes |
(Custom, CustomAttributes) |
Um conjunto de tokens locais a ser usados nesse campo de objeto. |
CustomFields |
(dict[str, str], Opcional) |
Um conjunto de tokens locais a ser usados nesse campo de objeto. |
Comportamento
Instâncias de ObjectsBuffsData são projetadas para serem usadas por uma variável especifica da classe ObjectsData. Quando você deseja adicionar buffs personalizados aos itens do jogo que são comestíveis, você usa essa classe personalizada.
Criando um novo objeto
ModEntry.py:
from StardewValley import Manifest, EditData
from StardewValley.helper import Helper
from StardewValley.Data import ObjectsData, ObjectsBuffsData, CustomAttributes # Importe a classe ObjectsBuffsData
# ... (dentro de um método como contents(self) na sua classe de mod)
# Criando um buff para adicionar ao item
novo_buff=ObjectsBuffsData(
Id="novo_buff",
BuffId="buff_id",
Duration=30,
IsDebuff=True,
IconTexture="TileSheets/moduniqueid_buff_icon",
IconSpriteIndex=0,
CustomAttributes=CustomAttributes(
CombatLevel:0.5,
FarmingLevel:0.0
FishingLevel:0.0,
ForagingLevel:0.0,
LuckLevel:0.0,
MiningLevel:0.0,
Attack:0.0,
AttackMultiplier:0.4,
CriticalChanceMultiplier:0.0,
CriticalPowerMultiplier:0.0,
Defense:0.0,
Immunity:0.0,
KnockbackMultiplier:0.0,
MagneticRadius:0.3,
MaxStamina:0.0,
Speed:0.0,
WeaponPrecisionMultiplier:0.0,
WeaponSpeedMultiplier:0.0
)
)
# Criando novo item
novo_item=ObjectsData(
key=f"{self.content.Manifest.UniqueID}_novoItem",
Name=f"{self.content.Manifest.UniqueID}_novoItem",
DisplayName="Novo Item",
Description="Uma novo item legal",
Type="Basic",
Category=-79, # Exemplo de categoria, use a apropriada para o seu item
Price=1000,
Buffs=[novo_buff]
)
# Registrando a ação EditData para adicionar o novo objeto com buff ao jogo
self.content.registryContentData(
EditData(
LogName="Criando um novo Objeto Pro jogo", # Nome para o log do Content Patcher
Target="Data/Objects", # O arquivo de dados a ser modificado
Entries={
# Mapeia a chave do seu objeto para a representação JSON do objeto
novo_item.key: novo_item.getJson()
}
)
)
Exemplo com classe personalizada
BuffNovo.py
from StardewValley.Data import ObjectsBuffsData, CustomAttributes # Importe a classe ObjectsBuffsData
class BuffNovo(ObjectsBuffsData):
def __init__(self):
self.Id="buff_novo"
self.BuffId="buff_novo"
self.Duration=30
self.IsDebuff=True
self.IconTexture="TileSheets/moduniqueid_buff_icon"
self.IconSpriteIndex=0
self.CustomAttributes=CustomAttributes(
CombatLevel:0.5,
FarmingLevel:0.0
FishingLevel:0.0,
ForagingLevel:0.0,
LuckLevel:0.0,
MiningLevel:0.0,
Attack:0.0,
AttackMultiplier:0.4,
CriticalChanceMultiplier:0.0,
CriticalPowerMultiplier:0.0,
Defense:0.0,
Immunity:0.0,
KnockbackMultiplier:0.0,
MagneticRadius:0.3,
MaxStamina:0.0,
Speed:0.0,
WeaponPrecisionMultiplier:0.0,
WeaponSpeedMultiplier:0.0
)
newObjectItem.py
from StardewValley.Data import ObjectsData # Importe a classe BuffNovo
from BuffNovo import BuffNovo
class newObjectItem(ObjectsData):
def __init__(self):
self.key=f"{self.content.Manifest.UniqueID}_novoItem"
self.Name=f"{self.content.Manifest.UniqueID}_novoItem"
self.DisplayName="Novo Item"
self.Description="Uma novo item legal"
self.Type="Basic"
self.Category=-79 # Exemplo de categoria, use a apropriada para o seu item
self.Price=1000
self.Buffs=[BuffNovo()]
ModEntry.py -> veja em ObjectsData