public static void Initialize() { NetworkingAPI.RegisterMessageType <NetMessages.SoundMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.SpawnStanMinonMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.HealFractionMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.TimedBuffMessage>(); }
internal static void Init() { state = ZetArtifactsPlugin.DropifactEnable.Value; if (state < 1) { return; } ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_NAME", "Artifact of Tossing"); ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_DESC", "Allows players to drop and scrap items.\n\n<style=cStack>LeftAlt + RMB to scrap</style>"); NetworkingAPI.RegisterMessageType <ZetDropReply>(); NetworkingAPI.RegisterMessageType <ZetDropRequest>(); ItemCatalog.availability.CallWhenAvailable(FindIndexes); ItemIconHook(); EquipmentIconHook(); MarkedDropletBypassHook(); PreventVoidBearBuffBug(); appliedVoidBearFix = true; SceneDirector.onGenerateInteractableCardSelection += RemoveScrapperCard; }
public override void OnPluginAwake() { zonePrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_TreasureMapZone", true); NetworkingAPI.RegisterMessageType <MysticsItemsTreasureMapZone.SyncZoneShouldBeActive>(); NetworkingAPI.RegisterMessageType <MysticsItemsTreasureMapZone.RequestZoneShouldBeActive>(); }
public override void OnPluginAwake() { controllerPrefab = PrefabAPI.InstantiateClone(new GameObject(), "DasherDiscController", false); controllerPrefab.AddComponent <NetworkIdentity>().localPlayerAuthority = false; PrefabAPI.RegisterNetworkPrefab(controllerPrefab); NetworkingAPI.RegisterMessageType <DiscBaseState.Ready.SyncFireTrigger>(); }
public override void OnPluginAwake() { enemyFollowerPrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_SpotterController", true); enemyFollowerPrefab.AddComponent <CharacterNetworkTransform>(); unlockInteractablePrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_SpotterUnlockInteractable", true); NetworkingAPI.RegisterMessageType <MysticsItemsSpotterController.SyncClearTarget>(); NetworkingAPI.RegisterMessageType <MysticsItemsSpotterController.SyncSetTarget>(); }
public static void Initialize() { NetworkingAPI.RegisterMessageType <Core.NetMessages.TimedBuff>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.RemoveTimedBuff>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.BodyFlags>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.RemoveBodyFlags>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.Sound>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.Animation>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.UrsaResize>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.UrsaHandsGlow>(); }
// Text displays larger for the client in the middle of the screen (https://youtu.be/vQRPpSx5WLA?t=1336) // 3 second delay after the corpse is on the ground before showing either client or server message // public void Start() { SetupConfig(); ReadConfig(); On.RoR2.CharacterBody.OnDeathStart += CharacterBody_OnDeathStart; //On.RoR2.ModelLocator.OnDestroy += ModelLocator_OnDestroy; NetworkingAPI.RegisterMessageType <Networking.DeathQuoteMessageToServer>(); NetworkingAPI.RegisterMessageType <Networking.DeathQuoteMessageToClients>(); defaultTextObject = CreateDefaultTextObject(); defaultTrackerObject = CreateTrackerObject(); }
public void Awake() { Logger = base.Logger; MoreArtifactsConfig.Init(Config); NetworkingAPI.RegisterMessageType <CombineMessage>(); congregateArtifact = new CongregateArtifact(); wholeArtifact = new ConglomerateArtifact(); confusionArtifact = new ConfusionArtifact(); }
public void Awake() { NetworkingAPI.RegisterMessageType <Networking.RadiusCommandToServer>(); ModifierKey = Config.Bind("", "Modifier Key", KeyCode.LeftShift, "Hold this button to affect all command essence in your desired radius."); Radius = Config.Bind("", "Radius", 5f, "Desired starting radius."); AllowScroll = Config.Bind("", "Allow Scrollwheel", true, "If true, then you can modify the radius of the region with the scrollwheel."); //On.RoR2.PickupPickerController.SubmitChoice += PickupPickerController_SubmitChoice; CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal; On.RoR2.PickupPickerController.SubmitChoice += PickupPickerController_SubmitChoice1; }
public override void OnPluginAwake() { riftChest = PrefabAPI.InstantiateClone(Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Rift Lens/UnstableRift.prefab"), "MysticsItems_UnstableRift", false); riftChest.AddComponent <NetworkIdentity>(); PrefabAPI.RegisterNetworkPrefab(riftChest); riftPositionIndicator = PrefabAPI.InstantiateClone(Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Rift Lens/UnstableRiftPositionIndicator.prefab"), "MysticsItems_UnstableRiftPositionIndicator", false); OnRiftLensCostTypeRegister += (costTypeIndex) => { riftChest.GetComponent <PurchaseInteraction>().costType = costTypeIndex; riftChest.GetComponent <PurchaseInteraction>().cost = 1; }; //add a custom purchase cost type - we will require the interactor pay with the debuff so that players //without the debuff can't help them open chests faster CostTypeDef costTypeDef = new CostTypeDef(); costTypeDef.costStringFormatToken = "COST_MYSTICSITEMS_RIFTLENSDEBUFF_FORMAT"; costTypeDef.isAffordable = delegate(CostTypeDef costTypeDef2, CostTypeDef.IsAffordableContext context) { CharacterBody body = context.activator.gameObject.GetComponent <CharacterBody>(); if (body) { Inventory inventory = body.inventory; return(inventory ? inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff) > 0 : false); } return(false); }; costTypeDef.payCost = delegate(CostTypeDef costTypeDef2, CostTypeDef.PayCostContext context) { CharacterBody body = context.activator.gameObject.GetComponent <CharacterBody>(); if (body) { Inventory inventory = body.inventory; if (inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff) > 0) { inventory.RemoveItem(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff); } } }; costTypeDef.colorIndex = ColorCatalog.ColorIndex.LunarItem; CostTypeCreation.CreateCostType(new CostTypeCreation.CustomCostTypeInfo { costTypeDef = costTypeDef, onRegister = OnRiftLensCostTypeRegister }); NetworkingAPI.RegisterMessageType <MysticsItemsRiftChest.SyncDestroyThingsOnOpen>(); NetworkingAPI.RegisterMessageType <MysticsItemsRiftLensBehaviour.SyncCountdown>(); }
public void Awake() { Logger = base.Logger; On.RoR2.Networking.GameNetworkManager.OnClientConnect += (self, user, t) => { }; // Lets me connect to myself with a second instance of the game. Stops usernames from working properly. // On.RoR2.RoR2Application.UnitySystemConsoleRedirector.Redirect += orig => { }; // Stop in-game console from redirecting from base cmd console. On.RoR2.Console.Awake += (orig, self) => { CommandHelper.RegisterCommands(self); orig(self); }; // NetworkingAPI testing NetworkingAPI.RegisterMessageType <ExampleMessage>(); }
public override void SetupBehavior() { base.SetupBehavior(); lunarChimeraSpawnCard = Resources.Load <SpawnCard>("SpawnCards/CharacterSpawnCards/cscLunarGolem"); lunarChimeraSpawnCard = Object.Instantiate(lunarChimeraSpawnCard); lunarChimeraMasterPrefab = lunarChimeraSpawnCard.prefab; lunarChimeraMasterPrefab = lunarChimeraMasterPrefab.InstantiateClone($"{lunarChimeraMasterPrefab.name}{nameSuffix}"); CharacterMaster masterPrefab = lunarChimeraMasterPrefab.GetComponent <CharacterMaster>(); lunarChimeraBodyPrefab = masterPrefab.bodyPrefab; lunarChimeraBodyPrefab = lunarChimeraBodyPrefab.InstantiateClone($"{lunarChimeraBodyPrefab.name}{nameSuffix}"); masterPrefab.bodyPrefab = lunarChimeraBodyPrefab; lunarChimeraSpawnCard.prefab = lunarChimeraMasterPrefab; MasterCatalog.getAdditionalEntries += list => list.Add(lunarChimeraMasterPrefab); BodyCatalog.getAdditionalEntries += list => list.Add(lunarChimeraBodyPrefab); NetworkingAPI.RegisterMessageType <AssignOwner>(); }
public void Awake() { //UnityEngine.SceneManagement.SceneManager.sceneLoaded += SceneManager_sceneLoaded; On.RoR2.UI.ChatBox.Start += ChatBox_Start; On.RoR2.UI.ChatBox.FocusInputField += ChatBox_FocusInputField; On.RoR2.UI.ChatBox.UnfocusInputField += ChatBox_UnfocusInputField; NetworkingAPI.RegisterMessageType <Networking.TypingTextMessage>(); NetworkingAPI.RegisterMessageType <Networking.UnfocusedTextMessage>(); typingText = CreateTextPrefab( "TYPING...", "TypingText", "", 2f); unfocusedText = CreateTextPrefab( "TABBED OUT", "UnfocusedText", "", 2f );; }
public CRCore3() { NetworkingAPI.RegisterMessageType <CRMissionNetworkMessage>(); NetworkingAPI.RegisterMessageType <CRTeleportNetworkMessage>(); itemCountOverrides.Add("ArmorPlate", 1); itemCountOverrides.Add("ArmorReductionOnHit", 3); itemCountOverrides.Add("Bear", 1); itemCountOverrides.Add("Behemoth", 2); itemCountOverrides.Add("Clover", 2); itemCountOverrides.Add("FireRing", 1); itemCountOverrides.Add("FlatHealth", 10); itemCountOverrides.Add("HealOnCrit", 10); itemCountOverrides.Add("Icicle", 3); itemCountOverrides.Add("Knurl", 5); itemCountOverrides.Add("Medkit", 2); itemCountOverrides.Add("Plant", 10); itemCountOverrides.Add("SecondarySkillMagazine", 10); itemCountOverrides.Add("Seed", 20); itemCountOverrides.Add("SlowOnHit", 1); itemCountOverrides.Add("UtilitySkillMagazine", 2); itemCountOverrides.Add("BleedOnHit", 5); }
public void Awake() { Logger = base.Logger; NetworkingAPI.RegisterMessageType <DropItemMessage>(); IL.RoR2.UI.ItemInventoryDisplay.AllocateIcons += OnItemIconAddedHook; IL.RoR2.UI.ScoreboardStrip.SetMaster += OnEquipmentIconAddedHook; RootObject = new GameObject("DropItemsMod"); DontDestroyOnLoad(RootObject); DropItemHandler = RootObject.AddComponent <DropItemHandler>(); CommandHelper.AddToConsoleWhenReady(); OnItemIconAdded += (itemIcon) => { if (itemIcon.GetComponent <DropItemHandler>() != null) { return; } Func <CharacterMaster> getCharacterMaster = () => itemIcon.rectTransform.parent.GetComponent <ItemInventoryDisplay>().GetFieldValue <Inventory>("inventory").GetComponent <CharacterMaster>(); var dropItemHandler = itemIcon.transform.gameObject.AddComponent <DropItemHandler>(); dropItemHandler.SetData(getCharacterMaster, () => PickupCatalog.FindPickupIndex(itemIcon.GetFieldValue <ItemIndex>("itemIndex"))); }; OnEquipmentIconAdded += (equipmentIcon) => { if (equipmentIcon.GetComponent <DropItemHandler>() != null) { return; } var dropItemHandler = equipmentIcon.transform.gameObject.AddComponent <DropItemHandler>(); dropItemHandler.SetData(() => equipmentIcon.targetInventory.GetComponent <CharacterMaster>(), () => PickupCatalog.FindPickupIndex(equipmentIcon.targetInventory.GetEquipmentIndex())); }; }
public override void OnPluginAwake() { base.OnPluginAwake(); NetworkingAPI.RegisterMessageType <MysticsItemsRhythmBehaviour.SyncCombo>(); }
internal static void Init() { NetworkingAPI.RegisterMessageType <SyncDiscoverPickup>(); }
public override void OnPluginAwake() { NetworkingAPI.RegisterMessageType <MysticsItemsOmarHackToolBehaviour.SyncUsesLeft>(); }
public override void OnPluginAwake() { base.OnPluginAwake(); NetworkingAPI.RegisterMessageType <MysticsItemsMysticSwordBehaviour.SyncDamageBonus>(); }
public override void SetupAttributes() { if (ItemBodyModelPrefab == null) { ItemBodyModelPrefab = Resources.Load <GameObject>(modelResourcePath); displayRules = GenerateItemDisplayRules(); } base.SetupAttributes(); NetworkingAPI.RegisterMessageType <SyncJarOrb>(); NetworkingAPI.RegisterMessageType <SyncJarSucking>(); NetworkingAPI.RegisterMessageType <SyncJarCharging>(); JarChargeSphere = Resources.Load <GameObject>("@Aetherium:Assets/Models/Prefabs/JarOfReshapingAbsorbEffect.prefab"); var chargeSphereEffectComponent = JarChargeSphere.AddComponent <RoR2.EffectComponent>(); chargeSphereEffectComponent.parentToReferencedTransform = true; chargeSphereEffectComponent.positionAtReferencedTransform = true; var chargeSphereTimer = JarChargeSphere.AddComponent <RoR2.DestroyOnTimer>(); chargeSphereTimer.duration = projectileAbsorptionTime; var chargeSphereVfxAttributes = JarChargeSphere.AddComponent <RoR2.VFXAttributes>(); chargeSphereVfxAttributes.vfxIntensity = RoR2.VFXAttributes.VFXIntensity.Low; chargeSphereVfxAttributes.vfxPriority = RoR2.VFXAttributes.VFXPriority.Medium; JarChargeSphere.AddComponent <NetworkIdentity>(); if (JarChargeSphere) { PrefabAPI.RegisterNetworkPrefab(JarChargeSphere); } EffectAPI.AddEffect(JarChargeSphere); //JarOrbProjectile = PrefabAPI.InstantiateClone(Resources.Load<GameObject>()) JarOrb = Resources.Load <GameObject>("@Aetherium:Assets/Models/Prefabs/JarOfReshapingOrb.prefab"); var jarOrbEffectComponent = JarOrb.AddComponent <RoR2.EffectComponent>(); var vfxAttributes = JarOrb.AddComponent <RoR2.VFXAttributes>(); vfxAttributes.vfxIntensity = RoR2.VFXAttributes.VFXIntensity.Low; vfxAttributes.vfxPriority = RoR2.VFXAttributes.VFXPriority.Medium; var orbEffect = JarOrb.AddComponent <OrbEffect>(); orbEffect.startEffect = Resources.Load <GameObject>("Prefabs/Effects/ShieldBreakEffect"); orbEffect.endEffect = Resources.Load <GameObject>("Prefabs/Effects/MuzzleFlashes/MuzzleFlashMageIce"); orbEffect.startVelocity1 = new Vector3(-10, 10, -10); orbEffect.startVelocity2 = new Vector3(10, 13, 10); orbEffect.endVelocity1 = new Vector3(-10, 0, -10); orbEffect.endVelocity2 = new Vector3(10, 5, 10); orbEffect.movementCurve = AnimationCurve.EaseInOut(0, 0, 1, 1); JarOrb.AddComponent <NetworkIdentity>(); if (JarOrb) { PrefabAPI.RegisterNetworkPrefab(JarOrb); } EffectAPI.AddEffect(JarOrb); OrbAPI.AddOrb(typeof(JarOfReshapingOrb)); JarProjectile = PrefabAPI.InstantiateClone(Resources.Load <GameObject>("Prefabs/Projectiles/PaladinRocket"), "JarOfReshapingProjectile", true); var model = Resources.Load <GameObject>("@Aetherium:Assets/Models/Prefabs/JarOfReshapingProjectile.prefab"); model.AddComponent <NetworkIdentity>(); model.AddComponent <ProjectileGhostController>(); var controller = JarProjectile.GetComponent <RoR2.Projectile.ProjectileController>(); controller.procCoefficient = 1; controller.ghostPrefab = model; JarProjectile.GetComponent <RoR2.TeamFilter>().teamIndex = TeamIndex.Neutral; var damage = JarProjectile.GetComponent <RoR2.Projectile.ProjectileDamage>(); damage.damageType = DamageType.Generic; damage.damage = 0; var impactExplosion = JarProjectile.GetComponent <RoR2.Projectile.ProjectileImpactExplosion>(); impactExplosion.destroyOnEnemy = true; impactExplosion.destroyOnWorld = true; impactExplosion.impactEffect = Resources.Load <GameObject>("Prefabs/Effects/BrittleDeath"); impactExplosion.blastRadius = 4; impactExplosion.blastProcCoefficient = 1f; // register it for networking if (JarProjectile) { PrefabAPI.RegisterNetworkPrefab(JarProjectile); } // add it to the projectile catalog or it won't work in multiplayer RoR2.ProjectileCatalog.getAdditionalEntries += list => { list.Add(JarProjectile); }; }
internal void Start() { NetworkingAPI.RegisterMessageType <DropLastItemMessage>(); }
internal static void Init() { NetworkingAPI.RegisterMessageType <SyncConversionMessage>(); }
private void Awake() { Log = new Log(Logger); NetworkingAPI.RegisterMessageType <SyncOwner>(); }
public void Start() { NetworkingAPI.RegisterMessageType <ItemPickerInfoMessage>(); NetworkingAPI.RegisterMessageType <ItemPickerItemsPickedMessage>(); Logger.LogDebug($"Registered NetMessage Types: {nameof(ItemPickerInfoMessage)}, {nameof(ItemPickerItemsPickedMessage)}"); }
public void Awake() { SetupConfig(); NetworkingAPI.RegisterMessageType <Networking.SendToClientsToDeleteIndicator>(); if (HideDoppelgangerEffect.Value) { ModifyDoppelGangerEffect(); } if (EnableHealthbar.Value) { On.RoR2.UI.CombatHealthBarViewer.VictimIsValid += HideHealthbar; } if (EnablePinging.Value) { On.RoR2.Util.HandleCharacterPhysicsCastResults += MisleadPinging; } if (EnableDamageNumbers.Value) { IL.RoR2.HealthComponent.HandleDamageDealt += HideDamageNumbers; } if (HideBossIndicator.Value) { On.RoR2.PositionIndicator.Start += BossIndicatorHiddenWhileCloaked; } if (HidePingOnCloaked.Value) { ModifyPingerPrefab(); } //IL.RoR2.Util.HandleCharacterPhysicsCastResults += Util_HandleCharacterPhysicsCastResults1; // Character Specific if (HuntressCantAim.Value) { On.RoR2.HuntressTracker.SearchForTarget += HuntressTracker_SearchForTarget; } if (MercCantFind.Value) { On.EntityStates.Merc.Evis.SearchForTarget += Evis_SearchForTarget; } // Squid //On.EntityStates.Squid.SquidWeapon.FireSpine. if (ProjectileSphereTargetFinderFilterType.Value != 0) { if (EngiChargeMine.Value || EngiSpiderMine.Value) { On.RoR2.Projectile.ProjectileSphereTargetFinder.PassesFilters += ModifyEngiMines; } } // Extra if (ShockKillsCloak.Value) { On.EntityStates.ShockState.PlayShockAnimation += ShockState_StopCloak; } if (ShockPausesCelestine.Value) { On.RoR2.BuffWard.BuffTeam += BuffWard_BuffTeam; } if (IdiotsAllowedNearOutlets.Value > OutletForkEnum.None) { On.RoR2.SurvivorCatalog.Init += AddShockOrStunToSurvivors; } // AI if (EnemyAIChange.Value) { On.RoR2.CharacterBody.RemoveBuff_BuffIndex += AlertEnemiesUponUncloak; } // Items // DML + ATG if (MissileIncludesFilterType.Value != 0) { On.RoR2.Projectile.MissileController.FindTarget += MissileController_FindTarget; if (MissileIncludesHarpoons.Value) { On.EntityStates.Engi.EngiMissilePainter.Paint.GetCurrentTargetInfo += Paint_GetCurrentTargetInfo; } } // BFG / Huntress' Glaive / Ukulele / Razorwire / CrocoDisease / Tesla if (LightningOrbIncludesFilterType.Value != 0) { On.RoR2.Orbs.LightningOrb.PickNextTarget += LightningOrb_PickNextTarget; } // Little Disciple / N'kuhana's Opinion if (DevilOrbIncludesFilterType.Value != 0) { On.RoR2.Orbs.DevilOrb.PickNextTarget += DevilOrb_PickNextTarget; } if (MiredUrn.Value) { On.RoR2.SiphonNearbyController.SearchForTargets += SiphonNearbyController_SearchForTargets; } // Ceremonial Dagger if (ProjectileDirectionalTargetFinderFilterType.Value != 0) { On.RoR2.Projectile.ProjectileDirectionalTargetFinder.SearchForTarget += ProjectileDirectionalTargetFinder_SearchForTarget; } if (RoyalCap.Value) { On.RoR2.EquipmentSlot.ConfigureTargetFinderForEnemies += EquipmentSlot_ConfigureTargetFinderForEnemies; } On.RoR2.CharacterBody.AddTimedBuff_BuffDef_float_int += CharacterBody_AddTimedBuff_BuffDef_float_int; }
public override void OnPluginAwake() { NetworkingAPI.RegisterMessageType <MysticsItemsManuscript.SyncAddBuff>(); NetworkingAPI.RegisterMessageType <MysticsItemsManuscript.SyncRemoveBuff>(); }
public static void Init() { NetworkingAPI.RegisterMessageType <SyncAnimationToServer>(); NetworkingAPI.RegisterMessageType <SyncAnimationToClients>(); }
private void RegisterNetworkMessages() { Log.Debug("Registering custom network messages needed for GradiusOption..."); NetworkingAPI.RegisterMessageType <SyncOptionTarget>(); }
public override void OnPluginAwake() { base.OnPluginAwake(); NetworkingAPI.RegisterMessageType <MysticsItemsDeathCeremonyMark.SyncMarked>(); }
public override void OnPluginAwake() { base.OnPluginAwake(); NetworkingAPI.RegisterMessageType <MysticsItemsFragileMaskBehaviour.SyncMaskSetActive>(); }