コード例 #1
0
        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));
        }