public override bool FireEvent(Event E) { if (E.ID == "Dropped") { boot = true; } if (E.ID == "EnteredCell" && boot) { boot = false; if (ParentObject.GetPart <Brain>() == null) { return(false); } ParentObject.GetPart <Brain>().PerformReequip(); ParentObject.GetPart <Brain>().BecomeCompanionOf(ParentObject.ThePlayer); ParentObject.GetPart <Brain>().IsLedBy(ParentObject.ThePlayer); ParentObject.GetPart <Brain>().SetFeeling(ParentObject.ThePlayer, 100); ParentObject.GetPart <Brain>().Goals.Clear(); ParentObject.GetPart <Brain>().Calm = false; ParentObject.GetPart <Brain>().Hibernating = false; ParentObject.GetPart <Brain>().FactionMembership.Clear(); ParentObject.AddPart(new Combat()); XRLCore.Core.Game.ActionManager.AddActiveObject(ParentObject); } if (E.ID == "GetInventoryActions") { if (ParentObject.GetPart <Physics>() == null) { return(false); } EventParameterGetInventoryActions eventParameterGetInventoryActions = E.GetParameter("Actions") as EventParameterGetInventoryActions; if (ParentObject.GetPart <Physics>().Equipped != null) { if (!HasPropertyOrTag("NoRemoveOptionInInventory")) { eventParameterGetInventoryActions.AddAction("Remove", 'r', true, "&Wr&yemove", "InvCommandUnequipObject", 10); } } else { bool flag2 = true; if (ParentObject.GetPart <Physics>().InInventory == null || !ParentObject.GetPart <Physics>().InInventory.IsPlayer()) { if (ParentObject.IsTakeable()) { eventParameterGetInventoryActions.AddAction("Get", 'g', true, "&Wg&yet", "CommandTakeObject", 30); } else { flag2 = false; } } else if (!ParentObject.HasTagOrProperty("CannotDrop")) { eventParameterGetInventoryActions.AddAction("Drop", 'd', true, "&Wd&yrop", "CommandDropObject"); } if (flag2 && !ParentObject.HasTagOrProperty("CannotEquip")) { eventParameterGetInventoryActions.AddAction("AutoEquip", 'e', true, "&We&yquip (auto)", "CommandAutoEquipObject", 10); eventParameterGetInventoryActions.AddAction("DoEquip", 'E', true, "&WE&yquip (manual)", "CommandEquipObject"); } } if (ParentObject.GetPart <Physics>().IsAflame()) { eventParameterGetInventoryActions.AddAction("Firefight", 'f', false, "&Wf&yight fire", "CommandFightFire", 40); } } return(base.FireEvent(E)); }