okay i started doing comments for my own legibility. while it looks like it SHOULD work, there still is no check for gourmand campaign, so its trying to apply to every overseer
{
orig(self, abstractCreature, world); // calls original code, so nothing is overwritten. always do this unless your hook is "-="
if (self.room.world != null && self.room.world.overseersWorldAI != null && self.room.world.overseersWorldAI.playerGuide != null) // dont forget to check and make sure its gourms campaign here, too!
{
AbstractCreature CraftingCompanion = self.room.world.overseersWorldAI.playerGuide; // assigns the guide an easy variable to call
if (CraftingCompanion != null // the previous check already does this, this nullcheck is redundant! this is (self.room.world.overseersWorldAI.playerGuide != null) again and can be removed
&& CraftingCompanion.ID != null && CraftingCompanion.ID.number != -715211813)
{
CraftingCompanion.ID.number = -715211813; //Consistently sets ID to an A1Z26 Cipher
if (CraftingCompanion.ignoreCycle != true)
{ CraftingCompanion.ignoreCycle = true; // wont flee at rain
CraftingCompanion.creatureTemplate.waterVision = -1f; // cant see through water
CraftingCompanion.creatureTemplate.bodySize = 10f; // larger, for visibility
CraftingCompanion.creatureTemplate.shortcutColor = new Color(1f, 1f, 1f); // this only changes the colour of shortcuts. as overseers dont use shortcuts, this will not work CraftingCompanion.creatureTemplate.damageRestistances[(int)Creature.DamageType.Electric, 0] = 1.5f;
(CraftingCompanion.abstractAI as OverseerAbstractAI).BringToRoomAndGuidePlayer(self.room.abstractRoom.index); // calls overseer to player
} // close if not ignorecycle brackets
} // close if not correct ID
} // close if not null
} // close ctor```