Fixed bug relating to tracking current slayer task
This commit is contained in:
@@ -170,6 +170,13 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer,
|
||||
flags.setTask(task!!)
|
||||
}
|
||||
|
||||
var activeTask: Tasks? = null
|
||||
get() {
|
||||
if (hasTask())
|
||||
return flags.getTask()
|
||||
return null
|
||||
}
|
||||
|
||||
var master: Master?
|
||||
get() = flags.getMaster()
|
||||
set(master) {
|
||||
@@ -238,4 +245,4 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer,
|
||||
return getAttribute(player, "slayer-manager", SlayerManager())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1747,7 +1747,7 @@ fun getPathableRandomLocalCoordinate(target: Entity, radius: Int, center: Locati
|
||||
* @return the slayer task.
|
||||
*/
|
||||
fun getSlayerTask(player: Player): Tasks? {
|
||||
return SlayerManager.getInstance(player).task
|
||||
return SlayerManager.getInstance(player).activeTask
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1805,7 +1805,7 @@ fun getSlayerMasterLocation(player: Player): String {
|
||||
*/
|
||||
fun getSlayerTip(player: Player): Array<out String> {
|
||||
return if (hasSlayerTask(player)) {
|
||||
SlayerManager.getInstance(player).task?.tip!!
|
||||
getSlayerTask(player)?.tip!!
|
||||
} else {
|
||||
arrayOf("You need something new to hunt.")
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ open class MeleeSwingHandler
|
||||
val amuletName = (if(entity is Player) getItemFromEquipment(entity, EquipmentSlot.AMULET)?.name ?: "null" else "null").toLowerCase()
|
||||
val victimName = entity.properties.combatPulse.getVictim()?.name ?: "none"
|
||||
|
||||
if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
|
||||
if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
|
||||
effectiveAttackLevel *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer Helm/ Black Mask/ Slayer cape
|
||||
|
||||
else if (entity is Player //Salve amulet
|
||||
@@ -176,7 +176,7 @@ open class MeleeSwingHandler
|
||||
|
||||
cumulativeStr *= getSetMultiplier(entity, Skills.STRENGTH)
|
||||
|
||||
if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
|
||||
if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true)
|
||||
cumulativeStr *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer helm/black mask/skillcape
|
||||
|
||||
/*val hit = (16 + cumulativeStr + bonus / 8 + cumulativeStr * bonus * 0.016865) * modifier
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package core.net.packet
|
||||
|
||||
import content.global.skill.slayer.SlayerManager
|
||||
import core.api.*
|
||||
import core.cache.Cache
|
||||
import core.cache.def.impl.DataMap
|
||||
import core.cache.def.impl.ItemDefinition
|
||||
@@ -89,7 +90,7 @@ object QCRepository {
|
||||
//My current slayer assignment is
|
||||
else if(qcString.contains("My current Slayer assignment is")){
|
||||
val amount = SlayerManager.getInstance(player!!).amount
|
||||
val taskName = NPCDefinition.forId(SlayerManager.getInstance(player!!).task?.ids?.get(0) ?: 0).name.toLowerCase()
|
||||
val taskName = getSlayerTask(player)?.name?.toLowerCase() ?: "None"
|
||||
if(amount ?: 0 > 0){
|
||||
qcString = qcString.replace("complete", "$amount $taskName")
|
||||
}
|
||||
@@ -317,4 +318,4 @@ object QCRepository {
|
||||
private fun getQCString(index: Int): String{
|
||||
return ByteBufferUtils.getString(ByteBuffer.wrap(quickChatIndex.getFileData(1, index)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user