You are viewing a potentially older version of this package. View all versions.
murderminemurderer-Manaball-1.0.0 icon

Manaball

Serversided (66%) Dark Blast Modifier.

Date uploaded a day ago
Version 1.0.0
Download link murderminemurderer-Manaball-1.0.0.zip
Downloads 33
Dependency string murderminemurderer-Manaball-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

serversided, host only needs, maybe host should only have actually idk

requirements

modsync or CastleSpawnZ

how this works

upon trading to the gnomes, there is a 2 in 3 (66%?) chance when getting dark blast, to apply it with the [Lich] modifier,

this is notified to players via the top right death feed, something like "Trade Notifier: A (uncommon) dark blast modifier [Lich]"

spell details

Dark Blast [Lich]

Raw Lich Fireball Amount formula: Math.Max(Math.Round((double)Math.Min(level/2.8,4)),2)

Layman terms:

Summons a lich to cast their 2+ of their fireballs when you cast the modified spell,

upon getting to spell level ~7, they (should) shoot 3 times,

and on spell level ~10, they (should) shoot 4 times, maxed out.

Spread is increased the more fireballs are shot.

Raw formula:

target_pos+new Vector3(random(-i*5f,i*5f),random(-i*5f,i*5f),random(-i*5f,i*5f))

(Y only has spread for the 3rd+ fireballs)

(i being the amount of fireballs shot)

technical details

Spell is detected via the gnomes trading CreatePage Rpclogic,

Upon trading and getting dark blast, and succeeding the 2 in 3 chance,

it will rename the spellpage GameObject to licher which is used in the hijacked CastSpell ServerRpcLogic, to detect that the spell is the modified spell

(and to not proceed with normal ObserverRpc logic sending, which would just create normal Dark Blast on everyones client),

upon detecting that the spell is modified, it (should) serversidedly detect where you want to shoot, then spawn a Lich in front of you (by 4)

(via InstanceFinder.ServerManager.Spawn)

After spawning a lich, it renames it to "mausoluem ghost", (name is used to disable the lich's ai, by hijacking it's update function)

The lich is also given near infinite HP,

After all of that,

it will invoke the Lich's Fireball ServerRpc and some sounds/animations etc, to shoot at where the caster desires with previously mentioned firing logic,

and then despawn the lich in 2 realtime seconds. via InstanceFinder.ServerManager.Despawn

design notes

Dark Blast was chosen because it had the closest acceptable cooldown to what I wanted, and a similar enough theme to the Lich,

wisp was a close 2nd, as it had a very similar icon to a blue fireball,

but didn't make cut for its very short high lvl cooldown etc,

alongside wisp being near impossible for the voice detector to detect,

Another reason Dark Blast was chosen is it generally not seeing that much use by most players,

I do not believe cooldowns are 100% serversided, so I cannot modify that much, which is why I simply chose the closest best spell to the CD I wanted.

I do not believe I will make much more spells, as the limits of what you can do serversidedly is not that big, as this game still handles most things clientsidedly,

(as you can tell by the cheater problem),

alongside there not being that many workable assets basegame for creative (serversided) spell ideas, but I do have a custom lives-based mode in mind, involving each player having a gnome follow them, alongside kind of resource generation.

Finally, I have a Serversided "Summon Teammate" modifier in mind, likely for Wisp.

Which should aid in the muggle problem where they don't know how to recall.