mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-05 21:55:42 +13:00
Compare commits
368 commits
Author | SHA1 | Date | |
---|---|---|---|
|
c40c965d7e | ||
|
de6a626f10 | ||
|
76eb2d8391 | ||
|
535408981a | ||
|
2f7d32a13b | ||
|
18012c0948 | ||
|
154f5e0149 | ||
|
08ead748bb | ||
|
78bef4b271 | ||
|
7d82f83f64 | ||
|
b7f864963e | ||
|
239f12cdc1 | ||
|
245f2d3e48 | ||
|
7ed10a6bca | ||
|
9e69492e46 | ||
|
a2782fd35e | ||
|
3ffd813109 | ||
|
d630abb66a | ||
|
1909950409 | ||
|
574596b4e0 | ||
|
a9a5ef65b0 | ||
|
b665061308 | ||
|
f716fedec5 | ||
|
44ada661d7 | ||
|
baf7d56f47 | ||
|
66dddad437 | ||
|
be228de5ea | ||
|
7fcaf412df | ||
|
458748e6b0 | ||
|
eefc2b926d | ||
|
3ed0120b9b | ||
|
29e5ab8093 | ||
|
d73cd92c52 | ||
|
9c6c719c1a | ||
|
b9e3949b14 | ||
|
e74f66a439 | ||
|
e869a23463 | ||
|
645dd3ecf4 | ||
|
2b6db887ed | ||
|
6613b0cb87 | ||
|
ed12e9ad12 | ||
|
393dc147da | ||
|
7f635d5fdd | ||
|
eaf1db1ee1 | ||
|
cf7605c6c9 | ||
|
be3a9fbd02 | ||
|
f15b37fd08 | ||
|
37cba8c859 | ||
|
8c22cd1c8a | ||
|
266407c3c4 | ||
|
e9fdf1ff6f | ||
|
a7c5048f14 | ||
|
9e62fc8415 | ||
|
bd2ba81b01 | ||
|
13154729e2 | ||
|
6e2f8e7483 | ||
|
4c13134c8f | ||
|
73498c6a59 | ||
|
221953b90f | ||
|
b3f0b37bf4 | ||
|
0d32212095 | ||
|
c0bde9f864 | ||
|
4c09390ac8 | ||
|
3e3d840ce6 | ||
|
663106ca34 | ||
|
a50d052c2a | ||
|
284cbf7e55 | ||
|
78e08c2e63 | ||
|
44f1d1bd79 | ||
|
d5e7c97633 | ||
|
f38f6320f4 | ||
|
99c9221f4b | ||
|
4b48db6b2a | ||
|
ed721b362e | ||
|
825d3b4740 | ||
|
c36eda289a | ||
|
3bea266b3e | ||
|
647a6f21af | ||
|
fea71443b1 | ||
|
892a8de202 | ||
|
61dfd8db9a | ||
|
0f0e092461 | ||
|
c253722964 | ||
|
a003f5b98d | ||
|
27c79a28a3 | ||
|
05bafee922 | ||
|
e5bfea34f2 | ||
|
c40ddce684 | ||
|
248344f800 | ||
|
f739c99c87 | ||
|
40c34ac030 | ||
|
c4ddc75da8 | ||
|
65dec46a29 | ||
|
900fe0d48a | ||
|
9294ec11a7 | ||
|
f12e930538 | ||
|
9ddcd37d41 | ||
|
dd423a4734 | ||
|
8efb10f3b5 | ||
|
d61de09704 | ||
|
c18acdba51 | ||
|
a6a04f2cc4 | ||
|
dec54112fd | ||
|
8297c56f21 | ||
|
64fed1c6c4 | ||
|
dd7efc17e5 | ||
|
9d50f23067 | ||
|
e0aff19845 | ||
|
ea96f347fa | ||
|
2c062f4b67 | ||
|
4c6288245a | ||
|
d0d95963af | ||
|
b83960d872 | ||
|
b439ad1511 | ||
|
c32d1740e3 | ||
|
cdc136dcd4 | ||
|
b3df338715 | ||
|
0c299729dd | ||
|
cc3cec4c8a | ||
|
0b8bed32cf | ||
|
3e70ac1c6a | ||
|
5e42d80109 | ||
|
118182777d | ||
|
39acd7f7eb | ||
|
41a6038527 | ||
|
6627ca5dc4 | ||
|
6a34745a5f | ||
|
81589ed20a | ||
|
ec7275a290 | ||
|
693acfdbe6 | ||
|
813e826716 | ||
|
d1617fe4f9 | ||
|
e3fa54f9e6 | ||
|
6f3883fa37 | ||
|
59270700ef | ||
|
22f5c91599 | ||
|
7f3c7ba845 | ||
|
e6a7d379b9 | ||
|
5de29987af | ||
|
132ab34097 | ||
|
69f1a98ff5 | ||
|
3657da97f5 | ||
|
b961b50308 | ||
|
ca25d54589 | ||
|
ab769afaf1 | ||
|
62905cce9a | ||
|
7fe1d79158 | ||
|
fb5693e986 | ||
|
b30f195080 | ||
|
114ba568b7 | ||
|
35dd2fc132 | ||
|
906cc5a0f0 | ||
|
f32abd1b58 | ||
|
e66d1f9298 | ||
|
88d2945065 | ||
|
f294a83368 | ||
|
0394d5fb9f | ||
|
1e90588664 | ||
|
1bfb69e568 | ||
|
c51103cda8 | ||
|
7fb2673de0 | ||
|
03035cd5fb | ||
|
162dcba4a0 | ||
|
d94595d4f0 | ||
|
42ce640d3b | ||
|
b05753f14b | ||
|
5aa3e1228e | ||
|
f2d36bd73a | ||
|
e554d41c94 | ||
|
e0fe30cca7 | ||
|
46b9805712 | ||
|
c9d2e84b8a | ||
|
c703d5b7f7 | ||
|
a501f5886c | ||
|
afbd41a681 | ||
|
0270b1e035 | ||
|
092e1a58bb | ||
|
a375c7d871 | ||
|
020d642bc5 | ||
|
6826565cfd | ||
|
b5d65a583b | ||
|
64443e9cf0 | ||
|
c325d29062 | ||
|
0330193545 | ||
|
3bbbf25537 | ||
|
f9ef53339d | ||
|
2de85889d3 | ||
|
3a3da520c5 | ||
|
287325dd55 | ||
|
59a592aeb5 | ||
|
f54ac90f3d | ||
|
65e7e9b3a5 | ||
|
1afe643047 | ||
|
2df39d75fd | ||
|
ca39f783b9 | ||
|
e42b0bf782 | ||
|
3105689753 | ||
|
53b03ff430 | ||
|
9b5acd57a2 | ||
|
32a0747230 | ||
|
79616a2595 | ||
|
6a3343adeb | ||
|
95f83cd547 | ||
|
219c9fa95a | ||
|
dd99e49ef7 | ||
|
f8d8e8f28d | ||
|
479b539b44 | ||
|
4fd4fcb652 | ||
|
158429d306 | ||
|
02d32f46a8 | ||
|
f14355bae8 | ||
|
9c97cdccb4 | ||
|
80a64635a3 | ||
|
a8aaddb18b | ||
|
f9e1a7b755 | ||
|
35c51946e4 | ||
|
8dd4cdb6d0 | ||
|
5d9648429a | ||
|
89fcf97724 | ||
|
76da976e68 | ||
|
aed289e5d5 | ||
|
7efb878f63 | ||
|
5d787e169b | ||
|
58f081df7a | ||
|
ed55fa5f84 | ||
|
efeb3de36e | ||
|
05c67eefbd | ||
|
3567ad604f | ||
|
d179e4db01 | ||
|
5b599d7845 | ||
|
f611776023 | ||
|
0e84faa0c1 | ||
|
dd0f43bf87 | ||
|
f261ea3b88 | ||
|
bf4d5f5005 | ||
|
063c267755 | ||
|
412430ec76 | ||
|
518018e54e | ||
|
3c2b14ecec | ||
|
55c0f29914 | ||
|
997be8573d | ||
|
572b0e1b78 | ||
|
78482e93d5 | ||
|
2dbfd4dd03 | ||
|
1a8693dce8 | ||
|
4b627671d6 | ||
|
8a390fe84d | ||
|
898ebbdc8c | ||
|
13b82bd14b | ||
|
8e49090088 | ||
|
8ca46e313c | ||
|
8bc3636370 | ||
|
4896a7d27b | ||
|
98f64711e9 | ||
|
f3a3566e8f | ||
|
c27e50f6af | ||
|
4a07e70dd7 | ||
|
90fc6e74f1 | ||
|
96c87b0d15 | ||
|
7772019915 | ||
|
8b3dafbbad | ||
|
00302f3d77 | ||
|
70452d9ee5 | ||
|
b77d45e255 | ||
|
1a92f9fca7 | ||
|
7ced1d2f16 | ||
|
e575f196db | ||
|
9b5fed4e9d | ||
|
0332b12660 | ||
|
c87d919984 | ||
|
ea5629aeb0 | ||
|
ea544dcbe1 | ||
|
dbbf913719 | ||
|
e1e01f2f18 | ||
|
885d3a3c57 | ||
|
2e4806ae6f | ||
|
8fab52d202 | ||
|
5e75827f84 | ||
|
d0ee86e08d | ||
|
710ac206c4 | ||
|
9aca074096 | ||
|
15e107bb9f | ||
|
43d698bc6c | ||
|
6655b631bb | ||
|
84b712c32f | ||
|
cff8c68eef | ||
|
e984bc3d6f | ||
|
5203912757 | ||
|
3de7fa46dd | ||
|
11b99d83a7 | ||
|
9a38f60956 | ||
|
b79534031f | ||
|
e0a025a5c6 | ||
|
59392db9bb | ||
|
70359f967a | ||
|
2f7481519f | ||
|
6ba1fd181f | ||
|
181e77af4d | ||
|
c96bcd01fd | ||
|
a6971306a4 | ||
|
22ebec5a57 | ||
|
03b55d148a | ||
|
55cdf049e8 | ||
|
80b0e88e1e | ||
|
298c2aca4a | ||
|
84d9ea7f2a | ||
|
b67453780d | ||
|
a1698b0ee5 | ||
|
73a06e4493 | ||
|
eada9eb5a5 | ||
|
f2d529899c | ||
|
5ff1374693 | ||
|
7b1cfa42da | ||
|
6ff3735eb4 | ||
|
88b3c0dc40 | ||
|
b9019df646 | ||
|
5b31cb7a0f | ||
|
fc64ae29f8 | ||
|
368224fa1c | ||
|
9ce523ecf9 | ||
|
660abf2838 | ||
|
0481b96f2c | ||
|
95749fa194 | ||
|
db92718ffa | ||
|
640c6d2c49 | ||
|
1735c35a7c | ||
|
fb8eab0f8e | ||
|
1740427e19 | ||
|
515cff6fb9 | ||
|
71c8c8258b | ||
|
994dc382c8 | ||
|
62e1a7a122 | ||
|
f0264d49b6 | ||
|
6003990a93 | ||
|
56e4047cbc | ||
|
6891561263 | ||
|
567b848eea | ||
|
e7d7697533 | ||
|
2a0c62f2fe | ||
|
c8d381791a | ||
|
7941fbd881 | ||
|
1f8cdd7423 | ||
|
0356930a5c | ||
|
b906012175 | ||
|
4986fbb442 | ||
|
a42add5b42 | ||
|
1a1f45aeef | ||
|
9cec432bcc | ||
|
71afd7e308 | ||
|
b1b10f401f | ||
|
ae07184bc3 | ||
|
78c6d8f607 | ||
|
1b7dab464d | ||
|
5152bab296 | ||
|
1bab39fd8f | ||
|
8b63a428e0 | ||
|
daf0de8c8a | ||
|
9297c4e476 | ||
|
1a0eacb438 | ||
|
6d16f729a8 | ||
|
1c213de842 | ||
|
eab2edeff6 | ||
|
2ce3488aa5 | ||
|
9c624556e3 | ||
|
38607d47aa | ||
|
67275262fb | ||
|
092534e331 | ||
|
a184e4d735 |
347 changed files with 38017 additions and 167805 deletions
291
.github/workflows/build.yml
vendored
Executable file
291
.github/workflows/build.yml
vendored
Executable file
|
@ -0,0 +1,291 @@
|
|||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./HorseIsleServer
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
include-prerelease: false
|
||||
- name: Install utils
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y clang zlib1g-dev dos2unix
|
||||
dotnet tool install -g dotnet-script
|
||||
|
||||
- name: Restore dependencies
|
||||
run: |
|
||||
dotnet restore LibHISP
|
||||
dotnet restore HISPd
|
||||
# linux x64
|
||||
- name: Build linux-x64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=Linux64.pubxml
|
||||
cd ..
|
||||
cd MPN00BS
|
||||
dotnet publish -p:PublishProfile=Linux64.pubxml
|
||||
cd ..
|
||||
|
||||
# linux arm
|
||||
- name: Build linux-arm
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=LinuxARM.pubxml
|
||||
cd ..
|
||||
# linux arm64
|
||||
- name: Build linux-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=LinuxARM64.pubxml
|
||||
cd ..
|
||||
|
||||
|
||||
- name: Build deb package
|
||||
continue-on-error: false
|
||||
run: |
|
||||
mkdir /tmp/debpkg
|
||||
mkdir /tmp/debpkg/Debian64
|
||||
mkdir /tmp/debpkg/Debian64/etc
|
||||
mkdir /tmp/debpkg/Debian64/usr
|
||||
mkdir /tmp/debpkg/Debian64/etc/hisp
|
||||
mkdir /tmp/debpkg/Debian64/etc/hisp/gamedata
|
||||
mkdir /tmp/debpkg/Debian64/etc/systemd
|
||||
mkdir /tmp/debpkg/Debian64/etc/systemd/system
|
||||
mkdir /tmp/debpkg/Debian64/usr/bin
|
||||
mkdir /tmp/debpkg/Debian64/usr/lib
|
||||
mkdir /tmp/debpkg/Debian64/DEBIAN
|
||||
cp LibHISP/Resources/server.properties /tmp/debpkg/Debian64/etc/hisp/server.properties
|
||||
cp LibHISP/Resources/default_cross_domain.xml /tmp/debpkg/Debian64/etc/hisp/CrossDomainPolicy.xml
|
||||
cp -r HISPd/Resources/DEBIAN/* /tmp/debpkg/Debian64/DEBIAN
|
||||
cp -r HISPd/bin/x64/Linux/net8.0/linux-x64/publish/gamedata/* /tmp/debpkg/Debian64/etc/hisp/gamedata
|
||||
cp HISPd/bin/x64/Linux/net8.0/linux-x64/publish/libe_sqlite3.so /tmp/debpkg/Debian64/usr/lib/libe_sqlite3.so
|
||||
cp HISPd/bin/x64/Linux/net8.0/linux-x64/publish/HI1.MAP /tmp/debpkg/Debian64/etc/hisp/HI1.MAP
|
||||
cp HISPd/bin/x64/Linux/net8.0/linux-x64/publish/HISPd /tmp/debpkg/Debian64/usr/bin/HISPd
|
||||
cp HISPd/Resources/HISP.service /tmp/debpkg/Debian64/etc/systemd/system/HISP.service
|
||||
cat /tmp/debpkg/Debian64/DEBIAN/control
|
||||
dos2unix /tmp/debpkg/Debian64/DEBIAN/conffiles
|
||||
dos2unix /tmp/debpkg/Debian64/DEBIAN/control
|
||||
dos2unix /tmp/debpkg/Debian64/DEBIAN/postinst
|
||||
dos2unix /tmp/debpkg/Debian64/DEBIAN/postrm
|
||||
dos2unix /tmp/debpkg/Debian64/DEBIAN/prerm
|
||||
dos2unix /tmp/debpkg/Debian64/etc/systemd/system/HISP.service
|
||||
chmod 755 -R /tmp/debpkg/Debian64
|
||||
chmod +x /tmp/debpkg/Debian64/usr/bin/HISPd
|
||||
mkdir debpackage
|
||||
dpkg-deb --build /tmp/debpkg/Debian64
|
||||
mv /tmp/debpkg/Debian64.deb debpackage/HISP-Debian-AMD64.deb
|
||||
|
||||
# Upload LINUX
|
||||
- name: Upload linux-x64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Linux64
|
||||
path: HorseIsleServer/HISPd/bin/x64/Linux/net8.0/linux-x64/publish/
|
||||
|
||||
- name: Upload linux-x64-noobs
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Linux64-Noobs
|
||||
path: HorseIsleServer/MPN00BS/bin/x64/Linux/net8.0/linux-x64/publish/
|
||||
|
||||
- name: Upload linux-arm
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-LinuxARM
|
||||
path: HorseIsleServer/HISPd/bin/ARM/Linux/net8.0/linux-arm/publish/
|
||||
|
||||
- name: Upload linux-arm64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-LinuxARM64
|
||||
path: HorseIsleServer/HISPd/bin/ARM64/Linux/net8.0/linux-arm64/publish/
|
||||
|
||||
- name: Upload deb package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-DebianPackage
|
||||
path: HorseIsleServer/debpackage
|
||||
|
||||
build-win:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
include-prerelease: false
|
||||
|
||||
- name: Install utils
|
||||
run: dotnet tool install -g dotnet-script
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
# x64 build
|
||||
- name: Build win-x64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=Win64.pubxml
|
||||
cd ..
|
||||
cd MPN00BS
|
||||
dotnet publish -p:PublishProfile=Win64.pubxml
|
||||
cd ..
|
||||
|
||||
- name: Build win-x86
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=Win32.pubxml
|
||||
cd ..
|
||||
cd MPN00BS
|
||||
dotnet publish -p:PublishProfile=Win32.pubxml
|
||||
cd ..
|
||||
|
||||
# arm64 build
|
||||
- name: Build win-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=WinARM64.pubxml
|
||||
cd ..
|
||||
|
||||
# Upload WINDOWS
|
||||
|
||||
- name: Upload win-x64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Win64
|
||||
path: HorseIsleServer/HISPd/bin/x64/Windows/net8.0/win-x64/publish/
|
||||
|
||||
- name: Upload win-x86
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Win32
|
||||
path: HorseIsleServer/HISPd/bin/x86/Windows/net8.0/win-x86/publish/
|
||||
|
||||
- name: Upload win-arm64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-WinARM64
|
||||
path: HorseIsleServer/HISPd/bin/arm64/Windows/net8.0/win-arm64/publish/
|
||||
|
||||
- name: Upload win-x86-noobs
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Win32-Noobs
|
||||
path: HorseIsleServer/MPN00BS/bin/x86/Windows/net8.0/win-x86/publish/
|
||||
|
||||
- name: Upload win-x64-noobs
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Win64-Noobs
|
||||
path: HorseIsleServer/MPN00BS/bin/x64/Windows/net8.0/win-x64/publish/
|
||||
|
||||
build-mac:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
include-prerelease: false
|
||||
|
||||
- name: Install utils
|
||||
run: dotnet tool install -g dotnet-script
|
||||
|
||||
- name: Restore dependencies
|
||||
run: |
|
||||
dotnet restore LibHISP
|
||||
dotnet restore HISPd
|
||||
|
||||
- name: Build mac-x64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=Osx64.pubxml
|
||||
cd ..
|
||||
cd MPN00BS
|
||||
dotnet publish -p:PublishProfile=Osx64.pubxml
|
||||
cd ..
|
||||
- name: Build mac-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
cd HISPd
|
||||
dotnet publish -p:PublishProfile=OsxARM64.pubxml
|
||||
cd ..
|
||||
- name: Upload mac-x64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Mac64
|
||||
path: HorseIsleServer/HISPd/bin/x64/MacOS/net8.0/osx-x64/publish/
|
||||
|
||||
- name: Upload mac-arm64
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-MacARM64
|
||||
path: HorseIsleServer/HISPd/bin/arm64/MacOS/net8.0/osx-arm64/publish/
|
||||
|
||||
- name: Upload mac-x64-noobs
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Mac-Noobs
|
||||
path: HorseIsleServer/MPN00BS/bin/x64/MacOS/net8.0/osx-x64/publish/
|
||||
|
||||
build-web:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
# UPLOAD WEB
|
||||
|
||||
- name: Upload Website (master)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Web-Master
|
||||
path: HorseIsleWeb/master-site
|
||||
|
||||
- name: Upload Website (game)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HISP-Web-Game
|
||||
path: HorseIsleWeb/game-site
|
74
.github/workflows/linux.yml
vendored
74
.github/workflows/linux.yml
vendored
|
@ -1,74 +0,0 @@
|
|||
name: linux
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./HorseIsleServer
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
include-prerelease: true
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
|
||||
- name: Build linux-64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=Linux64.pubxml
|
||||
cp ../HorseIsleData/*.json "HorseIsleServer/bin/x64/Linux/net6.0/linux-x64/publish/"
|
||||
cp ../HorseIsleData/*.MAP "HorseIsleServer/bin/x64/Linux/net6.0/linux-x64/publish/"
|
||||
mkdir "HorseIsleServer/bin/x64/Linux/net6.0/linux-x64/publish/www"
|
||||
cp -R ../HorseIsleWeb/* "HorseIsleServer/bin/x64/Linux/net6.0/linux-x64/publish/www"
|
||||
|
||||
- name: Build linux-arm
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=LinuxARM.pubxml
|
||||
cp ../HorseIsleData/*.json "HorseIsleServer/bin/ARM/Linux/net6.0/linux-arm/publish/"
|
||||
cp ../HorseIsleData/*.MAP "HorseIsleServer/bin/ARM/Linux/net6.0/linux-arm/publish/"
|
||||
mkdir "HorseIsleServer/bin/ARM/Linux/net6.0/linux-arm/publish/www"
|
||||
cp -R ../HorseIsleWeb/* "HorseIsleServer/bin/ARM/Linux/net6.0/linux-arm/publish/www"
|
||||
|
||||
- name: Build linux-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=LinuxARM64.pubxml
|
||||
cp ../HorseIsleData/*.json "HorseIsleServer/bin/ARM64/Linux/net6.0/linux-arm64/publish/"
|
||||
cp ../HorseIsleData/*.MAP "HorseIsleServer/bin/ARM64/Linux/net6.0/linux-arm64/publish/"
|
||||
mkdir "HorseIsleServer/bin/ARM64/Linux/net6.0/linux-arm64/publish/www/"
|
||||
cp -R ../HorseIsleWeb/* "HorseIsleServer/bin/ARM64/Linux/net6.0/linux-arm64/publish/www/"
|
||||
|
||||
- name: upload linux-64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: linux-x64
|
||||
path: HorseIsleServer/HorseIsleServer/bin/x64/Linux/net6.0/linux-x64/publish/
|
||||
|
||||
- name: upload linux-arm
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: linux-arm
|
||||
path: HorseIsleServer/HorseIsleServer/bin/ARM/Linux/net6.0/linux-arm/publish/
|
||||
|
||||
- name: upload linux-arm64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: linux-arm64
|
||||
path: HorseIsleServer/HorseIsleServer/bin/ARM64/Linux/net6.0/linux-arm64/publish/
|
59
.github/workflows/macos.yml
vendored
59
.github/workflows/macos.yml
vendored
|
@ -1,59 +0,0 @@
|
|||
name: macos
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./HorseIsleServer
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
include-prerelease: true
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
|
||||
- name: Build mac-x64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=Osx64.pubxml
|
||||
cp ../HorseIsleData/*.json "HorseIsleServer/bin/x64/MacOS/net6.0/osx-x64/publish/"
|
||||
cp ../HorseIsleData/*.MAP "HorseIsleServer/bin/x64/MacOS/net6.0/osx-x64/publish/"
|
||||
mkdir "HorseIsleServer/bin/x64/MacOS/net6.0/osx-x64/publish/www"
|
||||
cp -R ../HorseIsleWeb/* "HorseIsleServer/bin/x64/MacOS/net6.0/osx-x64/publish/www"
|
||||
|
||||
- name: Build mac-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=OsxARM64.pubxml
|
||||
cp ../HorseIsleData/*.json "HorseIsleServer/bin/arm64/MacOS/net6.0/osx-arm64/publish/"
|
||||
cp ../HorseIsleData/*.MAP "HorseIsleServer/bin/arm64/MacOS/net6.0/osx-arm64/publish/"
|
||||
mkdir "HorseIsleServer/bin/arm64/MacOS/net6.0/osx-arm64/publish/www"
|
||||
cp -R ../HorseIsleWeb/* "HorseIsleServer/bin/arm64/MacOS/net6.0/osx-arm64/publish/www"
|
||||
|
||||
- name: upload mac-x64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: mac-x64
|
||||
path: HorseIsleServer/HorseIsleServer/bin/x64/MacOS/net6.0/osx-x64/publish/
|
||||
|
||||
- name: upload mac-arm64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: mac-arm64
|
||||
path: HorseIsleServer/HorseIsleServer/bin/arm64/MacOS/net6.0/osx-arm64/publish/
|
81
.github/workflows/windows.yml
vendored
81
.github/workflows/windows.yml
vendored
|
@ -1,81 +0,0 @@
|
|||
name: windows
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./HorseIsleServer
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Git Submodule update
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
include-prerelease: true
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
|
||||
- name: Build win-x64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=Win64.pubxml
|
||||
copy ..\HorseIsleData\gamedata.json "HorseIsleServer\bin\x64\Windows\net6.0\win-x64\publish\gamedata.json"
|
||||
copy ..\HorseIsleData\HI1.MAP "HorseIsleServer\bin\x64\Windows\net6.0\win-x64\publish\HI1.MAP"
|
||||
copy ..\HorseIsleWeb "HorseIsleServer\bin\x64\Windows\net6.0\win-x64\publish\www" -Recurse
|
||||
- name: Build win-x86
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=Win32.pubxml
|
||||
copy ..\HorseIsleData\gamedata.json "HorseIsleServer\bin\x86\Windows\net6.0\win-x86\publish\gamedata.json"
|
||||
copy ..\HorseIsleData\HI1.MAP "HorseIsleServer\bin\x86\Windows\net6.0\win-x86\publish\HI1.MAP"
|
||||
copy ..\HorseIsleWeb "HorseIsleServer\bin\x86\Windows\net6.0\win-x86\publish\www" -Recurse
|
||||
- name: Build win-arm
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=WinARM.pubxml
|
||||
copy ..\HorseIsleData\gamedata.json "HorseIsleServer\bin\arm\Windows\net6.0\windows-arm\publish\gamedata.json"
|
||||
copy ..\HorseIsleData\HI1.MAP "HorseIsleServer\bin\arm\Windows\net6.0\windows-arm\publish\HI1.MAP"
|
||||
copy ..\HorseIsleWeb "HorseIsleServer\bin\arm\Windows\net6.0\windows-arm\publish\www" -Recurse
|
||||
- name: Build win-arm64
|
||||
continue-on-error: false
|
||||
run: |
|
||||
dotnet publish -p:PublishProfile=WinARM64.pubxml
|
||||
copy ..\HorseIsleData\gamedata.json "HorseIsleServer\bin\arm64\Windows\net6.0\windows-arm64\publish\gamedata.json"
|
||||
copy ..\HorseIsleData\HI1.MAP "HorseIsleServer\bin\arm64\Windows\net6.0\windows-arm64\publish\HI1.MAP"
|
||||
copy ..\HorseIsleWeb "HorseIsleServer\bin\arm64\Windows\net6.0\windows-arm64\publish\www" -Recurse
|
||||
- name: Upload win-x64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: win-x64
|
||||
path: HorseIsleServer\HorseIsleServer\bin/x64\Windows\net6.0\win-x64\publish\
|
||||
|
||||
- name: Upload win-x86
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: win-x86
|
||||
path: HorseIsleServer\HorseIsleServer\bin\x86\Windows\net6.0\win-x86\publish\
|
||||
|
||||
- name: Upload win-arm
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: win-arm
|
||||
path: HorseIsleServer\HorseIsleServer\bin\arm\Windows\net6.0\windows-arm\publish\
|
||||
|
||||
- name: Upload win-arm64
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: win-arm64
|
||||
path: HorseIsleServer\HorseIsleServer\bin\arm64\Windows\net6.0\windows-arm64\publish\
|
38
.gitignore
vendored
38
.gitignore
vendored
|
@ -1,6 +1,34 @@
|
|||
HorseIsleServer/HorseIsleServer/bin/*
|
||||
HorseIsleServer/HorseIsleServer/obj/*
|
||||
HorseIsleServer/.vs/*
|
||||
*GitCommit
|
||||
*/bin/*
|
||||
*/obj/*
|
||||
*/.vs/*
|
||||
*.log
|
||||
*.suo
|
||||
*.suo
|
||||
*.csproj.user
|
||||
*.pubxml.user
|
||||
*.user
|
||||
*.idb
|
||||
|
||||
*Thumbs.db
|
||||
*.DS_Store
|
||||
|
||||
HorseIsleServer/N00BS/obj/*
|
||||
HorseIsleServer/N00BS/bin/*
|
||||
|
||||
HorseIsleServer/MPN00BS/obj/*
|
||||
HorseIsleServer/MPN00BS/bin/*
|
||||
|
||||
HorseIsleServer/HISPd/obj/*
|
||||
HorseIsleServer/HISPd/bin/*
|
||||
|
||||
HorseIsleServer/HISPtests/obj/*
|
||||
HorseIsleServer/HISPtests/bin/*
|
||||
|
||||
|
||||
HorseIsleServer/LibHISP/obj/*
|
||||
HorseIsleServer/LibHISP/bin/*
|
||||
HorseIsleServer/LibHISP/Resources/Versioning/*
|
||||
|
||||
HorseIsleServer/Installer/Windows/*
|
||||
|
||||
|
||||
HorseIsleServer/.vs/*
|
||||
|
|
2
.gitmodules
vendored
Normal file → Executable file
2
.gitmodules
vendored
Normal file → Executable file
|
@ -1,6 +1,8 @@
|
|||
[submodule "HorseIsleWeb"]
|
||||
path = HorseIsleWeb
|
||||
url = https://github.com/islehorse/HorseIsleWeb.git
|
||||
branch = master
|
||||
[submodule "HorseIsleData"]
|
||||
path = HorseIsleData
|
||||
url = https://github.com/islehorse/HorseIsleData.git
|
||||
branch = master
|
||||
|
|
7
.mailmap
Executable file
7
.mailmap
Executable file
|
@ -0,0 +1,7 @@
|
|||
Li <li@silica.codes> SilicaAndPina <earsyum@gmail.com>
|
||||
Li <li@silica.codes> Bluzume <39113159+KuromeSan@users.noreply.github.com>
|
||||
Li <li@silica.codes> SilicaPi <silica@silica.com>
|
||||
Li <li@silica.codes> SilicaPi <silica@raspberrypi.com>
|
||||
Li <li@silica.codes> Silica <Silica@Silica.com>
|
||||
Li <li@silica.codes> AtelierWindows <SilicaAndPina@AtelierWindows.com>
|
||||
Li <li@silica.codes> KuromeSan <psp1080p@gmail.com>
|
|
@ -1 +1 @@
|
|||
Subproject commit 35bf0e04a686990d7237326c048fd18b3a081aa5
|
||||
Subproject commit e9c09c77cd0dd99eb12e16b679478fb0e3742b55
|
338
HorseIsleServer/HISP.sln
Executable file
338
HorseIsleServer/HISP.sln
Executable file
|
@ -0,0 +1,338 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.2.32210.308
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibHISP", "LibHISP\LibHISP.csproj", "{C48CBD82-AB30-494A-8FFA-4DE7069B5827}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HISPd", "HISPd\HISPd.csproj", "{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPN00BS", "MPN00BS\MPN00BS.csproj", "{72EF95FC-03DB-4E61-A696-E0095DD42A4E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HISPtests", "HISPtests\HISPtests.csproj", "{689FB972-1612-440E-817D-BE290F655AA8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Android|Any CPU = Android|Any CPU
|
||||
Android|ARM = Android|ARM
|
||||
Android|ARM64 = Android|ARM64
|
||||
Android|x64 = Android|x64
|
||||
Android|x86 = Android|x86
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
iOS|Any CPU = iOS|Any CPU
|
||||
iOS|ARM = iOS|ARM
|
||||
iOS|ARM64 = iOS|ARM64
|
||||
iOS|x64 = iOS|x64
|
||||
iOS|x86 = iOS|x86
|
||||
Linux|Any CPU = Linux|Any CPU
|
||||
Linux|ARM = Linux|ARM
|
||||
Linux|ARM64 = Linux|ARM64
|
||||
Linux|x64 = Linux|x64
|
||||
Linux|x86 = Linux|x86
|
||||
MacOS|Any CPU = MacOS|Any CPU
|
||||
MacOS|ARM = MacOS|ARM
|
||||
MacOS|ARM64 = MacOS|ARM64
|
||||
MacOS|x64 = MacOS|x64
|
||||
MacOS|x86 = MacOS|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
Windows|Any CPU = Windows|Any CPU
|
||||
Windows|ARM = Windows|ARM
|
||||
Windows|ARM64 = Windows|ARM64
|
||||
Windows|x64 = Windows|x64
|
||||
Windows|x86 = Windows|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|Any CPU.ActiveCfg = Android|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|Any CPU.Build.0 = Android|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM.ActiveCfg = Android|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM.Build.0 = Android|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM64.ActiveCfg = Android|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|ARM64.Build.0 = Android|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x64.ActiveCfg = Android|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x64.Build.0 = Android|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x86.ActiveCfg = Android|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Android|x86.Build.0 = Android|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.Build.0 = Debug|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.Build.0 = Debug|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|Any CPU.Build.0 = iOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|ARM.ActiveCfg = iOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|ARM.Build.0 = iOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|ARM64.ActiveCfg = iOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|ARM64.Build.0 = iOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|x64.ActiveCfg = iOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|x64.Build.0 = iOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.iOS|x86.ActiveCfg = iOS|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.ActiveCfg = Linux|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.Build.0 = Linux|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.ActiveCfg = Linux|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.Build.0 = Linux|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.ActiveCfg = Linux|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.Build.0 = Linux|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.ActiveCfg = Linux|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.Build.0 = Linux|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.ActiveCfg = Linux|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.Build.0 = Linux|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.Build.0 = MacOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.ActiveCfg = MacOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.Build.0 = MacOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.ActiveCfg = MacOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.Build.0 = MacOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.ActiveCfg = MacOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.Build.0 = MacOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.ActiveCfg = MacOS|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.Build.0 = MacOS|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|Any CPU.Build.0 = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM.ActiveCfg = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM.Build.0 = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM64.ActiveCfg = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|ARM64.Build.0 = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x64.ActiveCfg = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x64.Build.0 = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x86.ActiveCfg = Windows|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Release|x86.Build.0 = Windows|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.Build.0 = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.ActiveCfg = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.Build.0 = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.ActiveCfg = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.Build.0 = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.ActiveCfg = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.Build.0 = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.ActiveCfg = Windows|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.Build.0 = Windows|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|Any CPU.ActiveCfg = Android|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|Any CPU.Build.0 = Android|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM.ActiveCfg = Android|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM.Build.0 = Android|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM64.ActiveCfg = Android|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|ARM64.Build.0 = Android|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x64.ActiveCfg = Android|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x64.Build.0 = Android|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x86.ActiveCfg = Android|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Android|x86.Build.0 = Android|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x64.Build.0 = Debug|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Debug|x86.Build.0 = Debug|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|Any CPU.Build.0 = iOS|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|ARM.ActiveCfg = iOS|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|ARM.Build.0 = iOS|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|ARM64.ActiveCfg = iOS|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|ARM64.Build.0 = iOS|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|x64.ActiveCfg = iOS|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|x64.Build.0 = iOS|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.iOS|x86.ActiveCfg = iOS|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|Any CPU.ActiveCfg = Linux|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|Any CPU.Build.0 = Linux|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM.ActiveCfg = Linux|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM.Build.0 = Linux|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.ActiveCfg = Linux|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|ARM64.Build.0 = Linux|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.ActiveCfg = Linux|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x64.Build.0 = Linux|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.ActiveCfg = Linux|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Linux|x86.Build.0 = Linux|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|Any CPU.Build.0 = MacOS|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.ActiveCfg = MacOS|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM.Build.0 = MacOS|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.ActiveCfg = MacOS|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|ARM64.Build.0 = MacOS|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.ActiveCfg = MacOS|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x64.Build.0 = MacOS|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.ActiveCfg = MacOS|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.MacOS|x86.Build.0 = MacOS|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|Any CPU.Build.0 = Windows|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.ActiveCfg = Windows|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM.Build.0 = Windows|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.ActiveCfg = Windows|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|ARM64.Build.0 = Windows|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.ActiveCfg = Windows|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x64.Build.0 = Windows|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.ActiveCfg = Windows|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Release|x86.Build.0 = Windows|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|Any CPU.Build.0 = Windows|Any CPU
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.ActiveCfg = Windows|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM.Build.0 = Windows|ARM
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.ActiveCfg = Windows|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|ARM64.Build.0 = Windows|ARM64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.ActiveCfg = Windows|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x64.Build.0 = Windows|x64
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.ActiveCfg = Windows|x86
|
||||
{DEAD5CB0-C6B6-4B63-B1FB-A9F649CA1D27}.Windows|x86.Build.0 = Windows|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|Any CPU.ActiveCfg = Android|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|Any CPU.Build.0 = Android|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|ARM.ActiveCfg = Android|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|ARM.Build.0 = Android|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|ARM64.ActiveCfg = Android|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|ARM64.Build.0 = Android|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|x64.ActiveCfg = Android|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|x64.Build.0 = Android|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|x86.ActiveCfg = Android|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Android|x86.Build.0 = Android|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|x64.Build.0 = Debug|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Debug|x86.Build.0 = Debug|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|Any CPU.ActiveCfg = iOS|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|Any CPU.Build.0 = iOS|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|ARM.ActiveCfg = iOS|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|ARM.Build.0 = iOS|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|ARM64.ActiveCfg = iOS|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|ARM64.Build.0 = iOS|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|x64.ActiveCfg = iOS|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|x64.Build.0 = iOS|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|x86.ActiveCfg = iOS|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.iOS|x86.Build.0 = iOS|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|Any CPU.ActiveCfg = Linux|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|Any CPU.Build.0 = Linux|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|ARM.ActiveCfg = Linux|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|ARM.Build.0 = Linux|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|ARM64.ActiveCfg = Linux|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|ARM64.Build.0 = Linux|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|x64.ActiveCfg = Linux|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|x64.Build.0 = Linux|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|x86.ActiveCfg = Linux|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Linux|x86.Build.0 = Linux|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|Any CPU.Build.0 = MacOS|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|ARM.ActiveCfg = MacOS|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|ARM.Build.0 = MacOS|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|ARM64.ActiveCfg = MacOS|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|ARM64.Build.0 = MacOS|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|x64.ActiveCfg = MacOS|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|x64.Build.0 = MacOS|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|x86.ActiveCfg = MacOS|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.MacOS|x86.Build.0 = MacOS|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|Any CPU.Build.0 = Windows|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|ARM.ActiveCfg = Windows|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|ARM.Build.0 = Windows|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|ARM64.ActiveCfg = Windows|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|ARM64.Build.0 = Windows|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|x64.ActiveCfg = Windows|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|x64.Build.0 = Windows|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|x86.ActiveCfg = Windows|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Release|x86.Build.0 = Windows|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|Any CPU.Build.0 = Windows|Any CPU
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|ARM.ActiveCfg = Windows|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|ARM.Build.0 = Windows|ARM
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|ARM64.ActiveCfg = Windows|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|ARM64.Build.0 = Windows|ARM64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|x64.ActiveCfg = Windows|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|x64.Build.0 = Windows|x64
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|x86.ActiveCfg = Windows|x86
|
||||
{72EF95FC-03DB-4E61-A696-E0095DD42A4E}.Windows|x86.Build.0 = Windows|x86
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|ARM.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|ARM.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|ARM64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|x64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|x64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|x86.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Android|x86.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|x64.Build.0 = Debug|x64
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Debug|x86.Build.0 = Debug|x86
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|ARM.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|ARM.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|ARM64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|x64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|x64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|x86.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.iOS|x86.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|ARM.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|ARM.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|ARM64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|x64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|x64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|x86.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Linux|x86.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|ARM.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|ARM.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|ARM64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|x64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|x64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|x86.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.MacOS|x86.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|x64.Build.0 = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Release|x86.Build.0 = Release|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|Any CPU.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|ARM.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|ARM.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|ARM64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|x64.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|x64.Build.0 = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|x86.ActiveCfg = Debug|Any CPU
|
||||
{689FB972-1612-440E-817D-BE290F655AA8}.Windows|x86.Build.0 = Debug|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {52075F5B-6A74-493C-BA53-3AD720D643C2}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
169
HorseIsleServer/HISPd/HISPd.csproj
Executable file
169
HorseIsleServer/HISPd/HISPd.csproj
Executable file
|
@ -0,0 +1,169 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>HISP.Cli</RootNamespace>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
<Platforms>x64;x86;ARM;ARM64;AnyCPU</Platforms>
|
||||
<Configurations>Debug;Windows;Linux;MacOS;Android;iOS</Configurations>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LibHISP\LibHISP.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
|
||||
<GenerateBindingRedirectsOutputType>false</GenerateBindingRedirectsOutputType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
<StartupObject>HISP.Cli.Program</StartupObject>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<DebugType>embedded</DebugType>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AnalysisLevel>none</AnalysisLevel>
|
||||
<EnableNETAnalyzers>False</EnableNETAnalyzers>
|
||||
<Copyright>Public Domain, 2022</Copyright>
|
||||
<PackageProjectUrl>https://islehorse.com</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/islehorse/HISP</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<NoWarn>1701;1702;2026;IL2026</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
|
||||
<TrimMode>partial</TrimMode>
|
||||
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
|
||||
<TrimmerRemoveSymbols>true</TrimmerRemoveSymbols>
|
||||
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|x86'">
|
||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<Platforms>x86</Platforms>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|x64'">
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<Platforms>x64</Platforms>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|ARM'">
|
||||
<RuntimeIdentifier>win-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|ARM64'">
|
||||
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Android|ARM'">
|
||||
<RuntimeIdentifier>android-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM</DefineConstants>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Android|ARM64'">
|
||||
<RuntimeIdentifier>android-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|x64'">
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_LINUX;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|ARM'">
|
||||
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|ARM64'">
|
||||
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MacOS|x64'">
|
||||
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_MACOS;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MacOS|ARM64'">
|
||||
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_MACOS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='iOS|ARM'">
|
||||
<RuntimeIdentifier>ios-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='iOS|ARM64'">
|
||||
<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='All|AnyCPU'">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm;win-arm64;linux-x64;linux-arm;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
|
||||
<Optimize>True</Optimize>
|
||||
<DefineConstants>OS_ALL;ARCH_ANYCPU</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<Optimize>False</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE;OS_DEBUG</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
|
||||
</Project>
|
197
HorseIsleServer/HISPd/Program.cs
Executable file
197
HorseIsleServer/HISPd/Program.cs
Executable file
|
@ -0,0 +1,197 @@
|
|||
using HISP.Cli.Properties;
|
||||
using HISP.Server;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
|
||||
namespace HISP.Cli
|
||||
{
|
||||
public static class Program
|
||||
{
|
||||
private static StreamWriter sw = null;
|
||||
private static FileStream fs = null;
|
||||
private static string logFile;
|
||||
private static EventWaitHandle shutdownHandle = null;
|
||||
|
||||
public static bool ShuttingDown = false;
|
||||
public static string BaseDir;
|
||||
public static string LogFile
|
||||
{
|
||||
get
|
||||
{
|
||||
return logFile;
|
||||
}
|
||||
set
|
||||
{
|
||||
logFile = value;
|
||||
if(sw != null)
|
||||
{
|
||||
sw.Flush();
|
||||
sw.Dispose();
|
||||
sw = null;
|
||||
}
|
||||
if(fs != null)
|
||||
{
|
||||
fs.Flush();
|
||||
fs.Dispose();
|
||||
fs = null;
|
||||
}
|
||||
|
||||
fs = File.OpenWrite(logFile);
|
||||
sw = new StreamWriter(fs);
|
||||
}
|
||||
}
|
||||
|
||||
public static void OnShutdown()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (sw != null)
|
||||
{
|
||||
sw.Flush();
|
||||
sw.Close();
|
||||
sw.Dispose();
|
||||
sw = null;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception) { };
|
||||
|
||||
try
|
||||
{
|
||||
if (fs != null)
|
||||
{
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
fs.Dispose();
|
||||
fs = null;
|
||||
}
|
||||
}
|
||||
catch (Exception) { };
|
||||
|
||||
|
||||
if(shutdownHandle != null)
|
||||
shutdownHandle.Set();
|
||||
}
|
||||
|
||||
private static string formatMessage(string type, string text, bool console)
|
||||
{
|
||||
#if OS_WINDOWS
|
||||
string newline = "\r\n";
|
||||
#else
|
||||
string newline = "\n";
|
||||
#endif
|
||||
|
||||
string msg = DateTime.Now.ToString("MM-dd-yyyy HH:mm:ss") + ": [" + type + "] ";
|
||||
if (console && text.Length > (Console.WindowWidth - msg.Length) - newline.Length)
|
||||
text = text.Substring(0, (Console.WindowWidth - msg.Length) - newline.Length);
|
||||
|
||||
return msg + text + newline;
|
||||
}
|
||||
|
||||
public static void LogToFile(bool error, string type,string text)
|
||||
{
|
||||
sw.WriteLine(formatMessage(type, text, false));
|
||||
if (error)
|
||||
sw.Flush();
|
||||
}
|
||||
public static void LogStdout(bool error, string type, string text)
|
||||
{
|
||||
if (type == "CRASH")
|
||||
LogToFile(error, type, text);
|
||||
try
|
||||
{
|
||||
if (error)
|
||||
Console.Error.WriteAsync(formatMessage(type, text, true));
|
||||
else
|
||||
Console.Out.WriteAsync(formatMessage(type, text, true));
|
||||
|
||||
}
|
||||
catch (Exception) { };
|
||||
}
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
AppDomain.CurrentDomain.ProcessExit += ProcessQuitHandler;
|
||||
|
||||
string baseDir = Directory.GetCurrentDirectory();
|
||||
Logger.SetCallback(LogStdout);
|
||||
Entry.SetShutdownCallback(OnShutdown);
|
||||
|
||||
string hispConfVar = Environment.GetEnvironmentVariable("HISP_CONF_FILE");
|
||||
string hispLogVar = Environment.GetEnvironmentVariable("HISP_LOG_FILE");
|
||||
string hispBaseDir = Environment.GetEnvironmentVariable("HISP_BASE_DIR");
|
||||
|
||||
foreach (string arg in args)
|
||||
{
|
||||
switch (arg)
|
||||
{
|
||||
case "--install-service":
|
||||
#if OS_LINUX
|
||||
File.WriteAllBytes("/etc/systemd/system/HISP.service", Resources.HISPService);
|
||||
LogStdout(false, "INFO", "Crreated Service! enable it with \"sudo systemctl enable HISP\"");
|
||||
#else
|
||||
LogStdout(true, "ERROR", "Installing as a service unsupported on this platform");
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
if (arg.Contains("="))
|
||||
{
|
||||
string[] argu = arg.Split("=");
|
||||
if (argu.Length >= 2)
|
||||
{
|
||||
switch (argu[0])
|
||||
{
|
||||
case "--config-file":
|
||||
ConfigReader.ConfigurationFileName = argu[1];
|
||||
break;
|
||||
case "--log-to-file":
|
||||
LogFile = argu[1];
|
||||
Logger.SetCallback(LogToFile);
|
||||
break;
|
||||
case "--base-directory":
|
||||
baseDir = argu[1];
|
||||
Directory.SetCurrentDirectory(baseDir);
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (hispConfVar != null)
|
||||
{
|
||||
ConfigReader.ConfigurationFileName = hispConfVar;
|
||||
}
|
||||
|
||||
if (hispLogVar != null)
|
||||
{
|
||||
LogFile = hispLogVar;
|
||||
Logger.SetCallback(LogToFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogFile = Path.Combine(baseDir, "crash.log");
|
||||
}
|
||||
|
||||
if (hispBaseDir != null)
|
||||
{
|
||||
baseDir = hispBaseDir;
|
||||
Directory.SetCurrentDirectory(baseDir);
|
||||
}
|
||||
|
||||
Entry.Start();
|
||||
|
||||
shutdownHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
|
||||
shutdownHandle.WaitOne();
|
||||
}
|
||||
|
||||
private static void ProcessQuitHandler(object sender, EventArgs e)
|
||||
{
|
||||
GameServer.ShutdownServer("HISPd process quitting.");
|
||||
}
|
||||
}
|
||||
}
|
35
HorseIsleServer/HISPd/Properties/AssemblyInfo.cs
Executable file
35
HorseIsleServer/HISPd/Properties/AssemblyInfo.cs
Executable file
|
@ -0,0 +1,35 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("HISPd")]
|
||||
[assembly: AssemblyDescription("Server Emulator for \"Horse Isle\"")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Li")]
|
||||
[assembly: AssemblyProduct("HISP")]
|
||||
[assembly: AssemblyCopyright("Public Domain <20> 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("57264c6b-1461-41d6-9304-3890cf6c8390")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.8.73.0")]
|
||||
[assembly: AssemblyFileVersion("1.8.73.0")]
|
20
HorseIsleServer/HISPd/Properties/PublishProfiles/AndroidARM.pubxml
Executable file
20
HorseIsleServer/HISPd/Properties/PublishProfiles/AndroidARM.pubxml
Executable file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Android</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\Android\net8.0\android-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>android-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<UseAppHost>True</UseAppHost>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
20
HorseIsleServer/HISPd/Properties/PublishProfiles/AndroidARM64.pubxml
Executable file
20
HorseIsleServer/HISPd/Properties/PublishProfiles/AndroidARM64.pubxml
Executable file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Android</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\Android\net8.0\android-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>android-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<UseAppHost>True</UseAppHost>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\Linux\net6.0\linux-x64\publish\</PublishDir>
|
||||
<PublishDir>bin\x64\Linux\net8.0\linux-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\ARM\Linux\net6.0\linux-arm\publish\</PublishDir>
|
||||
<PublishDir>bin\ARM\Linux\net8.0\linux-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\ARM64\Linux\net6.0\linux-arm64\publish\</PublishDir>
|
||||
<PublishDir>bin\ARM64\Linux\net8.0\linux-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>MacOS</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\MacOS\net6.0\osx-x64\publish\</PublishDir>
|
||||
<PublishDir>bin\x64\MacOS\net8.0\osx-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>MacOS</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\MacOS\net6.0\osx-arm64\publish\</PublishDir>
|
||||
<PublishDir>bin\arm64\MacOS\net8.0\osx-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>x86</Platform>
|
||||
<PublishDir>bin\x86\Windows\net6.0\win-x86\publish\</PublishDir>
|
||||
<PublishDir>bin\x86\Windows\net8.0\win-x86\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,14 +6,14 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\Windows\net6.0\win-x64\publish\</PublishDir>
|
||||
<PublishDir>bin\x64\Windows\net8.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86_64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\Windows\net6.0\windows-arm\publish\</PublishDir>
|
||||
<PublishDir>bin\arm\Windows\net8.0\win-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
|
@ -6,9 +6,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\Windows\net6.0\windows-arm64\publish\</PublishDir>
|
||||
<PublishDir>bin\arm64\Windows\net8.0\win-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
19
HorseIsleServer/HISPd/Properties/PublishProfiles/iOSARM.pubxml
Executable file
19
HorseIsleServer/HISPd/Properties/PublishProfiles/iOSARM.pubxml
Executable file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>iOS</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\iOS\net8.0\ios-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>ios-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
19
HorseIsleServer/HISPd/Properties/PublishProfiles/iOSARM64.pubxml
Executable file
19
HorseIsleServer/HISPd/Properties/PublishProfiles/iOSARM64.pubxml
Executable file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>iOS</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\iOS\net8.0\ios-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
73
HorseIsleServer/HISPd/Properties/Resources.Designer.cs
generated
Executable file
73
HorseIsleServer/HISPd/Properties/Resources.Designer.cs
generated
Executable file
|
@ -0,0 +1,73 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HISP.Cli.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HISP.Cli.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
public static byte[] HISPService {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("HISPService", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
252
HorseIsleServer/HorseIsleServer/Properties/Resources.resx → HorseIsleServer/HISPd/Properties/Resources.resx
Normal file → Executable file
252
HorseIsleServer/HorseIsleServer/Properties/Resources.resx → HorseIsleServer/HISPd/Properties/Resources.resx
Normal file → Executable file
|
@ -1,130 +1,124 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="DefaultCrossDomain" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\default_cross_domain.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="DefaultServerProperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\server.properties;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="GitCommit" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\GitCommit;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="HISPService" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\HISP.service;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
2
HorseIsleServer/HorseIsleServer/Properties/launchSettings.json → HorseIsleServer/HISPd/Properties/launchSettings.json
Normal file → Executable file
2
HorseIsleServer/HorseIsleServer/Properties/launchSettings.json → HorseIsleServer/HISPd/Properties/launchSettings.json
Normal file → Executable file
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"profiles": {
|
||||
"HorseIsleServer": {
|
||||
"HISP": {
|
||||
"commandName": "Project"
|
||||
}
|
||||
}
|
2
HorseIsleServer/HISPd/Resources/DEBIAN/conffiles
Executable file
2
HorseIsleServer/HISPd/Resources/DEBIAN/conffiles
Executable file
|
@ -0,0 +1,2 @@
|
|||
/etc/hisp/server.properties
|
||||
/etc/hisp/CrossDomainPolicy.xml
|
7
HorseIsleServer/HISPd/Resources/DEBIAN/control
Executable file
7
HorseIsleServer/HISPd/Resources/DEBIAN/control
Executable file
|
@ -0,0 +1,7 @@
|
|||
Package: hisp
|
||||
Version: 1.8.73
|
||||
Depends: coreutils,systemd,mariadb-server,libsqlite3-dev,zlib1g-dev,libicu-dev,libkrb5-dev
|
||||
Maintainer: Li
|
||||
Homepage: https://islehorse.com
|
||||
Architecture: amd64
|
||||
Description: Open Source Implementation of the server for flash game "Horse Isle".
|
4
HorseIsleServer/HISPd/Resources/DEBIAN/copyright
Executable file
4
HorseIsleServer/HISPd/Resources/DEBIAN/copyright
Executable file
|
@ -0,0 +1,4 @@
|
|||
== Silica's Public Domain License ==
|
||||
|
||||
All source code and binaries, for the HISP Software are entered into the Public Domain.
|
||||
However the software is provided "AS-IS" without any warrenty and i shall take no liability for anything that may happen by using this software.
|
11
HorseIsleServer/HISPd/Resources/DEBIAN/postinst
Executable file
11
HorseIsleServer/HISPd/Resources/DEBIAN/postinst
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
useradd -r horseisle
|
||||
mkdir -p /etc/hisp
|
||||
mkdir -p /var/log/hisp
|
||||
chown -R horseisle:horseisle /etc/hisp
|
||||
chown -R horseisle:horseisle /var/log/hisp
|
||||
systemctl enable HISP.service
|
||||
systemctl start HISP
|
||||
|
||||
echo "Make sure to edit /etc/hisp/server.properties!"
|
1
HorseIsleServer/HISPd/Resources/DEBIAN/postrm
Executable file
1
HorseIsleServer/HISPd/Resources/DEBIAN/postrm
Executable file
|
@ -0,0 +1 @@
|
|||
#!/bin/sh
|
4
HorseIsleServer/HISPd/Resources/DEBIAN/prerm
Executable file
4
HorseIsleServer/HISPd/Resources/DEBIAN/prerm
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
systemctl stop HISP
|
||||
systemctl disable HISP
|
||||
userdel horseisle
|
32
HorseIsleServer/HISPd/Resources/HISP.service
Executable file
32
HorseIsleServer/HISPd/Resources/HISP.service
Executable file
|
@ -0,0 +1,32 @@
|
|||
[Unit]
|
||||
Description=HISP (Horse Isle Server Program)
|
||||
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
Wants=mariadb.service
|
||||
After=mariadb.service
|
||||
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
|
||||
# Disable access to features HISP doesnt need
|
||||
# (For security ...)
|
||||
ProtectSystem=full
|
||||
PrivateDevices=true
|
||||
|
||||
StandardError=journal+console
|
||||
StandardOutput=journal+console
|
||||
|
||||
User=horseisle
|
||||
Group=horseisle
|
||||
|
||||
WorkingDirectory=/etc/hisp
|
||||
ExecStart=/usr/bin/HISPd
|
||||
|
||||
Environment=USER=horseisle HOME=/etc/hisp HISP_BASE_DIR=/etc/hisp HISP_CONF_FILE=/etc/hisp/server.properties HISP_LOG_FILE=/var/log/hisp/hisp.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Alias=hisp.service
|
0
HorseIsleServer/HorseIsleServer/icon.ico → HorseIsleServer/HISPd/icon.ico
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/icon.ico → HorseIsleServer/HISPd/icon.ico
Normal file → Executable file
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
169
HorseIsleServer/HISPtests/HISPtests.csproj
Normal file
169
HorseIsleServer/HISPtests/HISPtests.csproj
Normal file
|
@ -0,0 +1,169 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>HISP.Tests</RootNamespace>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
<Platforms>x64;x86;ARM;ARM64;AnyCPU</Platforms>
|
||||
<Configurations>Debug;Windows;Linux;MacOS;Android;iOS</Configurations>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LibHISP\LibHISP.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
|
||||
<GenerateBindingRedirectsOutputType>false</GenerateBindingRedirectsOutputType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
<StartupObject>HISP.Tests.Program</StartupObject>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<DebugType>embedded</DebugType>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AnalysisLevel>none</AnalysisLevel>
|
||||
<EnableNETAnalyzers>False</EnableNETAnalyzers>
|
||||
<Copyright>Public Domain, 2022</Copyright>
|
||||
<PackageProjectUrl>https://islehorse.com</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/islehorse/HISP</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<NoWarn>1701;1702;2026;IL2026</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
|
||||
<TrimMode>partial</TrimMode>
|
||||
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
|
||||
<TrimmerRemoveSymbols>true</TrimmerRemoveSymbols>
|
||||
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|x86'">
|
||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<Platforms>x86</Platforms>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|x64'">
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<Platforms>x64</Platforms>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|ARM'">
|
||||
<RuntimeIdentifier>win-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows|ARM64'">
|
||||
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Android|ARM'">
|
||||
<RuntimeIdentifier>android-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM</DefineConstants>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Android|ARM64'">
|
||||
<RuntimeIdentifier>android-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|x64'">
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_LINUX;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|ARM'">
|
||||
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Linux|ARM64'">
|
||||
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MacOS|x64'">
|
||||
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DefineConstants>OS_MACOS;ARCH_X86_64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MacOS|ARM64'">
|
||||
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>OS_MACOS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='iOS|ARM'">
|
||||
<RuntimeIdentifier>ios-arm</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='iOS|ARM64'">
|
||||
<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>ARM64</PlatformTarget>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM64</DefineConstants>
|
||||
<DebugType>none</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='All|AnyCPU'">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm;win-arm64;linux-x64;linux-arm;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
|
||||
<Optimize>True</Optimize>
|
||||
<DefineConstants>OS_ALL;ARCH_ANYCPU</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<Optimize>False</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE;OS_DEBUG</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
|
||||
</Project>
|
20
HorseIsleServer/HISPtests/Program.cs
Normal file
20
HorseIsleServer/HISPtests/Program.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
using HISP.Server;
|
||||
using HISP.Tests.UnitTests;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HISP.Tests
|
||||
{
|
||||
public static class Program
|
||||
{
|
||||
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
ServerStartTest.RunServerStartTest();
|
||||
AuthenticationTest.RunAuthenticationTest();
|
||||
await UserTest.RunUserTest();
|
||||
PacketTest.RunPacketTest();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
35
HorseIsleServer/HISPtests/Properties/AssemblyInfo.cs
Normal file
35
HorseIsleServer/HISPtests/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("HISPd")]
|
||||
[assembly: AssemblyDescription("Server Emulator for \"Horse Isle\"")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Li")]
|
||||
[assembly: AssemblyProduct("HISP")]
|
||||
[assembly: AssemblyCopyright("Public Domain <20> 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("57264c6b-1461-41d6-9304-3890cf6c8390")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.8.30.0")]
|
||||
[assembly: AssemblyFileVersion("1.8.30.0")]
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Android</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\Android\net8.0\android-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>android-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<UseAppHost>True</UseAppHost>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Android</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\Android\net8.0\android-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>android-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<UseAppHost>True</UseAppHost>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_ANDROID;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\Linux\net8.0\linux-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_LINUX;ARCH_X86_64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\ARM\Linux\net8.0\linux-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Linux</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\ARM64\Linux\net8.0\linux-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_LINUX;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>MacOS</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\MacOS\net8.0\osx-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_MACOS;ARCH_X86_64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>MacOS</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\MacOS\net8.0\osx-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_MACOS;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>x86</Platform>
|
||||
<PublishDir>bin\x86\Windows\net8.0\win-x86\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<PublishDir>bin\x64\Windows\net8.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_X86_64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\Windows\net8.0\win-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration>Windows</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\Windows\net8.0\win-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_WINDOWS;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>iOS</Configuration>
|
||||
<Platform>ARM</Platform>
|
||||
<PublishDir>bin\arm\iOS\net8.0\ios-arm\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>ios-arm</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration>iOS</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
<PublishDir>bin\arm64\iOS\net8.0\ios-arm64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
|
||||
<SelfContained>True</SelfContained>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
<PublishTrimmed>True</PublishTrimmed>
|
||||
<DefineConstants>OS_IOS;ARCH_ARM64</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
74
HorseIsleServer/HISPtests/Properties/Resources.Designer.cs
generated
Normal file
74
HorseIsleServer/HISPtests/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,74 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HISP.Tests.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HISP.Tests.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to {
|
||||
/// "2PlayerClose": "UFgA",
|
||||
/// "BirdMap_OutsideMapTop": "dgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
public static string PacketTestDataSet {
|
||||
get {
|
||||
return ResourceManager.GetString("PacketTestDataSet", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
124
HorseIsleServer/HISPtests/Properties/Resources.resx
Normal file
124
HorseIsleServer/HISPtests/Properties/Resources.resx
Normal file
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="PacketTestDataSet" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\PacketTestDataSet.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
</root>
|
7
HorseIsleServer/HISPtests/Properties/launchSettings.json
Normal file
7
HorseIsleServer/HISPtests/Properties/launchSettings.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"profiles": {
|
||||
"HISPtests": {
|
||||
"commandName": "Project"
|
||||
}
|
||||
}
|
||||
}
|
256
HorseIsleServer/HISPtests/Resources/PacketTestDataSet.json
Normal file
256
HorseIsleServer/HISPtests/Resources/PacketTestDataSet.json
Normal file
File diff suppressed because one or more lines are too long
51
HorseIsleServer/HISPtests/ResultLogger.cs
Normal file
51
HorseIsleServer/HISPtests/ResultLogger.cs
Normal file
|
@ -0,0 +1,51 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HISP.Tests
|
||||
{
|
||||
public class ResultLogger
|
||||
{
|
||||
public static void LogTestStatus(bool successful, string testname, string message)
|
||||
{
|
||||
if (successful)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||
Console.Out.Write("[ " + testname + " ] ");
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
Console.Out.WriteLine("* " + message + " *");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||
Console.Error.Write("[ " + testname + " ] ");
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Error.WriteLine("* " + message + " *");
|
||||
}
|
||||
}
|
||||
|
||||
public static void LogTestResult(bool successful, string testname, string message, string expected)
|
||||
{
|
||||
if (successful)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||
Console.Out.Write("[ " + testname + " ] ");
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
Console.Out.WriteLine("* " + message + " == " + expected + " *");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||
Console.Error.Write("[ " + testname + " ] ");
|
||||
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.Error.WriteLine("* " + message + " != " + expected + " *");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
59
HorseIsleServer/HISPtests/UnitTests/AuthenticationTest.cs
Normal file
59
HorseIsleServer/HISPtests/UnitTests/AuthenticationTest.cs
Normal file
|
@ -0,0 +1,59 @@
|
|||
using HISP.Security;
|
||||
using HISP.Util;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace HISP.Tests.UnitTests
|
||||
{
|
||||
public class AuthenticationTest
|
||||
{
|
||||
|
||||
private const string ALLOWED_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
|
||||
public static bool Test(string testName, object value, object valueComp)
|
||||
{
|
||||
bool result = value.Equals(valueComp);
|
||||
if (result)
|
||||
ResultLogger.LogTestStatus(true, "AUTH_TEST " + testName, "Success.");
|
||||
else
|
||||
ResultLogger.LogTestResult(false, "AUTH_TEST " + testName, value.ToString(), valueComp.ToString());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static bool RunAuthenticationTest()
|
||||
{
|
||||
List<bool> results = new List<bool>();
|
||||
|
||||
// Test Login Encrypt/Decrypt
|
||||
for(int i = 0; i <= 100; i++)
|
||||
{
|
||||
string rngStr = Helper.RandomString(ALLOWED_CHARS);
|
||||
string cipherText = Authentication.EncryptLogin(rngStr);
|
||||
string plainText = Authentication.DecryptLogin(cipherText);
|
||||
|
||||
results.Add(Test("LoginEncryptDecrypt" + i.ToString(), plainText, rngStr));
|
||||
|
||||
}
|
||||
|
||||
|
||||
string username = Helper.RandomString(ALLOWED_CHARS);
|
||||
string password = Helper.RandomString(ALLOWED_CHARS);
|
||||
|
||||
string wrongPassword = Helper.RandomString(ALLOWED_CHARS);
|
||||
string wrongUsername = Helper.RandomString(ALLOWED_CHARS);
|
||||
|
||||
Authentication.CreateAccount(username, password, "DEMIGIRL", true, true);
|
||||
|
||||
// Test Login function
|
||||
results.Add(Test("CorrectUsernameAndPassword", Authentication.CheckPassword(username, password), true));
|
||||
results.Add(Test("CorrectUsernameWrongPassword", Authentication.CheckPassword(username, wrongPassword), false));
|
||||
results.Add(Test("WrongPasswordAndUsername", Authentication.CheckPassword(wrongUsername, wrongPassword), false));
|
||||
results.Add(Test("WrongUsernameCorrectPassword", Authentication.CheckPassword(wrongUsername, password), false));
|
||||
|
||||
|
||||
foreach (bool result in results)
|
||||
if (!result)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
416
HorseIsleServer/HISPtests/UnitTests/PacketTest.cs
Normal file
416
HorseIsleServer/HISPtests/UnitTests/PacketTest.cs
Normal file
|
@ -0,0 +1,416 @@
|
|||
//#define GENERATE
|
||||
|
||||
using HISP.Tests.Properties;
|
||||
using HISP.Game.SwfModules;
|
||||
using HISP.Game;
|
||||
using HISP.Server;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
|
||||
namespace HISP.Tests.UnitTests
|
||||
{
|
||||
public class PacketTest
|
||||
{
|
||||
|
||||
private static Dictionary<string, string> knownGoodPackets = new Dictionary<string, string>();
|
||||
|
||||
public static bool Test(string name, byte[] packet)
|
||||
{
|
||||
#if GENERATE
|
||||
knownGoodPackets.Add(name, Convert.ToBase64String(packet));
|
||||
return true;
|
||||
#else
|
||||
string goodPacketStr = null;
|
||||
knownGoodPackets.TryGetValue(name, out goodPacketStr);
|
||||
byte[] goodPacket = Convert.FromBase64String(goodPacketStr);
|
||||
|
||||
|
||||
if(!goodPacket.SequenceEqual(packet))
|
||||
{
|
||||
ResultLogger.LogTestResult(false, "PACKET_TEST "+name, BitConverter.ToString(packet).Replace("-", ""), goodPacket.ToString().Replace("-", ""));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
ResultLogger.LogTestStatus(true, "PACKET_TEST " + name, "Success.");
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
public static bool RunPacketTest()
|
||||
{
|
||||
#if !GENERATE
|
||||
JObject jobj = JsonConvert.DeserializeObject(Resources.PacketTestDataSet) as JObject;
|
||||
knownGoodPackets = jobj.ToObject<Dictionary<string, string>>();
|
||||
#endif
|
||||
|
||||
List<bool> results = new List<bool>();
|
||||
|
||||
results.Add(Test("2PlayerClose", PacketBuilder.Create2PlayerClose()));
|
||||
|
||||
// Test Map
|
||||
results.Add(Test("BirdMap_OutsideMapTop", PacketBuilder.CreateBirdMap(-100, -800)));
|
||||
results.Add(Test("BirdMap_OutsideMapBottom", PacketBuilder.CreateBirdMap(Map.Height+100, Map.Width+600)));
|
||||
results.Add(Test("BirdMap_InsideMap", PacketBuilder.CreateBirdMap(100, 200)));
|
||||
|
||||
// Test Brickpoet
|
||||
results.Add(Test("BrickPoetList", PacketBuilder.CreateBrickPoetList(Brickpoet.GetPoetryRoom(1))));
|
||||
results.Add(Test("BrickPoetMove", PacketBuilder.CreateBrickPoetMove(Brickpoet.GetPoetryPeice(Brickpoet.GetPoetryRoom(1), 30))));
|
||||
|
||||
// Test Chat
|
||||
results.Add(Test("ChatBottomLeft", PacketBuilder.CreateChat("Trans Rights", PacketBuilder.CHAT_BOTTOM_LEFT)));
|
||||
results.Add(Test("ChatBottomRight", PacketBuilder.CreateChat("Are Human", PacketBuilder.CHAT_BOTTOM_RIGHT)));
|
||||
results.Add(Test("ChatDmRight", PacketBuilder.CreateChat("Rights", PacketBuilder.CHAT_DM_RIGHT)));
|
||||
results.Add(Test("ChatMotd", PacketBuilder.CreateMotd("Enbies are valid!")));
|
||||
|
||||
// Test Drawing Room
|
||||
results.Add(Test("DrawingRoomUpdate", PacketBuilder.CreateDrawingUpdate("C959|64^67|66^73|68^79|69^87")));
|
||||
|
||||
// Test Dressup Room
|
||||
results.Add(Test("DressupRoomPeiceLoad", PacketBuilder.CreateDressupRoomPeiceLoad(Dressup.GetDressupRoom(2).DressupPeices)));
|
||||
results.Add(Test("DressupRoomPeiceMove", PacketBuilder.CreateDressupRoomPeiceMove(11, 14.4, 2.4, true)));
|
||||
|
||||
// Test SwfModule Forwarding
|
||||
results.Add(Test("ForwardedSwfModule_516152", PacketBuilder.CreateForwardedSwfModule(new byte[] { 0x51, 0x61, 0x52 })));
|
||||
results.Add(Test("ForwardedSwfModule_AF8D91C8", PacketBuilder.CreateForwardedSwfModule(new byte[] { 0xAF, 0x8D, 0x91, 0xC8 })));
|
||||
|
||||
// Test KeepAlive
|
||||
results.Add(Test("KeepAlive", PacketBuilder.CreateKeepAlive()));
|
||||
|
||||
// Test KickMessage
|
||||
results.Add(Test("KickMessage", PacketBuilder.CreateKickMessage("Transphobia")));
|
||||
|
||||
// Test Login
|
||||
results.Add(Test("LoginSuccess", PacketBuilder.CreateLogin(true)));
|
||||
results.Add(Test("LoginFail", PacketBuilder.CreateLogin(false)));
|
||||
results.Add(Test("LoginFail_ReasonBanned", PacketBuilder.CreateLogin(false, "You are banned.")));
|
||||
|
||||
// Test Meta
|
||||
results.Add(Test("CreateMeta", PacketBuilder.CreateMeta("^R1Trans Rights^X^Z")));
|
||||
|
||||
// Test Money, PlayerCount, Mail
|
||||
results.Add(Test("MoneyPlayerCountAndMail", PacketBuilder.CreateMoneyPlayerCountAndMail(100, 1, 40)));
|
||||
|
||||
// Test Movement
|
||||
results.Add(Test("Movement_DirectionUpMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpInsideMapWalk", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownInsideMapWalk", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftInsideMapWalk", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightInsideMapWalk", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateInsideMapWalk", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeInsideMapWalk", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
// walk = false
|
||||
|
||||
results.Add(Test("Movement_DirectionUpMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpInsideMap", PacketBuilder.CreateMovement(100, 131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownInsideMap", PacketBuilder.CreateMovement(123, 170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftInsideMap", PacketBuilder.CreateMovement(210, 156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightInsideMap", PacketBuilder.CreateMovement(51, 53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateInsideMap", PacketBuilder.CreateMovement(90, 150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeInsideMap", PacketBuilder.CreateMovement(87, 43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
/*
|
||||
* Test Outside Map (From Top)
|
||||
*/
|
||||
|
||||
results.Add(Test("Movement_DirectionUpMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpOutsideMapTopWalk", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownOutsideMapTopWalk", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftOutsideMapTopWalk", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightOutsideMapTopWalk", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateOutsideMapTopWalk", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeOutsideMapTopWalk", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
// walk = false
|
||||
|
||||
results.Add(Test("Movement_DirectionUpMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpOutsideMapTop", PacketBuilder.CreateMovement(-100, -131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownOutsideMapTop", PacketBuilder.CreateMovement(-123, -170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftOutsideMapTop", PacketBuilder.CreateMovement(-210, -156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightOutsideMapTop", PacketBuilder.CreateMovement(-51, -53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateOutsideMapTop", PacketBuilder.CreateMovement(-90, -150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeOutsideMapTop", PacketBuilder.CreateMovement(-87, -43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
/*
|
||||
* Test Outside Map (From Bottom)
|
||||
*/
|
||||
|
||||
results.Add(Test("Movement_DirectionUpMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, true)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeOutsideMapBottomWalk", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, true)));
|
||||
|
||||
// walk = false
|
||||
|
||||
results.Add(Test("Movement_DirectionUpMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionUpMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_UP, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionDownMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionDownMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_DOWN, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionLeftMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_LEFT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionRightMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionRightMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_RIGHT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionTeleportMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_TELEPORT, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+100, Map.Height+131, 10, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UP, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveDownOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+123, Map.Height+170, 12, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_DOWN, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveLeftOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+210, Map.Height+156, 14, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_LEFT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveRightOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+51, Map.Height+53, 16, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_RIGHT, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveUpdateOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+90, Map.Height+150, 1, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_UPDATE, false)));
|
||||
results.Add(Test("Movement_DirectionNoneMoveEscapeOutsideMapBottom", PacketBuilder.CreateMovement(Map.Width+87, Map.Height+43, 7, PacketBuilder.DIRECTION_NONE, PacketBuilder.MOVE_ESCAPE, false)));
|
||||
|
||||
// Test Place Data Packet
|
||||
results.Add(Test("PlaceData", PacketBuilder.CreatePlaceData(World.Isles.ToArray(), World.Towns.ToArray(), World.Areas.ToArray())));
|
||||
|
||||
// Test Player Update
|
||||
results.Add(Test("PlayerInfoUpdateOrCreate", PacketBuilder.CreatePlayerInfoUpdateOrCreate(100, 200, PacketBuilder.DIRECTION_UP, 10, "Li")));
|
||||
results.Add(Test("PlayerLeave", PacketBuilder.CreatePlayerLeave("Li")));
|
||||
|
||||
// Test PlaySound Packet
|
||||
results.Add(Test("PlaySound", PacketBuilder.CreatePlaySound("PM")));
|
||||
|
||||
// Test Profile Page
|
||||
results.Add(Test("ProfilePage", PacketBuilder.CreateProfilePage("TRANS RIGHTS ARE HUMAN RIGHTS")));
|
||||
|
||||
// Test SecCode
|
||||
results.Add(Test("SecCode_AdminMod", PacketBuilder.CreateSecCode(new byte[] { 0x31, 0x52, 0x22 }, 0x34, true, true)));
|
||||
results.Add(Test("SecCode_Admin", PacketBuilder.CreateSecCode(new byte[] { 0x54, 0x32, 0x24 }, 0x34, true, false)));
|
||||
results.Add(Test("SecCode_Mod", PacketBuilder.CreateSecCode(new byte[] { 0x22, 0x12, 0x12 }, 0x34, false, true)));
|
||||
results.Add(Test("SecCode_User", PacketBuilder.CreateSecCode(new byte[] { 0x12, 0x32, 0x14 }, 0x34, false, false)));
|
||||
|
||||
// Test SwfModule
|
||||
results.Add(Test("SwfModule_Force", PacketBuilder.CreateSwfModule("test.swf", PacketBuilder.PACKET_SWF_MODULE_FORCE)));
|
||||
results.Add(Test("SwfModule_Gentle", PacketBuilder.CreateSwfModule("test.swf", PacketBuilder.PACKET_SWF_MODULE_GENTLE)));
|
||||
results.Add(Test("SwfModule_Cutscene", PacketBuilder.CreateSwfModule("test.swf", PacketBuilder.PACKET_SWF_MODULE_CUTSCENE)));
|
||||
|
||||
// Test TileClickInfo
|
||||
results.Add(Test("TileClickInfo", PacketBuilder.CreateTileClickInfo("Trans Rights Are Human Rights")));
|
||||
|
||||
// Test TileOverlayFlags
|
||||
//results.Add(Test("TileOverlayFlags", PacketBuilder.CreateTileOverlayFlags(new int[] { 1, 2, 3, 1, 2, 3, 1, 2, 3 })));
|
||||
|
||||
// Test TimeAndWeatherUpdate
|
||||
results.Add(Test("TimeAndWeatherUpdate", PacketBuilder.CreateTimeAndWeatherUpdate(10, 4, 541, "SUNNY")));
|
||||
results.Add(Test("WeatherUpdate", PacketBuilder.CreateWeatherUpdate("CLOUD")));
|
||||
|
||||
#if GENERATE
|
||||
string resultsStr = JsonConvert.SerializeObject(knownGoodPackets, Formatting.Indented);
|
||||
File.WriteAllText("test.json", resultsStr);
|
||||
#endif
|
||||
|
||||
foreach(bool result in results)
|
||||
{
|
||||
if (result == false)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
40
HorseIsleServer/HISPtests/UnitTests/ServerStartTest.cs
Normal file
40
HorseIsleServer/HISPtests/UnitTests/ServerStartTest.cs
Normal file
|
@ -0,0 +1,40 @@
|
|||
using HISP.Server;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HISP.Tests.UnitTests
|
||||
{
|
||||
public class ServerStartTest
|
||||
{
|
||||
|
||||
public static void OnShutdown()
|
||||
{
|
||||
ResultLogger.LogTestStatus(false, "START_SERVER", "OnShutdown called");
|
||||
}
|
||||
public static void LogStdout(bool error, string type, string text)
|
||||
{
|
||||
if (type == "CRASH")
|
||||
ResultLogger.LogTestStatus(false, "START_SERVER", text);
|
||||
}
|
||||
|
||||
public static bool RunServerStartTest()
|
||||
{
|
||||
try
|
||||
{
|
||||
Logger.SetCallback(LogStdout);
|
||||
Entry.SetShutdownCallback(OnShutdown);
|
||||
Entry.Start();
|
||||
ResultLogger.LogTestStatus(true, "START_SERVER_TEST", "Success.");
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ResultLogger.LogTestStatus(false, "START_SERVER_TEST", e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
248
HorseIsleServer/HISPtests/UnitTests/UserTest.cs
Normal file
248
HorseIsleServer/HISPtests/UnitTests/UserTest.cs
Normal file
|
@ -0,0 +1,248 @@
|
|||
using HISP.Game;
|
||||
using HISP.Game.Horse;
|
||||
using HISP.Game.Items;
|
||||
using HISP.Player;
|
||||
using HISP.Security;
|
||||
using HISP.Server;
|
||||
using HISP.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HISP.Tests.UnitTests
|
||||
{
|
||||
public class UserTest
|
||||
{
|
||||
private const string ALLOWED_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
|
||||
|
||||
private static byte[] createLoginPacket(string username, string password)
|
||||
{
|
||||
byte[] loginInformation = Encoding.UTF8.GetBytes("91|" + Authentication.EncryptLogin(username) + "|" + Authentication.EncryptLogin(password) + "|");
|
||||
byte[] loginPacket = new byte[1 * 3 + loginInformation.Length];
|
||||
loginPacket[0] = PacketBuilder.PACKET_LOGIN;
|
||||
loginPacket[loginPacket.Length - 2] = PacketBuilder.PACKET_CLIENT_TERMINATOR;
|
||||
loginPacket[loginPacket.Length - 1] = 0;
|
||||
|
||||
Array.ConstrainedCopy(loginInformation, 0, loginPacket, 1, loginInformation.Length);
|
||||
|
||||
return loginPacket;
|
||||
}
|
||||
|
||||
private static byte[] createUserInfoPacket()
|
||||
{
|
||||
byte[] packet = new byte[] { PacketBuilder.PACKET_LOGIN, PacketBuilder.PACKET_CLIENT_TERMINATOR, 0};
|
||||
return packet;
|
||||
}
|
||||
|
||||
public static bool Test(string testName, object value, object valueComp)
|
||||
{
|
||||
bool result = value.Equals(valueComp);
|
||||
if (result)
|
||||
ResultLogger.LogTestStatus(true, "USER_TEST "+testName, "Success.");
|
||||
else
|
||||
ResultLogger.LogTestResult(false, "USER_TEST " + testName, value.ToString(), valueComp.ToString());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static async Task<byte[]> receiveAsync(Socket s)
|
||||
{
|
||||
byte[] buffer = new byte[s.Available];
|
||||
await s.ReceiveAsync(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static async Task<bool> RunUserTest()
|
||||
{
|
||||
List<bool> results = new List<bool>();
|
||||
|
||||
string username = Helper.RandomString(ALLOWED_CHARS);
|
||||
string password = Helper.RandomString(ALLOWED_CHARS);
|
||||
|
||||
int userId = Authentication.CreateAccount(username, password, "GENDERFLUID", true, true);
|
||||
|
||||
// Connect to running server via TCP;
|
||||
using (Socket hispServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
|
||||
{
|
||||
// This is already a pretty good unit test; confirming we can actually login to the game,
|
||||
|
||||
try
|
||||
{
|
||||
await hispServer.ConnectAsync("127.0.0.1", ConfigReader.Port);
|
||||
|
||||
// Login to the game;
|
||||
await hispServer.SendAsync(createLoginPacket(username, password));
|
||||
await receiveAsync(hispServer);
|
||||
|
||||
await hispServer.SendAsync(createUserInfoPacket());
|
||||
await receiveAsync(hispServer);
|
||||
|
||||
|
||||
ResultLogger.LogTestStatus(true, "GAME_LOGIN_TEST", "Success.");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ResultLogger.LogTestStatus(false, "GAME_LOGIN_TEST", e.Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// While were here; lets do a bunch of tests on HISPs "User" object.
|
||||
User user = GameServer.GetUserById(userId);
|
||||
|
||||
|
||||
// Test Maximums
|
||||
|
||||
user.SetMoney(Int32.MaxValue);
|
||||
user.AddMoney(1000);
|
||||
results.Add(Test("MoneyOverflow", user.Money, Int32.MaxValue));
|
||||
|
||||
user.Hunger = 8000;
|
||||
results.Add(Test("HungerMaximumEnforcement", user.Hunger, 1000));
|
||||
user.Hunger = -8000;
|
||||
results.Add(Test("HungerMinimumEnforcement", user.Hunger, 0));
|
||||
|
||||
user.Thirst = 8000;
|
||||
results.Add(Test("ThirstMaximumEnforcement", user.Thirst, 1000));
|
||||
user.Thirst = -8000;
|
||||
results.Add(Test("ThirstMinimumEnforcement", user.Thirst, 0));
|
||||
|
||||
user.Tiredness = 8000;
|
||||
results.Add(Test("TirednessMaximumEnforcement", user.Tiredness, 1000));
|
||||
user.Tiredness = -8000;
|
||||
results.Add(Test("TirednessMinimumEnforcement", user.Tiredness, 0));
|
||||
|
||||
|
||||
user.BankMoney = 9999999999.9999;
|
||||
user.BankMoney += 1000.0;
|
||||
results.Add(Test("BankMoneyMaximumEnforcement", user.BankMoney, 9999999999.9999));
|
||||
|
||||
user.BankInterest = 9999999999.9999;
|
||||
user.BankInterest += 1000.0;
|
||||
results.Add(Test("BankInterestMaximumEnforcement", user.BankInterest, 9999999999.9999));
|
||||
|
||||
// Test Gender Setting
|
||||
user.Gender = "GENDERFLUID";
|
||||
results.Add(Test("GenderedPronounsTestTheir", user.GetPronouns(true), Messages.PronounNeutralTheir));
|
||||
results.Add(Test("GenderedPronounsTestThey", user.GetPronouns(false), Messages.PronounNeutralThey));
|
||||
|
||||
user.Gender = "MALE";
|
||||
results.Add(Test("GenderedPronounsTestHis", user.GetPronouns(true), Messages.PronounMaleHis));
|
||||
results.Add(Test("GenderedPronounsTestHe", user.GetPronouns(false), Messages.PronounMaleHe));
|
||||
|
||||
user.Gender = "FEMALE";
|
||||
results.Add(Test("GenderedPronounsTestHer", user.GetPronouns(true), Messages.PronounFemaleHer));
|
||||
results.Add(Test("GenderedPronounsTestShe", user.GetPronouns(false), Messages.PronounFemaleShe));
|
||||
|
||||
// Test icon
|
||||
|
||||
results.Add(Test("IconTestAdmin", user.GetPlayerListIcon(), Messages.AdminIcon));
|
||||
user.Administrator = false;
|
||||
results.Add(Test("IconTestModerator", user.GetPlayerListIcon(), Messages.ModeratorIcon));
|
||||
user.Moderator = false;
|
||||
results.Add(Test("IconTestNew", user.GetPlayerListIcon(), Messages.NewUserIcon));
|
||||
user.NewPlayer = false;
|
||||
results.Add(Test("IconTestNone", user.GetPlayerListIcon(), -1));
|
||||
|
||||
user.SubscribedUntil = DateTime.UtcNow.AddMonths(1);
|
||||
user.Subscribed = true;
|
||||
results.Add(Test("IconTest1Month", user.GetPlayerListIcon(), Messages.MonthSubscriptionIcon));
|
||||
user.SubscribedUntil = DateTime.UtcNow.AddMonths(3);
|
||||
results.Add(Test("IconTest3Month", user.GetPlayerListIcon(), Messages.ThreeMonthSubscripitionIcon));
|
||||
user.SubscribedUntil = DateTime.UtcNow.AddYears(1).AddMonths(3);
|
||||
results.Add(Test("IconTest1Year", user.GetPlayerListIcon(), Messages.YearSubscriptionIcon));
|
||||
|
||||
// SecCode
|
||||
user.SecCodeSeeds[0] = 0x34;
|
||||
user.SecCodeSeeds[1] = 0x39;
|
||||
user.SecCodeSeeds[2] = 0x2a;
|
||||
user.SecCodeInc = 0x3e;
|
||||
|
||||
byte[] expectedSecCodeResult = { 0x55, 0x3C, 0x4B, 0x58 };
|
||||
byte[] gotSecCode = user.GenerateSecCode();
|
||||
|
||||
results.Add(Test("GenerateSecCode", gotSecCode.SequenceEqual(expectedSecCodeResult), true));
|
||||
|
||||
// Check max horses count
|
||||
user.Subscribed = false;
|
||||
results.Add(Test("UnsubbedMaxHorses", user.MaxHorses, 7));
|
||||
|
||||
user.Subscribed = true;
|
||||
results.Add(Test("SubbedMaxHorses", user.MaxHorses, 11));
|
||||
|
||||
|
||||
HorseInstance horse = new HorseInstance(HorseInfo.GetBreedById(170));
|
||||
horse.BasicStats.Thirst = 0;
|
||||
horse.BasicStats.Hunger = 0;
|
||||
int horseId = horse.RandomId;
|
||||
|
||||
user.HorseInventory.AddHorse(horse);
|
||||
|
||||
/*
|
||||
* Test Ranches
|
||||
*/
|
||||
|
||||
// Give player ranch id 10
|
||||
Ranch.GetRanchById(37).OwnerId = user.Id;
|
||||
|
||||
// Check ranch is now owned by that player, and propagates to user object.
|
||||
results.Add(Test("GiveRanchTest", user.OwnedRanch.Id, 37));
|
||||
results.Add(Test("HaveDorothyShoes", user.Inventory.HasItemId(Item.DorothyShoes), true));
|
||||
|
||||
// Ranch upgrade test
|
||||
foreach(Ranch.RanchUpgrade upgrade in Ranch.RanchUpgrade.RanchUpgrades)
|
||||
{
|
||||
int id = upgrade.Id;
|
||||
user.OwnedRanch.UpgradedLevel = id;
|
||||
}
|
||||
|
||||
// Test swf
|
||||
results.Add(Test("RanchSwfMine", user.OwnedRanch.GetSwf(true), "ranchviewer.swf?H=10&B1=11&B2=&B3=&B4=&B5=&B6=&B7=&B8=&B9=&B10=&B11=&B12=&B13=&B14=&B15=&B16=&MINE=1"));
|
||||
results.Add(Test("RanchSwf", user.OwnedRanch.GetSwf(false), "ranchviewer.swf?H=10&B1=11&B2=&B3=&B4=&B5=&B6=&B7=&B8=&B9=&B10=&B11=&B12=&B13=&B14=&B15=&B16="));
|
||||
|
||||
// Test Ranch Building Functionality
|
||||
|
||||
// Test Barn
|
||||
user.OwnedRanch.SetBuilding(0, Ranch.RanchBuilding.GetRanchBuildingById(1)); // Barn
|
||||
results.Add(Test("RanchBarnMaxHorses", user.MaxHorses, 11 + 4));
|
||||
|
||||
// Test Water Well
|
||||
user.OwnedRanch.SetBuilding(0, Ranch.RanchBuilding.GetRanchBuildingById(2)); // Water Well
|
||||
user.Teleport(user.OwnedRanch.X, user.OwnedRanch.Y);
|
||||
results.Add(Test("RanchWaterWellWatering", user.HorseInventory.GetHorseById(horseId).BasicStats.Thirst, 1000));
|
||||
|
||||
// Test Grain Silo
|
||||
user.OwnedRanch.SetBuilding(0, Ranch.RanchBuilding.GetRanchBuildingById(3)); // Grain Silo
|
||||
user.Teleport(user.OwnedRanch.X, user.OwnedRanch.Y);
|
||||
results.Add(Test("RanchGrainSiloFeeding", user.HorseInventory.GetHorseById(horseId).BasicStats.Hunger, 1000));
|
||||
|
||||
|
||||
// Set building id 0 to a big barn
|
||||
user.OwnedRanch.SetBuilding(0, Ranch.RanchBuilding.GetRanchBuildingById(10)); // Big Barn
|
||||
results.Add(Test("RanchBigBarnMaxHorses", user.MaxHorses, 11 + 8));
|
||||
|
||||
// Set building id 0 to a gold barn
|
||||
user.OwnedRanch.SetBuilding(0, Ranch.RanchBuilding.GetRanchBuildingById(11)); // Gold Barn
|
||||
results.Add(Test("RanchGoldBarnMaxHorses", user.MaxHorses, 11 + 12));
|
||||
|
||||
|
||||
|
||||
|
||||
foreach (bool result in results)
|
||||
if (!result)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
BIN
HorseIsleServer/HISPtests/icon.ico
Normal file
BIN
HorseIsleServer/HISPtests/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
|
@ -1,79 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30114.105
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HorseIsleServer", "HorseIsleServer\HorseIsleServer.csproj", "{C48CBD82-AB30-494A-8FFA-4DE7069B5827}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Linux|Any CPU = Linux|Any CPU
|
||||
Linux|ARM = Linux|ARM
|
||||
Linux|ARM64 = Linux|ARM64
|
||||
Linux|x64 = Linux|x64
|
||||
Linux|x86 = Linux|x86
|
||||
MacOS|Any CPU = MacOS|Any CPU
|
||||
MacOS|ARM = MacOS|ARM
|
||||
MacOS|ARM64 = MacOS|ARM64
|
||||
MacOS|x64 = MacOS|x64
|
||||
MacOS|x86 = MacOS|x86
|
||||
Windows|Any CPU = Windows|Any CPU
|
||||
Windows|ARM = Windows|ARM
|
||||
Windows|ARM64 = Windows|ARM64
|
||||
Windows|x64 = Windows|x64
|
||||
Windows|x86 = Windows|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.ActiveCfg = Debug|AnyCPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|Any CPU.Build.0 = Debug|AnyCPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x64.Build.0 = Debug|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.ActiveCfg = Debug|AnyCPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Debug|x86.Build.0 = Debug|AnyCPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.ActiveCfg = Linux|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|Any CPU.Build.0 = Linux|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.ActiveCfg = Linux|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM.Build.0 = Linux|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.ActiveCfg = Linux|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|ARM64.Build.0 = Linux|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.ActiveCfg = Linux|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x64.Build.0 = Linux|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.ActiveCfg = Linux|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.Build.0 = Linux|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.ActiveCfg = MacOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|Any CPU.Build.0 = MacOS|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.ActiveCfg = MacOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.Build.0 = MacOS|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.ActiveCfg = MacOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.Build.0 = MacOS|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.ActiveCfg = MacOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.Build.0 = MacOS|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.ActiveCfg = MacOS|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.Build.0 = MacOS|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.ActiveCfg = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|Any CPU.Build.0 = Windows|Any CPU
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.ActiveCfg = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.Build.0 = Windows|ARM
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.ActiveCfg = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.Build.0 = Windows|ARM64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.ActiveCfg = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.Build.0 = Windows|x64
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.ActiveCfg = Windows|x86
|
||||
{C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.Build.0 = Windows|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {52075F5B-6A74-493C-BA53-3AD720D643C2}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -1,61 +0,0 @@
|
|||
using System;
|
||||
using HISP.Game;
|
||||
using HISP.Game.Items;
|
||||
using HISP.Game.Horse;
|
||||
using HISP.Game.SwfModules;
|
||||
using HISP.Security;
|
||||
using HISP.Server;
|
||||
using HISP.Game.Services;
|
||||
using System.IO;
|
||||
|
||||
namespace HISP
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static bool ShuttingDown = false;
|
||||
static void Main(string[] args)
|
||||
{
|
||||
#if (!DEBUG)
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
|
||||
#endif
|
||||
|
||||
Console.Title = ServerVersion.GetBuildString();
|
||||
ConfigReader.OpenConfig();
|
||||
CrossDomainPolicy.GetPolicy();
|
||||
Database.OpenDatabase();
|
||||
GameDataJson.ReadGamedata();
|
||||
|
||||
Map.OpenMap();
|
||||
World.ReadWorldData();
|
||||
Treasure.Init();
|
||||
|
||||
DroppedItems.Init();
|
||||
WildHorse.Init();
|
||||
|
||||
Drawingroom.LoadAllDrawingRooms();
|
||||
Brickpoet.LoadPoetryRooms();
|
||||
Multiroom.CreateMultirooms();
|
||||
|
||||
Auction.LoadAllAuctionRooms();
|
||||
|
||||
Item.DoSpecialCases();
|
||||
|
||||
GameServer.StartServer();
|
||||
|
||||
while (true) { };
|
||||
}
|
||||
|
||||
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception execpt = (Exception)e.ExceptionObject;
|
||||
|
||||
Logger.ErrorPrint("HISP HAS CRASHED :(");
|
||||
Logger.ErrorPrint("Unhandled Exception: " + execpt.ToString());
|
||||
Logger.ErrorPrint(execpt.Message);
|
||||
Logger.ErrorPrint("");
|
||||
Logger.ErrorPrint(execpt.StackTrace);
|
||||
|
||||
while (!ShuttingDown) { /*Allow asyncronous operations to happen.*/ };
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
|
||||
using HISP.Server;
|
||||
|
||||
namespace HISP.Security
|
||||
{
|
||||
public class Authentication
|
||||
{
|
||||
public static string DecryptLogin(string encpass)
|
||||
{
|
||||
string decrypt = "";
|
||||
string ROTPOOL = "bl7Jgk61IZdnY mfDN5zjM2XLqTCty4WSEoKR3BFVQsaUhHOAx0rPwp9uc8iGve";
|
||||
string POSPOOL = "DQc3uxiGsKZatMmOS5qYveN71zoPTk8yU0H2w9VjprBXWn l4FJd6IRbhgACfEL";
|
||||
string ROTPOOL2 = "evGi8cu9pwPr0xAOHhUasQVFB3RKoESW4ytCTqLX2Mjz5NDfm YndZI16kgJ7lb";
|
||||
|
||||
|
||||
int i = 0;
|
||||
int ii = 0;
|
||||
while (i < encpass.Length)
|
||||
{
|
||||
int ROT = ROTPOOL.IndexOf(encpass[i].ToString());
|
||||
int POS = POSPOOL.IndexOf(encpass[i + 1].ToString());
|
||||
POS -= (ROT + ii);
|
||||
if (POS < 0)
|
||||
{
|
||||
POS = (POS / -1) - 1;
|
||||
|
||||
while (POS >= ROTPOOL.Length)
|
||||
{
|
||||
POS -= ROTPOOL.Length;
|
||||
}
|
||||
|
||||
decrypt += ROTPOOL2[POS];
|
||||
}
|
||||
else
|
||||
{
|
||||
while (POS >= ROTPOOL.Length)
|
||||
{
|
||||
POS -= ROTPOOL.Length;
|
||||
}
|
||||
|
||||
decrypt += ROTPOOL[POS];
|
||||
}
|
||||
|
||||
i += 2;
|
||||
ii += 1;
|
||||
}
|
||||
return decrypt.Replace(" ", "");
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static byte[] HashAndSalt(string plaintext, byte[] salt)
|
||||
{
|
||||
byte[] plaintextBytes = Encoding.UTF8.GetBytes(plaintext);
|
||||
|
||||
SHA512 sha512 = SHA512.Create();
|
||||
byte[] hash = sha512.ComputeHash(plaintextBytes);
|
||||
|
||||
for (int i = 0; i < hash.Length; i++)
|
||||
{
|
||||
hash[i] ^= salt[i];
|
||||
}
|
||||
|
||||
byte[] finalHash = sha512.ComputeHash(hash);
|
||||
|
||||
return finalHash;
|
||||
}
|
||||
|
||||
public static bool CheckPassword(string username, string password)
|
||||
{
|
||||
if(Database.CheckUserExist(username))
|
||||
{
|
||||
byte[] expectedPassword = Database.GetPasswordHash(username);
|
||||
byte[] salt = Database.GetPasswordSalt(username);
|
||||
byte[] hashedPassword = HashAndSalt(password, salt);
|
||||
|
||||
if (Enumerable.SequenceEqual(expectedPassword, hashedPassword))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
using System;
|
||||
|
||||
namespace HISP.Server
|
||||
{
|
||||
public class Logger
|
||||
{
|
||||
public static void ErrorPrint(string text)
|
||||
{
|
||||
if (ConfigReader.LogLevel >= 1)
|
||||
Console.WriteLine("[ERROR] " + text);
|
||||
}
|
||||
public static void WarnPrint(string text)
|
||||
{
|
||||
if (ConfigReader.LogLevel >= 2)
|
||||
Console.WriteLine("[WARN] " + text);
|
||||
}
|
||||
public static void HackerPrint(string text) // When someone is obviously cheating.
|
||||
{
|
||||
if (ConfigReader.LogLevel >= 3)
|
||||
{
|
||||
ConsoleColor prevColor = Console.ForegroundColor;
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("[HACK] " + text);
|
||||
Console.ForegroundColor = prevColor;
|
||||
}
|
||||
}
|
||||
public static void InfoPrint(string text)
|
||||
{
|
||||
if (ConfigReader.LogLevel >= 4)
|
||||
Console.WriteLine("[INFO] " + text);
|
||||
}
|
||||
public static void DebugPrint(string text)
|
||||
{
|
||||
if (ConfigReader.LogLevel >= 5)
|
||||
Console.WriteLine("[DEBUG] " + text);
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,55 +0,0 @@
|
|||
using HISP.Properties;
|
||||
|
||||
namespace HISP.Server
|
||||
{
|
||||
public class ServerVersion
|
||||
{
|
||||
public static int MAJOR = 1;
|
||||
public static int MINOR = 2;
|
||||
public static string PRODUCT = "HISP";
|
||||
|
||||
public static string GetArchitecture()
|
||||
{
|
||||
#if ARCH_ANYCPU
|
||||
return "ANYCPU";
|
||||
#elif ARCH_X86_64
|
||||
return "x86_64";
|
||||
#elif ARCH_X86
|
||||
return "x86";
|
||||
#elif ARCH_ARM
|
||||
return "ARM";
|
||||
#elif ARCH_ARM64
|
||||
return "ARM64";
|
||||
#else
|
||||
return "UNK_ARCH";
|
||||
#endif
|
||||
}
|
||||
public static string GetPlatform()
|
||||
{
|
||||
#if OS_DEBUG
|
||||
return "DEBUG";
|
||||
#elif OS_WINDOWS
|
||||
return "WINDOWS";
|
||||
#elif OS_LINUX
|
||||
return "LINUX";
|
||||
#elif OS_MACOS
|
||||
return "MACOS";
|
||||
#else
|
||||
return "UNK_PLATFORM";
|
||||
#endif
|
||||
|
||||
}
|
||||
public static string GetVersionString()
|
||||
{
|
||||
return "v" + MAJOR.ToString() + "." + MINOR.ToString();
|
||||
}
|
||||
public static string GetCommitHash(int TotalBytes)
|
||||
{
|
||||
return Resources.GitCommit.Substring(0, TotalBytes);
|
||||
}
|
||||
public static string GetBuildString()
|
||||
{
|
||||
return PRODUCT + " " + GetVersionString() + " @" + GetCommitHash(7) + "; (" + GetArchitecture() + "; " + GetPlatform() + ")";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace HISP.Server
|
||||
{
|
||||
public class Util
|
||||
{
|
||||
// Thanks Stackoverflow (https://stackoverflow.com/questions/321370/how-can-i-convert-a-hex-string-to-a-byte-array)
|
||||
private static int getHexVal(char hex)
|
||||
{
|
||||
int val = (int)hex;
|
||||
return val - (val < 58 ? 48 : (val < 97 ? 55 : 87));
|
||||
}
|
||||
public static byte[] StringToByteArray(string hex)
|
||||
{
|
||||
if (hex.Length % 2 == 1)
|
||||
throw new ArgumentException("The binary key cannot have an odd number of digits");
|
||||
|
||||
byte[] arr = new byte[hex.Length >> 1];
|
||||
|
||||
for (int i = 0; i < hex.Length >> 1; ++i)
|
||||
{
|
||||
arr[i] = (byte)((getHexVal(hex[i << 1]) << 4) + (getHexVal(hex[(i << 1) + 1])));
|
||||
}
|
||||
|
||||
return arr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static double PointsToDistance(int x1, int y1, int x2, int y2)
|
||||
{
|
||||
return Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2));
|
||||
}
|
||||
public static string CapitalizeFirstLetter(string str)
|
||||
{
|
||||
char firstChar = char.ToUpper(str[0]);
|
||||
return firstChar + str.Substring(1);
|
||||
}
|
||||
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
|
||||
{
|
||||
// Unix timestamp is seconds past epoch
|
||||
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
|
||||
dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToUniversalTime();
|
||||
return dtDateTime;
|
||||
}
|
||||
|
||||
public static void ByteArrayToByteList(byte[] byteArray, List<byte> byteList)
|
||||
{
|
||||
byteList.AddRange(byteArray.ToList());
|
||||
}
|
||||
}
|
||||
}
|
3
HorseIsleServer/HorseIsleServer/Game/AbuseReport.cs → HorseIsleServer/LibHISP/Game/AbuseReport.cs
Normal file → Executable file
3
HorseIsleServer/HorseIsleServer/Game/AbuseReport.cs → HorseIsleServer/LibHISP/Game/AbuseReport.cs
Normal file → Executable file
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using HISP.Server;
|
||||
using System.Collections.Generic;
|
||||
namespace HISP.Game
|
||||
{
|
||||
public class AbuseReport
|
24
HorseIsleServer/HorseIsleServer/Game/Arena.cs → HorseIsleServer/LibHISP/Game/Arena.cs
Normal file → Executable file
24
HorseIsleServer/HorseIsleServer/Game/Arena.cs → HorseIsleServer/LibHISP/Game/Arena.cs
Normal file → Executable file
|
@ -2,7 +2,7 @@
|
|||
using HISP.Player;
|
||||
using HISP.Security;
|
||||
using HISP.Server;
|
||||
|
||||
using HISP.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
@ -14,7 +14,7 @@ namespace HISP.Game
|
|||
{
|
||||
|
||||
private static List<Arena> arenas = new List<Arena>();
|
||||
private List<ArenaEntry> entries;
|
||||
private ThreadSafeList<ArenaEntry> entries;
|
||||
private Timer arenaTimeout;
|
||||
public static int[] ExpRewards;
|
||||
public int Id;
|
||||
|
@ -59,7 +59,7 @@ namespace HISP.Game
|
|||
Slots = slots;
|
||||
Timeout = timeOut;
|
||||
arenas.Add(this);
|
||||
entries = new List<ArenaEntry>();
|
||||
entries = new ThreadSafeList<ArenaEntry>();
|
||||
}
|
||||
|
||||
public bool HaveAllPlayersCompleted()
|
||||
|
@ -201,10 +201,10 @@ namespace HISP.Game
|
|||
break;
|
||||
}
|
||||
byte[] startingUpEventPacket = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
byte[] swfModulePacket = PacketBuilder.CreateSwfModulePacket(swf, PacketBuilder.PACKET_SWF_CUTSCENE);
|
||||
byte[] swfModulePacket = PacketBuilder.CreateSwfModule(swf, PacketBuilder.PACKET_SWF_MODULE_CUTSCENE);
|
||||
Logger.DebugPrint(entry.EnteredUser.Username + " Loading swf: " + swf);
|
||||
entry.EnteredUser.LoggedinClient.SendPacket(swfModulePacket);
|
||||
entry.EnteredUser.LoggedinClient.SendPacket(startingUpEventPacket);
|
||||
entry.EnteredUser.Client.SendPacket(swfModulePacket);
|
||||
entry.EnteredUser.Client.SendPacket(startingUpEventPacket);
|
||||
}
|
||||
|
||||
arenaTimeout = new Timer(new TimerCallback(arenaTimedOut), null, Timeout * 60 * 1000, Timeout * 60 * 1000);
|
||||
|
@ -275,7 +275,7 @@ namespace HISP.Game
|
|||
try
|
||||
{
|
||||
byte[] arenaResults = PacketBuilder.CreateChat(chatMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
entry.EnteredUser.LoggedinClient.SendPacket(arenaResults);
|
||||
entry.EnteredUser.Client.SendPacket(arenaResults);
|
||||
|
||||
int expReward = expRewards[place];
|
||||
|
||||
|
@ -289,7 +289,7 @@ namespace HISP.Game
|
|||
|
||||
|
||||
byte[] youWinMessage = PacketBuilder.CreateChat(Messages.FormatArenaYouWinMessage(prize, expReward), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
entry.EnteredUser.LoggedinClient.SendPacket(youWinMessage);
|
||||
entry.EnteredUser.Client.SendPacket(youWinMessage);
|
||||
|
||||
// Awards:
|
||||
|
||||
|
@ -327,7 +327,7 @@ namespace HISP.Game
|
|||
entry.EnteredUser.Awards.AddAward(Award.GetAwardById(32)); // Perseverance
|
||||
|
||||
byte[] youDONTWinMessage = PacketBuilder.CreateChat(Messages.FormatArenaOnlyWinnerWinsMessage(expReward), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
entry.EnteredUser.LoggedinClient.SendPacket(youDONTWinMessage);
|
||||
entry.EnteredUser.Client.SendPacket(youDONTWinMessage);
|
||||
}
|
||||
place++;
|
||||
}
|
||||
|
@ -361,8 +361,8 @@ namespace HISP.Game
|
|||
if (Entries.Length + 1 > Slots)
|
||||
{
|
||||
byte[] enterFailed = PacketBuilder.CreateChat(Messages.ArenaFullErrorMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
user.LoggedinClient.SendPacket(enterFailed);
|
||||
GameServer.UpdateArea(user.LoggedinClient);
|
||||
user.Client.SendPacket(enterFailed);
|
||||
GameServer.UpdateArea(user.Client);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ namespace HISP.Game
|
|||
user.TakeMoney(EntryCost);
|
||||
|
||||
byte[] enteredIntoCompetition = PacketBuilder.CreateChat(Messages.ArenaEnteredInto, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
user.LoggedinClient.SendPacket(enteredIntoCompetition);
|
||||
user.Client.SendPacket(enteredIntoCompetition);
|
||||
GameServer.UpdateAreaForAll(user.X, user.Y, true);
|
||||
|
||||
return;
|
0
HorseIsleServer/HorseIsleServer/Game/Book.cs → HorseIsleServer/LibHISP/Game/Book.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Book.cs → HorseIsleServer/LibHISP/Game/Book.cs
Normal file → Executable file
File diff suppressed because it is too large
Load diff
2115
HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs → HorseIsleServer/LibHISP/Game/Chat/Command.cs
Normal file → Executable file
2115
HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs → HorseIsleServer/LibHISP/Game/Chat/Command.cs
Normal file → Executable file
File diff suppressed because it is too large
Load diff
57
HorseIsleServer/LibHISP/Game/Chat/CommandRegister.cs
Executable file
57
HorseIsleServer/LibHISP/Game/Chat/CommandRegister.cs
Executable file
|
@ -0,0 +1,57 @@
|
|||
using HISP.Player;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
|
||||
namespace HISP.Game.Chat
|
||||
{
|
||||
public class CommandRegister
|
||||
{
|
||||
private static List<CommandRegister> registeredComamnds = new List<CommandRegister>();
|
||||
public static CommandRegister[] RegisteredCommands
|
||||
{
|
||||
get
|
||||
{
|
||||
return registeredComamnds.ToArray();
|
||||
}
|
||||
}
|
||||
private Func<string, string[], User, bool> commandCallback;
|
||||
|
||||
public bool CmdRequiresAdmin;
|
||||
public bool CmdRequiresMod;
|
||||
|
||||
public char CmdLetter;
|
||||
public string CmdName;
|
||||
public string CmdUsage;
|
||||
public CommandRegister(char cmdLetter, string cmdName, string cmdUsage, Func<string, string[], User, bool> cmdCallback, bool cmdRequiresAdmin, bool cmdRequiresMod)
|
||||
{
|
||||
this.CmdLetter = cmdLetter;
|
||||
this.CmdName = cmdName.ToUpper(CultureInfo.InvariantCulture).Trim();
|
||||
this.CmdUsage = cmdUsage;
|
||||
|
||||
this.CmdRequiresMod = cmdRequiresMod;
|
||||
this.CmdRequiresAdmin = cmdRequiresAdmin;
|
||||
|
||||
this.commandCallback = cmdCallback;
|
||||
|
||||
registeredComamnds.Add(this);
|
||||
}
|
||||
|
||||
public bool HasPermission(User user)
|
||||
{
|
||||
if (CmdRequiresAdmin && !(user.Administrator))
|
||||
return false;
|
||||
if (CmdRequiresMod && !(user.Moderator || user.Administrator))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Execute(string message, string[] args, User user)
|
||||
{
|
||||
if(HasPermission(user))
|
||||
return commandCallback(message, args, user);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
0
HorseIsleServer/HorseIsleServer/Game/Chat/SocialType.cs → HorseIsleServer/LibHISP/Game/Chat/SocialType.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Chat/SocialType.cs → HorseIsleServer/LibHISP/Game/Chat/SocialType.cs
Normal file → Executable file
16
HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs → HorseIsleServer/LibHISP/Game/Events/IsleCardTradingGame.cs
Normal file → Executable file
16
HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs → HorseIsleServer/LibHISP/Game/Events/IsleCardTradingGame.cs
Normal file → Executable file
|
@ -54,16 +54,16 @@ namespace HISP.Game.Events
|
|||
int totalTypes = 0;
|
||||
|
||||
foreach (int itemId in Item.TradingCards)
|
||||
if (client.LoggedinUser.Inventory.HasItemId(itemId))
|
||||
totalCards += client.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances.Length;
|
||||
if (client.User.Inventory.HasItemId(itemId))
|
||||
totalCards += client.User.Inventory.GetItemByItemId(itemId).ItemInstances.Length;
|
||||
|
||||
if (client.LoggedinUser.Inventory.HasItemId(Item.ColtTradingCard))
|
||||
if (client.User.Inventory.HasItemId(Item.ColtTradingCard))
|
||||
totalTypes++;
|
||||
if (client.LoggedinUser.Inventory.HasItemId(Item.FillyTradingCard))
|
||||
if (client.User.Inventory.HasItemId(Item.FillyTradingCard))
|
||||
totalTypes++;
|
||||
if (client.LoggedinUser.Inventory.HasItemId(Item.MareTradingCard))
|
||||
if (client.User.Inventory.HasItemId(Item.MareTradingCard))
|
||||
totalTypes++;
|
||||
if (client.LoggedinUser.Inventory.HasItemId(Item.StallionTradingCard))
|
||||
if (client.User.Inventory.HasItemId(Item.StallionTradingCard))
|
||||
totalTypes++;
|
||||
|
||||
if(totalCards > 4)
|
||||
|
@ -93,12 +93,12 @@ namespace HISP.Game.Events
|
|||
}
|
||||
else if (totalTypes == 4)
|
||||
{
|
||||
client.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.IsleCardsGameWin).Count++;
|
||||
client.User.TrackedItems.GetTrackedItem(Tracking.TrackableItem.IsleCardsGameWin).Count++;
|
||||
|
||||
byte[] wonIsleCardGame = PacketBuilder.CreateChat(Messages.EventWonIsleTradingGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
client.SendPacket(wonIsleCardGame);
|
||||
|
||||
client.LoggedinUser.AddMoney(25000);
|
||||
client.User.AddMoney(25000);
|
||||
|
||||
}
|
||||
|
13
HorseIsleServer/HorseIsleServer/Game/Events/ModsRevenge.cs → HorseIsleServer/LibHISP/Game/Events/ModsRevenge.cs
Normal file → Executable file
13
HorseIsleServer/HorseIsleServer/Game/Events/ModsRevenge.cs → HorseIsleServer/LibHISP/Game/Events/ModsRevenge.cs
Normal file → Executable file
|
@ -1,6 +1,7 @@
|
|||
using HISP.Game.Items;
|
||||
using HISP.Player;
|
||||
using HISP.Server;
|
||||
using HISP.Util;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
|
@ -13,7 +14,7 @@ namespace HISP.Game.Events
|
|||
public ThrowTracker(User thrower)
|
||||
{
|
||||
Thrower = thrower;
|
||||
thrownAt = new List<User>();
|
||||
thrownAt = new ThreadSafeList<User>();
|
||||
}
|
||||
|
||||
public void AddThrownAt(User user)
|
||||
|
@ -21,7 +22,7 @@ namespace HISP.Game.Events
|
|||
thrownAt.Add(user);
|
||||
}
|
||||
public User Thrower;
|
||||
private List<User> thrownAt;
|
||||
private ThreadSafeList<User> thrownAt;
|
||||
public User[] ThrownAt
|
||||
{
|
||||
get
|
||||
|
@ -33,7 +34,7 @@ namespace HISP.Game.Events
|
|||
|
||||
public bool Active = false;
|
||||
public const int REVENGE_TIMEOUT = 10;
|
||||
private List<ThrowTracker> trackedThrows;
|
||||
private ThreadSafeList<ThrowTracker> trackedThrows;
|
||||
private Timer revengeTimeout;
|
||||
public ThrowTracker[] TrackedThrows
|
||||
{
|
||||
|
@ -45,7 +46,7 @@ namespace HISP.Game.Events
|
|||
|
||||
public ModsRevenge()
|
||||
{
|
||||
trackedThrows = new List<ThrowTracker>();
|
||||
trackedThrows = new ThreadSafeList<ThrowTracker>();
|
||||
Active = false;
|
||||
}
|
||||
|
||||
|
@ -147,8 +148,8 @@ namespace HISP.Game.Events
|
|||
thrower.AddMoney(50);
|
||||
throwAt.AddMoney(500);
|
||||
|
||||
thrower.LoggedinClient.SendPacket(youEarned);
|
||||
throwAt.LoggedinClient.SendPacket(otherEarned);
|
||||
thrower.Client.SendPacket(youEarned);
|
||||
throwAt.Client.SendPacket(otherEarned);
|
||||
|
||||
throwCounter.AddThrownAt(throwAt);
|
||||
}
|
2
HorseIsleServer/HorseIsleServer/Game/Events/RandomEvent.cs → HorseIsleServer/LibHISP/Game/Events/RandomEvent.cs
Normal file → Executable file
2
HorseIsleServer/HorseIsleServer/Game/Events/RandomEvent.cs → HorseIsleServer/LibHISP/Game/Events/RandomEvent.cs
Normal file → Executable file
|
@ -59,7 +59,7 @@ namespace HISP.Game.Events
|
|||
|
||||
string msg = Messages.FormatRandomEvent(rngEvent.Text, moneyEarned, horseName);
|
||||
byte[] chatPacket = PacketBuilder.CreateChat(Messages.RandomEventPrefix + msg, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
user.LoggedinClient.SendPacket(chatPacket);
|
||||
user.Client.SendPacket(chatPacket);
|
||||
|
||||
return;
|
||||
}
|
17
HorseIsleServer/HorseIsleServer/Game/Events/RealTimeQuiz.cs → HorseIsleServer/LibHISP/Game/Events/RealTimeQuiz.cs
Normal file → Executable file
17
HorseIsleServer/HorseIsleServer/Game/Events/RealTimeQuiz.cs → HorseIsleServer/LibHISP/Game/Events/RealTimeQuiz.cs
Normal file → Executable file
|
@ -1,5 +1,6 @@
|
|||
using HISP.Player;
|
||||
using HISP.Server;
|
||||
using HISP.Util;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
|
@ -46,8 +47,8 @@ namespace HISP.Game.Events
|
|||
if (this.Quit)
|
||||
return;
|
||||
|
||||
byte[] realTimeQuizQuestion = PacketBuilder.CreateMetaPacket(Meta.BuildRealTimeQuiz(this));
|
||||
this.UserInstance.LoggedinClient.SendPacket(realTimeQuizQuestion);
|
||||
byte[] realTimeQuizQuestion = PacketBuilder.CreateMeta(Meta.BuildRealTimeQuiz(this));
|
||||
this.UserInstance.Client.SendPacket(realTimeQuizQuestion);
|
||||
}
|
||||
|
||||
public void CheckAnswer(string answer)
|
||||
|
@ -97,11 +98,11 @@ namespace HISP.Game.Events
|
|||
return participents.ToArray();
|
||||
}
|
||||
}
|
||||
private List<Participent> participents;
|
||||
private ThreadSafeList<Participent> participents;
|
||||
|
||||
public RealTimeQuiz()
|
||||
{
|
||||
participents = new List<Participent>();
|
||||
participents = new ThreadSafeList<Participent>();
|
||||
Questions = new QuizQuestion[8];
|
||||
for(int i = 0; i < 8; i++)
|
||||
{
|
||||
|
@ -159,7 +160,7 @@ namespace HISP.Game.Events
|
|||
Participent partcipent = getParticipent(user.Id);
|
||||
partcipent.Quit = true;
|
||||
user.InRealTimeQuiz = false;
|
||||
GameServer.UpdateArea(user.LoggedinClient);
|
||||
GameServer.UpdateArea(user.Client);
|
||||
}
|
||||
catch (KeyNotFoundException) { };
|
||||
}
|
||||
|
@ -218,7 +219,7 @@ namespace HISP.Game.Events
|
|||
|
||||
|
||||
participent.UserInstance.InRealTimeQuiz = false;
|
||||
GameServer.UpdateArea(participent.UserInstance.LoggedinClient);
|
||||
GameServer.UpdateArea(participent.UserInstance.Client);
|
||||
|
||||
int money = 0;
|
||||
|
||||
|
@ -237,12 +238,12 @@ namespace HISP.Game.Events
|
|||
if (participent.Won)
|
||||
{
|
||||
byte[] wonBonusMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeQuizWinBonus(money), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
participent.UserInstance.LoggedinClient.SendPacket(wonBonusMessage);
|
||||
participent.UserInstance.Client.SendPacket(wonBonusMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
byte[] bonusMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeQuizBonus(money), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
participent.UserInstance.LoggedinClient.SendPacket(bonusMessage);
|
||||
participent.UserInstance.Client.SendPacket(bonusMessage);
|
||||
}
|
||||
|
||||
participent.UserInstance.AddMoney(money);
|
4
HorseIsleServer/HorseIsleServer/Game/Events/RealTimeRiddle.cs → HorseIsleServer/LibHISP/Game/Events/RealTimeRiddle.cs
Normal file → Executable file
4
HorseIsleServer/HorseIsleServer/Game/Events/RealTimeRiddle.cs → HorseIsleServer/LibHISP/Game/Events/RealTimeRiddle.cs
Normal file → Executable file
|
@ -59,7 +59,7 @@ namespace HISP.Game.Events
|
|||
if (Database.HasPlayerCompletedRealTimeRiddle(RiddleId, winner.Id))
|
||||
{
|
||||
byte[] alreadyWonRiddleMessage = PacketBuilder.CreateChat(Messages.EventAlreadySovledRealTimeRiddle, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
winner.LoggedinClient.SendPacket(alreadyWonRiddleMessage);
|
||||
winner.Client.SendPacket(alreadyWonRiddleMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ namespace HISP.Game.Events
|
|||
foreach (GameClient client in GameClient.ConnectedClients)
|
||||
{
|
||||
if (client.LoggedIn)
|
||||
if (client.LoggedinUser.Id != winner.Id)
|
||||
if (client.User.Id != winner.Id)
|
||||
client.SendPacket(riddleWonMessage);
|
||||
else
|
||||
client.SendPacket(riddleYouWonMessage);
|
0
HorseIsleServer/HorseIsleServer/Game/Events/TackShopGiveaway.cs → HorseIsleServer/LibHISP/Game/Events/TackShopGiveaway.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Events/TackShopGiveaway.cs → HorseIsleServer/LibHISP/Game/Events/TackShopGiveaway.cs
Normal file → Executable file
2
HorseIsleServer/HorseIsleServer/Game/Events/WaterBalloonGame.cs → HorseIsleServer/LibHISP/Game/Events/WaterBalloonGame.cs
Normal file → Executable file
2
HorseIsleServer/HorseIsleServer/Game/Events/WaterBalloonGame.cs → HorseIsleServer/LibHISP/Game/Events/WaterBalloonGame.cs
Normal file → Executable file
|
@ -80,7 +80,7 @@ namespace HISP.Game.Events
|
|||
{
|
||||
byte[] youWinMsg = PacketBuilder.CreateChat(Messages.EventWonWaterBallonGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
winner.UserHit.AddMoney(20000);
|
||||
winner.UserHit.LoggedinClient.SendPacket(youWinMsg);
|
||||
winner.UserHit.Client.SendPacket(youWinMsg);
|
||||
winner.UserHit.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WaterbaloonGameWin).Count++;
|
||||
}
|
||||
|
0
HorseIsleServer/HorseIsleServer/Game/GameExceptions.cs → HorseIsleServer/LibHISP/Game/GameExceptions.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/GameExceptions.cs → HorseIsleServer/LibHISP/Game/GameExceptions.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/HorseInfo.cs → HorseIsleServer/LibHISP/Game/Horse/HorseInfo.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/HorseInfo.cs → HorseIsleServer/LibHISP/Game/Horse/HorseInfo.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/HorseInstance.cs → HorseIsleServer/LibHISP/Game/Horse/HorseInstance.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/HorseInstance.cs → HorseIsleServer/LibHISP/Game/Horse/HorseInstance.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/Leaser.cs → HorseIsleServer/LibHISP/Game/Horse/Leaser.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Horse/Leaser.cs → HorseIsleServer/LibHISP/Game/Horse/Leaser.cs
Normal file → Executable file
3
HorseIsleServer/HorseIsleServer/Game/Horse/WildHorse.cs → HorseIsleServer/LibHISP/Game/Horse/WildHorse.cs
Normal file → Executable file
3
HorseIsleServer/HorseIsleServer/Game/Horse/WildHorse.cs → HorseIsleServer/LibHISP/Game/Horse/WildHorse.cs
Normal file → Executable file
|
@ -1,5 +1,6 @@
|
|||
using HISP.Player;
|
||||
using HISP.Server;
|
||||
using HISP.Util;
|
||||
using System.Collections.Generic;
|
||||
namespace HISP.Game.Horse
|
||||
{
|
||||
|
@ -181,7 +182,7 @@ namespace HISP.Game.Horse
|
|||
Despawn(this);
|
||||
}
|
||||
|
||||
private static List<WildHorse> wildHorses = new List<WildHorse>();
|
||||
private static ThreadSafeList<WildHorse> wildHorses = new ThreadSafeList<WildHorse>();
|
||||
public static WildHorse[] WildHorses
|
||||
{
|
||||
get
|
3
HorseIsleServer/HorseIsleServer/Game/Inventory/HorseInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/HorseInventory.cs
Normal file → Executable file
3
HorseIsleServer/HorseIsleServer/Game/Inventory/HorseInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/HorseInventory.cs
Normal file → Executable file
|
@ -1,6 +1,7 @@
|
|||
using HISP.Game.Horse;
|
||||
using HISP.Player;
|
||||
using HISP.Server;
|
||||
using HISP.Util;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace HISP.Game.Inventory
|
||||
|
@ -8,7 +9,7 @@ namespace HISP.Game.Inventory
|
|||
public class HorseInventory
|
||||
{
|
||||
private User baseUser;
|
||||
private List<HorseInstance> horsesList = new List<HorseInstance>();
|
||||
private ThreadSafeList<HorseInstance> horsesList = new ThreadSafeList<HorseInstance>();
|
||||
public HorseInstance[] HorseList
|
||||
{
|
||||
get
|
0
HorseIsleServer/HorseIsleServer/Game/Inventory/IInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/IInventory.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Inventory/IInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/IInventory.cs
Normal file → Executable file
11
HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs → HorseIsleServer/LibHISP/Game/Inventory/InventoryItem.cs
Normal file → Executable file
11
HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs → HorseIsleServer/LibHISP/Game/Inventory/InventoryItem.cs
Normal file → Executable file
|
@ -1,21 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using HISP.Game.Items;
|
||||
|
||||
using HISP.Game.Items;
|
||||
using HISP.Util;
|
||||
|
||||
namespace HISP.Game.Inventory
|
||||
{
|
||||
public class InventoryItem
|
||||
{
|
||||
public InventoryItem()
|
||||
{
|
||||
itemInstances = new List<ItemInstance>();
|
||||
itemInstances = new ThreadSafeList<ItemInstance>();
|
||||
Infinite = false;
|
||||
ItemId = 0;
|
||||
}
|
||||
|
||||
public int ItemId;
|
||||
public bool Infinite;
|
||||
private List<ItemInstance> itemInstances;
|
||||
private ThreadSafeList<ItemInstance> itemInstances;
|
||||
public void RemoveItem(ItemInstance itm)
|
||||
{
|
||||
itemInstances.Remove(itm);
|
11
HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/PlayerInventory.cs
Normal file → Executable file
11
HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/PlayerInventory.cs
Normal file → Executable file
|
@ -4,19 +4,20 @@ using System.Linq;
|
|||
using HISP.Player;
|
||||
using HISP.Server;
|
||||
using HISP.Game.Items;
|
||||
|
||||
using HISP.Util;
|
||||
|
||||
namespace HISP.Game.Inventory
|
||||
{
|
||||
|
||||
{
|
||||
|
||||
public class PlayerInventory : IInventory
|
||||
{
|
||||
|
||||
|
||||
public User BaseUser;
|
||||
private List<InventoryItem> inventoryItems;
|
||||
private ThreadSafeList<InventoryItem> inventoryItems;
|
||||
public PlayerInventory(User forUser)
|
||||
{
|
||||
inventoryItems = new List<InventoryItem>();
|
||||
inventoryItems = new ThreadSafeList<InventoryItem>();
|
||||
|
||||
BaseUser = forUser;
|
||||
ItemInstance[] instances = Database.GetPlayerInventory(BaseUser.Id).ToArray();
|
7
HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/ShopInventory.cs
Normal file → Executable file
7
HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs → HorseIsleServer/LibHISP/Game/Inventory/ShopInventory.cs
Normal file → Executable file
|
@ -4,13 +4,14 @@ using HISP.Game.Items;
|
|||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using HISP.Util;
|
||||
|
||||
namespace HISP.Game.Inventory
|
||||
{
|
||||
public class ShopInventory : IInventory
|
||||
{
|
||||
private Shop baseShop;
|
||||
private List<InventoryItem> inventoryItems;
|
||||
private ThreadSafeList<InventoryItem> inventoryItems;
|
||||
public int Count
|
||||
{
|
||||
get
|
||||
|
@ -21,7 +22,7 @@ namespace HISP.Game.Inventory
|
|||
public ShopInventory(Shop shopkeeper)
|
||||
{
|
||||
baseShop = shopkeeper;
|
||||
inventoryItems = new List<InventoryItem>();
|
||||
inventoryItems = new ThreadSafeList<InventoryItem>();
|
||||
}
|
||||
|
||||
private void addItem(ItemInstance item, bool addToDatabase)
|
17
HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs → HorseIsleServer/LibHISP/Game/Items/DroppedItems.cs
Normal file → Executable file
17
HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs → HorseIsleServer/LibHISP/Game/Items/DroppedItems.cs
Normal file → Executable file
|
@ -134,26 +134,21 @@ namespace HISP.Game.Items
|
|||
droppedItemsList.Add(droppedItem);
|
||||
Database.AddDroppedItem(droppedItem);
|
||||
}
|
||||
public static void GenerateItems(bool isFirstLoad=false)
|
||||
public static void GenerateItems()
|
||||
{
|
||||
if (isFirstLoad)
|
||||
Logger.InfoPrint("Generating items, (this may take awhile on a fresh database!)");
|
||||
else
|
||||
Logger.DebugPrint("Generating items.");
|
||||
Logger.DebugPrint("Generating items.");
|
||||
|
||||
int newItems = 0;
|
||||
foreach (Item.ItemInformation item in Item.Items)
|
||||
{
|
||||
int count = GetCountOfItem(item);
|
||||
do
|
||||
{
|
||||
//do
|
||||
//{
|
||||
if (count < item.SpawnParamaters.SpawnCap)
|
||||
{
|
||||
|
||||
count++;
|
||||
int despawnTimer = 1440;
|
||||
if (isFirstLoad)
|
||||
despawnTimer = GameServer.RandomNumberGenerator.Next(0, 1440 + 1);
|
||||
|
||||
if (item.SpawnParamaters.SpawnInZone != null)
|
||||
{
|
||||
|
@ -324,7 +319,7 @@ namespace HISP.Game.Items
|
|||
}
|
||||
}
|
||||
|
||||
} while (isFirstLoad && (count < item.SpawnParamaters.SpawnCap));
|
||||
//} while (count < item.SpawnParamaters.SpawnCap);
|
||||
|
||||
|
||||
}
|
||||
|
@ -342,7 +337,7 @@ namespace HISP.Game.Items
|
|||
public static void Init()
|
||||
{
|
||||
ReadFromDatabase();
|
||||
GenerateItems(Database.GetDroppedItemsCount() <= 0);
|
||||
GenerateItems();
|
||||
}
|
||||
|
||||
}
|
6
HorseIsleServer/HorseIsleServer/Game/Items/Item.cs → HorseIsleServer/LibHISP/Game/Items/Item.cs
Normal file → Executable file
6
HorseIsleServer/HorseIsleServer/Game/Items/Item.cs → HorseIsleServer/LibHISP/Game/Items/Item.cs
Normal file → Executable file
|
@ -150,7 +150,7 @@ namespace HISP.Game.Items
|
|||
if (isle.Name == "Prison Isle")
|
||||
{
|
||||
byte[] dontWorkHere = PacketBuilder.CreateChat(Messages.RanchDorothyShoesPrisonIsleMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
user.LoggedinClient.SendPacket(dontWorkHere);
|
||||
user.Client.SendPacket(dontWorkHere);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -162,14 +162,14 @@ namespace HISP.Game.Items
|
|||
return;
|
||||
}
|
||||
byte[] noPlaceLIke127001 = PacketBuilder.CreateChat(Messages.RanchDorothyShoesMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
user.LoggedinClient.SendPacket(noPlaceLIke127001);
|
||||
user.Client.SendPacket(noPlaceLIke127001);
|
||||
|
||||
user.Teleport(user.OwnedRanch.X, user.OwnedRanch.Y);
|
||||
}
|
||||
else if (itm.ItemId == Item.Telescope)
|
||||
{
|
||||
byte[] birdMap = PacketBuilder.CreateBirdMap(user.X, user.Y);
|
||||
user.LoggedinClient.SendPacket(birdMap);
|
||||
user.Client.SendPacket(birdMap);
|
||||
}
|
||||
else
|
||||
{
|
0
HorseIsleServer/HorseIsleServer/Game/Items/ItemInstance.cs → HorseIsleServer/LibHISP/Game/Items/ItemInstance.cs
Normal file → Executable file
0
HorseIsleServer/HorseIsleServer/Game/Items/ItemInstance.cs → HorseIsleServer/LibHISP/Game/Items/ItemInstance.cs
Normal file → Executable file
7
HorseIsleServer/HorseIsleServer/Game/Items/Tack.cs → HorseIsleServer/LibHISP/Game/Items/Tack.cs
Normal file → Executable file
7
HorseIsleServer/HorseIsleServer/Game/Items/Tack.cs → HorseIsleServer/LibHISP/Game/Items/Tack.cs
Normal file → Executable file
|
@ -4,7 +4,8 @@ using System.Collections.Generic;
|
|||
using System.Text;
|
||||
|
||||
using HISP.Server;
|
||||
|
||||
using HISP.Util;
|
||||
|
||||
namespace HISP.Game.Items
|
||||
{
|
||||
public class Tack
|
||||
|
@ -122,13 +123,13 @@ namespace HISP.Game.Items
|
|||
|
||||
try
|
||||
{
|
||||
TackSet set = GetSetByName(Util.CapitalizeFirstLetter(itemInfo.EmbedSwf));
|
||||
TackSet set = GetSetByName(Helper.CapitalizeFirstLetter(itemInfo.EmbedSwf));
|
||||
set.Add(itemInfo);
|
||||
}
|
||||
catch(KeyNotFoundException)
|
||||
{
|
||||
TackSet tackSet = new TackSet();
|
||||
tackSet.SetName = Util.CapitalizeFirstLetter(itemInfo.EmbedSwf);
|
||||
tackSet.SetName = Helper.CapitalizeFirstLetter(itemInfo.EmbedSwf);
|
||||
tackSet.Add(itemInfo);
|
||||
tackSets.Add(tackSet);
|
||||
}
|
27
HorseIsleServer/HorseIsleServer/Game/Map.cs → HorseIsleServer/LibHISP/Game/Map.cs
Normal file → Executable file
27
HorseIsleServer/HorseIsleServer/Game/Map.cs → HorseIsleServer/LibHISP/Game/Map.cs
Normal file → Executable file
|
@ -12,7 +12,14 @@ namespace HISP.Game
|
|||
public string Type;
|
||||
}
|
||||
|
||||
public static int[] OverlayTileDepth;
|
||||
public struct TileDepth
|
||||
{
|
||||
public bool ShowPlayer;
|
||||
public bool Passable;
|
||||
}
|
||||
|
||||
public static TileDepth[] OverlayTileDepth;
|
||||
public static TerrainTile[] TerrainTiles;
|
||||
|
||||
public static int Width;
|
||||
public static int Height;
|
||||
|
@ -20,8 +27,6 @@ namespace HISP.Game
|
|||
public static byte[] MapData;
|
||||
public static byte[] oMapData;
|
||||
|
||||
public static TerrainTile[] TerrainTiles;
|
||||
|
||||
|
||||
public static int NewUserStartX;
|
||||
public static int NewUserStartY;
|
||||
|
@ -75,19 +80,9 @@ namespace HISP.Game
|
|||
if (World.InIsle(x, y))
|
||||
tileset = World.GetIsle(x, y).Tileset;
|
||||
otileId = otileId + 64 * tileset;
|
||||
}
|
||||
|
||||
|
||||
int tileDepth = OverlayTileDepth[otileId];
|
||||
bool overlayPassable = false;
|
||||
if (tileDepth == 0)
|
||||
overlayPassable = false;
|
||||
if (tileDepth == 1)
|
||||
overlayPassable = false;
|
||||
if (tileDepth == 2)
|
||||
overlayPassable = true;
|
||||
if (tileDepth == 3)
|
||||
overlayPassable = true;
|
||||
}
|
||||
|
||||
bool overlayPassable = OverlayTileDepth[otileId].Passable;
|
||||
|
||||
if ((!terrainPassable && overlayPassable) && otileId == 0)
|
||||
return false;
|
6078
HorseIsleServer/HorseIsleServer/Game/Messages.cs → HorseIsleServer/LibHISP/Game/Messages.cs
Normal file → Executable file
6078
HorseIsleServer/HorseIsleServer/Game/Messages.cs → HorseIsleServer/LibHISP/Game/Messages.cs
Normal file → Executable file
File diff suppressed because it is too large
Load diff
6144
HorseIsleServer/HorseIsleServer/Game/Meta.cs → HorseIsleServer/LibHISP/Game/Meta.cs
Normal file → Executable file
6144
HorseIsleServer/HorseIsleServer/Game/Meta.cs → HorseIsleServer/LibHISP/Game/Meta.cs
Normal file → Executable file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue