PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Add support for average ailment stacks on capped ailments
Nessuno ha ancora preso questa issue.
- Lingua principale
- Lua
- Stelle
- 5.4k
- Fork
- 2.4k
- Merge medio
- 1g 12h
- PR unite (30g)
- 26
Descrizione
Check for duplicates
- I've checked for duplicate issues by using the search function of the issue tracker
Is your feature request related to a problem?
Ingame due to the probabilistic nature of inflicting ailments (<100% chance) your number of stacks inflicted can change between any given number e.g. 0-1 stacks for an ignite build with low chance. But as stacks are truncated at one almost always average stacks are less than one. Factoring this will give chance to inflict ailments a better indication in dps for low values.
Stacks vs Chance
Describe the solution you'd like
Proper calculation of these average stacks that is at least reasonably accurate like the simulation is. Getting a direct formula might be possible if you consider the maximum stack counts separately but it is a hard probability problem to solve.
Describe alternatives you've considered
No response
Additional context
Script to generate graph beforehand
import random
max = 1000000
chance = 0.5
intervalTime = 1/33
attackTime = 0.75
duration = 4
cap = 2
f = open("out.txt", "w")
for j in range(0, 100):
stacks = [ ]
chance = j / 100
lastAttackTime = 0
time = 0
average = 0
print(chance)
for i in range(0, max):
if lastAttackTime <= time:
lastAttackTime = time + attackTime
if random.random() < chance:
stacks.append(time)
for v in stacks:
if v + duration < time:
stacks.remove(v)
averageStack = min(cap, len(stacks))
average += averageStack
time += intervalTime
average /= max
f.write("{:.6f}".format(average))
f.write("\n")
f.close()
Sheet with data https://docs.google.com/spreadsheets/d/15rNcc18PqFRU2f9NCbd-T0WU2-d0_iGT1Tb99I9ca4c/edit?usp=sharing
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non viene indicato alcun file di implementazione, test o punto di ingresso. Inizia individuando nel codice di Path of Building il calcolo degli stack di ailment con limite e confrontalo con la simulazione fornita; il lavoro è completato quando vengono calcolati gli stack medi per gli ailment con limite e producono risultati ragionevolmente accurati con diverse probabilità di inflizione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- lua
- Ambito
- game-dev
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100