TrainerGuy22 / Reliquary

The source code of Reliquary! That mod, with the magical swag, and a weapon, and stuff.
Other
42 stars 24 forks source link

New Potion System #122

Closed MercuriusXeno closed 9 years ago

MercuriusXeno commented 10 years ago

Our homebrew custom potion system. So far we have the blocks, but not the system.

Mortar and Pestle: Combines items (read: not blocks) to produce potion essence. Potion essence will cause any matching potion effects to coalesce. Potion essences can also be "coalesced" in this way, stacking their effects. I'm hoping to increase the "capacity" of the mortar tile from 2 to 3 to make things more interesting.

Cauldron: Fill with water, heat up and throw in essences (and redstone, glowstone or gunpowder, optionally). Throwing in a Nether Wart Seed "seals the deal" and finalizes the potion. Once the Cauldron finishes bubbling, the potion is finished and you can bottle it up.

Boring stuff (formulas):

Duration

Increased by redstone, like vanilla, but some ingredients have natural bonuses.
This allows a higher base duration than usual without using redstone.
Each additional level of duration cost formula has a diminishing return.
Since the minimum is a zero yield, any ingredients beyond are wasted.

Formula:

For n different potion effects, for m levels of redstone upgrades.
existing duration += base duration * ((8 + n)/(3 + n) - (1/(3 + n) * (m - 1)))
(max: ~1 hour, varies with stacked effects) - Formula is re-applied each tier.

Potency

Increased by glowstone, like vanilla, but some ingredients have natural bonuses.
This makes them require less glowstone to reach maximum potency. 
Some potions cannot have their potency increased. 
In this case, glowstone level contributes to the duration.
It still can't exceed the max for diminishing returns. 
Be advised, as not to waste ingredients.

Formula:

For n levels of an upgrade, 
for m different potion effects, 
costs 2^(n -1) * m of a reagent.
Level +1: 1, Level +2: 2 (3 Total)
Level +3: 4 (7 Total), Level +4 (max): 8 (15 Total)
You cannot exceed a level 5 potion with this system.

Now for the good part, potential/planned reagents: The vanilla potions are represented, but their ingredients are going to do more than just their vanilla single-tricks. They'll have other effects in addition to their usual.

Every potion effect, and whether it can be amplified, starting with...

Positive potions which have an antipode

Speed - Yes
Haste - Yes
Strength - Yes
Health - Yes
Regeneration - Yes
Night Vision - No
Saturation - Yes

Negative potions, ordered by their associated antipode

Slowness - Yes
Mining Fatigue - Yes
Weakness - Yes
Damage - Yes
Poison - Yes
Blindness - No
Hunger - Yes

Other Positive potion effects which have no antipode

Resistance - Yes
Fire Resistance - No
Water Breathing - No
Invisibility - No
Health Boost - Yes
Absorption - Yes
Jump Boost - Yes

Negative effects which have no antipode

Nausea - No
Wither - Yes

Planned: Additional Non-Vanilla "Potions" that aren't really potion effects

Fertility - Yes
Attraction - No
Resurrection - Yes
Cleansing - No
Purging (similar) - No  

Planned: Additional Non-Vanilla "Potions" that are anti-potions, these are effects

Vulnerability (vs Resistance) - Yes
Fire Vulnerability (vs Fire Resistance) - No    
Asphyxiating (vs Water Breathing)- Yes
Visibility (vs Invisibility) - No
Health Break (vs Health Boost) - Yes
Grounding (vs Jump Boost) - No
Stability (vs Nausea) - No
Constitution (vs Wither) - No

Other Planned Potions, which are also effects

Travel - Yes

I'll be adding possible ingredient effects to each ingredient as I go. Optimally I would like each ingredient to contain 3 potion effects, at most. It's hard to decide, at times, what's the best fit. I'm doing the same for the vanilla potion ingredients, in addition to their base types.

Non-Effect Ingredients:

Redstone Dust - Increases duration

Glowstone Dust - Increases potency, or duration if potency cannot be increased.

Netherwart [required] - Catalyst for brewing, adding this finalizes the potion. 
Once Netherwart is added, the brewing process is over.
Additional reagents will fall out of the Cauldron.

Gunpowder [splash] - Converts the potion being brewed into a splash potion.
Additional gunpowder increases the radius of the area of effect.
Diminishing returns apply.

Standard Potion Ingredients Excluding Fermented Spider Eye reversal because it's dumb.

Magma Cream - Fire Resistance
Sugar - Swiftness
Glistering Melon - Heal
Spider Eye - Poison
Ghast Tear - Regeneration
Blaze Powder - Strength
Fermented Spider Eye - Weakness
Golden Carrot - Night Vision
Pufferfish - Water Breathing
Rabbit's Foot - Leaping

Additional Potion Ingredients:

Apple
Coal
Charcoal
Diamond
Iron
Gold
String
Feather
Wheat Seeds
Wheat
Bread
Flint
Raw Porkchop
Cooked Porkchop
Golden Apple
Enchanted Golden Apple
Leather
Clay
Sugar Cane
Slime Ball
Egg
Raw Fish
Raw Salmon
Clownfish   
Cooked Fish
Cooked Salmon
Cooked Clownfish
Cooked Pufferfish
Ink Sack
Rose Red
Cactus Green
Lapis Lazuli
Dandelion Yellow
Bone Meal
Bone
Cookie
Melon
Pumpkin Seeds
Melon Seeds
Raw Beef
Cooked Beef
Raw Chicken
Cooked Chicken
Rotten Flesh
Ender Pearl
Blaze Rod
Gold Nugget
Eye of Ender
Fire Charge
Emerald
Carrot
Potato
Baked Potato
Poisonous Potato
Nether Star
Nether Quartz

(1.8 stuff eventually)

And Our Mod's Mob Drop/Ingredients:

Necrotic Heart
Rib Bone
Catalyzing Gland
Squid Beak
Withered Rib
Bat Wing
Chelicerae
Slime Pearl
Molten Core
Frozen Core
Fertile Essence
Eye of the Storm
Nebulous Heart
MercuriusXeno commented 9 years ago

Insanely enough, this is done. I still have a lot of balance stuff to take into consideration but there's a VERY polished implementation in our dev builds now. I'm very excited to get feedback on it. :D

Thanks especially to Skyboy for walking through the process in detail with me and helping out with tons of the implementations, especially the cosmetics which came out stupendously well.

MercuriusXeno commented 9 years ago

Also planned potions were largely ignored. I may return to this at a later date, in the hopes of producing something close to a non-hard-coded potion-addon.