public void AddShrineStack(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineBossBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } this.waitingForRefresh = true; if (TeleporterInteraction.instance) { TeleporterInteraction.instance.AddShrineStack(); } CharacterBody component = interactor.GetComponent <CharacterBody>(); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectAsCharacterBody = component, baseToken = "SHRINE_BOSS_USE_MESSAGE" }); EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = new Color(0.7372549f, 0.90588236f, 0.94509804f) }, true); this.purchaseCount++; this.refreshTimer = 2f; if (this.purchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } }
public void GrantUnlock(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.RadiotowerTerminal::GrantUnlock(RoR2.Interactor)' called on client"); return; } EffectManager.instance.SpawnEffect(this.unlockEffect, new EffectData { origin = base.transform.position }, true); this.SetHasBeenPurchased(true); if (Run.instance) { Util.PlaySound(this.unlockSoundString, interactor.gameObject); Run.instance.GrantUnlockToAllParticipatingPlayers(this.unlockableName); string pickupToken = "???"; UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef(this.unlockableName); if (unlockableDef != null) { pickupToken = unlockableDef.nameToken; } Chat.SendBroadcastChat(new Chat.PlayerPickupChatMessage { subjectCharacterBodyGameObject = interactor.gameObject, baseToken = "PLAYER_PICKUP", pickupToken = pickupToken, pickupColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.Unlockable), pickupQuantity = 1u }); } }
public void SetRunNextStageToTarget() { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.SeerStationController::SetRunNextStageToTarget()' called on client"); return; } SceneDef sceneDef = SceneCatalog.GetSceneDef(this.targetSceneDefIndex); if (sceneDef) { SceneExitController sceneExitController = this.explicitTargetSceneExitController; if (!sceneExitController && this.fallBackToFirstActiveExitController) { sceneExitController = InstanceTracker.FirstOrNull <SceneExitController>(); } if (sceneExitController) { sceneExitController.destinationScene = sceneDef; sceneExitController.useRunNextStageScene = false; Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = sceneDef.portalSelectionMessageString }); } } }
public void AddShrineStack(Interactor activator) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineChanceBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } PickupIndex none = PickupIndex.none; PickupIndex value = Run.instance.availableTier1DropList[this.rng.RangeInt(0, Run.instance.availableTier1DropList.Count - 1)]; PickupIndex value2 = Run.instance.availableTier2DropList[this.rng.RangeInt(0, Run.instance.availableTier2DropList.Count - 1)]; PickupIndex value3 = Run.instance.availableTier3DropList[this.rng.RangeInt(0, Run.instance.availableTier3DropList.Count - 1)]; PickupIndex value4 = Run.instance.availableEquipmentDropList[this.rng.RangeInt(0, Run.instance.availableEquipmentDropList.Count - 1)]; WeightedSelection <PickupIndex> weightedSelection = new WeightedSelection <PickupIndex>(8); weightedSelection.AddChoice(none, this.failureWeight); weightedSelection.AddChoice(value, this.tier1Weight); weightedSelection.AddChoice(value2, this.tier2Weight); weightedSelection.AddChoice(value3, this.tier3Weight); weightedSelection.AddChoice(value4, this.equipmentWeight); PickupIndex pickupIndex = weightedSelection.Evaluate(this.rng.nextNormalizedFloat); bool flag = pickupIndex == PickupIndex.none; if (flag) { Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectCharacterBodyGameObject = activator.gameObject, baseToken = "SHRINE_CHANCE_FAIL_MESSAGE" }); } else { this.successfulPurchaseCount++; PickupDropletController.CreatePickupDroplet(pickupIndex, this.dropletOrigin.position, this.dropletOrigin.forward * 20f); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectCharacterBodyGameObject = activator.gameObject, baseToken = "SHRINE_CHANCE_SUCCESS_MESSAGE" }); } Action <bool, Interactor> action = ShrineChanceBehavior.onShrineChancePurchaseGlobal; if (action != null) { action(flag, activator); } this.waitingForRefresh = true; this.refreshTimer = 2f; EffectManager.instance.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = this.shrineColor }, true); if (this.successfulPurchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } }
public void GrantUnlock(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.BlueprintTerminal::GrantUnlock(RoR2.Interactor)' called on client"); return; } this.SetHasBeenPurchased(true); string unlockableName = this.unlockableOptions[this.unlockableChoice].unlockableName; EffectManager.SpawnEffect(this.unlockEffect, new EffectData { origin = base.transform.position }, true); if (Run.instance) { Util.PlaySound(this.unlockSoundString, interactor.gameObject); CharacterBody component = interactor.GetComponent <CharacterBody>(); Run.instance.GrantUnlockToSinglePlayer(unlockableName, component); string pickupToken = "???"; UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef(unlockableName); if (unlockableDef != null) { pickupToken = unlockableDef.nameToken; } Chat.SendBroadcastChat(new Chat.PlayerPickupChatMessage { subjectAsCharacterBody = component, baseToken = "PLAYER_PICKUP", pickupToken = pickupToken, pickupColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.Unlockable), pickupQuantity = 1U }); } }
private void AttemptToSpawnShopPortal() { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.TeleporterInteraction::AttemptToSpawnShopPortal()' called on client"); return; } Debug.Log("Submitting request for shop portal"); if (DirectorCore.instance.TrySpawnObject(this.shopPortalSpawnCard, new DirectorPlacementRule { maxDistance = 30f, minDistance = 0f, placementMode = DirectorPlacementRule.PlacementMode.Approximate, position = base.transform.position, spawnOnTarget = base.transform }, this.rng)) { Debug.Log("Succeeded in creating shop portal!"); Run.instance.shopPortalCount++; Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "PORTAL_SHOP_OPEN" }); } }
// Token: 0x06001674 RID: 5748 RVA: 0x0006AEA4 File Offset: 0x000690A4 public void OnInteractionBegin(Interactor activator) { if (this.activationState == TeleporterInteraction.ActivationState.Idle) { this.CallRpcClientOnActivated(activator.gameObject); Chat.SendBroadcastChat(new Chat.SubjectChatMessage { subjectCharacterBodyGameObject = activator.gameObject, baseToken = "PLAYER_ACTIVATED_TELEPORTER" }); if (this.showBossIndicator) { Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "SHRINE_BOSS_BEGIN_TRIAL" }); } this.activationState = TeleporterInteraction.ActivationState.IdleToCharging; return; } if (this.activationState == TeleporterInteraction.ActivationState.Charged) { this.activationState = TeleporterInteraction.ActivationState.Finished; base.GetComponent <SceneExitController>().Begin(); } }
// Token: 0x06000A59 RID: 2649 RVA: 0x00033CAB File Offset: 0x00031EAB public static void SendPlayerDisconnectedMessage(NetworkUser user) { Chat.SendBroadcastChat(new Chat.PlayerChatMessage { networkPlayerName = user.GetNetworkPlayerName(), baseToken = "PLAYER_DISCONNECTED" }); }
private void AddItemType(ItemTier itemTier) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ArenaMissionController::AddItemType(RoR2.ItemTier)' called on client"); return; } List <PickupIndex> list; switch (itemTier) { case ItemTier.Tier1: list = this.availableTier1DropList; break; case ItemTier.Tier2: list = this.availableTier2DropList; break; case ItemTier.Tier3: list = this.availableTier3DropList; break; default: return; } if (list.Count == 0) { Debug.LogErrorFormat("No items remaining in arena for tier {0}. Aborting.", new object[] { itemTier }); return; } PickupIndex pickupIndex = this.rng.NextElementUniform <PickupIndex>(list); list.Remove(pickupIndex); this.syncActivePickups.Add(pickupIndex.value); for (int i = 0; i < this.pickupDisplays.Length; i++) { PickupDisplay pickupDisplay = this.pickupDisplays[i]; if (!pickupDisplay.enabled) { pickupDisplay.enabled = true; pickupDisplay.SetPickupIndex(pickupIndex, false); break; } } PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex); Chat.SendBroadcastChat(new Chat.PlayerPickupChatMessage { baseToken = "ARENA_ADD_ITEM", pickupToken = pickupDef.nameToken, pickupColor = pickupDef.baseColor }); }
// Token: 0x0600090E RID: 2318 RVA: 0x0002739A File Offset: 0x0002559A private IEnumerator BroadcastFamilySelection(ClassicStageInfo.MonsterFamily selectedFamily) { yield return(new WaitForSeconds(1f)); Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = selectedFamily.familySelectionChatString }); yield break; }
private static void CCSay(ConCommandArgs args) { args.CheckArgumentCount(1); if (args.sender) { Chat.SendBroadcastChat(new Chat.UserChatMessage { sender = args.sender.gameObject, text = args[0] }); } }
public void CmdReportAchievement(string achievementNameToken) { Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { baseToken = "ACHIEVEMENT_UNLOCKED_MESSAGE", subjectNetworkUser = this, paramTokens = new string[] { achievementNameToken } }); }
// Token: 0x06000B6E RID: 2926 RVA: 0x00038294 File Offset: 0x00036494 public void CommentOnLunarPurchase() { float percentChance = 20f; int max = 8; if (Util.CheckRoll(percentChance, 0f, null)) { Chat.SendBroadcastChat(new Chat.NpcChatMessage { sender = this.shopkeeper, baseToken = "NEWT_LUNAR_PURCHASE_" + UnityEngine.Random.Range(1, max) }); } }
// Token: 0x06000B71 RID: 2929 RVA: 0x000382E8 File Offset: 0x000364E8 public void CommentOnUpgrade() { float percentChance = 100f; int max = 3; if (Util.CheckRoll(percentChance, 0f, null)) { Chat.SendBroadcastChat(new Chat.NpcChatMessage { sender = this.shopkeeper, baseToken = "NEWT_UPGRADE_" + UnityEngine.Random.Range(1, max) }); } }
public void AddShrineStack(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineCombatBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } new List <CharacterBody>(); this.waitingForRefresh = true; if (this.combatDirector) { this.combatDirector.enabled = true; this.combatDirector.monsterCredit += this.monsterCredit; this.combatDirector.OverrideCurrentMonsterCard(this.chosenDirectorCard); this.combatDirector.monsterSpawnTimer = 0f; } CharacterMaster component = this.chosenDirectorCard.spawnCard.prefab.GetComponent <CharacterMaster>(); if (component) { CharacterBody component2 = component.bodyPrefab.GetComponent <CharacterBody>(); if (component2) { Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectAsCharacterBody = interactor.GetComponent <CharacterBody>(), baseToken = "SHRINE_COMBAT_USE_MESSAGE", paramTokens = new string[] { component2.baseNameToken } }); } } EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = this.shrineEffectColor }, true); this.purchaseCount++; this.refreshTimer = 2f; if (this.purchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } }
private void AddMonsterType() { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ArenaMissionController::AddMonsterType()' called on client"); return; } if (this.availableMonsterCards.Count == 0) { Debug.Log("Out of monster types! Aborting."); return; } int num = this.availableMonsterCards.EvaluteToChoiceIndex(this.rng.nextNormalizedFloat); DirectorCard value = this.availableMonsterCards.choices[num].value; this.activeMonsterCards.Add(value); SyncList <int> syncList = this.syncActiveMonsterBodies; CharacterMaster component = value.spawnCard.prefab.GetComponent <CharacterMaster>(); int? num2; if (component == null) { num2 = null; } else { CharacterBody component2 = component.bodyPrefab.GetComponent <CharacterBody>(); num2 = ((component2 != null) ? new int?(component2.bodyIndex) : null); } syncList.Add(num2 ?? -1); this.availableMonsterCards.RemoveChoice(num); CharacterBody component3 = value.spawnCard.prefab.GetComponent <CharacterMaster>().bodyPrefab.GetComponent <CharacterBody>(); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { baseToken = "ARENA_ADD_MONSTER", paramTokens = new string[] { component3.baseNameToken } }); }
public void AddShrineStack(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineBloodBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } this.waitingForRefresh = true; CharacterBody component = interactor.GetComponent <CharacterBody>(); if (component) { uint amount = (uint)(component.healthComponent.fullHealth * (float)this.purchaseInteraction.cost / 100f * this.goldToPaidHpRatio); if (component.master) { component.master.GiveMoney(amount); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectCharacterBodyGameObject = interactor.gameObject, baseToken = "SHRINE_BLOOD_USE_MESSAGE", paramTokens = new string[] { amount.ToString() } }); } } EffectManager.instance.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = Color.red }, true); this.purchaseCount++; this.refreshTimer = 2f; if (this.purchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } }
public void AddShrineStack(Interactor activator) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineHealingBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } this.SetWardEnabled(true); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectAsCharacterBody = activator.gameObject.GetComponent <CharacterBody>(), baseToken = "SHRINE_HEALING_USE_MESSAGE" }); this.waitingForRefresh = true; int purchaseCount = this.purchaseCount; this.purchaseCount = purchaseCount + 1; float networkradius = this.baseRadius + this.radiusBonusPerPurchase * (float)(this.purchaseCount - 1); this.healingWard.Networkradius = networkradius; this.refreshTimer = 2f; EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = Color.green }, true); if (this.purchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } Action <ShrineHealingBehavior, Interactor> action = ShrineHealingBehavior.onActivated; if (action == null) { return; } action(this, activator); }
private void AttemptToSpawnMSPortal() { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.TeleporterInteraction::AttemptToSpawnMSPortal()' called on client"); return; } if (DirectorCore.instance.TrySpawnObject(this.msPortalSpawnCard, new DirectorPlacementRule { maxDistance = 40f, minDistance = 10f, placementMode = DirectorPlacementRule.PlacementMode.Approximate, position = base.transform.position, spawnOnTarget = base.transform }, this.rng)) { Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "PORTAL_MS_OPEN" }); } }
public void AddShrineStack(Interactor interactor) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineRestackBehavior::AddShrineStack(RoR2.Interactor)' called on client"); return; } this.waitingForRefresh = true; CharacterBody component = interactor.GetComponent <CharacterBody>(); if (component && component.master) { Inventory inventory = component.master.inventory; if (inventory) { inventory.ShrineRestackInventory(this.rng); Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectCharacterBodyGameObject = interactor.gameObject, baseToken = "SHRINE_RESTACK_USE_MESSAGE" }); } } EffectManager.instance.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData { origin = base.transform.position, rotation = Quaternion.identity, scale = 1f, color = new Color(1f, 0.23f, 0.6337214f) }, true); this.purchaseCount++; this.refreshTimer = 2f; if (this.purchaseCount >= this.maxPurchaseCount) { this.symbolTransform.gameObject.SetActive(false); } }
// Token: 0x06001730 RID: 5936 RVA: 0x0006E220 File Offset: 0x0006C420 private void GrantPickup(GameObject activator) { if (Run.instance) { Util.PlaySound(UnlockPickup.itemPickupSoundString, activator); Run.instance.GrantUnlockToAllParticipatingPlayers(this.unlockableName); string pickupToken = "???"; UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef(this.unlockableName); if (unlockableDef != null) { pickupToken = unlockableDef.nameToken; } Chat.SendBroadcastChat(new Chat.PlayerPickupChatMessage { subjectCharacterBodyGameObject = activator, baseToken = "PLAYER_PICKUP", pickupToken = pickupToken, pickupColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.Unlockable), pickupQuantity = 1u }); this.consumed = true; UnityEngine.Object.Destroy(base.transform.root.gameObject); } }
// Token: 0x06000A56 RID: 2646 RVA: 0x00033BF9 File Offset: 0x00031DF9 public static void SendBroadcastChat(Chat.ChatMessageBase message) { Chat.SendBroadcastChat(message, QosChannelIndex.chat.intVal); }
public void EndRound() { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ArenaMissionController::EndRound()' called on client"); return; } int clearedRounds = this.clearedRounds; this.clearedRounds = clearedRounds + 1; if (this.currentRound < this.totalRoundsMax) { this.ReadyNextNullWard(); } else { Action action = ArenaMissionController.onBeatArena; if (action != null) { action(); } this.mainStateMachine.SetNextState(new ArenaMissionController.MissionCompleted()); Chat.SendBroadcastChat(new Chat.SimpleChatMessage { baseToken = "ARENA_END" }); } for (int i = 0; i < this.combatDirectors.Length; i++) { CombatDirector combatDirector = this.combatDirectors[i]; combatDirector.enabled = false; combatDirector.monsterCredit = 0f; } ReadOnlyCollection <TeamComponent> teamMembers = TeamComponent.GetTeamMembers(TeamIndex.Monster); for (int j = teamMembers.Count - 1; j >= 0; j--) { teamMembers[j].body.healthComponent.Suicide(base.gameObject, base.gameObject, DamageType.VoidDeath); } int participatingPlayerCount = Run.instance.participatingPlayerCount; if (participatingPlayerCount != 0 && this.rewardSpawnPosition) { List <PickupIndex> list = Run.instance.availableTier1DropList; if (this.currentRound > 4) { list = Run.instance.availableTier2DropList; } if (this.currentRound == this.totalRoundsMax) { list = Run.instance.availableTier3DropList; } ItemIndex itemIndex = this.rng.NextElementUniform <PickupIndex>(list).itemIndex; int num = participatingPlayerCount; float angle = 360f / (float)num; Vector3 vector = Quaternion.AngleAxis((float)UnityEngine.Random.Range(0, 360), Vector3.up) * (Vector3.up * 40f + Vector3.forward * 5f); Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.up); int k = 0; while (k < num) { PickupDropletController.CreatePickupDroplet(new PickupIndex(itemIndex), this.rewardSpawnPosition.transform.position, vector); k++; vector = rotation * vector; } } }