mirror of
https://github.com/Artillex-Studios/AxMinions.git
synced 2024-12-01 13:03:43 +01:00
Add storage limit for fisher and slayer minions
This commit is contained in:
parent
9bfcb7af2e
commit
86d85ede6b
@ -17,8 +17,11 @@ class MinionDamageListener : Listener {
|
|||||||
fun onMinionKillEntityEvent(event: MinionKillEntityEvent) {
|
fun onMinionKillEntityEvent(event: MinionKillEntityEvent) {
|
||||||
val entitySize = AxMinionsPlugin.integrations.getStackerIntegration().getStackSize(event.target)
|
val entitySize = AxMinionsPlugin.integrations.getStackerIntegration().getStackSize(event.target)
|
||||||
|
|
||||||
|
val amount = ThreadLocalRandom.current().nextInt(1, 4) * entitySize
|
||||||
event.minion.setActions(event.minion.getActionAmount() + entitySize)
|
event.minion.setActions(event.minion.getActionAmount() + entitySize)
|
||||||
event.minion.setStorage(event.minion.getStorage() + ThreadLocalRandom.current().nextInt(1, 4) * entitySize)
|
if (event.minion.getStorage() + amount < event.minion.getType().getDouble("storage", event.minion.getLevel())) {
|
||||||
|
event.minion.setStorage(event.minion.getStorage() + amount * entitySize)
|
||||||
|
}
|
||||||
|
|
||||||
Scheduler.get().runLaterAt(event.target.location, {
|
Scheduler.get().runLaterAt(event.target.location, {
|
||||||
event.target.location.world!!.getNearbyEntities(event.target.location, 4.0, 4.0, 4.0).filterIsInstance<Item>().fastFor { item ->
|
event.target.location.world!!.getNearbyEntities(event.target.location, 4.0, 4.0, 4.0).filterIsInstance<Item>().fastFor { item ->
|
||||||
|
@ -76,7 +76,9 @@ class FisherMinionType : MinionType("fisher", AxMinionsPlugin.INSTANCE.getResour
|
|||||||
val xp = ThreadLocalRandom.current().nextInt(6) + 1
|
val xp = ThreadLocalRandom.current().nextInt(6) + 1
|
||||||
|
|
||||||
minion.addToContainerOrDrop(loot)
|
minion.addToContainerOrDrop(loot)
|
||||||
minion.setStorage(minion.getStorage() + xp)
|
if (minion.getStorage() + xp < minion.getType().getDouble("storage", minion.getLevel())) {
|
||||||
|
minion.setStorage(minion.getStorage() + xp)
|
||||||
|
}
|
||||||
minion.setActions(minion.getActionAmount() + 1)
|
minion.setActions(minion.getActionAmount() + 1)
|
||||||
minion.damageTool()
|
minion.damageTool()
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,9 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
|
|||||||
when (getConfig().getString("mode").lowercase(Locale.ENGLISH)) {
|
when (getConfig().getString("mode").lowercase(Locale.ENGLISH)) {
|
||||||
"sphere" -> {
|
"sphere" -> {
|
||||||
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false).fastFor { location ->
|
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false).fastFor { location ->
|
||||||
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators().isChunkFullyLoaded(location)) {
|
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators()
|
||||||
|
.isChunkFullyLoaded(location)
|
||||||
|
) {
|
||||||
val gen = Main.getPlacedGenerators().getLoaded(location)
|
val gen = Main.getPlacedGenerators().getLoaded(location)
|
||||||
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
||||||
|
|
||||||
@ -100,7 +102,9 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
|
|||||||
asyncExecutor!!.execute {
|
asyncExecutor!!.execute {
|
||||||
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false)
|
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false)
|
||||||
.fastFor { location ->
|
.fastFor { location ->
|
||||||
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators().isChunkFullyLoaded(location)) {
|
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators()
|
||||||
|
.isChunkFullyLoaded(location)
|
||||||
|
) {
|
||||||
val gen = Main.getPlacedGenerators().getLoaded(location)
|
val gen = Main.getPlacedGenerators().getLoaded(location)
|
||||||
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
||||||
|
|
||||||
@ -127,7 +131,9 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
|
|||||||
} else {
|
} else {
|
||||||
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false)
|
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false)
|
||||||
.fastFor { location ->
|
.fastFor { location ->
|
||||||
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators().isChunkFullyLoaded(location)) {
|
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators()
|
||||||
|
.isChunkFullyLoaded(location)
|
||||||
|
) {
|
||||||
val gen = Main.getPlacedGenerators().getLoaded(location)
|
val gen = Main.getPlacedGenerators().getLoaded(location)
|
||||||
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
||||||
|
|
||||||
@ -154,7 +160,9 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
|
|||||||
"line" -> {
|
"line" -> {
|
||||||
faces.fastFor {
|
faces.fastFor {
|
||||||
LocationUtils.getAllBlocksFacing(minion.getLocation(), minion.getRange(), it).fastFor { location ->
|
LocationUtils.getAllBlocksFacing(minion.getLocation(), minion.getRange(), it).fastFor { location ->
|
||||||
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators().isChunkFullyLoaded(location)) {
|
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators()
|
||||||
|
.isChunkFullyLoaded(location)
|
||||||
|
) {
|
||||||
val gen = Main.getPlacedGenerators().getLoaded(location)
|
val gen = Main.getPlacedGenerators().getLoaded(location)
|
||||||
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
||||||
|
|
||||||
@ -181,7 +189,9 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
|
|||||||
"face" -> {
|
"face" -> {
|
||||||
LocationUtils.getAllBlocksFacing(minion.getLocation(), minion.getRange(), minion.getDirection().facing)
|
LocationUtils.getAllBlocksFacing(minion.getLocation(), minion.getRange(), minion.getDirection().facing)
|
||||||
.fastFor { location ->
|
.fastFor { location ->
|
||||||
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators().isChunkFullyLoaded(location)) {
|
if (AxMinionsPlugin.integrations.kGeneratorsIntegration && Main.getPlacedGenerators()
|
||||||
|
.isChunkFullyLoaded(location)
|
||||||
|
) {
|
||||||
val gen = Main.getPlacedGenerators().getLoaded(location)
|
val gen = Main.getPlacedGenerators().getLoaded(location)
|
||||||
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
val possible = gen?.isBlockPossibleToMine(location) ?: false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user