private void HandleGunReloaded(PlayerController player, Gun playerGun) { bool synergy = base.Owner.PlayerHasActiveSynergy("(6/2)+6 = Chamber has 9 Holes???"); if (synergy) { bool flag = playerGun.ClipShotsRemaining == 0; if (flag) { for (int counter = 0; counter < 3; counter++) { Projectile projectile = ((Gun)ETGMod.Databases.Items[221]).DefaultModule.projectiles[0]; Vector3 vector = player.unadjustedAimPoint - player.LockedApproximateSpriteCenter; Vector3 vector2 = player.specRigidbody.UnitCenter; GameObject gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, player.sprite.WorldCenter, Quaternion.Euler(0f, 0f, ((player.CurrentGun == null) ? 1.2f : player.CurrentGun.CurrentAngle) + UnityEngine.Random.Range(-45, 45)), true); Projectile component = gameObject.GetComponent <Projectile>(); HomingModifier homing = component.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 120; homing.AngularVelocity = 120; if (flag) { component.Owner = player; component.Shooter = player.specRigidbody; } } } } }
public override void PostProcessProjectile(Projectile projectile) { if (projectile && projectile.ProjectilePlayerOwner()) { if (projectile.ProjectilePlayerOwner().PlayerHasActiveSynergy("The Bone Zone")) { HomingModifier homing = projectile.GetComponent <HomingModifier>(); if (homing) { homing.AngularVelocity *= 1.5f; } projectile.pierceMinorBreakables = true; PierceProjModifier piercing = projectile.GetComponent <PierceProjModifier>(); if (piercing != null) { piercing.penetration++; } else { piercing = projectile.gameObject.AddComponent <PierceProjModifier>(); piercing.penetration = 1; } } } base.PostProcessProjectile(projectile); }
private void Flares(Projectile projectile) { float d = 0; PlayerController player = gun.CurrentOwner as PlayerController; for (int i = 0; i < 4; i++) { Projectile projectile2 = ((Gun)ETGMod.Databases.Items[275]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(projectile2.gameObject, projectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, d), true); Projectile component = gameObject.GetComponent <Projectile>(); if (component != null) { component.Owner = player; HomingModifier homingModifier = component.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 100f; homingModifier.AngularVelocity = 500f; component.Shooter = player.specRigidbody; component.baseData.speed = 20f; component.baseData.damage = 2.5f; component.AdditionalScaleMultiplier = .3120069f; GameActorFireEffect fire = component.fireEffect; fire.duration = .5f; } d += 90f; } d = 0; }
private void ReleaseElectric(Projectile sourceprojectile) { for (int counter = 0; counter < 3f; counter++) { PlayerController playerController = this.gun.CurrentOwner as PlayerController; Projectile sourceprojectile1 = ((Gun)ETGMod.Databases.Items[13]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(sourceprojectile.gameObject, sourceprojectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, (this.gun == null) ? 0f : (UnityEngine.Random.Range(0f, 359f))), true); Projectile component = gameObject.GetComponent <Projectile>(); bool flag = component != null; bool flag2 = flag; if (flag2) { BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>(); bouncy.numberOfBounces = 3; component.Shooter = this.gun.CurrentOwner.specRigidbody; component.SpawnedFromOtherPlayerProjectile = true; component.Shooter = this.gun.CurrentOwner.specRigidbody; component.Owner = playerController; component.Shooter = playerController.specRigidbody; component.baseData.speed = 10f; component.baseData.damage = 2f; component.AdditionalScaleMultiplier = .5f; component.SetOwnerSafe(this.gun.CurrentOwner, "Player"); component.ignoreDamageCaps = true; HomingModifier homing = component.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 45; homing.AngularVelocity = 90; component.baseData.range = 35f; } } }
private void OnPostProcessProjectile(Projectile proj, float f) { if (this.addsHoming) { HomingModifier homingMod = proj.GetComponent <HomingModifier>(); if (homingMod == null) { homingMod = proj.gameObject.AddComponent <HomingModifier>(); homingMod.HomingRadius = this.homingRadius; homingMod.AngularVelocity = this.homingVelocity; } else { homingMod.HomingRadius += this.homingRadius; homingMod.AngularVelocity += this.homingVelocity; } } proj.baseData.damage *= this.damageMultiplier; proj.baseData.speed *= this.speedMultiplier; if (this.penetratesDamageCaps) { proj.ignoreDamageCaps = true; } proj.BossDamageMultiplier *= this.bossDamageMultiplier; if (this.modifiesSpeed) { proj.ModifyVelocity += this.ModifySpeed; } }
private void staff2(Projectile sourceProjectile, SpeculativeRigidbody hitRigidbody, bool fatal) { bool flag1 = fatal; if (flag1) { PlayerController playerController1 = this.gun.CurrentOwner as PlayerController; for (int counter = 0; counter < UnityEngine.Random.Range(2f, 4f); counter++) { PlayerController playerController = this.gun.CurrentOwner as PlayerController; Projectile projectile1 = ((Gun)ETGMod.Databases.Items[385]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(sourceProjectile.gameObject, sourceProjectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359))); Projectile component = gameObject.GetComponent <Projectile>(); bool flag = component != null; bool flag2 = flag; if (flag2) { component.SpawnedFromOtherPlayerProjectile = true; component.Shooter = this.gun.CurrentOwner.specRigidbody; component.Owner = playerController; component.Shooter = playerController.specRigidbody; component.baseData.speed = 11.5f; component.baseData.damage = .7f; component.AdditionalScaleMultiplier = 0.5f; component.AdjustPlayerProjectileTint(Color.blue.WithAlpha(Color.blue.a / 50f), 50, 0f); HomingModifier homing = sourceProjectile.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 60f; homing.AngularVelocity = 300; component.SetOwnerSafe(this.gun.CurrentOwner, "Player"); component.ignoreDamageCaps = true; } } for (int counter = 0; counter < UnityEngine.Random.Range(1f, 3f); counter++) { PlayerController playerController = this.gun.CurrentOwner as PlayerController; Projectile projectile1 = ((Gun)ETGMod.Databases.Items[377]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(sourceProjectile.gameObject, sourceProjectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359))); Projectile component = gameObject.GetComponent <Projectile>(); bool flag = component != null; bool flag2 = flag; if (flag2) { component.SpawnedFromOtherPlayerProjectile = true; component.Shooter = this.gun.CurrentOwner.specRigidbody; component.Owner = playerController; component.Shooter = playerController.specRigidbody; component.baseData.speed = 40.5f; component.baseData.damage = 1.4f; component.AdditionalScaleMultiplier = 1.1f; component.AdjustPlayerProjectileTint(Color.blue.WithAlpha(Color.blue.a / 50f), 50, 0f); BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>(); bouncy.numberOfBounces = 4; component.SetOwnerSafe(this.gun.CurrentOwner, "Player"); component.ignoreDamageCaps = true; } } } }
private void Aiming(Projectile projectile, float effectChanceScalar) { if (!Owner.CurrentGun.HasShootStyle(ProjectileModule.ShootStyle.Beam)) { HomingModifier homingModifier = projectile.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 100f; homingModifier.AngularVelocity = 4000f; } }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Uzi SPINE-mm", "uzispinemm"); Game.Items.Rename("outdated_gun_mods:uzi_spine-mm", "nn:uzi_spine_mm"); var behav = gun.gameObject.AddComponent <UziSpineMM>(); gun.SetShortDescription("Boned"); gun.SetLongDescription("The favoured sidearm of the dark sorcerer Nuign, and his first foray into the apocryphal field of necro-gunsmithing."); gun.SetupSprite(null, "uzispinemm_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 12); gun.gunSwitchGroup = (PickupObjectDatabase.GetById(29) as Gun).gunSwitchGroup; gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(56) as Gun, true, false); //GUN STATS gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0.8f; gun.DefaultModule.cooldownTime = 0.11f; gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(29) as Gun).muzzleFlashEffects; gun.DefaultModule.numberOfShotsInClip = 20; gun.barrelOffset.transform.localPosition = new Vector3((19f / 16f), (9f / 16f), 0f); gun.SetBaseMaxAmmo(600); gun.gunClass = GunClass.FULLAUTO; //BULLET STATS Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; projectile.baseData.damage = 3f; projectile.baseData.range = 15f; projectile.hitEffects.alwaysUseMidair = true; projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.SmoothLightBlueLaserCircleVFX; HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 40f; homing.HomingRadius = 50f; projectile.SetProjectileSpriteRight("uzispinemm_proj", 8, 11, false, tk2dBaseSprite.Anchor.MiddleCenter, 8, 7); gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.CUSTOM; gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("UziSpineMM Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/uzispinemm_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/uzispinemm_clipempty"); gun.quality = PickupObject.ItemQuality.C; ETGMod.Databases.Items.Add(gun, null, "ANY"); gun.AddToSubShop(ItemBuilder.ShopType.Cursula); ID = gun.PickupObjectId; }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Oxygun", "oxygun"); Game.Items.Rename("outdated_gun_mods:oxygun", "nn:oxygun"); gun.gameObject.AddComponent <Oxygun>(); gun.SetShortDescription("Bullets Not Included"); gun.SetLongDescription("This standard-issue colony multi-tool seems to be stuck on the 'offensive' setting." + "\n\nUpon finding it, there seemed to be no shots left inside."); gun.SetupSprite(null, "oxygun_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 12); gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(56) as Gun, true, false); //GUN STATS gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.SemiAutomatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0.8f; gun.DefaultModule.cooldownTime = 0.65f; gun.muzzleFlashEffects.type = VFXPoolType.None; gun.DefaultModule.numberOfShotsInClip = 5; gun.barrelOffset.transform.localPosition = new Vector3(1.93f, 0.62f, 0f); gun.SetBaseMaxAmmo(300); gun.ammo = 0; gun.gunClass = GunClass.SILLY; //BULLET STATS Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; projectile.baseData.damage *= 2f; projectile.baseData.speed *= 0.4f; projectile.baseData.range *= 10f; HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 120f; homing.HomingRadius = 1000f; projectile.SetProjectileSpriteRight("oxygun_projectile", 17, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 17, 7); projectile.transform.parent = gun.barrelOffset; gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.CUSTOM; gun.DefaultModule.customAmmoType = "Repetitron Bullets"; gun.quality = PickupObject.ItemQuality.C; gun.encounterTrackable.EncounterGuid = "this is the Oxygun"; ETGMod.Databases.Items.Add(gun, null, "ANY"); OxygunID = gun.PickupObjectId; }
private void OnGuonHitByBullet(SpeculativeRigidbody myRigidbody, PixelCollider myCollider, SpeculativeRigidbody other, PixelCollider otherCollider) { if (Owner && this.m_extantOrbital) { if (other.projectile && other.projectile.Owner is PlayerController) { if (!other.projectile.GetComponent <BuffedByMaroonGuonStone>()) { float damageMult = 1.5f; if (Owner.PlayerHasActiveSynergy("Marooner Guon Stone")) { damageMult = 2f; } other.projectile.baseData.damage *= damageMult; other.projectile.RuntimeUpdateScale(1.2f); other.projectile.gameObject.AddComponent <BuffedByMaroonGuonStone>(); other.projectile.AdjustPlayerProjectileTint(ExtendedColours.maroon, 2); ExtremelySimpleStatusEffectBulletBehaviour StatusEffect = other.projectile.gameObject.GetOrAddComponent <ExtremelySimpleStatusEffectBulletBehaviour>(); if (Owner.PlayerHasActiveSynergy("Toxic Core")) { StatusEffect.usesPoisonEffect = true; } if (Owner.PlayerHasActiveSynergy("Charming Core")) { StatusEffect.usesCharmEffect = true; } if (Owner.PlayerHasActiveSynergy("Burning Core")) { StatusEffect.usesFireEffect = true; } if (Owner.PlayerHasActiveSynergy("Explosive Core")) { ExplosiveModifier Splodey = other.projectile.gameObject.GetOrAddComponent <ExplosiveModifier>(); Splodey.doExplosion = true; Splodey.explosionData = StaticExplosionDatas.explosiveRoundsExplosion; } if (Owner.PlayerHasActiveSynergy("Hungry Core")) { HungryProjectileModifier hungry = other.projectile.gameObject.GetOrAddComponent <HungryProjectileModifier>(); } if (Owner.PlayerHasActiveSynergy("Smart Core")) { HomingModifier homing = other.projectile.gameObject.GetOrAddComponent <HomingModifier>(); } } PhysicsEngine.SkipCollision = true; } else if (other.projectile && !(other.projectile.Owner is PlayerController)) { PhysicsEngine.SkipCollision = true; } } }
private void PostProcessProjectile(Projectile proj, float effectChanceScalar) { PlayerController player = this.Owner; if (player.CurrentGun.PickupObjectId == 519 || player.CurrentGun.PickupObjectId == 169 || player.CurrentGun.PickupObjectId == 597) { HomingModifier projhomingModifier = proj.gameObject.AddComponent <HomingModifier>(); projhomingModifier.HomingRadius = 10f; projhomingModifier.AngularVelocity = 750f; } }
// Token: 0x06000120 RID: 288 RVA: 0x0000AC74 File Offset: 0x00008E74 private void Attack() { bool flag = this.Owner == null; if (flag) { this.Owner = this.m_aiActor.GetComponent <PointZero.PointZeroBehaviour>().Owner; } float num = -1f; List <AIActor> activeEnemies = this.Owner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All); bool flag2 = activeEnemies == null | activeEnemies.Count <= 0; if (!flag2) { AIActor nearestEnemy = this.GetNearestEnemy(activeEnemies, this.m_aiActor.sprite.WorldCenter, out num, null); bool flag3 = nearestEnemy && num < 10f; if (flag3) { bool flag4 = this.IsInRange(nearestEnemy); if (flag4) { bool flag5 = !nearestEnemy.IsHarmlessEnemy && nearestEnemy.IsNormalEnemy && !nearestEnemy.healthHaver.IsDead && nearestEnemy != this.m_aiActor; if (flag5) { Vector2 unitCenter = this.m_aiActor.specRigidbody.UnitCenter; Vector2 unitCenter2 = nearestEnemy.specRigidbody.HitboxPixelCollider.UnitCenter; float z = BraveMathCollege.Atan2Degrees((unitCenter2 - unitCenter).normalized); Projectile projectile = ((Gun)ETGMod.Databases.Items[576]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, this.m_aiActor.sprite.WorldCenter, Quaternion.Euler(0f, 0f, z + UnityEngine.Random.Range(-60, 60)), true); Projectile component = gameObject.GetComponent <Projectile>(); HomingModifier homing = component.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 300; homing.AngularVelocity = 300; PierceProjModifier spook = component.gameObject.AddComponent <PierceProjModifier>(); spook.penetration = 10; BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>(); bouncy.numberOfBounces = 10; bool flag6 = component != null; bool flag7 = flag6; if (flag7) { { component.baseData.damage = 4f; } component.baseData.force = .5f; component.collidesWithPlayer = false; } } } } } }
public void PostProcessProjectile(Projectile proj, float f) { HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>(); if (homingModifier == null) { homingModifier = proj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 25; homingModifier.AngularVelocity = 250; } }
public static void Init() { //The name of the item string itemName = "Cardinals Mitre"; //Refers to an embedded png in the project. Make sure to embed your resources! Google it string resourceName = "NevernamedsItems/Resources/cardinalsmitre_icon"; //Create new GameObject GameObject obj = new GameObject(itemName); //Add a PassiveItem component to the object var item = obj.AddComponent <CardinalsMitre>(); //Adds a tk2dSprite component to the object and adds your texture to the item sprite collection ItemBuilder.AddSpriteToObject(itemName, resourceName, obj); //Ammonomicon entry variables string shortDesc = "Ex Cathedra"; string longDesc = "Fires a homing bullet upon reloading." + "\n\nImbued with power by a Bishop of the True Gun, hats like these are worn by Kaliber-devout Cardinals."; //Adds the item to the gungeon item list, the ammonomicon, the loot table, etc. //Do this after ItemBuilder.AddSpriteToObject! ItemBuilder.SetupItem(item, shortDesc, longDesc, "nn"); //Set the rarity of the item item.quality = PickupObject.ItemQuality.C; //MITRE PROJECTILES MitreProjectile = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(86) as Gun).DefaultModule.projectiles[0]); MitreProjectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(MitreProjectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(MitreProjectile); MitreProjectile.baseData.damage *= 5f; MitreProjectile.baseData.speed *= 0.4f; MitreProjectile.SetProjectileSpriteRight("mitreproj_1", 22, 22, true, tk2dBaseSprite.Anchor.MiddleCenter, 22, 22); HomingModifier homing = MitreProjectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 80f; homing.HomingRadius = 1000f; MitreProjectile.AnimateProjectile(new List <string> { "mitreproj_1", "mitreproj_2", "mitreproj_3", }, 10, true, new List <IntVector2> { new IntVector2(22, 22), //1 new IntVector2(20, 20), //2 new IntVector2(20, 20), //3 }, AnimateBullet.ConstructListOfSameValues(true, 3), AnimateBullet.ConstructListOfSameValues(tk2dBaseSprite.Anchor.MiddleCenter, 3), AnimateBullet.ConstructListOfSameValues(true, 3), AnimateBullet.ConstructListOfSameValues(false, 3), AnimateBullet.ConstructListOfSameValues <Vector3?>(null, 3), AnimateBullet.ConstructListOfSameValues <IntVector2?>(null, 3), AnimateBullet.ConstructListOfSameValues <IntVector2?>(null, 3), AnimateBullet.ConstructListOfSameValues <Projectile>(null, 3)); }
public static void Init() { string name = "Dark Prince"; string resourcePath = "NevernamedsItems/Resources/Companions/DarkPrince/darkprince_icon"; GameObject gameObject = new GameObject(); CompanionItem companionItem = gameObject.AddComponent <CompanionItem>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Wicked Heir"; string longDesc = "This young Gunjurer is the unlikely heir to a vast magical empire, operating from beyond the curtain... he is also very impressionable, with his dark magics able to be put to fantastic use."; companionItem.SetupItem(shortDesc, longDesc, "nn"); companionItem.quality = PickupObject.ItemQuality.S; companionItem.CompanionGuid = DarkPrince.guid; DarkPrince.BuildPrefab(); companionItem.AddToSubShop(ItemBuilder.ShopType.Cursula); DarkPrinceProjectile = (PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0].gameObject.InstantiateAndFakeprefab(); Projectile darkProj = DarkPrinceProjectile.GetComponent <Projectile>(); darkProj.baseData.damage = 1; darkProj.baseData.speed = 100; darkProj.SetProjectileSpriteRight("laserwelder_proj", 10, 3, true, tk2dBaseSprite.Anchor.MiddleCenter, 10, 3); ProjWeaknessModifier weakness = darkProj.gameObject.AddComponent <ProjWeaknessModifier>(); weakness.UsesSeparateStatsForBosses = true; weakness.isDarkPrince = true; HomingModifier homin = darkProj.gameObject.AddComponent <HomingModifier>(); homin.AngularVelocity = 400; homin.HomingRadius = 200; List <string> BeamAnimPaths = new List <string>() { "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_002", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_003", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_004", "NevernamedsItems/Resources/TrailSprites/darkprince_trail_005", }; darkProj.AddTrailToProjectile( "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001", new Vector2(21, 1), new Vector2(0, 10), BeamAnimPaths, 10, null, 20, 0.1f, 0.1f, -1, true ); }
public override void PostProcessProjectile(Projectile projectile) { base.PostProcessProjectile(projectile); PlayerController player = gun.CurrentOwner as PlayerController; if (player.PlayerHasActiveSynergy("Discworld")) { HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 250f; homing.HomingRadius = 250f; } }
private void PostProcessProjectile(Projectile proj, float f) { if (base.m_owner.CurrentGoop && base.m_owner.CurrentGoop == goopDefs[3]) { HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>(); if (homingModifier == null) { homingModifier = proj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 15; homingModifier.AngularVelocity = 100; } } }
public override void PostProcessProjectile(Projectile projectile) { base.PostProcessProjectile(projectile); PlayerController playerController = projectile.Owner as PlayerController; if (playerController.PlayerHasActiveSynergy("Undying") && UnityEngine.Random.value <= 0.1f) { projectile.AdjustPlayerProjectileTint(Color.yellow, 1); HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 250f; homing.HomingRadius = 250f; } }
public override void PostProcessProjectile(Projectile projectile) { PlayerController player = (GameManager.Instance.PrimaryPlayer); bool flagA = player.PlayerHasActiveSynergy("Armageddon"); if (flagA) { HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 250f; homing.AngularVelocity = 250f; } projectile.OnDestruction += this.kerboomer; }
public void PostProcessProjectile(Projectile proj, float f) { if (this.m_isCurrentlyActive) { HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>(); if (homingModifier == null) { homingModifier = proj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 100f; homingModifier.AngularVelocity = 1000f; } } }
private void OnReloadedGun(PlayerController player, Gun gun) { if (gun.ClipShotsRemaining == 0) { Projectile projectile = ((Gun)ETGMod.Databases.Items[598]).DefaultModule.projectiles[0]; GameObject obj1 = SpawnManager.SpawnProjectile(projectile.gameObject, player.sprite.WorldCenter, Quaternion.Euler(0f, 0f, (player.CurrentGun == null) ? 0f : player.FacingDirection), true); Projectile proj1 = obj1.GetComponent <Projectile>(); proj1.Owner = base.gameActor; proj1.Shooter = player.specRigidbody; proj1.baseData.damage = 50f; HomingModifier homingModifier = proj1.gameObject.GetOrAddComponent <HomingModifier>(); homingModifier.HomingRadius = 100f; proj1.baseData.speed *= 0.75f; } }
private void PostProcessThrownGun(Projectile obj) { PlayerController player = this.Owner; AkSoundEngine.PostEvent("Play_WPN_unicornhorn_shot_01", base.gameObject); HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>(); homingModifier = obj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 10f; homingModifier.AngularVelocity = 1000f; obj.pierceMinorBreakables = true; obj.IgnoreTileCollisionsFor(0.01f); obj.OnBecameDebris += HandleReturnLikeBoomerang; obj.OnBecameDebris = (Action <DebrisObject>)Delegate.Combine(obj.OnBecameDebris, new Action <DebrisObject>(this.HandleBlankOnHit)); }
private void PostProcessProjectile(Projectile obj, float effectChanceScalar) { if (weaponTypes.BoltWeapons.Contains(Owner.CurrentGun.PickupObjectId)) { HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>(); if (homingModifier == null) { homingModifier = obj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 0f; homingModifier.AngularVelocity = 0f; } float num = 1f; homingModifier.HomingRadius += this.homingRadius * num; homingModifier.AngularVelocity += this.homingAngularVelocity * num; } }
public override void PostProcessProjectile(Projectile projectile) { base.PostProcessProjectile(projectile); PlayerController playerController = projectile.Owner as PlayerController; if (playerController.PlayerHasActiveSynergy("Even Worse Choices")) { projectile.baseData.damage *= 2f; } if (playerController.PlayerHasActiveSynergy("Discworld")) { HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 50f; homing.HomingRadius = 50f; } }
// Token: 0x0600013F RID: 319 RVA: 0x0000D468 File Offset: 0x0000B668 public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Gunthemimic", "Gunthemimic"); Game.Items.Rename("outdated_gun_mods:gunthemimic", "bny:gunthemimic"); gun.gameObject.AddComponent <Gunthemimic>(); GunExt.SetShortDescription(gun, "Jealous Weapon"); GunExt.SetLongDescription(gun, "Infinite ammo. Does not reveal secret walls. Grows more powerful with each room cleared?\n\nThis totally trustful gun has gained sentience. As with all intelligent weapons, he should be treated with res- hold on, what?"); GunExt.SetupSprite(gun, null, "Gunthemimic_idle_001", 8); GunExt.SetAnimationFPS(gun, gun.shootAnimation, 32); GunExt.SetAnimationFPS(gun, gun.reloadAnimation, 10); GunExt.SetAnimationFPS(gun, gun.idleAnimation, 2); GunExt.AddProjectileModuleFrom(gun, PickupObjectDatabase.GetById(338) as Gun, true, false); gun.DefaultModule.ammoCost = 1; //gun.barrelOffset.transform.localPosition = new Vector3(1f, 0.3125f, 0f); gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.SemiAutomatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0.9f; gun.DefaultModule.cooldownTime = 0.125f; gun.muzzleFlashEffects.type = VFXPoolType.None; gun.DefaultModule.numberOfShotsInClip = 20; gun.SetBaseMaxAmmo(700); gun.DefaultModule.angleVariance = 7f; Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(333) as Gun).muzzleFlashEffects; projectile.baseData.damage = 11f; projectile.baseData.speed *= 0.9f; projectile.pierceMinorBreakables = true; HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 25f; homing.AngularVelocity = 5; PierceProjModifier orAddComponent = projectile.gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetratesBreakables = true; projectile.transform.parent = gun.barrelOffset; projectile.shouldRotate = true; gun.quality = PickupObject.ItemQuality.S; gun.encounterTrackable.EncounterGuid = "NOM NOM NOM NOM NOM NOM NOM NOM NOM NOM NOM BLALALALALALALAAA"; ETGMod.Databases.Items.Add(gun, null, "ANY"); Gunthemimic.GunthemimicID = gun.PickupObjectId; }
private void PostProcessProjectile(Projectile obj, float effectChanceScalar) { HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>(); if (homingModifier == null) { homingModifier = obj.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 0f; homingModifier.AngularVelocity = 0f; } float num = 1f; homingModifier.HomingRadius += this.homingRadius * num; homingModifier.AngularVelocity += this.homingAngularVelocity * num; obj.AdjustPlayerProjectileTint(this.TintColor, this.TintPriority, 0f); }
// Token: 0x0600029A RID: 666 RVA: 0x000185BC File Offset: 0x000167BC private void SpawnProjectile(Projectile proj, Vector3 spawnPosition, float zRotation, SpeculativeRigidbody collidedRigidbody = null) { GameObject gameObject = SpawnManager.SpawnProjectile(proj.gameObject, spawnPosition, Quaternion.Euler(0f, 0f, zRotation), true); Projectile component = gameObject.GetComponent <Projectile>(); bool flag = component; if (flag) { component.SpawnedFromOtherPlayerProjectile = true; PlayerController playerController = this.m_projectile.Owner as PlayerController; component.baseData.damage *= playerController.stats.GetStatValue(PlayerStats.StatType.Damage); component.baseData.speed *= .150f; playerController.DoPostProcessProjectile(component); HomingModifier homing = component.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 25; homing.AngularVelocity = 12; } }
public override void PostProcessProjectile(Projectile projectile) { if (projectile.Owner && projectile.Owner is PlayerController) { if (UnityEngine.Random.value <= 0.33f && (projectile.Owner as PlayerController).PlayerHasActiveSynergy("Song of my people")) { projectile.AdjustPlayerProjectileTint(ExtendedColours.charmPink, 2); projectile.statusEffectsToApply.Add(StaticStatusEffects.charmingRoundsEffect); } if ((projectile.Owner as PlayerController).PlayerHasActiveSynergy("Life, The Universe, and Everything")) { projectile.baseData.damage *= 2f; HomingModifier homing = projectile.gameObject.GetOrAddComponent <HomingModifier>(); homing.HomingRadius = 1000f; } } base.PostProcessProjectile(projectile); }
private void DaggerSprayKill(PlayerController player) { for (int i = 0; i < 4; i++) { Projectile projectile2 = ((Gun)ETGMod.Databases.Items[377]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(projectile2.gameObject, Owner.CurrentGun.transform.position, Quaternion.Euler(0f, 0f, (base.Owner.CurrentGun == null) ? 0f : 0f + (i * 90)), true); Projectile component = gameObject.GetComponent <Projectile>(); if (component != null) { component.Owner = base.Owner; HomingModifier homingModifier = component.gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 100f; homingModifier.AngularVelocity = 500f; component.Shooter = base.Owner.specRigidbody; component.baseData.speed = 25f; component.baseData.damage = DaggerTrue; } } }
private void DoTheZzapp(PlayerController usingPlayer) { for (int counter = 0; counter < 8; counter++) { Projectile projectile = ((Gun)ETGMod.Databases.Items[13]).DefaultModule.projectiles[0]; Vector3 vector = usingPlayer.unadjustedAimPoint - usingPlayer.LockedApproximateSpriteCenter; Vector3 vector2 = usingPlayer.specRigidbody.UnitCenter; GameObject gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, usingPlayer.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359))); Projectile component = gameObject.GetComponent <Projectile>(); HomingModifier homing = component.gameObject.AddComponent <HomingModifier>(); homing.HomingRadius = 120; homing.AngularVelocity = 120; BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>(); bouncy.numberOfBounces = 3; { component.Owner = usingPlayer; component.Shooter = usingPlayer.specRigidbody; } } }