pandorabox-io / pandorabox.io

Pandorabox infrastructure code
https://pandorabox.io
31 stars 4 forks source link

Better armors #434

Open S-S-X opened 4 years ago

S-S-X commented 4 years ago

Would be nice to have better balanced armors.

Currently some combinations make players nearly immortal against mobs, not very good imo in game setting that is supposed to be somewhat survival oriented.

So I propose changing armor parameters a bit by reducing armor levels of high end armor: mithril, lava, diamond and if needed compress values of all armors proportional to wooden armor pieces keeping it as reference point (base values).

Not directly related but suffocation in space should also happen a lot faster when not wearing anything or wearing armor that is not space suit.

A bit more related: Space suit has been useless for long time, partly because any other armor is so much better and partly because space suit is not really required in space (moon, asteroids, mars surface). This could be made better if suffocating would happen faster and immortality armors would not make you nearly immortal in space.

JRPete2020 commented 4 years ago

New players are also obtaining high end armor with no effort or work at all within minutes of joining.

OgelGames commented 4 years ago

I don't think there's anything wrong with the armor, though it would be good to make the spacesuit more valuable/worth using.

S-S-X commented 4 years ago

I don't think there's anything wrong with the armor, though it would be good to make the spacesuit more valuable/worth using.

I think that one would happen if suffocation could happen maybe 4x faster in space. Any other suggestions how to fix it?

OgelGames commented 4 years ago

suffocation could happen maybe 4x faster in space

That would be a good way to fix it, if it's possible to change it.

S-S-X commented 4 years ago

I'll do some tests with drowning, should be possible.

thomasrudin commented 4 years ago

@S-S-X sorry, i may have crossed you in your work again :/ I added a damage-mechanism for vacuum-exposure without space-suit (https://github.com/mt-mods/spacesuit/commit/8df57b314e84ca5b8b2a862eb899cddce80ad270) It reduces your hp if you are standing in vacuum:vacuum without proper protection...

Let me know if/what you already did in that direction (sorry, i saw the self-assignment too late...)

S-S-X commented 4 years ago

Similar thing but without damage, only a lot faster suffocation. Now I changed it a bit to include damage you added but still faster suffocation first.

6r1d commented 4 years ago

Since we were talking in main chat with spider about lava armor having a minimal XP limit, I'll record it there. As @S-S-X stated, lava placing limit is useful for that (55000 xp). Advantages: less people begging for "top" armor, less possibility for bots with top armor later. Maybe I forgot something.

OgelGames commented 4 years ago

lava armor having a minimal XP limit

That could be good I guess, I'd rather it be limited than have the armor change.

thomasrudin commented 4 years ago

Since we were talking in main chat with spider about lava armor having a minimal XP limit, I'll record it there. As @S-S-X stated, lava placing limit is useful for that (55000 xp).

fyi: The xp mod/limit was originally intended for keeping away newbies from "cobbling" up nice neighborhoods...

XP-Limiting the lava-armor (and potentially others) is ok i guess, there were some equip callbacks in the 3d_armor mod, maybe those can be used for that..

6r1d commented 4 years ago

fyi: The xp mod/limit was originally intended for keeping away newbies from "cobbling" up nice neighborhoods...

Understood. I am just moving discussion about new changes from the chat. The motivations we have:

S-S-X commented 4 years ago

Require crafting lava ingots and XP enough to be allowed to place lava.

How bad it would be to add another on_craft event handler that checks if player has crafted lava ingots and then sets some property for player that allows using lava stuff. That will be called very often when players craft stuff, however it should not be very expensive check as additional checks are only required when crafted item matches lava ingot (or something that requires "training").

Something like

local on_craft = function(itemstack, player, old_craft_list, craft_inv)
  if itemstack.name == 'lavastuff:ingot' then
    player::get_meta()::set_int('lavastuff_training', 1)
  end
end

idk if this works, just idea of possible training stage ^^

thomasrudin commented 4 years ago

Require crafting lava ingots and XP enough to be allowed to place lava.

Possible "cheating" vector: a "friend" gives you lava-orbs or you simply buy them...

S-S-X commented 4 years ago

Require crafting lava ingots and XP enough to be allowed to place lava.

Possible "cheating" vector: a "friend" gives you lava-orbs or you simply buy them...

Very true, I was actually thinking more about training requirement and this could be just one part of it. By incrementing lavastuff_training (or spacesuit_training or whatevertraining) we could easily have levels and multiple ways to achieve goals.

1 player might craft lava ingots (+1), then use lava tools (+1), kill lava flan (+1), place lava (+1), dig obsidian (+1), reach some xp amount (+1) and then we allow using things:

using lava tools require > 0 lavastuff_training wearing lava armor require > 4 lavastuff_training level

So crafting would be just one stage for whole thing.

S-S-X commented 4 years ago

Currently trying to implement armor stand that features quick switching for armors:

  1. Click on formspec button (or even sneak rmb on stand)
  2. Armor you are wearing is taken off
  3. Armor on stand is taken off and moved to your armor inventory slots so that you start using armor from stand.
  4. Armor that was taken off from you at step 2 will be placed to armor stand.

Armor inventory is bit weird detached:playername_armor inventory andd I've had challenges with creating safe enough formspec because of this. We'll see how it goes, I think many wanted feature like that to easily switch armors.

OgelGames commented 4 years ago

Currently trying to implement armor stand that features quick switching for armors

Nice, I almost never use the armor stands because of how slow it is :smile:

S-S-X commented 4 years ago

Just dropping updates every now and then, here's some progress: https://github.com/mt-mods/3d_armor/tree/armorswap Fast armor switching basics seems to work, UI is still terrible and did not yet find a way around detached armor inventory formspec issue. Also shield stays hidden when added to stand, not sure what I need to do for that. But like said, basic and most important functionality seems to work which is one click armor swap.

thomasrudin commented 4 years ago

Fast armor switching basics seems to work

Nice :+1:

UI is still terrible and did not yet find a way around detached armor inventory formspec issue

Its minetest... :man_shrugging:

Also shield stays hidden when added to stand, not sure what I need to do for that.

The shields were never part of the visuals afaik...

But like said, basic and most important functionality seems to work which is one click armor swap.

Shy question: is this playable? If so: incremental updates/changes hurt less than a single big change -> can we merge that into master or is this a bad idea?

S-S-X commented 4 years ago

UI is still terrible

Its minetest..

Minetest deserves a bit better stuff than that..

The shields were never part of the visuals afaik...

True for armor stand, however I could not find much difference between other armor parts. For entity object I think it gets correct texture at least, maybe it fails loading shape or something. I've only played with blocks and don't yet know how that is supposed to work.

Shy question: is this playable?

Sorry, no. While doing some testing I found bug that allows item duplication with hazmat suit. Have to at least fix that first. Caused probably by fact that hazmat belongs to multiple armor groups.