Броня от накопления очков в IEEP

Версия Minecraft
1.7.10
Здравствуйте, сделал радиацию с помощью IEEP, есть очки радиации и при накопление определённого кол-ва игрока начинает убивать.

Так вот, хотел сделать защиту от радиации, но условие по типу "есть ли определённая броня на игроке и накапливать меньше очков" - я считаю костылём, есть ли другие способы уменьшения накопления очков?
 

GoogleTan

Картошка :3
1,354
43
310
у меня это прописывается в самом блоке и у меня "много" разной брони(у каждой своя степень защиты) и мне для каждой прописывать?
Можно ли в самой броне прописать защиту от радиации?
 
Последнее редактирование модератором:

GoogleTan

Картошка :3
1,354
43
310
Все идею поняла. Можно сделать чтоб при Одевании брони переставала даваться радиация(ставим какой небудь булеан на фолс), а броня будт ее давать. Таким образом проверка не каждый тик, а 1 раз.
 

GoogleTan

Картошка :3
1,354
43
310
Зато оптимизация
=------------------------------
--------------------------------
а можно сделать чтоб при одевании менялся какой нибудь инт и все, а при снимании увеличивался вновь
 
Последнее редактирование:
7,099
324
1,510
Сделай свой интерфейс, типо IRadiationReducer, в нем метод float getReduce, который как надо реализуешь в классах своей брони.
В коде, который выдает игроку радиацию проверяешь слоты брони, и если там надето то, что является IRadiationReducer, то уменьшаешь дозу радиации в соответствии с результатом getReduce
 
1,193
31
182
а я бы в классе наследнике просто создал метод getRadReduce(), и потом в методе где накапливается радиация проверял
if(itemArmorStack != null && itemArmorStack.getItem() instanceof ItemYourArmor)
ItemYourArmor antiradArmod = ...;
и тут накопление уменьшаем на antiradArmor.getRadReduce()
Но это сработает если это 1 класс брони на все итемы брони.
Если у тебя отдельный класс на каждый итем (чему я соболезную), то делать через интерфейс мб, как написал выше хохсерг
 
2,505
81
397
Лучше создать в игроке атрибут "сопротивление радиации", и при вычислении урона/очков учитывать его. А в методе брони getItemAttributeModifiers добавлять модификатор сопротивления.
 
Сверху