d2affix-0.1.2-Beta.jar
Curse Maven Snippet
What's new
# D2 Affix 更新日志 / Changelog
**版本范围 / Release range:** `0.1.0-Beta` → `0.1.2-Beta`
**日期 / Date:** 2026-07-29
**Mod ID:** `d2affix` · Minecraft 1.20.1 (Forge 47.4.10+) · Author: PyroStella
---
## English
### Added
- **Melee Aspect Enchantment system.** Four new weapon enchantments (Rarity: RARE, Max Level: 5), each adding flat elemental damage on melee hit, **+1 point per level**:
- `cold_aspect` (`d2affix:cold`), `poison_aspect` (`d2affix:poison`), `lightning_aspect` (`d2affix:lightning`), `magic_aspect` (`d2affix:magic`).
- New classes `D2AspectEnchantment` + `AspectEnchantmentHandler` (listens on `LivingHurtEvent`).
- **New damage type `d2affix:magic`** (`magic.json`), registered into `bypasses_armor`, `bypasses_cooldown`, and `on_crit` tags; replaces vanilla `magic` for the magic aspect damage.
- **Vanilla `minecraft:fire_aspect` integrated** into the same on-hit damage system (deals +1 `d2affix:fire` per level).
### Changed
- **Fire Aspect max level 2 → 5** (`FireAspectEnchantmentMixin.getMaxLevel()`).
- **Protection enchantment compatibility** (`ProtectionEnchantmentMixin.checkCompatibility()`): each protection type now conflicts **only with itself**; different protection types (protection / fire / blast / projectile) are no longer mutually exclusive. The vanilla fall-protection exception is preserved.
- **Sharpness rebalance** (`DamageEnchantmentMixin.getDamageBonus()`, `type == 0` only): damage bonus changed from `1.0 + (level-1)*0.5` to `level` (i.e. **+1 per level**). Smite (`type == 1`) and Bane (`type == 2`) are unchanged.
- **Poison potion redirection** (`MobEffectPoisonMixin`): poison damage is now dealt as `d2affix:poison` instead of vanilla `magic`; an already-poisoned entity is no longer re-applied. Tick interval follows `f(x)=25 - 0.00367816·x²` (floored to 1 tick) and damage `g(x)=0.5·x` per displayed level.
### Fixed
- **Aspect damage source corrected to the attacker** (previously mistakenly used the victim). Added anti-mis-trigger guards: `is_thorns` tag exclusion, `getDirectEntity() != attacker` check, and `AdditionalDamage.isApplying` guard.
- **Aspect status-effect duration floor of 1 second (20 ticks)** in `LivingDamageHandler` (cold slow/weakness and poison), preventing sub-second durations.
### Technical / Notes
- Added 4 Mixins (Fire Aspect, Protection, MobEffect poison, DamageEnchantment) registered in `mixins.d2affix.json`. All `@Overwrite` methods carry `@author` + `@reason` Javadoc per project convention.
---
## 中文
### 新增
- **近战附加附魔系统。** 新增 4 个武器附魔(稀有度 RARE,最大等级 5),近战命中时附加固定元素伤害,**每级 +1 点**:
- `cold_aspect`(`d2affix:cold`)、`poison_aspect`(`d2affix:poison`)、`lightning_aspect`(`d2affix:lightning`)、`magic_aspect`(`d2affix:magic`)。
- 新增类 `D2AspectEnchantment` 与 `AspectEnchantmentHandler`(监听 `LivingHurtEvent`)。
- **新增伤害类型 `d2affix:magic`**(`magic.json`),已加入 `bypasses_armor`、`bypasses_cooldown`、`on_crit` 标签;代替原版 `magic` 作为魔法附加伤害。
- **原版 `minecraft:fire_aspect` 火焰附加并入** 同一命中增伤体系(每级 +1 `d2affix:fire`)。
### 变更
- **火焰附加最大等级 2 → 5**(`FireAspectEnchantmentMixin.getMaxLevel()`)。
- **保护附魔互斥规则**(`ProtectionEnchantmentMixin.checkCompatibility()`):每种保护附魔现在仅与**自身**互斥;不同保护种类(保护 / 火焰 / 爆炸 / 弹射)不再互相排斥。保留原版摔落保护兼容例外。
- **锋利附魔平衡调整**(`DamageEnchantmentMixin.getDamageBonus()`,仅 `type == 0` 分支):伤害加成由 `1.0 + (level-1)*0.5` 改为 `level`(即**每级 +1**)。亡灵克星(`type == 1`)与节肢克星(`type == 2`)保持不变。
- **剧毒药水重定向**(`MobEffectPoisonMixin`):剧毒伤害由 `magic` 改为 `d2affix:poison`;已中毒实体不再重复施加。结算间隔遵循 `f(x)=25 - 0.00367816·x²`(封底 1 刻),伤害 `g(x)=0.5·x`(按显示等级)。
### 修复
- **附加伤害来源修正为攻击者**(此前误用受害者)。新增防误触发机制:`is_thorns` 标签排除、`getDirectEntity() != attacker` 判定、以及 `AdditionalDamage.isApplying` 守卫。
- **附加状态效果时长下限为 1 秒(20 刻)**(`LivingDamageHandler` 的寒冷缓慢/虚弱与中毒),防止不足 1 秒的异常时长。
### 技术说明
- 新增 4 个 Mixin(火焰附加、保护、剧毒 MobEffect、DamageEnchantment),已在 `mixins.d2affix.json` 注册。所有 `@Overwrite` 方法均按项目约定携带 `@author` + `@reason` 注释。
---
> **Compatibility note / 兼容性提示:** The vanilla enchantment rebalances (Fire Aspect level cap, Protection mutual-exclusion, Sharpness curve) and the poison potion redirection are applied globally via Mixins and will affect all callers, including other mods. See the "Vanilla Behavior Overrides" section in `D2Affix_release_0.1.2-Beta.md` for the full list.
This mod has no additional files