Chance of Water 2
Install

Details

Last Updated
First Uploaded
Downloads
153
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.