コード例 #1
0
ファイル: BloodyCannon.cs プロジェクト: blazeykat/prismatism
        public static void Add()
        {
            Gun gun = global::ETGMod.Databases.Items.NewGun("Bloody Cannon", "bloodycannon");

            Gungeon.Game.Items.Rename("outdated_gun_mods:bloody_cannon", "psm:bloody_cannon");
            gun.gameObject.AddComponent <BloodyCannon>();
            gun.SetShortDescription("Heart Breaking");
            gun.SetLongDescription("Uses blood to obliterate your enemies.\n\nPreviously a hammer, now a gun.");
            gun.SetupSprite(null, "beegun_idle_001", 1);
            Gun gun3 = PickupObjectDatabase.GetById(480) as Gun;
            Gun gun4 = PickupObjectDatabase.GetById(393) as Gun;

            for (int i = 0; i < 4; i++)
            {
                gun.AddProjectileModuleFrom("klobb", true, false);
            }
            foreach (ProjectileModule projectileModule in gun.Volley.projectiles)
            {
                ChargeProjectile projectile = new ChargeProjectile();
                projectile.Projectile = UnityEngine.Object.Instantiate <Projectile>(gun3.DefaultModule.chargeProjectiles[0].Projectile);
                projectile.Projectile.gameObject.SetActive(false);
                FakePrefab.MarkAsFakePrefab(projectile.Projectile.gameObject);
                DontDestroyOnLoad(projectile.Projectile);
                projectile.Projectile.transform.parent           = gun.barrelOffset;
                projectile.Projectile.AdditionalScaleMultiplier *= 1.1f;
                projectile.ChargeTime = 2.5f;
                projectile.Projectile.gameObject.AddComponent(new BounceProjModifier());
                projectile.Projectile.DefaultTintColor = Color.red;
                projectile.Projectile.HasDefaultTint   = true;
                projectileModule.chargeProjectiles     = new List <ProjectileModule.ChargeProjectile> {
                    projectile
                };
                projectileModule.cooldownTime        = 2f;
                projectileModule.numberOfShotsInClip = 1;
                projectileModule.angleVariance       = 10f;
                projectileModule.customAmmoType      = gun3.DefaultModule.customAmmoType;
                projectileModule.ammoType            = gun3.DefaultModule.ammoType;
                projectileModule.ammoCost            = 1;
                projectileModule.shootStyle          = ProjectileModule.ShootStyle.Charged;
            }
            gun.DefaultModule.chargeProjectiles.Remove(gun4.DefaultModule.chargeProjectiles[0]);
            gun.InfiniteAmmo   = true;
            gun.damageModifier = 1;
            gun.reloadTime     = 2.1f;
            gun.barrelOffset.transform.localPosition += new Vector3(0.2f, -0.1f, 0f);
            gun.quality = PickupObject.ItemQuality.S;
            gun.encounterTrackable.EncounterGuid = "bloodycannon";
            gun.gunClass           = GunClass.SHOTGUN;
            gun.CanBeDropped       = true;
            gun.muzzleFlashEffects = gun3.muzzleFlashEffects;
            global::ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
コード例 #2
0
 void AttackReleased()
 {
     if (isCharging)
     {
         List <Transform> projectiles = Shoot();
         foreach (Transform projectile in projectiles)
         {
             ChargeProjectile chargeProjectile = projectile.GetComponent <ChargeProjectile> ();
             if (chargeProjectile != null)
             {
                 chargeProjectile.charge = charge;
             }
         }
         isCharging = false;
     }
 }