public override void OnExit() { if (this.goodPlacement && base.characterBody.isPlayerControlled) { Util.PlaySound(CreatePounder.fireSoundString, base.gameObject); if (this.areaIndicatorInstance && NetworkServer.active) { if (editedPounder == null) { editedPounder = CreatePounder.projectilePrefab; } bool crit = Util.CheckRoll(this.critStat, base.characterBody.master); int cacheNumToSpawn = base.skillLocator.special.stock; for (int i = 0; i < cacheNumToSpawn; i++) { CharacterMaster characterMaster = new MasterSummon { masterPrefab = MasterCatalog.FindMasterPrefab("MercMonsterMaster"), position = areaIndicatorInstance.transform.position, rotation = characterBody.transform.rotation, summonerBodyObject = base.gameObject, ignoreTeamMemberLimit = false, teamIndexOverride = characterBody.teamComponent.teamIndex }.Perform(); base.skillLocator.special.DeductStock(1); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 0, (uint)Random.Range(0, characterBody.skillLocator.primary.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 1, (uint)Random.Range(0, characterBody.skillLocator.secondary.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 2, (uint)Random.Range(0, characterBody.skillLocator.utility.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 3, (uint)Random.Range(0, characterBody.skillLocator.special.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkinIndex(characterBody.bodyIndex, (uint)Random.Range(0, SkinCatalog.GetBodySkinCount(characterBody.bodyIndex))); characterMaster.inventory.CopyItemsFrom(base.characterBody.inventory); characterMaster.inventory.GiveItem(ItemIndex.HealthDecay, 15); } } } EntityState.Destroy(this.areaIndicatorInstance.gameObject); base.characterBody.crosshairPrefab = this.cachedCrosshairPrefab; base.OnExit(); this.outer.SetNextStateToMain(); }
private RoR2.NetworkPlayerName NetworkUser_GetNetworkPlayerName(On.RoR2.NetworkUser.orig_GetNetworkPlayerName orig, RoR2.NetworkUser self) { var nameOverride = NameOverride.Value; var bodyName = BodyFallbackName.Value; if (GetBodyName) { if (self.GetCurrentBody()) { bodyName = self.GetCurrentBody().GetDisplayName(); } else { if (BodyCatalog.GetBodyPrefab(self.bodyIndexPreference)) { bodyName = BodyCatalog.GetBodyPrefabBodyComponent(self.bodyIndexPreference).GetDisplayName(); } } } /*if (false == true && !SteamworksLobbyManager.isInLobby) * { * if (GetBodyName || (!GetBodyName && GetSkinName)) * { * nameOverride = bodyName; * } * return new RoR2.NetworkPlayerName * { * nameOverride = nameOverride, * steamId = self.id.steamId * }; * }*/ var skinName = SkinFallbackName.Value; SkinDef skinDef; bool isDefaultSkin = false; if (GetSkinName) { var body = self.GetCurrentBody(); if (body) { skinDef = SkinCatalog.FindCurrentSkinDefForBodyInstance(body.gameObject); if (skinDef) { var skinDefs = SkinCatalog.FindSkinsForBody(body.bodyIndex); skinName = Language.GetString(skinDef.nameToken); isDefaultSkin = skinDefs[0] == skinDef; } } else { if (self.bodyIndexPreference >= 0) { var skinDefs = SkinCatalog.FindSkinsForBody(self.bodyIndexPreference); if (skinDefs != null) { if (self.localUser?.userProfile?.loadout?.bodyLoadoutManager != null) { int skinIndex = (int)self.localUser.userProfile.loadout.bodyLoadoutManager.GetSkinIndex(self.bodyIndexPreference); var userSkinDef = skinDefs[skinIndex]; //var sksadinIndex = SkinCatalog.FindLocalSkinIndexForBody(self.bodyIndexPreference, userSkinDef); skinName = Language.GetString(userSkinDef.nameToken); isDefaultSkin = skinDefs[0] == userSkinDef; } } } } if (isDefaultSkin && ReplaceDefaultName) { skinName = DefaultSkinNameOverride.Value; } } if (GetSkinName || GetBodyName) { nameOverride = ""; if (GetSkinName) { nameOverride = string.Format(SkinNameFormatting.Value, bodyName, skinName); } else if (GetBodyName) { nameOverride = bodyName; } } if (self && self.id.steamId != null) { GetHost(); if (GetHostID && self.id.steamId == HostSteamID) { nameOverride = string.Format(hostFormattingString, nameOverride); } SteamID_to_DisplayName[self.id.steamId] = nameOverride; } return(new RoR2.NetworkPlayerName { nameOverride = nameOverride, steamId = self.id.steamId }); }
public override void OnExit() { if (this.goodPlacement && base.characterBody.isPlayerControlled) { Util.PlaySound(CreatePounder.fireSoundString, base.gameObject); if (this.areaIndicatorInstance && NetworkServer.active) { CharacterMaster characterMaster = new MasterSummon { masterPrefab = MasterCatalog.FindMasterPrefab("MercMonsterMaster"), position = base.characterBody.transform.position, rotation = characterBody.transform.rotation, summonerBodyObject = base.gameObject, ignoreTeamMemberLimit = true, teamIndexOverride = characterBody.teamComponent.teamIndex }.Perform(); base.skillLocator.utility.DeductStock(1); base.characterMotor.Motor.SetPosition(areaIndicatorInstance.transform.position); EffectData effectData = new EffectData(); effectData.rotation = Util.QuaternionSafeLookRotation(areaIndicatorInstance.transform.position - base.characterMotor.transform.position); effectData.origin = base.characterMotor.transform.position; EffectManager.SpawnEffect(EntityStates.Huntress.BlinkState.blinkPrefab, effectData, false); EffectData effectData2 = new EffectData(); effectData.rotation = Util.QuaternionSafeLookRotation(areaIndicatorInstance.transform.position - base.characterMotor.transform.position); effectData.origin = areaIndicatorInstance.transform.position; EffectManager.SpawnEffect(EntityStates.Huntress.BlinkState.blinkPrefab, effectData, false); base.characterBody.AddTimedBuff(BuffIndex.Cloak, 5f); base.characterBody.AddTimedBuff(BuffIndex.ElephantArmorBoost, 3f); base.characterBody.AddTimedBuff(BuffIndex.Immune, 2f); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 0, (uint)Random.Range(0, characterBody.skillLocator.primary.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 1, (uint)Random.Range(0, characterBody.skillLocator.secondary.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 2, (uint)Random.Range(0, characterBody.skillLocator.utility.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkillVariant(characterBody.bodyIndex, 3, (uint)Random.Range(0, characterBody.skillLocator.special.skillFamily.variants.Length)); characterMaster.loadout.bodyLoadoutManager.SetSkinIndex(characterBody.bodyIndex, (uint)Random.Range(0, SkinCatalog.GetBodySkinCount(characterBody.bodyIndex))); characterMaster.GetBody().baseDamage = 0f; characterMaster.inventory.GiveItem(ItemIndex.HealthDecay, 10); characterMaster.GetBody().inventory.SetEquipmentIndex(EquipmentIndex.AffixHaunted); } } EntityState.Destroy(this.areaIndicatorInstance.gameObject); base.characterBody.crosshairPrefab = this.cachedCrosshairPrefab; base.OnExit(); this.outer.SetNextStateToMain(); }