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 - Lakuna

#1
Releases / [1.1] Prepare Moderately
April 11, 2020, 05:34:48 PM
View this post on Reddit.

Hello, all!

Prepare Moderately is a mod I've wanted to make for a very long time - almost since I started playing in Alpha 8. Usually I wouldn't post about a mod release, but this is one I'm very excited about and I hope that you will be as well.

Prepare Moderately
Prepare Moderately is based on Prepare Carefully, with the most significant difference being that it leaves most parts of your pawns up to chance, while only making you choose the parts that are relevant to you. It is similar to Verify Landing, except that it allows you to control much more than just the skill levels of your pawns, and also works on an individual basis.

In the pawn selection screen at the start of a game, a button is added to the top which allows the user to define "filters" for pawns (in a very similar way to the scenario editor screen, which it was based off of). Whenever a pawn is randomized by the user, it will continue to be re-randomized until the pawn fits the defined filters - saving a ton of time.

Links
This mod can be found on the Steam workshop here and on GitHub here. My other projects can be found through my website at https://lakuna.pw.
#2
My problem:
I've been working at a smallish mod for about a week now and I've run into a bit of a roadblock. For this mod to work, I need to have access to the currently selected pawn on the starting pawn configuration page, but I can't find a good way to do so.

In the following code snippets, page is used to refer to the current instance of RimWorld.Page_ConfigureStartingPawns. I'm already using Harmony so any solutions which require it work perfectly for me.

I know that the page I need to work with is an instance of RimWorld.Page_ConfigureStartingPawns. I believe that the variable I want to access is page.curPawn, but it's private so I can't be sure and I can't access it anyway. There's a method called page.SelectPawn(Pawn c) that I would be able to take it from fairly easily, but it seems that it doesn't actually occur when the player selects a different pawn in the pawn list. Additionally, I am aware that I can get a list of the pawns from Find.GameInitData.startingAndOptionalPawns, but I need to be able to tell which pawn is currently selected (or at least which pawn is actively being randomized whenever a pawn is randomized). The method which randomizes pawns is page.RandomizeCurPawn(), which is what I'll eventually need to modify, but it doesn't reference the pawn being randomized except through page.curPawn. I'd prefer to avoid using reflection for obvious reasons, but if I must use it what is the best way to do so?

Context in case it's needed:
I'm making a mod which is intended as a replacement for EdB's Prepare Carefully - which is a great mod, but I've always wanted an alternative which still leaves some part of the pawns up to chance. This mod will allow the player to define a filter which pawns must meet at minimum. Then, whenever the player randomizes a pawn, the game will automatically re-randomize that pawn until they meet that filter. The repository can be found here on GitHub - although please note that since I've been working on this issue for a bit some parts of the code are temporary and not intended to be in the final product.

Thank you in advance.

EDIT: Formatting.

EDIT: I've already looked through the code for similar mods such as Prepare Carefully and Verify Start and am actively using them as reference. The problem with both examples is that they only access all colonists at once (which I already know how to do) rather than just the one that is selected.

EDIT: I found a way to make this work that I'm somewhat comfortable with by comparing names of pawns before randomizing to after, but I still feel like there must be a better way and would like to know if there is.
#3
Stories / What's the cruelest colony you've ever founded?
December 11, 2016, 11:46:38 AM
Rimworld is a game in which you can do many things. Some of us are content with building a large, peaceful farm colony and leaving as soon as possible. Some of us, however, like to have a bit of 'fun' while we're at it. Have you made a colony devoted to harvesting the organs of your prisoners? Have you let your colonists battle to the death for food? Have you trapped your "friends" in your freezer and let them freeze to death?

Tell me what your cruelest colony was like!
#4
General Discussion / Outdated versions
June 04, 2016, 08:45:24 PM
Is there a place to download old/outdated versions? I would like to try to play alpha 1 or previous to see all of the changes that have been made. If not, no big deal, but I think it would be interesting to see.  :)
#5
Ideas / ADD as a Trait / Health Ailment
May 15, 2016, 10:09:23 PM
ADD, or Attention Deficit Disorder, is a disorder that causes a person to lose focus easily (I sometimes find myself looking at the ceiling while in math class on days that I forget to take my medicine). Some other symptoms include: Depression, forgetfulness, and hyperactivity (ADHD).

I think it might be fun (and infuriating) to have ADD and/or ADHD as traits in Rimworld.
Proposed effects:
1) Permanent mood reduction
2) Other colonists think badly of them (Social tab, probably a small reduction)
3) Colonist has a chance to randomly have a soft "Wandering" mental break, even in the middle of a job.
4) Speed boost (Hyperactivity)
5) Melee attack boost (Hyperactivity)

If you have any other ideas for effects, please add them below.
I suppose this could also be a health effect in the brain, but the effects are more like that of a characteristic.
#6
Ideas / Multiplayer
May 15, 2016, 07:18:37 PM
I have some ideas for multiplayer in Rimworld, but while I do hope to eventually have some sort of multiplayer functionality in Rimworld, I do not wish these to be the only methods. Please suggest other forms of multiplayer in this topic.

1) If you and a friend both have a copy of Rimworld, you should be able to send out a trade ship to them so that you can trade resources.

2) It might be fun to send a raiding party at your friend's base, so that as opposed to peacefully gaining their resources, you can forcefully take them.

3) I saw this in another topic, but... Wouldn't it be so fun to send your friend a raging thrumbo?