From 75e1dddd08aa91257c44f6ce4738c77f2f07d641 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 15 Feb 2025 12:55:06 -0500 Subject: [PATCH] ModBehaviour defined --- src/engine/mbEnums.java | 170 ++++++++++-------- .../BlockedPowerTypeEffectModifier.java | 6 +- 2 files changed, 97 insertions(+), 79 deletions(-) diff --git a/src/engine/mbEnums.java b/src/engine/mbEnums.java index 2d32cd5f..114af5d8 100644 --- a/src/engine/mbEnums.java +++ b/src/engine/mbEnums.java @@ -1235,91 +1235,105 @@ public class mbEnums { } public enum ModType { - None, - AdjustAboveDmgCap, - Ambidexterity, - AnimOverride, - ArmorPiercing, - AttackDelay, - Attr, - BlackMantle, - BladeTrails, - Block, - BlockedPowerType, - CannotAttack, - CannotCast, - CannotMove, - CannotTrack, - Charmed, - ConstrainedAmbidexterity, - DamageCap, - DamageShield, - DCV, - Dodge, - DR, - Durability, - ExclusiveDamageCap, - Fade, - Fly, - Health, - HealthFull, - HealthRecoverRate, - IgnoreDamageCap, - IgnorePassiveDefense, - ImmuneTo, - ImmuneToAttack, - ImmuneToPowers, - Invisible, - ItemName, - Mana, - ManaFull, - ManaRecoverRate, - MaxDamage, - MeleeDamageModifier, - MinDamage, - NoMod, - OCV, - Parry, - PassiveDefense, - PowerCost, - PowerCostHealth, - PowerDamageModifier, - ProtectionFrom, - Resistance, - ScaleHeight, - ScaleWidth, - ScanRange, - SeeInvisible, - Silenced, - Skill, - Slay, - Speed, - SpireBlock, - Stamina, - StaminaFull, - StaminaRecoverRate, - Stunned, - Value, - WeaponProc, - WeaponRange, - WeaponSpeed; + Ambidexterity(mbEnums.ModBehaviorType.Flag), + AnimOverride(mbEnums.ModBehaviorType.MapIntToInts), + ArmorPiercing(mbEnums.ModBehaviorType.Standard), + AttackDelay(mbEnums.ModBehaviorType.Standard), + Attr(mbEnums.ModBehaviorType.FPSubTypeAttr), + AttrReq(mbEnums.ModBehaviorType.FPSubTypeAttr), + BlackMantle(mbEnums.ModBehaviorType.SubTypeSourceType), + BladeTrails(mbEnums.ModBehaviorType.Flag), + Block(mbEnums.ModBehaviorType.Standard), + BlockedPowerType(mbEnums.ModBehaviorType.SubTypePowerType), + BulkFactor(mbEnums.ModBehaviorType.Standard), + BulkFactorMin(mbEnums.ModBehaviorType.Standard), + CannotAttack(mbEnums.ModBehaviorType.Flag), + CannotCast(mbEnums.ModBehaviorType.Flag), + CannotCastSpell(mbEnums.ModBehaviorType.Flag), + CannotCastSkill(mbEnums.ModBehaviorType.Flag), + CannotMove(mbEnums.ModBehaviorType.Flag), + CannotTrack(mbEnums.ModBehaviorType.Flag), + Charmed(mbEnums.ModBehaviorType.Flag), + ConstrainedAmbidexterity(mbEnums.ModBehaviorType.SubTypeSkill), + DCV(mbEnums.ModBehaviorType.Standard), + DR(mbEnums.ModBehaviorType.Standard), + MeleeDamageModifier(mbEnums.ModBehaviorType.Standard), + PowerDamageModifier(mbEnums.ModBehaviorType.Standard), + DamageShield(mbEnums.ModBehaviorType.FPSubTypeDmg), + Desolid(mbEnums.ModBehaviorType.Flag), + Dodge(mbEnums.ModBehaviorType.Standard), + Durability(mbEnums.ModBehaviorType.Standard), + Encumbrance(mbEnums.ModBehaviorType.Standard), + Fade(mbEnums.ModBehaviorType.Standard), + Fly(mbEnums.ModBehaviorType.Flag), + Health(mbEnums.ModBehaviorType.DD), + HealthFull(mbEnums.ModBehaviorType.Standard), + HealthRecoverRate(mbEnums.ModBehaviorType.Standard), + IgnorePassiveDefense(mbEnums.ModBehaviorType.Flag), + ImmuneTo(mbEnums.ModBehaviorType.SubTypeSourceType), + ImmuneToAttack(mbEnums.ModBehaviorType.Flag), + ImmuneToPowers(mbEnums.ModBehaviorType.Flag), + Invisible(mbEnums.ModBehaviorType.Flag), + ItemName(mbEnums.ModBehaviorType.String), + LevelReq(mbEnums.ModBehaviorType.Standard), + Mana(mbEnums.ModBehaviorType.DD), + ManaFull(mbEnums.ModBehaviorType.Standard), + ManaRecoverRate(mbEnums.ModBehaviorType.Standard), + MaxDamage(mbEnums.ModBehaviorType.Standard), + MaxNaturalAttackDamage(mbEnums.ModBehaviorType.Standard), + MinDamage(mbEnums.ModBehaviorType.Standard), + MinNaturalAttackDamage(mbEnums.ModBehaviorType.Standard), + NoMod(mbEnums.ModBehaviorType.SubTypeMod), + NoStilled(mbEnums.ModBehaviorType.Flag), + OCV(mbEnums.ModBehaviorType.Standard), + Parry(mbEnums.ModBehaviorType.Standard), + PassiveDefense(mbEnums.ModBehaviorType.Standard), + PowerCost(mbEnums.ModBehaviorType.Standard), + PowerGrant(mbEnums.ModBehaviorType.SubTypePower), + ProjectileSpeed(mbEnums.ModBehaviorType.Standard), + ProtectionFrom(mbEnums.ModBehaviorType.SubTypeDmg), + Resistance(mbEnums.ModBehaviorType.FPSubTypeDmg), + ScaleHeight(mbEnums.ModBehaviorType.Standard), + ScaleWidth(mbEnums.ModBehaviorType.Standard), + ScanRange(mbEnums.ModBehaviorType.Standard), + SeeInvisible(mbEnums.ModBehaviorType.Flag), + Silenced(mbEnums.ModBehaviorType.Flag), + Skill(mbEnums.ModBehaviorType.FPSubTypeSkill), + Slay(mbEnums.ModBehaviorType.FPSubTypeMonster), + Sneak(mbEnums.ModBehaviorType.Flag), + Speed(mbEnums.ModBehaviorType.Standard), + Stamina(mbEnums.ModBehaviorType.DD), + StaminaFull(mbEnums.ModBehaviorType.Standard), + StaminaRecoverRate(mbEnums.ModBehaviorType.Standard), + StaminaUseWhileRunning(mbEnums.ModBehaviorType.Standard), + Stilled(mbEnums.ModBehaviorType.SubTypeSkill), + Stunned(mbEnums.ModBehaviorType.Flag), + Value(mbEnums.ModBehaviorType.Standard), + WeaponProc(mbEnums.ModBehaviorType.ProcInfo), + WeaponRange(mbEnums.ModBehaviorType.Standard), + WeaponSpeed(mbEnums.ModBehaviorType.Standard), + Weight(mbEnums.ModBehaviorType.Standard), + IgnoreDamageCap(mbEnums.ModBehaviorType.SubTypeDmg), + ExclusiveDamageCap(mbEnums.ModBehaviorType.SubTypeDmg), + DamageCap(mbEnums.ModBehaviorType.Standard), + AdjustAboveDmgCap(mbEnums.ModBehaviorType.Standard), + SpireBlock(mbEnums.ModBehaviorType.Flag), + PowerCostHealth(mbEnums.ModBehaviorType.Flag); + + public ModBehaviorType behaviorType; + + ModType(ModBehaviorType behaviorType) { + this.behaviorType = behaviorType; + } public static ModType GetModType(String modName) { ModType modType; - if (modName.isEmpty()) - return ModType.None; - - try { - modType = ModType.valueOf(modName.replace(",", "")); - } catch (Exception e) { - Logger.error(e); - return ModType.None; - } + modType = ModType.valueOf(modName.replace(",", "")); return modType; } } - public enum ModBehavior { + public enum ModBehaviorType { Behavior, Flag, MapIntToInts, diff --git a/src/engine/powers/effectmodifiers/BlockedPowerTypeEffectModifier.java b/src/engine/powers/effectmodifiers/BlockedPowerTypeEffectModifier.java index 5b9be4ba..d27e6c48 100644 --- a/src/engine/powers/effectmodifiers/BlockedPowerTypeEffectModifier.java +++ b/src/engine/powers/effectmodifiers/BlockedPowerTypeEffectModifier.java @@ -42,7 +42,7 @@ public class BlockedPowerTypeEffectModifier extends AbstractEffectModifier { for (String effect : ac.getEffects().keySet()) { Effect eff = ac.getEffects().get(effect); - ModType toBlock = ModType.None; + ModType toBlock = null; switch (this.sourceType) { case Invisible: @@ -50,6 +50,10 @@ public class BlockedPowerTypeEffectModifier extends AbstractEffectModifier { break; } + if (toBlock == null) + return; + ; + HashSet aemList = eff.getEffectModifiers(); for (AbstractEffectModifier aem : aemList) { if (aem.modType.equals(toBlock)) {