public override void SetupAttributes()
        {
            if (ItemBodyModelPrefab == null)
            {
                ItemBodyModelPrefab = Resources.Load <GameObject>(modelResourcePath);
                displayRules        = GenerateItemDisplayRules();
            }

            base.SetupAttributes();
            var secondWindBuff = new R2API.CustomBuff(
                new BuffDef
            {
                canStack = false,
                isDebuff = false,
                name     = "SecondWindBuff",
                iconPath = "@SupplyDrop:Assets/Main/Textures/Icons/SecondWindBuffIcon.png"
            });

            SecondWindBuff = BuffAPI.Add(secondWindBuff);

            var windedDebuff = new R2API.CustomBuff(
                new BuffDef
            {
                canStack = false,
                isDebuff = true,
                name     = "WindedDebuff",
                iconPath = "@SupplyDrop:Assets/Main/Textures/Icons/WindedDebuffIcon.png"
            });

            WindedDebuff = BuffAPI.Add(windedDebuff);
        }
Example #2
0
        public void Awake()
        {
            ConfigInit();

            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixLunar"), AffixLunarTokens);
            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixPoison"), AffixPoisonTokens);
            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixHaunted"), AffixHauntedTokens);
            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixRed"), AffixRedTokens);
            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixBlue"), AffixBlueTokens);
            AspectsToItems.AspectsToItems.YellowAspectDef(Resources.Load <EquipmentDef>("equipmentdefs/AffixWhite"), AffixWhiteTokens);

            if (AffixWhiteToggle.Value)
            {
                FreezingBlood            = ScriptableObject.CreateInstance <BuffDef>();
                FreezingBlood.name       = "FreezingBlood";
                FreezingBlood.iconSprite = Resources.Load <BuffDef>("buffdefs/Bleeding").iconSprite;
                FreezingBlood.buffColor  = new Color(0.64705884f, 0.87058824f, 0.92941177f);
                FreezingBlood.canStack   = true;
                FreezingBlood.isDebuff   = true;
                CustomBuff FreezingBloodC = new CustomBuff(FreezingBlood);
                BuffAPI.Add(FreezingBloodC);
            }

            Hook();
        }
Example #3
0
        internal StaticCharge()
        {
            On.RoR2.HealthComponent.TakeDamage     += hook_HealthComponent_TakeDamage;
            On.RoR2.CharacterBody.RecalculateStats += hook_CharacterBody_RecalculateStats;

            var itemTemplate = new ItemTemplate();

            itemTemplate.name            = "Static Charge";
            itemTemplate.tier            = ItemTier.Tier2;
            itemTemplate.internalName    = "STATIC_CHARGE";
            itemTemplate.pickupText      = "Your critical strikes build up static charge to shock the next enemy to attack you.";
            itemTemplate.descriptionText = "Gain <style=cIsDamage>5% critical chance</style>. <style=cIsDamage>Critical strikes</style> grant you a stack of <style=cIsDamage>static charge</style>. The next time you are attacked, <style=cIsUtility>shock</style> the attacker, dealing <style=cIsDamage>5% <style=cStack>(+5% per stack)</style> damage</style> for each stack of <style=cIsDamage>static charge</style>.";
            itemTemplate.loreText        = "I can feel a buzz in the air... Don't get to close to me... ";

            Init(itemTemplate);

            var buffDef = new BuffDef()
            {
                name     = "Static Charge",
                iconPath = this.IconPath,
                isDebuff = false,
                canStack = true,
            };

            buffIndex = BuffAPI.Add(new CustomBuff(buffDef));
        }
Example #4
0
        public override void SetupAttributes()
        {
            base.SetupAttributes();

            var freezeStackDebuff = new CustomBuff(
                new BuffDef
            {
                name      = "Freezing",
                buffColor = new Color(10, 125, 125),
                canStack  = true,
                isDebuff  = true,
            });

            GungeonFreezeStackDebuff = BuffAPI.Add(freezeStackDebuff);

            var frozenDebuff = new CustomBuff(
                new BuffDef
            {
                name      = "Frozen!",
                buffColor = new Color(10, 255, 255),
                canStack  = false,
                isDebuff  = true,
            });

            GungeonFrozenDebuff = BuffAPI.Add(frozenDebuff);
        }
        public override void SetupAttributes()
        {
            base.SetupAttributes();

            var markDebuffDef = new CustomBuff(new BuffDef {
                buffColor = Color.yellow,
                canStack  = false,
                isDebuff  = true,
                name      = modInfo.shortIdentifier + "HitListDebuff",
                iconPath  = "@ClassicItems:Assets/ClassicItems/icons/hitlist_debuff_icon.png"
            });

            markDebuff = BuffAPI.Add(markDebuffDef);

            var tallyBuffDef = new CustomBuff(new BuffDef {
                buffColor = Color.yellow,
                canStack  = true,
                isDebuff  = false,
                name      = modInfo.shortIdentifier + "HitListBuff",
                iconPath  = "@ClassicItems:Assets/ClassicItems/icons/hitlist_buff_icon.png"
            });

            tallyBuff = BuffAPI.Add(tallyBuffDef);

            var hitListTallyDef = new CustomItem(new ItemDef {
                hidden    = true,
                name      = modInfo.shortIdentifier + "INTERNALTally",
                tier      = ItemTier.NoTier,
                canRemove = false
            }, new ItemDisplayRuleDict(null));

            hitListTally = ItemAPI.Add(hitListTallyDef);
        }
Example #6
0
        public void CreateElite()
        {
            var eliteDef = new RoR2.EliteDef
            {
                name                = "Hypercharged",
                modifierToken       = "ARES_HYPERCHARGED",
                color               = Color.white,
                eliteEquipmentIndex = AffixEquipmentIndex
            };

            EliteIndex = EliteAPI.Add(new CustomElite(eliteDef, 2));
            LanguageAPI.Add(eliteDef.modifierToken, eliteDef.name + " {0}");

            EliteBuffDef.eliteIndex       = EliteIndex;
            EliteBuffIndex                = BuffAPI.Add(new CustomBuff(EliteBuffDef));
            AffixEquipmentDef.passiveBuff = EliteBuffIndex;

            EliteAffixCard = new EliteAffixCard
            {
                spawnWeight      = 0.5f,
                costMultiplier   = 30.0f,
                damageBoostCoeff = 2.0f,
                healthBoostCoeff = 4.5f,
                eliteOnlyScaling = 0.5f,
                eliteType        = EliteIndex
            };
            EsoLib.Cards.Add(EliteAffixCard);
        }
Example #7
0
        public HitList()
        {
            onAttrib += (tokenIdent, namePrefix) => {
                var markDebuffDef = new CustomBuff(new BuffDef {
                    buffColor = Color.yellow,
                    canStack  = false,
                    isDebuff  = true,
                    name      = namePrefix + "HitListDebuff",
                    iconPath  = "@ClassicItems:Assets/ClassicItems/icons/hitlist_debuff_icon.png"
                });
                markDebuff = BuffAPI.Add(markDebuffDef);

                var tallyBuffDef = new CustomBuff(new BuffDef {
                    buffColor = Color.yellow,
                    canStack  = true,
                    isDebuff  = false,
                    name      = namePrefix + "HitListBuff",
                    iconPath  = "@ClassicItems:Assets/ClassicItems/icons/hitlist_buff_icon.png"
                });
                tallyBuff = BuffAPI.Add(tallyBuffDef);

                var hitListTallyDef = new CustomItem(new ItemDef {
                    hidden    = true,
                    name      = namePrefix + "INTERNALTally",
                    tier      = ItemTier.NoTier,
                    canRemove = false
                }, new ItemDisplayRuleDict(null));
                hitListTally = ItemAPI.Add(hitListTallyDef);
            };
        }
        public DivinationDistillate() : base()
        {
            const string cShield = "<style=cIsHealing>shield</style>";
            const string cHealth = "<style=cIsHealing>health</style>";

            Cooldown   = 30;
            Name       = new TokenValue("HC_LUCKJUICE", "Divination Distillate");
            PickupText = new TokenValue("HC_LUCKJUICE_PICKUP",
                                        $"<style=cIsHealing>Heal</style> both {cHealth} and {cShield} for a short period of time. <style=cIsUtility>Luck</style> increased while active.");
            Description = new TokenValue("HC_LUCKJUICE_DESC",
                                         $"Heal both {cHealth} and {cShield} for {DistillateDuration} seconds. Effects stops at full {cHealth} and full {cShield}." +
                                         $" While under effect, your <style=cIsUtility>luck</style> is greatly increased.");
            Lore = new TokenValue("HC_LUCKJUICE_LORE",
                                  "Knowledge is fermented in pain and loss\nDistilled with reflection\nTo quench the thirst of those\nWho dream of enlightenment\n\nOpportunity is ripened in risk and rain\nRefined in a single moment\nTo fuel the hunger of those\nWho crave for avarice\n\n<i>Divination Distillate's model, effect and lore are deratives of Grinding Gear Games' version.</i>");
            var cbuff = new CustomBuff(
                name: "HC_LUCKJUICE_BUFF",
                iconPath: HarbCratePlugin.assetPrefix + "Assets/HarbCrate/DivDistillate/texBuffLuck",
                buffColor: Color.Lerp(Color.red, Color.yellow, 0.5f),
                canStack: false,
                isDebuff: false
                );

            BuffAPI.Add(cbuff);
            DistillateBuff = cbuff.BuffDef;
            IsLunar        = false;
            IsEnigmaCompat = false;
            AssetPath      = HarbCratePlugin.assetPrefix + "Assets/HarbCrate/DivDistillate/LuckJuice.prefab";
            SpritePath     = HarbCratePlugin.assetPrefix + "Assets/HarbCrate/DivDistillate/luckjuice.png";
            DefaultScale  *= 21;
            SetupDisplayRules();
        }
Example #9
0
        private static void RepulsionArmorAsItem()
        {
            LanguageAPI.Add("REPULSIONARMOR_NAME_TOKEN", "Repulsion Armor");
            LanguageAPI.Add("REPULSIONARMOR_PICKUP_TOKEN", "After taking damage, reflect all attacks for seconds.");
            LanguageAPI.Add("REPULSIONARMOR_DESCRIPTION_TOKEN", "After <style=cIsUtility>6</style> hits <style=cIsHealing>Increase 500 armors</style> for <style=cIsUtility>3</style> <style=cStack>(+1 per stack)</style> seconds.");
            LanguageAPI.Add("REPULSIONARMOR_LORE_TOKEN", @"- Shipping Method:  High Priority / Fragile
- Order Details :  Prototype repulsion armor: it doesn't quite work as advertised. The protective shielding will activate, but only after... repeated triggers. You'll have to get hit a lot of times before it activates. We have tried increasing the sensitivity, but it lead to the armor triggering from simple movements. We will send an improved prototype next month.
");
            LanguageAPI.Add("REPULSIONARMOR_NAME_TOKEN", "斥力装甲", "zh-CN");
            LanguageAPI.Add("REPULSIONARMOR_PICKUP_TOKEN", "受到伤害后,在几秒内降低受到的攻击。", "zh-CN");
            LanguageAPI.Add("REPULSIONARMOR_DESCRIPTION_TOKEN", "受到<style=cIsUtility>6</style>次攻击后,增加<style=cIsHealing>500护甲</style>, 持续<style=cIsUtility>3秒</style> <style=cStack>(每层增加1秒)</style>。", "zh-CN");
            LanguageAPI.Add("REPULSIONARMOR_LORE_TOKEN", "运输方式:高优先级 / 脆弱\r\n商品细节:原型排斥装甲:它并没有像宣传的那样起作用。保护性屏蔽将被激活,但仅在...反复触发后才能激活。在激活之前,您必须被击中很多次。我们已经尝试提高灵敏度,但是它会导致装甲由简单的动作触发。我们将在下个月发送改进的原型。", "zh-CN");

            ItemDef RepulsionArmorDef = new ItemDef
            {
                name             = "REPULSIONARMOR_NAME_TOKEN",
                pickupIconPath   = IconPath,
                pickupModelPath  = PrefabPath,
                nameToken        = "REPULSIONARMOR_NAME_TOKEN",
                pickupToken      = "REPULSIONARMOR_PICKUP_TOKEN",
                descriptionToken = "REPULSIONARMOR_DESCRIPTION_TOKEN",
                loreToken        = "REPULSIONARMOR_LORE_TOKEN",
                tier             = ItemTier.Tier3,
                tags             = new ItemTag[]
                {
                    ItemTag.Healing,
                    ItemTag.Utility
                }
            };

            ItemDisplayRule[] DisplayRules       = null;
            CustomItem        RepulsionArmorItem = new CustomItem(RepulsionArmorDef, DisplayRules);

            RepulsionArmorItemIndex = ItemAPI.Add(RepulsionArmorItem);

            BuffDef RepulsionArmorStackbuffDef = new BuffDef
            {
                iconPath   = BuffIconPath,
                canStack   = true,
                eliteIndex = EliteIndex.None,
                isDebuff   = false,
                name       = "RepulsionArmorStackbuff"
            };

            RepulsionArmorStackbuff = BuffAPI.Add(new CustomBuff(RepulsionArmorStackbuffDef));

            BuffDef RepulsionArmorArmorbuffDef = new BuffDef
            {
                iconPath   = "Textures/BuffIcons/texBuffGenericShield",
                buffColor  = new Color(0.9137255f, 0.37254903f, 0.1882353f),
                canStack   = false,
                eliteIndex = EliteIndex.None,
                isDebuff   = false,
                name       = "RepulsionArmorArmorbuff"
            };

            RepulsionArmorArmorbuff = BuffAPI.Add(new CustomBuff(RepulsionArmorArmorbuffDef));
        }
Example #10
0
        public void OnAwake()
        {
            {
                On.EntityStates.Bandit2.Weapon.Bandit2FireShiv.OnEnter += (orig, self) =>
                {
                    Chat.AddMessage("FireShiv!!");
                    orig(self);
                };
                On.EntityStates.Bandit2.Weapon.BaseFireSidearmRevolverState.OnEnter += (orig, self) =>
                {
                    Chat.AddMessage("BaseFireSidearmRevolverState!! : " + self.GetType().FullName);
                    orig(self);
                };
                On.EntityStates.Bandit2.Weapon.BaseFireSidearmRevolverState.OnEnter += (orig, self) =>
                {
                    Chat.AddMessage("BaseFireSidearmRevolverState!! : " + self.GetType().FullName);
                    orig(self);
                };
                On.EntityStates.Bandit2.Weapon.BasePrepSidearmRevolverState.OnEnter += (orig, self) =>
                {
                    Chat.AddMessage("BasePrepSidearmRevolverState!!");
                    if (self is PrepSidearmResetRevolver)
                    {
                        Chat.AddMessage("PrepSidearmResetRevolver!!");
                    }
                    else if (self is PrepSidearmSkullRevolver)
                    {
                        Chat.AddMessage("PrepSidearmSkullRevolver!!");
                    }
                    orig(self);
                };
            }

            BuffDef buffDef = new BuffDef
            {
                buffColor = new Color(153, 0, 0),
                buffIndex = (BuffIndex)63,
                canStack  = true,
                eliteDef  = null,
                iconPath  = "Textures/BuffIcons/texBuffBleedingIcon",
                isDebuff  = false,
                name      = "BanditSpeed"
            };

            BanditSpeedBuff = buffDef;
            BuffAPI.Add(new CustomBuff(buffDef));

            On.RoR2.CharacterBody.RecalculateStats += new On.RoR2.CharacterBody.hook_RecalculateStats(this.CharacterBody_RecalculateStats);

            On.RoR2.HealthComponent.TakeDamage += new On.RoR2.HealthComponent.hook_TakeDamage(this.HealthComponent_TakeDamage);

            On.EntityStates.Bandit2.StealthMode.OnExit += (orig, self) =>
            {
                self.outer.commonComponents.characterBody.ClearTimedBuffs(BanditSkills.BanditSpeedBuff);
                orig(self);
            };
        }
Example #11
0
 private void SetupModifierKeyBuff()
 {
     modifierKeyBuff            = ScriptableObject.CreateInstance <BuffDef>();
     modifierKeyBuff.buffColor  = new Color(1f, 215f / 255f, 0f);
     modifierKeyBuff.canStack   = false;
     modifierKeyBuff.isDebuff   = false;
     modifierKeyBuff.name       = "Activate your Foreign Fruit to throw!";
     modifierKeyBuff.iconSprite = RoR2Content.Equipment.Fruit.pickupIconSprite;
     BuffAPI.Add(new CustomBuff(modifierKeyBuff));
 }
Example #12
0
        public static void RegisterBuffs()
        {
            BuffDef scaredDef = new BuffDef
            {
                name       = "Scared!\nUnable to attack!",
                iconPath   = "textures/itemicons/texMaskIcon",
                buffColor  = Color.yellow,
                canStack   = false,
                isDebuff   = true,
                eliteIndex = EliteIndex.None
            };
            CustomBuff scared = new CustomBuff(scaredDef);

            scaredDebuff = BuffAPI.Add(scared);

            BuffDef scaredBuildingDef = new BuffDef
            {
                name       = "Scared!\nUnable to attack! (Mechanical)",
                iconPath   = "textures/itemicons/texMaskIcon",
                buffColor  = Color.yellow,
                canStack   = false,
                isDebuff   = true,
                eliteIndex = EliteIndex.None
            };
            CustomBuff scaredBuilding = new CustomBuff(scaredBuildingDef);

            scaredBuildingDebuff = BuffAPI.Add(scaredBuilding);

            BuffDef weighdownDef = new BuffDef
            {
                name       = "Knockback Immunity!\nImmunity to knockback.",
                iconPath   = "Textures/BuffIcons/texBuffGenericShield",
                buffColor  = Color.blue,
                canStack   = false,
                isDebuff   = false,
                eliteIndex = EliteIndex.None
            };
            CustomBuff weighdown = new CustomBuff(weighdownDef);

            weighdownBuff = BuffAPI.Add(weighdown);

            BuffDef crouchingDef = new BuffDef
            {
                name       = "Crouching!\nSlowed and shorter hitbox.",
                iconPath   = "Textures/BuffIcons/texBuffGenericShield",
                buffColor  = Color.blue,
                canStack   = false,
                isDebuff   = false,
                eliteIndex = EliteIndex.None
            };
            CustomBuff crouching = new CustomBuff(crouchingDef);

            crouchingBuff = BuffAPI.Add(crouching);
        }
Example #13
0
        public static void RegisterBuffs()
        {
            BuffDef paladinWarcryBuff = new BuffDef
            {
                name       = "Divine Blessing",
                iconPath   = "Textures/BuffIcons/texBuffGenericShield",
                buffColor  = PaladinPlugin.characterColor,
                canStack   = false,
                isDebuff   = false,
                eliteIndex = EliteIndex.None
            };
            CustomBuff paladinWarcry = new CustomBuff(paladinWarcryBuff);

            warcryBuff = BuffAPI.Add(paladinWarcry);

            BuffDef scepterPaladinWarcryBuff = new BuffDef
            {
                name       = "Divine Blessing (Scepter)",
                iconPath   = "Textures/BuffIcons/texBuffGenericShield",
                buffColor  = PaladinPlugin.characterColor,
                canStack   = false,
                isDebuff   = false,
                eliteIndex = EliteIndex.None
            };
            CustomBuff scepterPaladinWarcry = new CustomBuff(scepterPaladinWarcryBuff);

            scepterWarcryBuff = BuffAPI.Add(scepterPaladinWarcry);

            BuffDef torporDebuffDef = new BuffDef
            {
                name       = "Torpor",
                iconPath   = "Textures/BuffIcons/texBuffCloakIcon",
                buffColor  = Color.black,
                canStack   = false,
                isDebuff   = true,
                eliteIndex = EliteIndex.None
            };
            CustomBuff torpor = new CustomBuff(torporDebuffDef);

            torporDebuff = BuffAPI.Add(torpor);

            BuffDef scepterTorporDebuffDef = new BuffDef
            {
                name       = "Torpor (Scepter)",
                iconPath   = "Textures/BuffIcons/texBuffCloakIcon",
                buffColor  = Color.black,
                canStack   = false,
                isDebuff   = true,
                eliteIndex = EliteIndex.None
            };
            CustomBuff scepterTorpor = new CustomBuff(scepterTorporDebuffDef);

            scepterTorporDebuff = BuffAPI.Add(scepterTorpor);
        }
Example #14
0
    public Sundial()
    {
        {
            LanguageAPI.Add("SUNDIAL_ITEM_TOKEN", "Rechargable Quantum Core");
            LanguageAPI.Add("SUNDIAL_ITEM_DESCRIPTION_TOKEN", "Chance to become elite upon interaction. +5% chance per stack.");
            LanguageAPI.Add("SUNDIAL_ITEM_PICKUP_TOKEN", "Chance to become elite upon interaction.");

            ItemTag[] tags = new ItemTag[2]
            {
                ItemTag.Utility,
                ItemTag.AIBlacklist
            };

            var itemDef = new ItemDef
            {
                pickupModelPath  = "Prefabs/PickupModels/PickupMystery",
                pickupIconPath   = "Textures/MiscIcons/texMysteryIcon",
                pickupToken      = "SUNDIAL_ITEM_PICKUP_TOKEN",
                nameToken        = "SUNDIAL_ITEM_TOKEN",
                name             = "WeirdSundial",
                descriptionToken = "SUNDIAL_ITEM_DESCRIPTION_TOKEN",
                tier             = ItemTier.Tier2,
                tags             = tags
            };

            BuffDef solarBuffDef = new BuffDef
            {
                buffColor  = new Color(235, 182, 92),
                buffIndex  = BuffIndex.Count,
                canStack   = false,
                eliteIndex = EliteIndex.None,
                iconPath   = "Textures/BuffIcons/texbuffpulverizeicon",
                isDebuff   = false,
                name       = "SolarGain"
            };
            solarBuff = BuffAPI.Add(new CustomBuff(solarBuffDef));
            //solarBuff = ItemAPI.Add(new CustomBuff(solarbuff.name, solarbuff));

            var prefab = Resources.Load <GameObject>("Prefabs/PickupModels/PickupMystery");

            var rule = new ItemDisplayRule
            {
                ruleType       = ItemDisplayRuleType.ParentedPrefab,
                followerPrefab = prefab,
                childName      = "Chest",
                localScale     = new Vector3(0f, 0, 0f),
                localAngles    = new Vector3(0f, 0f, 0f),
                localPos       = new Vector3(0, 0f, 0f)
            };

            var item = new CustomItem(itemDef, new[] { rule });
            itemIndex = ItemAPI.Add(item);
        };
    }
        public static BuffDef RegisterBuff(Color buffColor, bool canStack, bool isDebuff, string iconPath, string name)
        {
            var buffDef = ScriptableObject.CreateInstance <BuffDef>();

            buffDef.buffColor  = buffColor;
            buffDef.canStack   = canStack;
            buffDef.isDebuff   = isDebuff;
            buffDef.iconSprite = assetBundle.LoadAsset <Sprite>(iconPath);
            buffDef.name       = BulletstormPlugin.displayName + ":" + name;
            BuffAPI.Add(new CustomBuff(buffDef));
            return(buffDef);
        }
Example #16
0
        private static void AddDexBoostBuff()
        {
            BuffDef def = new BuffDef
            {
                name     = "Aspect of Fury",
                canStack = true,
                isDebuff = false,
                iconPath = "@WDBP:Assets/WDBP/DexItem.png"
            };
            CustomBuff buff = new CustomBuff(def);

            DexBoostIndex = BuffAPI.Add(buff);
        }
Example #17
0
        private static void AddArmorBoostBuff()
        {
            BuffDef def = new BuffDef
            {
                name     = "Aspect of Toughness",
                canStack = true,
                isDebuff = false,
                iconPath = "@WDBP:Assets/WDBP/ArmorItem.png"
            };
            CustomBuff buff = new CustomBuff(def);

            ArmorBoostIndex = BuffAPI.Add(buff);
        }
Example #18
0
        private static void AddHealthBoostBuff()
        {
            BuffDef def = new BuffDef
            {
                name     = "Aspect of Vitality",
                canStack = true,
                isDebuff = false,
                iconPath = "@WDBP:Assets/WDBP/HealthItem.png"
            };
            CustomBuff buff = new CustomBuff(def);

            HealthBoostIndex = BuffAPI.Add(buff);
        }
Example #19
0
            private static void ThalliumAsBuff()
            {
                BuffDef ThalliumBuffDef = new BuffDef
                {
                    iconPath   = BuffIconPath,
                    canStack   = false,
                    eliteIndex = EliteIndex.None,
                    isDebuff   = true,
                    name       = "ThalliumDeBuff"
                };

                ThalliumDebuff = BuffAPI.Add(new CustomBuff(ThalliumBuffDef));
            }
Example #20
0
        private static void AddDamageBoostBuff()
        {
            BuffDef def = new BuffDef
            {
                name     = "Aspect of Strength",
                canStack = true,
                isDebuff = false,
                iconPath = "@WDBP:Assets/WDBP/StrengthIcon.png"
            };
            CustomBuff buff = new CustomBuff(def);

            DamageBoostIndex = BuffAPI.Add(buff);
        }
Example #21
0
        private static void LeechAsBuff()
        {
            BuffDef LeechBuffDef = new BuffDef
            {
                iconPath   = IconPath,
                canStack   = false,
                eliteIndex = EliteIndex.None,
                isDebuff   = false,
                name       = "LeechBuff"
            };

            MassiveLeechbuff = BuffAPI.Add(new CustomBuff(LeechBuffDef));
        }
Example #22
0
        public static BuffDef AddBuff(string name, Sprite iconSprite, Color buffColor, bool isDebuff = false, bool canStack = false)
        {
            var customBuff = ScriptableObject.CreateInstance <BuffDef>();

            customBuff.name       = name;
            customBuff.buffColor  = buffColor;
            customBuff.canStack   = canStack;
            customBuff.isDebuff   = isDebuff;
            customBuff.iconSprite = iconSprite;

            BuffAPI.Add(new CustomBuff(customBuff));
            return(customBuff);
        }
        public override void SetupBehavior()
        {
            base.SetupBehavior();
            GameObject engiMinePrefab = Resources.Load <GameObject>("prefabs/projectiles/EngiMine");

            minePrefab = engiMinePrefab.InstantiateClone("FootMine", true);
            Object.Destroy(minePrefab.GetComponent <ProjectileDeployToOwner>());

            GameObject engiMineGhostPrefab = Resources.Load <GameObject>("prefabs/projectileghosts/EngiMineGhost");

            mineGhostPrefab = engiMineGhostPrefab.InstantiateClone("FootMineGhost", false);
            SkinnedMeshRenderer mesh = mineGhostPrefab.GetComponentInChildren <SkinnedMeshRenderer>();

            mesh.material.color = Color.green;
            minePrefab.GetComponent <ProjectileController>().ghostPrefab = mineGhostPrefab;

            ProjectileAPI.Add(minePrefab);

            poisonBuff = ScriptableObject.CreateInstance <BuffDef>();
            //poisonBuff.buffColor = new Color32(1, 121, 91, 255);
            poisonBuff.isDebuff   = true;
            poisonBuff.canStack   = true;
            poisonBuff.name       = "CCIFootPoison";
            poisonBuff.iconSprite = assetBundle.LoadAsset <Sprite>("Assets/ClassicItems/icons/footmine_buff_icon.png");

            CustomBuff poisonCustomBuff = new CustomBuff(poisonBuff);

            BuffAPI.Add(poisonCustomBuff);

            DotController.DotDef poisonDotDef = new DotController.DotDef
            {
                interval          = 1,
                damageCoefficient = 1,
                damageColorIndex  = DamageColorIndex.Poison,
                associatedBuff    = poisonBuff
            };
            poisonDot = DotAPI.RegisterDotDef(poisonDotDef);

            if (Compat_ItemStats.enabled)
            {
                Compat_ItemStats.CreateItemStatDef(itemDef,
                                                   (
                                                       (count, inv, master) => { return(baseDmg + (count - 1) * stackDmg); },
                                                       (value, inv, master) => { return($"Poison Damage/Second: {Pct(value, 1)}"); }
                                                   ),
                                                   (
                                                       (count, inv, master) => { return(baseTicks + (count - 1) * stackTicks); },
                                                       (value, inv, master) => { return($"Duration: {value} seconds"); }
                                                   ));
            }
        }
Example #24
0
        public override void SetupAttributes()
        {
            base.SetupAttributes();
            equipmentDef.canDrop          = false;
            equipmentDef.enigmaCompatible = false;
            equipmentDef.cooldown         = 40;

            var buffDef = new BuffDef
            {
                name      = EliteBuffName,
                buffColor = new Color32(255, 255, 255, byte.MaxValue),
                iconPath  = EliteBuffIconPath,
                canStack  = false,
            };

            buffDef.eliteIndex = EliteIndex;
            var buffIndex = new CustomBuff(buffDef);

            EliteBuffIndex           = BuffAPI.Add(buffIndex);
            equipmentDef.passiveBuff = EliteBuffIndex;

            var eliteDef = new EliteDef
            {
                name          = ElitePrefixName,
                modifierToken = EliteModifierString,
                color         = buffDef.buffColor,
            };

            eliteDef.eliteEquipmentIndex = equipmentDef.equipmentIndex;
            var eliteIndex = new CustomElite(eliteDef, EliteTier);

            EliteIndex = EliteAPI.Add(eliteIndex);

            var card = new EliteAffixCard
            {
                spawnWeight      = 0.5f,
                costMultiplier   = 30.0f,
                damageBoostCoeff = 2.0f,
                healthBoostCoeff = 4.5f,
                eliteOnlyScaling = 0.5f,
                eliteType        = EliteIndex
            };

            EsoLib.Cards.Add(card);
            EliteCard = card;

            LanguageAPI.Add(eliteDef.modifierToken, ElitePrefixName + " {0}");

            //If we want to load our own, uncomment the one below.
            EliteMaterial = Resources.Load <Material>("@Aetherium:Assets/Textures/Materials/ApollosBrillianceMain.mat");
        }
Example #25
0
        internal static BuffIndex AddNewBuff(string buffName, string iconPath, Color buffColor, bool canStack, bool isDebuff)
        {
            CustomBuff customBuff = new CustomBuff(new BuffDef
            {
                name       = buffName,
                iconPath   = iconPath,
                buffColor  = buffColor,
                canStack   = canStack,
                isDebuff   = isDebuff,
                eliteIndex = EliteIndex.None
            });

            return(BuffAPI.Add(customBuff));
        }
        public static void Initialize()
        {
            BuffDef sacrificeBuffDef = ScriptableObject.CreateInstance <BuffDef>();

            {
                sacrificeBuffDef.name       = "Sacrifice";
                sacrificeBuffDef.iconSprite = Resources.Load <Sprite>("textures/bufficons/texMovespeedBuffIcon");
                sacrificeBuffDef.buffColor  = Color.yellow;
                sacrificeBuffDef.canStack   = false;
            };
            CustomBuff sacrificeCustomBuff = new CustomBuff(sacrificeBuffDef);

            BuffAPI.Add(sacrificeCustomBuff);
        }
Example #27
0
        public override void SetupAttributes()
        {
            base.SetupAttributes();
            var dmgBuff = new CustomBuff(
                new BuffDef
            {
                buffColor = Color.yellow,
                canStack  = false,
                isDebuff  = false,
                name      = "MachoBrace_Boost",
            });

            MachoBrace_Boost = BuffAPI.Add(dmgBuff);
        }
        public override void SetupAttributes()
        {
            base.SetupAttributes();
            var ImpExtractBuffDef = new CustomBuff(new BuffDef
            {
                buffColor = Color.white,
                canStack  = false,
                isDebuff  = false,
                name      = "KAIImpExtract",
                iconPath  = "@KevinsAdditions:Assets/KevinsAdditions/textures/icons/ImpExtractBuff_icon.png"
            });

            ImpExtractBuff = BuffAPI.Add(ImpExtractBuffDef);
        }
Example #29
0
        public override void SetupBehavior()
        {
            base.SetupBehavior();

            regenBuff            = ScriptableObject.CreateInstance <BuffDef>();
            regenBuff.buffColor  = Color.green;
            regenBuff.canStack   = true;
            regenBuff.isDebuff   = false;
            regenBuff.name       = "CCIDroneRepairKit";
            regenBuff.iconSprite = assetBundle.LoadAsset <Sprite>("Assets/ClassicItems/Icons/dronerepairkit_buff_icon.png");

            CustomBuff regenCustomBuff = new CustomBuff(regenBuff);

            BuffAPI.Add(regenCustomBuff);
        }
Example #30
0
        private static void RegisterSoloBuff()
        {
            BuffDef def = new BuffDef
            {
                name       = "SongstressSolo",
                iconPath   = null,
                buffColor  = Color.white,
                isDebuff   = false,
                canStack   = false,
                eliteIndex = EliteIndex.None
            };
            CustomBuff buff = new CustomBuff(def);

            SoloIndex = BuffAPI.Add(buff);
        }