Files
RickGrymes 0eed170531 Overhaul robotics with hediff loadouts
Refactors robot customization from apparel/equipment to hediff-driven body part overlays, adds a reusable upgrade dialog, and expands DefOf support for Protectron, Securitron, Mr. Handy, and Sentry Bot variants. Introduces manual power toggling, robot bed assignment/power-down behavior, new control modes (including Securitron guard point and Mr. Handy role-based work modes), and AI checks that respect fuel/power state and pending upgrade bench calls. Also adds new radiant quest nodes, improves settlement tile fallback logic, updates several workbench sizes/textures, and adds additional trader backstories.
2026-07-19 00:57:55 -05:00

108 lines
4.0 KiB
C#

using RimWorld;
using Verse;
namespace FCP.Core.Robotics
{
[DefOf]
public static class PawnKindDefOf_MrHandy
{
[MayRequire("Rick.FCP.Robotics")]
public static PawnKindDef FCP_Pawnkind_Mr_Handy;
[MayRequire("Rick.FCP.Robotics")]
public static PawnKindDef FCP_Pawnkind_Ms_Nanny;
[MayRequire("Rick.FCP.Robotics")]
public static PawnKindDef FCP_Pawnkind_Mr_Gutsy;
[MayRequire("Rick.FCP.Robotics")]
public static PawnKindDef FCP_Pawnkind_Mr_Orderly;
static PawnKindDefOf_MrHandy()
{
DefOfHelper.EnsureInitializedInCtor(typeof(PawnKindDefOf_MrHandy));
}
}
[DefOf]
public static class ThingDefOf_MrHandy
{
[MayRequire("Rick.FCP.Robotics")]
public static ThingDef FCP_MrHandy;
static ThingDefOf_MrHandy()
{
DefOfHelper.EnsureInitializedInCtor(typeof(ThingDefOf_MrHandy));
}
}
[DefOf]
public static class HediffDefOf_MrHandy
{
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_ArmStalk_Left;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_ArmStalk_Center;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_ArmStalk_Right;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Left_Saw;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Left_Pincer;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Center_Pincer;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Right_Flamer;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Right_Pincer;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Gun;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Laser;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Plasma;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Thruster;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Left;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Center;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Right;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Left_Armored;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Center_Armored;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_Eye_Right_Armored;
[MayRequire("Rick.FCP.Robotics")]
public static HediffDef FCP_Hediff_MrHandy_BodyArmored;
static HediffDefOf_MrHandy()
{
DefOfHelper.EnsureInitializedInCtor(typeof(HediffDefOf_MrHandy));
}
}
[DefOf]
public static class BodyPartGroupDefOf_MrHandy
{
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyArmLeft;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyArmCenter;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyArmRight;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyEyeLeft;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyEyeCenter;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyEyeRight;
[MayRequire("Rick.FCP.Robotics")]
public static BodyPartGroupDef MrHandyThruster;
static BodyPartGroupDefOf_MrHandy()
{
DefOfHelper.EnsureInitializedInCtor(typeof(BodyPartGroupDefOf_MrHandy));
}
}
}