diff --git a/src/test/java/com/projectswg/holocore/headless/skills.kt b/src/test/java/com/projectswg/holocore/headless/skills.kt index 1aa34f4d8..4b16d7bb1 100644 --- a/src/test/java/com/projectswg/holocore/headless/skills.kt +++ b/src/test/java/com/projectswg/holocore/headless/skills.kt @@ -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 diff --git a/src/test/java/com/projectswg/holocore/services/gameplay/combat/command/CombatStateTest.kt b/src/test/java/com/projectswg/holocore/services/gameplay/combat/command/CombatStateTest.kt index ffd87e94b..574afdf24 100644 --- a/src/test/java/com/projectswg/holocore/services/gameplay/combat/command/CombatStateTest.kt +++ b/src/test/java/com/projectswg/holocore/services/gameplay/combat/command/CombatStateTest.kt @@ -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 } - + } \ No newline at end of file