游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10363|回复: 1

??????????????

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32183
发表于 2016-3-21 16:41:15 | 显示全部楼层 |阅读模式
image001.jpg

??????? Jim Anodoin Merrill?????????????????????????????????????????????????????????????BSV-Dev?????????????????????????????????

??????????????????????????????????????????????? bug????????? 10W ???????????????????????? Bug???????????????????????????????????????????????

??????????

??????????????????????? 100 ????????????????????????????????????????????????????????????????????????? bug ????????????????????????????????????????????????????????????????QA????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????

??????????????(CI)???????? 1 ????????????????????????????????????????????????????????? bug ???????? bug ? 8 ??????????????????????????????????????????

????????

?????????????????? (BVS) ???????????????????????????????????????????????????????????????????? Python ???????????? BVS ??????????????????????????????????????????????????????????????????????????????????

????????????(RPC)??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????

???????? KogMaw ???W??????????
  1. """
  2. Name: BioArcaneBarrage_DamageDealt
  3. Description: Verifies the damage modifications from Bio-Arcane Barrage
  4. Verifies:
  5.     - KogMaw deals less damage to non-lane minions
  6.     - KogMaw deals percentile magic damage
  7.     - KogMaw deals normal damage to lane minions
  8. """
  9. from KogMawAbilityTest import KogMawAbilityTest
  10. from Drivers.LOLGame.LOLGameUtils import Enumerations
  11. import KogMawStats

  12. class BioArcaneBarrage_DamageDealt (KogMawAbilityTest):
  13.     def __init__(self, championAbilities):
  14.       super(BioArcaneBarrage_DamageDealt, self).__init__(championAbilities)
  15.       self.ability = 'Bio-Arcane Barrage'
  16.       self.slot = KogMawStats.W_SLOT
  17.       self.details = 'Kog\'Maw deals reduced base-damage to non-minions with additional percentile damage'
  18.       self.playerLocation = Enumerations.SRULocations.MID_LANE
  19.       self.enemyAnnieLocation = Enumerations.SRULocations.MID_LANE.angularOffsetDegrees (45, 200)
  20.       self.enemyMinionLocation = Enumerations.SRULocations.MID_LANE.angularOffsetDegrees (45, 400)
  21.     def setup (self):
  22.       super(BioArcaneBarrage_DamageDealt, self) .setup ()
  23.       self.enemyAnnie = self.spawnEnemyAnnie (self.enemyAnnieLocation)
  24.       self.enemyMinion = self.spawnEnemyMinion (self.enemyMinionLocation)
  25.       self.teleport (self.player, self.playerLocation)
  26.       self.issueStopCommand (self.player)
  27.     def execute (self):
  28.       self.takeSnapshot ('preCast')
  29.       self.castSpellOnTarget (self.player, self.slot, self.player)
  30.       self.champAttackOnce (self.player, self.enemyAnnie)
  31.       self.takeRecentDeathRecapSnap (self.enemyAnnie, "annieRecap")
  32.       self.resetCooldowns (self.player)
  33.       self.castSpellOnTarget (self.player, self.slot, self.player)
  34.       self.champAttackOnce (self.player, self.enemyMinion)
  35.       self.takeSnapshot ('minionRecap')
  36.       self.teleport (self.player, Enumerations.SRULocations.ORDER_FOUNTAIN)
  37.     def verify (self):
  38.       # Verify that enemy Annie is taking the correct amount of damage.
  39.       annieAutoDamageEvents = self.getDeathRecapEvents (self.player, "Attack", "annieRecap")
  40.       annieAutoDamage = 0
  41.       for event in annieAutoDamageEvents:
  42.         annieAutoDamage += event.PhysicalDamage
  43.         annieSpellDamageEvents = self.getDeathRecapEvents (self.player, "Spell", "annieRecap", scriptName=KogMawStats.W_MAGIC_DAMAGE_SCRIPT_NAME)
  44.         annieSpellDamage = 0
  45.         for event in annieSpellDamageEvents:
  46.             annieSpellDamage = event.MagicDamage
  47.         AD = self.getStat (self.player, "AttackDamageItem")
  48.         expectedPercentile = (KogMawStats.W_AD_DAMAGE_RATIO * AD)/100
  49.         annieTotalHealth = self.getStat (self.enemyAnnie, "MaxHealth")
  50.         expectedPercentileDamage = self.asPostResistDamage (self.enemyAnnie, expectedPercentile * annieTotalHealth, 'MagicResist', snapshot='preCast')
  51.         self.assertInRange (annieSpellDamage, expectedPercentileDamage, expectedPercentileDamage * .1, "{} magic damage dealt. Expected ~{}".format (annieSpellDamage, expectedPercentileDamage))
  52.         expectedPhysicalDamage = self.asPostResistDamage (self.enemyAnnie, KogMawStats.W_NON_MINION_DAMAGE_RATIO * AD, 'Armor', snapshot='preCast')
  53.         self.assertInRange (annieAutoDamage, expectedPhysicalDamage, expectedPhysicalDamage * .1, "{} physical damage dealt. Expected ~{}".format (annieAutoDamage, expectedPhysicalDamage))
  54.   # Verify that enemy minion is taking the correct amount of damage.
  55.         AD = self.getStat (self.player, "AttackDamageItem")
  56.         minionExpectedPhysicalDamage = self.asPostResistDamage (self.enemyMinion, AD, 'Armor', snapshot='preCast')
  57.         expectedPercentile = (KogMawStats.W_AD_DAMAGE_RATIO * AD)/100
  58.         minionTotalHealth = self.getStat (self.enemyMinion, "MaxHealth")
  59.         minionExpectedMagicDamage = self.asPostResistDamage (self.enemyMinion, expectedPercentile * minionTotalHealth, 'MagicResist', snapshot='preCast')
  60.         expectedDamage = minionExpectedMagicDamage + minionExpectedPhysicalDamage
  61.         actualDamage = self.getDamageTaken (self.enemyMinion, 'preCast', 'minionRecap')
  62.         self.assertInRange (actualDamage, expectedDamage, 1, "{} total physical and magic damage dealt. Expected ~{}".format (annieAutoDamage, expectedDamage))
  63.     def teardown (self):
  64.         self.destroy (self.enemyAnnie)
  65.         self.destroy (self.enemyMinion)
复制代码

??KogMaw ????????????? Arcane Barrage ?????????????

image002.jpg

????????????????????????????????????????????????????????????????????????????????????????? web ???????????????????????????????????????????????????????? bug ??? issue ?????????????????????????????????????????????????????????? bug ??????

image003.gif

image004.gif
? Wood 5 ???????????????????????????????

??????????????????????????????????????????????????????????????????? BVSStaging?????????????????????????? Staging ?????????????????????????

??????????????????????????????????BVSBlocker???????????????????????????? Blocker ??????????????????????????????????????????? bug ?????????BVS Core???????????????????????????

????????

??BVS ?????????????????????????????????? API??????????????????????????????????????????????????????LOL ????????????????????????????????????????? BVS ??????????? LOL ????????????

image005.gif
??????????????????...

???????????????????????????????????????????????????????????????????????BVS ??????? Python ??? argparse ????????????????? argparse ???????????????????????????????????????????????????????????????????????
  1. class TestFactory (API.TestFactoryAPI):
  2.     requiredArgs = [ArgsObject ('driver', 'Driver you wish to use'),
  3.                     ArgsObject ('name', 'Name of the test to run')]
  4.     optionalArgs = [ArgsObject ('overrideConfig', 'Use a non-standard game.cfg', None),
  5.                     ArgsObject ('gameMetadataConfiguration', 'A string identifying which game metadata to use', None),
  6.                     ArgsObject ('listener', 'Log listener to use', None),
  7.                     ArgsObject ('mutator', 'A string name for mutator to apply to test object', None),
  8.                     ArgsObject ('testInfoID', 'Test and metadata this test run is related to', None),
  9.                     ArgsObject ('testSubsetNumber', 'The number out of total if test is subsectable', None),
  10.                     ArgsObject ('totalSubsetNumber', 'The total numbers of subsets test is split into', None)]
复制代码
???????????

????????????????????????????

??1????? ??????????????????? BVSBlocker ????????? CI ????????????????? JSON ???????? BVS???? VCS ? On-The-Fly ????

??2??? ?????????????????????????????????LoadChampsAndSkins ???????????????????????????????

??3?????  are ?????????????????????? LoadChampsAndSkins ?? loadChampionAndSkin ???????????????????????????????????????? KogMaw ???????????????????????????????????????????????

??BVS ?????????????????????????????????? BVS ?? JSON ????????????????? JSON ????????????????????????????????????????? BVS ???????????????????????????????????????????????????????????????????????????????? JSON ???????????? 10 ??????????????

??BVS ?????????????????????????????????????????????????????????????????? RPC ???????????????????????? RPC ??????????????????????????????????????????????????

????? BVS ????????????? sleep?????????????? sleep????????????????????????????????????????????????????????????????

  1. @annotate ("Wait until a unit drops the specified buff.",
  2. arguments=[argument ("unitNameOrID", "Unit name (or unique integer unit ID).", (str, int)),
  3. argument ("buff", "Buff you want to drop.", str),
  4. argument ("timeout", "How long to wait.", float, default=STANDARD_TIMEOUT),
  5. argument ("interval", "How often to check for a change.", float, default=SERVER_TICK),
  6. argument ('speedUp', 'Whether to speed the game up.', bool, default=False)],tags=["wait", "buff", "change"])
  7. def waitForBuffLost (self, unitNameOrID, buff, timeout=STANDARD_TIMEOUT, interval=SERVER_TICK, speedUp=False):
  8. conditionFunction = lambda: not self.hasBuff (unitNameOrID, buff)
  9. return self.__waitForCondition (conditionFunction, timeout=timeout, interval=interval, speedUp=speedUp)
复制代码

???????? BVS ????????????????????????????????? BVS ???????????????????????????????????????????????????????????????????????????????? Django ????? Django REST ???????? API ? BVS ????????

image006.gif
????????

??????

???????BVS ??????????????? 18 ?????????? 5500 ?????????????? 10 ??????????????? BVS ?????????????????????????50% ? critical ? blocker ??? bug ?? BVS ????????????? QA ?? PBE ?????? BVS ????????????????????????????????

???????????? Bug ??????????????????????????????? bug ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????

??via???? ?? ??

???????????????????

161

主题

1365

帖子

2749

积分

金牌会员

Rank: 6Rank: 6

积分
2749
QQ
发表于 2016-12-27 08:38:38 | 显示全部楼层
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????16????????????????????????????????????????????????????????????????????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-14 21:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表