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); }
public static CustomElite TestElite() { LoadAssets(); var eliteDef = new EliteDef { modifierToken = "Cloaky", color = new Color32(255, 105, 180, 255) }; var equipDef = new EquipmentDef { cooldown = 10f, pickupModelPath = "", pickupIconPath = "", nameToken = "Cloaky", pickupToken = "Cloaky", descriptionToken = "Cloaky", canDrop = false, enigmaCompatible = false }; var buffDef = new BuffDef { buffColor = eliteDef.color, canStack = false }; var equip = new CustomEquipment(equipDef, _prefab, _icon, _itemDisplayRules); var buff = new CustomBuff("Affix_Cloaky", buffDef, null); var elite = new CustomElite("Cloaky", eliteDef, equip, buff, 1); return(elite); }
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(); }
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(); }
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 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 StormElitesManager() { var eliteDef = new EliteDef { modifierToken = EliteName, color = new Color32(162, 179, 241, 255) }; var equipDef = new EquipmentDef { cooldown = 10f, pickupModelPath = "", pickupIconPath = HailstormAssets.IconStormElite, nameToken = EquipName, pickupToken = "Storm Bringer", descriptionToken = "Storm Bringer", canDrop = false, enigmaCompatible = false }; var buffDef = new BuffDef { buffColor = eliteDef.color, iconPath = HailstormAssets.IconStormElite, canStack = false }; var equip = new CustomEquipment(equipDef, new ItemDisplayRule[0]); var buff = new CustomBuff(BuffName, buffDef); var elite = new CustomElite(EliteName, eliteDef, equip, buff, 1); EliteIndex = (EliteIndex)ItemAPI.AddCustomElite(elite); BuffIndex = (BuffIndex)ItemAPI.AddCustomBuff(buff); EquipIndex = (EquipmentIndex)ItemAPI.AddCustomEquipment(equip); eliteDef.eliteEquipmentIndex = EquipIndex; equipDef.passiveBuff = BuffIndex; buffDef.eliteIndex = EliteIndex; //Storm elites are immune to twisters TwisterProjectileController.ImmunityBuff = BuffIndex; TornadoLauncher.StormBuff = BuffIndex; //Storm elites are tier 2 elites, on the same order as malachites //They're a bit less tanky than malachites, but even more dangerous in terms of damage var card = new EliteAffixCard { spawnWeight = 1.0f, costMultiplier = 30.0f, damageBoostCoeff = 6.0f, healthBoostCoeff = 20.0f, eliteType = EliteIndex, isAvailable = () => Run.instance.loopClearCount > 0, onSpawned = OnSpawned }; //Register the card for spawning if ESO is enabled EsoLib.Cards.Add(card); Card = card; }
public static CustomBuff MakeCustomBuff(string BuffId) { object ect = Assembly.Load("Assembly-CSharp").CreateInstance(BuffId);//加载程序集,创建程序集里面的 命名空间.类型名 实例 CustomBuff custombuff = (CustomBuff)ect; custombuff.guid = System.Guid.NewGuid().ToString(); custombuff.Init(); return(custombuff);//类型转换并返回 }
public override IEnumerator DoSkillLogic() { yield return(MoveSkillOB(() => { CustomBuff buff = SkillUtils.MakeCustomBuff("YanShiBaoBuff"); selfOnly.ActionTarget.ApplyCustomBuff(buff); AttackTarget(new SkillAttackDamage(20, 0.5f, 0)); })); }
public override IEnumerator ApplyBuffLogic() { CustomBuff buff001 = SkillUtils.MakeCustomBuff("Buff001"); buff001.SetGiver(selfOnly); GetSelf().ApplyCustomBuff(buff001); Debug.Log("执行了 添加自定义buff 001"); yield return(null); }
public override IEnumerator DoSkillLogic() { yield return(MoveToTarget()); CustomBuff buff = SkillUtils.MakeCustomBuff("MuBiaoJiZhongBuff"); selfOnly.ActionTarget.ApplyCustomBuff(buff); yield return(MoveToSelfPos()); }
private static void SetupBuffs() { var buffDef = ScriptableObject.CreateInstance <BuffDef>(); buffDef.buffColor = Color.green; buffDef.canStack = true; buffDef.isDebuff = true; buffDef.iconSprite = RoR2Content.Buffs.Poisoned.iconSprite; OriginalPoisonBuff = new CustomBuff(buffDef); }
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); }
}// public override IEnumerator ApplyBuffLogic() { List <BaseCharacterEntity> list = GetSelfFriends(); for (int i = 0; i < list.Count; i++) { CustomBuff buff = SkillUtils.MakeCustomBuff("ShengMingXuYuanBuff"); (list[i] as CharacterEntity).ApplyCustomBuff(buff); } yield return(null); }
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); }
public override IEnumerator DoSkillLogic() { yield return(MoveSkillOB(() => { List <BaseCharacterEntity> selfList = GetSelfFriends(); for (int i = 0; i < selfList.Count; i++) { CustomBuff buff = SkillUtils.MakeCustomBuff("JuShiHuDunBuff"); (selfList[i] as CharacterEntity).ApplyCustomBuff(buff); } })); }
public virtual void ApplyCustomBuff(CustomBuff buff) { buff.SetSelf(this as CharacterEntity); if (Item.GetBuffs().ContainsKey(buff.guid)) { Item.GetBuffs()[buff.guid] = buff; Debug.Log("有这个buff" + buff.guid); return; } Item.GetBuffs().Add(buff.guid, buff); buff.BattleStart(); }
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); }
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); }
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); }
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); }
public override IEnumerator DoSkillLogic() { yield return(MoveToTarget()); CustomBuff buff = SkillUtils.MakeCustomBuff("TieBiTongQiangBuff"); List <BaseCharacterEntity> enemys = GetRandomEnemy(9); for (int i = 0; i < enemys.Count; i++) { (enemys[i] as CharacterEntity).ApplyCustomBuff(buff); } yield return(MoveToSelfPos()); }
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"); }
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"); } )); } }
public BarrierElitesManager() { var eliteDef = new EliteDef { modifierToken = BarrierElitesManager.EliteName, color = new Color32(162, 179, 241, 255) }; var equipDef = new EquipmentDef { cooldown = 10f, pickupModelPath = "", pickupIconPath = HailstormAssets.IconBarrierElite, nameToken = EquipName, pickupToken = "Shield-Bearer", descriptionToken = "Shield-Bearer", canDrop = false, enigmaCompatible = false }; var buffDef = new BuffDef { buffColor = eliteDef.color, iconPath = HailstormAssets.IconBarrierElite, canStack = false }; var equip = new CustomEquipment(equipDef, new ItemDisplayRule[0]); var buff = new CustomBuff(BuffName, buffDef); var elite = new CustomElite(EliteName, eliteDef, equip, buff, 1); _eliteIndex = (EliteIndex)ItemAPI.AddCustomElite(elite); _buffIndex = (BuffIndex)ItemAPI.AddCustomBuff(buff); _equipIndex = (EquipmentIndex)ItemAPI.AddCustomEquipment(equip); eliteDef.eliteEquipmentIndex = _equipIndex; equipDef.passiveBuff = _buffIndex; buffDef.eliteIndex = _eliteIndex; //Barrier elites are a bit more uncommon than regular tier 1 elites //They're also a bit tankier than usual, but not more damaging var card = new EliteAffixCard { spawnWeight = 0.5f, costMultiplier = 10.0f, damageBoostCoeff = 1.0f, healthBoostCoeff = 10.0f, eliteType = _eliteIndex }; //Register the card for spawning if ESO is enabled EsoLib.Cards.Add(card); Card = card; }
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); }
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); }
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 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); }