コード例 #1
0
            public Mozam_Throw()
            {
                this.NameKey          = "Hop-up: Throw Away Joke";
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    PickupObjectDatabase.GetByEncounterName("Mozambique").PickupObjectId
                };
                this.OptionalItemIDs = new List <int>
                {
                    500, // hip holdster
                };
                this.OptionalGunIDs = new List <int>
                {
                    PickupObjectDatabase.GetByEncounterName("Jk-47").PickupObjectId,
                    126, // shotbow
                    8,   // bow
                    31,  // klobbe
                };
                this.IgnoreLichEyeBullets = false;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.ThrownGunDamage, StatModifier.ModifyMethod.ADDITIVE, 20f),
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #2
0
            public flurry_of_blows()
            {
                this.NameKey         = "Flurry rush";
                this.MandatoryGunIDs = new List <int>
                {
                    PickupObjectDatabase.GetByEncounterName("Hail 2 U").PickupObjectId
                };
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                };
                this.OptionalItemIDs = new List <int>
                {
                    ETGMod.Databases.Items["Jar of Stardust"].PickupObjectId,
                    ETGMod.Databases.Items["Fate's Blessing"].PickupObjectId
                };
                this.IgnoreLichEyeBullets = false;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.ADDITIVE, 8f),
                    StatModifier.Create(PlayerStats.StatType.Damage, StatModifier.ModifyMethod.ADDITIVE, -.7f),
                    StatModifier.Create(PlayerStats.StatType.DamageToBosses, StatModifier.ModifyMethod.ADDITIVE, -.7f),
                    StatModifier.Create(PlayerStats.StatType.AdditionalClipCapacityMultiplier, StatModifier.ModifyMethod.ADDITIVE, 8f),
                    StatModifier.Create(PlayerStats.StatType.AdditionalGunCapacity, StatModifier.ModifyMethod.ADDITIVE, 1f),
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #3
0
        private void ProcessInfinilichStatus(PlayerController player, bool forceDisable = false)
        {
            bool flag = player && PlayerHasActiveSynergy(player, "Master of Gungeon") && !forceDisable;

            if (flag && !this.m_transformed)
            {
                this.m_lastPlayer = player;
                if (player)
                {
                    this.m_transformed = true;
                    if (Minimap.Instance != null)
                    {
                        Minimap.Instance.RevealAllRooms(true);
                    }
                    player.OnNewFloorLoaded += RevealAllRooms;
                    player.carriedConsumables.InfiniteKeys = true;
                    player.OverrideAnimationLibrary        = this.replacementLibrary;
                    player.SetOverrideShader(ShaderCache.Acquire(player.LocalShaderName));
                    if (player.characterIdentity == PlayableCharacters.Eevee)
                    {
                        player.GetComponent <CharacterAnimationRandomizer>().AddOverrideAnimLibrary(this.replacementLibrary);
                    }
                    player.ChangeHandsToCustomType(this.replacementHandSprite.Collection, this.replacementHandSprite.spriteId);
                    StatModifier mod1 = StatModifier.Create(PlayerStats.StatType.AdditionalItemCapacity, StatModifier.ModifyMethod.ADDITIVE, 1);
                    player.ownerlessStatModifiers.Add(mod1);
                    this.synergyModifiers.Add(mod1);
                    player.stats.RecalculateStats(player, false, false);
                }
            }
            else if (this.m_transformed && !flag)
            {
                if (this.m_lastPlayer)
                {
                    this.m_lastPlayer.OnNewFloorLoaded -= RevealAllRooms;
                    this.m_lastPlayer.carriedConsumables.InfiniteKeys = false;
                    this.m_lastPlayer.OverrideAnimationLibrary        = null;
                    this.m_lastPlayer.ClearOverrideShader();
                    if (this.m_lastPlayer.characterIdentity == PlayableCharacters.Eevee)
                    {
                        this.m_lastPlayer.GetComponent <CharacterAnimationRandomizer>().RemoveOverrideAnimLibrary(this.replacementLibrary);
                    }
                    this.m_lastPlayer.RevertHandsToBaseType();
                    foreach (StatModifier mod in this.synergyModifiers)
                    {
                        this.m_lastPlayer.ownerlessStatModifiers.Remove(mod);
                    }
                    this.synergyModifiers.Clear();
                    this.m_lastPlayer.stats.RecalculateStats(this.m_lastPlayer, false, false);
                    this.m_lastPlayer = null;
                }
                this.m_transformed = false;
            }
        }
コード例 #4
0
            public split()
            {
                this.NameKey          = "Split personality";
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    ETGMod.Databases.Items["Bad company"].PickupObjectId, 187
                };
                this.IgnoreLichEyeBullets = true;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.GlobalPriceMultiplier, StatModifier.ModifyMethod.ADDITIVE, -.1f),
                    StatModifier.Create(PlayerStats.StatType.MoneyMultiplierFromEnemies, StatModifier.ModifyMethod.ADDITIVE, 2f)
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #5
0
            public Super_Duper_Fly()
            {
                this.NameKey          = "Super Duper Fly";
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    ETGMod.Databases.Items["Fly Friend"].PickupObjectId, ETGMod.Databases.Items["Super Fly"].PickupObjectId,
                };
                this.IgnoreLichEyeBullets = true;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.Coolness, StatModifier.ModifyMethod.ADDITIVE, 4f),
                    StatModifier.Create(PlayerStats.StatType.Accuracy, StatModifier.ModifyMethod.ADDITIVE, .2f),
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #6
0
            public the_World_revolving()
            {
                this.NameKey          = "Chaos Chaos CHAOS!";
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    ETGMod.Databases.Items["Chamber of Chambers"].PickupObjectId,
                    ETGMod.Databases.Items["Speedy Chamber"].PickupObjectId
                };
                this.IgnoreLichEyeBullets = true;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.ReloadSpeed, StatModifier.ModifyMethod.ADDITIVE, -3f),

                    StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.ADDITIVE, .5f)
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #7
0
            public Daft_Punk()
            {
                this.NameKey          = "Harder! Better! Faster! Stronger!";
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    ETGMod.Databases.Items["Daft"].PickupObjectId,
                    ETGMod.Databases.Items["Punk"].PickupObjectId
                };
                this.IgnoreLichEyeBullets = true;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.MovementSpeed, StatModifier.ModifyMethod.ADDITIVE, 2f),
                    StatModifier.Create(PlayerStats.StatType.KnockbackMultiplier, StatModifier.ModifyMethod.ADDITIVE, .3f),
                    StatModifier.Create(PlayerStats.StatType.Damage, StatModifier.ModifyMethod.ADDITIVE, .4f),
                    StatModifier.Create(PlayerStats.StatType.Accuracy, StatModifier.ModifyMethod.ADDITIVE, -.2f),
                    StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.ADDITIVE, .2f)
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #8
0
 public GoldenSpinSyn()
 {
     this.NameKey         = "Golden Cylinder";
     this.MandatoryGunIDs = new List <int>
     {
         ETGMod.Databases.Items["Incremental"].PickupObjectId
     };
     this.OptionalItemIDs = new List <int>
     {
         270,
         69
     };
     this.ActiveWhenGunUnequipped = false;
     this.statModifiers           = new List <StatModifier>
     {
         StatModifier.Create(PlayerStats.StatType.AdditionalClipCapacityMultiplier, StatModifier.ModifyMethod.MULTIPLICATIVE, .366666f)
     };
     this.IgnoreLichEyeBullets = false;
     this.bonusSynergies       = new List <CustomSynergyType>();
 }
コード例 #9
0
            public tomislav()
            {
                this.NameKey         = "Tomislav";
                this.MandatoryGunIDs = new List <int>
                {
                    84
                };
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    ETGMod.Databases.Items["Sandvich"].PickupObjectId,
                };
                this.IgnoreLichEyeBullets = true;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.KnockbackMultiplier, StatModifier.ModifyMethod.ADDITIVE, -.80f),
                    StatModifier.Create(PlayerStats.StatType.Accuracy, StatModifier.ModifyMethod.ADDITIVE, -.80f),
                    StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.ADDITIVE, -.1f),
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #10
0
 public KvotheKingKillerSyn()
 {
     NameKey = "Kvothe, Kingkiller";
     this.MandatoryItemIDs = new List <int>
     {
         ETGMod.Databases.Items["Sympathy Bullets"].PickupObjectId,
     };
     MandatoryGunIDs = new List <int>
     {
         506
     };
     IgnoreLichEyeBullets  = false;
     NumberObjectsRequired = 2;
     this.statModifiers    = new List <StatModifier>
     {
         StatModifier.Create(PlayerStats.StatType.Accuracy, StatModifier.ModifyMethod.MULTIPLICATIVE, .5f),
         StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.MULTIPLICATIVE, 1.25f),
         StatModifier.Create(PlayerStats.StatType.DamageToBosses, StatModifier.ModifyMethod.MULTIPLICATIVE, 1.5f),
         StatModifier.Create(PlayerStats.StatType.RangeMultiplier, StatModifier.ModifyMethod.MULTIPLICATIVE, 5),
     };
     this.bonusSynergies     = new List <CustomSynergyType>();
     ActiveWhenGunUnequipped = false;
 }
コード例 #11
0
            public lich()
            {
                this.NameKey         = "Whole again";
                this.MandatoryGunIDs = new List <int>
                {
                    PickupObjectDatabase.GetByEncounterName("lich's trigger hand").PickupObjectId
                };
                this.MandatoryItemIDs = new List <int> //Look in the items ID map in the gungeon code for the ids.
                {
                    213,
                };
                this.OptionalItemIDs = new List <int>
                {
                };
                this.IgnoreLichEyeBullets = false;
                this.statModifiers        = new List <StatModifier>(0)
                {
                    StatModifier.Create(PlayerStats.StatType.ReloadSpeed, StatModifier.ModifyMethod.ADDITIVE, -.3f),

                    StatModifier.Create(PlayerStats.StatType.RateOfFire, StatModifier.ModifyMethod.ADDITIVE, .2f),
                };

                this.bonusSynergies = new List <CustomSynergyType>();
            }
コード例 #12
0
 private void Update()
 {
     if (Dungeon.IsGenerating || GameManager.Instance.IsLoadingLevel)
     {
         return;
     }
     for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++)
     {
         PlayerController playerController = GameManager.Instance.AllPlayers[i];
         float            num     = this.Radius;
         bool             hasStat = this.statModifiers.ContainsKey(playerController);
         if (playerController && Vector2.Distance(playerController.CenterPosition, base.transform.position.XY()) < num)
         {
             if (!hasStat)
             {
                 StatModifier mod = StatModifier.Create(PlayerStats.StatType.ReloadSpeed, StatModifier.ModifyMethod.ADDITIVE, -1000f);
                 playerController.ownerlessStatModifiers.Add(mod);
                 playerController.stats.RecalculateStats(playerController, true, false);
                 this.statModifiers.Add(playerController, mod);
             }
         }
         else if (playerController)
         {
             if (hasStat)
             {
                 StatModifier mod = this.statModifiers[playerController];
                 if (playerController.ownerlessStatModifiers.Contains(mod))
                 {
                     playerController.ownerlessStatModifiers.Remove(mod);
                     playerController.stats.RecalculateStats(playerController, true, false);
                 }
                 this.statModifiers.Remove(playerController);
             }
         }
     }
 }