private void PM_FireProj(On.RoR2.Projectile.ProjectileManager.orig_FireProjectile_FireProjectileInfo orig, RoR2.Projectile.ProjectileManager self, RoR2.Projectile.FireProjectileInfo fireProjectileInfo) { //fireProjectileInfo. orig(self, fireProjectileInfo); }
private void ProjectileManager_FireProjectile_FireProjectileInfo(On.RoR2.Projectile.ProjectileManager.orig_FireProjectile_FireProjectileInfo orig, RoR2.Projectile.ProjectileManager self, RoR2.Projectile.FireProjectileInfo fireProjectileInfo) { orig(self, fireProjectileInfo); if (ignoreMugs || !self || !fireProjectileInfo.owner || !fireProjectileInfo.projectilePrefab || fireProjectileInfo.projectilePrefab.GetComponent <Deployable>()) { return; } var cpt = fireProjectileInfo.owner.GetComponent <CharacterBody>(); if (!cpt) { return; } var count = GetCount(cpt); if (count <= 0) { return; } var totalChance = count * procChance; int procCount = (Util.CheckRoll(Wrap(totalChance * 100f, 0f, 100f), cpt.master) ? 1 : 0) + (int)Mathf.Floor(totalChance); var origRot = fireProjectileInfo.rotation; for (var i = 0; i < procCount; i++) { fireProjectileInfo.rotation = origRot * Quaternion.Euler( (rng.nextNormalizedFloat - 0.5f) * spreadConeHalfAngleDegr, (rng.nextNormalizedFloat - 0.5f) * spreadConeHalfAngleDegr, (rng.nextNormalizedFloat - 0.5f) * spreadConeHalfAngleDegr); orig(self, fireProjectileInfo); } }
private void ProjectileManager_FireProjectile_FireProjectileInfo(On.RoR2.Projectile.ProjectileManager.orig_FireProjectile_FireProjectileInfo orig, RoR2.Projectile.ProjectileManager self, RoR2.Projectile.FireProjectileInfo fireProjectileInfo) { var projectileController = fireProjectileInfo.projectilePrefab.GetComponentInChildren <RoR2.Projectile.ProjectileController>(); Vector3 oldProjectileSize = projectileController.transform.localScale; Vector3 oldGhostSize = projectileController.ghost.transform.localScale; if (fireProjectileInfo.owner && fireProjectileInfo.owner.GetComponent <CharacterBody>()) { var itemCount = GetCount(fireProjectileInfo.owner.GetComponent <CharacterBody>()); if (itemCount > 0) { if (!fireProjectileInfo.useSpeedOverride) { fireProjectileInfo.speedOverride = fireProjectileInfo.projectilePrefab.GetComponent <RoR2.Projectile.ProjectileSimple>().desiredForwardSpeed; } var oldSpeed = fireProjectileInfo.speedOverride; var fraction = 1f - cfgProjectileSpeedReduction.Value; fireProjectileInfo.speedOverride *= Mathf.Pow(fraction, itemCount); Chat.AddMessage($"Speed changed from {oldSpeed} to {fireProjectileInfo.speedOverride} ({(oldSpeed - fireProjectileInfo.speedOverride)} difference)"); } } orig(self, fireProjectileInfo); projectileController.transform.localScale = oldProjectileSize; projectileController.ghost.transform.localScale = oldGhostSize; }
private void Longassname(On.RoR2.Projectile.ProjectileManager.orig_FireProjectile_GameObject_Vector3_Quaternion_GameObject_float_float_bool_DamageColorIndex_GameObject_float orig, RoR2.Projectile.ProjectileManager self, GameObject prefab, Vector3 position, Quaternion rotation, GameObject owner, float damage, float force, bool crit, DamageColorIndex damageColorIndex, GameObject target, float speedOverride) { var characterBody = owner.GetComponent <CharacterBody>(); if (prefab.name == PrepWall.projectilePrefab.name && characterBody) { FireAmmo(characterBody, true); } orig(self, prefab, position, rotation, owner, damage, force, crit, damageColorIndex, target, speedOverride); }
private void ProjectileManager_FireProjectile_FireProjectileInfo(On.RoR2.Projectile.ProjectileManager.orig_FireProjectile_FireProjectileInfo orig, RoR2.Projectile.ProjectileManager self, RoR2.Projectile.FireProjectileInfo fireProjectileInfo) { fireProjectileInfo.damageColorIndex = (DamageColorIndex)damageColorOverride; orig(self, fireProjectileInfo); }