GithubHelp home page GithubHelp logo

wowsims / cata Goto Github PK

View Code? Open in Web Editor NEW
24.0 13.0 46.0 314.37 MB

World of Warcraft Cataclysm Classic simulations.

Home Page: https://wowsims.github.io/cata/

License: MIT License

JavaScript 0.06% Dockerfile 0.02% Go 57.76% Makefile 0.20% Shell 0.04% Python 0.95% TSQL 0.06% TypeScript 38.16% HTML 0.54% SCSS 2.23%

cata's Introduction

Welcome to the WoW Cataclysm Classic simulator! If you have questions or are thinking about contributing, join our discord to chat!

The primary goal of this project is to provide a framework that makes it easy to build a DPS sim for any class/spec, with a polished UI and accurate results. Each community will have ownership / responsibility over their portion of the sim, to ensure accuracy and that their community is represented. By having all the individual sims on the same engine, we can also have a combined 'raid sim' for testing raid compositions.

This project is licensed with MIT license. We request that anyone using this software in their own project to make sure there is a user visible link back to the original project.

Live sims can be found here.

Support our devs via Patreon.

Downloading Sim

Links for latest Sim build:

Then unzip the downloaded file, then open the unzipped file to open the sim in your browser!

Alternatively, you can choose from a specific relase on the Releases page and click the suitable link under "Assets"

Local Dev Installation

This project has dependencies on Go >=1.21, protobuf-compiler and the corresponding Go plugins, and node >= 20.

Ubuntu

Do not use apt to install any dependencies, the versions they install are all too old. Script below will curl latest versions and install them.

# Standard Go installation script
curl -O https://dl.google.com/go/go1.21.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

cd cata

# Install protobuf compiler and Go plugins
sudo apt update && sudo apt upgrade
sudo apt install protobuf-compiler
go get -u -v google.golang.org/protobuf
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

# Install node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20.13.1

# Install the npm package dependencies using node
npm install

Docker

Alternatively, install Docker and your workflow will look something like this:

git clone https://github.com/wowsims/cata.git
cd cata

# Build the docker image and install npm dependencies (only need to run these once).
docker build --tag wowsims-cata .
docker run --rm -v $(pwd):/cata wowsims-cata npm install

# Now you can run the commands as shown in the Commands sections, preceding everything with, "docker run --rm -it -p 8080:8080 -v $(pwd):/cata wowsims-cata".
# For convenience, set this as an environment variable:
CATA_CMD="docker run --rm -it -p 8080:8080 -v $(pwd):/cata wowsims-cata"

#For the watch commands assign this environment variable:
CATA_WATCH_CMD="docker run --rm -it -p 8080:8080 -p 3333:3333 -p 5173:5173 -e WATCH=1 -v $(pwd):/cata wowsims-cata"

# ... do some coding on the sim ...

# Run tests
$(echo $CATA_CMD) make test

# ... do some coding on the UI ...

# Host a local site
$(echo $CATA_CMD) make host

Windows

If you want to develop on Windows, we recommend setting up a Ubuntu virtual machine (VM) or running Docker using this guide and then following the Ubuntu or Docker instructions, respectively.

Mac OS

  • Docker is available in OS X as well, so in theory similar instructions should work for the Docker method
  • You can also use the Ubuntu setup instructions as above to run natively, with a few modifications:
    • You may need a different Go installer if go1.18.3.linux-amd64.tar.gz is not compatible with your system's architecture; you can do the Go install manually from https://go.dev/doc/install.
    • OS X uses Homebrew instead of apt, so in order to install protobuf-compiler you’ll instead need to run brew install protobuf-c (note the package name is also a little different than in apt). You might need to first update or upgrade brew.
    • The provided install script for Node will not included a precompiled binary for OS X, but it’s smart enough to compile one. Be ready for your CPU to melt on running curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash.

Commands

We use a makefile for our build system. These commands will usually be all you need while developing for this project:

# Installs a pre-commit git hook so that your go code is automatically formatted (if you don't use an IDE that supports that).  If you want to manually format go code you can run make fmt.
# Also installs `air` to reload the dev servers automatically
make setup

# Run all the tests. Currently only the backend sim has tests.
make test

# Update the expected test results. This will need to be run after adding/removing any tests, and also if test results change due to code changes.
make update-tests

# Host a local version of the UI at http://localhost:8080. Visit it by pointing a browser to
# http://localhost:8080/cata/YOUR_SPEC_HERE, where YOUR_SPEC_HERE is the directory under ui/ with your custom code.
# Recompiles the entire client before launching using `make dist/cata`
make host

# With file-watching so the server auto-restarts and recompiles on Go or TS changes:
WATCH=1 make host

# Delete all generated files (.pb.go and .ts proto files, and dist/)
make clean

# Recompiles the ts only for the given spec (e.g. make host_elemental_shaman)
make host_$spec

# Recompiles the `wowsimcata` server binary and runs it, hosting /dist directory at http://localhost:3333/cata.
# This is the fastest way to iterate on core go simulator code so you don't have to wait for client rebuilds.
# To rebuild client for a spec just do 'make $spec' and refresh browser.
make rundevserver

# With file-watching so the server auto-restarts and recompiles on Go or TS changes:
WATCH=1 make rundevserver


# The same as rundevserver, recompiles  `wowsimcata` binary and runs it on port 3333. Instead of serving content from the dist folder,
# this command also runs `vite serve` to start the Vite dev server on port 5173 (or similar) and automatically reloads the page on .ts changes in less than a second.
# This allows for more rapid development, with sub second reloads on TS changes. This combines the benefits of `WATCH=1 make rundevserver` and `WATCH=1 make host`
# to create something that allows you to work in any part of the code with ease and speed.
# This might get rolled into `WATCH=1 make rundevserver` at some point.
WATCH=1 make devmode

# This is just the same as rundevserver currently
make devmode

# This command recompiles the workers in the /ui/worker folder for easier debugging/development
# Can be used with or without WATCH command
make webworkers

# With file watch enabled
WATCH=1 make webworkers

# Creates the 'wowsimcata' binary that can host the UI and run simulations natively (instead of with wasm).
# Builds the UI and the compiles it into the binary so that you can host the sim as a server instead of wasm on the client.
# It does this by first doing make dist/cata and then copying all those files to binary_dist/cata and loading all the files in that directory into its binary on compile.
make wowsimcata

# Using the --usefs flag will instead of hosting the client built into the binary, it will host whatever code is found in the /dist directory.
# Use --wasm to host the client with the wasm simulator.
# The server also disables all caching so that refreshes should pickup any changed files in dist/. The client will still call to the server to run simulations so you can iterate more quickly on client changes.
# make dist/cata && ./wowsimcata --usefs would rebuild the whole client and host it. (you would have had to run `make devserver` to build the wowsimcata binary first.)
./wowsimcata --usefs

# Generate code for items. Only necessary if you changed the items generator.
make items

Adding a Sim

So you want to make a new sim for your class/spec! The basic steps are as follows:

Create the proto interface between Sim and UI

This project uses Google Protocol Buffers to pass data between the sim and the UI. TLDR; Describe data structures in .proto files, and the tool can generate code in any programming language. It lets us avoid repeating the same code in our Go and Typescript worlds without losing type safety.

For a new sim, make the following changes:

  • Add a new value to the Spec enum in proto/common.proto. NOTE: The name you give to this enum value is not just a name, it is used in our templating system. This guide will refer to this name as $SPEC elsewhere.
  • Add a 'proto/YOUR_CLASS.proto' file if it doesn't already exist and add data messages containing all the class/spec-specific information needed to run your sim.
  • Update the PlayerOptions.spec field in proto/api.proto to include your shiny new message as an option.

That's it! Now when you run make there will be generated .go and .ts code in sim/core/proto and ui/core/proto respectively. If you aren't familiar with protos, take a quick look at them to see what's happening.

Implement the UI

The UI and sim can be done in either order, but it is generally recommended to build the UI first because it can help with debugging. The UI is very generalized and it doesn't take much work to build an entire sim UI using our templating system. To use it:

  • Modify ui/core/proto_utils/utils.ts to include boilerplate for your $SPEC name if it isn't already there.
  • Create a directory ui/$SPEC. So if your Spec enum value was named, elemental_shaman, create a directory, ui/elemental_shaman.
  • Copy+paste from another spec's UI code.
  • Modify all the files for your spec; most of the settings are fairly obvious, if you need anything complex just ask and we can help!
  • Finally, add a rule to the makefile for the new sim site. Just copy from the other site rules already there and change the $SPEC names.

No .html is needed, it will be generated based on ui/index_template.html and the $SPEC name.

When you're ready to try out the site, run make host and navigate to http://localhost:8080/cata/$SPEC.

Implement the Sim

This step is where most of the magic happens. A few highlights to start understanding the sim code:

  • sim/wasm/main.go This file is the actual main function, for the .wasm binary used by the UI. You shouldn't ever need to touch this, but just know its here.
  • sim/core/api.go This is where the action starts. This file implements the request/response messages defined in proto/api.proto.
  • sim/core/sim.go Orchestrates everything. Main event loop is in Simulation.RunOnce.
  • sim/core/agent.go An Agent can be thought of as the 'Player', i.e. the person controlling the game. This is the interface you'll be implementing.
  • sim/core/character.go A Character holds all the stats/cooldowns/gear/etc common to any WoW character. Each Agent has a Character that it controls.

Read through the core code and some examples from other classes/specs to get a feel for what's needed. Hopefully sim/core already includes what you need, but most classes have at least 1 unique mechanic so you may need to touch core as well.

Finally, add your new sim to RegisterAll() in sim/register_all.go.

Don't forget to write unit tests! Again, look at existing tests for examples. Run them with make test when you're ready.

Launch the site

When everything is ready for release, modify ui/core/launched_sims.ts and ui/index.html to include the new spec value. This will add the sim to the dropdown menu so anyone can find it from the existing sims. This will also remove the UI warning that the sim is under development. Now tell everyone about your new sim!

Add your spec to the raid sim

Don't touch the raid sim until the individual sim is ready for launch; anything in the raid sim is publicly accessible. To add your new spec to the raid sim, do the following:

  • Add a reference to the individual sim in ui/raid/tsconfig.json. DO NOT FORGET THIS STEP or Typescipt will silently do very bad things.
  • Import the individual sim's css file from ui/raid/index.scss.
  • Update ui/raid/presets.ts to include a constructor factory in the specSimFactories variable and add configurations for new Players in the playerPresets variable.

Deployment

Thanks to the workflow defined in .github/workflows/deploy.yml, pushes to master automatically build and deploy a new site so there's nothing to do here. Sit back and appreciate your new sim!

cata's People

Contributors

1337lutz avatar alexandre-m-silva avatar b-r-a-n avatar catszeid avatar dbyena avatar felixpflaum avatar gashiraa avatar ghronkrepps avatar gjoeyjoe avatar hillerstorm avatar horatio27 avatar jarveson avatar jimmyt857 avatar kayla-glick avatar lime-green avatar lologarithm avatar nerdegghead avatar psiven avatar rosenrusinov avatar stn-ms avatar swillis57 avatar tharre avatar thebackstabi avatar thegroxempire avatar toxickevinferm avatar vigo2 avatar watcher7 avatar wumblesnarf avatar zku avatar zoristaken avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cata's Issues

Hunter Pets aren't getting the correct talents

There's several bugs with the Pet Talent selector currently. Putting this up for tracking and if someone wants to pick it up.

  1. If you switch between pet types (ferocity/cunning) the talents visually change, but the backend still seems to think that it's ferocity, so the talents you press aren't the right ones. This can be observed by swapping from Ferocity to Cunning and trying to add 3 talents point into Spiked Collar.
  2. Loading Pet talents is also not working properly, I believe we should probably reset pet talents to the default when you swap pet types.

Filters do not apply correctly/at all when viewing sources of items

Describe the bug
When selecting sources of items to filter, the filters do nothing

To Reproduce
Steps to reproduce the behavior:

  1. Click on any item, e.g., helmet
  2. Click filters
  3. Mark/unmark sources as needed

Expected behavior
The underlying list of items should be filtered based on your selected sources, but they're not

Sim Links and Screenshots
image

Desktop (please complete the following information):

  • OS: Windows
  • Browser: Chrome, tested in Firefox as well
  • Version: Unsure

Update resistance calculations to cata

Just a placeholder ticket to keep track of mechanic implementations.

  • Still need to apply the correct level constants for reistance calculations for 88 vs 85 and 85 vs 88.

Crash Report 1529238438

Link:
https://wowsims.github.io/cata/shaman/elemental/#eJztUj1oFEEU3vdm7nZvosm4KEyucbMoLAFhdtdCbXaTKmXAJnYKGiwsgmiR7tJIVJRY5UcF02ggIhYpkogh6kpOLbJcEeUUBUngGrmQKqeNL7siWKkBOz8YmPe97/veYxhx2AIJMZyHIRgFmACYAVgGeAfQAKggjCI8Rug1LRJRaRvllcIUK/ZfODN87qJVkma5DqJD3n7LVNNxiw8n+eY4E1xup4zou0Q3HJcR590CsUdW15iq5ISw5dwmU1fI1RxnLVI8ALFXPlplarrLBWOn7JATlHDdcTn1De+SaJf1eeYWyU4e7zIJ7pDgppNR7xeQQt/QiI2DPzWUwmWrxoUpv6TMuw90+bSe8aZcWs32KskXKVMjDgVy+YE2N+W9FvNugNtmFfSBfj7AxwC6X6IYQ+M/foGt/9ZxwujFIdgCuyxFu4W2oC/IFHNAwyKWwyAMNB0/CELf134YHAl0qHXgP8dD1pME5VyCajlB51mC3usN1IsJHvv2EeNWDfu+1rCKPMW2OhqfERU0sAojLB98NJ7+cTsVX2OGu46lrKoMxvtyfn/cOTW5g1fR8ZxJo67BDGtRT95aiIJZdAZUofsffwbvarwbW+Xsym98J3eV+yfIH+1pM+7J6+3oNHwHVAeQtg==

RNG Seed: 3033501083

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 15 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x113100, 0x17dee40})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/shaman.(*Shaman).applyElementalFocus.func2(0x2ea6ea0, 0x2e28d80)
/home/runner/work/cata/cata/sim/shaman/talents.go:170 +0x9
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x2ea6ea0, 0x2e28d80)
/home/runner/work/cata/cata/sim/core/aura.go:629 +0xf6
github.com/wowsims/cata/sim/shaman.(*Shaman).applyElementalFocus.func6(0x2ea7040, 0x2e28d80, 0x2f24900, 0x2f24a98)
/home/runner/work/cata/cata/sim/shaman/talents.go:205 +0xf
github.com...

[Feral] Meta gem requirement changed.

Describe the bug
https://www.wowhead.com/cata/item=41398/relentless-earthsiege-diamond
The requirement has changed (I guess), the check for red/yellow/blue is outdated.

To Reproduce
Steps to reproduce the behavior:

  1. Socket metagem
  2. Socket at least 3 red gems (checking if the new requirement is fulfilled)

Expected behavior
Sims correctly count damage and do not show the warning.

Sim Links and Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 11 23H2
  • Browser: Brave
  • Version: 1.65.123 (Chromium 124.0.6367.91)

Make combined spell metrics aggregation configurable

Is your feature request related to a problem? Please describe.
Right now aggregated spell metrics in the damage overview show incorrect DPC (Average Damage) values. For some spells this might be requried, for other's where proc's or other effects happen by pressing one button i.E. (Improved Devouring Plague)[https://www.wowhead.com/cata/spell=63626/improved-devouring-plague] Even though the instant damage needs explicit cast metrics, the average damage of devouring plague should not be reduced by those procs.

Describe the solution you'd like
Having an option within the Aura/Spell to define how the metrics for this spell are aggregated would be lovely. So each dot / spell can chose how the aggregation should happen.

Additional context
Shadow Sim. - you can go there and run a sim, then view the Result Tab and see the damage break down of Devouring plague.

Crash Report -51356722

Link:
https://wowsims.github.io/cata/hunter/beast_mastery/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnXg4GD0gSoBiQgxSy1lnMbMF5CRWphZxsAowSR1m5OIXuPucWeKjghLbqpksH6czc3EK/JvBrMT8BcjkF3i8g1nijQKYp9HFyMUu8PE9s8RpDqDMze3MEm1AXYtmgJVyCXwHyixSVGJk4OIV6D3GLDFNUokFKMPAxSNweyezEhuQDTHzENDMeRCdQASU3gh0wBt5iJWcAn9gtrMIzHoOIk/tAJEdQJJdYMJfZolmRS4GoH1/gQ44rwB0lRIHB5MBYwBTBJPWUSauCUwMowAFCBmQqsOKwYmpgLFKmUuRS15AXkqSg0mA0YDJgtmDOYIxg7kClJ4mMDLNYAQG+y4maSNjYwMjYwNjQ0NjIwNDQyMg1AXyjXQNjA8xCXBMOs8ksPg8k8SSp0wK084znWBiucDEfouJ4RETlwSjEpsQCxcTF8MLppSFzBDLIx26mBmUnjBxgnkNaQ6CEHERB8lZM0HgpL0lROSCvWIaGFyzdzx7BgTe2ButZlKIkGDVonEy0Oh0IEdbQ8pxAvqCyTKXGAAJtL3vHRwh/B/2CYwAtFqClA==

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x114a20, 0x180ed20})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/hunter.(*Hunter).applyFocusFireCD(0x34a6000)
/home/runner/work/cata/cata/sim/hunter/talents.go:439 +0x8
github.com/wowsims/cata/sim/hunter.(*Hunter).ApplyTalents(0x34a6000)
/home/runner/work/cata/cata/sim/hunter/talents.go:62 +0x32
github.com/wowsims/cata/sim/core.(*Character).applyAllEffects(0x34a6000, {0x36d1d8, 0x2c1f0e8}, 0x2fc11a0, 0x2ffff50, 0x2fc0fc0)
/home/runner/work/cata/cata/sim/core/character.go:275 +0x12
github.com/wowsims/cata/sim/core.(*Raid).applyCharacterEffects(0x2ec1080, 0x2fa9980)
/home...

Flame Cap and Potions are being used simultaniously

Describe the bug
In the current sim both flame cap and potions are being used when both are selected

To Reproduce
Steps to reproduce the behavior:
run the mage sim with both flame cap and potion selected

Expected behavior
blizzard made flame cap and potions share a cd

Sim Links and Screenshots
image
https://wowsims.github.io/cata/mage/fire/

Desktop (please complete the following information):

  • OS:windows 10
  • Browser: chrome
  • Version Version 124.0.6367.119 (Official Build) (64-bit)

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Enhance CLI (sdtin and Raidsim)

Is your feature request related to a problem? Please describe.
Currently the Raidsim has no possible way to use the Blessing parts of the sim (for example Unholy Frenzy on Player 3).
Also the only way to feed the Data into the CLI is via an File.

Describe the solution you'd like

  1. Make --infile the same as --outfile, just that it will, if not set use stdin
    1.1 Or make an additional parameter like --stdin that will used
  2. Have beside the sim CLI option, also an raidsim option, so that exported Raid's could be simulated with their settings of blessings

Describe alternatives you've considered
For the stdin part: writing the file, run CLI, remove file. Its doable, but kinda awkward
For Raidsim: nothing, as this is not really implemented in cata currently, in WotLk the Raidsim exists, but the CLI don't use this feature

Additional context
I try to build an Discord bot where Guild officers can mange the Raid (with Equipment and Blessings, etc) and everyone in the guild can then send a Request to sim their own character so they will get their singledps (as a normal sim) and the possible Raid DPS increase

Crash Report -439662070

Link:
https://wowsims.github.io/cata/death_knight/blood/#eJztU09IFGEUn/e+2XX2U+vb0WIdTMYhaVtYmJ2pUC8760mig9DFjkFFhw6il/IQa1RrRuFJdz1YhnY0y0NQHTKoLLIMVjGpkCSTijxEqPmvb2bctUKMhG79LvO93+/93nvf4xtaKoEFxyEO0AyQBIgjNCP0IQwjjCFMIFQVMCiHaqiFOugDGHNyKpGBLCj3fB3EW3Pi8Kmj9VIuo8p3oH52bYkEvqiadyBJFtpJ8DQVWdMioVtYNxemVI3EkzZL2WyXGDirBlNAZXaVawlu4lqCy01A89nsIgm8UTUQ7JCxLp5yUdVErjtMERtfJnrn8ooLcMx2x0Zer4d7r6hZ6hzQrayfc828v0102k2nuL9lJeMPttvTv+ZcfI1rpD72dZA4Jn6RxDShOWxmgQ9bQgWay7rnXS3YqOVLRA/UeGo9J6EVSOgh0lYU/uMXyPrfOiqFKmG/qCAV7qCim6ZhGroeMWyYkYhpRMJmWNfNB7hT6h9FdjmNgc40qpfSGPzwHvXWNJanRtBqH8HqZBoHURxGaRyFd/iCBAgtpJLipaL0KE40ifJTeJ/ekGUT87jKGpz1U68iUgz4tRzqoSQcaZD5XJWCHFKCtEQppnkapZJhG2/3kp+i673ELfdWlHcpZTRfy6W+W7Da18h0ezWJa9PIdkE5xCRRJuMgKE5Lc2+ZoyeXcF19j+7qAzfW9xsVrj66vLE/fsYjKxIo23+9kqP1TKJczLXAbxfke5LaJlEFWVVKnMpemTzNVI4YupMxc5fwjDyFOtHz83bEz07lll4ib1MKMqv5Ni869MtFzKbMfcKs2S2VUfjypnEQ5hC6iPtwDlktZIfPOR4Ysvyrz8na7X4noqpH+4iufr8+oxdaRR0pG0+iFS4zHC095mA0Ght6ZuNz1LiJam3oH//dwQvWZmzxI4//4Du4ka6Xh+pim+lrw1lZdZsvloLMFmOmgxzrB/CE9ko=

RNG Seed: 2945064045

When validating reforging for item 69879, the reforging could not be validated. 153
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x1033e0, 0x3952a30})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.NewItem({0x110f7, 0x0, 0x1004, {0x0, 0x0, 0x0}, 0x99})
/home/runner/work/cata/cata/sim/core/database.go:353 +0x30
github.com/wowsims/cata/sim...

Crash Report -1555404275

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnVg8gEqEGKT2s8xiZgvISaxMLeJgFWCRWsfIxS+w6jCTxEtZJbZth5mu7WDiYhF4tpcJKHylh0lisZwS254dTE+BwuwC/cuYJKbKAGUubmWS+CELlnkGlOES6Aaa0CqnxMjAxStwCSg5RUaJBSjJwMUj8G0vE1ghEAF1nlzEJPFPEi7ALtB5i0nivwLQzq69IJu3LgORr8+DyDd7QQruLGeSOCvLxQAUOLaUSYmDg92AN4AzgVHrKBPXBCaGUYAChAxI1WHF4MSwi5FNioWLSYL5EBPDCSaWC0zst5gYHjExSTC+YDrBuJAZojLSoYuZQekJEyeY15DmIAgRF3GQnDUTBE7aW0JELtgrpoHBNXtHiNROe6PVTAoREqxaNI4zjU4HcrQ1pBwnoC+YLHOJAZBA2/vewRHC/2GfwAgAD+5oeQ==

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x114020, 0x17fbd40})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x2fc2000)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/retribution.(*RetributionPaladin).Reset(0x2f8a200, 0x2fc2000)
/home/runner/work/cata/cata/sim/paladin/retribution/retribution.go:67 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x2fb0000, 0x2fc2000, {0x36ed58, 0x2f8a200})
/home/runner/work/cata/cata/sim/core/character.go:516 +0xb
github.com/wowsims/cata/sim/core.(*Party).reset(0x2f7afc0, 0x2fc2000)
/home/runner/work/cata/cata/sim/core/raid.go:76 +0x8
github.com/wowsims/cata/sim/core.(*Raid).reset(0x2eb4f20...

Sim doesn't properly reset during iterations

Currently not everything resets properly between iterations. See #326 and the error log it causes.

Affected specs (there may be more, but those error currently):

  • Blood DK
  • BM Hunter
  • Shadow (Specific tests, see below)
  • Feral
  • MM and SV Hunter
  • Combat Rogue
  • Elemental
  • Enhancement (TotemofQuakingEarth)
  • Arms (all tests)

Shadow fails

--- FAIL: TestShadow (26.04s)
--- FAIL: TestShadow/TestShadow-Settings-Troll-p1-Basic-default-NoBuffs-LongSingleTarget/ResetTest (0.05s)
test_suite.go:338: DPS did not match! Base was 16813.207 and split was 16835.357!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-Settings-Troll-p1-Basic-default-NoBuffs-LongMultiTarget/ResetTest (0.07s)
test_suite.go:338: DPS did not match! Base was 16813.207 and split was 16835.357!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-HeartofIgnacious-59514/ResetTest (0.08s)
test_suite.go:338: DPS did not match! Base was 27907.194 and split was 28019.032!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-TomeofArcanePhenomena-36972/ResetTest (0.07s)
test_suite.go:338: DPS did not match! Base was 27003.270 and split was 27121.625!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-HeartofSolace-56393/ResetTest (0.06s)
test_suite.go:338: DPS did not match! Base was 26863.136 and split was 26979.285!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-WitchingHourglass-56320/ResetTest (0.05s)
test_suite.go:338: DPS did not match! Base was 27720.496 and split was 27845.061!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-GaleofShadows-56462/ResetTest (0.07s)
test_suite.go:338: DPS did not match! Base was 27670.974 and split was 27779.882!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-VestmentsofAbsolution/ResetTest (0.06s)
test_suite.go:338: DPS did not match! Base was 13846.582 and split was 13848.450!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-RegaliaofFaith/ResetTest (0.07s)
test_suite.go:338: DPS did not match! Base was 18432.618 and split was 18436.447!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-SanctificationGarb/ResetTest (0.10s)
test_suite.go:338: DPS did not match! Base was 18594.541 and split was 18639.912!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-Zabra'sRaiment/ResetTest (0.06s)
test_suite.go:338: DPS did not match! Base was 19488.236 and split was 19540.430!. Something probably doesn't reset correctly on sim reset!
--- FAIL: TestShadow/TestShadow-AllItems-CrimsonAcolyte'sRaiment/ResetTest (0.05s)
test_suite.go:338: DPS did not match! Base was 20867.558 and split was 20878.032!. Something probably doesn't reset correctly on sim reset!

Enh fails

--- FAIL: TestEnhancement (33.35s)
--- FAIL: TestEnhancement/TestEnhancement-AllItems-TotemofQuakingEarth-47667/ResetTest (0.10s)
test_suite.go:338: DPS did not match! Base was 30467.322 and split was 30465.258!. Something probably doesn't reset correctly on sim reset!
test_suite.go:346: TPS did not match! Base was 20643.339 and split was 20642.188!. Something probably doesn't reset correctly on sim reset!

Relics are missing their gem slots

Describe the bug
All relics should now have a Prismatic gem slot, however the option is missing.

To Reproduce
Steps to reproduce the behavior:

  1. Equip any relic
  2. The slot to equip a gem in is missing

Expected behavior
You should be able to put a gem in the gem slot (non-cogwheel ones)

Sim Links and Screenshots
Untitled

Issues with generating shareable links from gearsets for other people to see. Always defaults to the P1 BIS.

Describe the bug
Issues with generating shareable links from gearsets for other people to see. Always defaults to the P1 BIS that's standard on the webpage. (The Unholy Deathknight Sim).

To Reproduce
Steps to reproduce the behavior:

  1. Create a new gearset and save it.
  2. Click Export > Link to generate a shareable link.
  3. Copy the link to clipboard and share it to other people, they should see your gearset.
  4. The shareable link dosen't include the gearset that was just created, instead it always shows the default P1 BIS from the webpage. I have tried to reset to default multiple times through "Show Sim Options" > "Restore Default"

Expected behavior
I expect the generated sharable link will include the gearset I just created and saved.

Sim Links and Screenshots
https://i.gyazo.com/5f031c7c6af90c15003ff0e8943f576d.png
Example of me creating a gearset and exporting it. The resulted link still defaults to the default P1 bis from the webpage and dosen't show my gearset.

Desktop (please complete the following information):
I was using Google Chrome.

Warrior Crit dont give 2x rage

Warrior crits dont give 2x rage

The bug is pretty simple, the formula of 2 times rage from crits is based on old wrong information.
It never gave 2x rage, and this is both present in old cata and classic cata beta.

However this is/was a bug and should be fixed, but it is still this way.
https://www.bluetracker.gg/wow/topic/eu-en/12947281615-rage-normalization-in-cataclysm/
"If the attack is a critical strike, it will generate 200% Rage." - this was never implemented.

This is how it worked and still stands true on beta despite blue posts reporting something else.
https://web.archive.org/web/20101211105141/calltoarms.blog.com/2010/11/26/rage-normalization-what-it-is-and-what-it-isnt/

Error can be found here
https://github.com/wowsims/cata/blob/master/sim/core/rage.go

Line 69-71
if result.Outcome.Matches(OutcomeCrit) { hitFactor *= 2 }

Gear Swap is currently broken

For documentation if some one wants to pick this up

Describe the bug
When we use the 'Swap' functionality after taking a snapshot of the gear, the UI doesn't change.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the Shadow Sim
  2. Click on Simulate
  3. Click on 'Save as Reference'
  4. Change an Item
  5. Click on 'Change'
  6. See nothing changed

Expected behavior
The gear should update correctly.

Desktop (please complete the following information):

  • OS: Windows
  • Browser Firefox
  • Version 124

Dark Archangel seemingly triggers a GCD

Describe the bug
The sim casts Dark Archangel for Shadow Priests about 12-13 seconds into a pull, and then does nothing for 1 second. I assume it's coded to trigger a gcd which it does not, the spell is off-gcd.

To Reproduce
Steps to reproduce the behavior:

  1. Run a sim.

Expected behavior
The spell should not trigger a gcd.

Sim Links and Screenshots

Untitled

There is a full second between the Dark Archangel at 12.53 and the Mind Blast that I'm hovering.

orc mage racial is not activated .

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report -577030771

Link:
https://wowsims.github.io/cata/druid/feral/#eJzjkuRgzGBsYGScwMi4gpFxByNjAxNjBxPjBiZGJ3YPxgLGGYyMQgxSe9hnMbMF5CRWphZxcAowSvUycQkJPJjALPFSVolt22GmefOZNCYzcvEInOxmVmLesBPM4xd4DFTxQBZJ4G43s8RpDiVmqHohgUdAFT+AZgBVQBUJCLwDKmqVU2IBCjBARO4DVU2TRIgICUzuYVbihGiC6hMSeAhU9R7FLCGB9UCzrrMji/EIbFiFcCOPwBqYi3sYudgFdncyg4TZBZZDGKIC63uYJc7KKnECnYwwhAGocUYX3BglAQ4mA8kApgimCsYOcFhqHWXimsDEMApQgJABqTqsGJwYslikmBQYdzHJ6RoZGxkYGxkZGxoZGBqBoIGRsYGhrgFQ1MDwEJMKx7H9TAJH9zNJLHzCpHDkEpPGvH4Wg7P7mSxmXWVyOH6JyePwJaYTTCwXmNhvMTE8YjrDKMGkdJyRax9jtVJuYmZeCRC7JaYWZaa6ZRalKlmVFJWm6ijlZuY55+cm5Re75RcFZRYoWZnqKJUWpwYlZsOVALlOmSVwbhKQHZKZC+QbGqLqh6gyhShxKS3KzEt3rUhNLkXoLcos8ElNLU+sBGoG6w3KTyzyT0srTi1RsjKyBAol5pUm5gQkFiXmFkM01QqxcDFxMbxgSmlkhoSaiMNCKCvSoYuZQamdmRPMa2hzEISI2zlIzpoJAiftLSEiF+wV08Dgmr3j2TMg8Mbe6BxTwde5TFVCPpnJGQreQNcqaHikFuVnJmsqBEtwaNE4hWt0OpCjreHkEQL6gvHJf7kxfYYjOfaCADgwOR4xOs5knBTzz/nX28P2ULN+2ANLWQDynO7N

RNG Seed: 816647542

MaxStacks required to set Aura stacks: Acid Spit-2
Stack Trace:
goroutine 107 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0xf3d40, 0x374d7e0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).SetStacks(0x354f520, 0x2fcc120, 0x1)
/home/runner/work/cata/cata/sim/core/aura.go:187 +0x33
github.com/wowsims/cata/sim/core.(*Aura).AddStack(...)
/home/runner/work/cata/cata/sim/core/aura.go:208
github.com/wowsims/cata/sim/core.applyDebuffEffects.func3(0x2fcc120)
/home/runner/work/cata/cata/sim/core...

Crash Report -896605743

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnVg8gEqEGKQOs8xiZgvISaxMLeJgFWCR2szIxS/w7DqTxEtZJbZth5mu/Wfi4hT4cYdJiXneSSYuHoGmvUwSD2SVmPfsYOJiF7i8m0liqgxQy789TBI/gFqAikAyvAJdQJlWOSUWII+Bi0vgLlB+iowSIwPQiGu7mJTYgOIghfwCr4GWvUfoZBfoB9rwX4GLRaB7JxOQnLUHRL4+DyLf7wYpOAA0+qwsFwOQ+eQcE9BMJQ4OdgPeAM4ERq2jTFwTmBhGAQoQMiBVhxWDE8MuRjYpFi4mCeZDTAwnmFguMLHfYmJ4xMQkwfiCKWUhM0RhpEMXM4PSEyZOMK8hzUEQIi7iIDlrJgictLeEiFywV0wDg2v2jmfPgMAbe6PVTAoREqxaNI4yjU4HcrQ1pBwnoC+YLHOJAZBA2/vewRHC/2GfwAgATYZrFQ==

RNG Seed: 3685963467

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 15 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x11dec0, 0x1913200})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x354c000)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/retribution.(*RetributionPaladin).Reset(0x2e5bfd0, 0x354c000)
/home/runner/work/cata/cata/sim/paladin/retribution/retribution.go:67 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x3536000, 0x354c000, {0x392aa0, 0x2e5bfd0})
/home/runner/work/cata/cata/sim/core/character.go:503 +0xa
github.com/wowsims/cata/sim/core.(*Party).reset(0x349efc0, 0x354c000)
/home/runner/work/cata/cata/sim/core/raid.go:76 +0x8
github.com...

Crash Report 25401003

Link:
https://wowsims.github.io/cata/shaman/restoration/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYndg5gIqAXCEGqacss5jZAnISK1OLONgF2KVWMnKxCLx7ycjFLzB7GrPBnf9QABL+dgJErtoHIt8AlbAL/DjOqMTIwCUk0A1UuwKuFiK29AAjkn6QGIvAM7ARfdOYgeZPRzf/I1iy4zaIPH4aRM4/CXLI18OMBr8QCtkFVp8AGafExsFmwBjAo7WXiauDiWEUgIGQAak6rBicmAoYm5jYpFi4mDgYdzGJ6uoaGBsbGRkYGBkaGxkaGRkaAOlDTBIcR48wCZx/yqSw9giTxt4jTBZfLzE5/LzEdIKJ8QIT6y0mhkdMbBLMQkxSDC+YUhYyQ4yPdOhiZlC6w8QJ5jWkOQhCxEUcJGfNBIGT9pYQkQv2imlgcM3e8ewZEHhjb7SYSSFCglWLxhGs0elAjraGlONk6aMEQAJr73sHRwj/h30CowcnAAVqjg8=

RNG Seed: 0

Unset unit.ReactionTime
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x103480, 0x3e40d0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Unit).finalize(0x3972000)
/home/runner/work/cata/cata/sim/core/unit.go:518 +0x48
github.com/wowsims/cata/sim/core.(*Character).Finalize(0x3972000)
/home/runner/work/cata/cata/sim/core/character.go:463 +0xa
github.com/wowsims/cata/sim/core.(*Environment).finalize(0x32890e0, 0x31b7880, 0x31b7a00, 0x3324c00, 0x1)
/home/runner/work/cata/cata/sim/core/environment.go:159 +0x7c
github.com/wowsims/cata/sim/core.NewEnvironment(0x31b7880, 0x31b7a00, 0x1)
/home/runner/work/cata/cata/sim/core/environment.go:56 +0x5
github.com/wowsims/cata/sim/core.ComputeStats(0x33246c0)
/home/runner/work/cata/cata/sim/core/api.go:20 +0x6...

Crash Report -735657493

Link:
https://wowsims.github.io/cata/shaman/elemental/#eJztll9sFEUcx29mdu9mp4jbaa9sNxSPTSXnJQ13eyGBPvSu+GD989CEF0x80CBIjdGGPunTnQZ7pRLr9bR//BPbRjQxIdBAkasKnHetiDY9HgwQJaFEUwViLZjImVBndm/32Mv6j8Q35umz39/395u538zsHrkfAxnEwW7QDVIADAPwEQAnATgHwCIACQhSEByCYKsPMxN7pB71Oh1F3s7nnnpx5x6MZJ+ahITKr+1FytUmzVvIwcPHYXAIEJ+cSSEOVL6cQcpFFmQRHtwPCJGnf4XK4LpghvM4Sz7SyL2yfP5NpBxs0gRm9HClTr7Osg82aj4z28PT/fIv/Uh5Y60mmWLBnNIvZ1h2b5Ml88kyfAFjTF6uLMBYXWovCg5w+L4PcZdP/ozBfg7Xloy8e+VFlldq0hBPGuArPfEjVBYxL7BKnrwBNVQwptAwFsP+TmG7ECpAMgA9d4dj0PB/zWj1bIXdYBnUq5SsxpCSOOpAnXA7eJId1yxcEw1H9bAe1SO6Ho1EwhFGLXqLnoPNeDoP5SN5qJzMw8CpPAx+9QMMZ/Nw8x8XYfzmWdhROgu/hMI8xBegZwH236MgUkew6iUCHt0naD4iEtQS7SG1xKsKBCq1ZSnSQwUVtnqopPpUJuC+BjpSo75VQ05I9FOJHJfUKYkcgHQCEmkS8HqHj3otnHjfxo+HbHyvv4JF0cLsvI0fztq4MmNjqYJLFUxX8JVPbJwYFsmakB97qZQzhMvnvfzHEhgJOwOX/iqQO1MJNITqK4EPiiLvBAGbnPrgrK07Cv00I5qF9DDZQJtvbxP3CVTKWkJ5wp7bfbyHDh8T3Hy8wQ4fE9x8vPsOHxNcfUWxylcU3Xx83xw+Jrj5+KY6fExw8/Edd/hWZlx9pWpfyd23VO1bcvelq31pdx8/ZQ4fE1z3bbjKxwTb9zKiK9aFka8UEHlYfYhE6EYrefyMYGEyLzjqcLtdh4ZkFoCPeFRMmBbRwz3sMqp3L+O/uIx6EZTfgGO9sEy3kqJJ8tFLQpmmbBqzadym7AWLpm0a/dyixJRFyQMWzb1j0SmbUm9b9KpNh26iMi0cs2h2xqIr31mUHEHEfDfPNdBWdTPZSFvIKo0QPAlMldRoEvHp/OH1tUQOrcaicWbMjm5SzQBdr95nNJGdtGfZ2x8vtwWA2UTdsCy30Q1qM1GpYthEF5tx5NKIBtR1xB+qw4DinLGIPDQtW4xKP7fZ35NBtAifTiLzA9gcHyvT4/F9yKP1Isl4SuyK15p6fbxxdISP07EtpjIfW7/LGN/G2r/5mo+rMX0Odv/2LnyJPta1Y3fg0a7nnwkEO3bueaFrxwOBbQoO/c9/VoJ98TtJS5zO/0Petr+L3zg3NNx+J/PyYTQTL4D2EZB+4taDpWtfxMq1fo8lAPgTe8G9rQ==

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata...

Mana Exceeding 100%

Description:
On Shadowpriest Cata Alpha Simulator mana can exceed 100%.

Reproduction:
Start the default sim.
Look at the mana changing under "Results" and "Timeline".
E. g. Shadowfiend or mana regenration tick raise current mana.
Current mana over 100%.

Expected behavior:
Mana is capped at 100% and should not exceed it.

Screenshot:
manaCap

orc racial is wrong

Describe the bug
looks like the sim is giving 5 expertise for using axes/fists, when it should be 3. at 6.58% exp with 400 rating from gear, when you should need 451 rating to be at 6.5%

Crash Report -2014523872

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnbgEGC0YPRgjgAqFGKResMxiZgvISaxMLeJgFWCRWs3IxS9w8BGTxEtZJbZth5n27GDiYhH4/ZSJi0egaS+TxANZJeZzZ5m42AXagIpOcwBVn3rBJLFFUokNqBSkmktg7j4miVY5JUYGLl6B/3uYJA7zKLEAZRi4OAUanjEpMYNU8Qs0Ak17LwvWdmIHyMC+XUwSn2SBtr1+ArJz13MQ+WYviHx9HqTgwG4mibOyXAxA5uNzTEDzlbg5GA0kAoB+mcDIqAVU2cHEMArAQMiAVB1WDE4MuxjZpFi4mCSYdzFJGxkY6xoY6RoZGwGRIRABgbGBoREQH2IS4Wg5yKTw/BKTRvdBJosXl5gczlxiOsHEcoGJ8xYTwyMmJgnGF0wpC5khRkc6dDEzKN1h4gTzGtIcBCHiIg6Ss2aCwEl7S4jIBXvFNDC4Zu949gwIvLE3WsykECHBqkXjyNXodCBHW0PKcbL0UQIggbX3vYMjhP/DPoERAODAdyI=

RNG Seed: 1420814848

Spell {OtherID: 3, Tag: 1} missing CritMultiplier
Stack Trace:
goroutine 15 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x1039a0, 0x302e370})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*SpellResult).applyAttackTableCrit(0x338e870, 0x338e6c0, 0x31604d0, 0x3feaa2c2b2545b21, 0x3aff9c8)
/home/runner/work/cata/cata/sim/core/spell_outcome.go:471 +0x1f
github.com/wowsims/cata/sim/core.(*Spell).OutcomeMeleeWhite(0x338e6c0, 0x335eea0, 0x338e870, 0x31604d0)
/home/runner/work/cata/cata/sim/core/spell_outcome.go:166 +0x95
github.com/wowsims/cata/sim/core.(*Spell).calcDamageInternal(0x338e6c0, 0x335eea0, 0x33f2000, 0x408cda74faa6730b, 0x3ff07ae147ae147b, 0x0, 0x3affc38)
/home/runner/work/cata/cata/sim/core/spell_result.go...

[Cata] DoT + Haste mechanic

DoT and Haste mechanics in Cata

This issue is primarily design for documentation. I have gathered some sources and references for implementing the DoT and haste mechanics regarding DoTs in Cataclysm, that putting all of them into the source code as reference might be too much.

So what changes wicht cataclysm?

The moving parts of the DoT/HoT can be computed like this. Given the spell is affected by haste. For non-haste DoTs Player_TotalHaste simply is 1.

DoT Aura calculations

Snapshotting

Snapshotting has changed drastically in comparison to Wrath.

  • Target damage debuffs (i.E. 8% spelldamage) update dynamically and are no longer snapshot
  • Player damage mods (% damage done) now update on refresh. Shadow Word: Pain and Warlock's Corruption should profit from this.
  • Critical strike chance is no longer snapshot on apply
    • One miscellaneous point of mechanics that people should understand: DoT's read their spellpower and haste values, and any %damage buffs, at the moment they are cast. These do not update while the DoT is ticking. Crit chance and target debuffs, however, do update dynamically.

    • Elitest Jerks Balance Forum
  • The next tick that gets carried over when refreshing a DoT or HoT is already subject to the new snapshot

To research

  • There are some mentions of channeled spells being affected by the same logic.
  • There are however also contradicting statements that clarify this does not work. Need to test as soon as it's properly implemented on beta
  • it would be lovely if someone can verify as soon as it's implemented that crit is indeed no longer snapshotted

Crash Report 2032704369

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnVg8gEqEGKQOs8xiZgvISaxMLeJgFWCR2szIxS/w7DqTxEtZJbZth5mu/Wfi4hT4cYdJiXneSSYuHoGmvUwSD2SVmPfsYOJiF7i8m0liqgxQy789TBI/gFqAikAyvAJdQJlWOSUWII+Bi0vgLlB+iowSIwPQiGu7mJTYgOIghfwCr4GWvUfoZBfoB9rwX4GLRaB7JxOQnLUHRL4+DyLf7wYpOAA0+qwsFwOQ+eQcE9BMJQ4OdgPeAM4ERq2jTFwTmBhGAQoQMiBVhxWDE8MuRjYpFi4mCeZDTAwnmFguMLHfYmJ4xMQkwfiCKWUhM0RhpEMXM4PSEyZOMK8hzUEQIi7iIDlrJgictLeEiFywV0wDg2v2jmfPgMAbe6PVTAoREqxaNI4yjU4HcrQ1pBwnoC+YLHOJAZBA2/vewRHC/2GfwAgATYZrFQ==

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x11e140, 0x19162e0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x2f6f0e0)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/retribution.(*RetributionPaladin).Reset(0x2eff9f0, 0x2f6f0e0)
/home/runner/work/cata/cata/sim/paladin/retribution/retribution.go:73 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x2f80000, 0x2f6f0e0, {0x393500, 0x2eff9f0})
/home/runner/work/cata/cata/sim/core/character.go:505 +0xa
github.com/wowsims/cata/sim/core.(*Party).reset(0x2f6e120, 0x2f6f0e0)
/home/runner/work/cata/cata/sim/core/raid.go:76 +0x8
github.com/wowsims/cata/sim...

Cata: arcane mage is broken

Default settings of arcane mage is simming at 677 dps

To Reproduce
Steps to reproduce the behavior:

  1. Go to mage->arcane, start the sim

Expected behavior
Realistic values, >30k expected

Sim Links and Screenshots
https://wowsims.github.io/cata/mage/arcane/

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Opera gx
  • Version: browser? if so it says LVL5 (core: 107.0.5045.89)

Smartphone (please complete the following information):
n/a

Additional context
n/a

Can't add a target to encounters

wowsims error
Describe the bug
So I accidentally deleted the target for Encounter, now there's no option to add it back and I get the error message provided in the ss. There's no way to add a new target either.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Encounter
  2. Click on Advanced and then delete all current targets and try to sim again. It will provide the error message and no way to add a new target.
  3. Scroll down to '....'
  4. See error

Expected behavior
The advanced tab should not disappear and allow you to add a new target.

Sim Links and Screenshots
wowsims
wowsims error

Desktop (please complete the following information):

  • OS: Windows 11
  • Browser Chrome
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report -1994001352

Link:
https://wowsims.github.io/cata/shaman/enhancement/#eJztU09IFFEYn+974+7bZ9brqdv0ChynhGXBmN3BMA/u6kmig9DFbgUlEQXSnrotJGXuITHC3EPhKUkI8ShItU1mQSESJgVBRiAhRCKksmlvZmwJO1RCt77D473fv/fjDcPqKHBIw1nogh6AWwDDAA8B5gAWALIIPQijCK2VHBqhDTqUbNRnFSU0OULzJNR+/tSlMxcp4WGZQyb4h2/E+GJaoXuD+uIAiQ2DwlaGdPvr+kYwEOsHtot/VLpF0yLLSpQDxniuSIxuM9bnGd4r8ooKUaTHDwKr4N2Kf2daoHl+zueVJGdauuJ9RPK5dWLfLN1SMiuumk/OEuO2aUUCzIP7vBJ3VeZijfXjEsFfq4yfmipRmI8X/RCdP5kkal0uEtU2q5yXzdgAbNnfWSVexTxYlKJd3Y4dGJ9A1oPa//FH2H/raNJasQvWICqr2E6KgqahDdXDggmcGDiO+xw7mbRtpz7pqEnYdsJRJzuRdJKJAh6krov8sYvGpIvmIxdj9120x11sLM5genUG29ZmcAr1aaRvUJtHJSRMsLAsY4S6aIWZ2tQfzrBKRmWI6TTfq2+CToZVb4Iv+okVYQquTxxqyAhdYpMmGqTD4iLGjHiU6iJ8zku8vl/6OlXzQobtsBijY+ARL6My4AWTQWZhXheGjLIKq5xFkspDl5pN8FVLzaJW1rBovIqCiBTAkz/vJx7HoMGX3CCloFdXQRyTR1mLSPmW0C8Wh9XFD1Ai5Bju8RK9ho7XUNI8BmmSFFDbmjz9QBcRGbzVRnlp+6l5AadgiAQf8ES6l2jWW4z4p2xneneAV6X35ge9eZY6EiDTqdpOf2ZTyRE0O4yyeN+//XNi19LbsWVPP/2N7/i2cv9kgrea+JxuCc4rqZPwHcQz2ZU=

RNG Seed: 2063253675

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 11 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:124 +0x10
panic({0x1349a0, 0x1bc1840})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/shaman.(*Shaman).registerFireNovaSpell.func2(0x307de60, 0x3922000)
/home/runner/work/cata/cata/sim/shaman/firenova.go:48 +0x1d
github.com/wowsims/cata/sim/core.(*Spell).CanQueue(0x39ef200, 0x307de60, 0x3922000)
/home/runner/work...

Crash Report -1642695079

Link:
https://wowsims.github.io/cata/hunter/beast_mastery/#eJzjUuVgFGB0YMxgLGDsYGScwci4gpHxACPjDUbGF4yMDUyMHUyMG5gYnXg4GD0gSoBiQgxSd1hnMbMF5CRWphZxsAswSV1n5OIXuNjPLPFSVolt22GmrTuZuDgFTn5iUmIGMXkEzgPlHshCeJwCy7qYIUx+gXNAiR9ATStPMl37z8TFK3C/m1miVU6JBSjNwMUlcKmfGcrmF/gANI9zw04mCOISErgKVPteVokTKA9BQJum9zArsUF5nAIrngCdMP8kiPmoE2gpSB+LwK5OZiB5/CPIAT87mSU+QxwA0sIANOIc0NgZMmAXKjEZMGodZeKawMQwClCAkAGpOqwYnJgKGKuUuRS55AXkpSQ5mAQYDZgsmD2YIxgzmCtAqWsCI9MMRmCQ72KyMTI2NjAyNjA2NDQ2MjA0NAJCXSAfHehiiADBISYejsXnmQSWPGWSmHSe6QQTywUm9ltMDI+YuCQYldiEWLiAEf2CKaWRGeIyC4eFUFakQxczg9ITJk4wryHNQRAiLuIgOWsmCJy0t4SIXLBXTAODa/aOZ8+AwBt7o9VMChESrFo0Ti0anQ7kaGtIOU5AXzBZ5hIDIIG2972DI4T/wz6BEQAXQ4+6

RNG Seed: 241544933

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 15 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x128e60, 0x1a674c0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/hunter.(*Hunter).applyFervorCD.func1(0x2c7cfc0, 0x34ca000, 0x3428d80)
/home/runner/work/cata/cata/sim/hunter/talents.go:524 +0x5
github.com/wowsims/cata/sim/core.(*Spell).applyEffects(0x3428d80, 0x2c7cfc0, 0x34ca000)
/home/runner/work/cata/cata/sim/core/spell.go:538 +0x13
github.com/wowsims/cata/sim/core.(*Unit).RegisterSpell.(*Spell).makeCastFunc.func5(0x2c7cfc0, 0x34ca000)
/home/runner/work/cata/cata/sim/core/cast.go:181 +0x7a
github.com/wowsims/cata/sim...

Engineering heads are missing their cogwheel gem options

Describe the bug
The option to add Cogwheel gems in the Cogwheel sockets on the engineering head items is missing.

To Reproduce
Steps to reproduce the behavior:

  1. Equip an engineering head
  2. See how you only see the Meta gem option

Expected behavior
You should be able to equip Cogwheel-only gems in those slots.

The gem options are the following:
https://www.wowhead.com/cata/item=59478/smooth-cogwheel - 208 Crit
https://www.wowhead.com/cata/item=59479/quick-cogwheel - 208 Haste
https://www.wowhead.com/cata/item=59480/fractured-cogwheel - 208 Mastery
https://www.wowhead.com/cata/item=59489/precise-cogwheel - 208 Expertise
https://www.wowhead.com/cata/item=59493/rigid-cogwheel - 208 Hit
https://www.wowhead.com/cata/item=59496/sparkling-cogwheel - 208 Spirit
https://www.wowhead.com/cata/item=59477/subtle-cogwheel - 208 Dodge
https://www.wowhead.com/cata/item=59491/flashing-cogwheel - 208 Parry
https://www.wowhead.com/cata/item=68660/mystic-cogwheel - 208 Resilience

Sim Links and Screenshots
Untitled

Crash Report -667425717

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJztUU0oRFEYvd/3PTPzbjTXZPFMRtxSmpXs2LxnVpZTNuxGIQsL2dlNpBizkJ/8LJSdnsVMQlEkEhODLJCFJAtKrJQd17tSVn7Kzul2u+ec75xb9/KqAAhwoBO6YRBgCmAeYBPgHOAWIIkwiJBFiBmNaiTEwg/GDPniXa297T2BAmGEL4EHRX6ErLuI9K1sY2YVuSmWXZJ0oo6F4kh5VxFJGY89DZM1Uaa9oNhX3rPKKe/0BXmRWHLJGiiXhhIYF6IvTdZ4mfSraU8JirE0STPj0YxXcagqHnWFFhZVxUvFh2CK6yHSt5si674fDbHhktpH08RD4qyfrHxEmrM5VMvNIWfcLyZTJIHJQMBfUxQ3ExDdQT6C7B+fEKr5aaKexdga+MIGR4u2kO2hcYz+C2TXqIRbbJsjPdjipIjJGzQ9luxwirVe4pTOTL8hZ9dp5diu7PBwajfkD95wb9cuYEWzVRD94y+rHnJ+E0u27X6Ra/pV73egH2390WnQ/NlOwCuZh3hw

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x128e60, 0x1a674c0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x3484120)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/retribution.(*RetributionPaladin).Reset(0x2f94a20, 0x3484120)
/home/runner/work/cata/cata/sim/paladin/retribution/retribution.go:73 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x2ff0000, 0x3484120, {0x3b7680, 0x2f94a20})
/home/runner/work/cata/cata/sim/core/character.go:505 +0xa
github.com/wowsims/cata/sim/core.(*Party).reset(0x2fcd0e0, 0x3484120)
/home/runner/work/cata/cata/sim/core/raid.go:76 +0x8
github.com/wowsims/cata/sim...

Crash Report -1995552824

Link:
https://wowsims.github.io/cata/shaman/elemental/#eJztll9sFEUcx3dmdu9mp1W3Q1vWDcJ2U8l5ScPdXkigD70rPlj/PDThBRMfIAhSY7ShD0af7jSBQlH0SOzd+SeURjTRByRS4FCBclzF1qbHgyIhGqrGKpI2VRN7xNaZ3ds99rL+I/GNebh89vv7zG/vZmd3j9yLgQISYAfoBf0AZAB4F4AzAFwCYAaAJAT9EByBYEMQM4kdUkE7TXMo0P3Ulue27cRICWrnALlLOXgCqbO6EXg/K14fRCSoTP+AQq8CUq9cmUXqjG6gWSseP47UpM4mfMniXWwCi/dlEPMWWGWoxQBC6FmiKL+w8oBuiKwshHK8z8cFZNm8T4MysU9UX7anLwwiNqVeSZ5E6uIqw2oXVCaKKPQSIKLSfwOxz2++459jRUSIsv8PpJbv4d9OYOLSLGInNTCWIk3d4iYxfB6SV6Bwe3gGjfzXGe3CBtgL5sFKbQVRMaSNYcy2C1KhDhKoC3XDTWAz23p5uDwWiZkRM2ZGTTMWjUaijNrMNnMUtuJTBah8WIDqmQLUzxZg6LPvYSRfgOtufA0TCxdhV/ki/BSKUxBfhsI0HLhDRWQZwVqAiDi3VzSCRCKoLdZHGkhAEwlUGypRtI+KGmwXqKwFNRbgPc00W6e9VkdOy/QjmZyUtRGZHIZ0GBL5KOD9PjgWcHD4oIvvDbr41kAVS5KD+SkX3xlzcanoYrmKc1VMV/HFEy4OZySyPNyEA1QetYJvvwrwH0tgNOItXP2rwuh4tdAcbqwW3i5JfCUIWOvND4y5uafRj0XJbmRGyGraevMycU+kct4JKifsu9nja+jxWODn8QX2eCzw8/jqezwW+HolqcYrSX4ev24ejwV+Hr+oHo8Ffh6/4h5vqejrlWu9sr83V+vN+XvpWi/t7/Fd5vFY4HvdMjUeC1zvBUSXnBtGuXYekQe1B0iUrnEmHxoXHUwVRE8frrt9aFhhBfiQoGHCsqgZ6WM3o3b7ZvwXN6NZApUn4NBuWKHFlGSTcuyqWKERl4ZcOuRS/rJDp1zKfeJQcsSh1GGHJt9w6KxL/a87tMulIwuoQtPHHeLvZZuuXXEolWWvcevZPNlM27V1ZA1tI/UGIfgosFNSZ8gkaPKD/SuIEr4TS9aesVd0rWYXaIu2ylpEttOeZE9/PN+hA3sRTUuZ76CrtVaiUdXSJB/N2nJpRHVtJWkKL8OA4lHrSxSgray3Ov3U4b5PDqAZ+HgK2a/C1sRQhR5N7EWCsRvJ1lFye6LBzhsTd+eyfFyIr7eTqXjLdmt8Ee/8fIKPn+PmJOz97U34PH2kZ+sO/eGep5/QQ13bdj7Ts/U+faOKw//z35bQnsStTEteKPzDvI1/V//10mCm81bOy4e1mHgadGZB+rHF+8vXz8UrvX6PJwH4E1QWrUE=

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata...

Curse of Elements wrong value

Should be 1.08 spell damage in Cata

func CurseOfElementsAura(target *Unit) *Aura {
	aura := target.GetOrRegisterAura(Aura{
		Label:    "Curse of Elements",
		ActionID: ActionID{SpellID: 47865},
		Duration: time.Minute * 5,
		OnGain: func(aura *Aura, sim *Simulation) {
			aura.Unit.AddStatsDynamic(sim, stats.Stats{stats.ArcaneResistance: -165, stats.FireResistance: -165, stats.FrostResistance: -165, stats.ShadowResistance: -165, stats.NatureResistance: -165})
		},
		OnExpire: func(aura *Aura, sim *Simulation) {
			aura.Unit.AddStatsDynamic(sim, stats.Stats{stats.ArcaneResistance: 165, stats.FireResistance: 165, stats.FrostResistance: 165, stats.ShadowResistance: 165, stats.NatureResistance: 165})
		},
	})
	spellDamageEffect(aura, 1.13)
	return aura
}

SpellMod_DotNumberOfTicks_Flat not working for hasted dots

Describe the bug
Flame Shock is a hasted dot and is not benefiting from the glyph as it is implemented because the spell mod SpellMod_DotNumberOfTicks_Flat not working for hasted dots. Discussed a bit in the shaman cata channel.

To Reproduce
Steps to reproduce the behavior:
Run the Shaman sim with and without the glyph there is no difference in length of the dot.

Expected behavior
Dot should be gaining 3 ticks/9 seconds.

Crash Report 753832729

Link:
https://wowsims.github.io/cata/shaman/enhancement/#eJztUj1oFEEY3ffNJbeOPxnPKOvZbBaFJRCY222izW5SXRmwOTuFGCwsgp3doSJJrrlYeEkKQwRRECSVxYGgZiWKCuEEFTtNAikORIyQhDX67W6ljSZg5+NjmO+9770ZhpEnTCiEuIBRjAFTwD3gMfAeWAOqhDHCPGHwkEI/yqjw2HyqslQwiosdM6Jz6OK5y+cvmULli8uQXWr5u7C+2E7nwwVqN4TMqzexcO9A7lOrrLRtR6yndC0W1k2bDR+Zvs4GpmtTQu5X11i53ePAcG9AKvWN25rt5DgtZbpUOxbpOJc7DVlQKxxxiyO+NgSX20iG7rJtnE/jzGQor5p8j8lEebct9Mb2jwyQObUeC16v8CpVlW1XbbeO3/azmyK5UR2OaZI+PEQV6n1Gsk7Gf/yCgt6p45QxSKPYwpFitzxgUsEMUSZ+YNhQwqImHfO152nt93k+o6R1yedOlzzfKz2l42YUkVqIyHq5SvaTiNwHEelmRP1xi8LNFpW3WvSccku09wMZn4gsrNHwnMgOPxNOCMNZoT1pVx0JD2Z8d3h0ZjrBi+BkxiwFPSMp3gYDr18laAfefbIrVkfvP/4G7ni4G1t1ePEPvtO7yv0bZI/26HM4kPUbwVn8BN3Fm4k=

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x129920, 0x1a726c0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/shaman.(*Shaman).registerTotemCall(0x3434000, 0x1051a, 0x0)
/home/runner/work/cata/cata/sim/shaman/totems.go:121 +0x2
github.com/wowsims/cata/sim/shaman.(*Shaman).registerCallOfTheElements(...)
/home/runner/work/cata/cata/sim/shaman/totems.go:185
github.com/wowsims/cata/sim/shaman.(*Shaman).Initialize(0x3434000)
/home/runner/work/cata/cata/sim/shaman/shaman.go:258 +0x1a
github.com/wowsims/cata/sim/shaman/enhancement.(*EnhancementShaman).Initialize(0x2c1f1f8)
/home/runner/work/cata/cata...

Mage armor and molten amor are both buffed

Describe the bug
Mage and molten armor are both showing as buffs in the current mage sim
To Reproduce
Steps to reproduce the behavior:
run a mage sim and look at results
Expected behavior
only 1 amor can be active at a time

Sim Links and Screenshots
image

Desktop (please complete the following information):

  • OS: windows 10
  • Browser chrome
  • Version Version 124.0.6367.119 (Official Build) (64-bit)

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Crash Report -1492842441

Link:
https://wowsims.github.io/cata/hunter/survival/#eJztVE1IFVEUnnPvvHl3jpbzblbT5aG+iagePZ2Z1xNz856uIoiENraICkykEqTZ1E4IwoRAWpS+RZi1CNvUQjIhiKLsF131Y0RQhhGGCUItMroz815pBZXQrsNw555zvvOdb869DK5jYEAO2qADugB6AS4C3AB4CvAWoJNAF4HLBBp1BltDCFfEEz1PtaZD+47uP8wiBhG3AMuMF1PUnK2ytME+dfYMRd340kstOie3ZcbrYWpOVwXehm7AqDE7Q80HTGaeXaXmcVk10BtA0fgoMwMJCxRcZpy8Q83TayxVZhQsNZ5fo5Ym9yHnTcl5NqyUj0xfkQKmK8OWuvG52F018lP+en/YX7vkGjV65ql5LIGK7DcvBYxVSVVWCSM2NJFm0gOQvE2whyj/bZFx+28r6pVG0gHdYGM1rjViopwRA+poDrbSNnokvHEkEWI/ZG2IPXro23R2hMTtdMpN265cXDtty8f3XMd10o5zk5Sy82+IceENMfvHyF2ijhOYIMorckk1wdK4ikQe7wqMighSNnfQYqihmnIzngxqQqbNmKVjFCMpp3qzhyuRCQlgoy/VheEiwfvWAoFje8gLwXfMkkCkqbTHV4lyNJLLWYSTesVnQuJ49QqvESmsEHEUSZNRrg+C32Sqn4qgiZux273DJagPFOMcRSjE3+8Ru3EH347M9SND/TSg0Tg7UPAFopTl2LakQT0PC2HqzzC/mxXsUc047R5vFDl0eM1idUOL1GEsWSa/ip5SC5+Vsb8LllBeJ2pxk0hiqc+8SCj9tVBRrPSrErwSS/yJu/5ER8qCIWqcbCt0q/VEmOAbxXqs4PEfAXUesgHwMRNxEb54XIhAtrZAdm0myE6u/jZhedRvScs5Gt6+XbluqliTRA+8ztZcLIyX59bk+3y7l90SRsazidbAHmcbitfVvUSqms1I8h//MzacyC2lrLNl9Dd1O5fE+ycWDu36TK4h9D9l98JXF5vVgg==

RNG Seed: 0

Invalid pet ability type
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0xf41a0, 0x3af980})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/hunter.(*HunterPet).NewPetAbility(0x2fd6000, 0x11, 0x1)
/home/runner/work/cata/cata/sim/hunter/pet_abilities.go:108 +0x78
github.com/wowsims/cata/sim/hunter.(*HunterPet).Initialize(0x2fd6000)
/home/runner/work/cata/cata/sim/hunter...

Crash Report 764077967

Link:
https://wowsims.github.io/cata/paladin/protection/#eJztUU0oREEcf///vPfse9GOjRqb3daUklIbJ3t5j5Ojklo3am0ODpub214UdhOFcCDlsJJIyUdWPhLK1uYguZFaSTg4yIV5+zzl5KPc/A7T/L7+M83olS6gYEIXxKAfYAIgBbADcA5wAxBH6EdYRmgstUJNEM4H1wGyeTOEFDySd1yZImpzd0dvZ49LobI3B7qbZhOE3fq4OrePmQ3UNfqSIJysia2bXgsv6edqbgMtoZBOJwkbK3fs3WHCLsu4mrHtIpoeI2zQz2XBJEH3hT/qUA9dGiJspJxrdtxqeOhjH2H3Pq6tfWhirDj1NcDVd0Gjp86NNLrtbGW6NUDEmhJrIV0VB5/4nNB88j1UQBefkIPEXS4tWNSshJXqA9SHUfrHJ3iCP22EpEaMwQqoXllHRjaR1NTV7qF0hHIWCy5QukJkcIORZ4RZYnfazEFSorVamEmbxbaIZkDl16jlSTzqyCVm2dSkhWOj3layRkU0jzOjIXNi4c6oXcBAmCnVf/yjVQPmb2rxyOEXvZZfzf0O7EdLP5gNNn822uENabGEoA==

RNG Seed: 1676839704

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 8 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x128e60, 0x1a674c0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x2fb67e0)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/protection.(*ProtectionPaladin).Reset(0x2f46d20, 0x2fb67e0)
/home/runner/work/cata/cata/sim/paladin/protection/protection.go:91 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x2faa000, 0x2fb67e0, {0x3b7620, 0x2f46d20})
/home/runner/work/cata/cata/sim/core/character.go:505 +0xa
github.com/wowsims/cata/sim/core.(*Party).reset(0x2efb7a0, 0x2fb67e0)
/home/runner/work/cata/cata...

Crash Report -1337099298

Link:
https://wowsims.github.io/cata/paladin/retribution/#eJztUk0oRFEYvd9334z3XuSaLJ7JiFdKSt15s8HCe6wslQ07CllYyM5uFpQxUyS/s7NTElkIUYaEIrJAohA1SgZZKAvu8/yEhZ+yc/q6fefc79xzu101VwYGFjRCM3QADAKMACwA7AHEAYIIHQgTCGVSuRjxEO+kK0rdFU21rfUtsotJ3mVQU1l/iGrnPt09tYRz06gqbDdMdWq3yaxX7B35HCaxzSsU84NCuxPzQrNllV1fotaepQMR/dE96tLOA9r9QEL0YoQI0+E9aok3UzK7aaevTGEH0edIhR2/pEusJ0LFGhapHtYXodqGT1fGZ9AplahJbOwWRa4uy0k8pUKpgfxlVLuR/OMdPPynjmJSRmbB7ZVU1Ogslhjczz+igBufNF5gBAweMPyiBAKcGwHuX8RMuS2GbPwMta4YZodiWLi+jVYkhuXxbVxFaQvd+0hOEDWIY90wdW5RbXVSop+i8sSCDVaao6dbGdEhG2tmkaNsmTkNT9gxSzfWbVyYxihmV2mu/D/+D3kh6ze2YN3KF77KX537HTiPNp+wSh1+Z9bAI0X+iGA=

RNG Seed: 0

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0x129920, 0x1a726c0})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x0, 0x2f88000)
/home/runner/work/cata/cata/sim/core/aura.go:536 +0x2
github.com/wowsims/cata/sim/paladin/retribution.(*RetributionPaladin).Reset(0x2fc6440, 0x2f88000)
/home/runner/work/cata/cata/sim/paladin/retribution/retribution.go:73 +0x15
github.com/wowsims/cata/sim/core.(*Character).reset(0x2ff4000, 0x2f88000, {0x3ba160, 0x2fc6440})
/home/runner/work/cata/cata/sim/core/character.go:505 +0xa
github.com/wowsims/cata/sim/core.(*Party).reset(0x2fbafc0, 0x2f88000)
/home/runner/work/cata/cata/sim...

Crash Report 590903085

Link:
https://wowsims.github.io/cata/shaman/elemental/#eJztUj1oFEEU3vdm7nZvosm4KEyucbMoLAFhdtdCbXaTKmXAJnYKGiwsgmiR7tJIVJRY5UcF02ggIhYpkogh6kpOLbJcEeUUBUngGrmQKqeNL7siWKkBOz8YmPe97/veYxhx2AIJMZyHIRgFmACYAVgGeAfQAKggjCI8Rug1LRJRaRvllcIUK/ZfODN87qJVkma5DqJD3n7LVNNxiw8n+eY4E1xup4zou0Q3HJcR590CsUdW15iq5ISw5dwmU1fI1RxnLVI8ALFXPlplarrLBWOn7JATlHDdcTn1De+SaJf1eeYWyU4e7zIJ7pDgppNR7xeQQt/QiI2DPzWUwmWrxoUpv6TMuw90+bSe8aZcWs32KskXKVMjDgVy+YE2N+W9FvNugNtmFfSBfj7AxwC6X6IYQ+M/foGt/9ZxwujFIdgCuyxFu4W2oC/IFHNAwyKWwyAMNB0/CELf134YHAl0qHXgP8dD1pME5VyCajlB51mC3usN1IsJHvv2EeNWDfu+1rCKPMW2OhqfERU0sAojLB98NJ7+cTsVX2OGu46lrKoMxvtyfn/cOTW5g1fR8ZxJo67BDGtRT95aiIJZdAZUofsffwbvarwbW+Xsym98J3eV+yfIH+1pM+7J6+3oNHwHVAeQtg==

RNG Seed: 3778152681

runtime error: invalid memory address or nil pointer dereference
Stack Trace:
goroutine 17 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
github.com/wowsims/cata/sim/core.runSim.func1()
/home/runner/work/cata/cata/sim/core/sim.go:123 +0x10
panic({0x113100, 0x17dee40})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/shaman.(*Shaman).applyElementalFocus.func2(0x3432ea0, 0x344c000)
/home/runner/work/cata/cata/sim/shaman/talents.go:170 +0x9
github.com/wowsims/cata/sim/core.(*Aura).Activate(0x3432ea0, 0x344c000)
/home/runner/work/cata/cata/sim/core/aura.go:629 +0xf6
github.com/wowsims/cata/sim/shaman.(*Shaman).applyElementalFocus.func6(0x3433040, 0x344c000, 0x3427d40, 0x3427ed8)
/home/runner/work/cata/cata/sim/shaman/talents.go:205 +0xf
github.com...

Crash Report -171286766

Link:
https://wowsims.github.io/cata/hunter/beast_mastery/#eJztU01IVFEYfd93nzNvPkPvXPwZb/7MPAimKeHNmyy1xYxC5FJoY7sCExctJDfVykpEW4mBjq7SQoM2EWQxFIQRFhXjqqJNEEoihkoSRpN237zJKVpUQrvOg3fvOd+557v3/dAeAzgkoBO6oB8gCXAD4CHAa4BFgB6EfoRbCM27DGhxLUoTmpwzxpin9fTJc6fOGF6OchVI8OmvLLAWND3Tj3BthIWngLx8Y1wPjwAV83uquBw02USShSeBSnlmXLc+b265gMAzIzzmhNzPsECfClG+dRWiNOK9SpsImaAR53dUznCFqaui5lSL+XKGmR5Fc3bB7yrLSlVWc7plTVMqYrnGZBnX5OUpJazUKPerTWZ9ye9DaTpfzzB1v6juxD8q46WQcxpNsQnF0kHFzEIDLWjFNhwEiDxGGkTtP36CsP52RaPWjF1wfj9FKMxrZIWBHCysZy2sDTrZWef7GwRMAoZc/2rcghRW2rGYZcesWDQas61o1FZXreJ2rRW1Z7DEuJZGfn0BA0NpDA6nMXwljU9Qn0PvG9Te4RIGGPnJI3XCgN/0UgGx2mg3CfJKNTU+dOQ0O68tGTkt1k1VJCSnImOgLLj1HZCPKSRtmwhdYqMmjsojdFg0UHWk0gDhn4Ei4eHMRK6TbkyOgtOCoI7KI6WGLnwp8Ci9t69AqpHwQLfMcVEld5M/Umx4BBvSNbd80MqWPyVBlMkSKjR95LWdPaeKpTsIkkbW8/4qEz7pnmihfFteGsDtZP2H5NihbHlSNd4n91JQVv/SvK6BfLch1z+bO5/PnX2rL2L7Bea+u/rEeG52PHGZaeY8+rKspyPhd/WSRMXYqIOn8QZXmYuHOrJ4GW968dzBcty+icG2QEHkH/9/4YHETpb1tM/+Zt2xHeX+CdyH9mAl0eTyjfgJ+AYCJdgc

RNG Seed: 4222083147

When validating reforging for item 69880, the reforging could not be validated. 151
Stack Trace:
goroutine 6 [running]:
runtime/debug.Stack()
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/debug/stack.go:24 +0x6
main.computeStats.func1()
/home/runner/work/cata/cata/sim/wasm/main.go:49 +0x10
panic({0xf4400, 0x2e65200})
/opt/hostedtoolcache/go/1.21.9/x64/src/runtime/panic.go:914 +0x2c
github.com/wowsims/cata/sim/core.NewItem({0x110f8, 0x0, 0x0, {0x0, 0x0, 0x0}, 0x97})
/home/runner/work/cata/cata/sim/core/database.go:353 +0x30
github.com/wowsims/cata/sim/core.NewEquipmentSet({{0xfeb6, 0x0, 0x1071, ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.