static bool Prefix(ref bool __result, Verse.Thing item) { if (item != null) { if (item.GetType() == typeof(Pawn)) { Pawn p = (Pawn)item; //搬运的是人形 bool hasBondageBed = false; //没有被束缚床束缚 for (int i = 0; i < p.health.hediffSet.hediffs.Count; i++) { if (p.health.hediffSet.hediffs[i].def == SR.DA.Hediff.HediffDefOf.SR_Hediff_BondageBed) { hasBondageBed = true; break; } } //如果已经被束缚 if (hasBondageBed) { Building_Bed bbb = (Building_BondageBed)p.CurrentBed();//获取当前躺着的束缚床 if (bbb != null) { CompRemoveEffectBondageBed crebb = bbb.GetComp <CompRemoveEffectBondageBed>(); if (crebb != null) { crebb.DoEffect(p);//解除束缚 } } } } } return(true); }