// Token: 0x06002BF6 RID: 11254 RVA: 0x000B9BAC File Offset: 0x000B7DAC public override void OnEnter() { base.OnEnter(); Transform parent = base.transform.parent; if (parent) { TeleporterInteraction component = parent.GetComponent <TeleporterInteraction>(); if (component) { this.radius = component.clearRadius; } } TeamFilter component2 = base.GetComponent <TeamFilter>(); TeamIndex teamIndex = component2 ? component2.teamIndex : TeamIndex.None; if (NetworkServer.active) { this.healPulse = new TeleporterHealNovaPulse.HealPulse(base.transform.position, this.radius, 0.5f, TeleporterHealNovaPulse.duration, teamIndex); } this.effectTransform = base.transform.Find("PulseEffect"); if (this.effectTransform) { this.effectTransform.gameObject.SetActive(true); } }
private void Run_OnServerTeleporterPlaced(On.RoR2.Run.orig_OnServerTeleporterPlaced orig, Run self, SceneDirector sceneDirector, GameObject teleporter) { orig(self, sceneDirector, teleporter); TeleporterInteraction teleporterInteraction = teleporter.GetComponent <TeleporterInteraction>(); teleporterInteraction.NetworkactivationStateInternal = 1; // 1 == idleToChargingState }
// Token: 0x06002898 RID: 10392 RVA: 0x000AC9D0 File Offset: 0x000AABD0 private void OnTeleporterChargedGlobal(TeleporterInteraction teleporterInteraction) { if (!this.failed) { base.Grant(); } }
private void Check(TeleporterInteraction teleporterInteraction) { if (!hasBeenHit) { for (int i = 0; i < CharacterMaster.readOnlyInstancesList.Count; i++) { //body.GetComponent<CharacterBody>()?.inventory.GiveItem(catalogIndex); var player = CharacterMaster.readOnlyInstancesList[i]; if (player) { var body = player.GetComponent <CharacterBody>(); if (body) { Chat.AddMessage(i.ToString() + "= Gave Master Round to " + player.name); PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(catalogIndex); Vector3 pickupVelocity = new Vector3(100 * i, 100, 100 * i); PickupDropletController.CreatePickupDroplet(pickupIndex, teleporterInteraction.transform.position, pickupVelocity); } } } } else { Chat.AddMessage("Players didn't survive the hits"); } }
// Token: 0x06002921 RID: 10529 RVA: 0x000AD712 File Offset: 0x000AB912 private void CheckTeleporter(TeleporterInteraction teleporterInteraction) { if (this.sceneOk && this.characterOk && !this.failed) { base.Grant(); } }
public void RunOnTeleporterBeginChargingGlobal(TeleporterInteraction teleporterInteraction) { if (NetworkServer.active) { foreach (var teamComponent in TeamComponent.GetTeamMembers(TeamIndex.Player)) { CharacterBody body = teamComponent.body; if (body) { CharacterMaster master = teamComponent.body.master; if (master) { int itemCount = master.inventory.GetItemCount(RoR2Content.Items.WardOnLevel); if (itemCount > 0) { GameObject gameObject = Object.Instantiate <GameObject>(LegacyResourcesAPI.Load <GameObject>("Prefabs/NetworkedObjects/WarbannerWard"), body.transform.position, Quaternion.identity); gameObject.GetComponent <TeamFilter>().teamIndex = TeamIndex.Player; gameObject.GetComponent <BuffWard>().Networkradius = 8f + 8f * (float)itemCount; NetworkServer.Spawn(gameObject); } } } } } }
//private static void BossGroup_DropRewards(On.RoR2.BossGroup.orig_DropRewards orig, BossGroup self) //{ // ItemDropAPI.BossDropParticipatingPlayerCount = _bossItems; // orig(self); //} /// <summary> /// // Helper function for Bossloot /// </summary> private static void OverrideBossLootScaling(On.RoR2.TeleporterInteraction.orig_OnInteractionBegin orig, TeleporterInteraction self, Interactor activator) { _bossItems = ShareSuite.OverrideBossLootScalingEnabled.Value ? ShareSuite.BossLootCredit.Value : Run.instance.participatingPlayerCount; orig(self, activator); }
private void OnTeleporterBeginCharging(TeleporterInteraction teleporterInteraction) { //get stage number and multiply the allowed hits hasBeenHit = false; teleporterCharging = true; Chat.AddMessage("MasterRound: Teleporter Started Charging"); }
static void PreventTeleporterFireworks(On.RoR2.GlobalEventManager.orig_OnInteractionBegin orig, GlobalEventManager self, Interactor interactor, IInteractable interactable, GameObject interactableObject) { TeleporterInteraction teleporter = interactableObject.GetComponent <TeleporterInteraction>(); if (!teleporter) { orig(self, interactor, interactable, interactableObject); } }
private static void FixLunarTp() { GameObject lunarTeleporter = Resources.Load <GameObject>("prefabs/networkedobjects/TeleporterLunar"); GameObject teleporter = Resources.Load <GameObject>("prefabs/networkedobjects/Teleporter1"); TeleporterInteraction lunarInteraction = lunarTeleporter.GetComponent <TeleporterInteraction>(); HoldoutZoneController teleporterZoneController = teleporter.GetComponent <HoldoutZoneController>(); HoldoutZoneController lunarZoneController = lunarTeleporter.AddComponent <HoldoutZoneController>(); OutsideInteractableLocker lunarInteractableLocker = lunarTeleporter.AddComponent <OutsideInteractableLocker>(); EntityStateMachine lunarStateMachine = lunarTeleporter.AddComponent <EntityStateMachine>(); EntityStateMachine stateMachine = teleporter.GetComponent <EntityStateMachine>(); LanguageAPI.Add("TELEPORTERLUNAR_HOLDOUT_TOKEN", "Observe."); lunarZoneController.baseChargeDuration = teleporterZoneController.baseChargeDuration; lunarZoneController.baseRadius = 100000; lunarZoneController.inBoundsObjectiveToken = "TELEPORTERLUNAR_HOLDOUT_TOKEN"; lunarZoneController.outOfBoundsObjectiveToken = teleporterZoneController.outOfBoundsObjectiveToken; lunarZoneController.radiusIndicator = null; lunarZoneController.radiusSmoothTime = teleporterZoneController.radiusSmoothTime; lunarZoneController.enabled = true; lunarInteractableLocker.updateInterval = 0.1f; lunarInteractableLocker.lockPrefab = Resources.Load <GameObject>("prefabs/networkedobjects/PurchaseLock"); lunarStateMachine.customName = "Main"; lunarStateMachine.initialStateType = stateMachine.initialStateType; lunarStateMachine.mainStateType = stateMachine.mainStateType; lunarStateMachine.commonComponents = stateMachine.commonComponents; lunarStateMachine.networkIndex = -1; lunarInteraction.mainStateMachine = lunarStateMachine; lunarInteraction.outsideInteractableLocker = lunarInteractableLocker; foreach (CombatDirector combatDirector in lunarTeleporter.GetComponents <CombatDirector>()) { if (combatDirector.customName == "Monsters") { combatDirector.expRewardCoefficient = 0.1f; combatDirector.minSeriesSpawnInterval = 0.5f; combatDirector.maxSeriesSpawnInterval = 0.5f; combatDirector.minRerollSpawnInterval = 2; combatDirector.maxRerollSpawnInterval = 4; combatDirector.creditMultiplier = 6; combatDirector.spawnDistanceMultiplier = 1.5f; combatDirector.shouldSpawnOneWave = false; combatDirector.targetPlayers = true; combatDirector.skipSpawnIfTooCheap = true; combatDirector.resetMonsterCardIfFailed = true; combatDirector.maximumNumberToSpawnBeforeSkipping = 6; combatDirector.eliteBias = 2; } else if (combatDirector.customName == "Boss") { } } }
private static void TeleporterInteraction_onTeleporterBeginChargingGlobal(TeleporterInteraction obj) { if (NetworkServer.active) { isRoboBallBoss = false; timeSaved = 0; obj.remainingChargeTimer = obj.chargeDuration; } }
private void TeleporterInteraction_onTeleporterChargedGlobal(TeleporterInteraction teleporterInteraction) { if (MysticsItemsTreasureMapZone.instance && MysticsItemsTreasureMapZone.instance.ShouldBeActive && NetworkServer.active) { Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "MYSTICSITEMS_TREASUREMAP_WARNING" }); } }
private void GetMinorThings(TeleporterInteraction teleporterInteraction) { CurrentTele = teleporterInteraction; if (newColor != Color.clear) { newColor = new Color(rVal, gVal, bVal, 1f); } new WaitForSeconds(startupDelay); OnEnable(teleporterInteraction.holdoutZoneController); }
private void CheckAchievement(TeleporterInteraction interaction) { if (base.isUserAlive && base.meetsBodyRequirement) { if (base.localUser.cachedBody.healthComponent.health <= base.localUser.cachedBody.healthComponent.fullHealth / 5) { base.Grant(); } } }
public TeleporterData(TeleporterInteraction teleporter) { transform = new SerializableTransform(teleporter.transform); remainingCharge = teleporter.remainingChargeTimer; activationState = (int)getActivationState.GetValue(teleporter); bossShrineStacks = teleporter.shrineBonusStacks; blueOrb = teleporter.Network_shouldAttemptToSpawnShopPortal; goldOrb = teleporter.Network_shouldAttemptToSpawnGoldshoresPortal; celestialOrb = teleporter.Network_shouldAttemptToSpawnMSPortal; }
public void Run(string[] args) { TeleporterInteraction teleporterInteraction = TeleporterInteraction.instance; if (teleporterInteraction.NetworkactivationStateInternal != IDLE_ACTIVATION_STATE) { throw new InvalidOperationException("teleporter must be idle to force tele"); } teleporterInteraction.NetworkactivationStateInternal = IDLE_TO_CHARGING_ACTIVATION_STATE; }
// Token: 0x060028AE RID: 10414 RVA: 0x000ACC74 File Offset: 0x000AAE74 private void UpdateStayedInZone() { if (this.stayedInZone) { TeleporterInteraction instance = TeleporterInteraction.instance; CharacterBody currentBody = base.GetCurrentBody(); if (!instance || !currentBody || !instance.IsInChargingRange(currentBody)) { this.SetStayedInZone(false); } } }
IEnumerator WaitForStart(TeleporterInteraction teleporter) { yield return(null); teleporter.shrineBonusStacks = bossShrineStacks; teleporter.Network_shouldAttemptToSpawnShopPortal = blueOrb; teleporter.Network_shouldAttemptToSpawnGoldshoresPortal = goldOrb; teleporter.Network_shouldAttemptToSpawnMSPortal = celestialOrb; getActivationState.SetValue(teleporter, activationState); teleporter.SetFieldValue("previousActivationState", 1); }
private static void TeleporterInteraction_onTeleporterChargedGlobal(TeleporterInteraction obj) { if (NetworkServer.active) { var comps = UnityEngine.Object.FindObjectsOfType <MasterRoundComponent>(); foreach (var component in comps) { component.teleporterCharging = false; } CheckMasterRoundEventResult(); } }
private void GiveComponent(TeleporterInteraction interaction) { if (base.meetsBodyRequirement && base.isUserAlive) { TraditionalAchievementHandler component = localUser.cachedBody.gameObject.GetComponent <TraditionalAchievementHandler>(); if (!component) { component = localUser.cachedBody.gameObject.AddComponent <TraditionalAchievementHandler>(); } component.ResetEligibility(); } }
// Token: 0x0600269F RID: 9887 RVA: 0x000B2238 File Offset: 0x000B0438 private void OnTeleporterCharged(TeleporterInteraction teleporterInteraction) { SceneCatalog.GetSceneDefForCurrentScene(); StatSheet currentStats = base.networkUser.masterPlayerStatsComponent.currentStats; if (Run.instance && Run.instance.stageClearCount == 0) { PlayerStatsComponent masterPlayerStatsComponent = base.networkUser.masterPlayerStatsComponent; if (masterPlayerStatsComponent) { masterPlayerStatsComponent.currentStats.PushStatValue(StatDef.firstTeleporterCompleted, 1UL); } } }
private void SwitchCheckTeleport(TeleporterInteraction obj) { if (base.meetsBodyRequirement) { ManipulatorController maniController = base.localUser.cachedBodyObject.GetComponent <ManipulatorController>(); if (maniController) { if (!maniController.hasSwapped) { base.Grant(); } } } }
/// <summary> /// // Helper function for Bossloot /// </summary> private static void OverrideBossLootScaling(On.RoR2.TeleporterInteraction.orig_OnInteractionBegin orig, TeleporterInteraction self, Interactor activator) { if (!ShareSuite.MultitudesIsActive && ShareSuite.OverrideBossLootScalingEnabled.Value) { _bossItems = ShareSuite.BossLootCredit.Value; } else { _bossItems = Run.instance.participatingPlayerCount; } orig(self, activator); }
public static void Teleport(TeleporterInteraction self) { if (!UsedTeleporter) { if (PVPEnded) { ApplyExp(); self.GetComponent <SceneExitController>().Begin(); UsedTeleporter = true; return; } Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "You cannot use the teleporter until all enemy players are dead." }); } }
private void CheckCaptainComponent(TeleporterInteraction interaction) { if (base.isUserAlive && base.meetsBodyRequirement) { SupportAchievementHandler component = base.localUser.cachedMasterController.master.gameObject.GetComponent <SupportAchievementHandler>(); if (!component) { component = base.localUser.cachedMasterController.master.gameObject.AddComponent <SupportAchievementHandler>(); } if (component.IsValid()) { PlayerStatsComponent statsComponent = base.localUser.cachedStatsComponent; if (statsComponent && statsComponent.currentStats.GetStatValueULong(StatDef.highestStagesCompleted) >= 2UL) { base.Grant(); } } } }
private void TeleporterInteractionOnTeleporterBeginChargingGlobal(TeleporterInteraction obj) { ReadOnlyCollection <TeamComponent> teamMembers = TeamComponent.GetTeamMembers(TeamIndex.Player); int count = 0; foreach (TeamComponent tc in teamMembers) { if (Util.LookUpBodyNetworkUser(tc.body)) { count += tc.body.inventory.GetItemCount(MechanicalTrinket.itemIndex); } } if (count > 0) { foreach (TeamComponent tc in teamMembers) { obj.holdoutZoneController.baseRadius = obj.holdoutZoneController.baseRadius + (count * 3); } } }
public static void Reset() { IsGracePeriod = true; GraceTimer = Settings.GraceTimerDuration; CashGrantTimer = 0; CurrentGraceTimeReminder = GraceTimer; PVPEnded = false; UsedTeleporter = false; PreventGameOver = false; SecondaryTeleporter = null; if (NetworkServer.active) { //Spawns a normal teleporter on the stage to prevent being forced to use a specific teleporter or being softlocked ending the run if (SceneInfo.instance.sceneDef.baseSceneName == "skymeadow" || SceneInfo.instance.sceneDef.baseSceneName == "artifactworld" || SceneInfo.instance.sceneDef.baseSceneName == "goldshores") { SecondaryTeleporter = Tools.CustomGenerate("SpawnCards/InteractableSpawnCard/iscTeleporter", -1, Run.instance.stageRng).GetComponent <TeleporterInteraction>(); } } }
private void TeleporterInteraction_onTeleporterChargedGlobal(TeleporterInteraction obj) { if (NetworkServer.active) { Destroy(runUpdate); if (timeSaved >= 1) { if (AddToRunTime.Value) { Run.instance.fixedTime += timeSaved; } if (ShowMsg.Value) { timeSavedTotal += timeSaved; DisplayTimeSavedMsg(); } } timeSaved = 0; } }
// Token: 0x06002785 RID: 10117 RVA: 0x000AABDE File Offset: 0x000A8DDE private void OnTeleporterFinish(TeleporterInteraction teleporterInteraction) { this.Check(); }
private static void TeleporterInteraction_onTeleporterBeginChargingGlobal(TeleporterInteraction obj) { StartMasterRoundEvent(); }