pandorabox-io / pandorabox.io

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

Sixth armor slot for spacesuits #442

Open 6r1d opened 4 years ago

6r1d commented 4 years ago

I was discussing a spacesuit with @SwissalpS and had an idea about it. In real life, astronauts use this thing to well, stay alive: this device removes CO2 from air the astronaut is breathing.

What I'm proposing is a consumable, one-time scrubbing cartrige. It will prolong the amount of time player can be in space.

A recipe can contain:

Bone meal should be burned to get calcium oxide / quicklime.

Salt should be converted to NaOH with some device that applies both heat and electric arc, special membrane or other unusual stuff. We don't have devices to make this material, but we can make an alloy of salt and default:mese_crystal_fragment.

I think I will find some use for both these materials later, but the time will show and right now I'd like to start further discussion.

SwissalpS commented 4 years ago

however it is implemented, it should not block path for other options to use sixth slot, guess that needs no saying

S-S-X commented 4 years ago

however it is implemented, it should not block path for other options to use sixth slot, guess that needs no saying

For space suits I think there's still 2 slots left for use, and of course you cant expect to keep all upgrades, armors and talismans on you all the time :man_astronaut: Therefore I think using up one of those slots in exchange for significantly longer spacewalks sounds pretty good for me. It still leaves one slot free for future use.

I think it is better to use up slots (or whatever that comes in limited numbers) instead of providing one time upgrades for items, this adds a lot more variation to gameplay and requires players to think about options and best equipment for different situations.

6r1d commented 4 years ago

however it is implemented, it should not block path for other options to use sixth slot, guess that needs no saying

It won't.

I doubt we should add much code to scrubber: extension of spacesuit air calculator should be enough. Player has a scrubber - take less air at a given time interval.

The only calculator a scrubber can have is a damage, imo. Just to prevent users from changing a spacesuit to prolong scrubber use.

this adds a lot more variation to gameplay and requires players to think about options and best equipment for different situations.

Exactly!

SwissalpS commented 4 years ago

If you don't wear shield, yes you have two slots free, so would wearing two scrubbers help in some way?

S-S-X commented 4 years ago

If you don't wear shield, yes you have two slots free, so would wearing two scrubbers help in some way?

I'd say that it should not be possible to wear multiple. This does not affect current gameplay but if another item is implemented then you have to choose which ones to use. For this I think it is good to use those slots so when other items are added you have to choose which ones you are willing to use.

Then, how should regeneration work for scrubber? Combine with items to regenerate? Put into some machine? alloy furnace with tubes? :smile:

6r1d commented 4 years ago

If you don't wear shield, yes you have two slots free, so would wearing two scrubbers help in some way?

It should not help. Oxygen is consumed by player, carbon dioxide is removed by a scrubber quickly. Plus, players can replace this consumable later. We already kind of cheat with air pumps working for free and space suits working for more than in-game hour, right?

Making more oxygen for breathing is a different task, which requires both space and energy. None of it is available in a spacesuit.

And, as it often happens in chemistry, splitting CO2 it's very labor-intensive: hydrogen from water is used for fuel and you need to add lots of energy to split hydrogen from oxygen. You need to use even more energy if you'd try to split carbon dioxide, I think. Plants do this with solar energy, but plants don't move much and manage resources differently.


What we can do in future is to add scrubbers with more life-time. If realism concerns us, lithium is the best candidate, because it's a very light metal and its production requires drying artificial lakes in a desert. Exchange of labor for quality.

6r1d commented 4 years ago

Started writing minimal implementation in this branch. For now it's messy and I understand that drawing tiny images in Blender is a bad idea.

Now I have some questions.

There are groups like armor_head, armor_torso, armor_feet and armor_legs.

How do I define a new group, so I can place a scrubber in armor slots without conflicts without boots, pants, shield, etc? Maybe I should ask in other mod's issues, but I am not sure, which mod it should be.

Should I add caustic_lime material into vacuum mod, spacesuit mod, basic materials? I think it may have other uses like concrete.

OgelGames commented 4 years ago

How do I define a new group, so I can place a scrubber in armor slots without conflicts without boots, pants, shield, etc?

Just add the group to the armor.elements table, like the shields mod does: https://github.com/mt-mods/3d_armor/blob/master/shields/init.lua#L20

The readme here also explains it a bit: https://github.com/mt-mods/3d_armor/blob/master/3d_armor/README.txt#L136

Note that the "armor_" prefix is automatically added when accessed: https://github.com/mt-mods/3d_armor/blob/master/3d_armor/api.lua#L448

Should I add caustic_lime material into vacuum mod, spacesuit mod, basic materials? I think it may have other uses like concrete.

Probably would be good in basic_materials if it's used in other mods, but for the moment probably just put it in the spacesuit mod.

SwissalpS commented 4 years ago

maybe add a generic group like 'auxilary'

6r1d commented 4 years ago

maybe add a generic group like 'auxilary'

Let's try that. If I define this group for a scrubber, it won't change the fact it's not a specific armor type.

I saw 3d_armor mod in pandorabox-mods and it contains head word in api.lua file (armor > elements). It's a far fetched idea, but what if I can change something there?

If I will add auxilary word next to head, something happens: probably I will have to add a texture, maybe a 3d model, too. Stop me if I'm going in a wrong direction. :D

SwissalpS commented 4 years ago

I've been thinking about other ideas that have been proposed. Helmet flashlight comes up often. Scrubber and flashlight may conflict as you don't need flashlight in vacuum. But then geiger device should be possible to wear together with scrubber.

6r1d commented 4 years ago

In one hand, I'd like more slots for a spacesuit, so maybe it'll be armor_scrubber, not armor_auxilary?

In other hand, I think these two cases have realistic solutions.

Helmet flashlight

Why not make it a helmet upgrade? I don't think that intense light mixes well with a glass near the face realistically.

Geiger counter

Again, a chestplate upgrade seems like a working solution.

S-S-X commented 4 years ago

In one hand, I'd like more slots for a spacesuit, so maybe it'll be armor_scrubber, not armor_auxilary?

Think about its properties: can you carry many of those? Should it use some well defined slot but still represent something general like torso, feet, head, legs?

I think armor_backpack would be very good group for this, also you should not be able to wear multiple backpack like devices so it should use up backpack slot.

Groups should not define what device is or how it is used, it should tell how player wears it. armor_shield is not actually very good group so dont follow that route. Instead follow armors route.

I saw 3d_armor mod in pandorabox-mods and it contains head word in api.lua file (armor > elements). It's a far fetched idea, but what if I can change something there?

No, don't do that. Do not touch api.lua when you are adding armor (unless you are adding group registration function which it does not have). Function with similar name is not for that btw.

Just add your group to armor.elements table using table.insert and then register your armor and add any extra stuff you need.

S-S-X commented 4 years ago

I've been thinking about other ideas that have been proposed. Helmet flashlight comes up often. Scrubber and flashlight may conflict as you don't need flashlight in vacuum. But then geiger device should be possible to wear together with scrubber.

Armor group should be armor_hand, we only have one hand btw :smile: Geiger counter should take shield away and other hand is used for digging / weapons. So easiest way is to add geiger counter and similar items to armor_shield group.

Of course it would be nice to add armor_hand group for shield but that also causes some work refactoring inventory groups because if that would be changed then it should not be possible to use items belonging only to armor_hand but not to armor_shield group with shield. Also armor_shield probably cannot be just removed, I believe that there's probably other stuff in other mods dependent on that group.

6r1d commented 4 years ago

Thanks for your advices regarding armor, @S-S-X. It'll be a backpack, then.


I guess it's time to say hello from space.

Textures for armor are ugly, so if you have a better idea, add it, please.


I wonder if there's a trick to always display this backpack over normal armor. For now it depends on order I put armor on.

SwissalpS commented 4 years ago

I wonder if there's a trick to always display this backpack over normal armor

I consider it a feature that some would miss, if the order didn't matter any more. :D

S-S-X commented 4 years ago

I wonder if there's a trick to always display this backpack over normal armor

I consider it a feature that some would miss, if the order didn't matter any more. :D

Second that. Better approach would be to add mesh for backpack into character armor model 3d_armor_character.b3d. Blender cannot import b3d files well but fortunately there's blender source file included into repo and exporting to b3d should work well enough from blender. (it can import but it wont import all the data correctly)

Actually I did take a look into model and there seems to be head, torso, feet, legs, shield and cape. That's 6 slots, so cape is 6th armor slot. However model might not best one for backpacks but could maybe work, would be good to test if it is easy enough to try it and see what happens. I'm not sure how those actually work... but somehow it uses those vertex groups to select where to draw armor.

6r1d commented 4 years ago

Sounds awesome, I'll try to do that, then. :-)