User:SerpentofSet: Difference between revisionsGive feedback
Jump to navigation
Jump to search
SerpentofSet (talk | contribs) mNo edit summary |
SerpentofSet (talk | contribs) mNo edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| 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> | |||
==How to Debug in Scribunto== | ==How to Debug in Scribunto== | ||
<code><nowiki>{{#invoke:Test|a|sep=;|b}}</nowiki></code> | <code><nowiki>{{#invoke:Test|a|sep=;|b}}</nowiki></code> | ||
| Line 24: | Line 26: | ||
# sustained has delta time of infinity | # sustained has delta time of infinity | ||
# meaning, sustained takes into account time-to-empty clip and reload time | # meaning, sustained takes into account time-to-empty clip and reload time | ||
# All reload actions have ReloadDelay played first, | # All reload actions have ReloadDelay played first, | ||
# but typically only single bullet reloads have a non-zero delay | # but typically only single bullet reloads have a non-zero delay | ||
| Line 32: | Line 33: | ||
# ClipSize of 10, | # ClipSize of 10, | ||
# =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s | # =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s | ||
# BurstInterShotInterval represents time between shots in a burst | # BurstInterShotInterval represents time between shots in a burst | ||
# Abbreivated dictionary for easier access | # Abbreivated dictionary for easier access | ||
d = dps_stats.copy() | d = dps_stats.copy() | ||
cycle_time = 1 / d['RoundsPerSecond'] | cycle_time = 1 / d['RoundsPerSecond'] | ||
total_cycle_time = cycle_time + d['BulletsPerBurst'] * d['BurstInterShotInterval'] | total_cycle_time = cycle_time + d['BulletsPerBurst'] * d['BurstInterShotInterval'] | ||
if type == 'burst': | if type == 'burst': | ||
return ( | return ( | ||
d['BulletDamage'] * d['BulletsPerShot'] * d['BulletsPerBurst'] / (total_cycle_time) | d['BulletDamage'] * d['BulletsPerShot'] * d['BulletsPerBurst'] / (total_cycle_time) | ||
) | ) | ||
elif type == 'sustained': | elif type == 'sustained': | ||
if d['ReloadSingle']: | if d['ReloadSingle']: | ||
| Line 59: | Line 55: | ||
damage_from_clip = d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] | damage_from_clip = d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] | ||
return damage_from_clip / (time_to_empty_clip + time_to_reload) | return damage_from_clip / (time_to_empty_clip + time_to_reload) | ||
else: | else: | ||
===Input for JS?=== | ===Input for JS?=== | ||
Latest revision as of 22:08, 23 October 2024
I am bad at the game so I edit the wiki
How to Debug in Scribunto
[edit | edit source]{{#invoke:Test|a|sep=;|b}}
=p.main(
mw.getCurrentFrame():newChild{
title="Module:Test",
args={"a",["sep"]=";","b"}
}
)
Simplified version
[edit | edit source]=p.main{
args={"a",["sep"]=";","b"}
}
What's a sandbox
[edit | edit source]DPS calcs
[edit | edit source] 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?
[edit | edit source]<input id="spirit" type="number" value="100"> <input id="pi" type="number" value="14">

