Merge pull request #1730 from madsboddum/removed-duplicate-headless-function

Merged adminGrantSkill and grantSkill functions, as they were identical
This commit is contained in:
Josh
2024-12-20 08:50:26 -06:00
committed by GitHub
2 changed files with 24 additions and 39 deletions

View File

@@ -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

View File

@@ -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
}
}