public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Prime Cannon", "prime_cannon"); Game.Items.Rename("outdated_gun_mods:prime_cannon", "cel:prime_cannon"); gun.gameObject.AddComponent <PrimeCannon>(); gun.SetShortDescription("Leedle"); gun.SetLongDescription("u-u"); gun.SetupSprite(null, "prime_cannon_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 4); gun.SetAnimationFPS(gun.reloadAnimation, 2); gun.AddProjectileModuleFrom("38_special", true, false); gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.SMALL_BULLET; gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0f; gun.gunSwitchGroup = (PickupObjectDatabase.GetById(19) as Gun).gunSwitchGroup; gun.DefaultModule.angleVariance = 0f; gun.DefaultModule.cooldownTime = 1f; gun.DefaultModule.numberOfShotsInClip = 150; Gun gun2 = PickupObjectDatabase.GetById(15) as Gun; gun.muzzleFlashEffects = gun2.muzzleFlashEffects; gun.SetBaseMaxAmmo(150); gun.quality = PickupObject.ItemQuality.EXCLUDED; gun.encounterTrackable.EncounterGuid = "For what purpose are you reading this????? why would you?? creep."; gun.sprite.IsPerpendicular = true; gun.gunClass = GunClass.RIFLE; 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.barrelOffset.transform.localPosition -= new Vector3(0, .4f); projectile.transform.parent = gun.barrelOffset; AIActor Grenat = EnemyDatabase.GetOrLoadByGuid("b4666cb6ef4f4b038ba8924fd8adf38f"); ExplosiveModifier GetFucked = projectile.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 }; GetFucked.explosionData = die; projectile.SetProjectileSpriteRight("prime_bomb", 9, 9, null, null); ETGMod.Databases.Items.Add(gun, null, "ANY"); }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Firework Rifle", "firework_rifle"); Game.Items.Rename("outdated_gun_mods:firework_rifle", "cel:firework_rifle"); gun.gameObject.AddComponent <FireworkRifle>(); gun.SetShortDescription("Bang, Bang, Bang! Here We Go!"); gun.SetLongDescription("Shoots powerful fireworks.\n\nThis gun came from a world caught in an eternal struggle for balance. It was created to celebrate the journey of a hero."); gun.SetupSprite(null, "firework_rifle_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 18); gun.SetAnimationFPS(gun.reloadAnimation, 2); gun.AddProjectileModuleFrom("ak-47", true, false); gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = .8f; gun.DefaultModule.angleVariance = 4f; gun.DefaultModule.cooldownTime = .2f; gun.DefaultModule.numberOfShotsInClip = 12; gun.DefaultModule.ammoType = (PickupObjectDatabase.GetById(16) as Gun).DefaultModule.ammoType; Gun gun2 = PickupObjectDatabase.GetById(32) as Gun; gun.muzzleFlashEffects = gun2.muzzleFlashEffects; gun.SetBaseMaxAmmo(150); gun.barrelOffset.transform.localPosition = new Vector3(2, .3f); gun.quality = PickupObject.ItemQuality.S; gun.encounterTrackable.EncounterGuid = "pewpewgoboomboomdeath."; gun.sprite.IsPerpendicular = true; gun.gunClass = GunClass.EXPLOSIVE; 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.transform.parent = gun.barrelOffset; projectile.shouldRotate = true; projectile.SetProjectileSpriteRight("firework_proj", 13, 7, null, null); AIActor Firecracker = EnemyDatabase.GetOrLoadByGuid("5f15093e6f684f4fb09d3e7e697216b4"); ExplosiveModifier GetFucked = projectile.gameObject.AddComponent <ExplosiveModifier>(); ExplosionData die = new ExplosionData { damageRadius = 1.5f, damageToPlayer = 0f, doDamage = true, damage = 15f, doExplosionRing = true, doDestroyProjectiles = true, doForce = true, debrisForce = 5f, pushRadius = 1.6f, force = 8f, preventPlayerForce = true, explosionDelay = 0f, usesComprehensiveDelay = false, doScreenShake = false, playDefaultSFX = true, effect = Firecracker.GetComponent <ExplodeOnDeath>().explosionData.effect, //AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); // GameObject TestingVFX = assetBundle.LoadAsset<GameObject>("VFX_Dust_Explosion"); }; GetFucked.explosionData = die; ETGMod.Databases.Items.Add(gun, null, "ANY"); gun.AddToSubShop(ItemBuilder.ShopType.Trorc); }
public static void Add() { string shorthandName = "ion_fist"; Gun gun = ETGMod.Databases.Items.NewGun("Ion Fist", shorthandName); Game.Items.Rename("outdated_gun_mods:" + shorthandName, "cel:" + shorthandName); gun.gameObject.AddComponent <IonFist>(); gun.SetShortDescription("Casually Approach Child"); gun.SetLongDescription("Charge up for powerful dashes. Grants melee immunity and flight while dashing. A fully-charged dash reflects projectiles.\n\nThis guantlet is charged to the brim with ions. Simply touching another object creates a powerful electric surge."); gun.SetupSprite(null, shorthandName + "_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 24); gun.AddProjectileModuleFrom("38_special", true, false); gun.SetBaseMaxAmmo(180); gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Charged; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 1.2f; gun.DefaultModule.cooldownTime = 0.5f; gun.gunClass = GunClass.CHARGE; gun.DefaultModule.numberOfShotsInClip = 5; gun.quality = PickupObject.ItemQuality.A; gun.muzzleFlashEffects.type = VFXPoolType.None; gun.DefaultModule.angleVariance = 0f; gun.encounterTrackable.EncounterGuid = "ion dash fist gun owo"; gun.sprite.IsPerpendicular = true; Projectile projectile1 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]); projectile1.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile1.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile1); gun.DefaultModule.projectiles[0] = projectile1; projectile1.gameObject.AddComponent <UnchangeableRangeController>(); projectile1.baseData.damage *= 1.2f; projectile1.baseData.speed *= 1f; projectile1.baseData.force *= 1f; projectile1.baseData.range = 4f; projectile1.AdditionalScaleMultiplier = 1.1f; projectile1.transform.parent = gun.barrelOffset; projectile1.sprite.renderer.enabled = false; Projectile projectile2 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]); projectile2.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile2.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile2); gun.DefaultModule.projectiles[0] = projectile2; gun.gunHandedness = GunHandedness.HiddenOneHanded; projectile2.gameObject.AddComponent <UnchangeableRangeController>(); projectile2.baseData.damage *= 2.5f; projectile2.baseData.speed *= .75f; projectile2.baseData.force *= 1f; projectile2.baseData.range = 7.5f; projectile2.AdditionalScaleMultiplier = 1.1f; projectile2.transform.parent = gun.barrelOffset; projectile2.sprite.renderer.enabled = false; Projectile projectile3 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]); projectile3.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile3.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile3); gun.DefaultModule.projectiles[0] = projectile3; projectile3.gameObject.AddComponent <UnchangeableRangeController>(); projectile3.baseData.damage *= 5f; projectile3.baseData.speed *= .75f; projectile3.baseData.force *= 1f; projectile3.baseData.range = 14f; projectile3.AdditionalScaleMultiplier = 1.1f; projectile3.transform.parent = gun.barrelOffset; projectile3.sprite.renderer.enabled = false; ProjectileModule.ChargeProjectile chargeProj1 = new ProjectileModule.ChargeProjectile() { Projectile = projectile1, ChargeTime = .0f, }; ProjectileModule.ChargeProjectile chargeProj2 = new ProjectileModule.ChargeProjectile() { Projectile = projectile2, ChargeTime = .6f, }; ProjectileModule.ChargeProjectile chargeProj3 = new ProjectileModule.ChargeProjectile() { Projectile = projectile3, ChargeTime = 1.2f, }; gun.DefaultModule.chargeProjectiles = new List <ProjectileModule.ChargeProjectile> { chargeProj1, chargeProj2, chargeProj3 }; ETGMod.Databases.Items.Add(gun, null, "ANY"); }