| Latest revision |
Your text |
| Line 1: |
Line 1: |
| | I am bad at the game so I edit the wiki |
|
| |
|
| <div class="mw-collapsible">I am bad at the game so I edit the wiki</div>
| | {{#invoke:ItemsByStat|tablefy|TechPower|+X Spirit Power|}} |
| | | {{#invoke:ItemsByStat|tablefy|BaseAttackDamagePercent|+X% Weapon Damage|}} |
| ==How to Debug in Scribunto==
| | {{#invoke:ItemsByStat|tablefy|BonusFireRate|+X% Fire Rate|}} |
| <code><nowiki>{{#invoke:Test|a|sep=;|b}}</nowiki></code>
| |
| <syntaxhighlight lang="lua">
| |
| =p.main(
| |
| mw.getCurrentFrame():newChild{
| |
| title="Module:Test",
| |
| args={"a",["sep"]=";","b"}
| |
| }
| |
| )</syntaxhighlight>
| |
| ===Simplified version===
| |
| <syntaxhighlight lang="lua">
| |
| =p.main{
| |
| args={"a",["sep"]=";","b"}
| |
| }</syntaxhighlight>
| |
| | |
| ==What's a sandbox==
| |
| ===DPS calcs===
| |
| | |
| def _calc_dps(self, dps_stats, type='burst'):
| |
| """Calculates Burst or Sustained DPS of a weapon"""
| |
| # Burst, not to be confused with burst as in burst fire, but rather
| |
| # a burst of damage where delta time is 0
| |
| # sustained has delta time of infinity
| |
| # meaning, sustained takes into account time-to-empty clip and reload time
| |
| # All reload actions have ReloadDelay played first,
| |
| # but typically only single bullet reloads have a non-zero delay
| |
| # i.e.
| |
| # ReloadDelay of .5,
| |
| # ReloadTime of 1,
| |
| # ClipSize of 10,
| |
| # =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s
| |
| # BurstInterShotInterval represents time between shots in a burst
| |
| # Abbreivated dictionary for easier access
| |
| d = dps_stats.copy()
| |
| cycle_time = 1 / d['RoundsPerSecond']
| |
| total_cycle_time = cycle_time + d['BulletsPerBurst'] * d['BurstInterShotInterval']
| |
| if type == 'burst':
| |
| return (
| |
| d['BulletDamage'] * d['BulletsPerShot'] * d['BulletsPerBurst'] / (total_cycle_time)
| |
| )
| |
| elif type == 'sustained':
| |
| if d['ReloadSingle']:
| |
| # If reloading 1 bullet at a time, reload time is actually per bullet
| |
| time_to_reload = d['ReloadTime'] * d['ClipSize']
| |
| else:
| |
| time_to_reload = d['ReloadTime']
| |
| time_to_reload += d['ReloadDelay']
| |
| time_to_empty_clip = d['ClipSize'] / d['BulletsPerBurst'] * (total_cycle_time)
| |
| # More bullets per shot doesn't consume more bullets in the clip,
| |
| # so think of it as bullet per bullet
| |
| # BulletsPerBurst does consume more bullets in the clip
| |
| damage_from_clip = d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize']
| |
| return damage_from_clip / (time_to_empty_clip + time_to_reload)
| |
| else:
| |
| ===Input for JS?===
| |
| <input id="spirit" type="number" value="100">
| |
| <input id="pi" type="number" value="14">
| |
| | |
| ===Light/Dark Mode Fiddling===
| |
| [[File:Siphon Life.png|class=abilityicon]]
| |
| [[File:Tornado.png|class=abilityicon]]
| |