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

#1
A small mod that disables generation of random dirt particles (the kind you cannot clean, no matter how hard your pawns scrub) and little pebbles that don't actually count as cleanable rubble. Mostly visible when your map is covered in a fresh layer of snow, yet is still inexplicably smeared all over with dirt.

In other words, this mess:



Unlike a similar mod that exists on the Workshop, this does not require Harmony. Will not conflict with any other mod. A small performance boost has been noted on larger maps using this, plus... doesn't it just look a whole lot nicer? :)

You will still get regular dirt and blood everywhere, but at least you can clean that stuff. If you want.

Download: See attached, or Github
#2
A combo-mod that makes all vanilla factions marked as "PermanentEnemy = true" to no longer be true, and stops the gradual arbitrary gain/loss of faction reputation.

Quest scripts were patched to prevent generation errors (the "unresolvable description" errors) that occur when the game attempts to find a PermanentEnemy faction and fails to find one.

Factions that were previously marked as "PermanentEnemy = true" now have "mustStartOneEnemy = true" instead, as part of the effort to appease the quest scripts.

The end result of all this is that you will start a game with the same general setup of factions, allies and enemies, except you can now eventually befriend the Pirates and Savages factions if you wish, and these relationships won't decay without good reason. Additionally, you may now receive quests from previously enemy-only factions if your reputation with them isn't too terrible.

https://github.com/MoogieOuttaMyDepth/RimworldMods/tree/master/My%20Enemy%20is%20My%20Friend

Testers desired: I want to be sure there are no unforseen consequences to having no PermanentEnemy factions. The game will yellowtext warn in the logs about it, but aside from the quest system, I was unable to find any part of the game code that relies on the existence of a PermanentEnemy. So I think it should be okay, and I've been using it in my own game without any red errors popping up, but I want to be sure.
#3
Please excuse the toxic haze... Yeah, my colony is kinda in the middle of a thing at the moment.



I'm not sure what I'm doing wrong. First off, importing the texture into the resources.asset archive appears to be the only way to modify snow. Believe me, I've tried it the normal way--the game just ignores the files if you try to make a mod out of it. And while I've technically been able to import the texture, it doesn't appear right ingame.

I've used the PSD that comes with the art source zip that's floating around these forums as a base. As far as I can tell, my masking etc is identical.




The white of the snowflakes is 100% white and 100% opaque in the middle, with feathered edges.

I had to do the same thing for the snow ground texture, but that one turned out fine. Mostly. There are seams, but that is 100% the game's fault. My textures are seamless.



In any event, if that worked, why does the falling snow overlay not? My only guess at the moment is that I would need to edit the Material of it, but UABE cannot export .mat files into a readable/editable format. Have I hit a dead end, or is there something that I'm missing?
#4
Here's a thing I wanted to do:

<li Class="PatchOperationAdd">
<xpath>/Defs/TraderKindDef[defName=*]/stockGenerators</xpath>
<value>
<li Class="StockGenerator_BuyTradeTag">
<tag>FoodMeals</tag>
</li>
</value>
</li>


The game seems to accept it just fine, but I'm not sure if it's actually working or not. I haven't had many traders visit to test it with. I'm also worried that it may be a laggy operation, and if there isn't some better way to do it.

I'm using a wildcard because I want it to affect all traders, even modded ones. This is just for personal use, so I don't mind if it makes sense or not. :)

The only information I can find about using wildcards only talks about the tree structure, and not how to use them for actual defnames. So this was a complete punt on my part. Should I may have the * between quotation marks, or is it fine like that?

Thanks for any help. :)
#5
Hi! I thought I would dip my toes in to some simple modding. I put this here instead of Releases, because even though I've been using these in my own game and they seem to work fine, I don't yet have the confidence to throw them out there and declare them worthy of being added to people's saves. I'm very new to all this. They also don't have proper Preview pngs yet.

I also don't know about compatibility with 1.0. I think they should work in 1.0? But my entire playing experience has been in 1.1, so... I dunno! That's why I'd like some brave testers to try it out before releasing these properly.

I'm new to Rimworld in general, but I can't resist tweaking stuff to my liking. A lifetime of Bethesda games instilled that in me, I guess. ;D


So, here is what I'm offering today:


Animal Litters makes it so that, wherever it makes sense to do so, vanilla animals generally produce litters and egg clutches rather than just 1-2 offpsring and single egg per pregnancy. I didn't let the numbers be too extreme, for gameplay purposes, but it's obviously still going to have an impact on game balance. Mainly, I was thinking about players like me who enjoy the idea of being ranchers/farmers, but were frustrated by needing to keep a big group of hungry adult animals around just for a decent supply of new meat or eggs. With this, you'll only need a few adults, and when the babies grow up, you can batch-slaughter most of them immediately.



Interbreeding lets animals of any faction or tameness mate, as long as they're not wild females. This means your livestock can be impregnated by wild or visitor-owned males. I consider this helpful mostly at the start of a game where you might not have afforded to bring a mating pair of animals, but also, it just makes sense to me. A wild buck or stallion seeing a group of females in his territory isn't going to care what "faction" they belong to, and the same for animals that arrive in trade caravans.



Wild Breeding is similar to the above, but has its restrictions lifted, so that wild animals can also mate with each other and breed on your map. I disallowed this in Interbreeding because it could lead to population explosions, but if you really want full realism, not to mention lots of meat and hides, this option exists. :) For both these, and especially if you're using Animal Litters too (you absolute madman), I highly recommend using a Neuter mod, so that things don't spiral out of control.

Oh, and don't use both Interbreeding and Wild Breeding at the same time. Pick one or the other. I made them give deliberate (but harmless) errors if you try to use both.


What do you think? Decent start, or am I committing crimes against moddality? I've tried to keep my patches clean and following good practices. But if you have any tips in that regard, I would love to hear them! Especially since the Breeding mods use an Assembly, and I am very new to that whole sphere in particular. I'm pretty sure I did not need to use Harmony, so I didn't, but please correct me if this is wrong.

Thanks for looking!
#6
I'm very new to this--please bear with me. :)

I'd like to use a PatchOperationTest at the beginning of a PatchOperationSequence to check for the existence of a node, but I'm not sure if the test runs once, or once per thing it matches. I want it to do the latter. Would this be correct?

<Operation Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationTest">
<xpath>Defs/ThingDef[contains (text(),"Example")]/ExampleNode</xpath>
<success>Invert</success>
</li>
<li Class="PatchOperationInsert">
<xpath>Defs/ThingDef[contains (text(),"Example")]/SiblingNode</xpath>
<value>
<ExampleNode />
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/ThingDef[contains (text(),"Example")]/ExampleNode</xpath>
<value>
<ExampleAttribute>1</ExampleAttribute>
</value>
</li>
</operations>
</Operation>


What I would expect from the above: If multiple things are selected with the text search, then for each of them, test the existence of ExampleNode, and then for each of them that test successfully, add the new child node and value. Will it work that way, or do I need to add more tests in the sequence to stop it testing once at the start and then just assuming the rest?

Also, is there a way to reduce how many times this example uses "contains"? I get a distinct feeling this would be slow, but I don't know of any way for a sequence of operations to remember the current xpath in order to avoid running the same base search over and over.

Thanks in advance for any help or tips!