public static void Add() { int LimitGunId = 98; Gun limitGun = PickupObjectDatabase.GetById(LimitGunId) as Gun; Gun gun = ETGMod.Databases.Items.NewGun("Phazor", "phazor"); Game.Items.Rename("outdated_gun_mods:phazor", "cel:phazor"); gun.gameObject.AddComponent <Phazor>(); gun.SetShortDescription("Shiny"); gun.SetLongDescription("Fires faster the longer the fire button is held down.\n\nA gun made from pure rainbows, imagination, hours of slavery, and fantasy."); gun.SetupSprite(null, "phazor_idle_001", 13); gun.SetAnimationFPS(gun.shootAnimation, 24); gun.AddProjectileModuleFrom("future_assault_rifle", true, false); gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0f; gun.DefaultModule.angleVariance = 4f; gun.GainsRateOfFireAsContinueAttack = true; gun.RateOfFireMultiplierAdditionPerSecond = .5f; gun.DefaultModule.cooldownTime = 0.2f; gun.SetBaseMaxAmmo(300); Gun gun2 = PickupObjectDatabase.GetById(32) as Gun; gun.muzzleFlashEffects = gun2.muzzleFlashEffects; gun.gunClass = GunClass.PISTOL; gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo(); gun.quality = PickupObject.ItemQuality.A; gun.encounterTrackable.EncounterGuid = "zip zoop zappity do"; 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 *= 2.28571428571f; projectile.baseData.speed *= 1f; projectile.SetProjectileSpriteRight("phazor_projectile_002", 21, 3, null, null); gun.sprite.IsPerpendicular = true; ETGMod.Databases.Items.Add(gun, null, "ANY"); projectile.transform.parent = gun.barrelOffset; }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Electric Bass", "electric_bass"); Game.Items.Rename("outdated_gun_mods:electric_bass", "cel:electric_bass"); gun.gameObject.AddComponent <ElectricBass>(); gun.SetShortDescription("Atom And Evil"); gun.SetLongDescription("Creates an eletric AoE instead of shooting projectiles.\n\nA guitar imbued with the power of heavy metal music."); gun.SetupSprite(null, "electric_bass_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 24); gun.SetAnimationFPS(gun.reloadAnimation, 3); gun.AddProjectileModuleFrom("38_special", true, false); gun.sprite.IsPerpendicular = true; gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0; gun.DefaultModule.cooldownTime = .3f; gun.SetBaseMaxAmmo(500); Gun gun2 = PickupObjectDatabase.GetById(149) as Gun; //gun.gunSwitchGroup = gun2.gunSwitchGroup; gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.MEDIUM_BLASTER; gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo(); gun.quality = PickupObject.ItemQuality.C; gun.gunClass = GunClass.FULLAUTO; gun.encounterTrackable.EncounterGuid = "AoE Bass gun"; gun.muzzleFlashEffects.type = VFXPoolType.None; gun.AddToSubShop(ItemBuilder.ShopType.Trorc); 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 *= 0; projectile.baseData.speed *= 1f; projectile.baseData.range *= .00001f; projectile.collidesWithEnemies = false; projectile.collidesWithPlayer = false; projectile.sprite.renderer.enabled = false; projectile.hitEffects.suppressMidairDeathVfx = true; ETGMod.Databases.Items.Add(gun, null, "ANY"); }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Skeleton", "skeleton"); Game.Items.Rename("outdated_gun_mods:skeleton", "cel:skeleton"); gun.gameObject.AddComponent <Skeleton>(); gun.SetShortDescription("Rattled"); gun.SetLongDescription("It is not unheard of for a mimic to die with its last meal still mid-digestion. How the Gungeon could possibly consider this as a gun is best left to the imagination."); gun.SetupSprite(null, "skeleton_idle_001", 13); gun.SetAnimationFPS(gun.shootAnimation, 12); gun.AddProjectileModuleFrom("38_special", true, false); gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0f; gun.DefaultModule.angleVariance = 5f; gun.DefaultModule.cooldownTime = 0.11f; gun.SetBaseMaxAmmo(512); gun.gunClass = GunClass.SILLY; gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo(); gun.muzzleFlashEffects.type = VFXPoolType.None; gun.quality = PickupObject.ItemQuality.C; gun.encounterTrackable.EncounterGuid = "A whole-ass skeleton"; gun.barrelOffset.transform.localPosition = new UnityEngine.Vector3(.5f, 1.4f, 0f); gun.carryPixelOffset = new IntVector2(0, 3); 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 *= 1; projectile.baseData.speed *= 1f; projectile.transform.parent = gun.barrelOffset; projectile.SetProjectileSpriteRight("skeleton_projectile_001", 16, 7, null, null); gun.sprite.IsPerpendicular = true; ETGMod.Databases.Items.Add(gun, null, "ANY"); }
private void F**K() { PlayerController player = this.gun.CurrentOwner as PlayerController; bool flag = !Assigned; if (flag) { Assigned = true; int T = T1; if (T == 0) { gun.SetBaseMaxAmmo(450); gun.ammo = 450; gun.reloadTime = 1.1f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[341]).DefaultModule.projectiles[0]; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetration = 1; BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces = 0; } if (T == 1) { gun.SetBaseMaxAmmo(150); gun.ammo = 150; gun.reloadTime = 1.8f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[336]).DefaultModule.projectiles[0]; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetration = 0; gun.DefaultModule.projectiles[0].AppliesFire = false; AIActor Grenat = EnemyDatabase.GetOrLoadByGuid("b4666cb6ef4f4b038ba8924fd8adf38f"); ExplosiveModifier GetFucked = gun.DefaultModule.projectiles[0].gameObject.AddComponent <ExplosiveModifier>(); ExplosionData die = new ExplosionData { damageRadius = 1.5f, damageToPlayer = 0f, doDamage = true, damage = 20f, doExplosionRing = true, doDestroyProjectiles = true, doForce = true, debrisForce = 5f, pushRadius = 1.6f, force = 8f, preventPlayerForce = true, explosionDelay = 0f, usesComprehensiveDelay = false, doScreenShake = false, playDefaultSFX = true, effect = Grenat.GetComponent <ExplodeOnDeath>().explosionData.effect //VFX_Explosion_Tiny, VFX_Explosion_Newtiny BOTH IN SHARED_AUTO }; GetFucked.explosionData = die; } if (T == 2) { gun.SetBaseMaxAmmo(600); gun.ammo = 600; gun.reloadTime = 1.4f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[229]).DefaultModule.projectiles[0]; } if (T == 3) { gun.SetBaseMaxAmmo(100); gun.ammo = 100; gun.reloadTime = 1.25f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[27]).DefaultModule.projectiles[0]; gun.DefaultModule.projectiles[0].baseData.damage *= 8.57142857143f; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetratesBreakables = true; orAddComponent.penetration = 10000; } if (T == 4) { gun.SetBaseMaxAmmo(800); gun.ammo = 800; gun.reloadTime = 0f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[124]).DefaultModule.projectiles[0]; gun.DefaultModule.projectiles[0].baseData.damage *= 0.6f; } int K1 = 0; if (K1 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); HomingModifier homingModifier = gun.DefaultModule.projectiles[0].gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 5f; homingModifier.AngularVelocity = 50f; } if (K1 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); gun.DefaultModule.projectiles[0].AdditionalScaleMultiplier *= 1.25f; } if (K1 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); Gun tripleCrossbow = ETGMod.Databases.Items["triple_crossbow"] as Gun; var myEffect = new GameActorSpeedEffect(); foreach (var projmod in tripleCrossbow.RawSourceVolley.projectiles) { foreach (var proj in projmod.projectiles) { if (proj != null) { myEffect.GetCopyOf(proj.speedEffect); myEffect.duration = 10; } } } gun.DefaultModule.projectiles[0].AppliesSpeedModifier = true; gun.DefaultModule.projectiles[0].speedEffect = myEffect; gun.DefaultModule.projectiles[0].SpeedApplyChance = .4f; } if (K1 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); gun.SetBaseMaxAmmo(Convert.ToInt32((gun.GetBaseMaxAmmo() * 1.25f))); gun.ammo = gun.GetBaseMaxAmmo(); } int K2; if (T == 0) { K2 = 1; if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].baseData.damage *= 1.35f; Mono.DefaultModule.cooldownTime *= 1.25f; } if (K2 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces += 2; } if (K2 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .05f; Mono.DefaultModule.cooldownTime = .4f; } if (K2 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].AppliesPoison = true; gun.DefaultModule.projectiles[0].healthEffect = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect; gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f; } } if (T == 1) { K2 = UnityEngine.Random.Range(0, 4); //Blazing, toxic, flare, burst if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += this.FirePool; } if (K2 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += this.VenomPool; gun.DefaultModule.projectiles[0].DefaultTintColor = new Color(78 / 100f, 5 / 100f, 120 / 100f); gun.DefaultModule.projectiles[0].HasDefaultTint = true; } if (K2 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += Flares; } if (K2 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .2f; Mono.DefaultModule.cooldownTime = 1f; } } if (T == 2) { //High-caliber, ricochet, burst, poison K2 = UnityEngine.Random.Range(0, 5); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].baseData.damage *= 3f; Mono.DefaultModule.cooldownTime *= 2f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces += 2; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .05f; Mono.DefaultModule.cooldownTime = .4f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].AppliesPoison = true; gun.DefaultModule.projectiles[0].healthEffect = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect; gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f; } } if (T == 3) { //Quick, power up, sidearm K2 = UnityEngine.Random.Range(0, 4); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.reloadTime *= .6f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.DefaultModule.projectiles[0].baseData.damage *= 1.25f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.DefaultModule.numberOfShotsInClip = 5; Mono.DefaultModule.projectiles[0].baseData.damage *= .33f; } } if (T == 4) { //Critical, backshot, chain gun K2 = UnityEngine.Random.Range(0, 4); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); gun.PostProcessProjectile += Proj; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); GunVolleyModificationItem.AddDuplicateOfBaseModule(gun.Volley, player, 1, 7.35f, 180); } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); Mono.SetBaseMaxAmmo(Mono.GetBaseMaxAmmo() * 2); Mono.ammo = Mono.GetBaseMaxAmmo(); Mono.DefaultModule.cooldownTime = .001f; } } } }