mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-21 10:25:13 -06:00
..... lets not talk about it
This commit is contained in:
parent
0096a3fdab
commit
2f792c88a2
4 changed files with 111 additions and 33 deletions
|
|
@ -14,19 +14,30 @@ import core.game.node.entity.combat.CombatStyle
|
|||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.npc.NPCBehavior
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
val PENANCE_FIGHTER_IDS = listOf(
|
||||
//NPCs.PENANCE_FIGHTER_5040, //tutorial
|
||||
NPCs.PENANCE_FIGHTER_5044,
|
||||
NPCs.PENANCE_FIGHTER_5045,
|
||||
NPCs.PENANCE_FIGHTER_5213,
|
||||
NPCs.PENANCE_FIGHTER_5214,
|
||||
NPCs.PENANCE_FIGHTER_5215,
|
||||
NPCs.PENANCE_FIGHTER_5216,
|
||||
NPCs.PENANCE_FIGHTER_5217,
|
||||
NPCs.PENANCE_FIGHTER_5218,
|
||||
NPCs.PENANCE_FIGHTER_5219)
|
||||
NPCs.PENANCE_FIGHTER_5044,NPCs.PENANCE_FIGHTER_5045,NPCs.PENANCE_FIGHTER_5213,
|
||||
NPCs.PENANCE_FIGHTER_5214,NPCs.PENANCE_FIGHTER_5215,NPCs.PENANCE_FIGHTER_5216,
|
||||
NPCs.PENANCE_FIGHTER_5217,NPCs.PENANCE_FIGHTER_5218,NPCs.PENANCE_FIGHTER_5219)
|
||||
|
||||
data class PenanceFighterDefinition(val id: Int,val hp: Int,val attack: Int,val strength: Int, val defence: Int, val range: Int, val magic: Int){
|
||||
companion object { val BY_ID = PENANCE_FIGHTER_DEFINITIONS.associateBy { it.id } }
|
||||
}
|
||||
val PENANCE_FIGHTER_DEFINITIONS = listOf(
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5044, 28, 26, 26, 25, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5045, 29, 28, 29, 27, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5213, 32, 33, 32, 34, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5214, 37, 36, 38, 37, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5215, 38, 41, 43, 44, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5216, 49, 50, 48, 48, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5217, 50, 56, 55, 52, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5218, 55, 60, 61, 62, 1, 1),
|
||||
PenanceFighterDefinition(NPCs.PENANCE_FIGHTER_5219, 56, 71, 73, 66, 1, 1),
|
||||
)
|
||||
|
||||
class PenanceFighterNPC : NPCBehavior(*PENANCE_FIGHTER_IDS.toIntArray()) {
|
||||
override fun canBeAttackedBy(self: NPC, attacker: Entity, style: CombatStyle, shouldSendMessage: Boolean): Boolean {
|
||||
|
|
@ -66,6 +77,20 @@ class PenanceFighterNPC : NPCBehavior(*PENANCE_FIGHTER_IDS.toIntArray()) {
|
|||
self.properties.combatPulse.style = CombatStyle.MELEE
|
||||
self.isAggressive = true
|
||||
|
||||
self.properties.defenceAnimation = Animation(5096)
|
||||
self.properties.attackAnimation = Animation(5097)
|
||||
self.properties.deathAnimation = Animation(5098)
|
||||
self.properties.attackSpeed = 4
|
||||
|
||||
val definition = PenanceFighterDefinition.BY_ID[self.id] ?: return
|
||||
|
||||
self.getSkills().setStaticLevel(Skills.ATTACK, definition.attack)
|
||||
self.getSkills().setStaticLevel(Skills.STRENGTH, definition.strength)
|
||||
self.getSkills().setStaticLevel(Skills.DEFENCE, definition.defence)
|
||||
self.getSkills().setStaticLevel(Skills.RANGE, definition.range)
|
||||
self.getSkills().setStaticLevel(Skills.MAGIC, definition.magic)
|
||||
self.getSkills().setStaticLevel(Skills.HITPOINTS, definition.hp)
|
||||
|
||||
}
|
||||
|
||||
override fun onDeathFinished(self: NPC, killer: Entity) {
|
||||
|
|
|
|||
|
|
@ -1,30 +1,37 @@
|
|||
package content.minigame.barbassault.arena.npcs
|
||||
|
||||
import content.minigame.barbassault.BarbRole
|
||||
import content.minigame.barbassault.arena.BarbAssEvent
|
||||
import content.minigame.barbassault.arena.PenanceType
|
||||
import content.minigame.barbassault.getBASession
|
||||
import core.game.node.entity.Entity
|
||||
import core.game.node.entity.combat.CombatStyle
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.npc.NPCBehavior
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.system.config.NPCConfigParser
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
val PENANCE_HEALER_IDS = intArrayOf(
|
||||
//NPCs.PENANCE_HEALER_5043,//tut
|
||||
NPCs.PENANCE_HEALER_5238,
|
||||
NPCs.PENANCE_HEALER_5239,
|
||||
NPCs.PENANCE_HEALER_5240,
|
||||
NPCs.PENANCE_HEALER_5241,
|
||||
NPCs.PENANCE_HEALER_5242,
|
||||
NPCs.PENANCE_HEALER_5243,
|
||||
NPCs.PENANCE_HEALER_5244,
|
||||
NPCs.PENANCE_HEALER_5245,
|
||||
NPCs.PENANCE_HEALER_5246
|
||||
NPCs.PENANCE_HEALER_5238,NPCs.PENANCE_HEALER_5239,NPCs.PENANCE_HEALER_5240,
|
||||
NPCs.PENANCE_HEALER_5241,NPCs.PENANCE_HEALER_5242,NPCs.PENANCE_HEALER_5243,
|
||||
NPCs.PENANCE_HEALER_5244,NPCs.PENANCE_HEALER_5245,NPCs.PENANCE_HEALER_5246
|
||||
)
|
||||
data class PenanceHealerDefinition(val id: Int,val hp: Int,val attack: Int,val strength: Int, val defence: Int, val range: Int, val magic: Int){
|
||||
companion object { val BY_ID = PENANCE_HEALER_DEFINITIONS.associateBy { it.id } }
|
||||
}
|
||||
val PENANCE_HEALER_DEFINITIONS = listOf(
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5238, 27, 9, 8, 9, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5239, 32, 13, 15, 14, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5240, 37, 20, 18, 19, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5241, 43, 22, 23, 21, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5242, 49, 26, 27, 25, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5243, 55, 30, 32, 28, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5244, 60, 33, 36, 34, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5245, 67, 40, 38, 36, 1, 1 ),
|
||||
PenanceHealerDefinition(NPCs.PENANCE_HEALER_5246, 76, 40, 44, 38, 1, 1 ),
|
||||
)
|
||||
|
||||
class PenanceHealerNPC : NPCBehavior(*PENANCE_HEALER_IDS) {
|
||||
override fun getXpMultiplier(self: NPC, attacker: Entity): Double {
|
||||
return 0.0
|
||||
|
|
@ -35,8 +42,19 @@ class PenanceHealerNPC : NPCBehavior(*PENANCE_HEALER_IDS) {
|
|||
self.isWalks = true
|
||||
self.walkRadius = 24
|
||||
self.isRespawn = false
|
||||
// self.isIgnoreAttackRestrictions(self)
|
||||
//self.getSkills().setStaticLevel(Skills.HITPOINTS,15)
|
||||
|
||||
self.properties.defenceAnimation = Animation(5105)
|
||||
self.properties.deathAnimation = Animation(5106)
|
||||
self.properties.attackAnimation = Animation(5107)
|
||||
|
||||
val definition = PenanceHealerDefinition.BY_ID[self.id] ?: return
|
||||
|
||||
self.getSkills().setStaticLevel(Skills.ATTACK, definition.attack)
|
||||
self.getSkills().setStaticLevel(Skills.STRENGTH, definition.strength)
|
||||
self.getSkills().setStaticLevel(Skills.DEFENCE, definition.defence)
|
||||
self.getSkills().setStaticLevel(Skills.RANGE, definition.range)
|
||||
self.getSkills().setStaticLevel(Skills.MAGIC, definition.magic)
|
||||
self.getSkills().setStaticLevel(Skills.HITPOINTS, definition.hp)
|
||||
|
||||
}
|
||||
//sendMessage(player,"that's the wrong type of poisoned food to use! Penalty!")
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import content.minigame.barbassault.BarbRole
|
|||
import content.minigame.barbassault.arena.BarbAssEvent
|
||||
import content.minigame.barbassault.arena.BACombatValidation
|
||||
import content.minigame.barbassault.arena.PenanceType
|
||||
import content.minigame.barbassault.arenas.monsters.PENANCE_FIGHTER_DEFINITIONS
|
||||
import content.minigame.barbassault.arenas.monsters.PenanceFighterDefinition
|
||||
import content.minigame.barbassault.getBASession
|
||||
import core.api.*
|
||||
import core.api.getItemFromEquipment
|
||||
|
|
@ -13,21 +15,33 @@ import core.game.node.entity.combat.CombatStyle
|
|||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.npc.NPCBehavior
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import core.game.world.update.flag.context.Graphics
|
||||
import org.rs09.consts.NPCs
|
||||
//20730 = rangers cast
|
||||
val PENANCE_RANGER_IDS = listOf(
|
||||
NPCs.PENANCE_RANGER_5041, // tut
|
||||
NPCs.PENANCE_RANGER_5229,
|
||||
NPCs.PENANCE_RANGER_5230,
|
||||
NPCs.PENANCE_RANGER_5231,
|
||||
NPCs.PENANCE_RANGER_5232,
|
||||
NPCs.PENANCE_RANGER_5233,
|
||||
NPCs.PENANCE_RANGER_5234,
|
||||
NPCs.PENANCE_RANGER_5235,
|
||||
NPCs.PENANCE_RANGER_5236,
|
||||
NPCs.PENANCE_RANGER_5237
|
||||
// NPCs.PENANCE_RANGER_5041, // tut
|
||||
NPCs.PENANCE_RANGER_5229,NPCs.PENANCE_RANGER_5230,NPCs.PENANCE_RANGER_5231,
|
||||
NPCs.PENANCE_RANGER_5232,NPCs.PENANCE_RANGER_5233,NPCs.PENANCE_RANGER_5234,
|
||||
NPCs.PENANCE_RANGER_5235,NPCs.PENANCE_RANGER_5236,NPCs.PENANCE_RANGER_5237
|
||||
)
|
||||
|
||||
data class PenanceRangerDefinition(val id: Int,val hp: Int,val attack: Int,val strength: Int, val defence: Int, val range: Int, val magic: Int){
|
||||
companion object { val BY_ID = PENANCE_RANGER_DEFINITIONS.associateBy { it.id } }
|
||||
}
|
||||
val PENANCE_RANGER_DEFINITIONS = listOf(
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5229, 20, 22, 1, 21, 23, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5230, 28, 27, 1, 29, 24, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5231, 29, 32, 1, 33, 34, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5232, 34, 41, 1, 42, 40, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5233, 41, 44, 1, 46, 45, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5234, 50, 51, 1, 54, 52, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5235, 50, 63, 1, 61, 62, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5236, 54, 69, 1, 68, 70, 1),
|
||||
PenanceRangerDefinition(NPCs.PENANCE_RANGER_5237, 58, 79, 1, 80, 78, 1),
|
||||
)
|
||||
|
||||
class PenanceRangerNPC : NPCBehavior(*PENANCE_RANGER_IDS.toIntArray()) {
|
||||
override fun canBeAttackedBy(self: NPC, attacker: Entity, style: CombatStyle, shouldSendMessage: Boolean): Boolean {
|
||||
if (attacker is Player && getItemFromEquipment(attacker, EquipmentSlot.CAPE)?.id != 10556) {
|
||||
|
|
@ -60,6 +74,23 @@ class PenanceRangerNPC : NPCBehavior(*PENANCE_RANGER_IDS.toIntArray()) {
|
|||
self.definition.combatDistance = 8
|
||||
self.properties.combatPulse.style = CombatStyle.RANGE
|
||||
self.isAggressive = true
|
||||
|
||||
self.properties.defenceAnimation = Animation(5396)
|
||||
self.properties.attackAnimation = Animation(5395)
|
||||
self.properties.rangeAnimation = Animation(5395)
|
||||
self.properties.deathAnimation = Animation(5397)
|
||||
self.properties.attackSpeed = 4
|
||||
|
||||
val definition = PenanceRangerDefinition.BY_ID[self.id] ?: return
|
||||
|
||||
self.getSkills().setStaticLevel(Skills.ATTACK, definition.attack)
|
||||
self.getSkills().setStaticLevel(Skills.STRENGTH, definition.strength)
|
||||
self.getSkills().setStaticLevel(Skills.DEFENCE, definition.defence)
|
||||
self.getSkills().setStaticLevel(Skills.RANGE, definition.range)
|
||||
self.getSkills().setStaticLevel(Skills.MAGIC, definition.magic)
|
||||
self.getSkills().setStaticLevel(Skills.HITPOINTS, definition.hp)
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun onDeathFinished(self: NPC, killer: Entity) {
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import core.game.node.item.GroundItemManager
|
|||
import core.game.node.entity.player.Player
|
||||
import core.game.world.map.Location
|
||||
import core.game.world.map.RegionManager
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.max
|
||||
|
||||
|
|
@ -73,6 +74,9 @@ class PenanceRunnerNPC : NPCBehavior(*PENANCE_RUNNER_IDS.toIntArray()) {
|
|||
self.setAttribute(MODE, RunnerMode.RANDOM_WALKING)
|
||||
self.setAttribute(MODE_TICKS, (0..4).random())
|
||||
self.setAttribute(HUNT_TICKS, (0..2).random())
|
||||
|
||||
self.properties.defenceAnimation = Animation(5101)
|
||||
self.properties.deathAnimation = Animation(5106)
|
||||
}
|
||||
|
||||
override fun tick(self: NPC): Boolean {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue