Перейти к содержимому

salinity library

библиотека модов, добавлены некоторые атрибуты.

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
471
Подписчиков на Modrinth
0
версии
3
Обновлён
20 апреля 202620 апр.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

Коротко о моде

Библиотека — нужна другим модам
Работает на NeoForge
Для Minecraft 1.21.1, 26.1
Нужен и в игре, и на сервере
Последняя версия — 26.1_1.1.0 от 20 апреля 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.21.1, 26.1
Описание переведено автоматическиПоказать оригинал (EN)

Salinity — общая библиотека

Salinity — моя личная библиотека утилит, предоставляющая общие системы атрибутов и вспомогательные инструменты для моих модов, чтобы избежать дублирования кода.

Текущий статус возможностей

Следующие возможности доступны во всех версиях (ниже 26.1):

  • mitigation — снижение урона
  • arrow_damage — бонус к урону стрел
  • arrow_speed — множитель скорости стрел
  • attack_range — дальность атаки в ближнем бою

Следующие возможности, связанные с заклинаниями, доступны только в 26.1 и выше (отсутствуют в версиях ниже 26.1):

1. Атрибуты заклинаний
1.1 Урон заклинаний и сила заклинаний
ID атрибутаОтображаемое имяПо умолчаниюОписание
salinity:spell_damageУрон заклинаний0.0Прямой бонус к урону заклинаний (изменяемый)
salinity:spell_powerСила заклинаний0.0Вторичный множитель для всех заклинаний (изменяемый)
1.2 Сопротивление заклинаниям
ID атрибутаОтображаемое имяПо умолчаниюОписание
salinity:spell_resistanceСопротивление заклинаниям0.0Снижает входящий урон от заклинаний; чем выше — тем сильнее снижение

Все атрибуты поддерживают ванильные модификаторы (ADD_VALUE, ADD_MULTIPLIED_BASE, ADD_MULTIPLIED_TOTAL) для гибкой настройки.

2. Процесс расчёта урона
2.1 Общий процесс
Базовый урон → [Бонус к урону заклинаний] → [Бонус к силе заклинаний] → [Снижение сопротивлением заклинаниям] → Итоговый урон
2.2 Бонус к урону заклинаний

Примените атрибут spell_damage заклинателя к базовому урону, обрабатывая все модификаторы по порядку:

  1. Суммируйте все модификаторы ADD_VALUE → add
  2. Суммируйте все модификаторы ADD_MULTIPLIED_BASE → mult_base
  3. Суммируйте все модификаторы ADD_MULTIPLIED_TOTAL → mult_total

Формула:

after_spell_damage = (base_damage + add) × (1 + mult_base) × (1 + mult_total)
2.3 Бонус к силе заклинаний

Примените атрибут spell_power заклинателя к результату выше, используя тот же порядок модификаторов:

after_spell_power = (after_spell_damage + add_power) × (1 + mult_base_power) × (1 + mult_total_power)
2.4 Снижение сопротивлением заклинаниям

Примените сопротивление заклинаниям цели, также учитывая ванильную прочность брони цели (minecraft:armor_toughness):

final_damage = after_spell_power × 200 / ( resistance × (1 + toughness/10) × √(after_spell_power) + 200 )

Где:

  • resistance: значение salinity:spell_resistance цели
  • toughness: значение minecraft:armor_toughness цели (0, если отсутствует)
  • √(after_spell_power): квадратный корень из урона после бонуса к силе заклинаний

Примечание: Если сопротивление равно 0, шаг снижения пропускается и final_damage = after_spell_power.

3. Примеры таблиц снижения сопротивлением заклинаниям

Таблицы ниже предполагают, что spell_damage и spell_power заклинателя равны 0 (то есть без бонуса, after_spell_power = базовый урон), показывая только эффект сопротивления и прочности.

3.1 Прочность = 0
Базовый уронRes=5Res=10Res=20
109.278.637.60
2017.9916.3513.82
4034.5430.3924.50
3.2 Прочность = 3
Базовый уронRes=5Res=10Res=20
109.078.307.09
2017.4615.5012.65
4033.1828.3521.95
3.3 Toughness = 6
Base DamageRes=5Res=10Res=20
108.887.986.64
2016.9714.7311.66
4031.9326.5619.88
3.4 Toughness = 12
Base DamageRes=5Res=10Res=20
108.527.425.90
2016.0513.4110.08
4029.6823.5916.73

Все значения округлены до двух знаков после запятой; реальные значения в игре — числа с плавающей точкой.

4. Тип урона
  • ID типа урона: salinity:spell
  • Особенности:

    • Игнорирует броню
    • Не подвержен действию ванильных зачарований Protection
    • Не вызывает ванильные эффекты, связанные с магическим уроном (например, защиту от зелий)
5. Добавление атрибутов заклинаний предметам (пример API)
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;

ItemStack staff = new ItemStack(ModItems.DOOM_STAFF.get());

// Add +5 spell damage (ADD_VALUE)
SalinityAPI.addModifier(staff, ModAttributes.SPELL_DAMAGE, "staff_damage", 5.0, AttributeModifier.Operation.ADD_VALUE);

// Add +20% spell power (ADD_MULTIPLIED_BASE)
SalinityAPI.addModifier(staff, ModAttributes.SPELL_POWER, "staff_power", 0.2, AttributeModifier.Operation.ADD_MULTIPLIED_BASE);
6. Примечания (только особенности заклинаний)
  1. Квадратный корень в формуле сопротивления обеспечивает слабое снижение для малого урона и значительное снижение для большого урона.
  2. Если сопротивление заклинаниям цели равно 0, этап снижения полностью пропускается.
  3. spell_damage и spell_power заклинателя могут динамически изменяться через снаряжение, эффекты зелий и т. д.
Использование
  • Для Trial Catacombs: Salinity — обязательная зависимость. Если используется версия ниже 26.1, атрибуты, связанные с заклинаниями, не будут работать.
  • Для других разработчиков: Смело используйте Salinity как зависимость. Вызывайте зарегистрированные атрибуты по мере необходимости. Для использования системы заклинаний убедитесь, что версия ≥ 26.1.
Техническая информация
  • Автор: SaltLamp_Jellyfish
  • ID мода: salinity
  • Поддерживается: NeoForge 1.21.1
  • Лицензия: MIT
  • Email: Jellyfishlamp0v0@outlook.com

中文介绍

Salinity — 通用模组库

Salinity 是我为个人模组开发的通用库模组,提供跨模组常用的属性系统和工具类,避免重复造轮子。

当前功能状态

以下功能在所有版本中可用(26.1 以下版本):

  • mitigation — 减伤
  • arrow_damage — 箭矢伤害加成
  • arrow_speed — 箭矢速度倍率
  • attack_range — 近战攻击距离

以下法术相关功能仅 26.1 及以上版本提供(26.1 以下版本不包含):

1. 法术属性
1.1 法术伤害与法术强度
属性ID显示名称默认值说明
salinity:spell_damage法术伤害0.0直接对法术伤害加成(可受修饰符影响)
salinity:spell_power法术强度0.0对所有法术进行二次加成(可受修饰符影响)
1.2 法术抗性
属性ID显示名称默认值说明
salinity:spell_resistance法术抗性0.0减免所受法术伤害,值越高减伤越强

所有属性均支持原版修饰符(ADD_VALUE, ADD_MULTIPLIED_BASE, ADD_MULTIPLIED_TOTAL),可灵活配置。

2. 伤害计算流程
2.1 总流程
原始伤害 → [法术伤害加成] → [法术强度加成] → [法术抗性减伤] → 最终伤害
2.2 法术伤害加成

对原始伤害应用施法者的 spell_damage 属性,按以下顺序处理所有修饰符:

  1. 累加所有 ADD_VALUE 修饰符 → add
  2. 累加所有 ADD_MULTIPLIED_BASE 修饰符 → mult_base
  3. 累加所有 ADD_MULTIPLIED_TOTAL 修饰符 → mult_total

计算公式:

after_spell_damage = (原始伤害 + add) × (1 + mult_base) × (1 + mult_total)
2.3 法术强度加成

对上述结果应用施法者的 spell_power 属性,同样按上述顺序处理所有修饰符:

after_spell_power = (after_spell_damage + add_power) × (1 + mult_base_power) × (1 + mult_total_power)


###### 2.4 Снижение урона сопротивлением магии

К усиленному урону применяется сопротивление магии цели, при этом также учитывается ванильная твёрдость брони цели (`minecraft:armor_toughness`), формула выглядит так:

最终伤害 = after_spell_power × 200 / ( 法抗 × (1 + 韧性/10) × √(after_spell_power) + 200 )


Где:
- `法抗`: значение атрибута `salinity:spell_resistance` цели
- `韧性`: значение атрибута `minecraft:armor_toughness` цели (если отсутствует — 0)
- `√(after_spell_power)`: квадратный корень усиленного урона

> **Внимание**: когда сопротивление магии равно 0, шаг снижения урона пропускается, итоговый урон = after_spell_power.

##### 3. Таблица эффекта снижения урона сопротивлением магии (пример)

В таблицах ниже предполагается, что `spell_damage` и `spell_power` заклинателя равны значению по умолчанию 0 (то есть без бонусов, `after_spell_power` = исходный урон), показано только влияние сопротивления и твёрдости на урон.

###### 3.1 Без твёрдости (твёрдость = 0)

| Исходный урон | Сопр. магии=5 | Сопр. магии=10 | Сопр. магии=20 |
| ---- | --------- | --------- | --------- |
| 10   | **9.27**  | **8.63**  | **7.60**  |
| 20   | **17.99** | **16.35** | **13.82** |
| 40   | **34.54** | **30.39** | **24.50** |

###### 3.2 Твёрдость = 3

| Исходный урон | Сопр. магии=5 | Сопр. магии=10 | Сопр. магии=20 |
| ---- | --------- | --------- | --------- |
| 10   | **9.07**  | **8.30**  | **7.09**  |
| 20   | **17.46** | **15.50** | **12.65** |
| 40   | **33.18** | **28.35** | **21.95** |

###### 3.3 Твёрдость = 6

| Исходный урон | Сопр. магии=5 | Сопр. магии=10 | Сопр. магии=20 |
| ---- | --------- | --------- | --------- |
| 10   | **8.88**  | **7.98**  | **6.64**  |
| 20   | **16.97** | **14.73** | **11.66** |
| 40   | **31.93** | **26.56** | **19.88** |

###### 3.4 Твёрдость = 12

| Исходный урон | Сопр. магии=5 | Сопр. магии=10 | Сопр. магии=20 |
| ---- | --------- | --------- | --------- |
| 10   | **8.52**  | **7.42**  | **5.90**  |
| 20   | **16.05** | **13.41** | **10.08** |
| 40   | **29.68** | **23.59** | **16.73** |

> Все значения в таблицах округлены до двух знаков после запятой, в самой игре используются числа с плавающей точкой.

##### 4. Тип урона

- **ID типа урона**: `salinity:spell`
- **Особенности**:
  - игнорирует броню
  - не подвержен влиянию ванильных зачарований защиты
  - не вызывает ванильные эффекты, связанные с магическим уроном (например, защиту от зелий)

##### 5. Добавление магических атрибутов предметам (пример API)

```java
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;

ItemStack staff = new ItemStack(ModItems.DOOM_STAFF.get());

// 添加 +5 法术伤害(基础值)
SalinityAPI.addModifier(staff, ModAttributes.SPELL_DAMAGE, "staff_damage", 5.0, AttributeModifier.Operation.ADD_VALUE);

// 添加 +20% 法术强度(乘法)
SalinityAPI.addModifier(staff, ModAttributes.SPELL_POWER, "staff_power", 0.2, AttributeModifier.Operation.ADD_MULTIPLIED_BASE);
6. Примечания по работе магии
  1. Квадратный корень в формуле снижения урона сопротивлением магии гарантирует, что при низком уроне снижение слабое, а при высоком — заметное.
  2. Если сопротивление магии цели равно 0, расчёт снижения не производится, сразу применяется усиленный урон.
  3. Атрибуты spell_damage и spell_power заклинателя могут динамически изменяться через экипировку, эффекты зелий и т. д.
Инструкция по использованию
  • Для Trial Catacombs: Salinity — обязательная библиотека-зависимость. Если используется версия ниже v26.1, атрибуты, связанные с магией, не будут работать.
  • Для других разработчиков: можно использовать Salinity как зависимость и вызывать зарегистрированные атрибуты по необходимости. Если нужно использовать магическую систему, убедитесь, что версия ≥ 26.1.
Информация о разработке
  • Автор: 盐灯水母
  • ID мода: salinity
  • Поддерживает NeoForge 1.21.1
  • Лицензия: MIT
  • Email: Jellyfishlamp0v0@outlook.com

Частые вопросы

Как установить salinity library?

Установите NeoForge под свою версию Minecraft, скачайте salinity library под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть salinity library?

У salinity library есть сборки для Minecraft 1.21.1, 26.1.

Нужен ли salinity library на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее