Phantom attractor android feature
This commit is contained in:
parent
8150481081
commit
50a6806a0e
@ -331,6 +331,20 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
serializer.accept(FALL_DAMPENERS_2)
|
||||
serializer.accept(FALL_DAMPENERS_3)
|
||||
|
||||
val PHANTOM_ATTRACTOR =
|
||||
AndroidResearchType.Builder(modLocation(MNames.PHANTOM_ATTRACTOR))
|
||||
.withExperience(20)
|
||||
.withDescription()
|
||||
.withIcon(ResearchIcons.ICON_PHANTOM_ATTRACTOR)
|
||||
.addFeatureResult(AndroidFeatures.PHANTOM_ATTRACTOR)
|
||||
.addPrerequisite(NANOBOTS)
|
||||
.addItem(MItems.PHANTOM_ATTRACTOR)
|
||||
.addItem(MItemTags.COPPER_WIRES, 2)
|
||||
.addItem(MItemTags.TRITANIUM_PLATES, 2)
|
||||
.build()
|
||||
|
||||
serializer.accept(PHANTOM_ATTRACTOR)
|
||||
|
||||
with(lang.english) {
|
||||
misc("fall_dampeners.description", "Reduces fall damage by %s%%")
|
||||
|
||||
@ -382,6 +396,9 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
|
||||
add(SHOCKWAVE, "description0", "Releases a shockwave around unit, damaging everything in small radius, as unit quickly land on ground")
|
||||
add(SHOCKWAVE, "description1", "It does not, however, help with ground impact damage!")
|
||||
|
||||
add(PHANTOM_ATTRACTOR, "Builtin Phantom Attractor")
|
||||
add(PHANTOM_ATTRACTOR, "description", "Allows unit to attract phantoms while active under same conditions as non-androids")
|
||||
|
||||
add(attackBoostList[0], "Attack Boost %s")
|
||||
add(attackBoostList[0], "description", "Increases total melee attack strength by %s%%")
|
||||
}
|
||||
|
@ -482,6 +482,7 @@ private fun androidFeatures(provider: MatteryLanguageProvider) {
|
||||
add(AndroidFeatures.NANOBOTS_ARMOR, "Nanobots Armor")
|
||||
add(AndroidFeatures.ITEM_MAGNET, "Item Magnet")
|
||||
add(AndroidFeatures.STEP_ASSIST, "Step Assist")
|
||||
add(AndroidFeatures.PHANTOM_ATTRACTOR, "Phantom Attractor")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
package ru.dbotthepony.mc.otm.android.feature
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
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.registry.AndroidFeatures
|
||||
|
||||
class PhantomAttractorFeature(android: MatteryPlayerCapability) : AndroidSwitchableFeature(AndroidFeatures.PHANTOM_ATTRACTOR, android) {
|
||||
override fun renderIcon(stack: PoseStack, x: Float, y: Float, width: Float, height: Float) {
|
||||
ResearchIcons.ICON_PHANTOM_ATTRACTOR.render(stack, x, y, width, height)
|
||||
}
|
||||
}
|
@ -44,6 +44,7 @@ import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
|
||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||
import ru.dbotthepony.mc.otm.core.*
|
||||
import ru.dbotthepony.mc.otm.menu.ExoSuitInventoryMenu
|
||||
@ -848,7 +849,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, INBTSerial
|
||||
fun canEntitySpawn(event: LivingSpawnEvent.CheckSpawn) {
|
||||
if (event.spawnReason == MobSpawnType.NATURAL && event.entity is Phantom) {
|
||||
for (ply in event.entity.level.players()) {
|
||||
if (ply.matteryPlayer?.isAndroid == true) {
|
||||
if (ply.matteryPlayer?.isAndroid == true && (ply.matteryPlayer?.getFeature(AndroidFeatures.PHANTOM_ATTRACTOR) as AndroidSwitchableFeature?)?.isActive != true) {
|
||||
if (
|
||||
ply.position.y in event.y - 36.0 .. event.y - 19.0 &&
|
||||
ply.position.x in event.x - 12.0 .. event.x + 12.0 &&
|
||||
|
@ -31,6 +31,9 @@ object ResearchIcons {
|
||||
|
||||
val ICON_EXTENDED_REACH: SkinElement
|
||||
|
||||
val KOT = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/block/ph_kitty.png").element(0f, 0f, 32f, 32f, 32f, 32f)
|
||||
val ICON_PHANTOM_ATTRACTOR = KOT
|
||||
|
||||
init {
|
||||
val grid = SkinGrid(ICONS, 18f, 18f, 7, 7)
|
||||
|
||||
|
@ -21,6 +21,7 @@ object AndroidFeatures {
|
||||
val SHOCKWAVE: AndroidFeatureType<*> by registry.register(MNames.SHOCKWAVE) { AndroidFeatureType(::ShockwaveFeature) }
|
||||
val ITEM_MAGNET: AndroidFeatureType<*> by registry.register(MNames.ITEM_MAGNET) { AndroidFeatureType(::ItemMagnetFeature) }
|
||||
val FALL_DAMPENERS: AndroidFeatureType<*> by registry.register(MNames.FALL_DAMPENERS) { AndroidFeatureType(::FallDampenersFeature) }
|
||||
val PHANTOM_ATTRACTOR: AndroidFeatureType<*> by registry.register(MNames.PHANTOM_ATTRACTOR) { AndroidFeatureType(::PhantomAttractorFeature) }
|
||||
|
||||
internal fun register(bus: IEventBus) {
|
||||
registry.register(bus)
|
||||
|
Loading…
Reference in New Issue
Block a user