ddnet icon indicating copy to clipboard operation
ddnet copied to clipboard

Decouple ninja skin from frozen states, and add options for freeze/deep freeze skins

Open kaitlynia opened this issue 3 years ago • 7 comments

I know cl_show_ninja exists, but we should offer more settings, since we are already adding settings for aspects of the client that have not changed for a long time. Here's some suggestions:

  • cl_freeze_skin for using a skin other than x_ninja to show frozen tees
  • An option to show a tee's original skin while frozen, like cl_show_freeze_skin 0 (this could cause confusion with live freeze states, but could be disambiguated with settings like cl_live_freeze_skin and cl_show_live_freeze_skin).
  • The ability to use a separate skin for deep freeze (cl_deep_freeze_skin and cl_show_deep_freeze_skin respectively)

Ninja would still show as x_ninja, unaffected by these settings. We could go further by adding a skin setting to match the others, like cl_ninja_skin, but I think this setting is unnecessary since players are already acquainted with changing the x_ninja skin themselves.

kaitlynia avatar Apr 13 '22 11:04 kaitlynia

Adding more settings and complicating the code is not worth, you can just change the .png files.

edg-l avatar Apr 18 '22 12:04 edg-l

@edg-l still does not acknowledge that the freeze skin and ninja skin are not interchangeable and there's no option for deep freeze, I don't see it as being "worth it" or not, just a completely different change than what you're suggesting

kaitlynia avatar Apr 19 '22 10:04 kaitlynia

I think deep freeze skin is a good idea, it feels like a very unintuitive mechanic with how small a visual difference there is. I think if we want to minimize additional configs we could just implement a separate freeze,deep freeze, and live freeze skin then let users change the .png files, but add cl_deep_freeze_skin and cl_live_freeze_skin which work the same as cl_freeze_skin does now.

sjrc6 avatar Apr 21 '22 05:04 sjrc6

Instead, we could try to come up with a better graphic for freezing a tee (and deep and perhaps live freezing it). The current graphic is unintuitive for newcomers. This could be seen when watching and talking to new players playing the tutorial.

There's probably even an issue about it already.

heinrich5991 avatar Apr 24 '22 23:04 heinrich5991

This still does not address the fact that despite how many things are being made accessible from the console, we still have these random reservations about manually changing filenames (change sounds, change x_ninja, change editor entities) and it does not make much sense to me. Even if we do add deep_freeze.png or something like this they still will not be able to change it in game, which is essentially half of this issue description. If we require splitting the two ideas into separate issues we can, but I'm mainly just lost (we already have player_skin and dummy_skin client-accessible)

kaitlynia avatar Jun 17 '22 02:06 kaitlynia

What do you mean with, you are not able to change it in game. You can change it in your user config directory, should be enough for a change that you do once. An Assets tab would be cool, but is a lot of work currently, (the code needs to be refactored to make it easier to add a new tab). Also an Assets tab for sounds will maybe come, there is an Issue open for it.

Currently we have no own graphics for freezed players (nore special handeling, the server sends that the tee is a ninja thats it... nothing more, additionaly the server ignores inputs). Thats why a setting for a freezed skin is useless. We first must build and agree on a new form of how freezed players are displayed, and then we can think about customization options.

C0D3D3V avatar Jun 17 '22 21:06 C0D3D3V

Sorry, a couple years late in responding to this 😅

@C0D3D3V You have a great point there in the last paragraph. I'm renaming this since I was naive in assuming it was possible client-side. Of course, care would need to be taken to provide x_ninja.png for older clients that expect it and cl_freeze_skin / cl_deep_freeze_skin / cl_live_freeze_skin settings otherwise. Expected behavior includes fallback to cl_freeze_skin if cl_deep_freeze_skin is 0 and fallback to x_ninja.png if both are 0. Default values would depend on community preference for deep freeze. I think live freeze is already represented well enough since it's already apparent that they cannot move and the particles show, so default value should be 0

kaitlynia avatar Mar 12 '24 04:03 kaitlynia