private void Main_FirstFrame1() { foreach (var effect in skinnedEffects) { var ind = EffectCatalog.FindEffectIndexFromPrefab(effect); if (ind == EffectIndex.Invalid) { Main.LogE("Invalid effect: " + effect.name); continue; } skinnedEffectCache[ind] = new Dictionary <UInt32, EffectDef>(); } foreach (var projectile in skinnedProjectiles) { var ind = ProjectileCatalog.GetProjectileIndex(projectile); if (ind == -1) { Main.LogE("Invalid projectile: " + projectile.name); continue; } skinnedGhostCache[ind] = new Dictionary <UInt32, GameObject>(); } }
// Token: 0x060028B5 RID: 10421 RVA: 0x000ACD1D File Offset: 0x000AAF1D public override void OnInstall() { base.OnInstall(); this.impBossBodyIndex = BodyCatalog.FindBodyIndex("ImpBossBody"); this.bfgProjectileIndex = ProjectileCatalog.FindProjectileIndex("BeamSphere"); GlobalEventManager.onCharacterDeathGlobal += this.OnCharacterDeath; }
// Token: 0x06001EE7 RID: 7911 RVA: 0x00085E78 File Offset: 0x00084078 private void HandlePlayerFireProjectileInternal(NetworkMessage netMsg) { netMsg.ReadMessage <ProjectileManager.PlayerFireProjectileMessage>(this.fireMsg); GameObject projectilePrefab = ProjectileCatalog.GetProjectilePrefab((int)this.fireMsg.prefabIndex); if (projectilePrefab == null) { this.ReleasePredictionId(netMsg.conn, this.fireMsg.predictionId); return; } FireProjectileInfo fireProjectileInfo = default(FireProjectileInfo); fireProjectileInfo.projectilePrefab = projectilePrefab; fireProjectileInfo.position = this.fireMsg.position; fireProjectileInfo.rotation = this.fireMsg.rotation; fireProjectileInfo.owner = this.fireMsg.owner; fireProjectileInfo.damage = this.fireMsg.damage; fireProjectileInfo.force = this.fireMsg.force; fireProjectileInfo.crit = this.fireMsg.crit; GameObject gameObject = this.fireMsg.target.ResolveGameObject(); fireProjectileInfo.target = ((gameObject != null) ? gameObject.gameObject : null); fireProjectileInfo.damageColorIndex = this.fireMsg.damageColorIndex; fireProjectileInfo.speedOverride = this.fireMsg.speedOverride; fireProjectileInfo.fuseOverride = this.fireMsg.fuseOverride; this.FireProjectileServer(fireProjectileInfo, netMsg.conn, this.fireMsg.predictionId, (double)Run.instance.time - this.fireMsg.sendTime); }
public override void OnInstall() { base.OnInstall(); GenericGameEvents.OnTakeDamage += OnTakeDamage; projectileIndex = ProjectileCatalog.FindProjectileIndex("Sawmerang"); bodyIndex = BodyCatalog.FindBodyIndex("EquipmentDroneBody"); }
public override void OnInstall() { base.OnInstall(); this.fireProjIndex = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkFire"); this.lightningProjIndex = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkLightning"); this.iceProjIndex = ProjectileCatalog.FindProjectileIndex("ManipulatorBlinkIce"); this.requiredSkillDef = SkillCatalog.GetSkillDef(SkillCatalog.FindSkillIndexByName("Manipulator.Venting Step")); GlobalEventManager.onCharacterDeathGlobal += onCharacterDeathGlobal; RoR2Application.onFixedUpdate += FixedUpdate; }
private void onCharacterDeathGlobal(DamageReport report) { if (report.attackerBody == this.trackedBody && report.attackerBody) { if (!base.IsCurrentBody(report.damageInfo.attacker)) { return; } int index = ProjectileCatalog.GetProjectileIndex(report.damageInfo.inflictor); if (index == this.fireProjIndex || index == this.lightningProjIndex || index == this.iceProjIndex) { this.progress++; if (this.progress >= ManipulatorJump.requirement) { base.Grant(); } } } }
// Token: 0x06001EE1 RID: 7905 RVA: 0x00085AC0 File Offset: 0x00083CC0 private void FireProjectileClient(FireProjectileInfo fireProjectileInfo, NetworkClient client) { int projectileIndex = ProjectileCatalog.GetProjectileIndex(fireProjectileInfo.projectilePrefab); if (projectileIndex == -1) { Debug.LogErrorFormat(fireProjectileInfo.projectilePrefab, "Prefab {0} is not a registered projectile prefab.", new object[] { fireProjectileInfo.projectilePrefab }); return; } bool allowPrediction = ProjectileCatalog.GetProjectilePrefabProjectileControllerComponent(projectileIndex).allowPrediction; ushort predictionId = 0; if (allowPrediction) { ProjectileController component = UnityEngine.Object.Instantiate <GameObject>(fireProjectileInfo.projectilePrefab, fireProjectileInfo.position, fireProjectileInfo.rotation).GetComponent <ProjectileController>(); ProjectileManager.InitializeProjectile(component, fireProjectileInfo); this.predictionManager.RegisterPrediction(component); predictionId = component.predictionId; } this.fireMsg.sendTime = (double)Run.instance.time; this.fireMsg.prefabIndex = (byte)projectileIndex; this.fireMsg.position = fireProjectileInfo.position; this.fireMsg.rotation = fireProjectileInfo.rotation; this.fireMsg.owner = fireProjectileInfo.owner; this.fireMsg.predictionId = predictionId; this.fireMsg.damage = fireProjectileInfo.damage; this.fireMsg.force = fireProjectileInfo.force; this.fireMsg.crit = fireProjectileInfo.crit; this.fireMsg.damageColorIndex = fireProjectileInfo.damageColorIndex; this.fireMsg.speedOverride = fireProjectileInfo.speedOverride; this.fireMsg.fuseOverride = fireProjectileInfo.fuseOverride; this.fireMsg.target = HurtBoxReference.FromRootObject(fireProjectileInfo.target); NetworkWriter networkWriter = new NetworkWriter(); networkWriter.StartMessage(49); networkWriter.Write(this.fireMsg); networkWriter.FinishMessage(); client.SendWriter(networkWriter, 0); }
} // = Resources.Load<GameObject>("Prefabs/Projectiles/PaladinRocket"); static ChargePlasmoids() { var plasmoidProjectile = ProjectileCatalog.GetProjectilePrefab(69); //var plasmoidProjectile = UnityEngine.Object.Instantiate(Resources.Load<GameObject>("Prefabs/Projectiles/MageIceBolt")); // MageIceBolt var projDamage = plasmoidProjectile.GetComponent <ProjectileDamage>(); var projSimple = plasmoidProjectile.GetComponent <ProjectileSimple>(); var projController = plasmoidProjectile.GetComponent <ProjectileController>(); var projCollider = plasmoidProjectile.GetComponent <SphereCollider>(); projDamage.damage = DamageCoefficient; projDamage.damageType = DamageType.Generic; projSimple.velocity = 120f; projSimple.lifetime = 3f; projController.ghostPrefab = Resources.Load <GameObject>("Prefabs/ProjectileGhosts/MageIceBoltGhost"); projController.ghostPrefab.transform.localScale = new Vector3(1.25f, 1.25f, 1.25f); projController.procCoefficient = 0.9f; projCollider.radius = 0.75f; ProjectilePrefab = plasmoidProjectile; }
// Token: 0x060028B7 RID: 10423 RVA: 0x000ACD70 File Offset: 0x000AAF70 private void OnCharacterDeath(DamageReport damageReport) { if (!damageReport.victimBody) { return; } if (damageReport.victimBody.bodyIndex != this.impBossBodyIndex) { return; } if (!base.IsCurrentBody(damageReport.damageInfo.attacker)) { return; } if (ProjectileCatalog.GetProjectileIndex(damageReport.damageInfo.inflictor) != this.bfgProjectileIndex) { return; } base.Grant(); }
public void SetupModdedProjectiles() { string[] moddedProjectileStrings = { // LUAFUBUKI - GAUSS // "Gauss0a", //"prefabs/Gauss/Gauss0a" // LUAFUBUKI - LUNAR CHIMERA // "Prefabs/Custom/LunarWispBall", "Prefabs/Custom/FirePillar", "Assets/Custom/SoulRocketProjectile", "Assets/Custom/LunarShardProjectile", //"Prefabs/Custom/MoonWave" // LUAFUBUKI - VOID REAVER // "Prefabs/Custom/ShortPortalBomb", // KOMRADESPECTRE - AETHERIUM // "JarOfReshapingProjectile", "SwordProjectile", // ZERODOMAI - TRISTANA // "Cannonball", "Explosiveball", "Blastball", // DUCKDUCKGREYDUCK - ARTIFICEREXTENDED // "ThunderProjectile", //Rolling Thunder "NapalmSpit", //Napalm projectile //Napalm decal thing: NapalmFire "ShockwaveZapCone", "NanometeorImpact", //Meteor "mageFireballInner", //Flame Burst 1 "mageFireballOuter", //Flame Burst 2 // HELTER2 - ARTIFICER2 // "mageIceBombClone", "mageLightningBombClone", // ROB - DIRESEEKER // "DireseekerBossFireball", "DireseekerBossGroundFireball", // ROB - MINER's DIRESEEKER // "DireseekerFireball", "DireseekerGroundFireball", // ROB - PLAYABLETEMPLAR // "TemplarGrenadeProjectile", "TemplarRocketProjectile", // ROB - PALADIN // "PaladinLunarShard", "LightningSpear", "PaladinSwordBeam", // ROB - TWITCH // "Prefabs/Projectiles/CrossbowBoltProjectile", "Prefabs/Projectiles/ExpungeProjectile", "Prefabs/Projectiles/VenomCaskProjectile", "Prefabs/Projectiles/TwitchBazookaProjectile", // RYANPALLESAN - EXPANDEDSKILLS // "magefireboltcopy", // THEMYSTICSWORD - ASPECTABILITIES // "AspectAbilitiesFireMissile", // ENIGMA - CLOUDBURST // "MIRVEquipmentProjectile", "MIRVClusterEquipmentProjectile", "OverchargedProjectile", "BombardierRocketProjectile", "BombardierFireRocketProjectile", "BombardierSeekerRocketProjectile", // THINKINVIS - CLASSICITEMS // "CIScepCommandoGrenade", "CIScepLoaderThundercrash", // CHEN - CLASSICITEMS // //"InstantMine", drops at feet //"PanicMine", //"FootMine", "MortarProjectile", // STARSTORM // "NemmandoSwordBeam", "ChirrDart", "CyborgbfgProjectile", "WayfarerChainProjectile", "NucleatorProjectile" }; _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Adding modded projectiles."); int moddedProjectilesAdded = 0; foreach (string projectileString in moddedProjectileStrings) { var projectileIndex = ProjectileCatalog.FindProjectileIndex(projectileString); //failures to find defaults to -1 if (projectileIndex > 0) { WhitelistedProjectiles.Add(ProjectileCatalog.GetProjectilePrefab(projectileIndex)); _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Added projectile = " + projectileString); moddedProjectilesAdded++; } } _logger.LogMessage("[Risk of Bulletstorm] Projectile Whitelist: Added " + moddedProjectilesAdded + " modded projectiles."); }