Create

Create

86M Downloads

Potato Cannon Ammunition Attribute Idea

TBiscuit1 opened this issue ยท 1 comments

commented

Describe the Suggestion

The potato cannon ammunition is quite limited in terms of basic property, here is a list of idea!

Hit Split - When the projectile hit a mob or a block, it will split into a specific amount of smaller variant of the original item, potentially add a second section to the json to have different value for both the big item and the mini item
Values | [int] - 0 to +Inf | 0 = Disable the hit split, 1 = The projectile will not split but just jump, 2+ Make the projectile split | Default = 0

Spread Distance - How far the projectiles spread from each other (Only work if Split is not 1)
Value | [float] - 0 to X | 0 = No Spread, >0 = Spread Distance (in blocks), X = Max Spread, limits must be made to avoid crashes (Entity positioned in +/-Inf, NaN or unsuspected value) | Default = 1.0

Split Distance - How far the projectiles split from the central point (Only work if Hit Split is not 1)
Value | [float] - 0 to X | 0 = No Split Spread, >0 = Split Spread Distance (in blocks), X = Max Spread, limits must be made to avoid crashes (Entity positioned in +/-Inf, NaN or unsuspected value) | Default = 0.5

Spread Innacurate - Does the projectiles distance from each other is random? (Only work if Split is not 1 and Spread Distance is not 0)
Value | [boolean] | true = The distance will go in between 0 and the Spread Distance value, false = Distance is constant and always the Spread Distance value | Default = true

Split Innacurate - Does the projectiles distance from the center point is random? (Only work if Hit Split is not 1 and Split Distance is not 0)
Value | [boolean] | true = The distance will go in between 0 and the Split Distance value, false = Distance is constant and always the Split Distance value | Default = true

Piercing - When the projectile hit a mob, it will continue, simmilar to the piercing enchant
Value | [int] - 0 to +Inf | 0 = Disable the piercing, 1+ = Pierce X enemy(ies) | Default = 0

Bounciness - When the projectile hit a mob or block, bounce from it
Value | [int] - 0 to +Inf | 0 = Disable the bouncing, 1+ = Bounce X time(s) | Default = 0

Bounce on Mob - Does the projectile bounce on mobs? (Only work if Bounciness is not 0)
Value | [boolean] | true = Bounce on mobs, false = Doesn't bounce on mobs, do a normal hit | Default = true
Special Interaction, if piercing is not 0, it will bounce once it has pierced enough times

Bounce on Block - Does the projectile bounce on blocks? (Only work if Bounciness is not 0)
Value | [boolean] | true = Bounce on blocks, false = Doesn't bounce on blocks, do a normal hit | Default = true

Bounce on Wall - Does the projectile bounce on walls? (Only work if Bounciness is not 0 and Bounce on Block is true)
Value | [boolean] | true = Bounce on walls, false = Doesn't bounce on walls, do a normal hit | Default = false

Split on Bounce - Does the projectile split each time it bounces? (Only work if Bounciness is not 0 and Hit Split is not 0)
Value | [boolean] | true = Split each time it bounces, false = Doesn't split when it bounces, it will split if it can't bounce anymore | Default = false

Accuracy - Name explains everything, does not influence spread accuracy
Value | [int] -1 to 100 | -1 = 360 Degree shots, could be messy, 0 to 100 = Simmilar to Skeleton AI | Default = 100

Explosion - Explosion Power of the projectile
Value | [int] -1 to X | -1 = No Explosion, 0 = Explode but do nothing, 1+ = X Explosion Power, X = Max Value, Explosions will cause massive lag when the value is way too high, 100 could be a limit (Nukes (: )

Recoil - Make the player move when shooting the projectile
Value | [float] -Inf to +Inf | <0 = Make the player go backward, 0 = Disable Recoil, >0 = Make the player go forward | Default = 0

Effects - Decide which potion effect is applied when hitting a target
Value | [Special] | Effect Name [String] - "mod_id:effect_id", Duration [int] - 1 to +Inf, Effect Chance [float] - 0.0 to 100.0 | Default = None

Block Stick - Does the block place itself when it hits?
Value | [boolean] | true = Does Place, false = Doesn't Place | Default = false
Special Interaction, if it is an item, the projectile will simply stick to the block and eventually pop out as an item

Texture - Which texture the projectile takes, useful for the hit split option (for exemple split a melon block to multiple melon slice)
Value | [Special] | Path of the texture, include extention, .mcmeta files works with the texture, if no basic model is define, it will take the original item model, Exemple : "create/textures/item/andesite_alloy.png" | Default = Original Item Texture

Model - Which model the projectile takes, useful for the hit split option (for exemple split a melon block to multiple melon slice), Overwrite the texture property if it is a custom model
Value | [Special] | Path of the model, include extention, if "Item" or "Block" is used instead of the path, it will generate the default item/block model, if a texture is chosen, it will have the texture chosen, if none is chosen, use the original item texture, Exemple : "create/model/basin.json" / "Block" | Default = Original Item Model

Screenshots and Videos

No response

Additional Context

There is a lot of possibility to add for insane customisation, this is a small bit of the potential that the potato cannon can have, if anyone is watching this issue, you can also post cool idea to add!

commented

I was about to open a pull related to this but I see you are making pretty good progress, the only suggestion that comes to mind is adding properties to the cannon ammo similar to trident enchantments, more specifically channeling (that would strike mobs with a lightning during thunderstorms) and loyalty (would return the ammo directly to the user like a magnet, it would only work with potato recovery tho). I see you need help with the code, I'm still a beginner but I can try to help if you share your progress