Ejemplo n.º 1
0
class Engram(ExportModel):
    description: Optional[StringProperty]
    blueprintPath: str = Field(
        ...,
        title="Full blueprint path of the engram",
    )
    itemBlueprintPath: Optional[str] = Field(
        ...,
        title="Full blueprint path of the item",
    )
    group: Optional[str] = Field(
        ...,
        title="DLC group",
    )
    requirements: EngramRequirements
    manualUnlock: bool = Field(
        ...,
        title="Unlockable in UI",
        description="Whether the engram can be unlocked by the player in UI",
    )
    givesBP: bool = Field(
        ...,
        title="Craftable in inventory",
        description="Whether the player can craft the item in their inventory",
    )
Ejemplo n.º 2
0
class EngramRequirements(ExportModel):
    characterLevel: Optional[IntProperty] = Field(
        None, title="Required character level")
    engramPoints: Optional[IntProperty] = Field(
        None, title="Required number of points")
    otherEngrams: Optional[List[Optional[str]]] = Field(
        None, title="Required engrams")
Ejemplo n.º 3
0
class WorldSettings(ExportModel):
    source: Optional[str]
    name: Union[StringProperty, str]

    # Geo
    latOrigin: FloatProperty = Field(
        title="Latitude Origin",
        description=
        "World origin of Y axis, used by the in-game map, in centimeters.",
    )
    longOrigin: FloatProperty = Field(
        title="Longitude Origin",
        description=
        "World origin of X axis, used by the in-game map, in centimeters.",
    )
    latScale: FloatProperty = Field(
        title="Latitude Scale",
        description=
        "Height of the map, used by the in-game map, in tens of meters.",
    )
    longScale: FloatProperty = Field(
        title="Longitude Scale",
        description=
        "Width of the map, used by the in-game map, in tens of meters.",
    )
    latMulti: Optional[FloatLike] = Field(
        title="Latitude Multiplier",
        description=
        "Latitude scale in meters. Divide centimeter distance from Y axis by this value.",
    )
    longMulti: Optional[FloatLike] = Field(
        title="Longitude Multiplier",
        description=
        "Longitude scale in meters. Divide centimeter distance from X axis by this value",
    )
    latShift: Optional[FloatLike] = Field(
        title="Latitude Shift",
        description="Shift of coordinates on the Y axis.",
    )
    longShift: Optional[FloatLike] = Field(
        title="Longitude Shift",
        description="Shift of coordinates on the X axis.",
    )

    # Gameplay Settings
    maxDifficulty: FloatProperty
    mapTextures: InGameMapTextureSet = Field(
        ...,
        description=
        "Preview textures of the map. Weapon refers to the map player can hold.",
    )
    # Spawn Settings
    onlyEventGlobalSwaps: bool = Field(
        False,
        description=
        "Controls whether Primal Game Data's random non-event class replacements are allowed.",
    )
    randomNPCClassWeights: List[WeighedClassSwap] = []
    # Uploads
    allowedDinoDownloads: List[ObjectPath] = []
Ejemplo n.º 4
0
class CookingIngredientData(ExportModel):
    health: FloatLike = Field(0, description="Health increased per item")
    stamina: FloatLike = Field(0, description="Stamina increased per item")
    food: FloatLike = Field(0, description="Food increased per item")
    weight: FloatLike = Field(0, description="Weight increased per item")
    water: FloatLike = Field(0,
                             description="Water increased per item in a drink")
Ejemplo n.º 5
0
class BiomeTempWindSettings(ExportModel):
    override: Optional[FloatProperty]
    range: Optional[MinMaxRange] = Field(
        None,
        description="Only applies to Temperature.",
    )

    initial: Optional[EnvironmentalOffset] = Field(
        None,
        description=
        f"Applied before other offsets. {EnvironmentalOffsetAbsoluteDesc}",
    )
    above: Optional[EnvironmentalOffset] = Field(
        None,
        description=
        f"Applied only if previous calculation is greater than threshold. {EnvironmentalOffsetRelativeDesc}",
    )
    below: Optional[EnvironmentalOffset] = Field(
        None,
        description=
        f"Applied only if previous calculation is lower than threshold. {EnvironmentalOffsetRelativeDesc}",
    )
    final: Optional[EnvironmentalOffset] = Field(
        None,
        description=
        f"Applied after all other calculations. {EnvironmentalOffsetAbsoluteDesc}",
    )
Ejemplo n.º 6
0
class Drop(ExportModel):
    bp: str = Field(
        ...,
        description="Full blueprint path",
    )
    sets: Optional[List[ItemSet]] = Field(
        None,
        description="Loot sets",
    )
Ejemplo n.º 7
0
class Drop(ExportModel):
    bp: str = Field(
        ...,
        description="Full blueprint path",
    )

    name: StringLikeProperty = Field('')
    description: StringLikeProperty = Field('')
    maxItems: IntProperty = Field(0)
    maxWeight: FloatProperty = Field(25)

    noRepeatsInSets: Optional[BoolProperty] = Field(
        None,
        title="No repeats in sets",
        description="Entries cannot be picked more than once per set",
    )
    qualityMult: Optional[MinMaxRange] = Field(
        MinMaxRange(min=1, max=1),
        title="Quality range",
    )
    qtyMult: Optional[MinMaxPowerRange] = Field(
        MinMaxPowerRange(min=1, max=1, pow=1),
        title="Quantity range",
    )

    sets: Optional[List[ItemSet]] = Field(
        None,
        description="Loot sets",
    )
Ejemplo n.º 8
0
class DeathData(ExportModel):
    dossierId: IntProperty = Field(-1)
    lootBagChance: float = Field(0, description="Chance for a loot bag to appear on death")
    lootBags: List[ItemChancePair] = Field(
        [],
        description="Lists of possible loot bag drop sets (for cross-reference with drops.json files)",
    )
    engrams: List[str] = Field([], description="Engrams player receives when this creature is defeated")
    baseXP: FloatProperty = Field(
        0,
        description="XP awarded when level 1 creature is killed. Formula for specific level: baseXP * (1 + 0.1 * (level - 1))",
    )
Ejemplo n.º 9
0
class NPCManager(ExportModel):
    disabled: bool = False
    spawnGroup: ObjectPath = Field(description="Path to a container of spawning groups.")
    minDesiredNumberOfNPC: IntProperty
    neverSpawnInWater: BoolProperty
    forceUntameable: BoolProperty

    # Zones
    locations: List[Box] = Field(
        [],
        title="Counting volumes",
    )
    spawnLocations: List[WeighedBox] = Field([], title="Spawning volumes")
    spawnPoints: List[Location] = []
Ejemplo n.º 10
0
class StatEffectData(ExportModel):
    stat: str
    value: FloatProperty = Field(..., description="Stat value to set/add")
    useItemQuality: bool = Field(False, description="Whether item quality is used")
    pctOf: Optional[str] = Field(None, description="If set, this effect's value is a percentage of current/max stat value.")
    pctAbsRange: Optional[MinMaxRange] = None
    setValue: bool = Field(False, description="Whether the current stat value is overriden by this effect's value.")
    setAddValue: bool = Field(False, description="Whether this effect's is instantly added to current stat value.")
    forceUseOnDino: bool = Field(False, description="Whether can be used on dinos")
    allowWhenFull: bool = Field(True, description="Whether allowed when stat is full")
    qualityMult: float = Field(1.0, description="Item quality effect (addition)")
    duration: FloatLike = Field(0, description="Effect duration in seconds")
Ejemplo n.º 11
0
class SupplyCrateSpawn(ExportModel):
    maxCrateNumber: IntProperty
    crateClasses: List[ObjectPath]
    crateLocations: List[Location]
    minTimeBetweenSpawnsAtSamePoint: FloatProperty
    delayBeforeFirst: MinMaxRange
    intervalBetweenSpawns: MinMaxRange
    intervalBetweenMaxedSpawns: MinMaxRange
    intervalBetweenSpawnsSP: Optional[MinMaxRange] = Field(
        None,
        description="Single-player override of intervalBetweenSpawns.",
    )
    intervalBetweenMaxedSpawnsSP: Optional[MinMaxRange] = Field(
        None,
        description="Single-player override of intervalBetweenMaxedSpawns.",
    )
Ejemplo n.º 12
0
class ItemChancePair(ExportModel):
    chance: float = Field(
        ...,
        description=
        "Chance this item will be selected, in an inclusive range from 0 to 1."
    )
    item: str
Ejemplo n.º 13
0
class WeighedClassSwap(ExportModel):
    # TODO: Possibly move into export.wiki.models after spawn_groups are moved
    from_class: Optional[ObjectPath] = Field(alias='from')
    exact: bool = False
    to: List[Optional[ObjectPath]]
    weights: List[FloatProperty]
    during: str = 'None'
Ejemplo n.º 14
0
class DropExportModel(ExportFileModel):
    drops: List[Drop] = Field(
        ...,
        description="List of loot crates",
    )

    class Config:
        title = "Dino drop loot tables"
Ejemplo n.º 15
0
class PlayerSpawn(ExportModel):
    regionId: IntProperty = Field(description="ID of an element of region definitions list located in PGD or PWS.", )

    x: FloatLike
    y: FloatLike
    z: FloatLike
    lat: Optional[float]
    long: Optional[float]
Ejemplo n.º 16
0
class CloningData(ExportModel):
    costBase: float = Field(
        None,
        title="Base Cost to Clone",
    )
    costLevel: float = Field(
        None,
        title="Cost per Level",
    )
    timeBase: float = Field(
        None,
        title="Base Time to Clone",
    )
    timeLevel: float = Field(
        None,
        title="Time per Level",
    )
Ejemplo n.º 17
0
class LootCrate(ExportModel):
    bp: str = Field(
        ...,
        title="Full blueprint path",
    )
    levelReq: Optional[MinMaxRange] = Field(
        None,
        title="Level requirements",
        description=
        "This is a really long description that would mess up the nice structure above",
    )
    decayTime: Optional[DecayTime] = Field(
        None,
        title="Decay timing",
    )
    noRepeatsInSets: Optional[BoolProperty] = Field(
        None,
        title="No repeats in sets",
        description="Entries cannot be picked more than once per set",
    )
    qualityMult: Optional[MinMaxRange] = Field(
        None,
        title="Quality range",
    )
    setQty: Optional[MinMaxPowerRange] = Field(
        None,
        title="Quantity range",
    )
    sets: List[ItemSet] = Field(
        [],
        description="List of item sets that can drop",
    )
Ejemplo n.º 18
0
class MinMaxPowerRange(ExportModel):
    min: FloatLike
    max: FloatLike
    pow: FloatLike = Field(
        ...,
        title="Power",
        description=
        "Affects the power curve used to select a value in the range",
    )
Ejemplo n.º 19
0
class MinMaxPowerRange(ExportModel):
    min: Union[FloatProperty, IntProperty, float]
    max: Union[FloatProperty, IntProperty, float]
    pow: Union[FloatProperty, IntProperty, float] = Field(
        ...,
        title="Power",
        description=
        "Affects the power curve used to select a value in the range",
    )
Ejemplo n.º 20
0
class ExplorerNote(ExportModel):
    noteIndex: IntProperty = Field(description="Index of an explorer note entry from Primal Game Data.", )
    hidden: bool = False

    x: FloatProperty
    y: FloatProperty
    z: FloatProperty
    lat: Optional[float]
    long: Optional[float]
Ejemplo n.º 21
0
class Glitch(ExportModel):
    noteId: Optional[IntProperty] = Field(description="Index of an explorer note entry from Primal Game Data.", )
    hidden: bool = False
    hexagons: IntProperty

    x: FloatProperty
    y: FloatProperty
    z: FloatProperty
    lat: Optional[float]
    long: Optional[float]
Ejemplo n.º 22
0
class ItemSetEntry(ExportModel):
    name: Optional[StringLikeProperty]
    weight: FloatProperty
    qty: MinMaxPowerRange
    quality: MinMaxPowerRange
    forceBP: BoolProperty
    items: List[Tuple[Union[FloatProperty, float], Optional[str]]] = Field(
        ...,
        description="Pairs of (weighted chance, item class name)",
    )
Ejemplo n.º 23
0
class LevelData(ExportModel):
    ramp: str = Field(
        'DinoEasy',
        description=
        "Name of ramp that describes amount of experience needed to progress.",
    )
    maxExperience: Optional[FloatProperty]
    maxLevels: Optional[int] = Field(
        None,
        title="Max Level Ups",
        description=
        "Max amount of level ups this species can have at default server settings.",
    )
    capOffset: Optional[IntProperty] = Field(
        None,
        title="Tame Level Cap Offset",
        description=
        "Number of extra levels (above normal cap) this species can gain when tamed without getting destroyed by validation",
    )
Ejemplo n.º 24
0
class MissionDispatcher(ExportModel):
    type_: Union[str, int] = Field(
        alias="type",
        description="Friendly mission type name, or internal ID if unknown.",
    )
    missions: List[ObjectPath]

    x: FloatProperty
    y: FloatProperty
    z: FloatProperty
    lat: Optional[float]
    long: Optional[float]
Ejemplo n.º 25
0
class MissionDispatcher(ExportModel):
    type_: Optional[Union[str, int]] = Field(
        None,
        alias="type",
        description=
        "Friendly mission type name, or internal ID if unknown, if the dispatcher is restricted to a single type (like on "
        "Genesis 1)",
    )
    missions: Optional[List[ObjectPath]] = Field(
        None,
        description=
        "List of missions that can be activated at this dispatcher. If null, any mission can be activated (like on Genesis 2).",
    )
    isRockwellBattle: bool = Field(
        False,
        description=
        "Whether the dispatcher is used to activate the Rockwell Prime boss battle of Genesis 2.",
    )

    x: FloatProperty
    y: FloatProperty
    z: FloatProperty
    lat: Optional[float]
    long: Optional[float]
Ejemplo n.º 26
0
class CraftingData(ExportModel):
    xp: FloatProperty = Field(..., description="XP granted per item crafted")
    time: FloatProperty = Field(
        ..., description="Time it takes to craft a blueprint")
    levelReq: IntProperty = Field(..., title="Required player level")
    productCount: int = Field(
        ...,
        description=
        "If zero, the item is likely given via scripts or triggers a specific action (like boss summoners)",
    )
    skillQualityMult: MinMaxRange = Field(
        ...,
        description=
        "Min and max multipliers of Crafting Skill's effect on quality")
    recipe: List[RecipeIngredient] = Field(...)
Ejemplo n.º 27
0
class LevelData(ExportModel):
    wildForcedLevel: Optional[IntLike] = Field(
        None,
        description="A value here means the spawns will not respect difficulty."
    )
    ignoresLevelModifiers: BoolLike = Field(
        False,
        description=
        "Forced level will also not be influenced by spawner's level scaling or other settings on the species.",
    )
    wildLevelTable: List[MinMaxChanceRange] = [
        MinMaxChanceRange(chance=0.5405405, min=1.0, max=5.0),  # weight = 1.0
        MinMaxChanceRange(chance=0.2702703, min=6.0, max=12.0),  # weight = 0.5
        MinMaxChanceRange(chance=0.1351351, min=13.0,
                          max=20.0),  # weight = 0.25
        MinMaxChanceRange(chance=0.05405405, min=21.0,
                          max=30.0),  # weight = 0.1
    ]

    xpRamp: str = Field(
        'DinoEasy',
        description=
        "Name of ramp that describes amount of experience needed to progress.",
    )
    maxExperience: FloatLike = 22213970
    maxTameLevels: int = Field(
        88,
        description=
        "Max amount of level ups this species can have at default server settings.",
    )
    levelCapOffset: IntLike = Field(
        0,
        description=
        "Extra levels this species can have before getting destroyed on servers with the DestroyTamesOverLevelClamp setting "
        "enabled.",
    )
    mutagenCost: int = Field(
        0, description="Amount of Mutagen needed to use it on this dino.")
Ejemplo n.º 28
0
class RecipeIngredient(ExportModel):
    exact: bool = Field(
        False, description="If true, child classes cannot be used in place")
    qty: FloatLike = Field(..., title="Base quantity")
    type: str = Field(..., title="Item class name")
Ejemplo n.º 29
0
class WeighedClassSwap(ExportModel):
    from_class: Optional[str] = Field(alias="from")
    exact: bool = Field(False, title="Match class exactly")
    to: List[Tuple[float, Optional[str]]]
    during: str = Field('None', title="Event the rule is active in")
Ejemplo n.º 30
0
class RepairData(ExportModel):
    xp: FloatProperty = Field(..., description="XP granted per item repaired")
    time: FloatProperty = Field(..., description="Time to repair an item")
    recipe: List[RecipeIngredient] = Field(
        [], description="Required ingredients, if different from crafting")