mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-01-17 00:06:00 -05:00
Merge pull request #1730 from madsboddum/removed-duplicate-headless-function
Merged adminGrantSkill and grantSkill functions, as they were identical
This commit is contained in:
@@ -26,19 +26,8 @@
|
||||
package com.projectswg.holocore.headless
|
||||
|
||||
import com.projectswg.common.network.packets.swg.zone.deltas.DeltasMessage
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Combat command /grantskill
|
||||
* @param skill the skill to grant
|
||||
*/
|
||||
fun ZonedInCharacter.grantSkill(skill: String) {
|
||||
sendCommand("grantSkill", args = skill)
|
||||
player.waitForNextPacket(DeltasMessage::class.java, 50, TimeUnit.MILLISECONDS) ?: java.lang.IllegalStateException("No known packet received")
|
||||
}
|
||||
|
||||
/**
|
||||
* Combat command /surrenderSkill
|
||||
* @param skill the skill to surrender
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
package com.projectswg.holocore.services.gameplay.combat.command
|
||||
|
||||
import com.projectswg.common.data.encodables.tangible.PvpFlag
|
||||
import com.projectswg.holocore.headless.HeadlessSWGClient
|
||||
import com.projectswg.holocore.headless.ZonedInCharacter
|
||||
import com.projectswg.holocore.headless.attack
|
||||
import com.projectswg.holocore.headless.duel
|
||||
import com.projectswg.holocore.headless.grantSkill
|
||||
import com.projectswg.holocore.headless.*
|
||||
import com.projectswg.holocore.resources.support.global.player.AccessLevel
|
||||
import com.projectswg.holocore.resources.support.objects.ObjectCreator
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject
|
||||
@@ -42,12 +38,12 @@ import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class CombatStateTest : AcceptanceTest() {
|
||||
|
||||
|
||||
private lateinit var attackerPlayer: ZonedInCharacter
|
||||
private lateinit var defenderPlayer: ZonedInCharacter
|
||||
private lateinit var attacker: CreatureObject
|
||||
private lateinit var defender: CreatureObject
|
||||
|
||||
|
||||
@BeforeEach
|
||||
fun setUp() {
|
||||
val user = generateUser(AccessLevel.DEV)
|
||||
@@ -57,76 +53,76 @@ class CombatStateTest : AcceptanceTest() {
|
||||
defenderPlayer.duel(attackerPlayer.player.creatureObject)
|
||||
attacker = attackerPlayer.player.creatureObject
|
||||
defender = defenderPlayer.player.creatureObject
|
||||
|
||||
|
||||
val attackerWeapon = ObjectCreator.createObjectFromTemplate("object/weapon/melee/special/shared_blasterfist.iff") as WeaponObject
|
||||
attackerWeapon.moveToContainer(attacker)
|
||||
attacker.equippedWeapon = attackerWeapon
|
||||
assertNotNull(attacker.equippedWeapon)
|
||||
waitForIntents()
|
||||
|
||||
|
||||
assertTrue(attacker.getPvpFlagsFor(defender).contains(PvpFlag.YOU_CAN_ATTACK))
|
||||
assertTrue(defender.getPvpFlagsFor(attacker).contains(PvpFlag.CAN_ATTACK_YOU))
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun `apply and recover from dizzy`() {
|
||||
attackerPlayer.grantSkill("combat_unarmed_master")
|
||||
|
||||
attackerPlayer.adminGrantSkill("combat_unarmed_master")
|
||||
|
||||
// Try and fail to perform dizzyRecovery, expect @cbt_spam:not_req_state_14
|
||||
|
||||
|
||||
attackerPlayer.attack(defender, "dizzyattack")
|
||||
waitForIntents()
|
||||
assertTrue(defender.hasBuff("dizzy"))
|
||||
assertTrue(defender.isStatesBitmask(CreatureState.DIZZY))
|
||||
|
||||
|
||||
// Takes way too long to test
|
||||
// Thread.sleep(10000L)
|
||||
// waitForIntents()
|
||||
// assertFalse(defender.isStatesBitmask(CreatureState.DIZZY))
|
||||
// assertFalse(defender.hasBuff("dizzy"))
|
||||
|
||||
|
||||
// Execute dizzyRecovery, expect @cbt_spam:no_dizzy_single
|
||||
// Verify Rodian innate protection
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun `apply and recover from stun`() {
|
||||
attackerPlayer.grantSkill("combat_polearm_master")
|
||||
|
||||
attackerPlayer.adminGrantSkill("combat_polearm_master")
|
||||
|
||||
// Try and fail to perform stunRecovery, expect @cbt_spam:not_req_state_12
|
||||
|
||||
|
||||
attackerPlayer.attack(defender, "stunningblow")
|
||||
waitForIntents()
|
||||
assertTrue(defender.hasBuff("stun"))
|
||||
assertTrue(defender.isStatesBitmask(CreatureState.STUNNED))
|
||||
|
||||
|
||||
// Takes way too long to test
|
||||
// Thread.sleep(10000L)
|
||||
// waitForIntents()
|
||||
// assertFalse(defender.isStatesBitmask(CreatureState.STUNNED))
|
||||
// assertFalse(defender.hasBuff("stun"))
|
||||
|
||||
|
||||
// Execute stunRecovery, expect @cbt_spam:no_stunned_single
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun `apply and recover from blind`() {
|
||||
attackerPlayer.grantSkill("combat_1hsword_master")
|
||||
|
||||
attackerPlayer.adminGrantSkill("combat_1hsword_master")
|
||||
|
||||
// Try and fail to perform blindRecovery, expect @cbt_spam:not_req_state_13
|
||||
|
||||
|
||||
attackerPlayer.attack(defender, "blindattack")
|
||||
waitForIntents()
|
||||
assertTrue(defender.hasBuff("blind"))
|
||||
assertTrue(defender.isStatesBitmask(CreatureState.BLINDED))
|
||||
|
||||
|
||||
// Takes way too long to test
|
||||
// Thread.sleep(10000L)
|
||||
// waitForIntents()
|
||||
// assertFalse(defender.isStatesBitmask(CreatureState.BLINDED))
|
||||
// assertFalse(defender.hasBuff("blind"))
|
||||
|
||||
|
||||
// Execute blindRecovery, expect @cbt_spam:no_blind_single
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user