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

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