Code Monkey home page Code Monkey logo

Comments (7)

IntegratedQuantum avatar IntegratedQuantum commented on June 1, 2024

I generally think sharpening could be an interesting mechanic to have, but I think your approach is too complicated.

How about the following instead:

  • You can use different stone types to make a grindstone, which can be placed in the world.
  • No UI, just right click the grindstone with the tool. (Also maybe there should an indicator next to the crosshair)
  • Whenever a tool is sharpened it directly looses durability. This makes it more obvious to the player what the trade-of from sharpening is.
  • The durability loss is proportional to the max durability of the tool.
  • When using a tool, sharpness is lost. Sharpness loss is proportional to the durability of the tip material.
  • Sharpness value after sharpening depends on the grindstone type.
  • Sharpening applies to all edges of the tool, that's just easier to implement.
  • Sharpness affects damage and efficiency calculations, and increases them by a small amount.

from cubyz.

colinwilcox avatar colinwilcox commented on June 1, 2024

I think from a systems point of view a generic solution for building buffs/debuffs for items would definitely be good. Then the effect of the sharpness buff would depend on the context of how it is granted. So the grindstone would determine that based on the type and material of the weapon/item being used on it. But you could also have good loot with particularly long or effective sharpness buffs already attached via RNG, etc.

from cubyz.

Glek3197 avatar Glek3197 commented on June 1, 2024

Grindstone seems to be the better way to implement sharpening, tho I think materials of sharpened tool should impact results greatly as well. Also we could have pocket way of sharpening, like sandpaper, to sharpen tool right from the inventory, but tradeoff for not using grindstone in that case could be something like less sharpness value and limit of maximum sharpness value that could be achieved that way.

from cubyz.

IntegratedQuantum avatar IntegratedQuantum commented on June 1, 2024

Also we could have pocket way of sharpening

Yeah, a grindstone, that you can carry around and place anywhere :P
I think no one would use the weaker sandpaper, when they can just take the real thing.

tho I think materials of sharpened tool should impact results greatly as well.

I agree, but I fear that this might make the system to complicated. Mod creators and players alike need to keep in mind more, and more interactions between these different systems.
That's why I proposed to make it depend only on the durability.

from cubyz.

colinwilcox avatar colinwilcox commented on June 1, 2024

I agree that it shouldn't be too complicated. With this sort of game less is often more.
Also you might not want this to be something that is so good and easy that players feel compelled to always do it all the time, because that just means it becomes a tedious, rote action that just gets in the way. So making it balanced could mean that players only do it when they're in a hurry and want to mine or cut trees quickly, but at the expense of a significant hit to durability.

from cubyz.

Glek3197 avatar Glek3197 commented on June 1, 2024

Mod creators and players alike need to keep in mind more, and more interactions between these different systems.
That's why I proposed to make it depend only on the durability.

I want to find a way to keep things simple while getting complex results. Having durability as the only thing that impacts sharpening would be a good way to keep system simple, but there would be no complex results.

What about using thing, that would describe specific custom behavior of something, if needed? lets say, attributes, that can be assigned to item or entity. Those attributes have type and store one or few values. When grindstone encounters tool with "tool" attribute type, it uses value X, value Y and value Z to alter resulting sharpness, durability and max durability changes of tool, otherwise - everything happens as usual, getting sharpness while using only durability and max durability values. If attribute is present but no value is set within - it be ignored. Lets assume value X represents sharpness multiplyer, value Y represents durability multiplyer and value Z represents max durability multiplyer. Those values can be assigned to a tool requiring specific grindstone behavior and are not general, assigned to specific item according to whatever formula defines those, when crafted.
After that, instead of using just value of sharpness, durability or max durability in whatever formula this could use, it uses those values multiplied by relevant multiplyer values, stored in attribute.

As a result, if someone wants to add their own brand new pickaxe of netherium diamond ingots via altering game code, but doesn't want to deal with custom properties and assigning their ingots as new material, setting properties etc, they just dont have to, and their tool will be just as any other, with their custom or not durability, efficiency and damage, having no attribute that would alter sharpening of tool of theirs when using grindstone.

from cubyz.

Glek3197 avatar Glek3197 commented on June 1, 2024

I agree that it shouldn't be too complicated. With this sort of game less is often more.
Also you might not want this to be something that is so good and easy that players feel compelled to always do it all the time, because that just means it becomes a tedious, rote action that just gets in the way. So making it balanced could mean that players only do it when they're in a hurry and want to mine or cut trees quickly, but at the expense of a significant hit to durability.

I don't know if repair mechanic is implemented, will be, or won't be, so there I assume it will be. I don't know if there would be hard limit of how much sharpness value could someone have, leading to hypothetic possibility to create tool with 1000 durability and 500 sharpness, so you would need to sharpen it like once or twice before it breaks or before you would have to repair it.
So people could do sharpening only few times in entire tool' lifespan, enjoying slight speed increase at the expense of halving hit to durability.
It could be another way, giving limited maximum sharpness calculated from max durability of tool, and the more you sharpen it, the more impact sharpness effects have.

from cubyz.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.