public override bool FireEvent(Event E) { if (E.ID == "WeaponAfterAttack" || E.ID == "WeaponAfterAttackMissed") { if (ParentObject.EquippedProperlyBy() != OriginalOwner) { SwingsRemaining--; if (SwingsRemaining <= 0) { var ParentsPsiMar = PsiHolder().GetPart <Psychomateriartis>(); GameObject equipped = ParentObject.Equipped; DidX("disappear", null, null, null, null, equipped); ParentObject.ForceUnequipRemoveAndRemoveContents(Silent: true); ParentObject.Destroy(); ParentsPsiMar.WeaponCounter -= 1; if (equipped != null && equipped.IsValid() && !equipped.IsPlayer() && equipped.pBrain != null) { equipped.pBrain.PerformReequip(); } } } } else if ((E.ID == "SyncMutationLevels" || E.ID == "AfterLevelGainedEarly")) { // AddPlayerMessage("Sync Mutation or Level Gained early, Psionics Props update fire"); UpdatePsionicProperties(); } else if (E.ID == "PsionicWeaponManifestedEvent") { var ParentsPsiMar = PsiHolder().GetPart <Psychomateriartis>(); // var ColorSelected = E.GetStringParameter("ColorChoice"); var WeaponManifested = E.GetGameObjectParameter("ManifestedWeapon"); string newName = Popup.AskString("Give your bonded-weapon a name.", "", 99); if (!String.IsNullOrEmpty(newName)) { WeaponManifested.DisplayName = "{{psionic|psionic}} " + newName; WeaponManifested.SetIntProperty("ProperNoun", 1); ParentObject.id = ParentsPsiMar.PsiWeaponsID; } // WeaponManifested.pRender.TileColor = ParentsPsiMar.GetWeaponTileColor($"&{ColorSelected}"); // WeaponManifested.pRender.ColorString = ParentsPsiMar.GetWeaponTileColor($"&{ColorSelected}"); } else if (E.ID == "EndTurn") { // AddPlayerMessage("EndTurnCheck, current weapons ID: " + ParentObject.id); } return(base.FireEvent(E)); }