Swim Boosters android feature, electromotor crafting component
This commit is contained in:
parent
61d799fb29
commit
313f9cb39d
@ -43,6 +43,45 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
|
||||
serializer.accept(IMPROVED_LIMBS)
|
||||
|
||||
val SWIM_BOOSTERS = AndroidResearchType.Builder(modLocation(MNames.SWIM_BOOSTERS))
|
||||
.withExperience(26)
|
||||
.withDescription(AndroidResearchDescriptions.SWIM_BOOSTERS.Instance(0))
|
||||
.addPrerequisite(IMPROVED_LIMBS)
|
||||
.addPrerequisite(AIR_BAGS)
|
||||
.addFeatureResult(AndroidFeatures.SWIM_BOOSTERS)
|
||||
.withIcon(ResearchIcons.ICON_LIMB_OVERCLOCKING)
|
||||
.addItem(MItemTags.TRITANIUM_PLATES, 2)
|
||||
.addItem(MItemTags.COPPER_WIRES, 2)
|
||||
.addItem(MItems.ELECTROMOTOR, 2)
|
||||
.build()
|
||||
|
||||
serializer.accept(SWIM_BOOSTERS)
|
||||
|
||||
val SWIM_BOOSTERS_2 = AndroidResearchType.Builder(modLocation(MNames.SWIM_BOOSTERS + "_2"))
|
||||
.withExperience(30)
|
||||
.withDescription(AndroidResearchDescriptions.SWIM_BOOSTERS.Instance(1))
|
||||
.addPrerequisite(SWIM_BOOSTERS)
|
||||
.addFeatureLevel(AndroidFeatures.SWIM_BOOSTERS)
|
||||
.withIcon(ResearchIcons.ICON_LIMB_OVERCLOCKING)
|
||||
.addItem(MItemTags.GOLD_WIRES, 8)
|
||||
.addItem(MItems.ELECTROMOTOR, 2)
|
||||
.build()
|
||||
|
||||
serializer.accept(SWIM_BOOSTERS_2)
|
||||
|
||||
val SWIM_BOOSTERS_3 = AndroidResearchType.Builder(modLocation(MNames.SWIM_BOOSTERS + "_3"))
|
||||
.withExperience(30)
|
||||
.withDescription(AndroidResearchDescriptions.SWIM_BOOSTERS.Instance(2))
|
||||
.addPrerequisite(SWIM_BOOSTERS_2)
|
||||
.addFeatureLevel(AndroidFeatures.SWIM_BOOSTERS)
|
||||
.withIcon(ResearchIcons.ICON_LIMB_OVERCLOCKING)
|
||||
.addItem(MItemTags.CARBON_PLATES, 8)
|
||||
.addItem(MItemTags.TRITANIUM_NUGGETS, 4)
|
||||
.addItem(MItemTags.COPPER_WIRES, 2)
|
||||
.build()
|
||||
|
||||
serializer.accept(SWIM_BOOSTERS_3)
|
||||
|
||||
val STEP_ASSIST = AndroidResearchType.Builder(modLocation(MNames.STEP_ASSIST))
|
||||
.withExperience(24)
|
||||
.addFeatureResult(AndroidFeatures.STEP_ASSIST)
|
||||
@ -384,7 +423,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
}
|
||||
|
||||
add(limbList[0], "Limb Overclocking %s") {
|
||||
russian("Разгон Конечностей %s")
|
||||
russian("Разгон конечностей %s")
|
||||
}
|
||||
|
||||
add(limbList[0], "description", "Boosts mobility by %s%% and attack speed by %s%%") {
|
||||
@ -392,7 +431,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
}
|
||||
|
||||
add(AIR_BAGS, "Air Bags") {
|
||||
russian("Воздушные Мешки")
|
||||
russian("Воздушные мешки")
|
||||
}
|
||||
add(NANOBOTS, "Nanobots") {
|
||||
russian("Наноботы")
|
||||
@ -415,7 +454,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
}
|
||||
|
||||
add(NANOBOTS_ARMOR, "Nanobots Armor") {
|
||||
russian("Броня из Наноботов")
|
||||
russian("Броня из наноботов")
|
||||
}
|
||||
add(NANOBOTS_ARMOR, "description", "Allows nanobots to align themselves in cell shape, reducing incoming damage by a %% by absorbing impacts") {
|
||||
russian("Позволяет наноботам выстраиваться в клеточную структуру, уменьшая внешний урон на определённый проект путём поглощения ударов")
|
||||
@ -429,35 +468,50 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
}
|
||||
|
||||
add(armorStrengthList[0], "Nanobots Armor Strength %s") {
|
||||
russian("Сила Слоя Брони Наноботов %s")
|
||||
russian("Сила слоя брони наноботов %s")
|
||||
}
|
||||
add(armorStrengthList[0], "description", "Increases impact absorption strength of nanobots") {
|
||||
russian("Увеличивает поглощающею силу брони наноботов")
|
||||
}
|
||||
|
||||
add(EXTENDED_REACH, "Extended Reach") {
|
||||
russian("Удлинённые Манипуляторы")
|
||||
russian("Удлинённые манипуляторы")
|
||||
}
|
||||
add(EXTENDED_REACH, "description", "Increases block interaction distance") {
|
||||
russian("Увеличивает радиус взаимодействия с блоками")
|
||||
}
|
||||
|
||||
add(IMPROVED_LIMBS, "Improved Limbs") {
|
||||
russian("Улучшенные Конечности")
|
||||
russian("Улучшенные конечности")
|
||||
}
|
||||
add(IMPROVED_LIMBS, "description", "Allows limbs to be upgraded") {
|
||||
russian("Позволяет улучшать конечности")
|
||||
}
|
||||
|
||||
add(SWIM_BOOSTERS, "Swim Boosters") {
|
||||
russian("Плавательные лопасти")
|
||||
}
|
||||
add(SWIM_BOOSTERS, "description", "Increases swimming speed by %s%%") {
|
||||
russian("Ускоряет скорость плавания на %s%%")
|
||||
}
|
||||
|
||||
add(SWIM_BOOSTERS_2, "Swim Boosters 2") {
|
||||
russian("Плавательные Лопасти 2")
|
||||
}
|
||||
|
||||
add(SWIM_BOOSTERS_3, "Swim Boosters 3") {
|
||||
russian("Плавательные Лопасти 3")
|
||||
}
|
||||
|
||||
add(STEP_ASSIST, "Step Assist") {
|
||||
russian("Помощь Подъёма")
|
||||
russian("Помощь подъёма")
|
||||
}
|
||||
add(STEP_ASSIST, "description", "Allows unit to step up whole blocks") {
|
||||
russian("Позволяет переступать полные блоки")
|
||||
}
|
||||
|
||||
add(ITEM_MAGNET, "Item Magnet") {
|
||||
russian("Предметный Магнит")
|
||||
russian("Предметный магнит")
|
||||
}
|
||||
add(ITEM_MAGNET, "description0", "Pulls nearby items while active") {
|
||||
russian("Притягивает ближайшие предметы пока активен")
|
||||
|
@ -605,6 +605,7 @@ private fun items(provider: MatteryLanguageProvider) {
|
||||
add(MItems.ADVANCED_CONTROL_CIRCUIT, "Advanced Control Circuit")
|
||||
add(MItems.QUANTUM_TRANSCEIVER, "Quantum Transceiver")
|
||||
add(MItems.ELECTROMAGNET, "Electromagnet")
|
||||
add(MItems.ELECTROMOTOR, "Electromotor")
|
||||
add(MItems.MIRROR_COMPOUND, "Mirror Compound")
|
||||
add(MItems.MIRROR, "Mirror")
|
||||
add(MItems.MIRROR, "description", "I can clearly see my own reflection in this mirror")
|
||||
@ -704,6 +705,7 @@ private fun androidFeatures(provider: MatteryLanguageProvider) {
|
||||
add(AndroidFeatures.NIGHT_VISION, "Night Vision")
|
||||
add(AndroidFeatures.NANOBOTS_ARMOR, "Nanobots Armor")
|
||||
add(AndroidFeatures.ITEM_MAGNET, "Item Magnet")
|
||||
add(AndroidFeatures.SWIM_BOOSTERS, "Swim Boosters")
|
||||
add(AndroidFeatures.STEP_ASSIST, "Step Assist")
|
||||
add(AndroidFeatures.JUMP_BOOST, "Jump Boost")
|
||||
add(AndroidFeatures.ENDER_TELEPORTER, "Ender Teleporter")
|
||||
|
@ -607,6 +607,7 @@ private fun items(provider: MatteryLanguageProvider) {
|
||||
add(MItems.ADVANCED_CONTROL_CIRCUIT, "Продвинутая схема управления")
|
||||
add(MItems.QUANTUM_TRANSCEIVER, "Квантовый передатчик")
|
||||
add(MItems.ELECTROMAGNET, "Электромагнит")
|
||||
add(MItems.ELECTROMOTOR, "Электромотор")
|
||||
add(MItems.MIRROR_COMPOUND, "Набор выплавки зеркала")
|
||||
add(MItems.MIRROR, "Зеркало")
|
||||
add(MItems.MIRROR, "description", "Я могу очень отчётливо видеть своё отражение в этом зеркале")
|
||||
@ -706,6 +707,7 @@ private fun androidFeatures(provider: MatteryLanguageProvider) {
|
||||
add(AndroidFeatures.NIGHT_VISION, "Ночное зрение")
|
||||
add(AndroidFeatures.NANOBOTS_ARMOR, "Броня из наноботов")
|
||||
add(AndroidFeatures.ITEM_MAGNET, "Предметный магнит")
|
||||
add(AndroidFeatures.SWIM_BOOSTERS, "Плавательные лопасти")
|
||||
add(AndroidFeatures.STEP_ASSIST, "Помощник подъёма")
|
||||
add(AndroidFeatures.JUMP_BOOST, "Усилитель прыжка")
|
||||
add(AndroidFeatures.ENDER_TELEPORTER, "Телепортатор края")
|
||||
|
@ -161,7 +161,14 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
||||
|
||||
MatteryRecipe(MItems.ELECTROMAGNET, category = RecipeCategory.MISC)
|
||||
.row(MItemTags.COPPER_WIRES, Tags.Items.INGOTS_IRON, MItemTags.COPPER_WIRES)
|
||||
.unlockedBy(Tags.Items.ENDER_PEARLS)
|
||||
.unlockedBy(Tags.Items.INGOTS_IRON)
|
||||
.build(consumer)
|
||||
|
||||
MatteryRecipe(MItems.ELECTROMOTOR, category = RecipeCategory.MISC)
|
||||
.rowB(MItems.ELECTROMAGNET)
|
||||
.row(MItems.ELECTROMAGNET, Tags.Items.INGOTS_IRON, MItems.ELECTROMAGNET)
|
||||
.row(MItemTags.COPPER_WIRES, Tags.Items.INGOTS_IRON, MItemTags.COPPER_WIRES)
|
||||
.unlockedBy(MItems.ELECTROMAGNET)
|
||||
.build(consumer)
|
||||
|
||||
MatteryRecipe(MItems.ENERGY_SERVO, category = RecipeCategory.MISC)
|
||||
|
@ -43,6 +43,14 @@ object AndroidResearchDescriptions {
|
||||
)) }
|
||||
}
|
||||
|
||||
val SWIM_BOOSTERS: AndroidResearchDescription.Leveled by registrar.register("swim_boosters") {
|
||||
AndroidResearchDescription.Leveled { _, list, level ->
|
||||
list.add(TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.swim_boosters.description",
|
||||
TextComponent("%.1f".format(AndroidConfig.SWIM_BOOSTERS * (1 + level) * 100.0)).withStyle(ChatFormatting.YELLOW)
|
||||
)) }
|
||||
}
|
||||
|
||||
val ITEM_MAGNET: AndroidResearchDescription.Singleton by registrar.register("item_magnet") {
|
||||
AndroidResearchDescription.singleton { TranslatableComponent("otm.gui.power_cost_per_tick", AndroidConfig.Magnet.POWER_DRAW.formatPower(formatAsReadable = ShiftPressedCond).copy().withStyle(ChatFormatting.YELLOW)) }
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package ru.dbotthepony.mc.otm.android.feature
|
||||
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeModifier
|
||||
import net.minecraftforge.common.ForgeMod
|
||||
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability
|
||||
import ru.dbotthepony.mc.otm.client.render.ResearchIcons
|
||||
import ru.dbotthepony.mc.otm.config.AndroidConfig
|
||||
import ru.dbotthepony.mc.otm.core.math.RGBAColor
|
||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
||||
import java.util.*
|
||||
|
||||
class SwimBoostersFeature(android: MatteryPlayerCapability) : AndroidSwitchableFeature(AndroidFeatures.SWIM_BOOSTERS, android) {
|
||||
override fun applyModifiers() {
|
||||
if (!ForgeMod.SWIM_SPEED.isPresent || !isActive)
|
||||
return
|
||||
|
||||
val attr = ply.getAttribute(ForgeMod.SWIM_SPEED.get()) ?: return
|
||||
|
||||
attr.removeModifier(MODIFIER_ID)
|
||||
attr.addPermanentModifier(AttributeModifier(MODIFIER_ID, type.displayName.toString(), (level + 1) * AndroidConfig.SWIM_BOOSTERS, AttributeModifier.Operation.ADDITION))
|
||||
}
|
||||
|
||||
override fun removeModifiers() {
|
||||
if (!ForgeMod.SWIM_SPEED.isPresent)
|
||||
return
|
||||
|
||||
ply.getAttribute(ForgeMod.SWIM_SPEED.get())?.removeModifier(MODIFIER_ID)
|
||||
}
|
||||
|
||||
override fun renderIcon(graphics: GuiGraphics, x: Float, y: Float, width: Float, height: Float, color: RGBAColor) {
|
||||
ResearchIcons.ICON_LIMB_OVERCLOCKING.render(graphics, x, y, width, height, color = color)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val MODIFIER_ID = UUID.fromString("4a3ffa46-47a8-a03f-857d-f5c2b2c8f2f6")
|
||||
}
|
||||
}
|
@ -68,6 +68,10 @@ object AndroidConfig : AbstractConfig("androids") {
|
||||
.comment("First, fall damage is reduced by flat resistance (this), then reduced by percentage resistance")
|
||||
.defineInRange("FALL_DAMAGE_REDUCTION_PER_LEVEL_F", 1.5, 0.0, Float.MAX_VALUE.toDouble())
|
||||
|
||||
val SWIM_BOOSTERS: Double by builder
|
||||
.comment("Increase per level")
|
||||
.defineInRange("SWIM_BOOSTERS", 0.25, 0.0, Float.MAX_VALUE.toDouble())
|
||||
|
||||
object EnderTeleporter {
|
||||
init {
|
||||
builder.comment("Ender Teleporter ability").push("EnderTeleporter")
|
||||
|
@ -12,6 +12,7 @@ object AndroidFeatures {
|
||||
|
||||
val AIR_BAGS: AndroidFeatureType<DummyAndroidFeature> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::DummyAndroidFeature) }
|
||||
val STEP_ASSIST: AndroidFeatureType<StepAssistFeature> by registry.register(MNames.STEP_ASSIST) { AndroidFeatureType(::StepAssistFeature) }
|
||||
val SWIM_BOOSTERS: AndroidFeatureType<SwimBoostersFeature> by registry.register(MNames.SWIM_BOOSTERS) { AndroidFeatureType(::SwimBoostersFeature) }
|
||||
val LIMB_OVERCLOCKING: AndroidFeatureType<LimbOverclockingFeature> by registry.register(MNames.LIMB_OVERCLOCKING) { AndroidFeatureType(::LimbOverclockingFeature) }
|
||||
val ATTACK_BOOST: AndroidFeatureType<AttackBoostFeature> by registry.register(MNames.ATTACK_BOOST) { AndroidFeatureType(::AttackBoostFeature) }
|
||||
val NANOBOTS_REGENERATION: AndroidFeatureType<NanobotsRegenerationFeature> by registry.register(MNames.NANOBOTS_REGENERATION) { AndroidFeatureType(::NanobotsRegenerationFeature) }
|
||||
|
@ -452,6 +452,7 @@ object MItems {
|
||||
|
||||
val QUANTUM_TRANSCEIVER: Item by registry.register("quantum_transceiver") { Item(DEFAULT_PROPERTIES) }
|
||||
val ELECTROMAGNET: Item by registry.register("electromagnet") { Item(DEFAULT_PROPERTIES) }
|
||||
val ELECTROMOTOR: Item by registry.register("electromotor") { Item(DEFAULT_PROPERTIES) }
|
||||
val MIRROR_COMPOUND: Item by registry.register("mirror_compound") { Item(DEFAULT_PROPERTIES) }
|
||||
val MIRROR: Item by registry.register("mirror") { object : Item(DEFAULT_PROPERTIES) {
|
||||
override fun appendHoverText(
|
||||
@ -488,6 +489,7 @@ object MItems {
|
||||
|
||||
::QUANTUM_TRANSCEIVER,
|
||||
::ELECTROMAGNET,
|
||||
::ELECTROMOTOR,
|
||||
::MIRROR_COMPOUND,
|
||||
::MIRROR,
|
||||
|
||||
@ -514,6 +516,7 @@ object MItems {
|
||||
::MATTER_TRANSFORM_MATRIX,
|
||||
::QUANTUM_TRANSCEIVER,
|
||||
::ELECTROMAGNET,
|
||||
::ELECTROMOTOR,
|
||||
::MIRROR_COMPOUND,
|
||||
::MIRROR,
|
||||
|
||||
|
@ -196,6 +196,7 @@ object MNames {
|
||||
// android features and research
|
||||
const val AIR_BAGS = "air_bags"
|
||||
const val STEP_ASSIST = "step_assist"
|
||||
const val SWIM_BOOSTERS = "swim_boosters"
|
||||
|
||||
const val LIMB_OVERCLOCKING = "limb_overclocking"
|
||||
const val LIMB_OVERCLOCKING_1 = "limb_overclocking_1"
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Loading…
Reference in New Issue
Block a user