<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>29</ID>
      <Description>"Enable"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{$lua}
function compileMethod(domainName, className, methodName)
  local class = mono_findClass(domainName, className)
  local method = mono_class_findMethod(class, methodName)
  return mono_compile_method(method)
end

[ENABLE]
[DISABLE]

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>19</ID>
          <Description>"Onbu Controls"</Description>
          <Options moHideChildren="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
[ENABLE]
if syntaxcheck then return end

LaunchMonoDataCollector()

local class = mono_findClass('Assembly-CSharp', 'Animal')
local instances = mono_class_findInstancesOfClassListOnly(class)
local onbu

for i = 1, #instances do
    local candidate = instances[i]
    local stats = readQword(candidate + 0x10)
    local count = readInteger(stats + 0x18)
    if count == 9 then
        onbu = candidate
        break
    end
end

registerSymbol('onbu', onbu)
 
 
[DISABLE]
unregisterSymbol('onbu')


</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>22</ID>
              <Description>"Onbu"</Description>
              <LastState Value="" RealAddress="1741896ADC0"/>
              <ShowAsSigned>0</ShowAsSigned>
              <GroupHeader>1</GroupHeader>
              <Address>onbu</Address>
              <CheatEntries>
                <CheatEntry>
                  <ID>21</ID>
                  <Description>"stats"</Description>
                  <Options moHideChildren="1"/>
                  <LastState Value="" RealAddress="17475B92320"/>
                  <ShowAsSigned>0</ShowAsSigned>
                  <GroupHeader>1</GroupHeader>
                  <Address>+10</Address>
                  <Offsets>
                    <Offset>0</Offset>
                  </Offsets>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>20</ID>
                      <Description>"trust (0.0=bad | 1.0=good)"</Description>
                      <LastState Value="0.464500457" RealAddress="17475B9234C"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+3*4+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>23</ID>
                      <Description>"energy (0.0=bad | 1.0=good)"</Description>
                      <LastState Value="0.9499999881" RealAddress="17475B92350"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+4*4+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>24</ID>
                      <Description>"health (0.0=bad | 1.0=good)"</Description>
                      <LastState Value="1" RealAddress="17475B92354"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+5*4+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>25</ID>
                      <Description>"heartbeat (0.0=low | 9999.0=high)"</Description>
                      <LastState Value="1.5" RealAddress="17475B92358"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+6*4+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>26</ID>
                      <Description>"hunger (0.0=bad | 1.0=good)"</Description>
                      <LastState Value="0.8000000119" RealAddress="17475B9235C"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+7*4+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>27</ID>
                      <Description>"poison (0.0=good | 1.0=bad)"</Description>
                      <LastState Value="0" RealAddress="17475B92360"/>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+8*4+20</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"Village Cheats"</Description>
          <Options moHideChildren="1"/>
          <LastState Value="" RealAddress="00000000"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Unlimited Storage"</Description>
              <LastState/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : WanderingVillage.exe
  Version: v0.1.32
  Script : Unlimited Storage - 0.1.0
  Author : Kvist
}

{$lua}
if syntaxcheck then return end

if not compileMethod("Assembly-CSharp","ResourceSlot","TryRemoveReservedResources") then
    error("Failed to compile ResourceSlot:TryRemoveReservedResources")
end

{$asm}
define(address,"ResourceSlot:TryRemoveReservedResources")
define(bytes,2B C7 41 89 46 0C)

[ENABLE]
assert(address+f2,bytes)

address+f2:
  nop 2

[DISABLE]
address+f2:
  db bytes
  // sub eax,edi

{
// ORIGINAL CODE - INJECTION POINT: 1746BFE3002

1746BFE2FE6: 49 BB C0 2F DD C1 73 01 00 00  - mov r11,00000173C1DD2FC0
1746BFE2FF0: 41 FF D3                       - call r11
1746BFE2FF3: 48 8B 85 70 FF FF FF           - mov rax,[rbp-00000090]
1746BFE2FFA: 48 89 45 88                    - mov [rbp-78],rax
1746BFE2FFE: 49 63 46 0C                    - movsxd  rax,dword ptr [r14+0C]
// ---------- INJECTING HERE ----------
1746BFE3002: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
1746BFE3004: 41 89 46 0C                    - mov [r14+0C],eax
1746BFE3008: 49 63 46 14                    - movsxd  rax,dword ptr [r14+14]
1746BFE300C: 2B C7                          - sub eax,edi
1746BFE300E: 41 89 46 14                    - mov [r14+14],eax
1746BFE3012: 85 C0                          - test eax,eax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>7</ID>
              <Description>"Filled Storage"</Description>
              <LastState/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : WanderingVillage.exe
  Version: v0.1.32
  Script : Filled Storage - 0.1.0
  Author : Kvist
}

{$lua}
if syntaxcheck then return end

if not compileMethod("Assembly-CSharp","ResourceSlot","TryAddReservedResources") then
    error("Failed to compile ResourceSlot:TryAddReservedResources")
end

{$asm}
define(address,"ResourceSlot:TryAddReservedResources")
define(bytes,49 63 46 0C 03 C7)

[ENABLE]
assert(address+de,bytes)

address+de:
  movsxd rax,dword ptr [r14+10]
  nop 2
return:

[DISABLE]
address+de:
  db bytes
  // movsxd  rax,dword ptr [r14+0C]
  // add eax,edi

{
// ORIGINAL CODE - INJECTION POINT: 1746BFE34FE

1746BFE34E3: 66 66 90                       - nop 3
1746BFE34E6: 49 BB C0 2F DD C1 73 01 00 00  - mov r11,00000173C1DD2FC0
1746BFE34F0: 41 FF D3                       - call r11
1746BFE34F3: 48 8B 85 70 FF FF FF           - mov rax,[rbp-00000090]
1746BFE34FA: 48 89 45 90                    - mov [rbp-70],rax
// ---------- INJECTING HERE ----------
1746BFE34FE: 49 63 46 0C                    - movsxd  rax,dword ptr [r14+0C]
// ---------- DONE INJECTING  ----------
1746BFE3502: 03 C7                          - add eax,edi
1746BFE3504: 41 89 46 0C                    - mov [r14+0C],eax
1746BFE3508: 49 63 46 18                    - movsxd  rax,dword ptr [r14+18]
1746BFE350C: 2B C7                          - sub eax,edi
1746BFE350E: 41 89 46 18                    - mov [r14+18],eax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"Instant Research"</Description>
              <LastState/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : WanderingVillage.exe
  Version: v0.1.32
  Script : Instant Research - 0.1.0
  Author : Kvist
}

{$lua}
if syntaxcheck then return end

if not compileMethod("Assembly-CSharp","ResearchSystem","Update") then
    error("Failed to compile ResearchSystem:Update")
end

{$asm}
define(address,"ResearchSystem:Update")
define(bytes,F2 0F 59 CA F2 0F 58 C1 F2 0F 5A E8)

[ENABLE]
assert(address+23b,bytes)

address+23b:
  mov rcx,[rax+20]
  movss xmm5,[rcx+90]

[DISABLE]
address+23b:
  db bytes
  // mulsd xmm1,xmm2
  // addsd xmm0,xmm1
  // cvtsd2ss xmm5,xmm0

{
// ORIGINAL CODE - INJECTION POINT: 1746BEE9D0B

1746BEE9CF3: F3 0F 5A C9           - cvtss2sd xmm1,xmm1
1746BEE9CF7: 49 8B 4D 10           - mov rcx,[r13+10]
1746BEE9CFB: 48 8B 89 88 00 00 00  - mov rcx,[rcx+00000088]
1746BEE9D02: F3 0F 10 51 38        - movss xmm2,[rcx+38]
1746BEE9D07: F3 0F 5A D2           - cvtss2sd xmm2,xmm2
// ---------- INJECTING HERE ----------
1746BEE9D0B: F2 0F 59 CA           - mulsd xmm1,xmm2
// ---------- DONE INJECTING  ----------
1746BEE9D0F: F2 0F 58 C1           - addsd xmm0,xmm1
1746BEE9D13: F2 0F 5A E8           - cvtsd2ss xmm5,xmm0
1746BEE9D17: F3 0F 11 68 34        - movss [rax+34],xmm5
1746BEE9D1C: EB 15                 - jmp 1746BEE9D33
1746BEE9D1E: 49 8B 4D 10           - mov rcx,[r13+10]
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
