sunflower-land / sunflower-land

1.54k stars 603 forks source link

[FEAT] Allow Players to Remove Growing Crops (Shovel) #1116

Closed ShiningMinions closed 2 years ago

ShiningMinions commented 2 years ago

Pixelized Crib Trello Ref:

https://trello.com/c/pARkxAiI

Summary of Request

As a player, I want a way to remove crops from my field (which are currently growing), so that I can correct seeds I mistakenly planted, and I don't have to wait the entire grow cycle to re-plant.

Proof of Community Demand

Contributors

If know, please provide the list of contributors who will be working on this feature.

README - Pre-Notes:

We believe every farm should have the ability to remove unwanted crops by default - it's very frustrating as a player not being able to remove crops, and we feel every player should have this ability by default. However, we do like the idea of minting "better shovels" at some point in the future. For example, maybe a "wooden shovel" will give you 10% chance to recover seed. Maybe "stone shovel" would be 25%, etc. Inspiration for this idea came from Aha! Proposal 107.

As a quick future brainstorm, we think the ability to mint better shovels could be unlocked only after completing some new "quest". This would be extremely fun. The quest lore could have something to do with the goblin who steals your shovel. He could "teach you the secret of crafting better shovels", or something like this. This is out-of-scope for this feature request, but could be extremely fun content for future.

Technical Requirements

  1. All farms should be able to remove crops. Therefore, every farm should start with exactly one "rusty shovel" by default. This "rusty shovel" is a non-withdrawable inventory item, and its only function is to remove unwanted crops currently growing in the player's plots. a. Description: "An old rusty shovel. Equip to start removing unwanted crops." b. The "rusty shovel" should automatically be added to every existing farm's inventory. c. The "rusty shovel" should exist in inventory the moment you mint your farm.

  2. When you click on a crop with your "rusty shovel" equipped: a. If the crop is ready-to-harvest, then skip the rest of this logic. Simply harvest the crop like normal. b. Otherwise, for the first crop you attempt to remove, display a warning modal:

    1. Modal Title: Remove Growing Crop?
    2. Modal Body: Warning! You have your shovel equipped. You will not recover the crop or it's seed. Are you sure you want to start removing crops?
    3. Display two buttons: Yes, Start Removing and Cancel.
    4. Clicking Yes, Start Removing removes the first crop.
  3. After clicking Yes, Start Removing button, the player can start removing crops at will. However, if one of the following conditions occurs, then the Warning Modal should be triggered to display again: a. Player switches inventory items, or b. 10 seconds of time pass with no crops being removed.

  4. Player should not be allowed to remove crops if the goblin has stolen their shovel. Player will need to recover shovel first.

Backend Updates Needed

  1. Support crop removals from the player's gameState.
  2. Provide a "rusty shovel" to existing farms.
  3. Include a "rusty shovel" for newly minted farms.

Smart Contract Updates Needed

  1. Maybe, don't make the "rusty shovel" item an NFT, as it will be non-withdraw-able and every farm will have exactly 1. But if that's not possible, then potentially will need to add this as a new NFT item to a smart contract.

UI/UX Design Requirements

N/A

Assets Needed

Rusty Shovel

Rusty Shovel 3x

stevew00dy commented 2 years ago

I love this - there would need to be a cost, like you lose the seed you planted as a result but it would give you the ability to bypass the timer and plant a new crop.

The shovel is being introduced into Land Expansion. We could use it for this.

ShiningMinions commented 2 years ago

I love this - there would need to be a cost, like you lose the seed you planted as a result but it would give you the ability to bypass the timer and plant a new crop.

@Stevew00dy Thanks for the feedback! You are 100% correct - when you remove a crop you will always lose the seed with your "rusty shovel". That's how it's intended to work :+1: . We just think in the future, there could be a cool NFT (like a wood/stone/gold shovel), that will give you a % chance to recover the seed. But those future shovels are out-of-scope for this feature request.

Z1kou commented 2 years ago

Adding to this features Information, That this will actually come into both the normal utensils of a farm that you should be getting when you minting the farm ( minting the farm serves as a form of you actually buying your farm with basic utensil's for it that could be upgraded in the future adding a whole new line of gameplay ) and will fit in the lore that we have for the anti bot system the pesky goblin stealer !

This feature always represents a fix to another problem that our lovely Kuebiko holders have which is the ability to not withdraw because you might get extra seeds that you don't want in your inventory from planting, preventing an indirect lock to all kuebiko, with the shovel if they just extra seeds, then can just plant and burn them !

Basically this feature is :

-Adding to the lore. -Adding a basic mechanic that a farm should have -Fixing a problem for Kuebiko Holder's -Potentially opening up a path for new gameplays regarding farm tools (this is in the far future and needs a big discussion about )

NotKeen commented 2 years ago

I'd just allow people to get their seeds back out of the ground for free. Playing on mobile can be delicate. There shouldn't be a cost for good UI / playability imo. So yea, like the idea of the shovel, but just make it free. There is enough value in increasing the QoL of the game by doing this.

ShiningMinions commented 2 years ago

I'd just allow people to get their seeds back out of the ground for free. Playing on mobile can be delicate. There shouldn't be a cost for good UI / playability imo. So yea, like the idea of the shovel, but just make it free.

That would be a good question to poll the players about - I've heard opinions split about this :+1:

brian-man commented 2 years ago

I'd just allow people to get their seeds back out of the ground for free. Playing on mobile can be delicate. There shouldn't be a cost for good UI / playability imo. So yea, like the idea of the shovel, but just make it free. There is enough value in increasing the QoL of the game by doing this.

Isn't there already "cost" for removing seeds in the form of opportunity cost for the plot?

spencerdezartsmith commented 2 years ago

Hey! Thank you for this issue 🤩 . It's excellent and we would like to keep the discussion going. We're going to be using Github Discussions for this so I will be closing this issue but could you please copy this proposal over?

https://github.com/sunflower-land/sunflower-land/discussions

ShiningMinions commented 2 years ago

@spencerdezartsmith per request, I migrated this to discussion here, although I am confused why considering I used the accepted-in issue template :thinking:

https://github.com/sunflower-land/sunflower-land/discussions/1126

Demonbane18 commented 2 years ago

I've been wishing for this feature since the start of the game in V1, it's frustrating to accidentally plant the wrong crop or if I have a plant with long duration like wheat and I want to remove.

adamhannigan commented 2 years ago

Great work 👏

This will be an awesome feature.

My main thoughts are how can we make players work for this shovel? It seems like a great goal they can achieve. I would suggest making this available in the Blacksmith for roughly 5-10 SFL + a mixture of wood/stone. The exact requirements are not a blocker, we can tweak these before launch.

I would suggest everyone starts with a Rusty Shovel, then must craft a "Normal Shovel" at the Blacksmith. This helps with the narrative of a Goblin stealing a shovel if everyone starts off with one.

ShiningMinions commented 2 years ago

STATUS UPDATE: We are working on this now! I believe the "Normal Shovel" will be out-of-scope for this particular issue, but we can definitely follow-up this feature with a new "Normal Shovel" feature :+1: .

Look out for PR here within the next several days.

As a reminder, we will need back-end support to complete this feature.