Details

Last Updated
4 years ago
First Uploaded
4 years ago
Downloads
79
Likes
0
Size
120KB
Dependency string
Nebby-VarianceAPI-0.5.0
Dependants

Variance API

  • A Complete Re-Write, altho heavily based off Rob's original MonsterVariants code.

  • VarianceAPI aims to combine the features from MonsterVariants and MonsterVariantsPlus into a single mod.

  • The API by itself doesnt do much, it only works as a base for others to create their own Variants

Features

Thunderkit support


  • VarianceAPI was made with Thunderkit, and it's systems are made to be used with Thunderkit. it is Extremely recommended to use Thunderkit when Developing VariantPacks

  • Despite this, Variants can still be added via code. Only examples currently lay on the Deprecated ExampleVariantPack. The mod comes with a Helpers.cs class that has methods on creating the ScriptableObjects that VarianceAPI requires

  • Easily create Variants using the plethora of ScriptableObjects VarianceAPI has!

  • Plus, VarianceAPI contains base classes for easing the creation of variants.

    • Automatic ConfigCreation using the VariantConfig scriptable object.

    • Semi-Automatic fetching for Ingame materials, no more AssetBundle bloating!

Better VariantOverlapping methods


  • The confusing and sometimes obscure VariantOverlap system has been expanded and now can be either Avoided, or encouraged.

    • Each Variant has a Unique boolean, Which determine wether the Variant can participate in VariantOverlapping shenanigans

    • The IsUnique boolean is part of the ConfigFile, so if you do not want a variant type to overlap with others, it's as simple as setting it to true.

    • Each Variant can either add Suffixes or Preffixes to an Enemy, this allows you to easily identify Variants on the spot with a simple ping, and getting an idea in your head on what they can do.

New Improved VariantHandler component/Variant Features


  • Variants made in VarianceAPI have:

    • All the original features of the VariantHandler component, alongside...

    • Custom name prefixes and affixes

    • Wether the variant gives rewards

    • Configurable Rewards

    • New Tiers

    • Ability to add Completely custom Components

    • DeathState replacements

    • Custom Equipment (NYI)

    • The Ability to use Equipments (NYI)

    • Can spawn with Buffs/Debuffs (NYI)

New VariantRewardHandler component.


  • All of MonsterVariantsPlus' Rewards systems are now handled by this nifty little component that's added to each Variant that has the "GivesReward" boolean set to true.

  • Only one VariantRewardHandler component is given to each Variant. the mod does it by checking how many VariantHandler components are active at the time.

  • Just like in MonsterVariantsPlus, Variants by default now:

    • Drop extra Gold on death

    • Drop extra XP on death

    • Have a chance to drop items, Red, Green or White respectively

  • Also just like in the original MonsterVariantsPlus, all of the rewards are calculated based off the Variant's Tier, and can be modified

  • If youre not a fan or rewards, the VariantHandlerReward system can be easily turned off with a simple boolean in VarianceAPI's config file.

Artifact of Variance


  • The Artifact of Variance, one of the Features from MonsterVariantsPlus, is now a core component of VarianeAPI.

  • The Artifact of Variance, when enabled, multiplies all Variant's spawn rates by the amount specified in the Config file.

  • Just like in the Original MonsterVariantsPlus, the Artifact of Variance can be enabled or disabled in the Config file.

Official Variant Packs (Variant Packs made by Nebby)


  • The Original 30

    • The original 30 is a complete port of Rob's 30 original MonsterVariants.

    • It's incomplete, but currently re-adds some 13! of the Variants

    • Get it here! (just click the icon!)

    TO30 Icon

  • Nebby still suggests checking out other VariantPacks made by the community! (Currently none :c)


Official VarianceAPI discord server.

  • VarianceAPI related discord server, you can join in here to meet other variant pack creators or learn how to create your own.

  • Currently barebones, will start getting some love soon

https://discord.gg/kWn8T4fM5W

Todo's

- Use KomradeSpectre's ItemModCreationBoilerplate to create a boilerplate for Variant Items.

	* Create said VariantItems so variants dont use Alienheads/Critglasses, and instead use these custom items

- Re-Implement the Artifact of Variance

- Create a system to replace variants' DeathState states.

- Continue development of the API

Changelog

'0.5.0'

  • Added back the Artifact of Variance

  • Fixed issue in VariantHandler causing certain stat multipliers not applying

  • Added a PreventRecursion system. Variants may not recieve extra Dio's Best Friends when resurrecting.

  • Added Custom Death States

    • Custom Death State can be specified in the VariantInfo Scriptable Object.

    • Leave it null unless you know how to get the required string to make it work.

  • Removed no longer needed classes

  • Added an identifier to VariantMaterialReplacement scriptable object.

    • It's main goal is to help with creating VariantMaterials in Thunderkit.
  • Added the base class VariantMaterialGrabber.

    • Works by loading all the "incomplete" VariantMaterialReplacements in your AssetBundle.

      • An incomplete VariantMaterialReplacement has it's material set to null, and has it's identifier filled.
    • Proceeds to then compare the incomplete versions with complete ones made in code. if it matches one, it'll replace the material with the correct one.

    • TL;DR: This class helps reduce bloated AssetBundle sizes by allowing the player to fetch ingame materials instead of copying them and placing them in their AssetBundle.

'0.4.0'

  • Changes to the OverrideName system

    • Added a new enum which enables the OverrideName to completely override the variant's baseName.

    • System now works with a switch

    • Renamed overrideOrder to overrideType

  • Added a new Array in VariantInfo for VariantExtraComponents

  • Added a new ScriptableObject called VariantExtraComponents.

    • VariantExtraComponents can be used to add a custom component to a specific variant when it spawns

    • This component must inherit from the new VariantComponent component found in the api (VariantComponent inherits from MonoBehaviour)

    Has the following settings:

      - string componentToAdd: The component to add to the Variant. this must be the combination of the Namespace of the component, alongside the class name. For example: TheOriginal30.VariantComponents.AddMissileLauncherToLemurian
    
      - bool isAesthetic: Wether the component to add just adds a mesh to the original body.
    
      - Non aesthetic components support haven't been added yet.
    
    • Used in TheOriginal30's Badass lemurian to attach the Missile Launcher.
  • Added discord server to the ReadMe

  • Hopefully fixed broken icon.

'0.3.0'

  • All of VarianceAPI's ScriptableObjects have Headers and Tooltips, making it easier to create the objects in the UnityEditor

  • Complete Rewrite of the Variant Overridename feature. now supporting VariantOverlaps.

  • Did a Facelift of the Thunderstore page.

'0.2.0'

  • VariantInfo now contains VariantConfig scriptable object, VariantConfig is used to create the config entries for your Variants.

    • VariantConfig allows you to:

      • Set the spawn chance of a Variant.

      • Wether the variant is unique or not.

  • Removed VariantRegisterBase

  • Added VariantInfoHandler, use this now to register your variants, as it streamlines the process.

  • Added Helpers for creating VariantConfig Scriptable Objects in code, one for Vanilla entities and another one for Modded entities.

'0.1.1'

  • Forgot to call the method that makes the config, whoops.

'0.1.0'

  • Added the VariantRewardHandler Component, officially porting a good chunk of MonsterVariantPlus' Features.

  • Added VariantRegisterBase, a helper for easily register variants made in Thunderkit.

  • Added Config file with a lot of config entries for the VariantRewardHandler and global settings.

  • Started working on a helper for creating Variant's Spawn Chances via config

  • Determination++ After learning rob likes what i'm doing.

'0.0.2'

  • Added Github Link.

  • Made changes to the scriptable objects, now they can be made in Thunderkit instead of on RunTime.

'0.0.1'

  • Initial Release
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.