public override bool FireEvent(Event E) { if (E.ID == "BeforeDie") { if (LastCat == null) { return(true); } ParentObject.DirectMoveTo(LastCat, 0, true); GameObject Cat = GameObject.findById(LastCatID); if (Cat != null) { ParentObject.DirectMoveTo(Cat.pPhysics.CurrentCell.GetFirstEmptyAdjacentCell(), 0, true); Popup.Show("Right before your life begins to fade, you suddenly feel spirited away and find yourself before a feline friend ... at a cost."); } else { LastCat = null; Popup.Show("As you feel your life dwindle, your soul drifts towards where its astral tether once existed. But the feline is gone, and now, so are you."); return(true); } ParentObject.SpatialDistortionBlip(); if (ParentObject.HasStat("Hitpoints")) { ParentObject.Statistics["Hitpoints"].Penalty = 0; //AddPlayerMessage("You died."); } if (Level <= 1) { if (Cat != null) { Cat.pBrain.GetAngryAt(ParentObject, -400); } ParentObject.GetPart <Mutations>().RemoveMutation(this); Popup.Show("{{red|Your strange connection with cats has been severed.}}"); } else { Level = Level - 1; } return(false); } return(base.FireEvent(E)); }