[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

Quote from: Harry_Dicks on February 10, 2018, 07:09:47 AM
-Creature that spits a type of "tar" that will slow down whatever it hits, similar to an octopus/squid's ink.

I actually just posted a question about octopus ink over on the Ranged Animal Framework thread to ask if the mod does/could support smokepop-belt like behaviors.
Ultimately, I would like to give the Land Kraken an Ink-Squirt that acts like a smokepop belt when it gets shot at. I'd also reduce it's overall health at that time, since it would be considerably harder to hit.

None of the other ideas are bad, and your mention of that lizard that shoots blood could easily be adapted for the Arid biome.
I'm vaguely considering a Giant Scorpion for the Desert Biomes, but they are just so damn common. I might instead go for a cybernetic scorpion who's tail is a charge lance, or similar sniper-style weapon.
Not sure if I would allow it to be harvested and installed in people though...

Harry_Dicks

#76
Damn, you beat me back before I could edit my post.

Anyway, I don't know if you saw the other ones I put up, because I did edit that post quite a few times, and I made a final edit after your response. I was going to say that, I did not go back and read your OP. I was under the assumption you were still making only ranged animals. However, if that's not a requirement, that's cool too. I just thought that's what you were asking about ideas for, animal ranged attacks :)

ilikegoodfood

#77
I have just re-read your post with the edits.

My first thought is to combine the Lizard that shoots blood from its eyes with a Cammodo Dragon, to create a large powerful lizard; the Sanguine Drake.

Sanguine (noun) in archaic English also means blood-red or blood and Drake is related to Dragon, so it roughly means Blood Dragon or Blood Lizard.

Harry_Dicks

Sounds great. I wasn't really expecting you to want to use any of the ideas, anyway. After you said you were not very likely to use them, I suppose just getting past that counts for something! :P

ilikegoodfood

#79
So, I have whittled away the day, still fighting with this bug, sleepily creating the Sanguine Drake.

I have everything working, but haven't decided on the unique hediff or ranged attack, for a few reasons:

Ranged Attack:
Animals with ranged attacks seek cover to shoot from instead of charging at their enemy. I wan t to make the blood projectile attack have a very long recharge so that it is only really used once at the beginning of combat, but that will then delay the creature charging in with the melee attacks. Furthermore, I'm not entirely sure if it will charge in, or just wait for the attack to re-charge.
I'll have to make it and then run some tests once i have the Hediff.

Hediff:
I have discovered several interesting things. The first is how to define the bleeding rate of a damage type, which is useful. The second is that Komodo Dragons have a powerful anticoagulant in their venom, which contains at least two major compound groups.
As such, I would like to give the Sanguine Drake a Venom Hediff that applies a multiplier to bleeding, but I'm not sure if that is possible. Do any of you know of a way to do that?

Also, how do you define an offset for the pawn location with Giddy-up! ? The dude needs to sit further forwards...

A few other balance changes have been made as well, and all monster spawn rates have been more than halved, since they were way too common. (6 Inferno Beetles on my temperate forest map).
The updates will be released along with the Sanguidne Drake, hopefully some time in the next few days.

Harry_Dicks

Quote from: ilikegoodfood on February 11, 2018, 02:29:19 PM
Also, how do you define an offset for the pawn location with Giddy-up! ? The dude needs to sit further forwards...

In the mod options for Giddy-Up, you can tell it where you want your riders positioned on an animal, depending on what animal they are riding. Maybe look into how it swaps the two positions, and you can go from there. You can't define "where" they actually go on an animal, but it does have two presets.

ilikegoodfood

Quote from: Harry_Dicks on February 11, 2018, 03:31:24 PM
You can't define "where" they actually go on an animal, but it does have two presets.
I know that the mod has the option to set the rider as either drawn over the creature's graphic (used for most creatures) or behind the creature's graphic (usually reserved for long-necked creatures such as the Thrumbo).
Drawing them over the top looks fine, but because the creature is 50% tail, 50% body, the default position is on the rear hip instead of the body behind the fore-leg.
I was hoping that the mod allowed the definition of an offset at least in the front-back direction, so that I could move the rider forwards. I'll look into it further tomorrow.


ilikegoodfood

The Sanguine Drake is almost ready for release.

Sorry for the delays, but I had to learn to use Harmony Patching and the person who was helping me only came online late in the day for me, so work has been very slow.

I have finally created a system that allows me to control the bleed-rate total, created the damage types, hediff and projectiles to go along with it and added the ranged attack to the Sanguine Drake, however, for reasons unknown, it refuses to use it's ranged attack.
I'm uncertain as to what the bug is, since I'm not getting any errors from it, and will not be able to resume work on it until later today.

ilikegoodfood

#84
I think that I have found the source of my current issue:

I am using an xpath patch to enable the ranged shots when and if Ranged Animal Framework is detected, which it always is because it's in my assemblies folder, however, the second PatchOperationAdd doesn't work, despite being a copy-paste of the first.
I have also tried it with only the 1st, and the testing marker appears correctly, and only the second, which doesn't work. I have tried it with the 1st's projectile, in case there was a problem and I have compared them, word for word. I can't find the error at all, but I know that it is this part that fails.

If someone would look it over, that'd be great.
As soon as this bug is squashed, I can perform final tests and then release the SanguineDrake, which is much stronger than it used to be.

<?xml version="1.0" encoding="UTF-8"?>

<Patch>
<Operation Class="PatchOperationSequence">
<success>Normal</success>
<operations>
<!--Continue if combat extended does not exist IE patch vanilla-->
<li Class="ModCheck.isModLoaded">
<modName>Combat Extended</modName>
<yourMod>Monster Mash</yourMod>
<success>Invert</success>
<customMessageFail>Monster Mash :: Implementing ranged attack framework for vanilla RimWorld...</customMessageFail>
</li>

<!--Accuracy needs to be high, because animals don't have shooting skill-->
<li Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName = "InfernoBeetle"]</xpath>
<value>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<accuracyTouch>0.8</accuracyTouch>
<accuracyShort>0.9</accuracyShort>
<accuracyMedium>0.9</accuracyMedium>
<accuracyLong>0.8</accuracyLong>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>MM_InfernoBeetleProjectile</defaultProjectile>
<warmupTime>3.5</warmupTime>
<burstShotCount>1</burstShotCount>
<ticksBetweenBurstShots>1</ticksBetweenBurstShots>
<minRange>4</minRange>
<range>16</range>
<soundCast>Pawn_BigInsect_Call</soundCast>
<muzzleFlashScale>4</muzzleFlashScale>
</li>
</verbs>
</value>
</li>

<li Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName = "SanguineDrake"]</xpath>
<value>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<accuracyTouch>0.7</accuracyTouch>
<accuracyShort>0.8</accuracyShort>
<accuracyMedium>0.9</accuracyMedium>
<accuracyLong>0.95</accuracyLong>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>MM_SanguineDrakeProjectile</defaultProjectile>
<warmupTime>10</warmupTime>
<burstShotCount>1</burstShotCount>
<ticksBetweenBurstShots>1</ticksBetweenBurstShots>
<minRange>12</minRange>
<range>30</range>
<soundCast>Pawn_Iguana_Wounded</soundCast>
<muzzleFlashScale>1</muzzleFlashScale>
<commonality>0.6</commonality>
</li>
</verbs>
</value>
</li>

<li Class="ModCheck.isModLoaded">
<modName>Core</modName>
<yourMod>Monster Mash</yourMod>
<customMessageSuccess>Monster Mash :: Testing Marker...</customMessageSuccess>
</li>
</operations>
</Operation>
</Patch>

ilikegoodfood

#85
wwWrith, do you remeber that when we switched the patch operation for the RangeAnimalFramwork from <success>Always</success> to <success>Normal</success>, we received a log for a phantom error that didn't seem to have any impact, so we ignored it?

Well, further investigation of the current issue shows that the error is preventing the patch sequence from continuing.
This means that, if I have more than one animal with a ranged attack, only the first one listed is implemented.
The code is an exact copy, with different figures, from the template mod provided by BrokenValkyrie along with the RangeAnimalFramework, the MegaSpider Range Attack mod. That mod only adds a range attack to a single creature, so I suspect he/she/other may be unaware of the issue.

I'm going to re-subscribe to the Dragon mod, since it has multiple creatures, and see if that presents a solution.
Unfortunately, because of the way that RangeAnimalFramework calculates attack jobs, I'm probably going to have to remove the ranged attack from the Sanguine Drake anyway, but this bug really need squashing first.

Thanks again for your help.

EDIT: There was a tiny variation, one line to be exact, but that hasn't solved the issue.
I'm beginning to wonder if it's an issue with my using the inclusive assembly instead of making a direct reference to a separately installed mod, as all of BrokenValkyrie's sub-mods do. I'm going to quote this whole discussion (not much of a discussion with only 1 poster at the moment :P) over and ask for help directly.
He/other/she hasn't responded to my previous question yet though... We'll see.

wwWraith

What about dividing it again into several sequences or files?
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

#87
I had already tried splitting them into two sub-sequences without success, but apparently I either included an error, or something else has changed since, because it has worked.

It feels like a dirty hack, splitting each patch into a separate sub-sequence to prevent the return fail from reaching the primary sequence, but if it works, who am I to complain.

Nice call.

EDIT: After systematic testing it turns out that there is an error blocking most of my CombatExtendedPatch.xml from working. I'm trying to identify and fix it now.
Furthermore, Combat Extended for B18 pre-release has changed version number entirely, from RC1 to RC2, so I may just need to temporarily withdraw CombatExtended Comparability, but that will break a few saves, something I would rather avoid...

wwWraith

I think about that as a method to narrow down the issue or get some other (hopefully more useful) error message :) For the latter you can also try to execute these operations outside any sequences at all. The reason I'm thinking about it is suspicions of some internal mechanics that work per file: https://ludeon.com/forums/index.php?topic=33656.msg343922#msg343922, https://ludeon.com/forums/index.php?topic=32874.msg381068#msg381068; I saw a more detailed info somewhere but can't find it now.

Also just found another interesting post: https://ludeon.com/forums/index.php?topic=33186.msg341261#msg341261 :)
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

Version 1.2 is now officially here, along with the release of the Sanguine Drake for arid and desert biomes.
Furthermore, a number of other fixes have accompanied the release.