<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="34">
  <CheatEntries>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Activate Mono"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
LaunchMonoDataCollector()
{$asm}

[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"don't take damage"</Description>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Ascendant.exe
  Version: 
  Date   : 2021-07-28
  Author : Marc

  This script does prevent us from getting hurt
}

define(address,Player:TakeDamage+23c5)
define(bytes,2B C1 89 83 C8 00 00 00)

[ENABLE]
assert(address,bytes)
address:
  nop 2

[DISABLE]
address:
  db bytes
  // sub eax,ecx
  // mov [ebx+000000C8],eax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Player:TakeDamage+23c5

Player:TakeDamage+23a4: 83 C4 10              - add esp,10
Player:TakeDamage+23a7: 8B C8                 - mov ecx,eax
Player:TakeDamage+23a9: 8B 85 74 FB FF FF     - mov eax,[ebp-0000048C]
Player:TakeDamage+23af: 83 EC 08              - sub esp,08
Player:TakeDamage+23b2: 51                    - push ecx
Player:TakeDamage+23b3: 50                    - push eax
Player:TakeDamage+23b4: E8 8F 10 00 00        - call GameStats:SetDamageTaken
Player:TakeDamage+23b9: 83 C4 10              - add esp,10
Player:TakeDamage+23bc: 8B 83 C8 00 00 00     - mov eax,[ebx+000000C8]
Player:TakeDamage+23c2: 8B 4D 14              - mov ecx,[ebp+14]
// ---------- INJECTING HERE ----------
Player:TakeDamage+23c5: 2B C1                 - sub eax,ecx
// ---------- DONE INJECTING  ----------
Player:TakeDamage+23c7: 89 83 C8 00 00 00     - mov [ebx+000000C8],eax
Player:TakeDamage+23cd: 85 C0                 - test eax,eax
Player:TakeDamage+23cf: 0F 8E F5 00 00 00     - jng Player:TakeDamage+24ca
Player:TakeDamage+23d5: 8B 83 C8 00 00 00     - mov eax,[ebx+000000C8]
Player:TakeDamage+23db: B9 01 00 00 00        - mov ecx,00000001
Player:TakeDamage+23e0: 3D 64 00 00 00        - cmp eax,00000064
Player:TakeDamage+23e5: 0F B6 85 DB FB FF FF  - movzx eax,byte ptr [ebp-00000425]
Player:TakeDamage+23ec: 0F 4C C1              - cmovl eax,ecx
Player:TakeDamage+23ef: 88 85 DB FB FF FF     - mov [ebp-00000425],al
Player:TakeDamage+23f5: E9 D0 00 00 00        - jmp Player:TakeDamage+24ca
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>2</ID>
          <Description>"don't spend mana on casting"</Description>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Ascendant.exe
  Version: 
  Date   : 2021-07-28
  Author : Marc

  This script prevents energy from being spend when casting spells
  for whom it concerns: value range if from 0 to 40 as 4-Byte integer
}

define(address,Player:CastSpell+11a)
define(bytes,2B C1 89 87 D0 00 00 00)

[ENABLE]
assert(address,bytes)
address:
  nop 2

[DISABLE]
address:
  db bytes
  // sub eax,ecx
  // mov [edi+000000D0],eax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Player:CastSpell+11a

Player:CastSpell+100: 83 EC 0C              - sub esp,0C
Player:CastSpell+103: 57                    - push edi
Player:CastSpell+104: 8B 07                 - mov eax,[edi]
Player:CastSpell+106: 90                    - nop 
Player:CastSpell+107: 90                    - nop 
Player:CastSpell+108: 90                    - nop 
Player:CastSpell+109: FF 90 C8 00 00 00     - call dword ptr [eax+000000C8]
Player:CastSpell+10f: 83 C4 10              - add esp,10
Player:CastSpell+112: 8B C8                 - mov ecx,eax
Player:CastSpell+114: 8B 85 E4 FE FF FF     - mov eax,[ebp-0000011C]
// ---------- INJECTING HERE ----------
Player:CastSpell+11a: 2B C1                 - sub eax,ecx
// ---------- DONE INJECTING  ----------
Player:CastSpell+11c: 89 87 D0 00 00 00     - mov [edi+000000D0],eax
Player:CastSpell+122: 8B 47 4C              - mov eax,[edi+4C]
Player:CastSpell+125: 89 85 F4 FE FF FF     - mov [ebp-0000010C],eax
Player:CastSpell+12b: 0F B6 87 C0 00 00 00  - movzx eax,byte ptr [edi+000000C0]
Player:CastSpell+132: 85 C0                 - test eax,eax
Player:CastSpell+134: 0F 84 85 00 00 00     - je Player:CastSpell+1bf
Player:CastSpell+13a: 33 DB                 - xor ebx,ebx
Player:CastSpell+13c: E9 72 00 00 00        - jmp Player:CastSpell+1b3
Player:CastSpell+141: 8D A4 24 00 00 00 00  - lea esp,[esp+00000000]
Player:CastSpell+148: 8B 47 40              - mov eax,[edi+40]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"Influence"</Description>
          <LastState Value="3500" RealAddress="04321FAC"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>[PlayerHUD:DrawCurrency+25d] </Address>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"Keys or whatever that icon means"</Description>
          <LastState Value="22" RealAddress="04321FA8"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>[PlayerHUD:DrawCurrency+25d]-4 </Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
