<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="29">
  <CheatEntries>
    <CheatEntry>
      <ID>38</ID>
      <Description>"Enable"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$LUA}
LaunchMonoDataCollector()

[DISABLE]

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>30</ID>
          <Description>"F1: Fill Hitpoints and Action Points"</Description>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
alloc(newmem,$1000,2F916D1B)
label(code)
label(return)
label(onehit_on)

newmem:
  cmp dword ptr [rax+90],0  // check if it is an Party Member
  je onehit                 // if not, check for OneHitKill

  push ecx                  // save ecx to the stack
  mov ecx, [rax+114]        // load max health
  mov [rax+118],ecx         // push full health to current health
  mov ecx, [rax+120]        // load max action points
  mov [rax+11c],ecx         // set full action points
  pop ecx                   // restore ecx from stack
  movss xmm0,[rax+00000118] // load our filled health value
  jmp return

onehit:
  cmp byte ptr [onehit_on],1      // check if OneHitKill is on
  jne code                  // wenn nicht, springe zum normalen Code zurück
  mov [rax+118],(float)1   // almost kill the enemy (will die on next hit)

code:
  movss xmm0,[rax+00000118]
  jmp return

onehit_on:
  db 0

KingArt.Dwarves.Combat:Combatant:get_Health+b:
  jmp newmem
  nop
  nop
  nop

return:
registersymbol(onehit_on)

[DISABLE]
dealloc(newmem)
unregistersymbol(onehit_on)
KingArt.Dwarves.Combat:Combatant:get_Health+b:
movss xmm0,[rax+00000118]

</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>112</Key>
              </Keys>
              <ID>0</ID>
              <ActivateSound TTS="EN">Godmode on</ActivateSound>
              <DeactivateSound TTS="EN">Godmode off</DeactivateSound>
            </Hotkey>
          </Hotkeys>
          <CheatEntries>
            <CheatEntry>
              <ID>39</ID>
              <Description>"F2: OneHit-Kills"</Description>
              <LastState Activated="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
onehit_on:
db 1
[DISABLE]
onehit_on:
db 0

</AssemblerScript>
              <Hotkeys>
                <Hotkey>
                  <Action>Toggle Activation</Action>
                  <Keys>
                    <Key>113</Key>
                  </Keys>
                  <ID>0</ID>
                  <ActivateSound>Activate</ActivateSound>
                  <DeactivateSound>Deactivate</DeactivateSound>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>34</ID>
          <Description>"F3: Gold and Food"</Description>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
alloc(goldandfood,$1000,27755C47)

label(code)
label(return)

goldandfood:
   // check for food/gold
   cmp word ptr[rsi+14], 'f'
   jne next
   cmp word ptr[rsi+16], 'o'
   jne next
   cmp word ptr[rsi+18], 'o'
   jne next
   cmp word ptr[rsi+1a], 'd'
   jne next

   movss xmm0,[foodvalue]
   jmp return

next:
   cmp word ptr[rsi+14], 'g'
   jne code
   cmp word ptr[rsi+16], 'o'
   jne code
   cmp word ptr[rsi+18], 'l'
   jne code
   cmp word ptr[rsi+1a], 'd'
   jne code

   movss xmm0,[goldvalue]
   jmp return

code:
   movss xmm0,[rax+10]
   jmp return

foodvalue:
   dd (float)999.00

goldvalue:
   dd (float)100000.00

KingArt.Dwarves.Combat.Party:PartyManager:GetResource+97:
  jmp goldandfood

return:

[DISABLE]
dealloc(goldandfood)
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+97:
movss xmm0,[rax+10]


{
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+91 - 0F85 19000000         - jne KingArt.Dwarves.Combat.Party:PartyManager:GetResource+b0
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+97 - F3 0F10 40 10         - movss xmm0,[rax+10]
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+9c - F3 0F5A C0            - cvtss2sd xmm0,xmm0
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+a0 - F2 0F2C C0            - cvttsd2si eax,xmm0
KingArt.Dwarves.Combat.Party:PartyManager:GetResource+a4 - EB 02                 - jmp KingArt.Dwarves.Combat.Party:PartyManager:GetResource+a8
}
</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>114</Key>
              </Keys>
              <ID>0</ID>
              <ActivateSound TTS="EN">on</ActivateSound>
              <DeactivateSound TTS="EN">off</DeactivateSound>
            </Hotkey>
          </Hotkeys>
        </CheatEntry>
        <CheatEntry>
          <ID>41</ID>
          <Description>"Experience in Current Level (open Group Info Screen to fill address)"</Description>
          <Options moHideChildren="1"/>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
alloc(experience,$1000,27755C47)
globalalloc(xpaddress,8)
label(return)

experience:
   mov [xpaddress],rax
   movsxd  rax,dword ptr [rax+6C]
   jmp return

Assets.Code.Scripts.ViewModels.ComponentViewModels:XPCharacterController:UpdateBar+ae:
  jmp experience

return:

[DISABLE]
dealloc(experience)

Assets.Code.Scripts.ViewModels.ComponentViewModels:XPCharacterController:UpdateBar+ae:
movsxd  rax,dword ptr [rax+6C]
mov rcx,[rsi+00000080]

</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>42</ID>
              <Description>"Experience Points in Current Level"</Description>
              <LastState Value="1725" RealAddress="2E799DEC"/>
              <VariableType>4 Bytes</VariableType>
              <Address>[xpaddress]+6c</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>xpaddress</Name>
      <Address>01630000</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
  <Structures StructVersion="2">
    <Structure Name="Combatant" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
      <Elements>
        <Element Offset="16" Vartype="Pointer" Bytesize="8" Description="_audioSource" DisplayMethod="Unsigned Integer"/>
        <Element Offset="24" Vartype="Pointer" Bytesize="8" Description="_gameObject" DisplayMethod="Unsigned Integer"/>
        <Element Offset="32" Vartype="Pointer" Bytesize="8" Description="_autoAnimationController" DisplayMethod="Unsigned Integer"/>
        <Element Offset="40" Vartype="Pointer" Bytesize="8" Description="_grunt" DisplayMethod="Unsigned Integer"/>
        <Element Offset="48" Vartype="Pointer" Bytesize="8" Description="_prefabDesc" DisplayMethod="Unsigned Integer"/>
        <Element Offset="56" Vartype="Pointer" Bytesize="8" Description="Interrupted" DisplayMethod="Unsigned Integer"/>
        <Element Offset="64" Vartype="Pointer" Bytesize="8" Description="ClassName" DisplayMethod="Unsigned Integer"/>
        <Element Offset="72" Vartype="Pointer" Bytesize="8" Description="_abilities" DisplayMethod="Unsigned Integer"/>
        <Element Offset="80" Vartype="Pointer" Bytesize="8" Description="_activeAbility" DisplayMethod="Unsigned Integer"/>
        <Element Offset="88" Vartype="Pointer" Bytesize="8" Description="_battle" DisplayMethod="Unsigned Integer"/>
        <Element Offset="96" Vartype="Pointer" Bytesize="8" Description="Id" DisplayMethod="Unsigned Integer" BackgroundColor="C080FF"/>
        <Element Offset="104" Vartype="Pointer" Bytesize="8" Description="Tag" DisplayMethod="Unsigned Integer"/>
        <Element Offset="112" Vartype="Pointer" Bytesize="8" Description="Description" DisplayMethod="Unsigned Integer"/>
        <Element Offset="120" Vartype="Pointer" Bytesize="8" Description="ActorDescription" DisplayMethod="Unsigned Integer"/>
        <Element Offset="128" Vartype="Pointer" Bytesize="8" Description="&lt;Squad&gt;k__BackingField" DisplayMethod="Unsigned Integer"/>
        <Element Offset="136" Vartype="Pointer" Bytesize="8" Description="_autoAttacks" DisplayMethod="Unsigned Integer"/>
        <Element Offset="144" Vartype="Pointer" Bytesize="8" Description="partyMember" DisplayMethod="Unsigned Integer" BackgroundColor="C080FF"/>
        <Element Offset="152" Vartype="Pointer" Bytesize="8" Description="_focusTarget" DisplayMethod="Unsigned Integer"/>
        <Element Offset="160" Vartype="Pointer" Bytesize="8" Description="_buffs" DisplayMethod="Unsigned Integer"/>
        <Element Offset="168" Vartype="Pointer" Bytesize="8" Description="_animatorController" DisplayMethod="Unsigned Integer"/>
        <Element Offset="176" Vartype="Pointer" Bytesize="8" Description="_behaviour" DisplayMethod="Unsigned Integer"/>
        <Element Offset="184" Vartype="Pointer" Bytesize="8" Description="_currentCommand" DisplayMethod="Unsigned Integer"/>
        <Element Offset="192" Vartype="4 Bytes" Bytesize="4" Description="_currentAutoAttack" DisplayMethod="Unsigned Integer"/>
        <Element Offset="208" Vartype="Pointer" Bytesize="8" Description="_combatantMarker" DisplayMethod="Unsigned Integer"/>
        <Element Offset="216" Vartype="Pointer" Bytesize="8" Description="_combatantTransforms" DisplayMethod="Unsigned Integer"/>
        <Element Offset="224" Vartype="Pointer" Bytesize="8" Description="CombatantConditionEffect" DisplayMethod="Unsigned Integer"/>
        <Element Offset="232" Vartype="Pointer" Bytesize="8" Description="CombatantStateBodyEffects" DisplayMethod="Unsigned Integer"/>
        <Element Offset="240" Vartype="Pointer" Bytesize="8" Description="CombatantConditionAudio" DisplayMethod="Unsigned Integer"/>
        <Element Offset="248" Vartype="Pointer" Bytesize="8" Description="_diffService" DisplayMethod="Unsigned Integer"/>
        <Element Offset="256" Vartype="Pointer" Bytesize="8" Description="&lt;SoundManager&gt;k__BackingField" DisplayMethod="Unsigned Integer"/>
        <Element Offset="264" Vartype="Float" Bytesize="4" Description="UnseededCountDown" DisplayMethod="Unsigned Integer"/>
        <Element Offset="268" Vartype="Byte" Bytesize="1" Description="ConstrainToNavmesh" DisplayMethod="Unsigned Integer"/>
        <Element Offset="272" Vartype="Float" Bytesize="4" Description="DyingDelay" DisplayMethod="Unsigned Integer"/>
        <Element Offset="276" Vartype="Float" Bytesize="4" Description="_maxHealth" DisplayMethod="Unsigned Integer" BackgroundColor="FFFF80"/>
        <Element Offset="280" Vartype="Float" Bytesize="4" Description="_health" DisplayMethod="Unsigned Integer" BackgroundColor="FFFF80"/>
        <Element Offset="284" Vartype="4 Bytes" Bytesize="4" Description="ActionPoints" DisplayMethod="Unsigned Integer" BackgroundColor="80FFFF"/>
        <Element Offset="288" Vartype="4 Bytes" Bytesize="4" Description="ActionPointsMax" DisplayMethod="Unsigned Integer" BackgroundColor="80FFFF"/>
        <Element Offset="292" Vartype="Float" Bytesize="4" Description="MinHealth" DisplayMethod="Unsigned Integer"/>
        <Element Offset="296" Vartype="Float" Bytesize="4" Description="ActionPointsFraction" DisplayMethod="Unsigned Integer"/>
        <Element Offset="300" Vartype="Byte" Bytesize="1" Description="_autoUseAbility" DisplayMethod="Unsigned Integer"/>
        <Element Offset="304" Vartype="4 Bytes" Bytesize="4" Description="WeaponType" DisplayMethod="Unsigned Integer"/>
        <Element Offset="308" Vartype="4 Bytes" Bytesize="4" Description="LeftHandWeaponType" DisplayMethod="Unsigned Integer"/>
        <Element Offset="312" Vartype="4 Bytes" Bytesize="4" Description="ArmorType" DisplayMethod="Unsigned Integer"/>
        <Element Offset="316" Vartype="4 Bytes" Bytesize="4" Description="HealthbarType" DisplayMethod="Unsigned Integer"/>
        <Element Offset="320" Vartype="4 Bytes" Bytesize="4" Description="PrefabState" DisplayMethod="Unsigned Integer"/>
        <Element Offset="324" Vartype="4 Bytes" Bytesize="4" Description="DeathType" DisplayMethod="Unsigned Integer"/>
        <Element Offset="328" Vartype="Float" Bytesize="4" Description="_autoUseAbilityTimer" DisplayMethod="Unsigned Integer"/>
        <Element Offset="332" Vartype="Byte" Bytesize="1" Description="_closeCombatAttacksEnabled" DisplayMethod="Unsigned Integer"/>
        <Element Offset="333" Vartype="Byte" Bytesize="1" Description="_closeCombatFlag" DisplayMethod="Unsigned Integer"/>
        <Element Offset="334" Vartype="Byte" Bytesize="1" Description="_autoAttacksEnabled" DisplayMethod="Unsigned Integer"/>
        <Element Offset="336" Vartype="Float" Bytesize="4" Description="_lowestHealthThisSession" DisplayMethod="Unsigned Integer"/>
        <Element Offset="340" Vartype="Float" Bytesize="4" Description="_outOfCombatTimer" DisplayMethod="Unsigned Integer"/>
        <Element Offset="344" Vartype="Float" Bytesize="4" Description="_height" DisplayMethod="Unsigned Integer"/>
        <Element Offset="348" Vartype="Byte" Bytesize="1" Description="_userInputBlocked" DisplayMethod="Unsigned Integer"/>
        <Element Offset="349" Vartype="Byte" Bytesize="1" Description="&lt;AutoUseFinisher&gt;k__BackingField" DisplayMethod="Unsigned Integer"/>
      </Elements>
    </Structure>
  </Structures>
</CheatTable>
