Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Houkime

#1
Description:

Allows spaceships to have detectable interiors (no structural beams needed) and allows them to do suborbital jumps. With planned animation (droppod style).
Currently in early stage with working (i.e jumping) prototype done.
Prototype can currently transport pretty much everything except zoning.
Without animation yet.

After developed it is supposed to be integrated with things like RimVerse and such and be a framework for other mods.
Feel free to use detailed concept below and code in your mods (or continue it yourself if I abandon this). Just keep in mind that everything is subject to change.
All tips are welcome.

Mechanics:

Modified ship ComputerCore.
When commanded to launch a suborbital jump does following (at least this is a plan):

1. Detects ship boundaries and returns ship area as List<IntVec3>. (yes)
2. Constructs full lists of floors, walls and other buildings, pawns and things (possibly zones) inside ship area. (yes)
3. Asks player to select destination (like transportPod). Uses the constructed catalog to project ship boundaries allowing to select suitable place for landing. (yes)
4. Despawns entire ship except for ComputerCore itself and packs it into inner storage. (yes)
5. Using massive Draw() override and disabled Print() projects an illusion of a ship (based on the stored info) instead of despawned actual ship. (not yet)
6. Performs takeoff animation. (not yet)
7. Forms DropPod-like object on the global map but with more content attached to it. (yes)
8. Travels. (yes)
9. On arrival spawns ShipComputerCore that makes an illusion again and on touch down spawns everything. (no illusions yet)

Progress:

Step 1. Simple Illusions. (done)
Managed to make ShipComputerCore mimick different flooring and buildings with Draw() or Graphic() overrides.

Also managed to make ShipComputerCore look like it launches itself in the sky on command despite it being a building (you need to conditionally override Draw, DrawPos, disable Print and call a dirtymesh cleanup for this.)

The reason I did this first is because flooring in game is very different from Things and you need special tricks to make it move smoothly. I wasn't sure it is possible from start but seems like it is mostly ok.
Ideally I will also mimick items and pawns and lights and shadows but it seems like it should be ok so I better prove other stuff first.

Step 2. Ship boundary detection (Done. Ship area is now connected together by any floors and walls)
Created basic selection overlay for ShipComputerCore to visualize ship area.
Decided to make first iteration of area to be Everything that is connected by walls or floors with the Core.
Wrote a recurrent algorithm for boundary detection and it works.
Right now floors-not floors is decided by having/not having a blueprint def in Terraindata. I did it because i wanted for mod to be as compatible as it can.

Step 3. Basic ship contents detection. (done)

Ship now correctly detects all flooring, walls, buildings, items, dirt and pawns inside without double detections. No roof detection yet.
I also overwrote gamend spacelaunch conditions so that ship can now search for needed parts on entire ship grid. Ideally it will require them to be powered.

Step 6. Basic worldmap/localmap landing area selection interface. (done)

Made a raw but working adaptation of user interface from compLaunchable.

Step 7. Basic Travelling Spaceship worldobject. (done)

Prepared mostly-empty but working "spaceship" that is created on launch, is visible on map, travels to destination, sends a message on arrival and is ready to be filled with shipgrid info and actions.

Section: This Map-> This Map transportation tests (via Travelling Spaceship worldobject)
                Step 8. Floor transport. (done)
                 
                          If launch was ordered from pause state... then some unknown...  bad thing ( it brought me a lot of headache) tried to nullify flooring storage of a ship on unpause. Protected my ship storage by adding special setter which DOES NOT allow nullification... and now it seems to work... Yes, Rimworld is a dangerous place indeed.
...Maybe i can use the setter to catch this flooring thief ( like "oh... the value you want to set is null... Can you tell me your name, please?"), but I don't know how to do it yet.

                Step 9. Item transport. (done)
                Step 10. Building transport. (done)
There is a bug in game where simultaneous deletion of walls with doors inserted like X|-|-|X results in a bunch of errors. Was forced to invent a workaround for this. Now works without errors.
                Step 11. Pawn transport.(Done. At least no bugs noticed yet.)
Used 40kInjector (see Acknowledgements).
Detoured Pawnsfinder.get_AllMapsCaravansAndTravelingTransportPods
Detoured PawnsUtility.IsTravelingInTransportPodWorldObject(Pawn pawn)
Now pawns in spaceships should be counted as pawns in droppods.
                Step 12. Roof detection and transport.(done but no hanging outside roof detection yet. For number of reasons including potential problem avoidance and aerodynamical realism it is probable that it will remain this way.)

Step 13. Full destination selection interface with multicell checks based on ship area. (done)

Section: This Map-> Other Map transportation tests.
                Step 14. Automatic landing area selection.(Seems to be working. It is random so hard to tell.)
                Step 15. Attacking other bases. (Done. Well, at least it seems to work.)
There was a funny bug with generated map for some reason starting with null sections[] but putting MapDrawer.RegenerateEverythingNow() was enough to counter this.
There is only one deployment method at the moment and it is "at the edge".
I was experimenting mostly with small "spaceships" though and it looks like bigger ones should have much more trouble with finding place to land.
Don't know what to do with that for now. Maybe less limitations on where it is possible to land (right now for every cell of the ship it is similar to droppod except for it cannot punch through roofs) or an ability to crashland.
                Step 16. Settling with spaceship. (done with cat sleeping on knees)



[Note] Keep in mind that animation is not really necessary for mod to add to gameplay.
If all animation efforts will fail I will just use default screenfader to white to hide the moment of launch. (I will put it there anyway till animation is done)
So when Step 16 is done I will call it a working prototype.

Section: Static ship illusion.
             Step 1. Floors.
             Step 2. Buildings.
             Step 3. Items.
             Step 4. Pawns.
Step 5. Takeoff and landing animations.
Step 6. Shadows and lighting.

Screenshots:

On this screenshot cyan "ship" outline is shown.
ShipComputerCore pretends that it is just wooden plancks and certainly not a modified core.



Landing site selection interface (on world map standard droppod interface is used.)





Abanqueiro was tired of short jumps that evil Houkime forced him to do over and over (and also from other colonists trying to catch his jumping cabin) and this time jumped much farther.

A few seconds before jump:


And after his multi game-hour flight:



Acknowledgements:

Detours (2 methods) in this mod are made using 40KInjector which is cpt. Ohu's convenient repack of CCL-team detouring methods. Injector was taken from his colossal mod Warhammer 40K Corruption. You can find it here:
https://ludeon.com/forums/index.php?topic=28422.msg286833#msg286833


Downloads:

A bit bugfixed GridTOL prototype is attached.

[attachment deleted by admin due to age]
#2
Ideas / Suggestion subforums (tags?)
January 04, 2017, 07:03:22 AM
Suggestion forum could use some thematical categorization to group threads about changes in different spheres.
This way it should be easier to analyze trends and opinions in different fields and find threads of your ROI to discuss them.
This also should provide more basis for suggestors to form teams to mod their overhauls into RimWorld as something big and structurized like Lovecraft mods, Hospitality and such.

As an alternative, a tag system so that categorization can be done using different subdivision sets simultaneously.

This should provide the community more power to collectively propose structurized plans of different aspects overhauls. (because to make it into game your suggestion should be a part of a system and play nicely with everything else)

Shortly: More coop, more mods, aspect-wide suggestion reviews (?), better analytics for admins, more replies, less duplicating threads and less threads forgotten.
#3
Ideas / Break: Outrageous Deconstruction
January 01, 2017, 11:31:12 AM
Self-explanatory.
Alternative to Berserk but with deconstructing walls and equipment instead of people.
A bit strange that there is no such a thing in game already.
IRL people often do this.

Maybe effect should be limited to one item if it is something valuable.
#4
Imagine you're a tribe and have a trouble with research.
You start as a small group of tribesmen and with time you accept some colonists from spacers, pirates and such.

It's a bit strange that an educated spacer will live with a tribe without any comfort if he, for example, was a spaceship engineer.

There is a language barrier implemented in game, but engineering stuff can be transmitted via schemes and just by building some stuff.

So the basic idea is that if a spacer or other high-tech entity joins you, he has some chance to transmit you some technological knowledge based on what research is open for you (no jumps).

And if a tribesman joins spacers he might tell them how to make Pemmican ^_^

Higher tier research will be granted extremely rare this way because you rather encounter a man who knows how to use electricity than a man who knows how to work with antimatter. And antimatter knowledge will be much harder to transmit.
#5
Ideas / Actions that require nobody looking
January 01, 2017, 09:47:39 AM
The main idea is that pawn's behavior can be different when there are other pawns in the same place or when there are no.

For example, you can notice that now in Rimworld Lovin' takes place no matter whether bedroom is shared or not or whether there are witnesses.
The same with narcotics/alcohol usage.
And art.

However in reality majority won't do Lovin' when there are people around.
Part of narco users won't inject narcotics when others are looking.
Part of booze consumers don't like others seeing them drinking.
Part of artists dislike doing art or won't do art when others are looking.

(And actually the same with many labor-intensive tasks that need concentration.
"Go away, Greg, I'm disassembling mechanoid here")

Part of people just gets a mood boost when there is nobody around.

It would be nice if this could be implemented in some form.
#6
Ideas / Break: Leaving colony (and returning?)
January 01, 2017, 08:31:37 AM
Requirements:
Mood for extreme break (alternative to berserk. When you are in mood to kill someone you probably can decide to escape as well), or alternatively 0 or -10 -ish mood mark.
A bit of food (grabs if not in inventory). May depend on distance to another colony.
Not too harsh outside conditions (or good equipment to cope with it).
OR transport pod.
No lover in colony. (Alternatively: relationships define mood mark for leaving)

Action:
Pawn doesn't obey, grabs some food, grabs some money (optional) and goes away on foot or  by transport pod.

Returning:
1. Transmission from pawn asking whether you want him back. (Some chance)
Returns without money. ^_^
2. Pirates catch your pawn and ask for ransom.
3. In a raiding party.
4. In a trade caravan.
5. In a slaver caravan as a slave ))))))
#7
Ideas / Fast hypothermia in cold shallow water
December 29, 2016, 06:39:48 AM
Noticed that colonists can walk through extremely cold shallow water, for example, on the Sea Ice, and have no problems with their legs being frozen like hell.

I suppose that it is not a bug for Bug Section, but this is obviously not right.

And it shouldn't be very hard to implement a fast hypothermia when pawns are in a very cold water.
#8
Joy and social fighting activity:

Wise people shouldn't always beat someone unconscious if they don't like each other. Snowball or two on the way back from mining could release some steam and even improve relationship.
(Honestly Rimworld lacks a bit of Games_for_relationships mechanics :(( )

Warfare and hunting

Don't have wood to craft a bow and metal to forge a gun?
But do want this small snowhare or squirrel?
Chance is small but you can try your luck.

Want to beat a lonely raider but don't want to shoot him to death or have bruises all over your face?

Make a big snowball with lots of heavy ice and try to stun from distance!

(IRL snowballs can be built very tough and heavy in some conditions. Personally have been unpleasantly shot with such a few times...)

Like snowmen, it should be possible to make snowballs everywhere where there is a snow cover.
#9
Ideas / Corpses and blood for Scenario Editor
December 19, 2016, 09:35:30 AM
Recently tried to recreate a massive massacre scene as a starting condition for a new colony.
So that people have huge debuffs and can eat human meat if neccessary (far North).
But I couldn't do it because scenario editor doesn't have corpses in Scattered across the map menu.

Instead I scattered it with human meat and leather (and also graves, evil snowmen and permanent lightning storm).

So I thought it would be great if we could scatter map with blood and gore.
So that people can have their moral debuffs and meat and have to clean their place from this (and use as a moral weapon against raiders).

And just some dead people to add to an atmosphere to some scenarios.

Thanks for reading.