Skip to content
This repository has been archived by the owner on May 16, 2024. It is now read-only.

Commit

Permalink
Update towers attack logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Yura2108 committed Apr 21, 2024
1 parent b7b8f2f commit 79aa2a7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.daylifecraft.minigames.minigames.instances.games.towerdefence

import com.daylifecraft.common.config.ConfigFile
import com.daylifecraft.minigames.minigames.instances.games.towerdefence.monsters.MonsterData
import net.minestom.server.coordinate.Point
import net.minestom.server.coordinate.Pos
import net.minestom.server.entity.EntityCreature
import net.minestom.server.instance.Instance
import net.minestom.server.instance.block.Block
import net.minestom.server.item.Material
Expand Down Expand Up @@ -74,6 +76,7 @@ class TowerData private constructor(

var ownerData: Pair<UUID, TowerDefenceTeamInfo>? = null,
) {
var towerTargetEntity: MonsterData? = null

/**
* Returns all positions of current tower
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -469,15 +469,20 @@ class TowerDefenceInstance private constructor(
if(towerData.attackDamage == null) continue
if(towerData.attackSpeedTicks != 0 && currentTicksCount % towerData.attackSpeedTicks.toLong() != 0L) continue

val randomMonsterData = miniGameWorldInstance.instance
val nearbyMonsterData = miniGameWorldInstance.instance
.getNearbyEntities(towerData.position, towerData.attackRange.toDouble())
.filterIsInstance<EntityCreature>()
.mapNotNull { getMonsterDataByLinkedEntity(it) }
.randomOrNull()

if(randomMonsterData == null) break
if(towerData.towerTargetEntity != null && nearbyMonsterData.contains(towerData.towerTargetEntity)) {
towerData.towerTargetEntity!!
.linkedEntityCreature!!.damage(DamageType.PLAYER_ATTACK, towerData.attackDamage.toFloat())
}else {
val randomMonsterData = nearbyMonsterData.randomOrNull() ?: continue

randomMonsterData.linkedEntityCreature!!.damage(DamageType.PLAYER_ATTACK, towerData.attackDamage.toFloat())
randomMonsterData.linkedEntityCreature!!.damage(DamageType.PLAYER_ATTACK, towerData.attackDamage.toFloat())

}
}
}

Expand Down

0 comments on commit 79aa2a7

Please sign in to comment.