Create a turn-based combat simulation between two classes: Knight and Rogue.
1. Knight has a resource pool called Knight_HP (starts at 100) and an automated generator that produces Knight_Tactics (1 per turn). Knight attacks every turn and deals 15 damage to Rogue_HP. Knight has two states:
- "Shield Mode" (Defense): Redirects all incoming damage from Rogue to a special gate. This gate has a 50% chance to block the damage completely (0 damage to Knight_HP) and 50% chance to let the damage pass to Knight_HP. Every blocked hit generates +1 Knight_Tactics.
- "Two-Handed Mode" (Damage): Knight spends 3 Knight_Tactics to perform a "Crit Strike" that deals 45 damage instead of 15. In this mode, Knight has 0% block chance.
2. Rogue has a resource pool called Rogue_HP (starts at 80). Rogue attacks every turn and deals 10 damage to Knight_HP. Rogue has two states:
- "Evasion Mode" (Defense): Rogue has a 50% chance to completely evade any incoming Knight attack. When Rogue successfully evades, it generates +1 Rogue_Combo point.
- "Combo Mode" (Damage): Rogue spends 3 Rogue_Combo points to perform a "Eviscerate" strike that deals 30 damage and triggers a "Bleed" effect (deals 5 damage per turn for 3 turns, ignoring Knight's block chance).
3. The game runs in ticks (turns). In each turn, both characters attack simultaneously. Add an interactive switch or custom variables so I can manually change the active state (Defense/Damage) for both the Knight and the Rogue during the simulation run, or let them switch automatically when they accumulate 3 tactics/combo points. Add a chart showing Knight_HP and Rogue_HP over time.