// try and setup our character, if we hit an error we set it to false //TODO: Find a way to stop it from checking whilst in main menu/lobby menu private static void GetCharacter() { try { LocalNetworkUser = null; foreach (NetworkUser readOnlyInstance in NetworkUser.readOnlyInstancesList) { //localplayer == you! if (readOnlyInstance.isLocalPlayer) { LocalNetworkUser = readOnlyInstance; LocalPlayer = LocalNetworkUser.master; LocalPlayerInv = LocalPlayer.GetComponent <Inventory>(); LocalHealth = LocalPlayer.GetBody().GetComponent <HealthComponent>(); LocalSkills = LocalPlayer.GetBody().GetComponent <SkillLocator>(); if (LocalHealth.alive) { _CharacterCollected = true; } else { _CharacterCollected = false; } } } } catch (Exception e) { _CharacterCollected = false; } }
public void RespawnCharacter(CharacterMaster characterMaster) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.Stage::RespawnCharacter(RoR2.CharacterMaster)' called on client"); return; } if (!characterMaster) { return; } Transform playerSpawnTransform = this.GetPlayerSpawnTransform(); Vector3 vector = Vector3.zero; Quaternion quaternion = Quaternion.identity; if (playerSpawnTransform) { vector = playerSpawnTransform.position; quaternion = playerSpawnTransform.rotation; } characterMaster.Respawn(vector, quaternion); if (characterMaster.GetComponent <PlayerCharacterMasterController>()) { this.spawnedAnyPlayer = true; } if (this.usePod) { Run.instance.HandlePlayerFirstEntryAnimation(characterMaster.GetBody(), vector, quaternion); } }
// Token: 0x0600124C RID: 4684 RVA: 0x00059CBC File Offset: 0x00057EBC public CharacterBody GetCurrentBody() { CharacterMaster master = this.master; if (master) { return(master.GetBody()); } return(null); }
// Token: 0x06000522 RID: 1314 RVA: 0x00014908 File Offset: 0x00012B08 public DamageReport(DamageInfo damageInfo, HealthComponent victim, float damageDealt) { this.damageInfo = damageInfo; this.victim = victim; this.victimBody = (victim ? victim.body : null); CharacterBody characterBody = this.victimBody; this.victimBodyIndex = ((characterBody != null) ? characterBody.bodyIndex : -1); CharacterBody characterBody2 = this.victimBody; this.victimTeamIndex = ((characterBody2 != null) ? characterBody2.teamComponent.teamIndex : TeamIndex.None); CharacterBody characterBody3 = this.victimBody; this.victimMaster = ((characterBody3 != null) ? characterBody3.master : null); CharacterBody characterBody4 = this.victimBody; this.victimIsElite = (characterBody4 != null && characterBody4.isElite); CharacterBody characterBody5 = this.victimBody; this.victimIsBoss = (characterBody5 != null && characterBody5.isBoss); this.attacker = damageInfo.attacker; this.attackerBody = (this.attacker ? this.attacker.GetComponent <CharacterBody>() : null); CharacterBody characterBody6 = this.attackerBody; this.attackerBodyIndex = ((characterBody6 != null) ? characterBody6.bodyIndex : -1); CharacterBody characterBody7 = this.attackerBody; this.attackerTeamIndex = ((characterBody7 != null) ? characterBody7.teamComponent.teamIndex : TeamIndex.None); CharacterBody characterBody8 = this.attackerBody; this.attackerMaster = ((characterBody8 != null) ? characterBody8.master : null); CharacterMaster characterMaster = this.attackerMaster; this.attackerOwnerMaster = ((characterMaster != null) ? characterMaster.minionOwnership.ownerMaster : null); CharacterMaster characterMaster2 = this.attackerOwnerMaster; int? num; if (characterMaster2 == null) { num = null; } else { CharacterBody body = characterMaster2.GetBody(); num = ((body != null) ? new int?(body.bodyIndex) : null); } this.attackerOwnerBodyIndex = (num ?? -1); this.dotType = damageInfo.dotIndex; this.damageDealt = damageDealt; }
private System.Collections.IEnumerator GlobalEventManager_CreateLevelUpEffect(On.RoR2.GlobalEventManager.orig_CreateLevelUpEffect orig, RoR2.GlobalEventManager self, float delay, GameObject levelUpEffect, RoR2.EffectData effectData) { yield return(new WaitForSeconds(delay)); orig.Invoke(self, delay, levelUpEffect, effectData); foreach (RoR2.PlayerCharacterMasterController playerCharacterMasterController in RoR2.PlayerCharacterMasterController.instances) { bool isClient = playerCharacterMasterController.master.isClient; if (isClient) { string displayName = playerCharacterMasterController.GetDisplayName(); System.Random rnd = new System.Random(); RoR2.CharacterMaster localUser = playerCharacterMasterController.master; RoR2.CharacterBody playerBody = localUser.GetBody(); int playerLevel = (int)playerBody.level; if (currentLevel < playerLevel) { ItemTier itemTier1 = ItemTier.Tier1; int amountOfItemsInTier = this.getAmountOfItemsInTier(itemTier1, playerCharacterMasterController.master); this.removeAllItemsInTier(itemTier1, playerCharacterMasterController.master); this.addItems(itemTier1, amountOfItemsInTier, playerCharacterMasterController.master, rnd, tier1Min.Value, tier1Max.Value); ItemTier itemTier2 = ItemTier.Tier2; amountOfItemsInTier = this.getAmountOfItemsInTier(itemTier2, playerCharacterMasterController.master); this.removeAllItemsInTier(itemTier2, playerCharacterMasterController.master); this.addItems(itemTier2, amountOfItemsInTier, playerCharacterMasterController.master, rnd, tier2Min.Value, tier2Max.Value); ItemTier itemTier3 = ItemTier.Tier3; amountOfItemsInTier = this.getAmountOfItemsInTier(itemTier3, playerCharacterMasterController.master); this.removeAllItemsInTier(itemTier3, playerCharacterMasterController.master); this.addItems(itemTier3, amountOfItemsInTier, playerCharacterMasterController.master, rnd, tier3Min.Value, tier3Max.Value); ItemTier itemTierLunar = ItemTier.Lunar; amountOfItemsInTier = this.getAmountOfItemsInTier(itemTierLunar, playerCharacterMasterController.master); this.removeAllItemsInTier(itemTierLunar, playerCharacterMasterController.master); this.addItems(itemTierLunar, amountOfItemsInTier, playerCharacterMasterController.master, rnd, tierLunarMin.Value, tierLunarMax.Value); currentLevel = playerLevel; } } } yield break; }
public void ModifySpawnedMasters(GameObject targetGameObject) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.ArenaMissionController::ModifySpawnedMasters(UnityEngine.GameObject)' called on client"); return; } ArenaMissionController.< > c__DisplayClass62_0 CS$ < > 8__locals1 = new ArenaMissionController.< > c__DisplayClass62_0(); CharacterMaster component = targetGameObject.GetComponent <CharacterMaster>(); CS$ < > 8__locals1.ai = component.GetComponent <BaseAI>(); if (CS$ < > 8__locals1.ai) { CS$ < > 8__locals1.ai.onBodyDiscovered += CS$ < > 8__locals1.< ModifySpawnedMasters > g__OnBodyDiscovered | 0; } CharacterBody body = component.GetBody(); if (body) { foreach (EntityStateMachine entityStateMachine in body.GetComponents <EntityStateMachine>()) { entityStateMachine.initialStateType = entityStateMachine.mainStateType; } } for (int j = 0; j < this.syncActivePickups.Count; j++) { int count = 0; ItemIndex itemIndex = PickupCatalog.GetPickupDef(new PickupIndex(this.syncActivePickups[j])).itemIndex; switch (ItemCatalog.GetItemDef(itemIndex).tier) { case ItemTier.Tier1: count = this.stackCountPerTier1; break; case ItemTier.Tier2: count = this.stackCountPerTier2; break; case ItemTier.Tier3: count = this.stackCountPerTier3; break; } component.inventory.GiveItem(itemIndex, count); } }
public void ShowItemPicker(List <RoR2.PickupIndex> availablePickups, RoR2.CharacterMaster master) { showUI = true; var itemInventoryDisplay = GameObject.Find("ItemInventoryDisplay"); float uiWidth = 220f; Logger.Log(LogLevel.Info, "Run started"); var g = new GameObject(); g.name = "LevelUpProgressionUI"; g.layer = 5; // UI g.AddComponent <Canvas>().renderMode = RenderMode.ScreenSpaceOverlay; g.GetComponent <Canvas>().sortingOrder = -1; // Required or the UI will render over pause and tooltips. // g.AddComponent<CanvaschanceScaling>().scaleFactor = 10.0f; // g.GetComponent<CanvaschanceScaling>().dynamicPixelsPerUnit = 10f; g.AddComponent <GraphicRaycaster>(); g.AddComponent <MPEventSystemProvider>().fallBackToMainEventSystem = true; g.AddComponent <MPEventSystemLocator>(); //g.AddComponent<CursorOpener>(); var ctr = new GameObject(); ctr.name = "Container"; ctr.transform.SetParent(g.transform, false); ctr.AddComponent <RectTransform>(); ctr.GetComponent <RectTransform>().anchorMin = new Vector2(0f, 0f); ctr.GetComponent <RectTransform>().anchorMax = new Vector2(1f, 1f); ctr.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 0f); ctr.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, uiWidth); var bg2 = new GameObject(); bg2.name = "Background"; bg2.transform.SetParent(ctr.transform, false); bg2.AddComponent <TranslucentImage>().color = new Color(0f, 0f, 0f, 1f); bg2.GetComponent <TranslucentImage>().raycastTarget = true; bg2.GetComponent <TranslucentImage>().material = Resources.Load <GameObject>("Prefabs/UI/Tooltip").GetComponentInChildren <TranslucentImage>(true).material; bg2.GetComponent <RectTransform>().anchorMin = new Vector2(0f, 0f); bg2.GetComponent <RectTransform>().anchorMax = new Vector2(1f, 1f); bg2.GetComponent <RectTransform>().sizeDelta = new Vector2(0, 0); var bg = new GameObject(); bg.name = "Background"; bg.transform.SetParent(ctr.transform, false); bg.AddComponent <Image>().sprite = itemInventoryDisplay.GetComponent <Image>().sprite; bg.GetComponent <Image>().type = Image.Type.Sliced; bg.GetComponent <RectTransform>().anchorMin = new Vector2(0f, 0f); bg.GetComponent <RectTransform>().anchorMax = new Vector2(1f, 1f); bg.GetComponent <RectTransform>().sizeDelta = new Vector2(0, 0); var header = new GameObject(); header.name = "Header"; header.transform.SetParent(ctr.transform, false); header.transform.localPosition = new Vector2(0, 0); header.AddComponent <HGTextMeshProUGUI>().fontSize = 15; if (startMessage) { header.GetComponent <HGTextMeshProUGUI>().text = "GOOD LUCK\n" + "Choose a starting perk."; startMessage = false; } else { header.GetComponent <HGTextMeshProUGUI>().text = "LEVEL UP\n" + "Choose a perk for level " + (levelsSpent + 1) + "."; } header.GetComponent <HGTextMeshProUGUI>().color = Color.white; header.GetComponent <HGTextMeshProUGUI>().alignment = TextAlignmentOptions.Center; header.GetComponent <RectTransform>().anchorMin = new Vector2(0f, 1f); header.GetComponent <RectTransform>().anchorMax = new Vector2(1f, 1f); header.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 1f); header.GetComponent <RectTransform>().sizeDelta = new Vector2(0, 40); var itemCtr = new GameObject(); itemCtr.name = "Item Container"; itemCtr.transform.SetParent(ctr.transform, false); itemCtr.transform.localPosition = new Vector2(0, -40f); itemCtr.AddComponent <GridLayoutGroup>().childAlignment = TextAnchor.UpperCenter; itemCtr.GetComponent <GridLayoutGroup>().cellSize = new Vector2(50f, 50f); itemCtr.GetComponent <GridLayoutGroup>().spacing = new Vector2(4f, 4f); itemCtr.GetComponent <RectTransform>().anchorMin = new Vector2(0f, 1f); itemCtr.GetComponent <RectTransform>().anchorMax = new Vector2(1f, 1f); itemCtr.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 1f); itemCtr.GetComponent <RectTransform>().sizeDelta = new Vector2(0f, 0); itemCtr.AddComponent <ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.PreferredSize; var itemIconPrefab = itemInventoryDisplay.GetComponent <ItemInventoryDisplay>().itemIconPrefab; foreach (RoR2.PickupIndex index in availablePickups) { var item = Instantiate <GameObject>(itemIconPrefab, itemCtr.transform).GetComponent <ItemIcon>(); if (index.equipmentIndex == EquipmentIndex.None) { item.SetItemIndex(index.itemIndex, 1); var temp = index.value; item.gameObject.AddComponent <Button>().onClick.AddListener(() => { //RoR2.Util.PlaySound("Item", currentPlayer.gameObject); //RoR2.Chat.AddMessage(currentPlayer.GetBody().GetUserName() + " chose " + index + "."); Logger.LogInfo("Item picked: " + index); UnityEngine.Object.Destroy(g); master.inventory.GiveItem(index.itemIndex); showUI = false; button1 = null; button2 = null; button3 = null; levelsSpent += 1; if (levelsSpent >= 0 && levelsSpent < levelsTotal) { ShowItemPicker(GetAvailablePickups(), master); } }); } if (index.itemIndex == ItemIndex.None) { var def = RoR2.EquipmentCatalog.GetEquipmentDef(index.equipmentIndex); item.GetComponent <RawImage>().texture = def.pickupIconTexture; item.stackText.enabled = false; item.tooltipProvider.titleToken = def.nameToken; item.tooltipProvider.titleColor = RoR2.ColorCatalog.GetColor(def.colorIndex); item.tooltipProvider.bodyToken = def.pickupToken; item.tooltipProvider.bodyColor = Color.gray; var temp = index.value; item.gameObject.AddComponent <Button>().onClick.AddListener(() => { if (master.inventory.GetEquipmentIndex() != null) { RoR2.PickupDropletController.CreatePickupDroplet(RoR2.PickupCatalog.FindPickupIndex(master.inventory.currentEquipmentIndex), master.GetBody().transform.position, new Vector3(0, 0, 1)); } Logger.LogInfo("Equipment picked: " + index); //RoR2.Chat.AddMessage(currentPlayer.GetBody().GetUserName() + " chose " + def.nameToken + "."); UnityEngine.Object.Destroy(g); master.inventory.GiveEquipmentString(def.name); showUI = false; button1 = null; button2 = null; button3 = null; levelsSpent += 1; if (levelsSpent >= 0 && levelsSpent < levelsTotal) { ShowItemPicker(GetAvailablePickups(), master); } }); } if (index == availablePickups[0]) { button1 = item.gameObject.GetComponent <Button>(); } else if (index == availablePickups[1]) { button2 = item.gameObject.GetComponent <Button>(); } else if (index == availablePickups[2]) { button3 = item.gameObject.GetComponent <Button>(); } } LayoutRebuilder.ForceRebuildLayoutImmediate(itemCtr.GetComponent <RectTransform>()); ctr.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, itemCtr.GetComponent <RectTransform>().sizeDelta.y + 45f); ////////////////////////////////////////////////////////////////////////////////////////////// ///Teleport out code ////////////////////////////////////////////////////////////////////////////////////////////// /* Also activates on teleport in... * On.RoR2.TeleportOutController.AddTPOutEffect += delegate (On.RoR2.TeleportOutController.orig_AddTPOutEffect orig, RoR2.CharacterModel characterModel, float beginAlpha, float endAlpha, float duration) * { * * orig.Invoke(characterModel, beginAlpha, endAlpha, duration); * * StartCoroutine(DestroyUICoroutine(2, g)); * * } * }; */ }
private static void HandlePickupMessage(NetworkMessage netMsg) { Debug.Log("GenericPickupController.HandlePickupMessage: Received pickup message."); ReadOnlyCollection <NotificationQueue> readOnlyInstancesList = NotificationQueue.readOnlyInstancesList; GenericPickupController.PickupMessage pickupMessage = GenericPickupController.pickupMessageInstance; netMsg.ReadMessage <GenericPickupController.PickupMessage>(pickupMessage); GameObject masterGameObject = pickupMessage.masterGameObject; PickupIndex pickupIndex = pickupMessage.pickupIndex; uint pickupQuantity = pickupMessage.pickupQuantity; pickupMessage.Reset(); if (!masterGameObject) { Debug.Log("GenericPickupController.HandlePickupMessage: failed! masterObject is not valid."); return; } CharacterMaster component = masterGameObject.GetComponent <CharacterMaster>(); if (!component) { Debug.Log("GenericPickupController.HandlePickupMessage: failed! master component is not valid."); return; } PlayerCharacterMasterController component2 = component.GetComponent <PlayerCharacterMasterController>(); if (component2) { NetworkUser networkUser = component2.networkUser; if (networkUser) { LocalUser localUser = networkUser.localUser; if (localUser != null) { localUser.userProfile.DiscoverPickup(pickupIndex); } } } for (int i = 0; i < readOnlyInstancesList.Count; i++) { readOnlyInstancesList[i].OnPickup(component, pickupIndex); } CharacterBody body = component.GetBody(); if (!body) { Debug.Log("GenericPickupController.HandlePickupMessage: failed! characterBody is not valid."); } ItemDef itemDef = ItemCatalog.GetItemDef(pickupIndex.itemIndex); if (itemDef != null && itemDef.hidden) { Debug.LogFormat("GenericPickupController.HandlePickupMessage: skipped item {0}, marked hidden.", new object[] { itemDef.nameToken }); return; } Chat.AddPickupMessage(body, pickupIndex.GetPickupNameToken(), pickupIndex.GetPickupColor(), pickupQuantity); if (body) { Util.PlaySound("Play_UI_item_pickup", body.gameObject); } }