[B18-1.0] Monster Mash (v4.0.4) (Changed Frameworks and Dependancies)

Started by ilikegoodfood, February 01, 2018, 09:40:33 AM

Previous topic - Next topic

ilikegoodfood

#105
I had been using the diagram at the top of RimWorld Wiki's biome page to determine the list of biomes in the game, and therefore work out what creatures live where.
I did noticed however, that it doesn't seem to include grassland, so I started checking through RimWorld's Biome Defs and found that the diagram is rather incomplete. The newer biomes do seem to be in the side-bar, but it may mean that I have accidentally missed a biome or two when designing monsters.
I'm examining that now.

EDIT: Lol. I performed the check because i didn't see any plains and thought there should be. There aren't any.

wwWraith

Yes, some info in that article is outdated. I'd suggest to just look in the Core defs if you want the accurate data. Maybe it'll lead you to creating your own table or even updating the wiki ;)
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

ilikegoodfood

#107
Nice to see you again wwWraith.

I have a few (giant hoard) of unanswered questions, you may not be able to help, but others may...
I'm just going to dump them all here, in one giant post.

Does anyone know of an in-built bullet reflection system?
Can a creature that is hit fire the projectile back to the attacker?

How do you create more advanced explosions/projectiles?
I have seen some fragment grenades that fire fragments in random directions and things like it. How is that done?

Is it possible to create a chaining shot, something that hits a creature and then jumps to another nearby creature if one is in range?
If it is possible, how would you/I stop it from endlessly bouncing between the same two pawns?

Is there a more general Spawner Mechanic hidden in the code somewhere?
The only thing I can find is specific to the Hives and not generally usable for other things.
EDIT: CompProperties_Spawner seems to be what I was after. Unfortunately it doesn't let me spawn the trap in a fixed tile relative to my creature, but that shouldn't be a big problem. I'm a little concerned about the performance hit of a creature performing a spawn cycle once a second though, and the lifespan on the building will also add a lot of ticking objects...

How do you create a CapacityDefOf and CapacityWorker?
I haven't worked out how to add them to the core code, or if there is some other way to do it...
I would like to do so in order to allow body part health to effect shot accuracy for my monsters.
Also, even when I get that working, I will need a system that disables the verb once any of the relevant bodyparts and/or bodypartgroups are destroyed.
How would I go about that?

How would I create a system to make a creature spawn a building in tiles that it moves over?
This must include checks to ensure that the building is placeable, that there isn't already something else there and a chance for it to spawn.
I'm looking into making a giant snail with a corrosive slime trail, and my best solution so far is to make the slime trail into a trap with a short lifespan.

Is there a way to prevent a dead animal from leaving a corpse?
I've been considering making an energy being that won't leave a corpse. This is also what I want the chain-shots for.

Is there a way to create a hediff that periodically applies damage to the bodypart the hediff is attached to?
I think this can be done by creating a new wound type and then adding a HediffGiver_random to it, but how would I make it get this specific bodypart?

As you can see, development has sort of devolved in a maelstrom of thoughts and parallel investigations while I try to come up with things that are unique, clear, fun and somewhat balanced.
This uncertainly is then further exacerbated by the fact that no-one has provided me with any feedback at all on the mod, how it plays and how balanced it is.
I've got some monsters in my own game, and they're very cool, but I'm also not sure if they're too strong or not...

ilikegoodfood

Questions continued:

How could I implement Retaliation Damage or Retaliation Attacks?
This could be useful for creatures that are covered in defensive spines, have corrosive blood that splashes back on melee attackers, or that strike against attackers reflexively.
If this could be set to work for both Melee and Ranged attacks independently, then it could also be used as an alternative to bullet reflection.

ilikegoodfood

#109
I seem to have answered my spawner question for myself, but that just leads to further questions, as always.

CompProperties_Spawner seems to be what I was after. Unfortunately it doesn't let me spawn the trap in a fixed tile relative to my creature, but that shouldn't be a big problem. I'm a little concerned about the performance hit of a creature performing a spawn cycle once a second though, and the lifespan on the building will also add a lot of ticking objects...

wwWraith

The most of these questions looks leading to C# coding, and as I said, I have not much experience with creatures, so I can't help except some basics :)

Quote from: ilikegoodfood on March 06, 2018, 06:50:20 AM
If it is possible, how would you/I stop it from endlessly bouncing between the same two pawns?
I think the solution should be to keep a stack of "used" targets (in C# of course).

Quote
I would like to do so in order to allow body part health to effect shot accuracy for my monsters.
Also, even when I get that working, I will need a system that disables the verb once any of the relevant bodyparts and/or bodypartgroups are destroyed.
Shooting accuracy should depend on Manipulation and Sight which should depend on relevant bodyparts so it should work automatically, I believe. You can test it in your creatures' detailed info window during the game. If you need other capacities (or if Shooting accuracy for animals doesn't use them in the current implementation), you'll have to make it as likeness.

Quote
Is there a way to prevent a dead animal from leaving a corpse?
Even if there is not (I mean XML-only as nearly everything is possible with C#), I think you can create a corpse with a very low HP and very high deterioration/rotting rates as a workaround (though there still will be chances of keeping the corpse if the creature died under the roof in some cold place; probably making it also explosive as boomrats/boomalopes even with a little radius should prevent it by burning).
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

ilikegoodfood

Quote from: wwWraith on March 06, 2018, 09:23:51 AM
I think the solution should be to keep a stack of "used" targets (in C# of course).
I fully expected that response. I was wondering if there were other ways of doing it, but it shouldn't matter.

Quote from: wwWraith on March 06, 2018, 09:23:51 AM
Shooting accuracy should depend on Manipulation and Sight which should depend on relevant bodyparts so it should work automatically, I believe.
You are entirely correct, and that works for bodyparts that are relevant to manipulation and sight.
Some of my creature's have bodyparts that are especially for or are required to be functional for the shots to work, from a biological point of view.
The Sanguine Drake shouldn't be able to shoot blood if it has no eyes, but the game simply penalizes the accuracy for one of the two factors being reduced.
The Polar Colossus has a whole collection of bionic bodyparts. Their only function, aside from the Thermal Core which acts as a heart, is to enable it to shoot. If any of those parts reach 0 hp, it should be unable to shoot and the overall BodyPartGroup efficiency should negatively impact accuracy.
To do this, I will need to create a new capacity, easily done, with a CapacityDefOf and CapacityWorker in C#, no idea how to get that working yet, and then use a patch to insert it into the accuracy stat, also easily done.

Quote from: wwWraith on March 06, 2018, 09:23:51 AM
Even if there is not...
Those are excellent suggestions. Thank you.

And I was fully expecting that you wouldn't be able to answer most of these, but you still provide useful insights and there are a few other people following the thread.

ilikegoodfood

After the double hotfix that went out earlier, I spent most of the day working on my next creation, the Carrion Crawler.

The idea is that it's a very slow moving giant snail that periodically spawns a slime trail on surrounding tiles. This slim trail would use trap mechanics to deal a small amount of burning damage to creatures that walk over it and it would be more difficult to walk over, thus colonists should try and avoid it.
I have created the required body parts, body and creature, although I don't yet have graphics for it, and have created a new art item, its shell, which is very valuable.
I then went and tested it in combat and found that, due to its low speed, it is essentially defenseless.

Now, I have a few concerns with the design of this creature.
The first is that the slime trail will display similar problems to other traps, with colonists walking over it regularly and creature getting themselves killed. If this is the case, it'll only annoy the players and increase the need for micormanagement whenever a colonist leaves the base, something that can already be an issue if there are a lot of predators.

Also, because the shell is very valuable, it needs to present an equivalent challenge.
I can do this by increasing the creature's speed, but I'll then also need to vastly increase the frequency at which it spawns traps, which could very well create a performance load that I'm not comfortable with.
Alternatively, I could give it a projectile that utilizes the same corrosive agent as the slime trail, however, such a weapon could potentially be out-ranged with hunting and sniper rifles unless I made the projectile's range extremely high. This is also a solution that I'm not happy with.

Overall, I suspect that what I need to do is ditch the idea of the slime trail entirely and increase the carrion crawler's speed and damage, so that it is a formidable melee opponent. Doing this would solve the annoying pathing and damage issues associated with traps and remove the performance hit associated with a high spawn rate of buildings that are constantly being incremented.
Having said all of this, I would like a second opinion. Not only is this speculation at this point, but to rule out an entire mechanic as annoying without having other people's input on it seems premature.

So, to all of you who may be reading this, what do you think?

Also, feedback on he other monsters would be much appreciated.

Thank you all.

wwWraith

Have you actually tested increased speed and slime spawning rates? If I'm not wrong, MiningCo.: Mining helmet spawns a "buildings" to create the light around the pawn; I feel the performance hit, but it's not really heavy even on my very old computer, so probably it still could be an option.

Sniping is often effective against "challenging" enemies so I don't think it'd be a very productive idea to try to counter it with overrange.

I'm thinking about high armor values and some low-ranged attack(s) with debuff(s) like poison (either reducing HP on time or forcing to vomit) or capacities decrease. Maybe a sort of shield mechanics. If you still won't be satisfied with balancing the challenge and the shell value, you can make it to drop only with some chance. But I believe in your imagination. I like your mod as you are adding original features beyond what is commonly seen as limits rather than just making damage-soaking sponges. So I hope you'll keep it this way :)

I think it'll fit well in my next colony, but unfortunatelly can't say when I'll start it so sorry for no feedback for now.
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

ilikegoodfood

Slow progress on the art front.

Meticulously patterning the shell of a snail in a way that looks decent is a very long job, much less synchronizing that pattern across four different angles. I'm not even sure what the angle for the statue version needs to be.
I am so not an artist, never done much with pixel art at all and this is stressing my capabilities.

The graphics for the baby was easy, so those are done. They're attached, in case anyone aside from wwWraith actually follows these intermittent progress reports.

[attachment deleted due to age]

ilikegoodfood

#115
And I'm back to making help threads... LINK

Trying to get the shell to work as an art piece while not having random name and description has taken up all of my afternoon, and to no avail.

The creature itself is now pretty much done, the graphics are done, the armor, health, compatibility etc., but not yet the acidic vomit.
I did abandon the slime in the end, just because RimWorld doesn't handle traps well enough.

EDIT: Just waiting on help with the CompProperties_Art. Otherwise it all works nicely.

ilikegoodfood

Update 1.4 and 1.4.1

The Carrion Crawler is now out in the wilds.
This large, flesh eating land snail roams the arid shrublands of its native RimWorlds in a never ending quest to feed itself.

Tamable, Trainable, ride-able, but not suitable as a pack animal, this creature has a short range acid-vomit attack and a bite that'll punch through steel plate. Once killed, its shell makes for a beautiful trophy in any room.

ilikegoodfood

#117
Well, a new version of RimWorld has come out, with the release of B19.

For me, this is the first time I've ever had to update a RimWorld mod between version, and more than that, I would like to do some tidying along the way. I don't rally have much of an idea as to what needs changing, although I do know that the texture system has been changed.

I would also like to split my variable bleed-rate into a tiny framework mod, so that it can be used as a stand-alone tool for other mods. As I understand it, this should reduce incompatibilities. As I'm still very much a novice at all this, and don't really play RimWorld much anymore, Help on the separation of the bleed rate, tidying up the xml files and such, as well as on the update process, would be much appreciated.

P.S. I'm in the process of re-hosting the gallery to imgur, so hopefully it won't disappear again in future.

EDIT: I also wanted to do a larger number of interesting creatures, but with my limited understanding of the code, this wasn't viable for me, and still isn't at the moment. If someone wanted to help with that more directly, then I could possibly implement some of my more ambitious monsters.

ilikegoodfood

Apologies for the long wait, but it is finally here.
Monster Mash (B19)

ilikegoodfood

I am now seeking an artist to improve upon my rather-mediocre textures.
If you're interested, please respond in the dedicated help thread.