GithubHelp home page GithubHelp logo

apn-pucky / tyrant_optimize Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brikikeks/tyrant_optimize

15.0 8.0 7.0 13.29 MB

License: MIT License

Makefile 0.18% AutoHotkey 4.62% C++ 82.12% Shell 6.52% CMake 0.17% Python 6.27% Batchfile 0.12%

tyrant_optimize's Introduction

tyrant_optimize

Build Status Coverage Status downloads

Simulator for the card game tyrant_unleashed (See also Tyrant Wiki).

tuo provides several algorithms to find an optimized deck:

  • Beam
  • Genetic
  • Simulated Annealing
  • Climb
  • Climbex
  • Climb_forts
  • Reorder

This is supported for a variety of card-play modes Modes:

  • Flexible
  • Evaluate
  • Random
  • Ordered

and games modes:

  • fight
  • surge
  • win
  • defense
  • raid
  • campaign
  • brawl
  • brawl-defense
  • gw
  • gw-defense
  • pvp
  • pvp-defense

For more details check out the Wiki

A list of available flags is here or use tuo --help.

Downloads

Get it for Linux

Get it for Windows

Get it for Mac

Get it for Android

Forum links to kongregate.com

TUO

OLD TUO

OLDER TUO

tyrant_optimize's People

Contributors

apn-pucky avatar andor9 avatar dsuchka avatar brikikeks avatar voxnav avatar dhelden avatar bestwebdeveloper avatar herethios avatar vtzvetkov avatar isilrond avatar othermaciej avatar dependabot[bot] avatar nicolas3470 avatar ksvintsov avatar odinguru avatar kommepcaht avatar daeronalagos avatar benprew avatar gnn avatar emcn avatar mjdoom avatar vakomash avatar

Stargazers

Rodrigo Matos avatar  avatar CrystalHead avatar jdickman avatar  avatar Timbojons94 avatar Cabbage1ady avatar  avatar  avatar theblobinc avatar  avatar  avatar  avatar Avonti Pinder avatar  avatar

Watchers

James Cloos avatar  avatar  avatar Avonti Pinder avatar themacboy avatar  avatar  avatar  avatar

tyrant_optimize's Issues

Python port

Hi all, thanks for the great work maintaining the simulator.

I was wondering whether you might be interested in spending some effort to port and continue maintenance of the simulator in Python instead of C++. I think this type of tool lends itself nicely to the language, but the main benefit I can see is to allow running the optimizer as a web service which would allow opening up the tool to a lot more people.

If you are interested in the idea, drop me a note, I would gladly attempt to help in realizing the port as I have over a decade of Python and C++ experience and am familiar with both languages.

structures accumulate barrier - discord bug report

Not sure if you have fixed them, but if you create a structure which has Barrier, the structure's Barrier protection won't disappear on the start of the turn, resulting it gaining more Barrier protection on top of each other.

For example if the structure has barrier 35, it will then have 35 barrier protection on turn 1, 70 barrier protection on turn 3 and so on. That's only counting that it not getting attacked and damaged during the turns as it then will apply more barrier protection which also will not disappear.

Wrong sims with aegis of fury

Sims are wrong because of Aegis of Fury at least. We know its summoned Counter assault card kills the card it faces (even before it activate) but we still get around 35% theorical win rate with 3/4 cards decks. Therefore we have to find what wrong with TUO in order to be able to sim that mission properly.

DB version 5.0.0-alpha-dirty - 'std::out_of_range'

I get a DB version 5.0.0-alpha-dirty - 'std::out_of_range' error when I try to run TUO. This is with a fresh install (i.e. just unzipped TUO v6.2.0 and tried to run it). Both TUO and TUO-DEBUG affected.

TUO v6.2.0> .\tuo.exe "Tabitha" "Cyrus" +v
DB version 5.0.0-alpha-dirty
.\tuo.exe : terminate called after throwing an instance of 'std::out_of_range'
At line:1 char:1
+ .\tuo.exe "Tabitha" "Cyrus" +v
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (terminate calle...::out_of_range':String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
  what():  basic_string::substr: __pos (which is 138) > this->size() (which is 137)

TUO v6.2.0> .\tuo-debug.exe "Tabitha" "Cyrus" +v
DB version 5.0.0-alpha-dirty
.\tuo-debug.exe : terminate called after throwing an instance of 'std::out_of_range'
At line:1 char:1
+ .\tuo-debug.exe "Tabitha" "Cyrus" +v
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (terminate calle...::out_of_range':String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
  what():  basic_string::substr: __pos (which is 138) > this->size() (which is 137)

TUO crashes when using database and using a larger gauntlet than used when database was initialised.

If the database is initialised with a small gauntlet (e.g. 25 deck gauntlet in the example below), it crashes when trying to sim with a larger gauntlet (e.g. 50 deck gauntlet in the example below). This does not happen when the no-db flag is used. It does not crash when simming with a smaller gauntlet.

Deleting database
-------------------------------------------
VERBOSE: Performing the operation "Remove File" on target "data\database.yml".

// Deleted database so it will be recreated.

Testing v6.3.0 with db enabled (database deleted; enemy = /TOP25/; Note: /TOP25/ is a 25 deck gauntlet):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version 
DB checksum 
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.04: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.04: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Deck improved: LU4HdCiHdCiJdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 46.24 (8 32 13 18 23 14 26 32 31 17 19 35 28 14 40 23 17 21 28 16 21 38 45 4 15 / 
50)
4 units: 46.24: Imperator Halcyon, Furrage_Test2 #2, Furrage_Test4 #2
Deck improved: LU4GdCiHdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 55.6 (10 38 26 24 35 22 31 43 26 17 19 36 18 21 42 23 27 33 35 23 27 25 48 11 35 /
 50)
4 units: 55.6: Imperator Halcyon, Furrage_Test1, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiJdCiJdCi: [68519] Furrage_Test2 -> -void-: 59.92 (14 49 32 25 43 25 34 45 29 20 31 41 9 22 44 30 28 35 34 27 30 8 50 13 31 / 50)
3 units: 59.92: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: -void- -> [68518] Furrage_Test1: 61.04 (18 49 31 23 45 20 38 46 23 23 24 46 8 25 44 31 29 36 33 27 32 9 50 19 34 / 50)
4 units: 61.04: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2285 + 1532 simulations).
Optimized Deck: 4 units: 61.04: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// First run after database deleted. Database should now be initialised with 25 deck gauntlet.

Retesting v6.3.0 with db enabled (database should now have been recreated; enemy = /TOP25/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version v6.3.0
DB checksum 3350738322
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.04: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.04: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

4 units: 46.24: Imperator Halcyon, Furrage_Test2 #2, Furrage_Test4 #2
Deck improved: LU4HdCiJdCiJdCi: [68519] Furrage_Test2 -> -void-: 54.8 (15 44 17 20 29 20 29 41 28 23 29 38 35 21 40 20 20 27 31 24 21 35 47 5 26 / 50)
3 units: 54.8: Imperator Halcyon, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 59.92 (14 49 32 25 43 25 34 45 29 20 31 41 9 22 44 30 28 35 34 27 30 8 50 13 31 / 50)
3 units: 59.92: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: -void- -> [68518] Furrage_Test1: 61.04 (18 49 31 23 45 20 38 46 23 23 24 46 8 25 44 31 29 36 33 27 32 9 50 19 34 / 50)
4 units: 61.04: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2264 + 1550 simulations).
Optimized Deck: 4 units: 61.04: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Assumed TUO used results from DB during climb.

Retesting v6.3.0 with db disabled (enemy = /TOP25/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25/" climb 50 -L 1 5 -o="data\own.txt" no-db
-------------------------------------------
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.04: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.04: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Deck improved: LU4GdCiHdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 53.04 (9 45 19 15 31 17 30 43 28 19 29 34 16 24 45 25 32 29 19 21 23 24 50 8 28 / 
50)
4 units: 53.04: Imperator Halcyon, Furrage_Test1, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 61.76 (22 49 31 26 43 31 38 46 28 27 32 47 7 30 45 23 25 35 38 24 28 4 50 16 27 / 
50)
4 units: 61.76: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2307 + 1673 simulations).
Optimized Deck: 4 units: 61.76: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Results seem consistent when no-db flag used.

Testing v6.3.0 with db enabled (enemy = /TOP25|TOP50/; Note: /TOP25|TOP50/ is a 50 deck gauntlet):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25|TOP50/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version v6.3.0
DB checksum 3350738322
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.02: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.02: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Enemy's Deck:0.02: Custom Deck #101 "TOP50-048  77.0735": YE5CcQhPCIhZcYhNRfhbCAiVYBiZcBiZcBiXPCidPCiLSCi
Gaia the Purifier, Alpha Muster, Myrvern's Design, Torra's Hand, Gaia's Strategist, Baldur the Bright, Damascus Scabbard, Agilaz Godseye, Agilaz Godseye, Rapier Gunsh
ip, Rapier Smitecraft, Minerva's Foresight
Enemy's Deck:0.02: Custom Deck #102 "TOP50-049  76.9668": bV4YARhddGhddGhddGhddGhddGhddGhJffhJffhJffh
Malort Blightfather, Alpha Terminus, Draxacurse Invoked, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikinoz, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikino
z
Enemy's Deck:0.02: Custom Deck #103 "TOP50-050  76.7891": YE5UcQhGKqGKqGKqPCIhfeWhJBahbCAiLSCi
Gaia the Purifier, Alpha Replicant, Baldur the Bright, Miasma Master, Minerva's Foresight, Co-operated Crawler, Myrvern's Design, Aggeroth Chaos, Aggeroth Chaos, Agge
roth Chaos

// Sim does not finish (crashes without giving error) when using 50 deck gauntlet.

Retesting v6.3.0 with db disabled (enemy = /TOP25|TOP50/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25|TOP50/" climb 50 -L 1 5 -o="data\own.txt" no-db
-------------------------------------------
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.02: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.02: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Enemy's Deck:0.02: Custom Deck #102 "TOP50-049  76.9668": bV4YARhddGhddGhddGhddGhddGhddGhJffhJffhJffh
Malort Blightfather, Alpha Terminus, Draxacurse Invoked, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikinoz, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikino
z
Enemy's Deck:0.02: Custom Deck #103 "TOP50-050  76.7891": YE5UcQhGKqGKqGKqPCIhfeWhJBahbCAiLSCi
Gaia the Purifier, Alpha Replicant, Baldur the Bright, Miasma Master, Minerva's Foresight, Co-operated Crawler, Myrvern's Design, Aggeroth Chaos, Aggeroth Chaos, Agge
roth Chaos
0 (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / 50)
4 units: 0: Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Deck improved: LU4GdCiGdCiHdCiHdCi: [1010] Malika -> [25227] Imperator Halcyon: 33.48 (4 27 5 14 23 7 14 31 16 2 11 21 8 7 24 11 8 7 15 7 12 10 47 5 18 35 9 23 17 6 1
5 26 10 14 3 44 17 5 6 28 12 30 5 12 34 40 33 15 31 13 / 50)
4 units: 33.48: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test2 #2
Deck improved: LU4GdCiHdCiHdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 43.56 (2 32 9 15 26 16 21 34 20 11 20 29 19 12 30 20 21 15 15 16 15 22 45 7 17 26 
16 21 19 12 19 33 10 35 1 44 22 14 12 28 15 33 10 21 40 43 40 24 50 12 / 50)
4 units: 43.56: Imperator Halcyon, Furrage_Test1, Furrage_Test2 #2, Furrage_Test4
Deck improved: LU4HdCiHdCiJdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 50.4 (9 43 11 21 20 16 22 29 27 17 21 36 29 20 43 19 27 15 23 23 17 36 49 4 25 31 
18 20 21 38 13 35 14 31 8 44 29 8 11 25 26 40 15 14 43 47 44 21 50 12 / 50)
4 units: 50.4: Imperator Halcyon, Furrage_Test2 #2, Furrage_Test4 #2
Deck improved: LU4HdCiJdCiJdCi: [68519] Furrage_Test2 -> -void-: 55.4 (9 46 26 15 28 10 26 39 26 22 22 39 33 20 45 20 25 26 23 16 22 35 50 10 21 39 19 29 24 33 20 40 
10 34 3 45 29 17 11 29 26 42 20 23 45 47 44 39 50 13 / 50)
3 units: 55.4: Imperator Halcyon, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 66.04 (20 50 28 34 42 21 34 45 24 24 24 44 11 29 46 32 35 37 40 25 26 12 50 17 36 44 2
9 42 25 13 36 45 27 37 7 49 38 28 15 43 34 49 23 28 50 48 46 35 50 24 / 50)
3 units: 66.04: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Evaluated 59 decks (2001 + 1042 simulations).
Optimized Deck: 3 units: 66.04: Imperator Halcyon, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Sim runs and climbs when no-db flag specified. This is for same 50 deck gauntlet.

Deleting database
-------------------------------------------
VERBOSE: Performing the operation "Remove File" on target "data\database.yml".

// Deleted database so it would be recreated.

Retesting v6.3.0 with db enabled (database deleted; enemy = /TOP25|TOP50/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25|TOP50/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version 
DB checksum 
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.02: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.02: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Deck improved: LU4GdCiHdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 58.88 (13 43 22 18 37 25 31 37 26 18 31 44 21 25 42 29 26 28 29 28 26 22 50 13 30 
37 28 37 16 21 18 38 22 32 5 50 34 21 12 28 41 45 18 22 46 44 43 33 50 17 / 50)
4 units: 58.88: Imperator Halcyon, Furrage_Test1, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 65.68 (12 50 35 24 40 23 37 44 24 24 22 47 3 19 49 28 38 40 38 25 36 7 50 13 23 39
 29 44 24 11 42 46 27 45 6 50 33 36 11 39 40 50 31 33 50 43 48 37 50 27 / 50)
4 units: 65.68: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2233 + 1727 simulations).
Optimized Deck: 4 units: 65.68: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Database recreated (this time with 50 deck gauntlet).

Retesting v6.3.0 with db enabled (enemy = /TOP25|TOP50/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25|TOP50/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version v6.3.0
DB checksum 3350738322
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.02: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.02: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Enemy's Deck:0.02: Custom Deck #102 "TOP50-049  76.9668": bV4YARhddGhddGhddGhddGhddGhddGhJffhJffhJffh
Malort Blightfather, Alpha Terminus, Draxacurse Invoked, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikinoz, Zashikinoz, Zashikinoz, Draxacurse Invoked, Zashikino
z
Enemy's Deck:0.02: Custom Deck #103 "TOP50-050  76.7891": YE5UcQhGKqGKqGKqPCIhfeWhJBahbCAiLSCi
Gaia the Purifier, Alpha Replicant, Baldur the Bright, Miasma Master, Minerva's Foresight, Co-operated Crawler, Myrvern's Design, Aggeroth Chaos, Aggeroth Chaos, Agge
roth Chaos
0 (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / 50)
4 units: 0: Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Deck improved: LU4GdCiGdCiHdCiHdCi: [1010] Malika -> [25227] Imperator Halcyon: 33.2 (5 33 3 10 15 8 18 25 13 7 14 21 2 2 19 9 16 14 15 3 10 8 46 9 26 28 6 30 9 5 19 
16 10 15 3 48 17 9 3 22 12 37 13 15 30 38 35 20 33 6 / 50)
4 units: 33.2: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test2 #2
Deck improved: LU4GdCiHdCiHdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 43.6 (5 38 10 18 21 9 23 29 22 14 18 28 15 11 32 15 18 11 19 11 10 13 46 10 16 33 
17 29 22 15 21 25 12 31 5 46 20 12 12 31 20 36 15 14 41 44 42 22 50 13 / 50)
4 units: 43.6: Imperator Halcyon, Furrage_Test1, Furrage_Test2 #2, Furrage_Test4
Deck improved: LU4HdCiHdCiJdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 49.12 (4 33 13 20 27 13 20 34 23 21 22 37 40 21 40 23 18 16 23 14 21 33 45 1 18 29
 15 22 16 26 15 31 17 34 4 42 24 17 11 27 22 42 15 19 43 44 44 29 50 10 / 50)
4 units: 49.12: Imperator Halcyon, Furrage_Test2 #2, Furrage_Test4 #2
Deck improved: LU4GdCiHdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 58.88 (13 43 22 18 37 25 31 37 26 18 31 44 21 25 42 29 26 28 29 28 26 22 50 13 30 
37 28 37 16 21 18 38 22 32 5 50 34 21 12 28 41 45 18 22 46 44 43 33 50 17 / 50)
4 units: 58.88: Imperator Halcyon, Furrage_Test1, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiIdCiJdCiJdCi: [68519] Furrage_Test2 -> [68520] Furrage_Test3: 60.6 (12 46 30 18 39 18 28 41 27 25 20 43 19 18 42 26 24 29 25 25 27 23 49 11 28 3
3 36 39 21 25 38 45 19 34 8 50 31 25 10 40 34 49 17 27 46 47 46 36 50 16 / 50)
4 units: 60.6: Imperator Halcyon, Furrage_Test1, Furrage_Test3, Furrage_Test4 #2
Deck improved: LU4GdCiJdCiJdCi: [68520] Furrage_Test3 -> -void-: 63.96 (12 50 29 28 43 19 30 45 27 23 24 40 8 26 45 32 33 38 34 21 28 15 50 13 31 40 36 45 25 10 28 49
 23 39 5 50 37 25 19 33 36 49 22 32 50 48 49 37 50 18 / 50)
3 units: 63.96: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: -void- -> [68518] Furrage_Test1: 65.68 (12 50 35 24 40 23 37 44 24 24 22 47 3 19 49 28 38 40 38 25 36 7 50 13 23 39 29 44 24 11 42
 46 27 45 6 50 33 36 11 39 40 50 31 33 50 43 48 37 50 27 / 50)
4 units: 65.68: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2316 + 1655 simulations).
Optimized Deck: 4 units: 65.68: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Retest now works with 50 deck gauntlet.

Retesting v6.3.0 with db disabled (enemy = /TOP25|TOP50/):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25|TOP50/" climb 50 -L 1 5 -o="data\own.txt" no-db
-------------------------------------------
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.02: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.02: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Deck improved: LU4GdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 64.76 (13 48 29 25 37 24 32 42 16 20 24 48 10 24 47 22 29 35 36 28 31 10 50 14 31 40 3
6 40 27 13 33 48 28 43 5 50 38 32 17 39 39 49 26 29 48 47 47 44 50 26 / 50)
3 units: 64.76: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: -void- -> [68518] Furrage_Test1: 65.2 (18 48 25 25 45 21 32 45 27 26 32 45 3 29 44 31 33 40 33 21 23 4 50 17 37 48 34 44 25 3 36 4
7 24 42 8 50 37 35 13 41 45 48 26 21 48 46 45 43 50 17 / 50)
4 units: 65.2: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2219 + 1606 simulations).
Optimized Deck: 4 units: 65.2: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Test works as always with no-db flag.

Testing v6.3.0 with db enabled (enemy = /TOP25/; back to 25 deck gauntlet):
Command: .\tuo.exe "Malika[1010], Furrage_Test1 #2, Furrage_Test2 #2" "/TOP25/" climb 50 -L 1 5 -o="data\own.txt"
-------------------------------------------
DB version v6.3.0
DB checksum 3350738322
Your Deck:1: Deck: S/GdCiGdCiHdCiHdCi
Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Enemy's Deck:0.04: Custom Deck #53 "TOP25-001  91.3886": MB5fERhdAchdAchdAchdAchNLfhNLfhZOfhNRfhHYAifYAi
Octane Optimized, Krellus' Nexus, Worrop Bellower, Worrop Bellower, Worrop Bellower, Worrop Bellower, Vironak, Vironak, Matreshka Steamroller, Gaia's Strategist, Rogu
e Constructor, Fatal Injector
Enemy's Deck:0.04: Custom Deck #54 "TOP25-002  87.2820": DV4bDRhBIfhBIfhTIfhTIfhTIfhNRfhdZAiVVBiNFCiNFCi
Barracus the Traitor, Petrisis' Nexus, Maculakornos, Zeus Skybreaker, Vuldurak Exhumer, Megalift Foundry, Megalift Foundry, Gaia's Strategist, Vuldurak Exhumer, Macul
akornos, Maculakornos, Kazarix Carrier

...

Enemy's Deck:0.04: Custom Deck #76 "TOP25-024  80.3223": WW5WbQhSc+Sc+dKMhdKMhLFYhFQchBOfhBOfhVVBiVVBi
Cain the Warden, Alpha Shielding, Castra Tesserarius, General's Charge, General's Charge, Phobostrooper Dario, Phobostrooper Dario, Emerald Roadster, Emerald Roadster
, Zeus Skybreaker, Zeus Skybreaker, Industry of Eden
Enemy's Deck:0.04: Custom Deck #77 "TOP25-025  80.0687": YE5edQhGKqGKqGKqNINhNINhNINh
Gaia the Purifier, Alpha Ferocity, Aggeroth Chaos, Aggeroth Chaos, Vile Darter, Vile Darter, Aggeroth Chaos, Vile Darter
0 (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 / 50)
4 units: 0: Malika, Furrage_Test1, Furrage_Test1, Furrage_Test2, Furrage_Test2
Deck improved: LU4GdCiGdCiHdCiHdCi: [1010] Malika -> [25227] Imperator Halcyon: 28.24 (0 34 2 6 16 10 20 29 20 5 10 23 5 11 19 7 19 10 9 6 14 14 47 5 12 / 50)
4 units: 28.24: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test2 #2
Deck improved: LU4GdCiHdCiHdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 38.24 (6 41 13 12 21 16 22 22 26 16 18 27 17 12 34 17 11 10 21 13 21 16 47 7 12 / 
50)
4 units: 38.24: Imperator Halcyon, Furrage_Test1, Furrage_Test2 #2, Furrage_Test4
Deck improved: LU4HdCiHdCiJdCiJdCi: [68518] Furrage_Test1 -> [68521] Furrage_Test4: 49.36 (7 37 17 18 22 23 27 36 26 16 15 39 27 25 41 15 25 21 21 23 26 36 47 7 20 / 
50)
4 units: 49.36: Imperator Halcyon, Furrage_Test2 #2, Furrage_Test4 #2
Deck improved: LU4HdCiJdCiJdCi: [68519] Furrage_Test2 -> -void-: 51.76 (10 41 18 14 28 15 27 41 28 23 16 38 33 17 43 18 27 26 28 17 20 39 49 5 26 / 50)
3 units: 51.76: Imperator Halcyon, Furrage_Test2, Furrage_Test4 #2
Deck improved: LU4GdCiJdCiJdCi: [68519] Furrage_Test2 -> [68518] Furrage_Test1: 59.84 (10 48 29 17 42 28 32 44 20 27 23 45 11 31 46 27 29 33 31 26 35 16 50 15 33 / 50
)
3 units: 59.84: Imperator Halcyon, Furrage_Test1, Furrage_Test4 #2
Deck improved: LU4GdCiGdCiJdCiJdCi: -void- -> [68518] Furrage_Test1: 60.32 (15 48 23 32 43 23 34 42 27 27 32 45 3 20 48 33 28 36 36 25 29 6 50 16 33 / 50)
4 units: 60.32: Imperator Halcyon, Furrage_Test1 #2, Furrage_Test4 #2
Evaluated 68 decks (2192 + 1582 simulations).
Optimized Deck: 4 units: 60.32: Imperator Halcyon, Furrage_Test1, Furrage_Test1, Furrage_Test4, Furrage_Test4

// Test also works with smaller gauntlet (25 deck).

Segmentation fault

i compile it:
root@astraG:/home/adming/tyrant/tyrant_optimize-3.0.2# make VERSION=v3.0.2

make -f make/Makefile.linux all
make[1]: ะฒั…ะพะด ะฒ ะบะฐั‚ะฐะปะพะณ ยซ/home/adming/tyrant/tyrant_optimize-3.0.2ยป
mkdir -p obj
touch obj/.stamp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/sim_test.o -c sim_test.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/tyrant.o -c tyrant.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/read.o -c read.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/cards.o -c cards.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/xml.o -c xml.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/sim.o -c sim.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/deck.o -c deck.cpp
g++ -Wall -Werror -std=gnu++11 -Ofast -DNDEBUG -DNQUEST -DTYRANT_OPTIMIZER_VERSION='"v3.0.2"' -o obj/tyrant_optimize.o -c tyrant_optimize.cpp
g++ -o tuo obj/sim_test.o obj/tyrant.o obj/read.o obj/cards.o obj/xml.o obj/sim.o obj/deck.o obj/tyrant_optimize.o -lboost_system -lboost_thread -lboost_filesystem -lboost_regex -lboost_timer -lpthread

and when i run tuo
./tuo "menog_u" "ShellGauntlet" pvp ordered -v -o -s climbex 10 200 fund 0 -L 4 10 dom- -e "SuperHeroism"

he has error:

Segmentation fault

refresh on structures and commanders?

Not sure if whether this is intentional or if this actually is a bug; but Refresh doesn't activate on Structures and Commanders. Kind of wish that Refresh did that.

Needs triage, -โ€” 08/22/2023 5:16 AM discord #tuo-help channel

Get sim.cpp to ~100% coverage

Cards/Skills:

  • stasis commander
  • berserk + enraged
  • enhance
  • mend
  • Fly
  • rush
  • siege

BGEs:

  • Virulence
  • Revenge
  • Cold Sleep
  • Oath of Loyalty
  • Devotion
  • Bloodlust
  • Brigade
  • Unity
  • Zealot's Preservation
  • Furiosity
  • Devour
  • Heroism
  • EnduringRage
  • Counterflux
  • Valor
  • SuperHeroism
  • Divert
  • TurningTides

Mode:

  • Flex
  • Raid
  • Brawl
  • Brawl_def
  • War
  • War_def
  • campagin

Assertion failed error

I am getting a error message when running a simulation with a gauntlet I have made.

Assertion failed: status->m_card->m_type != CardType::commander, file /home/runner/work/tyrant_optimize/tyrant_optimize/sim.cpp, line 1257

image
ST06.txt
By trail and error it looks like the last deck is causing the problem, but can't be for sure atleast the error comes every time I have that deck included, so it should be "easy" to replicate the error I think.

Thanks in advance

Poison redesign does not apply even when using "update-poison-after-attacked" flag

Though the update-poison-after-attacked exists, it has no effect. The old poison behaviour remains. The result are the same as when not using the flag or using the no-update-poison-after-attacked flag. Basically, it seems it has not been implemented yet.

TUO v4.8.0> .\tuo-debug.exe "Petrisis[1198], Manus Grappler" "Halcyon, Furrage Test" +v sim 1 update-poison-after-attacked
Your Deck:1: Deck: OFhBFDh
Petrisis, Manus Grappler
Petrisis: hp:60 legend bloodthirsty, Rally 5, Enrage 5, Enfeeble all 4
  Manus Grappler: 5/12/1 bloodthirsty, Payback 4, Legion 4, Poison 4

Enemy's Deck:1: Deck: EAhGdCi
Halcyon, Furrage Test
Halcyon: hp:61 legend imperial, Enhance all Stasis 9, Rally all imperial 6, Enrage imperial 10
  Furrage Test: 1/200/3 imperial, Enrage 3

RNG seed 2685252176
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Petrisis hp:60]
P0 Commander [Petrisis hp:60] plays Assault 0 [Manus Grappler: 5/12/1 bloodthirsty, Payback 4, Legion 4, Poison 4]
TURN 1 ends for P0 Commander [Petrisis hp:60]
------------------------------------------------------------------------
TURN 2 begins for P1 Commander [Halcyon hp:61]
P1 Commander [Halcyon hp:61] plays Assault 0 [Furrage Test: 1/200/3 imperial, Enrage 3]
TURN 2 ends for P1 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 3 begins for P0 Commander [Petrisis hp:60]
P0 Assault 0 [Manus Grappler att:[[5(base)]]=5 hp:12 cd:1] reduces its timer
P0 Commander [Petrisis hp:60] Rally 5 on P0 Assault 0 [Manus Grappler att:[[5(base)]]=5 hp:12]
P0 Commander [Petrisis hp:60] Enrage 5 on P0 Assault 0 [Manus Grappler att:[[5(base)]+5(temp)]=10 hp:12]
P0 Commander [Petrisis hp:60] Enfeeble 4 on P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:200 cd:3]
P0 Assault 0 [Manus Grappler att:[[5(base)]+5(temp)]=10 hp:12, enraged 5] attacks P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:200 cd:3, enfeebled 4] for 10+4(enfe
ebled)=14 damage
P0 Assault 0 [Manus Grappler att:[[5(base)]+5(temp)]=10 hp:12, enraged 5] poisons P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:186 cd:3, enfeebled 4] by 4

// Poison applied by attacker. It should apply when attacked.

TURN 3 ends for P0 Commander [Petrisis hp:60]
------------------------------------------------------------------------
TURN 4 begins for P1 Commander [Halcyon hp:61]
P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:186 cd:3, poisoned 4] reduces its timer
P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:186 cd:2, poisoned 4] takes poison damage 4

// Full poison damage done, but poison not removed. It should be half poison removed and applied as damage.

TURN 4 ends for P1 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 5 begins for P0 Commander [Petrisis hp:60]
P0 Commander [Petrisis hp:60] Rally 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[5(perm)]]]=10 hp:12]
P0 Commander [Petrisis hp:60] Enrage 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[5(perm)]]+5(temp)]=15 hp:12]
P0 Commander [Petrisis hp:60] Enfeeble 4 on P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:182 cd:2, poisoned 4]
P0 Assault 0 [Manus Grappler att:[[5(base)+[5(perm)]]+5(temp)]=15 hp:12, enraged 5] attacks P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:182 cd:2, enfeebled 4, poi
soned 4] for 15+4(enfeebled)=19 damage
TURN 5 ends for P0 Commander [Petrisis hp:60]
------------------------------------------------------------------------
TURN 6 begins for P1 Commander [Halcyon hp:61]
P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:163 cd:2, poisoned 4] reduces its timer
P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:163 cd:1, poisoned 4] takes poison damage 4
TURN 6 ends for P1 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 7 begins for P0 Commander [Petrisis hp:60]
P0 Commander [Petrisis hp:60] Rally 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[10(perm)]]]=15 hp:12]
P0 Commander [Petrisis hp:60] Enrage 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[10(perm)]]+5(temp)]=20 hp:12]
P0 Commander [Petrisis hp:60] Enfeeble 4 on P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:159 cd:1, poisoned 4]
P0 Assault 0 [Manus Grappler att:[[5(base)+[10(perm)]]+5(temp)]=20 hp:12, enraged 5] attacks P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:159 cd:1, enfeebled 4, po
isoned 4] for 20+4(enfeebled)=24 damage
TURN 7 ends for P0 Commander [Petrisis hp:60]
------------------------------------------------------------------------
TURN 8 begins for P1 Commander [Halcyon hp:61]
P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:135 cd:1, poisoned 4] reduces its timer
P1 Commander [Halcyon hp:61] Rally 6 on P1 Assault 0 [Furrage Test att:[[1(base)]]=1 hp:135, poisoned 4]
P1 Commander [Halcyon hp:61] Enrage 10 on P1 Assault 0 [Furrage Test att:[[1(base)]+6(temp)]=7 hp:135, poisoned 4]
P1 Assault 0 [Furrage Test att:[[1(base)]+6(temp)]=7 hp:135, poisoned 4, enraged 10] attacks P0 Assault 0 [Manus Grappler att:[[5(base)+[15(perm)]]]=20 hp:12] for 7 d
amage
P1 Assault 0 [Furrage Test att:[[1(base)+[10(perm)]]+6(temp)]=17 hp:135, poisoned 4, enraged 10] takes poison damage 4

// Poison not applied to card when it attacks the card with poison. Nor is there evidence of stacking.

TURN 8 ends for P1 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 9 begins for P0 Commander [Petrisis hp:60]
P0 Commander [Petrisis hp:60] Rally 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[15(perm)]]]=20 hp:5]
P0 Commander [Petrisis hp:60] Enrage 5 on P0 Assault 0 [Manus Grappler att:[[5(base)+[15(perm)]]+5(temp)]=25 hp:5]
P0 Commander [Petrisis hp:60] Enfeeble 4 on P1 Assault 0 [Furrage Test att:[[1(base)+[10(perm)]]]=11 hp:131, poisoned 4]
P0 Assault 0 [Manus Grappler att:[[5(base)+[15(perm)]]+5(temp)]=25 hp:5, enraged 5] attacks P1 Assault 0 [Furrage Test att:[[1(base)+[10(perm)]]]=11 hp:131, enfeebled
 4, poisoned 4] for 25+4(enfeebled)=29 damage
TURN 9 ends for P0 Commander [Petrisis hp:60]

X-Mult Bug

This makes X-Mult behave wrong when multiple raid levels are simmed like "Raid#5-1;Raid#5-20".
e80548c

Barrier did not trigger first turn

TUO v4.8.0> .\tuo-debug.exe "Cyrus[1110], Arctis Half-track" "Maion[1022], Loki the Trickster" +v sim 1
Your Deck:1: Deck: WChJSYh
Cyrus, Arctis Half-track
Cyrus: hp:31 imperial, Heal imperial 5, Mortar 3
  Arctis Half-track: 20/55/2 imperial, Barrier 60, Weaken all 30, Mortar all 30

Enemy's Deck:1: Deck: e/VQeh
Maion, Loki the Trickster
Maion: hp:32 righteous, Counter 5, Rally all righteous 2
  Loki the Trickster: 5/15/0 vindi progenitor, (On Play)Sunder all 3, Bravery 6, Hunt 7

RNG seed 887107680
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Cyrus hp:31]
P0 Commander [Cyrus hp:31] plays Assault 0 [Arctis Half-track: 20/55/2 imperial, Barrier 60, Weaken all 30, Mortar all 30]

// Should barrier have triggered above?

TURN 1 ends for P0 Commander [Cyrus hp:31]
------------------------------------------------------------------------
TURN 2 begins for P1 Commander [Maion hp:32]
P1 Commander [Maion hp:32] plays Assault 0 [Loki the Trickster: 5/15/0 vindi progenitor, (On Play)Sunder all 3, Bravery 6, Hunt 7]
P1 Assault 0 [Loki the Trickster att:[[5(base)]]=5 hp:15] activates Bravery 6
P1 Commander [Maion hp:32] Rally 2 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:15]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]+2(temp)]=13 hp:15] attacks P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:55 cd:2] for 13 damage

// No barrier so card got damaged.

P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]+2(temp)]=13 hp:15] hunts P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:42 cd:2] for 7 damage

// No barrier so card got damaged again. Should it have triggered after first attack?

P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:2] protects itself for 120 (barrier 60 x 2 damage taken)
TURN 2 ends for P1 Commander [Maion hp:32]
------------------------------------------------------------------------
TURN 3 begins for P0 Commander [Cyrus hp:31]
P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:2, protected 60] reduces its timer

// Barrier active now, so this looks correct.

P0 Commander [Cyrus hp:31] Heal 5 on P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:1, protected 60]
P0 Commander [Cyrus hp:31] Mortar 3 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:15]
TURN 3 ends for P0 Commander [Cyrus hp:31]
------------------------------------------------------------------------
TURN 4 begins for P1 Commander [Maion hp:32]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:13] activates Bravery 6
P1 Commander [Maion hp:32] Rally 2 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]]=17 hp:13]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]+2(temp)]=19 hp:13] attacks P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:40 cd:1, protected 60] fo
r 19-[60(protected)]=0 damage
P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]+2(temp)]=19 hp:13] hunts P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:40 cd:1, protected 60] for 
0 damage

// This looks correct. 0 damage from 2 attacks because barrier worked as expected

TURN 4 ends for P1 Commander [Maion hp:32]

// This happens even when the update-barrier-each-turn flag is used.

TUO v4.8.0> .\tuo-debug.exe "Cyrus[1110], Arctis Half-track" "Maion[1022], Loki the Trickster" +v sim 1 update-barrier-each-turn
Your Deck:1: Deck: WChJSYh
Cyrus, Arctis Half-track
Cyrus: hp:31 imperial, Heal imperial 5, Mortar 3
  Arctis Half-track: 20/55/2 imperial, Barrier 60, Weaken all 30, Mortar all 30

Enemy's Deck:1: Deck: e/VQeh
Maion, Loki the Trickster
Maion: hp:32 righteous, Counter 5, Rally all righteous 2
  Loki the Trickster: 5/15/0 vindi progenitor, (On Play)Sunder all 3, Bravery 6, Hunt 7

RNG seed 3983414880
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Cyrus hp:31]
P0 Commander [Cyrus hp:31] plays Assault 0 [Arctis Half-track: 20/55/2 imperial, Barrier 60, Weaken all 30, Mortar all 30]
TURN 1 ends for P0 Commander [Cyrus hp:31]
------------------------------------------------------------------------
TURN 2 begins for P1 Commander [Maion hp:32]
P1 Commander [Maion hp:32] plays Assault 0 [Loki the Trickster: 5/15/0 vindi progenitor, (On Play)Sunder all 3, Bravery 6, Hunt 7]
P1 Assault 0 [Loki the Trickster att:[[5(base)]]=5 hp:15] activates Bravery 6
P1 Commander [Maion hp:32] Rally 2 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:15]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]+2(temp)]=13 hp:15] attacks P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:55 cd:2] for 13 damage
P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]+2(temp)]=13 hp:15] hunts P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:42 cd:2] for 7 damage
P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:2] protects itself for 120 (barrier 60 x 2 damage taken)
TURN 2 ends for P1 Commander [Maion hp:32]
------------------------------------------------------------------------
TURN 3 begins for P0 Commander [Cyrus hp:31]
P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:2, protected 60] reduces its timer
P0 Commander [Cyrus hp:31] Heal 5 on P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:35 cd:1, protected 60]
P0 Commander [Cyrus hp:31] Mortar 3 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:15]
TURN 3 ends for P0 Commander [Cyrus hp:31]
------------------------------------------------------------------------
TURN 4 begins for P1 Commander [Maion hp:32]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[6(perm)]]]=11 hp:13] activates Bravery 6
P1 Commander [Maion hp:32] Rally 2 on P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]]=17 hp:13]
P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]+2(temp)]=19 hp:13] attacks P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:40 cd:1, protected 60] for 19-[60(protected)]=0 damage
P1 Assault 0 [Loki the Trickster att:[[5(base)+[12(perm)]]+2(temp)]=19 hp:13] hunts P0 Assault 0 [Arctis Half-track att:[[20(base)]]=20 hp:40 cd:1, protected 60] for 0 damage
TURN 4 ends for P1 Commander [Maion hp:32]

Minor Suggestion: Suggest change wording when db being recreated

This is a minor suggestion that can be done the same time another issue is addressed, if you agree with the suggestion.

Currently v6.4.0 gives the following messages when it detects the cards_sections have changed:

DB version v6.4.0-debug
DB checksum 2699380861
DB cards_sections mismatch to db
DB cards_sections checksum 1775599452 != 2699380861
DB ignoring database.yml

The last statement, DB ignoring database.yml, could be more user friendly and better understood by changing it to DB re-initializing database.yml.

TUO returning old DB result even when card buffed

TUO v6.3.0 with db enabled is returning results from database even when they are no longer valid. As demonstrated below, I ran a sim twice with the db enabled (default). As expected the second run returned the result stored in the db. I then buffed one of the cards used - so the result should change. When I tested again, TUO still returned the result from the db even though this was no longer correct.

To cross check the results, TUO was also run with the no_db option. This generated correct results in all cases.

Testing v6.3.0 with db enabled (database deleted):
Command: .\tuo-debug.exe "Malika[1010], Furrage_Test2, Furrage_Test2" "Malika[1010], Furrage_Test1, Furrage_Test1" sim 1 +v
-------------------------------------------
DB version 
DB checksum 
Your Deck:1: Deck: S/HdCiHdCi
Malika, Furrage_Test2, Furrage_Test2
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10

Enemy's Deck:1: Deck: S/GdCiGdCi
Malika, Furrage_Test1, Furrage_Test1
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1

RNG seed 1535929304
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Malika hp:30]
P0 Commander [Malika hp:30] plays Assault 0 [Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10]
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Commander [Malika hp:30] for 10 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] absorbs 3 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:17] takes 0 counter damage from P1 Commander [Malika hp:20]
TURN 1 ends for P0 Commander [Malika hp:30]
------------------------------------------------------------------------
TURN 2 begins for P1 Commander [Malika hp:20]
P1 Commander [Malika hp:20] plays Assault 0 [Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1]
P1 Commander [Malika hp:20] Strike 3 on P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:17]
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:17] absorbs 3 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:200] attacks P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14] for 10-[20(armor)]=0 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:200] takes 10 counter damage from P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14]
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:190] activates Flurry x 2
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:190] attacks P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14] for 10-[20(armor)]=0 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:190] takes 10 counter damage from P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14]
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:180] attacks P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14] for 10-[20(armor)]=0 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:180] takes 10 counter damage from P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:14]
TURN 2 ends for P1 Commander [Malika hp:20]

...

TURN 13 begins for P0 Commander [Malika hp:30]
P0 Commander [Malika hp:30] Strike 3 on P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:10] but it evades
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:10] for 10 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0] dies
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] venoms P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0] by 0
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] absorbs 10 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:10] takes 0 counter damage from P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0]
P0 Assault 1 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Commander [Malika hp:10] for 10 damage
P1 Commander [Malika hp:0] dies
Dead and removed: P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0]
You win.
win%: 100 (1 / 1)
stall%: 0 (0 / 1)
loss%: 0 (0 / 1)
 0.519095s wall, 0.328125s user + 0.109375s system = 0.437500s CPU (84.3%)

// Turn by turn output indicates TUO ran a sim instead of pulling a result from the db

Repeating testing v6.3.0 with db enabled (database should now have been recreated):
Command: .\tuo-debug.exe "Malika[1010], Furrage_Test2, Furrage_Test2" "Malika[1010], Furrage_Test1, Furrage_Test1" sim 1 +v
-------------------------------------------
DB version v6.3.0-debug
DB checksum 825880214
Your Deck:1: Deck: S/HdCiHdCi
Malika, Furrage_Test2, Furrage_Test2
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10

Enemy's Deck:1: Deck: S/GdCiGdCi
Malika, Furrage_Test1, Furrage_Test1
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1

RNG seed 3478853736
win%: 100 (1 / 1)
stall%: 0 (0 / 1)
loss%: 0 (0 / 1)
 0.533524s wall, 0.312500s user + 0.062500s system = 0.375000s CPU (70.3%)

// TUO immediately returned a result indicating it came from the db

Testing v6.3.0 with db disabled:
Command: .\tuo-debug.exe "Malika[1010], Furrage_Test2, Furrage_Test2" "Malika[1010], Furrage_Test1, Furrage_Test1" sim 1 +v no-db
-------------------------------------------
Your Deck:1: Deck: S/HdCiHdCi
Malika, Furrage_Test2, Furrage_Test2
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10

Enemy's Deck:1: Deck: S/GdCiGdCi
Malika, Furrage_Test1, Furrage_Test1
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1
  Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1

RNG seed 2389774264
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Malika hp:30]
P0 Commander [Malika hp:30] plays Assault 0 [Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10]
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Commander [Malika hp:30] for 10 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] absorbs 3 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:17] takes 0 counter damage from P1 Commander [Malika hp:20]
TURN 1 ends for P0 Commander [Malika hp:30]
------------------------------------------------------------------------

...

TURN 13 begins for P0 Commander [Malika hp:30]
P0 Commander [Malika hp:30] Strike 3 on P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:10] but it evades
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:10] for 10 damage
P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0] dies
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] venoms P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0] by 0
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] absorbs 10 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:10] takes 0 counter damage from P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0]
P0 Assault 1 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Commander [Malika hp:10] for 10 damage
P1 Commander [Malika hp:0] dies
Dead and removed: P1 Assault 0 [Furrage_Test1 att:[[10(base)]]=10 hp:0]
You win.
win%: 100 (1 / 1)
stall%: 0 (0 / 1)
loss%: 0 (0 / 1)
 0.428256s wall, 0.296875s user + 0.031250s system = 0.328125s CPU (76.6%)

// Same result reached when no_db option used


Testing v6.3.0 with db enabled (using buffed card Furrage_Test1):
Command: .\tuo-debug.exe "Malika[1010], Furrage_Test2, Furrage_Test2" "Malika[1010], Furrage_Test1, Furrage_Test1" sim 1 +v
-------------------------------------------
DB version v6.3.0-debug
DB checksum 825880214
Your Deck:1: Deck: S/HdCiHdCi
Malika, Furrage_Test2, Furrage_Test2
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10

Enemy's Deck:1: Deck: S/GdCiGdCi
Malika, Furrage_Test1, Furrage_Test1
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test1: 40/700/0 imperial, Evade 10, Counter 10, Flurry 2 every 1
  Furrage_Test1: 40/700/0 imperial, Evade 10, Counter 10, Flurry 2 every 1

RNG seed 1776061336
win%: 100 (1 / 1)
stall%: 0 (0 / 1)
loss%: 0 (0 / 1)
 0.537000s wall, 0.421875s user + 0.031250s system = 0.453125s CPU (84.4%)

// Note Furrage_Test1 is now buffed:
From: "Furrage_Test1: 10/200/0 imperial, Evade 10, Counter 10, Flurry 2 every 1"
To: "Furrage_Test1: 40/700/0 imperial, Evade 10, Counter 10, Flurry 2 every 1").
However TUO still returned the result from the db (which is based on the unbuffed card).

Testing v6.3.0 with db disabled (using buffed card Furrage_Test1):
Command: .\tuo-debug.exe "Malika[1010], Furrage_Test2, Furrage_Test2" "Malika[1010], Furrage_Test1, Furrage_Test1" sim 1 +v no-db
-------------------------------------------
Your Deck:1: Deck: S/HdCiHdCi
Malika, Furrage_Test2, Furrage_Test2
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10
  Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10

Enemy's Deck:1: Deck: S/GdCiGdCi
Malika, Furrage_Test1, Furrage_Test1
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Furrage_Test1: 40/700/0 imperial, Evade 10, Counter 10, Flurry 2 every 1
  Furrage_Test1: 40/700/0 imperial, Evade 10, Counter 10, Flurry 2 every 1

RNG seed 2963001288
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Malika hp:30]
P0 Commander [Malika hp:30] plays Assault 0 [Furrage_Test2: 10/200/0 imperial, Armor 20, Absorb 20, Counter 10]
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] attacks P1 Commander [Malika hp:30] for 10 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:20] absorbs 3 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:200 absorb:17] takes 0 counter damage from P1 Commander [Malika hp:20]
TURN 1 ends for P0 Commander [Malika hp:30]

...

TURN 8 begins for P1 Commander [Malika hp:10]
P1 Commander [Malika hp:10] Strike 3 on P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:20 absorb:10]
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:20 absorb:10] absorbs 3 damage
P1 Assault 0 [Furrage_Test1 att:[[40(base)]]=40 hp:580] attacks P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:20 absorb:7] for 40-[20(armor)]=20 damage
P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:0 absorb:7] dies
P1 Assault 0 [Furrage_Test1 att:[[40(base)]]=40 hp:580] venoms P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:0 absorb:7] by 0
P1 Assault 0 [Furrage_Test1 att:[[40(base)]]=40 hp:580] takes 10 counter damage from P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:0 absorb:7]
P1 Assault 0 [Furrage_Test1 att:[[40(base)]]=40 hp:570] activates Flurry x 2
P1 Assault 0 [Furrage_Test1 att:[[40(base)]]=40 hp:570] attacks P0 Commander [Malika hp:30] for 40 damage
P0 Commander [Malika hp:0] dies
Dead and removed: P0 Assault 0 [Furrage_Test2 att:[[10(base)]]=10 hp:0 absorb:7]
You lose.
win%: 0 (0 / 1)
stall%: 0 (0 / 1)
loss%: 100 (1 / 1)
 0.408814s wall, 0.218750s user + 0.046875s system = 0.265625s CPU (65.0%)

// When the db is disabled the correct result is returned.

Cards without Venom trying to apply Venom 0 - v6.3.0

I got a weird error with v6.3.0. It is testing for venom on a card that does have venom:

Your Deck:1: Deck: EAhGdCiGdCi
Halcyon, Furrage_Test, Furrage_Test
Halcyon: hp:61 legend imperial, Enhance all Stasis 9, Rally all imperial 6, Enrage imperial 10
  Furrage_Test: 1/400/4 imperial, Barrier 10, Armor 20, Absorb 5
  Furrage_Test: 1/400/4 imperial, Barrier 10, Armor 20, Absorb 5

Enemy's Deck:1: Deck: S/YGrZJbh
Malika, Trench Hurler, Prixis Worldbender
Malika: hp:30 raider, Counter 3, Heal raider 4, Strike 3
  Trench Hurler: 5/15/0 legend raider, Bravery 10, Pierce 13, Flurry every 2
  Prixis Worldbender: 15/50/2 mythic progenitor, Scavenge 15, Coalition 15, Flurry 2 every 3

RNG seed 2972837496
------------------------------------------------------------------------
TURN 1 begins for P0 Commander [Halcyon hp:61]
P0 Commander [Halcyon hp:61] plays Assault 0 [Furrage_Test: 1/400/4 imperial, Barrier 10, Armor 20, Absorb 5]
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 cd:4] gets barrier protection 10 per turn
TURN 1 ends for P0 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 2 begins for P1 Commander [Malika hp:30]
P1 Commander [Malika hp:30] plays Assault 0 [Prixis Worldbender: 15/50/2 mythic progenitor, Scavenge 15, Coalition 15, Flurry 2 every 3]

// Prixis does not have venom

P1 Commander [Malika hp:30] Strike 3 on P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:4, protected 10]
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:4, protected 10] absorbs 3 damage
TURN 2 ends for P1 Commander [Malika hp:30]

...

TURN 6 begins for P1 Commander [Malika hp:30]
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50 cd:1] reduces its timer
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] loses Bravery (weak blocker P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:3, protected 10])
P1 Commander [Malika hp:30] Strike 3 on P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10]
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10] absorbs 3 damage
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] attacks P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:2 cd:2, protected 10] for 15+30(coalition/x2)-[20(armor)+10(protected)]=15 damage
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] venoms P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:385 absorb:2 cd:2, protected 10] by 0

// Error: Prixis trying to use venom 0. The result is correct but this should not have happened.

P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:385 absorb:2 cd:2, protected 10] protects itself for 10 (barrier 10 x 1 damage taken)
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] activates Flurry x 2
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] attacks P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:385 absorb:2 cd:2, protected 20] for 15+30(coalition/x2)-[20(armor)+20(protected)]=5 damage
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] venoms P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:2 cd:2, protected 20] by 0

// Error: Prixis trying to use venom again.

P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:2 cd:2, protected 20] protects itself for 10 (barrier 10 x 1 damage taken)
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] attacks P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:2 cd:2, protected 30] for 15+30(coalition/x2)-[20(armor)+30(protected)]=0 damage
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] attacks P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:3, protected 10] for 5-[20(armor)+10(protected)-13(pierce)]=0 damage
TURN 6 ends for P1 Commander [Malika hp:30]
------------------------------------------------------------------------
TURN 7 begins for P0 Commander [Halcyon hp:61]
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:5 cd:2] gets barrier protection 10 per turn
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:5 cd:2, protected 10] reduces its timer
P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:3] gets barrier protection 10 per turn
P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:3, protected 10] reduces its timer
TURN 7 ends for P0 Commander [Halcyon hp:61]
------------------------------------------------------------------------
TURN 8 begins for P1 Commander [Malika hp:30]
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] loses Bravery (weak blocker P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10])
P1 Commander [Malika hp:30] Strike 3 on P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10]
P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10] absorbs 3 damage
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] attacks P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:380 absorb:5 cd:1, protected 10] for 15+30(coalition/x2)-[20(armor)+10(protected)]=15 damage
P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] venoms P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:365 absorb:5 cd:1, protected 10] by 0

// Error: Prixis trying to use venom again in a different turn.

P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:365 absorb:5 cd:1, protected 10] protects itself for 10 (barrier 10 x 1 damage taken)
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] attacks P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:2 cd:2, protected 10] for 5-[20(armor)+10(protected)-13(pierce)]=0 damage
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] activates Flurry x 1
P1 Assault 1 [Trench Hurler att:[[5(base)]]=5 hp:15] attacks P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:2 cd:2, protected 10] for 5-[20(armor)+10(protected)-13(pierce)]=0 damage
TURN 8 ends for P1 Commander [Malika hp:30]
------------------------------------------------------------------------
TURN 9 begins for P0 Commander [Halcyon hp:61]
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:365 absorb:5 cd:1] gets barrier protection 10 per turn
P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:365 absorb:5 cd:1, protected 10] reduces its timer
P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2] gets barrier protection 10 per turn
P0 Assault 1 [Furrage_Test att:[[1(base)]]=1 hp:400 absorb:5 cd:2, protected 10] reduces its timer
P0 Commander [Halcyon hp:61] Rally 6 on P0 Assault 0 [Furrage_Test att:[[1(base)]]=1 hp:365 absorb:5, protected 10]
P0 Commander [Halcyon hp:61] Enrage 10 on P0 Assault 0 [Furrage_Test att:[[1(base)]+6(temp)]=7 hp:365 absorb:5, protected 10]
P0 Assault 0 [Furrage_Test att:[[1(base)]+6(temp)]=7 hp:365 absorb:5, protected 10, enraged 10] attacks P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:50] for 7 damage
P0 Assault 0 [Furrage_Test att:[[1(base)]+6(temp)]=7 hp:365 absorb:5, protected 10, enraged 10] venoms P1 Assault 0 [Prixis Worldbender att:[[15(base)]]=15 hp:43] by 0

// Error: Furrage_Test card tries to use venom.

TURN 9 ends for P0 Commander [Halcyon hp:61]

In this test, Trench hurler was the only assault that did not try to use venom.

Is it a bug?...

While simming with cards that I've created, I came upon this bug;
Cherletsian Unit 39 has Mark 45, however it does not activate despite attacking.
image

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.