Compare commits
2350
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac6e1d2525 | ||
|
|
610b74d3a5 | ||
|
|
7f295aaacf | ||
|
|
a47669ff75 | ||
|
|
9f84eb8d4d | ||
|
|
5f36143b44 | ||
|
|
2d491dd393 | ||
|
|
63845afdc3 | ||
|
|
3cfcfff786 | ||
|
|
9f801df5dc | ||
|
|
21b8c6ea8f | ||
|
|
0807f9912c | ||
|
|
90a71ba75d | ||
|
|
2e26244992 | ||
|
|
8f1e713451 | ||
|
|
b7b5c7b0da | ||
|
|
cb42813597 | ||
|
|
91c46f465b | ||
|
|
435044dddd | ||
|
|
cccf9968e7 | ||
|
|
f1e4185193 | ||
|
|
dc538af7ba | ||
|
|
574ca07afe | ||
|
|
f18b2ed1a5 | ||
|
|
bc568e2083 | ||
|
|
bffdf9d190 | ||
|
|
e7af4563a2 | ||
|
|
5fc5adb14d | ||
|
|
f3ccf5e633 | ||
|
|
46cacc4a7d | ||
|
|
ac8edcee32 | ||
|
|
919c44c727 | ||
|
|
95921ae727 | ||
|
|
134f043e9c | ||
|
|
a7a14a66a6 | ||
|
|
148d92164a | ||
|
|
5ea1b0bce4 | ||
|
|
65aefadcdc | ||
|
|
1bc324fb9f | ||
|
|
28953ae1d9 | ||
|
|
3760e244a9 | ||
|
|
e86d755b69 | ||
|
|
6f560a1b34 | ||
|
|
6fe573ef7b | ||
|
|
2a7baf020f | ||
|
|
2e1815783a | ||
|
|
bab86c9f0b | ||
|
|
2716e9af39 | ||
|
|
9a303c4510 | ||
|
|
e547971a6f | ||
|
|
e9108ead86 | ||
|
|
6bbcb25138 | ||
|
|
98462ca34d | ||
|
|
7939dd0b44 | ||
|
|
3d966ec076 | ||
|
|
6afedb35df | ||
|
|
cdac63e05a | ||
|
|
8040cc28c4 | ||
|
|
264db40bdc | ||
|
|
2da1957c28 | ||
|
|
2297fa9c13 | ||
|
|
8175e76a77 | ||
|
|
2709dde8fa | ||
|
|
7c518efba8 | ||
|
|
b5fa2aef91 | ||
|
|
d2f6c34e85 | ||
|
|
cd1ccfadaf | ||
|
|
8ff6bff252 | ||
|
|
52f6cb2f30 | ||
|
|
e7af718a0f | ||
|
|
d211c92bf8 | ||
|
|
4acc988cfe | ||
|
|
270f236f95 | ||
|
|
2da12bb71f | ||
|
|
b479add03d | ||
|
|
ca9db6dc18 | ||
|
|
12c7c7b4ed | ||
|
|
e12c0e51c8 | ||
|
|
6683c70195 | ||
|
|
aef1cbd201 | ||
|
|
06786aff28 | ||
|
|
55439c268f | ||
|
|
3e4cf764c8 | ||
|
|
4e359f5eb9 | ||
|
|
2ff3746df2 | ||
|
|
62982d7ffb | ||
|
|
ec49cdb6ad | ||
|
|
4b64827f20 | ||
|
|
944c4cb564 | ||
|
|
db19655b60 | ||
|
|
1975f11338 | ||
|
|
59515d5276 | ||
|
|
fea9529bc8 | ||
|
|
1f6259c157 | ||
|
|
8908e12c59 | ||
|
|
a7d6bc2c5c | ||
|
|
97fd807c2c | ||
|
|
b31f7d64ec | ||
|
|
bdd574161e | ||
|
|
e23e36cbfa | ||
|
|
fb796e21e4 | ||
|
|
dd46c02f09 | ||
|
|
d1835c71b7 | ||
|
|
55332864ad | ||
|
|
96a8ef3bcc | ||
|
|
79cfbfe83b | ||
|
|
e7fa95ce8f | ||
|
|
a819dde71c | ||
|
|
281cfd366b | ||
|
|
f1ba7e76f3 | ||
|
|
2da72d9b1a | ||
|
|
4cdc18fe7e | ||
|
|
4400116bdd | ||
|
|
086d6d1ab5 | ||
|
|
02e86fd2e9 | ||
|
|
7310aa6971 | ||
|
|
4927a26c92 | ||
|
|
ee6bec2e0d | ||
|
|
def230bf30 | ||
|
|
0a4d568b06 | ||
|
|
69f8e1f1bd | ||
|
|
6f2cb4e05e | ||
|
|
db1fbb700c | ||
|
|
842a37eb7b | ||
|
|
76ff38ed10 | ||
|
|
db6b2be101 | ||
|
|
a998500839 | ||
|
|
dd5e686d03 | ||
|
|
c9f28e27d2 | ||
|
|
1bbeb4f50d | ||
|
|
410f6b261e | ||
|
|
7b21b60c11 | ||
|
|
e5d8b71d0a | ||
|
|
d96099b9d3 | ||
|
|
ffe9fc9349 | ||
|
|
b7415ba521 | ||
|
|
38e689ebb2 | ||
|
|
09caaee58d | ||
|
|
e8f8fc501d | ||
|
|
e6038b854e | ||
|
|
dad01b45e4 | ||
|
|
356250ba8c | ||
|
|
d1f7c13488 | ||
|
|
6f614eddd3 | ||
|
|
5142c94f84 | ||
|
|
c961096b70 | ||
|
|
c6050c6d21 | ||
|
|
8bbc6ae02d | ||
|
|
0adaf7d6c4 | ||
|
|
452c340112 | ||
|
|
ffabe96b15 | ||
|
|
3fc1183be6 | ||
|
|
de85ac9237 | ||
|
|
86dd573e2f | ||
|
|
b0c7d60d5a | ||
|
|
507fa102b9 | ||
|
|
95f079474e | ||
|
|
f951f313d2 | ||
|
|
50e11f22a1 | ||
|
|
6dac344a35 | ||
|
|
caf51fdc06 | ||
|
|
7d84d383d6 | ||
|
|
80d7ad8789 | ||
|
|
be5dc42eb1 | ||
|
|
c8961f60fa | ||
|
|
c757687eba | ||
|
|
dd6d59cf97 | ||
|
|
909f4ec2b7 | ||
|
|
4bf06d9ee5 | ||
|
|
587f9fc1ec | ||
|
|
841e5c5395 | ||
|
|
c383a5cc22 | ||
|
|
003ea3baa7 | ||
|
|
0fa98340c1 | ||
|
|
64e36f038e | ||
|
|
78d95048d5 | ||
|
|
c47f8dbba3 | ||
|
|
2dc206ff56 | ||
|
|
72f7811f3d | ||
|
|
c8146814df | ||
|
|
a01e5df650 | ||
|
|
9bd151cdc2 | ||
|
|
e2ed918437 | ||
|
|
bc658433e2 | ||
|
|
db1dd6f3df | ||
|
|
edca481362 | ||
|
|
bc1ca6274d | ||
|
|
2335dc7566 | ||
|
|
94ab040693 | ||
|
|
b4b4678e26 | ||
|
|
6c93d2fd85 | ||
|
|
4ca33cb007 | ||
|
|
96515fd16c | ||
|
|
d736e2d947 | ||
|
|
7631d99ce6 | ||
|
|
6ddeed82c0 | ||
|
|
ffc8242aae | ||
|
|
2767bf70d9 | ||
|
|
fa7c7794d0 | ||
|
|
015e9e54dc | ||
|
|
7dc9863b49 | ||
|
|
f13960a56a | ||
|
|
ba6370d206 | ||
|
|
32fd8c481a | ||
|
|
e9264e6f13 | ||
|
|
93e6a056d4 | ||
|
|
3610f2cbd4 | ||
|
|
0c51544e2e | ||
|
|
8f1f477054 | ||
|
|
0b72925f09 | ||
|
|
9fb477facc | ||
|
|
3c474e5551 | ||
|
|
9217f0aaf5 | ||
|
|
dddf4ccf6e | ||
|
|
4de010cb1e | ||
|
|
d2ed7a4a80 | ||
|
|
311d5c42a8 | ||
|
|
3c6a884663 | ||
|
|
1bfd0018b1 | ||
|
|
2c3a9b93c7 | ||
|
|
0961220fdd | ||
|
|
c8b2f28c7c | ||
|
|
3f7cc163ec | ||
|
|
8ede84c176 | ||
|
|
6a7f62f2c2 | ||
|
|
0b82024caa | ||
|
|
fd057ebb05 | ||
|
|
47e6958446 | ||
|
|
690fe46931 | ||
|
|
10ec7b55d0 | ||
|
|
5079db5ceb | ||
|
|
dd4f664724 | ||
|
|
932e8ca093 | ||
|
|
193e6eb9ca | ||
|
|
e28b878a68 | ||
|
|
4d6f64cf96 | ||
|
|
6441fc09e4 | ||
|
|
d8c54b4632 | ||
|
|
a8f2c9787d | ||
|
|
dfb10c1b44 | ||
|
|
95bd5b539f | ||
|
|
c811a56557 | ||
|
|
5892ddcad8 | ||
|
|
111a81766e | ||
|
|
5819045a01 | ||
|
|
b8f19e11ff | ||
|
|
d3c73579d9 | ||
|
|
5f001ee091 | ||
|
|
741c67c7cb | ||
|
|
9456406009 | ||
|
|
8464f96e40 | ||
|
|
3c23e0fb93 | ||
|
|
18807a642a | ||
|
|
975f77e907 | ||
|
|
bd42042a61 | ||
|
|
9134a7d9f6 | ||
|
|
53d65c31db | ||
|
|
612f15ebad | ||
|
|
33378c96ec | ||
|
|
703e2f51be | ||
|
|
7d8fa7f1c4 | ||
|
|
62089ef2c2 | ||
|
|
1d946aa525 | ||
|
|
19b62a632b | ||
|
|
cbd5b7fc5e | ||
|
|
58673fb385 | ||
|
|
26ea6a6c69 | ||
|
|
1727d34853 | ||
|
|
fc3b854add | ||
|
|
dba8e5d699 | ||
|
|
f3df6f7202 | ||
|
|
3cbf1eba30 | ||
|
|
4623cfbe06 | ||
|
|
d4d8e0045b | ||
|
|
ea4f1643d4 | ||
|
|
5a2ea3496e | ||
|
|
6dd77dd632 | ||
|
|
d4279b0cb7 | ||
|
|
601222a60d | ||
|
|
9c541735b7 | ||
|
|
858f7139ff | ||
|
|
a326ad3c66 | ||
|
|
33751a06fe | ||
|
|
8cbe92ca46 | ||
|
|
5587a358ce | ||
|
|
40b52dd517 | ||
|
|
5424869d8e | ||
|
|
68a2534d1b | ||
|
|
1699190334 | ||
|
|
d86d96acc1 | ||
|
|
f70dbf9cf3 | ||
|
|
33a1681536 | ||
|
|
fcb8da95ca | ||
|
|
e8148ab4dc | ||
|
|
c14f06615e | ||
|
|
1c0b28eacd | ||
|
|
d317a84b09 | ||
|
|
3972cf0194 | ||
|
|
6d408ac2b1 | ||
|
|
8338f8aaa0 | ||
|
|
fbd0561420 | ||
|
|
de854cc02c | ||
|
|
822e161e2e | ||
|
|
b60bf9fdf9 | ||
|
|
14b0a043d4 | ||
|
|
a2f5d66597 | ||
|
|
c02bc26799 | ||
|
|
932afec74a | ||
|
|
3da67e7d97 | ||
|
|
0c95b958aa | ||
|
|
8895ac329a | ||
|
|
cf0416e976 | ||
|
|
f8f3e4d9e8 | ||
|
|
d6bee9aa6d | ||
|
|
2d5e99a0d6 | ||
|
|
97b71347a6 | ||
|
|
10e3a0814f | ||
|
|
f909df204a | ||
|
|
661e6cc5da | ||
|
|
b2b911ec81 | ||
|
|
f238077944 | ||
|
|
3c930dacb8 | ||
|
|
6dcb46c0b8 | ||
|
|
27c7a5a3ad | ||
|
|
846bdfdc88 | ||
|
|
a2026cb3fd | ||
|
|
06fa539293 | ||
|
|
752f69d3ef | ||
|
|
897997b8ac | ||
|
|
526fa11c20 | ||
|
|
8eda98ff4c | ||
|
|
99d7a26b98 | ||
|
|
0aaadf9536 | ||
|
|
9adcbecce4 | ||
|
|
6605a84f2c | ||
|
|
6c9510d8f4 | ||
|
|
03a62dc23f | ||
|
|
93efacbef5 | ||
|
|
b6b28de8e2 | ||
|
|
faaed40b39 | ||
|
|
6b035f64d2 | ||
|
|
9f049dcb18 | ||
|
|
0141449e4f | ||
|
|
4ce49f259d | ||
|
|
0f35569e05 | ||
|
|
1c4dabed72 | ||
|
|
38114c0639 | ||
|
|
527c8370f1 | ||
|
|
6a9a57e2bc | ||
|
|
7b6f1b510e | ||
|
|
94bc7547d6 | ||
|
|
5a4552aaff | ||
|
|
06e314d301 | ||
|
|
8bead301ef | ||
|
|
6282445f7d | ||
|
|
bf244533f7 | ||
|
|
5ebfaf24ee | ||
|
|
0c0283dc02 | ||
|
|
375b08be87 | ||
|
|
cbc8f94b0a | ||
|
|
bdac8d163d | ||
|
|
1f61f37841 | ||
|
|
51d523ae72 | ||
|
|
3f9e4962e6 | ||
|
|
f8fc4fe56b | ||
|
|
fb64b7e412 | ||
|
|
3209cfbc45 | ||
|
|
8a99476136 | ||
|
|
eb80f8d111 | ||
|
|
afde3ce54d | ||
|
|
c4b61fec17 | ||
|
|
0b74abf300 | ||
|
|
e6c3c9f1d4 | ||
|
|
4e7560b4ed | ||
|
|
542491b278 | ||
|
|
d36439355d | ||
|
|
4a80815b39 | ||
|
|
6dc57f2566 | ||
|
|
07e8511ce1 | ||
|
|
8e927831f5 | ||
|
|
2c533d2ab3 | ||
|
|
38208750e7 | ||
|
|
df14d7c306 | ||
|
|
b3612db7d2 | ||
|
|
8d90da659e | ||
|
|
f8ddbc0622 | ||
|
|
673b7054aa | ||
|
|
1472cbf257 | ||
|
|
d806935c58 | ||
|
|
6b56eb79e1 | ||
|
|
d2aea16744 | ||
|
|
bb800f032e | ||
|
|
64b9f9443e | ||
|
|
fd2d3a0e06 | ||
|
|
08d678bdb8 | ||
|
|
418007e572 | ||
|
|
4a1bccdf75 | ||
|
|
00c0b59e9d | ||
|
|
ac82c8ff0b | ||
|
|
f4bef8a090 | ||
|
|
d8a1055bff | ||
|
|
d672ce4d80 | ||
|
|
43ec361d03 | ||
|
|
c3c99c5f76 | ||
|
|
eb1e1421ab | ||
|
|
e8a1d87919 | ||
|
|
921ba6811d | ||
|
|
906dd241b4 | ||
|
|
3f0cd2ad64 | ||
|
|
41420d1954 | ||
|
|
6e5a72b170 | ||
|
|
4b19e6aec8 | ||
|
|
58572cbc36 | ||
|
|
096d5766bf | ||
|
|
f5c5b56492 | ||
|
|
69c69d63e6 | ||
|
|
3fd8b21867 | ||
|
|
8660e8cd85 | ||
|
|
8458f725f2 | ||
|
|
366678c965 | ||
|
|
336b5668db | ||
|
|
55886269ea | ||
|
|
0b3698595b | ||
|
|
05e43a39db | ||
|
|
5737ad3db2 | ||
|
|
4ac174eb9a | ||
|
|
895eec10b4 | ||
|
|
e0d891e89a | ||
|
|
adf7734b85 | ||
|
|
5362be9c21 | ||
|
|
847ece52f2 | ||
|
|
851c59d22c | ||
|
|
0669534bba | ||
|
|
05db47e62a | ||
|
|
4a0e608d1c | ||
|
|
45fe73af86 | ||
|
|
4d9fcd657f | ||
|
|
a057deb0fe | ||
|
|
4766210a7d | ||
|
|
fd26aae6d3 | ||
|
|
c5c092cc8e | ||
|
|
58c0a21d90 | ||
|
|
8dc567f966 | ||
|
|
942b2752f5 | ||
|
|
b9259353f4 | ||
|
|
86c614dd40 | ||
|
|
1a010a16a9 | ||
|
|
d5b5726b1e | ||
|
|
d06f3b6bdf | ||
|
|
97a28f716c | ||
|
|
f54bdfcea0 | ||
|
|
5958c4b0ba | ||
|
|
7c3db881c7 | ||
|
|
51ee2e1b2c | ||
|
|
baa813004b | ||
|
|
86b5269d3d | ||
|
|
860e6dacac | ||
|
|
22025bd89e | ||
|
|
ed9301455d | ||
|
|
35df84e059 | ||
|
|
62deebf310 | ||
|
|
7ed4bd5c01 | ||
|
|
c8eb9332b4 | ||
|
|
1df55f9168 | ||
|
|
b726c6aa96 | ||
|
|
0a71962652 | ||
|
|
160946ef74 | ||
|
|
1dc67317dc | ||
|
|
08f4a2e8bf | ||
|
|
11ffdaa8f7 | ||
|
|
0f853303a4 | ||
|
|
d225eb9b16 | ||
|
|
d926e4b8bc | ||
|
|
3e2df1d4d8 | ||
|
|
d670dbf081 | ||
|
|
f510a312e3 | ||
|
|
19c44e3d31 | ||
|
|
d0848aee67 | ||
|
|
f4b4b6811c | ||
|
|
fecb3f1f7b | ||
|
|
4c924c0763 | ||
|
|
f1e8d70554 | ||
|
|
7d11bc152e | ||
|
|
fdf0a3135a | ||
|
|
3a1a455c48 | ||
|
|
3a786e835b | ||
|
|
c70181132f | ||
|
|
538615a1f5 | ||
|
|
aa20a60a1c | ||
|
|
69fa1dac6c | ||
|
|
3ab349af6e | ||
|
|
97ac7deb2f | ||
|
|
3230cafb9f | ||
|
|
394284d8de | ||
|
|
6323b174c6 | ||
|
|
3d3e0e5139 | ||
|
|
ffc7d4bacc | ||
|
|
598236a1d2 | ||
|
|
69207519bd | ||
|
|
022eb1012f | ||
|
|
0a9c59f91e | ||
|
|
7ebb22b892 | ||
|
|
3dc7fc6f14 | ||
|
|
90dea7517b | ||
|
|
eae48f9564 | ||
|
|
dd7afba5f5 | ||
|
|
73357b6777 | ||
|
|
53df6bbcc6 | ||
|
|
9871559227 | ||
|
|
9cbead1ddc | ||
|
|
6402028c17 | ||
|
|
76bd65cf53 | ||
|
|
6e4113de11 | ||
|
|
12f37f76c7 | ||
|
|
acd77b2c0a | ||
|
|
f4fb4ec00d | ||
|
|
46ae4669ea | ||
|
|
67b2dbfe98 | ||
|
|
4f3b39fbfa | ||
|
|
a28fc52309 | ||
|
|
d5f0d60794 | ||
|
|
72e65587df | ||
|
|
b4d4d90784 | ||
|
|
3f81fb759d | ||
|
|
d995b39e02 | ||
|
|
3bd09a1aa4 | ||
|
|
a6ff951c98 | ||
|
|
604b1557e8 | ||
|
|
279bd5c71a | ||
|
|
97dfb02ab6 | ||
|
|
32c7b02303 | ||
|
|
e135835e61 | ||
|
|
7ed9a8075c | ||
|
|
ead8110fb4 | ||
|
|
586b1b6c15 | ||
|
|
e1727c8d80 | ||
|
|
7bd8a7ff35 | ||
|
|
de48651ae7 | ||
|
|
9902e07be0 | ||
|
|
5e4b38895e | ||
|
|
38bbbf261a | ||
|
|
def0a52578 | ||
|
|
4f1f87bda0 | ||
|
|
15f9faa2fa | ||
|
|
7257491d8b | ||
|
|
c19b2a9ebe | ||
|
|
54e7fd0293 | ||
|
|
21f3a2082b | ||
|
|
f647eb5a7b | ||
|
|
d7b1db0081 | ||
|
|
11511316d1 | ||
|
|
95a93c2c44 | ||
|
|
815ce10c25 | ||
|
|
5f13bfe8a1 | ||
|
|
5cd494c00a | ||
|
|
5a0a8bedc1 | ||
|
|
3b9884160b | ||
|
|
5b2b01328a | ||
|
|
e5b51dcd16 | ||
|
|
4d8b816acf | ||
|
|
fa109c1b0b | ||
|
|
b987fce627 | ||
|
|
b072cc3266 | ||
|
|
366b40ea90 | ||
|
|
3d3daa205d | ||
|
|
665ebbd11a | ||
|
|
52a5a7697d | ||
|
|
97a38d516a | ||
|
|
e89475bf52 | ||
|
|
90a78b05ce | ||
|
|
8c6eff15f0 | ||
|
|
824c58b391 | ||
|
|
b97500430c | ||
|
|
bacafc67c9 | ||
|
|
f23ebcdc2d | ||
|
|
edbe8e3561 | ||
|
|
05d1e33b30 | ||
|
|
96b60ce0f5 | ||
|
|
6174bc7ffd | ||
|
|
3bd022e03a | ||
|
|
b0cc5b0b60 | ||
|
|
5493f70458 | ||
|
|
323b3d9d16 | ||
|
|
1b0742ad2a | ||
|
|
2eb7217f49 | ||
|
|
b6f5a286b0 | ||
|
|
66c496fb10 | ||
|
|
56ca588c1e | ||
|
|
e2b09caff3 | ||
|
|
a5b4a4c59f | ||
|
|
a70312a90a | ||
|
|
6c6a3238cb | ||
|
|
9af10d4bcb | ||
|
|
f6e1b4611e | ||
|
|
7bc762d357 | ||
|
|
8edf1da92b | ||
|
|
a18baf2ffe | ||
|
|
2d41bf8f2f | ||
|
|
334778bdae | ||
|
|
1b46a06eee | ||
|
|
1e860e9443 | ||
|
|
0b973672d2 | ||
|
|
868ed85c7f | ||
|
|
6f2a24ec66 | ||
|
|
e5d5899a15 | ||
|
|
243473a97d | ||
|
|
28d71b8ce2 | ||
|
|
1acbf90261 | ||
|
|
94229f84a3 | ||
|
|
cead74238a | ||
|
|
73c60ea94c | ||
|
|
73638da4db | ||
|
|
bc218b73e1 | ||
|
|
aac6632f4b | ||
|
|
fdba3fdc74 | ||
|
|
21bb61ec82 | ||
|
|
ce1203d64d | ||
|
|
56daf15c8e | ||
|
|
96faa924d8 | ||
|
|
ee8854451c | ||
|
|
0975e925a9 | ||
|
|
83d6a2169b | ||
|
|
21e7a4d966 | ||
|
|
404cd24855 | ||
|
|
b4ad72ee67 | ||
|
|
bea628b619 | ||
|
|
3637e54982 | ||
|
|
e0d1a0a612 | ||
|
|
3040996671 | ||
|
|
dd830e7500 | ||
|
|
d2dfe2c418 | ||
|
|
139fb6b6e0 | ||
|
|
c4f6976c42 | ||
|
|
ab428fc104 | ||
|
|
aa97f78acd | ||
|
|
dbce900aeb | ||
|
|
30b382e2e7 | ||
|
|
433c4abb86 | ||
|
|
64404e4092 | ||
|
|
08d483af8a | ||
|
|
fa19c17941 | ||
|
|
c896a999ad | ||
|
|
f9bca935ac | ||
|
|
7abf274d89 | ||
|
|
e2ad417306 | ||
|
|
2ea9655f6b | ||
|
|
f450d5d9de | ||
|
|
f8f4b73a09 | ||
|
|
926d96732d | ||
|
|
167113d6a3 | ||
|
|
911cb614a5 | ||
|
|
7a939b7024 | ||
|
|
6e57a60997 | ||
|
|
9f1151e699 | ||
|
|
3fbe1fb63d | ||
|
|
d4906eec5a | ||
|
|
ebe0663e74 | ||
|
|
04c89b9711 | ||
|
|
4f2bc874e5 | ||
|
|
316ac5c3c8 | ||
|
|
7882aa667e | ||
|
|
8b8d5eecbf | ||
|
|
65b76643ee | ||
|
|
f33e645113 | ||
|
|
528d30c317 | ||
|
|
7f0a3d320c | ||
|
|
8e940aeb65 | ||
|
|
a77ee60809 | ||
|
|
83383c29cd | ||
|
|
b6393141e8 | ||
|
|
10ce1827d8 | ||
|
|
605f3a12ff | ||
|
|
a33539e75f | ||
|
|
b2cca3687a | ||
|
|
628c54044f | ||
|
|
c0e7a3eece | ||
|
|
c7c13c19c1 | ||
|
|
d5f71b5878 | ||
|
|
cb589e9e26 | ||
|
|
eaeed47297 | ||
|
|
e00e5c5cd7 | ||
|
|
b3719f7166 | ||
|
|
337896974b | ||
|
|
bb7d1fc9ab | ||
|
|
07765c8d44 | ||
|
|
85cb91071e | ||
|
|
d41839845a | ||
|
|
c3d12aa55f | ||
|
|
a781e4b84c | ||
|
|
1fc0989fd2 | ||
|
|
14752260d3 | ||
|
|
84675c874f | ||
|
|
f30e6057be | ||
|
|
ba8b629f0e | ||
|
|
a0a45ff2aa | ||
|
|
325f890a0b | ||
|
|
923cac5408 | ||
|
|
23505326c7 | ||
|
|
5f1a48f523 | ||
|
|
a607d39030 | ||
|
|
96d108729e | ||
|
|
ef15adaaf8 | ||
|
|
f190b74a7e | ||
|
|
edbc2b88b6 | ||
|
|
dc000cecf1 | ||
|
|
7c95a483df | ||
|
|
27e5d73da1 | ||
|
|
6306dae92d | ||
|
|
a427ddff83 | ||
|
|
b62ee6e820 | ||
|
|
3c18666080 | ||
|
|
40968b301a | ||
|
|
05904d31fd | ||
|
|
75aeaf4ee7 | ||
|
|
ff4e67a9f6 | ||
|
|
5f672d5bd1 | ||
|
|
5cb39eba8b | ||
|
|
4d8c3c75d6 | ||
|
|
8bdd19fc06 | ||
|
|
0ec99d8ba1 | ||
|
|
929d2db5a5 | ||
|
|
a7ad77f433 | ||
|
|
9cd47d5deb | ||
|
|
3cb5691aae | ||
|
|
dce63919fa | ||
|
|
1cdbedcb96 | ||
|
|
1586712ce5 | ||
|
|
f059186494 | ||
|
|
0af0be57b0 | ||
|
|
dad2b03212 | ||
|
|
b6e307660f | ||
|
|
c21c14825a | ||
|
|
39f9c986e9 | ||
|
|
393683aebc | ||
|
|
a87fcb44a6 | ||
|
|
0a6496ddfb | ||
|
|
fa2841fac6 | ||
|
|
861e45419b | ||
|
|
15fd943456 | ||
|
|
b538bfc27e | ||
|
|
e0f32eddc4 | ||
|
|
75a704c196 | ||
|
|
6565fdbe7e | ||
|
|
6248d72852 | ||
|
|
00d1797b96 | ||
|
|
911194eba8 | ||
|
|
0fad3ae31d | ||
|
|
b6988d866a | ||
|
|
e30959a656 | ||
|
|
52eeff3466 | ||
|
|
a06ded552d | ||
|
|
e9b8a84243 | ||
|
|
1fc3cfd1f2 | ||
|
|
188b57ed7a | ||
|
|
c8620390ac | ||
|
|
b3f8ed2335 | ||
|
|
54bf504eb4 | ||
|
|
c6f3bf856b | ||
|
|
8b33a7926e | ||
|
|
a38cb90cbf | ||
|
|
1500e8e54f | ||
|
|
94fd8d5e9d | ||
|
|
373e0a2155 | ||
|
|
267298f341 | ||
|
|
359d46e94d | ||
|
|
11f5540099 | ||
|
|
680e1afcfd | ||
|
|
e4322e60cc | ||
|
|
82f2eecfe8 | ||
|
|
3e3c3c559d | ||
|
|
65f5e8e964 | ||
|
|
c5fbe93890 | ||
|
|
307d8b6165 | ||
|
|
bf08eb2f8b | ||
|
|
a569c1dfaf | ||
|
|
e48db0d231 | ||
|
|
1a5b5dbb45 | ||
|
|
56f21cabe5 | ||
|
|
7ac5afe05b | ||
|
|
b3db97f4a8 | ||
|
|
6d1a06a9d9 | ||
|
|
088643df6c | ||
|
|
fc00a0a363 | ||
|
|
7a48fdd246 | ||
|
|
89be493882 | ||
|
|
5947abf83d | ||
|
|
962db6821f | ||
|
|
f6a3df7858 | ||
|
|
090aaed3f4 | ||
|
|
71cb5aa9e4 | ||
|
|
043b29ef33 | ||
|
|
d81cf4aec3 | ||
|
|
7cb46eeb82 | ||
|
|
c3b4d54414 | ||
|
|
8b9acf2d3d | ||
|
|
08548181ed | ||
|
|
45f883c98b | ||
|
|
5f39229e47 | ||
|
|
8c5bdc2a4b | ||
|
|
7b7602bce2 | ||
|
|
a145792fac | ||
|
|
667a550f4c | ||
|
|
53e1ad8991 | ||
|
|
429c949d1f | ||
|
|
1548577d65 | ||
|
|
82e59b297f | ||
|
|
1f9c994425 | ||
|
|
fc0c7a5004 | ||
|
|
a2d0309c79 | ||
|
|
6d01fbb6e8 | ||
|
|
be270df088 | ||
|
|
88fd94e1cc | ||
|
|
e460392368 | ||
|
|
249cda99f4 | ||
|
|
327fce822a | ||
|
|
58931354a4 | ||
|
|
c8993e9832 | ||
|
|
4ee2e023aa | ||
|
|
22fa1b121e | ||
|
|
cbc6e526c3 | ||
|
|
96041faefd | ||
|
|
894c912e19 | ||
|
|
7b406a945f | ||
|
|
6ff5cc90f1 | ||
|
|
f66e56f4b5 | ||
|
|
8f09aab0ea | ||
|
|
b248b9ca2c | ||
|
|
5a6a31fefa | ||
|
|
1e485a3883 | ||
|
|
fed3246c84 | ||
|
|
daff4a9786 | ||
|
|
6e88b0c701 | ||
|
|
808f674173 | ||
|
|
ba377c9aac | ||
|
|
bb8909f552 | ||
|
|
5a4d9ffcfc | ||
|
|
5ed24a98cb | ||
|
|
6d17675ee7 | ||
|
|
e0b8bfdeae | ||
|
|
0db2009e65 | ||
|
|
5f016d74a1 | ||
|
|
02b9832750 | ||
|
|
18a888b9d4 | ||
|
|
7f20e981d2 | ||
|
|
d64e08f3c4 | ||
|
|
8bb5324896 | ||
|
|
8f2ebc6409 | ||
|
|
371318f62f | ||
|
|
6e94403dc6 | ||
|
|
c35f6905bb | ||
|
|
4eebbb3e81 | ||
|
|
8ddfc8fb4a | ||
|
|
14d2661be8 | ||
|
|
ec71bf29b8 | ||
|
|
b1b06d9c82 | ||
|
|
6feec9bdbd | ||
|
|
d00f4f281c | ||
|
|
15e3ec5263 | ||
|
|
d6ddd91fda | ||
|
|
de79e25510 | ||
|
|
08f6b4deed | ||
|
|
5cd115b54f | ||
|
|
44b6f5890c | ||
|
|
5dd5933390 | ||
|
|
d55d3f2fe1 | ||
|
|
2e9b87f0bc | ||
|
|
800c85dd03 | ||
|
|
5414f7161f | ||
|
|
98b5825475 | ||
|
|
bda21c421f | ||
|
|
ee27b06822 | ||
|
|
7504d62ab1 | ||
|
|
f66b5c91fc | ||
|
|
bf838cd561 | ||
|
|
eeb92f5915 | ||
|
|
4524fab6b9 | ||
|
|
d1a9b40ed5 | ||
|
|
96523408bd | ||
|
|
b5646e0988 | ||
|
|
645c5cc6c1 | ||
|
|
7323983d11 | ||
|
|
8650c9e4b9 | ||
|
|
7cfdb403b3 | ||
|
|
af30c69560 | ||
|
|
b49ecb5802 | ||
|
|
9f0dd8358f | ||
|
|
1fff99b5f2 | ||
|
|
f3ef65ad70 | ||
|
|
da9d59443b | ||
|
|
2e7a5c6244 | ||
|
|
0b6f04ed26 | ||
|
|
4856f6c477 | ||
|
|
0a0b499716 | ||
|
|
954888a879 | ||
|
|
f00a01c123 | ||
|
|
0efb3a6f30 | ||
|
|
d3a9a7b54c | ||
|
|
4bbf40c5b8 | ||
|
|
01ab59774b | ||
|
|
5a6f84d5d2 | ||
|
|
eea5135316 | ||
|
|
9f303966eb | ||
|
|
a31b5ea29d | ||
|
|
b6a6ee31ed | ||
|
|
9aa7556e5b | ||
|
|
12cc54b0ea | ||
|
|
f8c4eae715 | ||
|
|
f8d8d2122e | ||
|
|
157c8e92d5 | ||
|
|
bece81b10e | ||
|
|
99755e98ee | ||
|
|
541de612b2 | ||
|
|
c46d9fd04a | ||
|
|
a49695ace7 | ||
|
|
b562d45531 | ||
|
|
e9f8db58c0 | ||
|
|
ed3313b2bc | ||
|
|
7bb6a9615c | ||
|
|
e7333508c4 | ||
|
|
6e6feb6dc1 | ||
|
|
cb37e3e993 | ||
|
|
13f457eba3 | ||
|
|
e7f8900286 | ||
|
|
7199a770c0 | ||
|
|
e560bbdeb4 | ||
|
|
6479d39f93 | ||
|
|
9fc9790e93 | ||
|
|
5a50476e9d | ||
|
|
b8a8776c2e | ||
|
|
f155a341cb | ||
|
|
253e48694a | ||
|
|
30a090004b | ||
|
|
fb77443b99 | ||
|
|
06d88883d8 | ||
|
|
337c9d3241 | ||
|
|
1d6378c1fc | ||
|
|
f13cfd190e | ||
|
|
a2823b3c29 | ||
|
|
169edd4f9c | ||
|
|
d0fa094d04 | ||
|
|
6ac12d42fe | ||
|
|
a378ac8738 | ||
|
|
8b8f749006 | ||
|
|
b004a0609b | ||
|
|
82d4efcbc2 | ||
|
|
2476726a6a | ||
|
|
19a84d0cc8 | ||
|
|
a688b6fdce | ||
|
|
73e5f5d6ad | ||
|
|
014fb9408e | ||
|
|
91f2be6759 | ||
|
|
76ac6cf5b5 | ||
|
|
dbba6fa942 | ||
|
|
d0771e3392 | ||
|
|
6c8eca2f57 | ||
|
|
3aa9d8ae56 | ||
|
|
42e1764c44 | ||
|
|
5abe9bd6d5 | ||
|
|
d5492eee93 | ||
|
|
a26a59b193 | ||
|
|
3d2dbe9199 | ||
|
|
73749b8d22 | ||
|
|
50c30b7cd0 | ||
|
|
44305b9abf | ||
|
|
c98d8fd199 | ||
|
|
4adc0b7c24 | ||
|
|
1427ac632f | ||
|
|
5e4ae07575 | ||
|
|
9c7fddfb0d | ||
|
|
8ebe81b89f | ||
|
|
016ca770f5 | ||
|
|
c8948953c9 | ||
|
|
85ebd30c9c | ||
|
|
5ea6c4c449 | ||
|
|
bfa31d1c79 | ||
|
|
d4f7ce7560 | ||
|
|
0ef223d80e | ||
|
|
eb232f7bb1 | ||
|
|
ce4f44a951 | ||
|
|
f70cfb5d48 | ||
|
|
7e39be6d20 | ||
|
|
979afdbf7b | ||
|
|
e662b5ed23 | ||
|
|
fea7dcb4aa | ||
|
|
2220920afe | ||
|
|
180b3c7c5d | ||
|
|
beb7553629 | ||
|
|
75934fc5ae | ||
|
|
0882e06adc | ||
|
|
96bd755660 | ||
|
|
51c96b4d04 | ||
|
|
a529eba693 | ||
|
|
a00b5a71fc | ||
|
|
7f35dda305 | ||
|
|
fccebb059b | ||
|
|
cf1dc17298 | ||
|
|
b24eabc82a | ||
|
|
f3a26116b2 | ||
|
|
884c1ea82c | ||
|
|
c65737f554 | ||
|
|
b77a11bfc2 | ||
|
|
58fd8e3c7f | ||
|
|
a8cc2fc671 | ||
|
|
d19ebb6b13 | ||
|
|
fad02e8736 | ||
|
|
11c928bf30 | ||
|
|
b4262eb34b | ||
|
|
76c4a8a966 | ||
|
|
0a212af11e | ||
|
|
efffb46281 | ||
|
|
e2ec3ef532 | ||
|
|
d3c4dd59d2 | ||
|
|
dcebb79590 | ||
|
|
0f0b989963 | ||
|
|
4815f6c79a | ||
|
|
409063a339 | ||
|
|
c831d539b6 | ||
|
|
7aa826fc80 | ||
|
|
d603557c35 | ||
|
|
c267a5c7e0 | ||
|
|
46764ff9aa | ||
|
|
f7a041d9fc | ||
|
|
751336e5d1 | ||
|
|
b2403aedac | ||
|
|
d5f9e923c4 | ||
|
|
c3c2022029 | ||
|
|
fb08e86a4c | ||
|
|
6f4c32c04c | ||
|
|
7c74a40baf | ||
|
|
8bf60bb793 | ||
|
|
005aa959c5 | ||
|
|
d9818f6960 | ||
|
|
f90ac9dea4 | ||
|
|
e0036ca32b | ||
|
|
ad8acaf296 | ||
|
|
34a863a6ea | ||
|
|
724c7388af | ||
|
|
2bb6ef8efb | ||
|
|
baf4d3aa98 | ||
|
|
f4ca4431da | ||
|
|
19446a666e | ||
|
|
b48b09249e | ||
|
|
be282db1c2 | ||
|
|
667cf4062f | ||
|
|
ba442b1457 | ||
|
|
a07622d084 | ||
|
|
8855c92e73 | ||
|
|
6a67a6a66b | ||
|
|
6822c8137b | ||
|
|
76505aa4de | ||
|
|
40fee137d4 | ||
|
|
1f3259e907 | ||
|
|
33b0c19d43 | ||
|
|
1de59279a6 | ||
|
|
184a43ccf5 | ||
|
|
efcb71e866 | ||
|
|
7bc720be77 | ||
|
|
9ecf6d3735 | ||
|
|
ba968d6ff7 | ||
|
|
5cd86a2766 | ||
|
|
11325e6f07 | ||
|
|
5b2b7dc03e | ||
|
|
324a67c7da | ||
|
|
6b54797aec | ||
|
|
4e7529ae44 | ||
|
|
086e61bb19 | ||
|
|
c6eeeda1c3 | ||
|
|
6d642c8098 | ||
|
|
40c89a479f | ||
|
|
f43c811477 | ||
|
|
0a3277c6e7 | ||
|
|
667a8fea31 | ||
|
|
089bb027ae | ||
|
|
6667d85623 | ||
|
|
2513465c6b | ||
|
|
831266fe3c | ||
|
|
bea5cd1f52 | ||
|
|
961414559f | ||
|
|
ffa37160a5 | ||
|
|
d856d12126 | ||
|
|
1dc16932b6 | ||
|
|
db603c5ebd | ||
|
|
f837b71423 | ||
|
|
a5b7259577 | ||
|
|
3f6eeb2a30 | ||
|
|
f8434d7fe2 | ||
|
|
b5cc8ad820 | ||
|
|
20c2d96dee | ||
|
|
c08a669aff | ||
|
|
c4fe77a5ba | ||
|
|
6d6326e415 | ||
|
|
21a956eca8 | ||
|
|
da1273c135 | ||
|
|
aaf7870d88 | ||
|
|
03dffe1181 | ||
|
|
146010f3f5 | ||
|
|
6526653540 | ||
|
|
7b46a1b9ff | ||
|
|
0608f9b3c7 | ||
|
|
e63b46b004 | ||
|
|
17d9853e90 | ||
|
|
4d02639985 | ||
|
|
9677a55a5a | ||
|
|
87056a4052 | ||
|
|
aba9ee7b33 | ||
|
|
ad2baeda2f | ||
|
|
eab8a3b94e | ||
|
|
5d23032500 | ||
|
|
5a2b6db3bb | ||
|
|
546c6a3227 | ||
|
|
674018d2fc | ||
|
|
39b65284bd | ||
|
|
c0fee32c4c | ||
|
|
8428649377 | ||
|
|
430c792a9b | ||
|
|
1e029ee517 | ||
|
|
dfbc837371 | ||
|
|
3e1bb44284 | ||
|
|
aacb6adb26 | ||
|
|
95ac7454ae | ||
|
|
85389c4a60 | ||
|
|
913289e0ef | ||
|
|
84efd5bfdf | ||
|
|
33014dbd7d | ||
|
|
d0e20eb8d3 | ||
|
|
a386999567 | ||
|
|
8519481f96 | ||
|
|
97fdc095a5 | ||
|
|
915243ee4a | ||
|
|
727e447899 | ||
|
|
e6ea5824f0 | ||
|
|
8eee11cee9 | ||
|
|
7aca3049d1 | ||
|
|
03b8d0c388 | ||
|
|
aa7d01f3d6 | ||
|
|
b397c41c9e | ||
|
|
0561cc3320 | ||
|
|
6f47e92050 | ||
|
|
9a67ac7509 | ||
|
|
d922993eaf | ||
|
|
9fa2225283 | ||
|
|
35eadad96b | ||
|
|
081416475e | ||
|
|
12492c842c | ||
|
|
68e01c1e73 | ||
|
|
bdcc79ce34 | ||
|
|
869ad39ddc | ||
|
|
30e1e35090 | ||
|
|
6c185ffd09 | ||
|
|
a9435f8f32 | ||
|
|
9ea8d3ec97 | ||
|
|
d918234bb8 | ||
|
|
afbbbaa855 | ||
|
|
a844ef31a2 | ||
|
|
b469ce0504 | ||
|
|
ed2bc8c390 | ||
|
|
cb246e859e | ||
|
|
3d6b99c004 | ||
|
|
842942c0fe | ||
|
|
71c4a84833 | ||
|
|
d1bc434ced | ||
|
|
59f7448aa7 | ||
|
|
4408692565 | ||
|
|
2e8607b811 | ||
|
|
2f2890e582 | ||
|
|
e2b39be3ff | ||
|
|
7ada07a99a | ||
|
|
6b16573f6b | ||
|
|
1de49fe998 | ||
|
|
7109e66ad8 | ||
|
|
d21c2f67ba | ||
|
|
0d39add09c | ||
|
|
5e1f7ea571 | ||
|
|
35c71bd21b | ||
|
|
e6a39f246d | ||
|
|
65cd8af9e1 | ||
|
|
e916f2fc40 | ||
|
|
13da80ee85 | ||
|
|
4f4045363b | ||
|
|
9600e18c92 | ||
|
|
d5aefccadc | ||
|
|
9e64b268cf | ||
|
|
0893bf6473 | ||
|
|
21f8b814e0 | ||
|
|
10fd22ba81 | ||
|
|
a3fef6c62f | ||
|
|
d750167a00 | ||
|
|
241bf62fdc | ||
|
|
bc5574615d | ||
|
|
48cac053fd | ||
|
|
25837f6393 | ||
|
|
b281362c98 | ||
|
|
e5050bb6c8 | ||
|
|
2d0c3ef881 | ||
|
|
ee029aac10 | ||
|
|
da205c09f9 | ||
|
|
07317b86a2 | ||
|
|
79e2543266 | ||
|
|
303cbcd188 | ||
|
|
a47905541c | ||
|
|
4e988db50f | ||
|
|
9dc3d83a77 | ||
|
|
934c1b0cfe | ||
|
|
70181d95c7 | ||
|
|
8a210103c0 | ||
|
|
df96381759 | ||
|
|
2006845ff7 | ||
|
|
44f0e78086 | ||
|
|
824956a34d | ||
|
|
1e7e01b6b0 | ||
|
|
cd25aaaca6 | ||
|
|
d481047eb4 | ||
|
|
1699ac6e08 | ||
|
|
79b7188578 | ||
|
|
843f469914 | ||
|
|
71254e86f4 | ||
|
|
07328847f4 | ||
|
|
9181cbfee5 | ||
|
|
4aef22aac8 | ||
|
|
512266abf4 | ||
|
|
ef64f180a2 | ||
|
|
9e45800367 | ||
|
|
f027f7f225 | ||
|
|
6f7ac86e7f | ||
|
|
93d298ef75 | ||
|
|
121a892c9a | ||
|
|
9222e2bbdd | ||
|
|
fe78d82ace | ||
|
|
77e98d9942 | ||
|
|
2b1efae238 | ||
|
|
d70740b38c | ||
|
|
3ebb30795c | ||
|
|
5d42730e9a | ||
|
|
923777899e | ||
|
|
05b9187a3b | ||
|
|
1198baba67 | ||
|
|
d4b7cdc97c | ||
|
|
bb7e93ac2d | ||
|
|
59c0c6cfb8 | ||
|
|
8699a43a22 | ||
|
|
5529651f91 | ||
|
|
a6f225ae9d | ||
|
|
fceda31c11 | ||
|
|
e5a5281e10 | ||
|
|
ede1d89569 | ||
|
|
44b9ba96c3 | ||
|
|
7fd8bfbe4e | ||
|
|
17654633dc | ||
|
|
8fd0a54018 | ||
|
|
efe8a476da | ||
|
|
ac0f6c6b6c | ||
|
|
8c163515db | ||
|
|
7ce1e64ee8 | ||
|
|
b6e667a291 | ||
|
|
5c7522fd1f | ||
|
|
85e9223603 | ||
|
|
943e2be676 | ||
|
|
2f09df7521 | ||
|
|
445e445e49 | ||
|
|
a3925de127 | ||
|
|
f20e4bd572 | ||
|
|
816c2ac1c4 | ||
|
|
e731371ab1 | ||
|
|
5559693cb3 | ||
|
|
ca33c3b259 | ||
|
|
a78fa98b3d | ||
|
|
956dc82555 | ||
|
|
d30a824481 | ||
|
|
a643182eee | ||
|
|
e1dbc46d8d | ||
|
|
e33d8776bc | ||
|
|
f6d16883de | ||
|
|
51bdd3bbfd | ||
|
|
8f9ae78b8c | ||
|
|
584b7b8e45 | ||
|
|
f74e903f1f | ||
|
|
4cedf112f5 | ||
|
|
d607a8da0f | ||
|
|
84a12e28df | ||
|
|
54aa47d1a8 | ||
|
|
faaee4b945 | ||
|
|
0b46303f9f | ||
|
|
b98668bc60 | ||
|
|
947e8e9512 | ||
|
|
681918cb63 | ||
|
|
d0fae44430 | ||
|
|
3e752461e8 | ||
|
|
1a9e6f3b1a | ||
|
|
580275a8cf | ||
|
|
ee74771f16 | ||
|
|
81fa97d3ee | ||
|
|
00a6e9798f | ||
|
|
17a59cbdd5 | ||
|
|
d4c9a0a47a | ||
|
|
6423c22cf8 | ||
|
|
e21fbaff83 | ||
|
|
99e6a2676b | ||
|
|
ab47f40ee1 | ||
|
|
a7f000e51e | ||
|
|
0d9eabcaa0 | ||
|
|
b1c63d7f5e | ||
|
|
820c72820d | ||
|
|
300065504b | ||
|
|
8aa846b349 | ||
|
|
ae8b94b2d7 | ||
|
|
7670d55f3c | ||
|
|
528ab4e203 | ||
|
|
cf1dc90137 | ||
|
|
dd81dcc9c6 | ||
|
|
a31c949734 | ||
|
|
3536d5c413 | ||
|
|
0e50216cee | ||
|
|
16fed754a9 | ||
|
|
c7748934b8 | ||
|
|
d46b3154cc | ||
|
|
f8bcfba90e | ||
|
|
45a4ca5298 | ||
|
|
88e3a9852b | ||
|
|
cf1f023379 | ||
|
|
b4b6f5a1f7 | ||
|
|
a21eef6e84 | ||
|
|
3beca8bba5 | ||
|
|
b5d66dba8a | ||
|
|
24d01a2156 | ||
|
|
45d848cbb9 | ||
|
|
e2f649dd35 | ||
|
|
183bffbc0e | ||
|
|
a874415859 | ||
|
|
93b33ba383 | ||
|
|
26420719f3 | ||
|
|
dc6a35d656 | ||
|
|
51da0bd7b7 | ||
|
|
1afb2c6883 | ||
|
|
f78fcc2b71 | ||
|
|
fb2d30f2c9 | ||
|
|
8781e7c6ad | ||
|
|
c34317b1e5 | ||
|
|
b09730b422 | ||
|
|
0f1725a7ab | ||
|
|
b12e0358d6 | ||
|
|
7ef841746a | ||
|
|
2b52b2379e | ||
|
|
8dd5965c44 | ||
|
|
bc59521cc8 | ||
|
|
815822ef40 | ||
|
|
9e6d33cc1a | ||
|
|
44df85f2bd | ||
|
|
2c15c7087e | ||
|
|
6b281628ed | ||
|
|
9f74db0aff | ||
|
|
83ea5c7fa3 | ||
|
|
bf6fe3482b | ||
|
|
f4d6803720 | ||
|
|
23c2a16286 | ||
|
|
afc301fad2 | ||
|
|
1c0a50e48f | ||
|
|
02e119d0da | ||
|
|
06fcc383ce | ||
|
|
408b1f76e4 | ||
|
|
3a879a37e2 | ||
|
|
9e1bb50d78 | ||
|
|
25dcf426b1 | ||
|
|
7b7baaea62 | ||
|
|
36d83804d0 | ||
|
|
7c46d2e27f | ||
|
|
d4acad33ea | ||
|
|
91cc1159bc | ||
|
|
21b7068c90 | ||
|
|
682d2bf922 | ||
|
|
3ff6788405 | ||
|
|
e59a8606ab | ||
|
|
157285ddb6 | ||
|
|
f49c3e0ff7 | ||
|
|
345877b9fd | ||
|
|
37e4105585 | ||
|
|
4a05b59b4b | ||
|
|
57322d75d7 | ||
|
|
4ccc2c1f71 | ||
|
|
652b32619d | ||
|
|
57b3611965 | ||
|
|
afbf9e619a | ||
|
|
060b1da388 | ||
|
|
38024b6be4 | ||
|
|
6aede6e48b | ||
|
|
b27adfbe27 | ||
|
|
b28e3b2a00 | ||
|
|
ffe4374519 | ||
|
|
793df087ae | ||
|
|
85eadd5856 | ||
|
|
359efe0036 | ||
|
|
3186691b7b | ||
|
|
044c795f38 | ||
|
|
f7128449ca | ||
|
|
3d0c5165b7 | ||
|
|
fc6cda86df | ||
|
|
59877e181e | ||
|
|
506b1a17d1 | ||
|
|
214c2ba0ad | ||
|
|
387312bc87 | ||
|
|
3d3da04e58 | ||
|
|
7ec0cbb43c | ||
|
|
1cd834579c | ||
|
|
a11005c14b | ||
|
|
ea1480e286 | ||
|
|
f1dd328c38 | ||
|
|
44295de206 | ||
|
|
b273082492 | ||
|
|
da088d88ba | ||
|
|
fd13570074 | ||
|
|
b5630a9dae | ||
|
|
0e2cab6409 | ||
|
|
38dc587318 | ||
|
|
6fbddcb7c2 | ||
|
|
df1df2964d | ||
|
|
9b9c2546c8 | ||
|
|
6ce0e72b33 | ||
|
|
a7784d7870 | ||
|
|
306ca3e04f | ||
|
|
82988b0e08 | ||
|
|
8b27d0e249 | ||
|
|
bfae547240 | ||
|
|
0abd026f78 | ||
|
|
3362a76de7 | ||
|
|
355b6c2e7d | ||
|
|
4e3c643e43 | ||
|
|
760cb97db4 | ||
|
|
0be6f7f57e | ||
|
|
d31223fa0c | ||
|
|
86ee9befc1 | ||
|
|
d5689b061f | ||
|
|
a3c4da4455 | ||
|
|
ee9f97f917 | ||
|
|
270c7377de | ||
|
|
9044b57306 | ||
|
|
9ad815a44a | ||
|
|
b7e432228b | ||
|
|
78da30f2ad | ||
|
|
aeea53017f | ||
|
|
f21ebfc366 | ||
|
|
2549aa5809 | ||
|
|
b733b70ad8 | ||
|
|
f9f59bd7c2 | ||
|
|
58933a6bcd | ||
|
|
45d7a29a95 | ||
|
|
e9d1fdb4ee | ||
|
|
2785ca9f31 | ||
|
|
12912a62aa | ||
|
|
2c2b078514 | ||
|
|
110294103f | ||
|
|
a9f3b839ec | ||
|
|
6bd677ad6f | ||
|
|
7d1c5f3510 | ||
|
|
a49508fd20 | ||
|
|
5870213ff0 | ||
|
|
65c3d7f925 | ||
|
|
33f4fd8fee | ||
|
|
9bdc34dc42 | ||
|
|
ff654df997 | ||
|
|
b7758da2f3 | ||
|
|
747089f1a8 | ||
|
|
9ee3021b76 | ||
|
|
0c60ea66e3 | ||
|
|
c3bb312b5f | ||
|
|
7447a42d40 | ||
|
|
3e9cc367af | ||
|
|
4c1790014f | ||
|
|
03fc7a579a | ||
|
|
a53db257cf | ||
|
|
b093cab493 | ||
|
|
9b484dc819 | ||
|
|
5ab26a9f8c | ||
|
|
b800a63bd2 | ||
|
|
43a5e47fb3 | ||
|
|
319545106e | ||
|
|
39b261b8a0 | ||
|
|
c9e61d1098 | ||
|
|
0bffdaa5fc | ||
|
|
9228510834 | ||
|
|
0b002a8946 | ||
|
|
ad43ddabe6 | ||
|
|
24c022a329 | ||
|
|
0e48cee0d6 | ||
|
|
4ad1794d95 | ||
|
|
46cf25b585 | ||
|
|
b3d78fc30f | ||
|
|
556bc06da4 | ||
|
|
7e8f9c463b | ||
|
|
568c7779b6 | ||
|
|
0a0d237f4d | ||
|
|
c243ccbdce | ||
|
|
64b79d6af5 | ||
|
|
016c0f3743 | ||
|
|
fd1599e0a7 | ||
|
|
7408aa6b72 | ||
|
|
e6b2107fa9 | ||
|
|
9aff52eaad | ||
|
|
bf5bda0f85 | ||
|
|
ffbf2d0a93 | ||
|
|
82f59ef5a2 | ||
|
|
c2c40abbb4 | ||
|
|
bb54d732d0 | ||
|
|
eee4e0c676 | ||
|
|
d9457ae017 | ||
|
|
bbc0b18b19 | ||
|
|
da7651311e | ||
|
|
72846f0817 | ||
|
|
05ef3387ab | ||
|
|
eed44e5737 | ||
|
|
27c7a85a21 | ||
|
|
4f6dd046ec | ||
|
|
89fad9ada7 | ||
|
|
bc31b49b99 | ||
|
|
09444e3624 | ||
|
|
7586243a95 | ||
|
|
1e1c7801e1 | ||
|
|
a363f6ef5f | ||
|
|
334e1fd2da | ||
|
|
2e8e29e93c | ||
|
|
5e5a1a3668 | ||
|
|
b93b464ebf | ||
|
|
842ba46a95 | ||
|
|
03b27d8e8f | ||
|
|
c11b41c6ba | ||
|
|
018cc526ee | ||
|
|
edf4508e6b | ||
|
|
d26a1f0312 | ||
|
|
2984f6a453 | ||
|
|
a00058d959 | ||
|
|
8e56a457f1 | ||
|
|
74d5f021cd | ||
|
|
a37715315d | ||
|
|
d9c9977610 | ||
|
|
c2f0cbb10a | ||
|
|
a34d00d822 | ||
|
|
9924ec6963 | ||
|
|
9036201887 | ||
|
|
b2435d2430 | ||
|
|
afd6148770 | ||
|
|
b70b58a35a | ||
|
|
df963c2780 | ||
|
|
1b732c76e6 | ||
|
|
f9489b0173 | ||
|
|
18942c55ae | ||
|
|
bf34b2f1ca | ||
|
|
a717a021c2 | ||
|
|
dcf718d592 | ||
|
|
f5eeb2b839 | ||
|
|
bc435adc11 | ||
|
|
aeb8e82cbd | ||
|
|
5cb2ed3ccd | ||
|
|
93b1864d1b | ||
|
|
a6efffda45 | ||
|
|
c89d6f1a58 | ||
|
|
d4f16abfac | ||
|
|
8529f3f355 | ||
|
|
2eb136827d | ||
|
|
9594e6eb32 | ||
|
|
9e8111994a | ||
|
|
af0c2b7129 | ||
|
|
96b73a0cef | ||
|
|
6c290ee2d3 | ||
|
|
ca53e3de3a | ||
|
|
6ea3ec700a | ||
|
|
fe3355e08e | ||
|
|
42f08f5027 | ||
|
|
7a1c8882e6 | ||
|
|
2c193e7e48 | ||
|
|
9714c1c9f6 | ||
|
|
c8f72b5f14 | ||
|
|
be0439f771 | ||
|
|
43da95b4a5 | ||
|
|
3d93a63caa | ||
|
|
9550607da3 | ||
|
|
d5d9798913 | ||
|
|
6cfe08235f | ||
|
|
49eb850ff1 | ||
|
|
5a558583d2 | ||
|
|
1e5f0d0555 | ||
|
|
e2b0b03c96 | ||
|
|
b9fb9f1b34 | ||
|
|
52fd932fd8 | ||
|
|
b0cc200df7 | ||
|
|
05b32db37d | ||
|
|
41f7192532 | ||
|
|
fa420303dc | ||
|
|
b7fd539755 | ||
|
|
cfb8b03446 | ||
|
|
712601041d | ||
|
|
36093eccaf | ||
|
|
58eb6d4210 | ||
|
|
2166429cbf | ||
|
|
236ab10b11 | ||
|
|
99142fdde3 | ||
|
|
ca6755d8b5 | ||
|
|
92ad333863 | ||
|
|
4c48272b4c | ||
|
|
ab5bd1db69 | ||
|
|
5d1cd10f5d | ||
|
|
ef784be082 | ||
|
|
855c41a0e9 | ||
|
|
6ef9667f72 | ||
|
|
068d384e7a | ||
|
|
c3699a8595 | ||
|
|
2cb7513355 | ||
|
|
c58caeda4c | ||
|
|
26fc56f2b8 | ||
|
|
c44ae2f00c | ||
|
|
a00b62ffcc | ||
|
|
6a9e7aa89d | ||
|
|
6206b38a78 | ||
|
|
1767bfa70d | ||
|
|
b1d6611923 | ||
|
|
a6a713f40e | ||
|
|
e76ad04207 | ||
|
|
a231adbfdd | ||
|
|
88f97ecb4e | ||
|
|
68a471b859 | ||
|
|
9393324e1f | ||
|
|
944931f7d1 | ||
|
|
5a56be8a75 | ||
|
|
fe7aebae05 | ||
|
|
b6c3b0cdc3 | ||
|
|
fd734fadbc | ||
|
|
a3dc250698 | ||
|
|
3f2d36284f | ||
|
|
60d5184a7b | ||
|
|
da612bdc7b | ||
|
|
628a085ba8 | ||
|
|
5ae91ac620 | ||
|
|
70265c55ef | ||
|
|
7c3b5fc31e | ||
|
|
a9a830caa2 | ||
|
|
b49ff3d4ed | ||
|
|
42310fa170 | ||
|
|
bfff1d9e2f | ||
|
|
2c98777b9f | ||
|
|
4a91260a31 | ||
|
|
076971bcae | ||
|
|
01fcc9bcab | ||
|
|
f56f201bad | ||
|
|
45e579f0ef | ||
|
|
39db811361 | ||
|
|
ff87555eba | ||
|
|
6c5c2d40bc | ||
|
|
c08459e370 | ||
|
|
42418394ed | ||
|
|
64fd0e2f28 | ||
|
|
2de061203b | ||
|
|
cee0d3f03e | ||
|
|
aa19ae129b | ||
|
|
aecbf8ccb3 | ||
|
|
7e5c19f507 | ||
|
|
b178ecd494 | ||
|
|
05d5039fab | ||
|
|
1004e5a8bd | ||
|
|
dbcfe6fc6e | ||
|
|
56698aefe6 | ||
|
|
cbd2e136ed | ||
|
|
9846d7f8e4 | ||
|
|
d16c86a4d7 | ||
|
|
292e642d16 | ||
|
|
90736b52be | ||
|
|
928e8a200b | ||
|
|
2ee06eab2d | ||
|
|
01913983ea | ||
|
|
0aa2f2c44d | ||
|
|
f66d655782 | ||
|
|
4094a08198 | ||
|
|
05389da412 | ||
|
|
e38258b04b | ||
|
|
0cd0e2f730 | ||
|
|
d2c7483db1 | ||
|
|
d388c52ccd | ||
|
|
4a2954d3a4 | ||
|
|
804b9a1d71 | ||
|
|
1067efbbee | ||
|
|
d41ecbeed6 | ||
|
|
f93148b7d7 | ||
|
|
348877c7cd | ||
|
|
fb7c2573bf | ||
|
|
e4fcc77b0a | ||
|
|
5c9b79729f | ||
|
|
00d4541537 | ||
|
|
1660e563ab | ||
|
|
b94081c45b | ||
|
|
f7b59f0140 | ||
|
|
22aecbe4ba | ||
|
|
be98db9023 | ||
|
|
828e095e64 | ||
|
|
8e1e21b960 | ||
|
|
303d8815e3 | ||
|
|
ba574dda62 | ||
|
|
bf630b5f7d | ||
|
|
9b4bf148cc | ||
|
|
f5212b4aa1 | ||
|
|
eea4cdf379 | ||
|
|
e909b48fea | ||
|
|
258aabbdde | ||
|
|
478f26e75a | ||
|
|
57cc558b9b | ||
|
|
29984d4b09 | ||
|
|
e1a266e5d8 | ||
|
|
a33a7317cc | ||
|
|
1d0bcd857e | ||
|
|
040da2429f | ||
|
|
978a395421 | ||
|
|
63e5625d62 | ||
|
|
38bbae13b9 | ||
|
|
e975a8106f | ||
|
|
6a49887ad7 | ||
|
|
5565ec2ddb | ||
|
|
20b1f8eff8 | ||
|
|
34fd000df9 | ||
|
|
1132177e2d | ||
|
|
5be39c04ef | ||
|
|
0ee4593608 | ||
|
|
f301344587 | ||
|
|
d2c5c856ab | ||
|
|
5f8e4ae10c | ||
|
|
4ff30b1a9d | ||
|
|
a0b215dab6 | ||
|
|
144e82d7e2 | ||
|
|
79252ba3b0 | ||
|
|
c5286093f9 | ||
|
|
5ad194bd45 | ||
|
|
501113da44 | ||
|
|
f0a7990404 | ||
|
|
27f53ff4a6 | ||
|
|
9ec5dfc8b1 | ||
|
|
e4c1e414c8 | ||
|
|
a391650472 | ||
|
|
3cfde2b40d | ||
|
|
8bf1ed33dc | ||
|
|
422b3be0c5 | ||
|
|
c34e44c4ec | ||
|
|
a2b20eca67 | ||
|
|
d41c316bfb | ||
|
|
ca1d8aab84 | ||
|
|
32e3dcff7c | ||
|
|
9a23470622 | ||
|
|
c37a186802 | ||
|
|
84c17e3b22 | ||
|
|
64e0fca124 | ||
|
|
5c6537fd7a | ||
|
|
764a82df00 | ||
|
|
e904911fd9 | ||
|
|
a7494f72f6 | ||
|
|
b6b53b028d | ||
|
|
1743ce714a | ||
|
|
656f0c5d11 | ||
|
|
d80aebe1f4 | ||
|
|
ad48bc1962 | ||
|
|
d72fbb7098 | ||
|
|
95d5eaa09b | ||
|
|
b997a6159e | ||
|
|
1cd8b7a450 | ||
|
|
c5a8eb4261 | ||
|
|
8891c29cbd | ||
|
|
2facdfa1dd | ||
|
|
65c9fa0c21 | ||
|
|
e53c85dbaf | ||
|
|
3a231e8e61 | ||
|
|
4dc7776387 | ||
|
|
5ca043e0f1 | ||
|
|
9ef052c814 | ||
|
|
6d1690beaa | ||
|
|
171656e5be | ||
|
|
385e7f4871 | ||
|
|
89c5485784 | ||
|
|
02d191ec28 | ||
|
|
47c3090f3a | ||
|
|
476dac1ac1 | ||
|
|
8ca0d0ced4 | ||
|
|
ab197489d7 | ||
|
|
99736d187b | ||
|
|
197c09bd0d | ||
|
|
6cc634ba1f | ||
|
|
4c89ad91d2 | ||
|
|
d66233bce0 | ||
|
|
b485e6927e | ||
|
|
74b9e8bd7b | ||
|
|
545742ecc0 | ||
|
|
d9f1f65352 | ||
|
|
0904d17a5f | ||
|
|
87171b4246 | ||
|
|
78f8b56203 | ||
|
|
b79045eddb | ||
|
|
6eb67b1a3c | ||
|
|
777ec39bd9 | ||
|
|
9dcafaaa38 | ||
|
|
097e2fb653 | ||
|
|
e7aa97634b | ||
|
|
447b9f265f | ||
|
|
029a6f03b7 | ||
|
|
ae4a349d79 | ||
|
|
35728c7911 | ||
|
|
469330f270 | ||
|
|
03f9c56928 | ||
|
|
ed2a2a8975 | ||
|
|
b5380f183c | ||
|
|
f5bcaba352 | ||
|
|
5a70b23db9 | ||
|
|
fc3487e545 | ||
|
|
a4863dc8d7 | ||
|
|
af12a08e25 | ||
|
|
312dc294b3 | ||
|
|
d958dd5ee4 | ||
|
|
1ddc49b17b | ||
|
|
322541b16f | ||
|
|
00cb10f029 | ||
|
|
ed24a721ed | ||
|
|
9fc10e0f65 | ||
|
|
ab212e0565 | ||
|
|
eac0049577 | ||
|
|
9d1d51d0d7 | ||
|
|
4fd3c4ada6 | ||
|
|
dd73d8fc69 | ||
|
|
b89d37c8c5 | ||
|
|
bc4983c771 | ||
|
|
e6c186b31b | ||
|
|
b106fa55d3 | ||
|
|
981e42c5a9 | ||
|
|
c160c5a555 | ||
|
|
31c7bf5348 | ||
|
|
89bf457878 | ||
|
|
6eadf718fc | ||
|
|
effced24d1 | ||
|
|
09f399db9a | ||
|
|
2b73f6faea | ||
|
|
943662605e | ||
|
|
9a04962bd6 | ||
|
|
91a36eb9a0 | ||
|
|
c371f6bbb5 | ||
|
|
8324e2e454 | ||
|
|
30307c1b56 | ||
|
|
f139d0d2a8 | ||
|
|
33843764a7 | ||
|
|
aca7d7c571 | ||
|
|
bff72f609c | ||
|
|
adb03b7420 | ||
|
|
2094e18b60 | ||
|
|
541d8ddd40 | ||
|
|
f996172218 | ||
|
|
f9ffc1c1f3 | ||
|
|
05085ad504 | ||
|
|
64aecaf28b | ||
|
|
7b3ef45300 | ||
|
|
bd25de930b | ||
|
|
15d43c9653 | ||
|
|
5b7eba61cc | ||
|
|
2445c79805 | ||
|
|
63be2dee47 | ||
|
|
5bfef1be32 | ||
|
|
8253526f23 | ||
|
|
db19548e2c | ||
|
|
10af31f042 | ||
|
|
e7c6e17590 | ||
|
|
a3d0ceb6a5 | ||
|
|
a277ac182b | ||
|
|
0eee613a95 | ||
|
|
b76fa38e09 | ||
|
|
7679c11b5b | ||
|
|
e7ae2ab441 | ||
|
|
c0f5c8a358 | ||
|
|
dd5feb0e2c | ||
|
|
b95d05c134 | ||
|
|
87bdd0016e | ||
|
|
b9befa4e63 | ||
|
|
d9ed00ddee | ||
|
|
4c2b484c2b | ||
|
|
ff31e41fec | ||
|
|
34204f6183 | ||
|
|
6fc8763895 | ||
|
|
71dd82afe8 | ||
|
|
ea5425a528 | ||
|
|
1a0914196f | ||
|
|
9dd1adacd2 | ||
|
|
93c5268fbc | ||
|
|
98edc89fa0 | ||
|
|
3aad412102 | ||
|
|
a2ee9524fb | ||
|
|
78955a1540 | ||
|
|
f412b7e734 | ||
|
|
b13f3004e2 | ||
|
|
a093b0f8e8 | ||
|
|
d4ba13eee3 | ||
|
|
34a84c6548 | ||
|
|
6c52c1177b | ||
|
|
f9bc312f91 | ||
|
|
7283153f44 | ||
|
|
df6b2bd0e8 | ||
|
|
16831880dd | ||
|
|
f79fc98ba6 | ||
|
|
0483c75dd7 | ||
|
|
3a4dcacd56 | ||
|
|
5f6f09674e | ||
|
|
c785027c5c | ||
|
|
d2659cea5f | ||
|
|
a9b966b159 | ||
|
|
f2c23e21c5 | ||
|
|
53b973e2d3 | ||
|
|
b7a570cba2 | ||
|
|
c77b79f0d2 | ||
|
|
ef6678d8b0 | ||
|
|
21609fa9c4 | ||
|
|
accc083702 | ||
|
|
9e677f3871 | ||
|
|
55290eac30 | ||
|
|
d480502d33 | ||
|
|
c1cda16be0 | ||
|
|
8ca9df9f34 | ||
|
|
406b67b081 | ||
|
|
2c9fecf3ef | ||
|
|
6bc78b67bd | ||
|
|
5bbc46e070 | ||
|
|
6a9ceda361 | ||
|
|
ab2d5fd58f | ||
|
|
7018413777 | ||
|
|
77385616a4 | ||
|
|
c809f27bf5 | ||
|
|
493e778124 | ||
|
|
7373af50b9 | ||
|
|
309f053510 | ||
|
|
d976cf8a27 | ||
|
|
5d60a62a38 | ||
|
|
a3f7dbccea | ||
|
|
0c4cce3339 | ||
|
|
58ccbc4d3d | ||
|
|
c6cabc2087 | ||
|
|
ef1f2722fc | ||
|
|
6b4a7ee03b | ||
|
|
7745a2051d | ||
|
|
eabd5e9acc | ||
|
|
d7dcbf98ff | ||
|
|
ff4c73f3d3 | ||
|
|
dbf044b418 | ||
|
|
7a514e2492 | ||
|
|
a73e533287 | ||
|
|
0f175ac4c6 | ||
|
|
be15f1c698 | ||
|
|
a315da6041 | ||
|
|
3f43f218ac | ||
|
|
5c8ad646af | ||
|
|
77f5fddd90 | ||
|
|
eab8b1ede5 | ||
|
|
2ab0896523 | ||
|
|
639fe920df | ||
|
|
7577c84eca | ||
|
|
22c4ec2d4a | ||
|
|
8ac85881a9 | ||
|
|
724804efc6 | ||
|
|
ca57ef17fc | ||
|
|
480f015fb0 | ||
|
|
d90e087f20 | ||
|
|
3916cc0562 | ||
|
|
cb54e56417 | ||
|
|
6aa606f2fa | ||
|
|
53d13a11ce | ||
|
|
9ba2b4142d | ||
|
|
f5161a5b99 | ||
|
|
f9d5d190d5 | ||
|
|
eead9639a2 | ||
|
|
5044d5d3b4 | ||
|
|
44eed2c1df | ||
|
|
e83b182e4d | ||
|
|
888a76eda0 | ||
|
|
668364e583 | ||
|
|
35c7a2d1b6 | ||
|
|
79803178cd | ||
|
|
419ee8d8ff | ||
|
|
328b3c9409 | ||
|
|
f097508e87 | ||
|
|
e6791ee8ec | ||
|
|
cfbeba3de1 | ||
|
|
bbc7f5a734 | ||
|
|
e8726f03f3 | ||
|
|
de95c6d698 | ||
|
|
86b57447d8 | ||
|
|
c9d1efc6e7 | ||
|
|
dd1eeaddfa | ||
|
|
7f098db3de | ||
|
|
6468cbbfbd | ||
|
|
a30d61e842 | ||
|
|
e0029fdc87 | ||
|
|
712e2c32a0 | ||
|
|
f28e15b567 | ||
|
|
128e33661f | ||
|
|
3916561c62 | ||
|
|
00638d074a | ||
|
|
ca51b2d83a | ||
|
|
1a879f97a2 | ||
|
|
89d18cb7c5 | ||
|
|
4e14249707 | ||
|
|
41f2c08da8 | ||
|
|
4fca7bcfcf | ||
|
|
232725329a | ||
|
|
88247851f4 | ||
|
|
6efaec6642 | ||
|
|
b9e31e39e2 | ||
|
|
e2cd8ed391 | ||
|
|
8a1641fbfa | ||
|
|
936f069ac3 | ||
|
|
89faad730e | ||
|
|
798ab3e183 | ||
|
|
5508aa4533 | ||
|
|
81b7ebbab6 | ||
|
|
2d06e33e10 | ||
|
|
d8cc820572 | ||
|
|
d0ca46cfde | ||
|
|
513124161e | ||
|
|
7cfd8c7f79 | ||
|
|
c32ce5e795 | ||
|
|
d9c1530651 | ||
|
|
305eb071a9 | ||
|
|
10dab69c63 | ||
|
|
60ed594996 | ||
|
|
e60ddb3ee1 | ||
|
|
26b0992285 | ||
|
|
63f3ac807c | ||
|
|
ed1c33eac0 | ||
|
|
e7b7fd0bcc | ||
|
|
79d2b04721 | ||
|
|
5a8ab2d29c | ||
|
|
ed527ac394 | ||
|
|
bf09f48196 | ||
|
|
2a5af15aef | ||
|
|
1f8fe35e25 | ||
|
|
5979273a64 | ||
|
|
ef8c9e3968 | ||
|
|
baa9fdb660 | ||
|
|
35a860bb38 | ||
|
|
286939dc2c | ||
|
|
dd5b1dbdd8 | ||
|
|
fb8d3a038d | ||
|
|
ea5a25a671 | ||
|
|
d21fc4ab1d | ||
|
|
3ae3974866 | ||
|
|
71ffc3087e | ||
|
|
8f406489d4 | ||
|
|
a08d270968 | ||
|
|
48f13e4b82 | ||
|
|
51060f0e4b | ||
|
|
c583109046 | ||
|
|
cf05b693f1 | ||
|
|
d248c1ab0d | ||
|
|
34623fca94 | ||
|
|
975bdd5897 | ||
|
|
1b3380c2ca | ||
|
|
bb707b4a03 | ||
|
|
acb3b6ac85 | ||
|
|
80f6985f5f | ||
|
|
5e3a9c0579 | ||
|
|
b30d62d483 | ||
|
|
0ea1fdbd19 | ||
|
|
f068586f74 | ||
|
|
463f462e24 | ||
|
|
e0c4e3c58e | ||
|
|
5aa3ef38ba | ||
|
|
827277f6a3 | ||
|
|
46389341db | ||
|
|
a58f05a295 | ||
|
|
c0b0a0fe92 | ||
|
|
e9f471dd6f | ||
|
|
7917c5dddb | ||
|
|
de4541a3d9 | ||
|
|
77a496baa7 | ||
|
|
86e863de09 | ||
|
|
c2cfd217c2 | ||
|
|
f2366a61b0 | ||
|
|
9959393dee | ||
|
|
16facf98f1 | ||
|
|
bc8ce8832a | ||
|
|
20bcf960ef | ||
|
|
5cecd3e995 | ||
|
|
d7ead25ea4 | ||
|
|
75c0c375d1 | ||
|
|
5db4913292 | ||
|
|
a6a53b1d0d | ||
|
|
81a0c0e120 | ||
|
|
0dae71a644 | ||
|
|
f8eedaa3ea | ||
|
|
ce2d97a7e7 | ||
|
|
2cb570eaca | ||
|
|
c8c4352957 | ||
|
|
a311db4555 | ||
|
|
05c515b2da | ||
|
|
c1acf2b0fe | ||
|
|
803a2407eb | ||
|
|
a87945d1fb | ||
|
|
30793e68df | ||
|
|
9c666bf7a9 | ||
|
|
eff1dd7c34 | ||
|
|
e79a33ebb0 | ||
|
|
cb0adfdeaf | ||
|
|
6b135c343c | ||
|
|
6c92db524b | ||
|
|
b8dfd1c041 | ||
|
|
54d6347c1d | ||
|
|
4ea6e90600 | ||
|
|
4c7628a247 | ||
|
|
6c7334155a | ||
|
|
480e3ea974 | ||
|
|
1f639a5bc6 | ||
|
|
ccf3b07c3a | ||
|
|
d8508f2b72 | ||
|
|
5e13961ec8 | ||
|
|
80b1139371 | ||
|
|
635b41765c | ||
|
|
4b03686aa2 | ||
|
|
bfb0d8d639 | ||
|
|
93d4a0211d | ||
|
|
cd31bc69ef | ||
|
|
4a7b84d6de | ||
|
|
3142714c11 | ||
|
|
7ea10416a9 | ||
|
|
3e427db0f1 | ||
|
|
9f7b18d294 | ||
|
|
9af0e351b8 | ||
|
|
5c6aa2340d | ||
|
|
4424ec48cf | ||
|
|
61be34581e | ||
|
|
731978356d | ||
|
|
d5223ad1ab | ||
|
|
7cfdfab198 | ||
|
|
eb70e51ac1 | ||
|
|
1d48e7c7ae | ||
|
|
d6fc9fc8c3 | ||
|
|
8ada0976fe | ||
|
|
389ff5e9a4 | ||
|
|
5179e0228c | ||
|
|
2268526314 | ||
|
|
db4bc0eafe | ||
|
|
6edaf79df1 | ||
|
|
79cead3b59 | ||
|
|
db1b12b85c | ||
|
|
9360b7675a | ||
|
|
9c82fd17fe | ||
|
|
3a4665e473 | ||
|
|
b34f4648ee | ||
|
|
0de786d2ea | ||
|
|
ec7aafa1ff | ||
|
|
30c219716d | ||
|
|
5dd47cb89b | ||
|
|
abe856bd3f | ||
|
|
6ecb009466 | ||
|
|
3b4b2383a8 | ||
|
|
4ddd46c4a2 | ||
|
|
69ec2469b4 | ||
|
|
5789af801a | ||
|
|
7171b6302b | ||
|
|
51d4818b1e | ||
|
|
1c2875e7fc | ||
|
|
5048a88310 | ||
|
|
aef37f4362 | ||
|
|
d04641041b | ||
|
|
67b2ccea86 | ||
|
|
5ff9ca3c99 | ||
|
|
fe55df8b2f | ||
|
|
457f605898 | ||
|
|
0f2625133f | ||
|
|
fa34dbdf6f | ||
|
|
050913b0b4 | ||
|
|
a47e47d42c | ||
|
|
43d994b59a | ||
|
|
e8204d46ce | ||
|
|
fece659cfb | ||
|
|
695265b299 | ||
|
|
b652ed0b33 | ||
|
|
9a641552e4 | ||
|
|
3d18aeb5bc | ||
|
|
b545afce50 | ||
|
|
8fca98c0c9 | ||
|
|
0a98c71dfe | ||
|
|
ed75f39094 | ||
|
|
456245f23a | ||
|
|
b4529c9338 | ||
|
|
0ca7a8ab8a | ||
|
|
02f2209e8f | ||
|
|
fb72d02912 | ||
|
|
665fb25fc1 | ||
|
|
742c3c7156 | ||
|
|
637dbbba0d | ||
|
|
f2a3bc4626 | ||
|
|
e8ffa44544 | ||
|
|
bc09287666 | ||
|
|
392d9055fe | ||
|
|
0ee833d7ae | ||
|
|
3074bc00d7 | ||
|
|
cb6fb590c4 | ||
|
|
a7270b2cd2 | ||
|
|
0d925af065 | ||
|
|
7c7991e8ae | ||
|
|
54461b6ea4 | ||
|
|
6a17497fbd | ||
|
|
84f18aa4b6 | ||
|
|
73ab38563f | ||
|
|
1f2b40e4d4 | ||
|
|
1d920c5935 | ||
|
|
037a1e9c0c | ||
|
|
87e324d4d9 | ||
|
|
d1e9b489e3 | ||
|
|
34f1d538d1 | ||
|
|
fb8d2a2e01 | ||
|
|
837db5183e | ||
|
|
a556877a17 | ||
|
|
bcbd6dc4db | ||
|
|
41f7ad8d75 | ||
|
|
258d4b28da | ||
|
|
31e900c422 | ||
|
|
7b1a76871a | ||
|
|
c6f3e7672f | ||
|
|
540c31903c | ||
|
|
3e5262d7a3 | ||
|
|
2b36ffef45 | ||
|
|
4c25d2275c | ||
|
|
6c66fcdfc3 | ||
|
|
aaa972d767 | ||
|
|
45c8538426 | ||
|
|
95702724a9 | ||
|
|
98c4d3853c | ||
|
|
7c91143f39 | ||
|
|
56e6f57568 | ||
|
|
ccab456679 | ||
|
|
5af000ca43 | ||
|
|
354c8f04ae | ||
|
|
3fbd336b45 | ||
|
|
3c0b86a322 | ||
|
|
fca4b69d5a | ||
|
|
ce62072761 | ||
|
|
93dd7a8478 | ||
|
|
02fb84a312 | ||
|
|
f3e68989e5 | ||
|
|
468050a9ce | ||
|
|
f37a602da3 | ||
|
|
2979691d7e | ||
|
|
72920a0432 | ||
|
|
e81075ef04 | ||
|
|
df1a99d877 | ||
|
|
10e825dc9f | ||
|
|
07ba7933fb | ||
|
|
3059eac0fd | ||
|
|
aa33aa6d4f | ||
|
|
0a1cdeeaa3 | ||
|
|
e4bef47b7e | ||
|
|
f551f994b5 | ||
|
|
4b7a3af691 | ||
|
|
6f88a80118 | ||
|
|
e03715ee46 | ||
|
|
aafe6d8863 | ||
|
|
47005483cd | ||
|
|
378075955a | ||
|
|
2059797904 | ||
|
|
8c711242a9 | ||
|
|
481894c89b | ||
|
|
ba53275322 | ||
|
|
cfe2b4c1bd | ||
|
|
60e83f8324 | ||
|
|
ceac040d82 | ||
|
|
89d400c81a | ||
|
|
4cf7bca399 | ||
|
|
761441622e | ||
|
|
1b814abf0b | ||
|
|
62a2147e33 | ||
|
|
246dff9c87 | ||
|
|
50494beb27 | ||
|
|
ce3b3ebfd8 | ||
|
|
213090c32e | ||
|
|
adb8668197 | ||
|
|
0023677003 | ||
|
|
0b19a37ad4 | ||
|
|
9f34ae5d28 | ||
|
|
6f07b5cf08 | ||
|
|
0f39431157 | ||
|
|
bc1a470e64 | ||
|
|
09e24f5684 | ||
|
|
2f27ea4c8a | ||
|
|
d09aba70b7 | ||
|
|
69b0a80684 | ||
|
|
48f0c56a9e | ||
|
|
83833a3693 | ||
|
|
18429d52d4 | ||
|
|
58cc90083b | ||
|
|
2772161144 | ||
|
|
0e95259b14 | ||
|
|
3d9f38f1e3 | ||
|
|
ba3accd834 | ||
|
|
0786e40ebd | ||
|
|
8a56393159 | ||
|
|
5ca8a6ecfa | ||
|
|
5c82edc4be | ||
|
|
093c04bc24 | ||
|
|
131dd46a38 | ||
|
|
6b1b4fdfbb | ||
|
|
e4ad779b37 | ||
|
|
65d817624e | ||
|
|
66501189c4 | ||
|
|
4303898bb8 | ||
|
|
7d76a9d3ed | ||
|
|
1cc42f341b | ||
|
|
0b41ee0a29 | ||
|
|
66b6c4d04f | ||
|
|
6502843d6c | ||
|
|
5ecfe72e19 | ||
|
|
f28cdefffe | ||
|
|
40494f2cf1 | ||
|
|
f2664c112b | ||
|
|
41d91df355 | ||
|
|
965671dd93 | ||
|
|
c8d08e4b2c | ||
|
|
2897a9b484 | ||
|
|
d190e59d83 | ||
|
|
0bb25e8773 | ||
|
|
37e1903cb1 | ||
|
|
b402846d43 | ||
|
|
c1a6dd385a | ||
|
|
ccbef236d3 | ||
|
|
d7b9e8b2e0 | ||
|
|
deaf77d3d0 | ||
|
|
5c738f97ed | ||
|
|
c9f7f7ab08 | ||
|
|
746977d5d0 | ||
|
|
acb09bfe71 | ||
|
|
e2a1203b43 | ||
|
|
124036cea6 | ||
|
|
2ac1d82826 | ||
|
|
fa4e0c1948 | ||
|
|
735427ead0 | ||
|
|
4fa99a7e1b | ||
|
|
2f963a205a | ||
|
|
1f03f7e7c3 | ||
|
|
31689fb6ba | ||
|
|
cf7ebbd314 | ||
|
|
40a953aed5 | ||
|
|
c4d999ada7 | ||
|
|
fff6b4e155 | ||
|
|
380e08d89f | ||
|
|
96c8199092 | ||
|
|
54870cf067 | ||
|
|
8654447aac | ||
|
|
28a690cbba | ||
|
|
52d1a48c0b | ||
|
|
f45333db5e | ||
|
|
c920e45934 | ||
|
|
dd86ef4591 | ||
|
|
b9fb00f042 | ||
|
|
355d9fd995 | ||
|
|
b68c13c4f2 | ||
|
|
f2803291ab | ||
|
|
54df034c77 | ||
|
|
7317b8bc18 |
+4
-16
@@ -3,23 +3,20 @@ module.exports = {
|
|||||||
parser: "vue-eslint-parser",
|
parser: "vue-eslint-parser",
|
||||||
"env": {
|
"env": {
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"es2021": true,
|
"es2021": true
|
||||||
'vue/setup-compiler-macros': true
|
|
||||||
},
|
},
|
||||||
ignorePatterns: ['*.test.ts', '.eslintrc.cjs', 'postcss.config.cjs', 'webpack.config.cjs', '*.js'],
|
ignorePatterns: ['*.test.ts', '.eslintrc.cjs', 'postcss.config.cjs', 'webpack.config.cjs', '*.js'],
|
||||||
overrides: [{
|
overrides: [{
|
||||||
files: ['*.ts', '*.tsx', "*.vue"],
|
files: ['*.ts', '*.tsx', "*.vue"],
|
||||||
}],
|
}],
|
||||||
plugins: [
|
plugins: [
|
||||||
"@typescript-eslint",
|
"@typescript-eslint"
|
||||||
"prettier"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
extends: [
|
extends: [
|
||||||
"eslint:recommended",
|
"eslint:recommended",
|
||||||
"plugin:vue/vue3-recommended",
|
"plugin:vue/vue3-essential",
|
||||||
"plugin:@typescript-eslint/recommended",
|
"plugin:@typescript-eslint/recommended"
|
||||||
"prettier",
|
|
||||||
],
|
],
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
@@ -30,15 +27,6 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
'@typescript-eslint/no-floating-promises': 'error',
|
'@typescript-eslint/no-floating-promises': 'error',
|
||||||
'vue/script-setup-uses-vars': 'error',
|
|
||||||
'vue/max-attributes-per-line': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
singleline: 4, //prettier와 싸우지 말자
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'vue/v-on-event-hyphenation': 'off', //vue3에선 필요없다고 생각
|
|
||||||
'vue/attribute-hyphenation': 'off', //vue3에선 필요없다고 생각
|
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
'import/resolver': {
|
'import/resolver': {
|
||||||
|
|||||||
+8
-5
@@ -5,6 +5,8 @@
|
|||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
|
|
||||||
/node_modules
|
/node_modules
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
|
|
||||||
# 체섭 ignore
|
# 체섭 ignore
|
||||||
*.log
|
*.log
|
||||||
@@ -17,7 +19,10 @@ sess_*
|
|||||||
*/logs/*/*.txt
|
*/logs/*/*.txt
|
||||||
*/logs/preserved
|
*/logs/preserved
|
||||||
err.txt
|
err.txt
|
||||||
|
che/.htaccess
|
||||||
|
kwe/.htaccess
|
||||||
|
pwe/.htaccess
|
||||||
|
twe/.htaccess
|
||||||
hwe/.htaccess
|
hwe/.htaccess
|
||||||
|
|
||||||
d_shared
|
d_shared
|
||||||
@@ -42,7 +47,7 @@ d_setting/*.php
|
|||||||
*/d_setting/templates/*.php
|
*/d_setting/templates/*.php
|
||||||
!*.orig.php
|
!*.orig.php
|
||||||
|
|
||||||
**/data/file_cache
|
*/data/file_cache
|
||||||
|
|
||||||
**/old/*
|
**/old/*
|
||||||
test.*
|
test.*
|
||||||
@@ -54,10 +59,8 @@ test.*
|
|||||||
/pya
|
/pya
|
||||||
/twe
|
/twe
|
||||||
|
|
||||||
/hwe/data
|
|
||||||
|
|
||||||
/vendor
|
|
||||||
phpinfo.php
|
phpinfo.php
|
||||||
|
vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/*
|
||||||
*.sqlite3
|
*.sqlite3
|
||||||
|
|
||||||
ingame/js/*
|
ingame/js/*
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"extension": ["ts"],
|
|
||||||
"spec": "hwe/test-ts/**/*.test.ts",
|
|
||||||
"require": [
|
|
||||||
"ts-node/register",
|
|
||||||
"tsconfig-paths/register"
|
|
||||||
],
|
|
||||||
"node-option": [
|
|
||||||
"experimental-specifier-resolution=node",
|
|
||||||
"loader=ts-node/esm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
+2
-1
@@ -101,7 +101,8 @@ return [
|
|||||||
'hwe/j_general_set_permission.php',
|
'hwe/j_general_set_permission.php',
|
||||||
'hwe/j_get_basic_general_list.php',
|
'hwe/j_get_basic_general_list.php',
|
||||||
'hwe/j_get_city_list.php',
|
'hwe/j_get_city_list.php',
|
||||||
'hwe/j_get_reserved_command.php',
|
'hwe/j_get_general_list.php',
|
||||||
|
'hwe/j_get_nation_general_list.php',
|
||||||
'hwe/j_get_select_npc_token.php',
|
'hwe/j_get_select_npc_token.php',
|
||||||
'hwe/j_get_select_pool.php',
|
'hwe/j_get_select_pool.php',
|
||||||
'hwe/j_image_upload.php',
|
'hwe/j_image_upload.php',
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"printWidth": 120
|
|
||||||
}
|
|
||||||
Vendored
-1
@@ -29,5 +29,4 @@
|
|||||||
"josa",
|
"josa",
|
||||||
"sammo"
|
"sammo"
|
||||||
],
|
],
|
||||||
"editor.tabSize": 2
|
|
||||||
}
|
}
|
||||||
@@ -26,20 +26,20 @@ Docker를 이용한 설치도 제공하고 있습니다.
|
|||||||
|
|
||||||
## Docker를 이용한 설치
|
## Docker를 이용한 설치
|
||||||
|
|
||||||
https://storage.hided.net/gitea/devsam/docker 를 참고해 주세요.
|
https://storage.hided.net/gogs/devsam/docker 를 참고해 주세요.
|
||||||
|
|
||||||
## 수동 설치
|
## 수동 설치
|
||||||
|
|
||||||
본 게임은 <code>git</code>을 이용한 업그레이드 시스템을 구현하였으므로, <code>git</code>이 필요합니다.
|
본 게임은 <code>git</code>을 이용한 업그레이드 시스템을 구현하였으므로, <code>git</code>이 필요합니다.
|
||||||
또한 웹 서비스 데몬을 운영중인 사용자(일반적으로 <code>www-data</code>)에게 디렉토리 권한이 주어져야합니다.
|
또한 웹 서비스 데몬을 운영중인 사용자(일반적으로 <code>www-data</code>, <code>apache</code>)에게 디렉토리 권한이 주어져야합니다.
|
||||||
|
|
||||||
### 다운로드
|
### 다운로드
|
||||||
|
|
||||||
웹 데몬 user가 <code>www-data</code>인 경우 다음과 같이 입력하여 최신 배포버전과 이미지 파일을 얻을 수 있습니다.
|
웹 데몬 user가 <code>www-data</code>인 경우 다음과 같이 입력하여 최신 배포버전과 이미지 파일을 얻을 수 있습니다.
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo -u www-data git clone https://storage.hided.net/gitea/devsam/core.git
|
sudo -u www-data git clone https://storage.hided.net/gogs/devsam/core.git
|
||||||
sudo -u www-data git clone https://storage.hided.net/gitea/devsam/image.git
|
sudo -u www-data git clone https://storage.hided.net/gogs/devsam/image.git
|
||||||
```
|
```
|
||||||
|
|
||||||
> 이미지는 hook/git_hook.php을 통해 동기화되며, 서버 설치 과정에 이미지 갱신 키를 지정하는 것으로 '훼' 서버 업데이트 시 동기화됩니다. 이미지 서버가 게임 서버와 별개여도 동작하나, php와 git을 지원해야합니다.
|
> 이미지는 hook/git_hook.php을 통해 동기화되며, 서버 설치 과정에 이미지 갱신 키를 지정하는 것으로 '훼' 서버 업데이트 시 동기화됩니다. 이미지 서버가 게임 서버와 별개여도 동작하나, php와 git을 지원해야합니다.
|
||||||
|
|||||||
@@ -8,9 +8,5 @@ require(__DIR__ . '/vendor/autoload.php');
|
|||||||
if (!class_exists('\\sammo\\RootDB')) {
|
if (!class_exists('\\sammo\\RootDB')) {
|
||||||
Json::dieWithReason('No DB');
|
Json::dieWithReason('No DB');
|
||||||
}
|
}
|
||||||
$eParams = $_GET;
|
|
||||||
if(key_exists('path', $eParams)){
|
|
||||||
unset($eParams['path']);
|
|
||||||
}
|
|
||||||
|
|
||||||
APIHelper::launch(dirname(__FILE__), $_GET['path']??'', $eParams, true);
|
APIHelper::launch(dirname(__FILE__));
|
||||||
+4
-5
@@ -35,22 +35,21 @@
|
|||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"sammo\\": [
|
"sammo\\": [
|
||||||
"d_setting",
|
|
||||||
"src/sammo"
|
"src/sammo"
|
||||||
],
|
],
|
||||||
"kakao\\": [
|
"kakao\\": [
|
||||||
"d_setting",
|
|
||||||
"src/kakao"
|
"src/kakao"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"classmap": [
|
||||||
|
"d_setting/"
|
||||||
|
],
|
||||||
"exclude-from-classmap": [
|
"exclude-from-classmap": [
|
||||||
"**/*.orig.php"
|
"**/*.orig.php"
|
||||||
],
|
],
|
||||||
"files":[
|
"files":[
|
||||||
"f_config/config.php"
|
"f_config/config.php"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.5"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+2
-1799
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "2b7ec5f1a1a908310f3d032f294eacec",
|
"content-hash": "1983b89436fd8017db508592ddf542e4",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "brandonwamboldt/utilphp",
|
"name": "brandonwamboldt/utilphp",
|
||||||
@@ -4228,1804 +4228,7 @@
|
|||||||
"time": "2019-08-07T17:19:21+00:00"
|
"time": "2019-08-07T17:19:21+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [],
|
||||||
{
|
|
||||||
"name": "doctrine/instantiator",
|
|
||||||
"version": "1.4.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/doctrine/instantiator.git",
|
|
||||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
|
||||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1 || ^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/coding-standard": "^8.0",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"ext-phar": "*",
|
|
||||||
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
|
|
||||||
"phpstan/phpstan": "^0.12",
|
|
||||||
"phpstan/phpstan-phpunit": "^0.12",
|
|
||||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com",
|
|
||||||
"homepage": "https://ocramius.github.io/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
|
||||||
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
|
||||||
"keywords": [
|
|
||||||
"constructor",
|
|
||||||
"instantiate"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/doctrine/instantiator/issues",
|
|
||||||
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.patreon.com/phpdoctrine",
|
|
||||||
"type": "patreon"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
|
|
||||||
"type": "tidelift"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-11-10T18:47:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "myclabs/deep-copy",
|
|
||||||
"version": "1.10.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
|
||||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
|
||||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1 || ^8.0"
|
|
||||||
},
|
|
||||||
"replace": {
|
|
||||||
"myclabs/deep-copy": "self.version"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/collections": "^1.0",
|
|
||||||
"doctrine/common": "^2.6",
|
|
||||||
"phpunit/phpunit": "^7.1"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/DeepCopy/deep_copy.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"DeepCopy\\": "src/DeepCopy/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"description": "Create deep copies (clones) of your objects",
|
|
||||||
"keywords": [
|
|
||||||
"clone",
|
|
||||||
"copy",
|
|
||||||
"duplicate",
|
|
||||||
"object",
|
|
||||||
"object graph"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
|
||||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
|
|
||||||
"type": "tidelift"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-11-13T09:40:50+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nikic/php-parser",
|
|
||||||
"version": "v4.13.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
|
||||||
"reference": "210577fe3cf7badcc5814d99455df46564f3c077"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077",
|
|
||||||
"reference": "210577fe3cf7badcc5814d99455df46564f3c077",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-tokenizer": "*",
|
|
||||||
"php": ">=7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ircmaxell/php-yacc": "^0.0.7",
|
|
||||||
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
|
|
||||||
},
|
|
||||||
"bin": [
|
|
||||||
"bin/php-parse"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.9-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"PhpParser\\": "lib/PhpParser"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nikita Popov"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PHP parser written in PHP",
|
|
||||||
"keywords": [
|
|
||||||
"parser",
|
|
||||||
"php"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
|
||||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2"
|
|
||||||
},
|
|
||||||
"time": "2021-11-30T19:35:32+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phar-io/manifest",
|
|
||||||
"version": "2.0.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phar-io/manifest.git",
|
|
||||||
"reference": "97803eca37d319dfa7826cc2437fc020857acb53"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
|
|
||||||
"reference": "97803eca37d319dfa7826cc2437fc020857acb53",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-dom": "*",
|
|
||||||
"ext-phar": "*",
|
|
||||||
"ext-xmlwriter": "*",
|
|
||||||
"phar-io/version": "^3.0.1",
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Arne Blankerts",
|
|
||||||
"email": "arne@blankerts.de",
|
|
||||||
"role": "Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sebastian Heuer",
|
|
||||||
"email": "sebastian@phpeople.de",
|
|
||||||
"role": "Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phar-io/manifest/issues",
|
|
||||||
"source": "https://github.com/phar-io/manifest/tree/2.0.3"
|
|
||||||
},
|
|
||||||
"time": "2021-07-20T11:28:43+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phar-io/version",
|
|
||||||
"version": "3.2.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phar-io/version.git",
|
|
||||||
"reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
|
|
||||||
"reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Arne Blankerts",
|
|
||||||
"email": "arne@blankerts.de",
|
|
||||||
"role": "Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sebastian Heuer",
|
|
||||||
"email": "sebastian@phpeople.de",
|
|
||||||
"role": "Developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library for handling version information and constraints",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phar-io/version/issues",
|
|
||||||
"source": "https://github.com/phar-io/version/tree/3.2.1"
|
|
||||||
},
|
|
||||||
"time": "2022-02-21T01:04:05+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpspec/prophecy",
|
|
||||||
"version": "v1.15.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpspec/prophecy.git",
|
|
||||||
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
|
||||||
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/instantiator": "^1.2",
|
|
||||||
"php": "^7.2 || ~8.0, <8.2",
|
|
||||||
"phpdocumentor/reflection-docblock": "^5.2",
|
|
||||||
"sebastian/comparator": "^3.0 || ^4.0",
|
|
||||||
"sebastian/recursion-context": "^3.0 || ^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpspec/phpspec": "^6.0 || ^7.0",
|
|
||||||
"phpunit/phpunit": "^8.0 || ^9.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Prophecy\\": "src/Prophecy"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Konstantin Kudryashov",
|
|
||||||
"email": "ever.zet@gmail.com",
|
|
||||||
"homepage": "http://everzet.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Marcello Duarte",
|
|
||||||
"email": "marcello.duarte@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
|
||||||
"homepage": "https://github.com/phpspec/prophecy",
|
|
||||||
"keywords": [
|
|
||||||
"Double",
|
|
||||||
"Dummy",
|
|
||||||
"fake",
|
|
||||||
"mock",
|
|
||||||
"spy",
|
|
||||||
"stub"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phpspec/prophecy/issues",
|
|
||||||
"source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
|
|
||||||
},
|
|
||||||
"time": "2021-12-08T12:19:24+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/php-code-coverage",
|
|
||||||
"version": "9.2.14",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
|
||||||
"reference": "9f4d60b6afe5546421462b76cd4e633ebc364ab4"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f4d60b6afe5546421462b76cd4e633ebc364ab4",
|
|
||||||
"reference": "9f4d60b6afe5546421462b76cd4e633ebc364ab4",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-dom": "*",
|
|
||||||
"ext-libxml": "*",
|
|
||||||
"ext-xmlwriter": "*",
|
|
||||||
"nikic/php-parser": "^4.13.0",
|
|
||||||
"php": ">=7.3",
|
|
||||||
"phpunit/php-file-iterator": "^3.0.3",
|
|
||||||
"phpunit/php-text-template": "^2.0.2",
|
|
||||||
"sebastian/code-unit-reverse-lookup": "^2.0.2",
|
|
||||||
"sebastian/complexity": "^2.0",
|
|
||||||
"sebastian/environment": "^5.1.2",
|
|
||||||
"sebastian/lines-of-code": "^1.0.3",
|
|
||||||
"sebastian/version": "^3.0.1",
|
|
||||||
"theseer/tokenizer": "^1.2.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-pcov": "*",
|
|
||||||
"ext-xdebug": "*"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "9.2-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
|
||||||
"keywords": [
|
|
||||||
"coverage",
|
|
||||||
"testing",
|
|
||||||
"xunit"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.14"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2022-02-28T12:38:02+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/php-file-iterator",
|
|
||||||
"version": "3.0.6",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
|
||||||
"reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
|
|
||||||
"reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
|
||||||
"keywords": [
|
|
||||||
"filesystem",
|
|
||||||
"iterator"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2021-12-02T12:48:52+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/php-invoker",
|
|
||||||
"version": "3.1.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/php-invoker.git",
|
|
||||||
"reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
|
|
||||||
"reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-pcntl": "*",
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-pcntl": "*"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.1-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Invoke callables with a timeout",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/php-invoker/",
|
|
||||||
"keywords": [
|
|
||||||
"process"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T05:58:55+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/php-text-template",
|
|
||||||
"version": "2.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
|
||||||
"reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
|
|
||||||
"reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Simple template engine.",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
|
||||||
"keywords": [
|
|
||||||
"template"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T05:33:50+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/php-timer",
|
|
||||||
"version": "5.0.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
|
||||||
"reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
|
|
||||||
"reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Utility class for timing",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
|
||||||
"keywords": [
|
|
||||||
"timer"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:16:10+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpunit/phpunit",
|
|
||||||
"version": "9.5.16",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
|
||||||
"reference": "5ff8c545a50226c569310a35f4fa89d79f1ddfdc"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5ff8c545a50226c569310a35f4fa89d79f1ddfdc",
|
|
||||||
"reference": "5ff8c545a50226c569310a35f4fa89d79f1ddfdc",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/instantiator": "^1.3.1",
|
|
||||||
"ext-dom": "*",
|
|
||||||
"ext-json": "*",
|
|
||||||
"ext-libxml": "*",
|
|
||||||
"ext-mbstring": "*",
|
|
||||||
"ext-xml": "*",
|
|
||||||
"ext-xmlwriter": "*",
|
|
||||||
"myclabs/deep-copy": "^1.10.1",
|
|
||||||
"phar-io/manifest": "^2.0.3",
|
|
||||||
"phar-io/version": "^3.0.2",
|
|
||||||
"php": ">=7.3",
|
|
||||||
"phpspec/prophecy": "^1.12.1",
|
|
||||||
"phpunit/php-code-coverage": "^9.2.13",
|
|
||||||
"phpunit/php-file-iterator": "^3.0.5",
|
|
||||||
"phpunit/php-invoker": "^3.1.1",
|
|
||||||
"phpunit/php-text-template": "^2.0.3",
|
|
||||||
"phpunit/php-timer": "^5.0.2",
|
|
||||||
"sebastian/cli-parser": "^1.0.1",
|
|
||||||
"sebastian/code-unit": "^1.0.6",
|
|
||||||
"sebastian/comparator": "^4.0.5",
|
|
||||||
"sebastian/diff": "^4.0.3",
|
|
||||||
"sebastian/environment": "^5.1.3",
|
|
||||||
"sebastian/exporter": "^4.0.3",
|
|
||||||
"sebastian/global-state": "^5.0.1",
|
|
||||||
"sebastian/object-enumerator": "^4.0.3",
|
|
||||||
"sebastian/resource-operations": "^3.0.3",
|
|
||||||
"sebastian/type": "^2.3.4",
|
|
||||||
"sebastian/version": "^3.0.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"phpspec/prophecy-phpunit": "^2.0.1"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-soap": "*",
|
|
||||||
"ext-xdebug": "*"
|
|
||||||
},
|
|
||||||
"bin": [
|
|
||||||
"phpunit"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "9.5-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"src/Framework/Assert/Functions.php"
|
|
||||||
],
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "The PHP Unit Testing framework.",
|
|
||||||
"homepage": "https://phpunit.de/",
|
|
||||||
"keywords": [
|
|
||||||
"phpunit",
|
|
||||||
"testing",
|
|
||||||
"xunit"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.16"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://phpunit.de/sponsors.html",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2022-02-23T17:10:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/cli-parser",
|
|
||||||
"version": "1.0.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/cli-parser.git",
|
|
||||||
"reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
|
|
||||||
"reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library for parsing CLI options",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/cli-parser",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T06:08:49+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/code-unit",
|
|
||||||
"version": "1.0.8",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/code-unit.git",
|
|
||||||
"reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
|
|
||||||
"reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Collection of value objects that represent the PHP code units",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/code-unit",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:08:54+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/code-unit-reverse-lookup",
|
|
||||||
"version": "2.0.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
|
|
||||||
"reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
|
|
||||||
"reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Looks up which function or method a line of code belongs to",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T05:30:19+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/comparator",
|
|
||||||
"version": "4.0.6",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
|
||||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
|
|
||||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3",
|
|
||||||
"sebastian/diff": "^4.0",
|
|
||||||
"sebastian/exporter": "^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jeff Welch",
|
|
||||||
"email": "whatthejeff@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Volker Dusch",
|
|
||||||
"email": "github@wallbash.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@2bepublished.at"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides the functionality to compare PHP values for equality",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/comparator",
|
|
||||||
"keywords": [
|
|
||||||
"comparator",
|
|
||||||
"compare",
|
|
||||||
"equality"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T15:49:45+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/complexity",
|
|
||||||
"version": "2.0.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/complexity.git",
|
|
||||||
"reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
|
|
||||||
"reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"nikic/php-parser": "^4.7",
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library for calculating the complexity of PHP code units",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/complexity",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/complexity/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T15:52:27+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/diff",
|
|
||||||
"version": "4.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
|
||||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
|
||||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3",
|
|
||||||
"symfony/process": "^4.2 || ^5"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Kore Nordmann",
|
|
||||||
"email": "mail@kore-nordmann.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Diff implementation",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/diff",
|
|
||||||
"keywords": [
|
|
||||||
"diff",
|
|
||||||
"udiff",
|
|
||||||
"unidiff",
|
|
||||||
"unified diff"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/diff/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:10:38+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/environment",
|
|
||||||
"version": "5.1.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/environment.git",
|
|
||||||
"reference": "388b6ced16caa751030f6a69e588299fa09200ac"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
|
|
||||||
"reference": "388b6ced16caa751030f6a69e588299fa09200ac",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-posix": "*"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.1-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides functionality to handle HHVM/PHP environments",
|
|
||||||
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
|
||||||
"keywords": [
|
|
||||||
"Xdebug",
|
|
||||||
"environment",
|
|
||||||
"hhvm"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/environment/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T05:52:38+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/exporter",
|
|
||||||
"version": "4.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
|
||||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
|
||||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3",
|
|
||||||
"sebastian/recursion-context": "^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-mbstring": "*",
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jeff Welch",
|
|
||||||
"email": "whatthejeff@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Volker Dusch",
|
|
||||||
"email": "github@wallbash.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Adam Harvey",
|
|
||||||
"email": "aharvey@php.net"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides the functionality to export PHP variables for visualization",
|
|
||||||
"homepage": "https://www.github.com/sebastianbergmann/exporter",
|
|
||||||
"keywords": [
|
|
||||||
"export",
|
|
||||||
"exporter"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2021-11-11T14:18:36+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/global-state",
|
|
||||||
"version": "5.0.5",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/global-state.git",
|
|
||||||
"reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
|
|
||||||
"reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3",
|
|
||||||
"sebastian/object-reflector": "^2.0",
|
|
||||||
"sebastian/recursion-context": "^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-dom": "*",
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-uopz": "*"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Snapshotting of global state",
|
|
||||||
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
|
||||||
"keywords": [
|
|
||||||
"global state"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/global-state/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2022-02-14T08:28:10+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/lines-of-code",
|
|
||||||
"version": "1.0.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
|
|
||||||
"reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
|
|
||||||
"reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"nikic/php-parser": "^4.6",
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library for counting the lines of code in PHP source code",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-11-28T06:42:11+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/object-enumerator",
|
|
||||||
"version": "4.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
|
|
||||||
"reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
|
|
||||||
"reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3",
|
|
||||||
"sebastian/object-reflector": "^2.0",
|
|
||||||
"sebastian/recursion-context": "^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:12:34+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/object-reflector",
|
|
||||||
"version": "2.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/object-reflector.git",
|
|
||||||
"reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
|
|
||||||
"reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Allows reflection of object attributes, including inherited and non-public ones",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:14:26+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/recursion-context",
|
|
||||||
"version": "4.0.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
|
||||||
"reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
|
|
||||||
"reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jeff Welch",
|
|
||||||
"email": "whatthejeff@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Adam Harvey",
|
|
||||||
"email": "aharvey@php.net"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides functionality to recursively process PHP variables",
|
|
||||||
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-10-26T13:17:30+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/resource-operations",
|
|
||||||
"version": "3.0.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/resource-operations.git",
|
|
||||||
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
|
|
||||||
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Provides a list of PHP built-in functions that operate on resources",
|
|
||||||
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/resource-operations/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T06:45:17+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/type",
|
|
||||||
"version": "2.3.4",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/type.git",
|
|
||||||
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
|
|
||||||
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Collection of value objects that represent the types of the PHP type system",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/type",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/type/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2021-06-15T12:49:02+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sebastian/version",
|
|
||||||
"version": "3.0.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/sebastianbergmann/version.git",
|
|
||||||
"reference": "c6c1022351a901512170118436c764e473f6de8c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
|
|
||||||
"reference": "c6c1022351a901512170118436c764e473f6de8c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.3"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "3.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Sebastian Bergmann",
|
|
||||||
"email": "sebastian@phpunit.de",
|
|
||||||
"role": "lead"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
|
||||||
"homepage": "https://github.com/sebastianbergmann/version",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/sebastianbergmann/version/issues",
|
|
||||||
"source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/sebastianbergmann",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-09-28T06:39:44+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "theseer/tokenizer",
|
|
||||||
"version": "1.2.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/theseer/tokenizer.git",
|
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
|
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-dom": "*",
|
|
||||||
"ext-tokenizer": "*",
|
|
||||||
"ext-xmlwriter": "*",
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Arne Blankerts",
|
|
||||||
"email": "arne@blankerts.de",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/theseer/tokenizer/issues",
|
|
||||||
"source": "https://github.com/theseer/tokenizer/tree/1.2.1"
|
|
||||||
},
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://github.com/theseer",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2021-07-28T10:34:58+00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": [],
|
||||||
|
|||||||
Regular → Executable
BIN
Binary file not shown.
@@ -2,11 +2,6 @@
|
|||||||
|
|
||||||
namespace sammo;
|
namespace sammo;
|
||||||
|
|
||||||
if(!file_exists(__DIR__ . '/../vendor/autoload.php')){
|
|
||||||
http_response_code(503);
|
|
||||||
die('not_ready');
|
|
||||||
}
|
|
||||||
|
|
||||||
require(__DIR__ . '/../vendor/autoload.php');
|
require(__DIR__ . '/../vendor/autoload.php');
|
||||||
|
|
||||||
if (!class_exists('\\sammo\\RootDB')) {
|
if (!class_exists('\\sammo\\RootDB')) {
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ CREATE TABLE `member` (
|
|||||||
`NAME` VARCHAR(64) NOT NULL,
|
`NAME` VARCHAR(64) NOT NULL,
|
||||||
`PICTURE` VARCHAR(64) NULL DEFAULT 'default.jpg',
|
`PICTURE` VARCHAR(64) NULL DEFAULT 'default.jpg',
|
||||||
`IMGSVR` INT(1) NULL DEFAULT '0',
|
`IMGSVR` INT(1) NULL DEFAULT '0',
|
||||||
`acl` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
`acl` TEXT NOT NULL DEFAULT '{}' COMMENT 'json',
|
||||||
`penalty` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
`penalty` TEXT NOT NULL DEFAULT '{}' COMMENT 'json',
|
||||||
`GRADE` INT(1) NULL DEFAULT '1',
|
`GRADE` INT(1) NULL DEFAULT '1',
|
||||||
`REG_NUM` INT(3) NULL DEFAULT '0',
|
`REG_NUM` INT(3) NULL DEFAULT '0',
|
||||||
`REG_DATE` DATETIME NOT NULL,
|
`REG_DATE` DATETIME NOT NULL,
|
||||||
@@ -43,12 +43,9 @@ CREATE TABLE `member` (
|
|||||||
UNIQUE INDEX `ID` (`ID`),
|
UNIQUE INDEX `ID` (`ID`),
|
||||||
UNIQUE INDEX `EMAIL` (`EMAIL`),
|
UNIQUE INDEX `EMAIL` (`EMAIL`),
|
||||||
UNIQUE INDEX `kauth_id` (`oauth_id`),
|
UNIQUE INDEX `kauth_id` (`oauth_id`),
|
||||||
INDEX `delete_after` (`delete_after`),
|
INDEX `delete_after` (`delete_after`)
|
||||||
CONSTRAINT `json1` CHECK (json_valid(`acl`)),
|
|
||||||
CONSTRAINT `json2` CHECK (json_valid(`penalty`))
|
|
||||||
)
|
)
|
||||||
COLLATE='utf8mb4_general_ci'
|
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||||
ENGINE=Aria;
|
|
||||||
|
|
||||||
-- 로그인 로그 테이블
|
-- 로그인 로그 테이블
|
||||||
CREATE TABLE `member_log` (
|
CREATE TABLE `member_log` (
|
||||||
@@ -56,14 +53,12 @@ CREATE TABLE `member_log` (
|
|||||||
`member_no` INT(11) NOT NULL,
|
`member_no` INT(11) NOT NULL,
|
||||||
`date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
`action_type` ENUM('reg','try_login','login','logout','oauth','change_pw','make_general','access_server','delete') NOT NULL,
|
`action_type` ENUM('reg','try_login','login','logout','oauth','change_pw','make_general','access_server','delete') NOT NULL,
|
||||||
`action` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
`action` TEXT NULL DEFAULT NULL COMMENT 'JSON',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
INDEX `action` (`member_no`, `action_type`, `date`),
|
INDEX `action` (`member_no`, `action_type`, `date`),
|
||||||
INDEX `member` (`member_no`, `date`),
|
INDEX `member` (`member_no`, `date`)
|
||||||
CONSTRAINT `json` CHECK (json_valid(`action`))
|
|
||||||
)
|
)
|
||||||
COLLATE='utf8mb4_general_ci'
|
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||||
ENGINE=Aria;
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# KV storage
|
# KV storage
|
||||||
@@ -74,10 +69,9 @@ CREATE TABLE if not exists `storage` (
|
|||||||
`key` VARCHAR(40) NOT NULL,
|
`key` VARCHAR(40) NOT NULL,
|
||||||
`value` TEXT NOT NULL,
|
`value` TEXT NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE INDEX `key` (`namespace`, `key`),
|
UNIQUE INDEX `key` (`namespace`, `key`)
|
||||||
CONSTRAINT `json` CHECK (json_valid(`value`))
|
|
||||||
)
|
)
|
||||||
COLLATE='utf8mb4_bin'
|
COLLATE='utf8mb4_general_ci'
|
||||||
ENGINE=Aria;
|
ENGINE=Aria;
|
||||||
|
|
||||||
CREATE TABLE `login_token` (
|
CREATE TABLE `login_token` (
|
||||||
@@ -92,4 +86,5 @@ CREATE TABLE `login_token` (
|
|||||||
INDEX `by_date` (`user_id`, `expire_date`)
|
INDEX `by_date` (`user_id`, `expire_date`)
|
||||||
)
|
)
|
||||||
COLLATE='utf8mb4_general_ci'
|
COLLATE='utf8mb4_general_ci'
|
||||||
ENGINE=Aria;
|
ENGINE=Aria
|
||||||
|
;
|
||||||
@@ -172,7 +172,6 @@ if ($gameStor->isunited) {
|
|||||||
data-general-strength='{$general['strength']}'
|
data-general-strength='{$general['strength']}'
|
||||||
data-general-intel='{$general['intel']}'
|
data-general-intel='{$general['intel']}'
|
||||||
data-is-npc='" . ($general['npc'] >= 2 ? 'true' : 'false') . "'
|
data-is-npc='" . ($general['npc'] >= 2 ? 'true' : 'false') . "'
|
||||||
data-npc-type='{$general['npc']}'
|
|
||||||
>
|
>
|
||||||
<td align=center><img class='generalIcon' width='64' height='64' src='{$imageTemp}/{$general['picture']}'></img></td>
|
<td align=center><img class='generalIcon' width='64' height='64' src='{$imageTemp}/{$general['picture']}'></img></td>
|
||||||
<td align=center>$name</td>
|
<td align=center>$name</td>
|
||||||
|
|||||||
+16
-18
@@ -23,7 +23,7 @@ if ($serverID === UniqueConst::$serverID) {
|
|||||||
increaseRefresh("연감", 1);
|
increaseRefresh("연감", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
|
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'map_theme']);
|
||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner = %i', $userID);
|
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner = %i', $userID);
|
||||||
|
|
||||||
@@ -47,9 +47,9 @@ if ($s_year === null) {
|
|||||||
$e = Util::joinYearMonth($e_year, $e_month);
|
$e = Util::joinYearMonth($e_year, $e_month);
|
||||||
|
|
||||||
if ($serverID !== UniqueConst::$serverID) {
|
if ($serverID !== UniqueConst::$serverID) {
|
||||||
$mapName = $db->queryFirstField('SELECT map FROM ng_games WHERE server_id=%s', $serverID) ?: 'che';
|
$mapTheme = $db->queryFirstField('SELECT map FROM ng_games WHERE server_id=%s', $serverID) ?: 'che';
|
||||||
} else {
|
} else {
|
||||||
$mapName = GameConst::$mapName;
|
$mapTheme = $admin['map_theme'] ?? 'che';
|
||||||
}
|
}
|
||||||
|
|
||||||
//FIXME: $yearmonth가 올바르지 않을 경우에 처리가 필요.
|
//FIXME: $yearmonth가 올바르지 않을 경우에 처리가 필요.
|
||||||
@@ -104,26 +104,22 @@ $nations = $history['nations'];
|
|||||||
<meta name="viewport" content="width=1024" />
|
<meta name="viewport" content="width=1024" />
|
||||||
<title><?= UniqueConst::$serverName ?>: 연감</title>
|
<title><?= UniqueConst::$serverName ?>: 연감</title>
|
||||||
<?= WebUtil::printJS('../d_shared/common_path.js') ?>
|
<?= WebUtil::printJS('../d_shared/common_path.js') ?>
|
||||||
<?= WebUtil::printJS("js/map/theme_{$mapName}.js") ?>
|
<?= WebUtil::printJS("js/map/theme_{$mapTheme}.js") ?>
|
||||||
<?= WebUtil::printCSS('../d_shared/common.css') ?>
|
<?= WebUtil::printCSS('../d_shared/common.css') ?>
|
||||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
||||||
<?= WebUtil::printCSS('css/map.css') ?>
|
<?= WebUtil::printCSS('css/map.css') ?>
|
||||||
<?= WebUtil::printCSS('css/history.css') ?>
|
<?= WebUtil::printCSS('css/history.css') ?>
|
||||||
<?= WebUtil::printStaticValues([
|
|
||||||
'staticValues' => [
|
|
||||||
'startYear' => $s_year,
|
|
||||||
'startMonth' => $s_month,
|
|
||||||
'lastYear' => $e_year,
|
|
||||||
'lastMonth' => $e_month,
|
|
||||||
'selectYear' => $year,
|
|
||||||
'selectMonth' => $month,
|
|
||||||
'nations' => $nations ? $history['nations'] : [],
|
|
||||||
'serverNick' => DB::prefix(),
|
|
||||||
'serverID' => UniqueConst::$serverID,
|
|
||||||
]
|
|
||||||
])?>
|
|
||||||
<?= WebUtil::printDist('ts', ['common', 'history']) ?>
|
<?= WebUtil::printDist('ts', ['common', 'history']) ?>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var startYear = <?= $s_year ?>;
|
||||||
|
var startMonth = <?= $s_month ?>;
|
||||||
|
var lastYear = <?= $e_year ?>;
|
||||||
|
var lastMonth = <?= $e_month ?>;
|
||||||
|
var selectYear = <?= $year ?>;
|
||||||
|
var selectMonth = <?= $month ?>;
|
||||||
|
var nations = <?= $nations ? $history['nations'] : '{}' ?>;
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -155,7 +151,7 @@ $nations = $history['nations'];
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr height=520>
|
<tr height=520>
|
||||||
<td width=698>
|
<td width=698>
|
||||||
<?= getMapHtml($mapName) ?>
|
<?= getMapHtml($mapTheme) ?>
|
||||||
</td>
|
</td>
|
||||||
<td id='nation_list_frame'>
|
<td id='nation_list_frame'>
|
||||||
<table id='nation_list'>
|
<table id='nation_list'>
|
||||||
@@ -208,6 +204,8 @@ $nations = $history['nations'];
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<script>
|
<script>
|
||||||
|
window.serverNick = '<?= DB::prefix() ?>';
|
||||||
|
window.serverID = '<?= UniqueConst::$serverID ?>';
|
||||||
<?php if($isCurrent): ?>
|
<?php if($isCurrent): ?>
|
||||||
reloadWorldMap({
|
reloadWorldMap({
|
||||||
showMe: false,
|
showMe: false,
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ if ($con >= 2) {
|
|||||||
}
|
}
|
||||||
$chief = $chiefs[$chiefLevel] ?? ['name' => '-', 'npc' => 0];
|
$chief = $chiefs[$chiefLevel] ?? ['name' => '-', 'npc' => 0];
|
||||||
$officerLevelText = getOfficerLevelText($chiefLevel, $nation['level']);
|
$officerLevelText = getOfficerLevelText($chiefLevel, $nation['level']);
|
||||||
$chiefText = formatName($chief['name'], $chief['npc']);
|
$chiefText = getColoredName($chief['name'], $chief['npc']);
|
||||||
echo "<td class='center bg1'>{$officerLevelText}</td>
|
echo "<td class='center bg1'>{$officerLevelText}</td>
|
||||||
<td class='center'>{$chiefText}</td>";
|
<td class='center'>{$chiefText}</td>";
|
||||||
}
|
}
|
||||||
@@ -178,7 +178,7 @@ if ($con >= 2) {
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan=5> 장수 일람 : ";
|
<td colspan=5> 장수 일람 : ";
|
||||||
foreach ($nations[0]['generals'] as $general) {
|
foreach ($nations[0]['generals'] as $general) {
|
||||||
$generalText = formatName($general['name'], $general['npc']);
|
$generalText = getColoredName($general['name'], $general['npc']);
|
||||||
echo "{$generalText}, ";
|
echo "{$generalText}, ";
|
||||||
}
|
}
|
||||||
echo "
|
echo "
|
||||||
|
|||||||
+1
-1
@@ -111,7 +111,7 @@ $sel[$type] = "selected";
|
|||||||
</tr>
|
</tr>
|
||||||
<?php foreach ($generalList as $general) : ?>
|
<?php foreach ($generalList as $general) : ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td align=center><?= formatName($general['name'], $general['npc']) ?></td>
|
<td align=center><?= getColoredName($general['name'], $general['npc']) ?></td>
|
||||||
<td align=center><?= $general['owner_name'] ?></td>
|
<td align=center><?= $general['owner_name'] ?></td>
|
||||||
<td align=center>Lv <?= $general['explevel'] ?></td>
|
<td align=center>Lv <?= $general['explevel'] ?></td>
|
||||||
<td align=center><?= $nationName[$general['nation']] ?></td>
|
<td align=center><?= $nationName[$general['nation']] ?></td>
|
||||||
|
|||||||
+1
-6
@@ -5,9 +5,4 @@ namespace sammo;
|
|||||||
include "lib.php";
|
include "lib.php";
|
||||||
include "func.php";
|
include "func.php";
|
||||||
|
|
||||||
$eParams = $_GET;
|
APIHelper::launch(dirname(__FILE__));
|
||||||
if(key_exists('path', $eParams)){
|
|
||||||
unset($eParams['path']);
|
|
||||||
}
|
|
||||||
|
|
||||||
APIHelper::launch(dirname(__FILE__), $_GET['path']??'', $eParams, true);
|
|
||||||
@@ -133,7 +133,7 @@ $showGeneral = General::createGeneralObjFromDB($gen);
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<form name=form1 method=get>
|
<form name=form1 method=post>
|
||||||
정렬순서 :
|
정렬순서 :
|
||||||
<select name='query_type' size=1>
|
<select name='query_type' size=1>
|
||||||
<?php foreach ($queryMap as $queryType => [$queryTypeText,]) : ?>
|
<?php foreach ($queryMap as $queryType => [$queryTypeText,]) : ?>
|
||||||
|
|||||||
@@ -337,7 +337,6 @@ $templates = new \League\Plates\Engine('templates');
|
|||||||
'ourGeneral' => $ourGeneral,
|
'ourGeneral' => $ourGeneral,
|
||||||
'iconPath' => GetImageURL($general['imgsvr']) . '/' . $general['picture'],
|
'iconPath' => GetImageURL($general['imgsvr']) . '/' . $general['picture'],
|
||||||
'isNPC' => $isNPC,
|
'isNPC' => $isNPC,
|
||||||
'npc' => $general['npc'],
|
|
||||||
'wounded' => $wounded,
|
'wounded' => $wounded,
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'nameText' => $nameText,
|
'nameText' => $nameText,
|
||||||
@@ -365,7 +364,7 @@ $templates = new \League\Plates\Engine('templates');
|
|||||||
}
|
}
|
||||||
|
|
||||||
$generalsName = array_map(function ($gen) {
|
$generalsName = array_map(function ($gen) {
|
||||||
return formatName($gen['name'], $gen['npc']);
|
return getColoredName($gen['name'], $gen['npc']);
|
||||||
}, $generals);
|
}, $generals);
|
||||||
|
|
||||||
$enemyCrew = 0;
|
$enemyCrew = 0;
|
||||||
|
|||||||
+16
-16
@@ -13,6 +13,8 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
|
|||||||
|
|
||||||
increaseRefresh("중원정보", 1);
|
increaseRefresh("중원정보", 1);
|
||||||
|
|
||||||
|
$mapTheme = $gameStor->map_theme ?? 'che';
|
||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT no,nation FROM general WHERE owner=%i', $userID);
|
$me = $db->queryFirstRow('SELECT no,nation FROM general WHERE owner=%i', $userID);
|
||||||
$myNationID = $me['nation'];
|
$myNationID = $me['nation'];
|
||||||
|
|
||||||
@@ -95,15 +97,20 @@ $neutralStateCharMap = [
|
|||||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
||||||
<?= WebUtil::printCSS('css/map.css') ?>
|
<?= WebUtil::printCSS('css/map.css') ?>
|
||||||
<?= WebUtil::printCSS('css/history.css') ?>
|
<?= WebUtil::printCSS('css/history.css') ?>
|
||||||
<?= WebUtil::printStaticValues([
|
|
||||||
'staticValues' => [
|
|
||||||
'serverNick' => DB::prefix(),
|
|
||||||
'serverID' => UniqueConst::$serverID,
|
|
||||||
'unitSet' => GameConst::$unitSet,
|
|
||||||
'mapName' => GameConst::$mapName,
|
|
||||||
],
|
|
||||||
]) ?>
|
|
||||||
<?= WebUtil::printDist('ts', ['common', 'map']) ?>
|
<?= WebUtil::printDist('ts', ['common', 'map']) ?>
|
||||||
|
<script>
|
||||||
|
window.serverNick = '<?= DB::prefix() ?>';
|
||||||
|
window.serverID = '<?= UniqueConst::$serverID ?>';
|
||||||
|
$(function() {
|
||||||
|
|
||||||
|
reloadWorldMap({
|
||||||
|
neutralView: true,
|
||||||
|
showMe: true,
|
||||||
|
useCachedMap: true
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -187,7 +194,7 @@ $neutralStateCharMap = [
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td width=698 height=420>
|
<td width=698 height=420>
|
||||||
<?= getMapHtml() ?>
|
<?= getMapHtml($mapTheme) ?>
|
||||||
</td>
|
</td>
|
||||||
<td id='nation_list_frame'>
|
<td id='nation_list_frame'>
|
||||||
<table id='nation_list'>
|
<table id='nation_list'>
|
||||||
@@ -224,13 +231,6 @@ $neutralStateCharMap = [
|
|||||||
<td><?= banner() ?></td>
|
<td><?= banner() ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<script>
|
|
||||||
reloadWorldMap({
|
|
||||||
neutralView: true,
|
|
||||||
showMe: true,
|
|
||||||
useCachedMap: true
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
+1
-1
@@ -172,7 +172,7 @@ $templates = new \League\Plates\Engine('templates');
|
|||||||
|
|
||||||
$general['expLevelText'] = getExpLevel($general['experience']);
|
$general['expLevelText'] = getExpLevel($general['experience']);
|
||||||
|
|
||||||
$general['nameText'] = formatName($general['name'], $general['npc']);
|
$general['nameText'] = getColoredName($general['name'], $general['npc']);
|
||||||
|
|
||||||
$general['modeText'] = formatDefenceTrain($general['defence_train']);
|
$general['modeText'] = formatDefenceTrain($general['defence_train']);
|
||||||
$general['crewtypeText'] = GameUnitConst::byId($general['crewtype'])->name ?? '-';
|
$general['crewtypeText'] = GameUnitConst::byId($general['crewtype'])->name ?? '-';
|
||||||
|
|||||||
+56
-70
@@ -71,8 +71,7 @@ $sel = [$type => "selected"];
|
|||||||
</table>
|
</table>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$nation = $db->queryFirstRow('SELECT nation, name, color, type, level, capital, gennum, `power`, `rate` from nation WHERE nation = %i', $nationID); //국가정보
|
$nation = getNationStaticInfo($me['nation']); //국가정보
|
||||||
$nationTypeObj = buildNationTypeClass($nation['type']);
|
|
||||||
|
|
||||||
$officerList = [];
|
$officerList = [];
|
||||||
foreach ($db->query('SELECT no,name,npc,city,officer_level,officer_city,belong FROM general WHERE nation = %i AND 2 <= officer_level AND officer_level <= 4', $nationID) as $officer) {
|
foreach ($db->query('SELECT no,name,npc,city,officer_level,officer_city,belong FROM general WHERE nation = %i AND 2 <= officer_level AND officer_level <= 4', $nationID) as $officer) {
|
||||||
@@ -83,17 +82,6 @@ $sel = [$type => "selected"];
|
|||||||
$officerList[$officerCityID][$officer['officer_level']] = $officer;
|
$officerList[$officerCityID][$officer['officer_level']] = $officer;
|
||||||
}
|
}
|
||||||
|
|
||||||
$generalList = $db->query('SELECT npc, name, city FROM general WHERE nation = %i', $me['nation']);
|
|
||||||
$cityGeneralList = [];
|
|
||||||
foreach ($generalList as $general) {
|
|
||||||
$cityID = $general['city'];
|
|
||||||
if (!key_exists($cityID, $cityGeneralList)) {
|
|
||||||
$cityGeneralList[$cityID] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$cityGeneralList[$cityID][] = formatName($general['name'], $general['npc']);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$cityList = $db->query('SELECT *,pop/pop_max as poprate from city where nation=%i', $nationID);
|
$cityList = $db->query('SELECT *,pop/pop_max as poprate from city where nation=%i', $nationID);
|
||||||
|
|
||||||
@@ -183,12 +171,8 @@ $sel = [$type => "selected"];
|
|||||||
];
|
];
|
||||||
|
|
||||||
$cityOfficerList = $officerList[$cityID] ?? [];
|
$cityOfficerList = $officerList[$cityID] ?? [];
|
||||||
$effectiveOfficerCnt = 0;
|
|
||||||
foreach ($cityOfficerList as $cityOfficer) {
|
foreach ($cityOfficerList as $cityOfficer) {
|
||||||
if ($cityOfficer['city'] == $cityID) {
|
$officerName[$cityOfficer['officer_level']] = getColoredName($cityOfficer['name'], $cityOfficer['npc']);
|
||||||
$effectiveOfficerCnt += 1;
|
|
||||||
}
|
|
||||||
$officerName[$cityOfficer['officer_level']] = formatName($cityOfficer['name'], $cityOfficer['npc']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($type == 10 && $city['region'] != $region) {
|
if ($type == 10 && $city['region'] != $region) {
|
||||||
@@ -203,60 +187,62 @@ $sel = [$type => "selected"];
|
|||||||
$city['trade'] = "- ";
|
$city['trade'] = "- ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "
|
||||||
$cityGoldIncome = $nation['rate'] / 20 * calcCityGoldIncome($city, $effectiveOfficerCnt, $nation['capital'] == $cityID, $nation['level'], $nationTypeObj);
|
<table align=center width=1000 class='tb_layout bg2'>
|
||||||
$cityRiceIncome = $nation['rate'] / 20 * calcCityRiceIncome($city, $effectiveOfficerCnt, $nation['capital'] == $cityID, $nation['level'], $nationTypeObj);
|
|
||||||
$cityWallIncome = $nation['rate'] / 20 * calcCityWallRiceIncome($city, $effectiveOfficerCnt, $nation['capital'] == $cityID, $nation['level'], $nationTypeObj);
|
|
||||||
|
|
||||||
?>
|
|
||||||
<table align=center width=1000 class='tb_layout bg2'>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=10 style="color:<?= newColor($nation['color']) ?>; background-color:<?= $nation['color'] ?>;">
|
<td colspan=12 style=color:" . newColor($nation['color']) . "; bgcolor={$nation['color']}><font size=2>【 " . CityConst::$regionMap[$city['region']] . " | " . CityConst::$levelMap[$city['level']] . " 】 {$city['name']}</font></td>
|
||||||
<font size=2>【 <?= CityConst::$regionMap[$city['region']] ?> | <?= CityConst::$levelMap[$city['level']] ?> 】 <?= $city['name'] ?></font>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align=center width=46 class='bg1'>주민</td>
|
||||||
|
<td align=center width=140>{$city['pop']}/{$city['pop_max']}</td>
|
||||||
|
<td align=center width=46 class='bg1'>농업</td>
|
||||||
|
<td align=center width=140>{$city['agri']}/{$city['agri_max']}</td>
|
||||||
|
<td align=center width=46 class='bg1'>상업</td>
|
||||||
|
<td align=center width=140>{$city['comm']}/{$city['comm_max']}</td>
|
||||||
|
<td align=center width=46 class='bg1'>치안</td>
|
||||||
|
<td align=center width=140>{$city['secu']}/{$city['secu_max']}</td>
|
||||||
|
<td align=center width=46 class='bg1'>수비</td>
|
||||||
|
<td align=center width=140>{$city['def']}/{$city['def_max']}</td>
|
||||||
|
<td align=center width=46 class='bg1'>성벽</td>
|
||||||
|
<td align=center width=140>{$city['wall']}/{$city['wall_max']}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align=center class='bg1'>민심</td>
|
||||||
|
<td align=center>" . round($city['trust'], 1) . "</td>
|
||||||
|
<td align=center class='bg1'>시세</td>
|
||||||
|
<td align=center>{$city['trade']}%</td>
|
||||||
|
<td align=center class='bg1'>인구</td>
|
||||||
|
<td align=center>" . round($city['pop'] / $city['pop_max'] * 100, 2) . " %</td>
|
||||||
|
<td align=center class='bg1'>태수</td>
|
||||||
|
<td align=center>";
|
||||||
|
echo $officerName[4];
|
||||||
|
echo "</td>
|
||||||
|
<td align=center class='bg1'>군사</td>
|
||||||
|
<td align=center>";
|
||||||
|
echo $officerName[3];
|
||||||
|
echo "</td>
|
||||||
|
<td align=center class='bg1'>종사</td>
|
||||||
|
<td align=center>";
|
||||||
|
echo $officerName[2];
|
||||||
|
echo "</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align=center class='bg1'>장수</td>
|
||||||
|
<td colspan=11>";
|
||||||
|
$generalList = $db->query('SELECT npc, name FROM general WHERE city = %i AND nation = %i', $city['city'], $me['nation']);
|
||||||
|
if (!$generalList) {
|
||||||
|
echo "-";
|
||||||
|
}
|
||||||
|
foreach ($generalList as $general) {
|
||||||
|
echo getColoredName($general['name'], $general['npc']) . ', ';
|
||||||
|
}
|
||||||
|
echo "
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr style='text-align:center;'>
|
</table>
|
||||||
<td width=60 class='bg1'>주민</td>
|
";
|
||||||
<td width=140 class='pop-value'><?= $city['pop'] ?>/<?= $city['pop_max'] ?></td>
|
}
|
||||||
<td width=60 class='bg1'>인구율</td>
|
?>
|
||||||
<td width=140 class='pop-prop-value'><?= round($city['pop'] / $city['pop_max'] * 100, 2) ?>%</td>
|
|
||||||
<td width=60 class='bg1'>자금 수입</td>
|
|
||||||
<td width=140 class='gold-income'><?= number_format($cityGoldIncome) ?></td>
|
|
||||||
<td width=60 class='bg1'>군량 수입</td>
|
|
||||||
<td width=140 class='rice-income'><?= number_format($cityRiceIncome) ?></td>
|
|
||||||
<td width=60 class='bg1'>둔전 수입</td>
|
|
||||||
<td width=140 class='wall-income'><?= number_format($cityWallIncome) ?></td>
|
|
||||||
</tr>
|
|
||||||
<tr style='text-align:center;'>
|
|
||||||
<td class='bg1'>농업</td>
|
|
||||||
<td class='agri-value'><?= $city['agri'] ?>/<?= $city['agri_max'] ?></td>
|
|
||||||
<td class='bg1'>상업</td>
|
|
||||||
<td class='comm-value'><?= $city['comm'] ?>/<?= $city['comm_max'] ?></td>
|
|
||||||
<td class='bg1'>치안</td>
|
|
||||||
<td class='secu-value'><?= $city['secu'] ?>/<?= $city['secu_max'] ?></td>
|
|
||||||
<td class='bg1'>수비</td>
|
|
||||||
<td class='def-value'><?= $city['def'] ?>/<?= $city['def_max'] ?></td>
|
|
||||||
<td class='bg1'>성벽</td>
|
|
||||||
<td class='wall-value'><?= $city['wall'] ?>/<?= $city['wall_max'] ?></td>
|
|
||||||
</tr>
|
|
||||||
<tr style='text-align:center;'>
|
|
||||||
<td class='bg1'>민심</td>
|
|
||||||
<td class='trust-value'><?= round($city['trust'], 1) ?></td>
|
|
||||||
<td class='bg1'>시세</td>
|
|
||||||
<td class='trade-value'><?= $city['trade'] ?>%</td>
|
|
||||||
<td class='bg1'>태수</td>
|
|
||||||
<td class='officer-4-value'><?= $officerName[4] ?></td>
|
|
||||||
<td class='bg1'>군사</td>
|
|
||||||
<td class='officer-3-value'><?= $officerName[3] ?></td>
|
|
||||||
<td class='bg1'>종사</td>
|
|
||||||
<td class='officer-2-value'><?= $officerName[2] ?></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style='text-align:center;' class='bg1'>장수</td>
|
|
||||||
<td colspan=9 class='city-generals'><?= key_exists($cityID, $cityGeneralList) ? join(', ', $cityGeneralList[$cityID]) : '-' ?></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<table align=center width=1000 class='tb_layout bg0 anchor'>
|
<table align=center width=1000 class='tb_layout bg0 anchor'>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -266,7 +252,7 @@ $sel = [$type => "selected"];
|
|||||||
<td><?= banner() ?></td>
|
<td><?= banner() ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div id="helper_genlist" style="display:none;"></div>
|
|
||||||
</body>
|
</body>
|
||||||
|
<div id="helper_genlist" style="display:none;"></div>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -98,8 +98,8 @@ if($btn == '참가') {
|
|||||||
], 'no=%i', $general['no']);
|
], 'no=%i', $general['no']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$grpCount = $db->queryFirstColumn('SELECT count(grp) FROM tournament where grp<10 GROUP BY grp;');
|
$grpCount = $db->queryFirstField('SELECT count(*) FROM tournament where grp<10 GROUP BY grp HAVING count(*)=8');
|
||||||
if(min($grpCount) >= 8) {
|
if($grpCount >= 8) {
|
||||||
$gameStor->tournament = 2;
|
$gameStor->tournament = 2;
|
||||||
$gameStor->phase = 0;
|
$gameStor->phase = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -171,7 +171,7 @@ function cityInfo(General $generalObj)
|
|||||||
];
|
];
|
||||||
|
|
||||||
foreach ($db->query('SELECT `officer_level`, `name`, npc, no FROM general WHERE officer_city = %i', $cityID) as $officer) {
|
foreach ($db->query('SELECT `officer_level`, `name`, npc, no FROM general WHERE officer_city = %i', $cityID) as $officer) {
|
||||||
$officerName[$officer['officer_level']] = formatName($officer['name'], $officer['npc']);
|
$officerName[$officer['officer_level']] = getColoredName($officer['name'], $officer['npc']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$city['officerName'] = $officerName;
|
$city['officerName'] = $officerName;
|
||||||
@@ -199,8 +199,8 @@ function myNationInfo(General $generalObj)
|
|||||||
|
|
||||||
$topChiefs = Util::convertArrayToDict($db->query('SELECT officer_level, no, name, npc FROM general WHERE nation = %i AND officer_level >= 11', $nationID), 'officer_level');
|
$topChiefs = Util::convertArrayToDict($db->query('SELECT officer_level, no, name, npc FROM general WHERE nation = %i AND officer_level >= 11', $nationID), 'officer_level');
|
||||||
|
|
||||||
$level12Name = key_exists(12, $topChiefs) ? formatName($topChiefs[12]['name'], $topChiefs[12]['npc']) : '-';
|
$level12Name = key_exists(12, $topChiefs) ? getColoredName($topChiefs[12]['name'], $topChiefs[12]['npc']) : '-';
|
||||||
$level11Name = key_exists(11, $topChiefs) ? formatName($topChiefs[11]['name'], $topChiefs[11]['npc']) : '-';
|
$level11Name = key_exists(11, $topChiefs) ? getColoredName($topChiefs[11]['name'], $topChiefs[11]['npc']) : '-';
|
||||||
|
|
||||||
$impossibleStrategicCommandLists = [];
|
$impossibleStrategicCommandLists = [];
|
||||||
$strategicCommandLists = GameConst::$availableChiefCommand['전략'];
|
$strategicCommandLists = GameConst::$availableChiefCommand['전략'];
|
||||||
|
|||||||
@@ -393,7 +393,6 @@ function setGeneralCommand(int $generalID, array $rawTurnList, string $command,
|
|||||||
_setGeneralCommand($commandObj, $turnList);
|
_setGeneralCommand($commandObj, $turnList);
|
||||||
return [
|
return [
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
'brief'=>$commandObj->getBrief(),
|
|
||||||
'reason'=>'success'
|
'reason'=>'success'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -475,7 +474,6 @@ function setNationCommand(int $generalID, array $turnList, string $command, ?arr
|
|||||||
_setNationCommand($commandObj, $turnList);
|
_setNationCommand($commandObj, $turnList);
|
||||||
return [
|
return [
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
'brief'=>$commandObj->getBrief(),
|
|
||||||
'arg_test'=>true,
|
'arg_test'=>true,
|
||||||
'reason'=>'success'
|
'reason'=>'success'
|
||||||
];
|
];
|
||||||
|
|||||||
+8
-22
@@ -692,35 +692,21 @@ function isConsumable(?string $item) : bool{
|
|||||||
return $itemClass->isConsumable();
|
return $itemClass->isConsumable();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNPCColor(int $npc): ?string{
|
function getNameColor(int $npcType):?string{
|
||||||
if ($npc == 1) {
|
if($npcType >= 2){
|
||||||
return 'skyblue';
|
|
||||||
}
|
|
||||||
if ($npc == 4){
|
|
||||||
return 'deepskyblue';
|
|
||||||
}
|
|
||||||
if ($npc == 5){
|
|
||||||
return 'darkcyan';
|
|
||||||
}
|
|
||||||
if ($npc == 6){
|
|
||||||
return 'mediumaquamarine';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($npc > 1) {
|
|
||||||
return 'cyan';
|
return 'cyan';
|
||||||
}
|
}
|
||||||
|
if($npcType == 1){
|
||||||
|
return 'skyblue';
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
function getColoredName(string $name, int $npcType):string{
|
||||||
function formatName(string $name, int $npc): string
|
$color = getNameColor($npcType);
|
||||||
{
|
|
||||||
$color = getNPCColor($npc);
|
|
||||||
if($color === null){
|
if($color === null){
|
||||||
return $name;
|
return $name;
|
||||||
}
|
}
|
||||||
|
return "<span style='color:{$color}'>{$name}</span>";
|
||||||
return "<span style='color:{$color}'>$name</span>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ConvertLog(?string $str, $type=1) : string {
|
function ConvertLog(?string $str, $type=1) : string {
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ function postUpdateMonthly()
|
|||||||
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop_max+agri_max+comm_max+secu_max+wall_max+def_max)/100
|
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop_max+agri_max+comm_max+secu_max+wall_max+def_max)/100
|
||||||
) from city where nation=A.nation and supply=1
|
) from city where nation=A.nation and supply=1
|
||||||
))
|
))
|
||||||
+(select SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`npc` < 2 THEN 1.2 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)*2 + (SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/2)
|
+(select SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)*2 + (SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/2)
|
||||||
FROM general AS g
|
FROM general AS g
|
||||||
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = \'killcrew_person\'
|
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = \'killcrew_person\'
|
||||||
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = \'deathcrew_person\'
|
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = \'deathcrew_person\'
|
||||||
|
|||||||
+39
-21
@@ -167,20 +167,6 @@ function commandButton(array $opts = [])
|
|||||||
$templates = new \League\Plates\Engine(__DIR__ . '/templates');
|
$templates = new \League\Plates\Engine(__DIR__ . '/templates');
|
||||||
$showSecret = false;
|
$showSecret = false;
|
||||||
$permission = checkSecretPermission($me);
|
$permission = checkSecretPermission($me);
|
||||||
$btnClassForTournament = $opts['btnClass'];
|
|
||||||
if ($opts['isTournamentApplicationOpen']) {
|
|
||||||
if ($btnClassForTournament != 'dropdown-item') {
|
|
||||||
$btnClassForTournament = 'toolbarButton2';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$btnClassForBetting = $opts['btnClass'];
|
|
||||||
if ($opts['isBettingActive']) {
|
|
||||||
if ($btnClassForTournament != 'dropdown-item') {
|
|
||||||
$btnClassForBetting = 'toolbarButton2';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($permission >= 1) {
|
if ($permission >= 1) {
|
||||||
$showSecret = true;
|
$showSecret = true;
|
||||||
} else if ($me['officer_level'] == 0) {
|
} else if ($me['officer_level'] == 0) {
|
||||||
@@ -194,8 +180,6 @@ function commandButton(array $opts = [])
|
|||||||
'nationLevel' => $nation['level'],
|
'nationLevel' => $nation['level'],
|
||||||
'showSecret' => $showSecret,
|
'showSecret' => $showSecret,
|
||||||
'permission' => $permission,
|
'permission' => $permission,
|
||||||
'btnClassForTournament' => $btnClassForTournament,
|
|
||||||
'btnClassForBetting' => $btnClassForBetting,
|
|
||||||
], $opts));
|
], $opts));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,23 +215,57 @@ function formatLeadershipBonus(int $value): string
|
|||||||
return "<font color=cyan>+{$value}</font>";
|
return "<font color=cyan>+{$value}</font>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNPCColor(int $npc): ?string{
|
||||||
|
if ($npc == 1) {
|
||||||
|
return 'skyblue';
|
||||||
|
}
|
||||||
|
if ($npc == 4){
|
||||||
|
return 'deepskyblue';
|
||||||
|
}
|
||||||
|
if ($npc == 5){
|
||||||
|
return 'darkcyan';
|
||||||
|
}
|
||||||
|
if ($npc == 6){
|
||||||
|
return 'mediumaquamarine';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($npc > 1) {
|
||||||
|
return 'cyan';
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatName(string $name, int $npc): string
|
||||||
|
{
|
||||||
|
$color = getNPCColor($npc);
|
||||||
|
if($color === null){
|
||||||
|
return $name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "<span style='color:{$color}'>$name</span>";
|
||||||
|
}
|
||||||
|
|
||||||
function getMapTheme(): string
|
function getMapTheme(): string
|
||||||
{
|
{
|
||||||
return GameConst::$mapName;
|
$db = DB::db();
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
$mapTheme = $gameStor->map_theme ?? 'che';
|
||||||
|
return $mapTheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMapHtml(?string $mapName = null)
|
function getMapHtml(?string $mapTheme = null)
|
||||||
{
|
{
|
||||||
$templates = new \League\Plates\Engine(__DIR__ . '/templates');
|
$templates = new \League\Plates\Engine(__DIR__ . '/templates');
|
||||||
|
|
||||||
if($mapName === null){
|
if ($mapTheme === null) {
|
||||||
$mapName = GameConst::$mapName;
|
$db = DB::db();
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
$mapTheme = $gameStor->map_theme ?? 'che';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $templates->render('map', [
|
return $templates->render('map', [
|
||||||
'mapName' => $mapName
|
'mapTheme' => $mapTheme
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ function processSpring() {
|
|||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
|
//인구 증가
|
||||||
|
popIncrease();
|
||||||
// 1월엔 무조건 내정 1% 감소
|
// 1월엔 무조건 내정 1% 감소
|
||||||
$db->update('city',[
|
$db->update('city',[
|
||||||
'dead'=>0,
|
'dead'=>0,
|
||||||
@@ -20,9 +22,6 @@ function processSpring() {
|
|||||||
'wall'=>$db->sqleval('wall * 0.99'),
|
'wall'=>$db->sqleval('wall * 0.99'),
|
||||||
],true);
|
],true);
|
||||||
|
|
||||||
//인구 증가
|
|
||||||
popIncrease();
|
|
||||||
|
|
||||||
// > 10000 유지비 3%, > 1000 유지비 1%
|
// > 10000 유지비 3%, > 1000 유지비 1%
|
||||||
// 유지비 1%
|
// 유지비 1%
|
||||||
$db->update('general', [
|
$db->update('general', [
|
||||||
@@ -291,6 +290,9 @@ function getWarGoldIncome(string $nationType, array $cityList){
|
|||||||
function processFall() {
|
function processFall() {
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
|
//인구 증가
|
||||||
|
popIncrease();
|
||||||
|
|
||||||
// 7월엔 무조건 내정 1% 감소
|
// 7월엔 무조건 내정 1% 감소
|
||||||
$db->update('city',[
|
$db->update('city',[
|
||||||
'dead'=>0,
|
'dead'=>0,
|
||||||
@@ -301,8 +303,6 @@ function processFall() {
|
|||||||
'wall'=>$db->sqleval('wall * 0.99'),
|
'wall'=>$db->sqleval('wall * 0.99'),
|
||||||
],true);
|
],true);
|
||||||
|
|
||||||
//인구 증가
|
|
||||||
popIncrease();
|
|
||||||
|
|
||||||
// > 10000 유지비 3%, > 1000 유지비 1%
|
// > 10000 유지비 3%, > 1000 유지비 1%
|
||||||
// 유지비 1%
|
// 유지비 1%
|
||||||
|
|||||||
+15
-34
@@ -47,7 +47,7 @@ if ($me['newmsg'] == 1 || $me['newvote'] == 1) {
|
|||||||
], 'owner=%i', $userID);
|
], 'owner=%i', $userID);
|
||||||
}
|
}
|
||||||
|
|
||||||
$plock = boolval($db->queryFirstField('SELECT plock FROM plock LIMIT 1'));
|
$plock = $db->queryFirstField('SELECT plock FROM plock LIMIT 1');
|
||||||
|
|
||||||
$con = checkLimit($me['con']);
|
$con = checkLimit($me['con']);
|
||||||
if ($con >= 2) {
|
if ($con >= 2) {
|
||||||
@@ -83,13 +83,11 @@ if ($gameStor->npcmode == 0) {
|
|||||||
$npcmode = "선택 생성";
|
$npcmode = "선택 생성";
|
||||||
}
|
}
|
||||||
$color = "cyan";
|
$color = "cyan";
|
||||||
|
$mapTheme = $gameStor->map_theme;
|
||||||
$serverName = UniqueConst::$serverName;
|
$serverName = UniqueConst::$serverName;
|
||||||
$serverCnt = $gameStor->server_cnt;
|
$serverCnt = $gameStor->server_cnt;
|
||||||
|
|
||||||
$auctionCount = $db->queryFirstField('SELECT count(`no`) FROM auction');
|
$auctionCount = $db->queryFirstField('SELECT count(`no`) FROM auction');
|
||||||
$isTournamentActive = $gameStor->tournament > 0;
|
|
||||||
$isTournamentApplicationOpen = $gameStor->tournament == 1;
|
|
||||||
$isBettingActive = $gameStor->tournament == 6;
|
|
||||||
|
|
||||||
$myNationStatic = getNationStaticInfo($generalObj->getNationID());
|
$myNationStatic = getNationStaticInfo($generalObj->getNationID());
|
||||||
$nationColorType = substr($myNationStatic['color'] ?? '#000000', 1);
|
$nationColorType = substr($myNationStatic['color'] ?? '#000000', 1);
|
||||||
@@ -125,34 +123,13 @@ if (!$otherTextInfo) {
|
|||||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css" />
|
||||||
<?= WebUtil::printCSS('css/map.css') ?>
|
<?= WebUtil::printCSS('css/map.css') ?>
|
||||||
<?= WebUtil::printStaticValues([
|
<?= WebUtil::printStaticValues([
|
||||||
//deprecated, staticValues를 이용할 것
|
|
||||||
'serverName' => $serverName,
|
|
||||||
'serverCnt' => $serverCnt,
|
|
||||||
'serverNick' => DB::prefix(),
|
|
||||||
'serverID' => UniqueConst::$serverID,
|
|
||||||
'maxTurn' => GameConst::$maxTurn,
|
|
||||||
'maxPushTurn' => 12,
|
|
||||||
'serverNow' => TimeUtil::now(false),
|
|
||||||
'lastExecuted' => $gameStor->turntime,
|
|
||||||
'isLocked' => $plock,
|
|
||||||
'isTournamentActive' => $isTournamentActive,
|
|
||||||
'isBettingActive' => $isBettingActive,
|
|
||||||
'staticValues' => [
|
|
||||||
'serverName' => $serverName,
|
|
||||||
'serverCnt' => $serverCnt,
|
|
||||||
'serverNick' => DB::prefix(),
|
'serverNick' => DB::prefix(),
|
||||||
'serverID' => UniqueConst::$serverID,
|
'serverID' => UniqueConst::$serverID,
|
||||||
'maxTurn' => GameConst::$maxTurn,
|
'maxTurn' => GameConst::$maxTurn,
|
||||||
'maxPushTurn' => 12,
|
'maxPushTurn' => 12,
|
||||||
'commandList' => getCommandTable($generalObj),
|
'commandList' => getCommandTable($generalObj),
|
||||||
'serverNow' => TimeUtil::now(false),
|
'serverNow' => TimeUtil::now(false),
|
||||||
'lastExecuted' => $gameStor->turntime,
|
'baseColor2' => GameConst::$basecolor2,
|
||||||
'isLocked' => $plock,
|
|
||||||
'isTournamentActive' => $isTournamentActive,
|
|
||||||
'isBettingActive' => $isBettingActive,
|
|
||||||
'mapName' => GameConst::$mapName,
|
|
||||||
'unitSet' => GameConst::$unitSet,
|
|
||||||
]
|
|
||||||
]) ?>
|
]) ?>
|
||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
|
||||||
</head>
|
</head>
|
||||||
@@ -188,15 +165,19 @@ if (!$otherTextInfo) {
|
|||||||
<div class="s-border-t col py-2 col-4 col-md-2">전체 접속자 수 : <?= $gameStor->online_user_cnt ?> 명</div>
|
<div class="s-border-t col py-2 col-4 col-md-2">전체 접속자 수 : <?= $gameStor->online_user_cnt ?> 명</div>
|
||||||
<div class="s-border-t col py-2 col-4 col-md-2">턴당 갱신횟수 : <?= $gameStor->conlimit ?>회</div>
|
<div class="s-border-t col py-2 col-4 col-md-2">턴당 갱신횟수 : <?= $gameStor->conlimit ?>회</div>
|
||||||
<div class="s-border-t col py-2 col-8 col-md-4"><?= info(3) ?></div>
|
<div class="s-border-t col py-2 col-8 col-md-4"><?= info(3) ?></div>
|
||||||
<div class="s-border-t py-2 col col-6 col-md-4">
|
<div class="s-border-t py-2 col col-6 col-md-4"><?php if ($gameStor->tournament == 0) : ?>
|
||||||
<?php if ($isTournamentActive) : ?>
|
|
||||||
↑<span style='color:cyan'><?=(['전력전', '통솔전', '일기토', '설전',])[$gameStor->tnmt_type] ?? '' ?> <?= getTournament($gameStor->tournament) ?> <?= getTournamentTime() ?></span>↑
|
|
||||||
<?php else : ?>
|
|
||||||
<span style='color:magenta'>현재 토너먼트 경기 없음</span>
|
<span style='color:magenta'>현재 토너먼트 경기 없음</span>
|
||||||
|
<?php else : ?>
|
||||||
|
↑<span style='color:cyan'><?=
|
||||||
|
([
|
||||||
|
'전력전', '통솔전', '일기토', '설전',
|
||||||
|
])[$gameStor->tnmt_type] ?? '' ?> <?= getTournament($gameStor->tournament) ?> <?= getTournamentTime() ?></span>↑
|
||||||
|
|
||||||
|
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="s-border-t py-2 col col-6 col-md-2">
|
<div class="s-border-t py-2 col col-6 col-md-2">
|
||||||
<div style="display:inline-block;"><?= $plock ? ("<span style='color:magenta;'>동작 시각: " . substr($gameStor->turntime, 5, 14) . "</span>") : ("<span style='color:cyan;'>동작 시각: " . substr($gameStor->turntime, 5, 14) . "</span>") ?></div>
|
<div style="display:inline-block;"><?= !$plock ? ("<span style='color:cyan;'>동작 시각: " . substr($gameStor->turntime, 5, 14) . "</span>") : ("<span style='color:magenta;'>동작 시각: " . substr($gameStor->turntime, 5, 14) . "</span>") ?></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="s-border-t py-2 col col-6 col-md-2">
|
<div class="s-border-t py-2 col col-6 col-md-2">
|
||||||
<?php if ($auctionCount > 0) : ?>
|
<?php if ($auctionCount > 0) : ?>
|
||||||
@@ -256,7 +237,7 @@ if (!$otherTextInfo) {
|
|||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<div id="map_view" class="gx-0">
|
<div id="map_view" class="gx-0">
|
||||||
<div id="mapZone" class="view-item"><?= getMapHtml() ?></div>
|
<div id="mapZone" class="view-item"><?= getMapHtml($mapTheme) ?></div>
|
||||||
<div class="view-item" id="reservedCommandZone">
|
<div class="view-item" id="reservedCommandZone">
|
||||||
<div id="reservedCommandList"></div>
|
<div id="reservedCommandList"></div>
|
||||||
<div id="actionMiniPlate" class="gx-0 row">
|
<div id="actionMiniPlate" class="gx-0 row">
|
||||||
@@ -272,7 +253,7 @@ if (!$otherTextInfo) {
|
|||||||
<div id="nation-position"><?php myNationInfo($generalObj); ?></div>
|
<div id="nation-position"><?php myNationInfo($generalObj); ?></div>
|
||||||
<div id="general-position"><?php generalInfo($generalObj); ?></div>
|
<div id="general-position"><?php generalInfo($generalObj); ?></div>
|
||||||
<div id="generalCommandButton" class="row gx-0">
|
<div id="generalCommandButton" class="row gx-0">
|
||||||
<div class="buttonPlate bg2"><?= commandButton(['btnClass' => 'btn btn-sammo-nation', 'isTournamentApplicationOpen' => $isTournamentApplicationOpen, 'isBettingActive' => $isBettingActive]) ?></div>
|
<div class="buttonPlate bg2"><?= commandButton(['btnClass' => 'btn btn-sammo-nation']) ?></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -372,7 +353,7 @@ if (!$otherTextInfo) {
|
|||||||
국가 메뉴
|
국가 메뉴
|
||||||
</div>
|
</div>
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarNation" id="navbarNationItems">
|
<ul class="dropdown-menu" aria-labelledby="navbarNation" id="navbarNationItems">
|
||||||
<?= commandButton(['btnBegin' => '<li>', 'btnEnd' => '</li>', 'btnClass' => 'dropdown-item', 'isTournamentApplicationOpen' => $isTournamentApplicationOpen, 'isBettingActive' => $isBettingActive]) ?>
|
<?= commandButton(['btnBegin' => '<li>', 'btnEnd' => '</li>', 'btnClass' => 'dropdown-item']) ?>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item dropup">
|
<li class="nav-item dropup">
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ if ($permission < 4) {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$reason = trim($reason);
|
||||||
|
|
||||||
$letter = $db->queryFirstRow('SELECT * FROM ng_diplomacy WHERE no=%i AND src_nation_id = %i AND state = \'proposed\'', $letterNo, $me['nation']);
|
$letter = $db->queryFirstRow('SELECT * FROM ng_diplomacy WHERE no=%i AND src_nation_id = %i AND state = \'proposed\'', $letterNo, $me['nation']);
|
||||||
if(!$letter){
|
if(!$letter){
|
||||||
Json::die([
|
Json::die([
|
||||||
@@ -64,7 +66,7 @@ $unlimited = new \DateTime('9999-12-31');
|
|||||||
$aux['reason'] = [
|
$aux['reason'] = [
|
||||||
'who'=>$me['no'],
|
'who'=>$me['no'],
|
||||||
'action'=>'cancelled',
|
'action'=>'cancelled',
|
||||||
'reason'=>'회수',
|
'reason'=>$reason
|
||||||
];
|
];
|
||||||
$db->update('ng_diplomacy', [
|
$db->update('ng_diplomacy', [
|
||||||
'state'=>'cancelled',
|
'state'=>'cancelled',
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
<?php
|
||||||
|
namespace sammo;
|
||||||
|
|
||||||
|
include "lib.php";
|
||||||
|
include "func.php";
|
||||||
|
|
||||||
|
|
||||||
|
//로그인 검사
|
||||||
|
$session = Session::requireLogin([]);
|
||||||
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
$withToken = Util::getPost('with_token', 'bool', false);
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
|
if($session->isGameLoggedIn()){
|
||||||
|
increaseRefresh("장수일람", 2);
|
||||||
|
|
||||||
|
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID);
|
||||||
|
$con = checkLimit($me['con']);
|
||||||
|
if ($con >= 2) {
|
||||||
|
Json::die([
|
||||||
|
'result'=>false,
|
||||||
|
'reason'=>'접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$availableNextCall = $session->availableNextCallGetGeneralList??'2000-01-01 00:00:00';
|
||||||
|
$now = new \DateTimeImmutable();
|
||||||
|
|
||||||
|
if($now <= new \DateTimeImmutable($availableNextCall) && $session->userGrade < 5){
|
||||||
|
Json::die([
|
||||||
|
'result'=>false,
|
||||||
|
'reason'=>"장수 리스트는 10초에 한번 갱신 가능합니다.\n다음 시간 : ".$availableNextCall
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$availableNextCall = $now->add(new \DateInterval('PT10S'))->format('Y-m-d H:i:s');
|
||||||
|
$session->availableNextCallGetGeneralList = $availableNextCall;
|
||||||
|
}
|
||||||
|
|
||||||
|
$session->setReadOnly();
|
||||||
|
|
||||||
|
$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,owner_name as ownerName,injury,leadership,strength,intel,experience,dedication,officer_level,killturn,connect from general');
|
||||||
|
|
||||||
|
$ownerNameList = [];
|
||||||
|
if($gameStor->isunited){
|
||||||
|
foreach(RootDB::db()->queryAllLists('SELECT no, name FROM member') as [$ownerID, $ownerName]){
|
||||||
|
$ownerNameList[$ownerID] = $ownerName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$generalList = [];
|
||||||
|
foreach($rawGeneralList as $rawGeneral){
|
||||||
|
[$owner,$no,$picture,$imgsvr,$npc,$age,$nation,$special,$special2,$personal,$name,$ownerName,$injury,$leadership,$strength,$intel,$experience,$dedication,$officerLevel,$killturn,$connectCnt] = $rawGeneral;
|
||||||
|
|
||||||
|
if(key_exists($owner, $ownerNameList)){
|
||||||
|
$ownerName = $ownerNameList[$owner];
|
||||||
|
}
|
||||||
|
|
||||||
|
$nationArr = getNationStaticInfo($nation);
|
||||||
|
$lbonus = calcLeadershipBonus($officerLevel, $nationArr['level']);
|
||||||
|
|
||||||
|
$generalList[] = [
|
||||||
|
$no,
|
||||||
|
$picture,
|
||||||
|
$imgsvr,
|
||||||
|
$npc,
|
||||||
|
$age,
|
||||||
|
$nationArr['name'],
|
||||||
|
getGeneralSpecialDomesticName($special),
|
||||||
|
getGeneralSpecialWarName($special2),
|
||||||
|
getGenChar($personal),
|
||||||
|
$name,
|
||||||
|
$npc==1?$ownerName:null,
|
||||||
|
$injury,
|
||||||
|
$leadership,
|
||||||
|
$lbonus,
|
||||||
|
$strength,
|
||||||
|
$intel,
|
||||||
|
getExpLevel($experience),
|
||||||
|
getHonor($experience),
|
||||||
|
getDed($dedication),
|
||||||
|
getOfficerLevelText($officerLevel, $nationArr['level']),
|
||||||
|
$killturn,
|
||||||
|
$connectCnt
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = [
|
||||||
|
'result'=>'true',
|
||||||
|
'list'=>$generalList,
|
||||||
|
];
|
||||||
|
|
||||||
|
if($withToken){
|
||||||
|
$now = (new \DateTimeImmutable())->format('Y-m-d H:i:s');
|
||||||
|
$tokens = [];
|
||||||
|
foreach($db->query('SELECT * FROM select_npc_token WHERE `valid_until`>=%s', $now) as $token){
|
||||||
|
$validUntil = $token['valid_until'];
|
||||||
|
|
||||||
|
foreach(Json::decode($token['pick_result']) as $pickResult){
|
||||||
|
$tokens[$pickResult['no']]=$pickResult['keepCnt'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$result['token'] = $tokens;
|
||||||
|
}
|
||||||
|
|
||||||
|
Json::die($result);
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace sammo;
|
||||||
|
|
||||||
|
//통합 세력장수&암행부 viewer
|
||||||
|
|
||||||
|
include "lib.php";
|
||||||
|
include "func.php";
|
||||||
|
|
||||||
|
//로그인 검사
|
||||||
|
$session = Session::requireGameLogin([])->setReadOnly();
|
||||||
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
$reqType = Util::getReq('req', 'int', 1);
|
||||||
|
$reqForce = Util::getReq('force', 'bool', false);
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
|
increaseRefresh("세력장수", 1);
|
||||||
|
|
||||||
|
$me = $db->queryFirstRow('SELECT con, turntime, belong, nation, officer_level, permission, penalty FROM general WHERE owner=%i', $userID);
|
||||||
|
$con = checkLimit($me['con']);
|
||||||
|
if ($con >= 2) {
|
||||||
|
Json::die([
|
||||||
|
'result' => false,
|
||||||
|
'reason' => '접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$nationID = $me['nation'];
|
||||||
|
$permission = checkSecretPermission($me, true);
|
||||||
|
if ($reqForce && $reqType > $permission) {
|
||||||
|
Json::die([
|
||||||
|
'result' => false,
|
||||||
|
'reason' => '권한이 부족합니다.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$permission = min($reqType, $permission);
|
||||||
|
$nationArr = getNationStaticInfo($nationID);
|
||||||
|
$viewColumns = [
|
||||||
|
'no' => 0,
|
||||||
|
'name' => 0,
|
||||||
|
'owner_name' => 9,
|
||||||
|
'nation' => 0,
|
||||||
|
'city' => 1,
|
||||||
|
'officer_level' => 2,
|
||||||
|
'officer_city' => 2,
|
||||||
|
'npc' => 0,
|
||||||
|
'defence_train' => 2,
|
||||||
|
'troop' => 2,
|
||||||
|
'injury' => 0,
|
||||||
|
'leadership' => 0,
|
||||||
|
'strength' => 0,
|
||||||
|
'intel' => 0,
|
||||||
|
'experience' => 1,
|
||||||
|
'explevel' => 0,
|
||||||
|
'dedication' => 1,
|
||||||
|
'dedlevel' => 0,
|
||||||
|
'gold' => 0,
|
||||||
|
'rice' => 0,
|
||||||
|
'crewtype' => 2,
|
||||||
|
'crew' => 2,
|
||||||
|
'train' => 2,
|
||||||
|
'atmos' => 2,
|
||||||
|
'killturn' => 0,
|
||||||
|
'turntime' => 2,
|
||||||
|
'picture' => 0,
|
||||||
|
'imgsvr' => 0,
|
||||||
|
'age' => 0,
|
||||||
|
'special' => 0,
|
||||||
|
'special2' => 0,
|
||||||
|
'personal' => 0,
|
||||||
|
'belong' => 0,
|
||||||
|
'horse' => 2,
|
||||||
|
'weapon' => 2,
|
||||||
|
'book' => 2,
|
||||||
|
'item' => 2,
|
||||||
|
'connect' => 0
|
||||||
|
];
|
||||||
|
|
||||||
|
$customViewColumns = [
|
||||||
|
'officerLevel' => 0,
|
||||||
|
'officerLevelText' => 0,
|
||||||
|
'lbonus' => 0,
|
||||||
|
'ownerName' => 0,
|
||||||
|
'honorText' => 0
|
||||||
|
];
|
||||||
|
|
||||||
|
function getOfficerLevel($rawGeneral)
|
||||||
|
{
|
||||||
|
global $permission;
|
||||||
|
$level = $rawGeneral['officer_level'];
|
||||||
|
if ($level >= 5) {
|
||||||
|
return $level;
|
||||||
|
}
|
||||||
|
if ($permission > 1) {
|
||||||
|
return $level;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$specialViewFilter = [
|
||||||
|
'officerLevel' => function ($rawGeneral){
|
||||||
|
return getOfficerLevel($rawGeneral);
|
||||||
|
},
|
||||||
|
'special' => function ($rawGeneral) {
|
||||||
|
return getGeneralSpecialDomesticName($rawGeneral['special']);
|
||||||
|
},
|
||||||
|
'special2' => function ($rawGeneral) {
|
||||||
|
return getGeneralSpecialWarName($rawGeneral['special2']);
|
||||||
|
},
|
||||||
|
'personal' => function ($rawGeneral) {
|
||||||
|
return getGenChar($rawGeneral['personal']);
|
||||||
|
},
|
||||||
|
'lbonus' => function ($rawGeneral) use ($nationArr) {
|
||||||
|
return calcLeadershipBonus($rawGeneral['officer_level'], $nationArr['level']);
|
||||||
|
},
|
||||||
|
'ownerName' => function ($rawGeneral) {
|
||||||
|
if ($rawGeneral['npc'] != 1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return $rawGeneral['owner_name'];
|
||||||
|
},
|
||||||
|
'officerLevelText' => function ($rawGeneral) use ($nationArr) {
|
||||||
|
$level = getOfficerLevel($rawGeneral);
|
||||||
|
return getOfficerLevelText($level, $nationArr['level']);
|
||||||
|
},
|
||||||
|
'honorText' => function ($rawGeneral) {
|
||||||
|
return getHonor($rawGeneral['experience']);
|
||||||
|
},
|
||||||
|
'dedLevelText' => function ($rawGeneral) {
|
||||||
|
return getDedLevelText($rawGeneral['dedLevel']);
|
||||||
|
},
|
||||||
|
'turntime' => function ($rawGeneral) {
|
||||||
|
//'0000-00-00 11:23';
|
||||||
|
return substr($rawGeneral['turntime'], 11, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
[$queryColumns, $rankColumns] = General::mergeQueryColumn(array_keys($viewColumns), 1);
|
||||||
|
|
||||||
|
$rawGeneralList = Util::convertArrayToDict($db->query('SELECT %l from general WHERE nation = %i', Util::formatListOfBackticks($queryColumns), $nationID), 'no');
|
||||||
|
|
||||||
|
$resultColumns = [];
|
||||||
|
foreach ($viewColumns as $column => $reqPermission) {
|
||||||
|
if ($reqPermission > $permission) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$resultColumns[] = $column;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($customViewColumns as $column => $reqPermission) {
|
||||||
|
if ($reqPermission > $permission) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$resultColumns[] = $column;
|
||||||
|
}
|
||||||
|
|
||||||
|
$generalList = [];
|
||||||
|
foreach ($rawGeneralList as $rawGeneral) {
|
||||||
|
//General 생성?
|
||||||
|
|
||||||
|
$item = [];
|
||||||
|
foreach ($resultColumns as $column) {
|
||||||
|
if (key_exists($column, $specialViewFilter)) {
|
||||||
|
$value = $specialViewFilter[$column]($rawGeneral);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$value = $rawGeneral[$column];
|
||||||
|
}
|
||||||
|
$item[] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$generalList[] = $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = [
|
||||||
|
'result' => true,
|
||||||
|
'column' => $resultColumns,
|
||||||
|
'list' => $generalList,
|
||||||
|
];
|
||||||
|
|
||||||
|
Json::die($result);
|
||||||
+14
-7
@@ -31,11 +31,16 @@ $now = time();
|
|||||||
if($mapInfo && ($now - $mapInfo['timestamp'] < 600)){
|
if($mapInfo && ($now - $mapInfo['timestamp'] < 600)){
|
||||||
$mapEtag = $mapInfo['etag'];
|
$mapEtag = $mapInfo['etag'];
|
||||||
$mapModified = $mapInfo['timestamp'];
|
$mapModified = $mapInfo['timestamp'];
|
||||||
WebUtil::setCacheHeader(new APICacheResult(TimeUtil::secondsToDateTime($mapModified), $mapEtag));
|
|
||||||
$reqMapEtag = WebUtil::parseETag();
|
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $mapModified)." GMT");
|
||||||
$reqModifiedSince = WebUtil::parseLastModified();
|
header("Etag: $mapEtag");
|
||||||
if($mapEtag === $reqMapEtag || $mapModified === $reqModifiedSince){
|
|
||||||
WebUtil::dieWithNotModified();
|
if (
|
||||||
|
strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']??'2000-01-01') === $mapModified ||
|
||||||
|
trim($_SERVER['HTTP_IF_NONE_MATCH']??'') === $mapEtag
|
||||||
|
) {
|
||||||
|
header("HTTP/1.1 304 Not Modified");
|
||||||
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
Json::die($mapInfo['data'], 0);
|
Json::die($mapInfo['data'], 0);
|
||||||
@@ -60,9 +65,10 @@ $rawMap = getWorldMap([
|
|||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
$mapTheme = $gameStor->map_theme ?? 'che';
|
||||||
|
|
||||||
$rawMap['history'] = $history;
|
$rawMap['history'] = $history;
|
||||||
$rawMap['theme'] = GameConst::$mapName;
|
$rawMap['theme'] = $mapTheme;
|
||||||
|
|
||||||
$etag = hash('sha256', $serverID.$now);
|
$etag = hash('sha256', $serverID.$now);
|
||||||
$map = [
|
$map = [
|
||||||
@@ -71,6 +77,7 @@ $map = [
|
|||||||
'data'=>$rawMap,
|
'data'=>$rawMap,
|
||||||
];
|
];
|
||||||
$cache->save("recent_map", $map);
|
$cache->save("recent_map", $map);
|
||||||
WebUtil::setCacheHeader(new APICacheResult(TimeUtil::secondsToDateTime($now), $etag));
|
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $now)." GMT");
|
||||||
|
header("Etag: $etag");
|
||||||
|
|
||||||
Json::die($map['data'], 0);
|
Json::die($map['data'], 0);
|
||||||
@@ -241,7 +241,7 @@ function do추방(General $general, int $myOfficerLevel):?string{
|
|||||||
}
|
}
|
||||||
$general->setVar('troop', 0);
|
$general->setVar('troop', 0);
|
||||||
|
|
||||||
if($general->getNPCType() >= 2 && Util::randBool(GameConst::$npcBanMessageProb)) {
|
if($general->getNPCType() >= 2 && ($env['scenario'] < 100 || Util::randBool(0.01))) {
|
||||||
|
|
||||||
$str = Util::choiceRandom([
|
$str = Util::choiceRandom([
|
||||||
'날 버리다니... 곧 전장에서 복수해주겠다...',
|
'날 버리다니... 곧 전장에서 복수해주겠다...',
|
||||||
|
|||||||
@@ -16,10 +16,8 @@ include "func.php";
|
|||||||
<title>최근 지도</title>
|
<title>최근 지도</title>
|
||||||
<?= WebUtil::printJS('../d_shared/common_path.js') ?>
|
<?= WebUtil::printJS('../d_shared/common_path.js') ?>
|
||||||
<?= WebUtil::printStaticValues([
|
<?= WebUtil::printStaticValues([
|
||||||
'staticValues' => [
|
|
||||||
'serverNick' => DB::prefix(),
|
'serverNick' => DB::prefix(),
|
||||||
'serverID' => UniqueConst::$serverID
|
'serverID' => UniqueConst::$serverID
|
||||||
],
|
|
||||||
]) ?>
|
]) ?>
|
||||||
<?= WebUtil::printJS('d_shared/base_map.js') ?>
|
<?= WebUtil::printJS('d_shared/base_map.js') ?>
|
||||||
|
|
||||||
|
|||||||
@@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace sammo\API\Command;
|
|
||||||
|
|
||||||
use sammo\Session;
|
|
||||||
use DateTimeInterface;
|
|
||||||
use sammo\GameConst;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\Validator;
|
|
||||||
|
|
||||||
use function sammo\setGeneralCommand;
|
|
||||||
|
|
||||||
class ReserveBulkCommand extends \sammo\BaseAPI
|
|
||||||
{
|
|
||||||
public function validateArgs(): ?string
|
|
||||||
{
|
|
||||||
foreach ($this->args as $idx => $turn) {
|
|
||||||
$v = new Validator($turn);
|
|
||||||
$v->rule('required', [
|
|
||||||
'action',
|
|
||||||
'turnList'
|
|
||||||
])
|
|
||||||
->rule('lengthMin', 'action', 1)
|
|
||||||
->rule('integerArray', 'turnList');
|
|
||||||
|
|
||||||
if (!$v->validate()) {
|
|
||||||
return "{$idx}:{$v->errorStr()}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequiredSessionMode(): int
|
|
||||||
{
|
|
||||||
return static::REQ_GAME_LOGIN | static::REQ_READ_ONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
||||||
{
|
|
||||||
$briefList = [];
|
|
||||||
foreach ($this->args as $idx => $turn) {
|
|
||||||
$action = $turn['action'];
|
|
||||||
$turnList = $turn['turnList'];
|
|
||||||
$arg = $turn['arg'] ?? [];
|
|
||||||
|
|
||||||
if (!$turnList) {
|
|
||||||
return "{$idx}: 턴이 입력되지 않았습니다";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($action, Util::array_flatten(GameConst::$availableGeneralCommand))) {
|
|
||||||
return "{$idx}: 사용할 수 없는 커맨드입니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_array($arg)) {
|
|
||||||
return "{$idx}: 올바른 arg 형태가 아닙니다.";
|
|
||||||
}
|
|
||||||
$partialResult = setGeneralCommand($session->generalID, $turnList, $action, $arg);
|
|
||||||
if(!$partialResult['result']){
|
|
||||||
return [
|
|
||||||
'result' => false,
|
|
||||||
'briefList' => $briefList,
|
|
||||||
'errorIdx' => $idx,
|
|
||||||
'reason' => $partialResult['reason']
|
|
||||||
];
|
|
||||||
}
|
|
||||||
$briefList[$idx] = $partialResult['brief'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'result' => true,
|
|
||||||
'briefList' => $briefList,
|
|
||||||
'reason' => 'success'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace sammo\API\List\Nation;
|
|
||||||
|
|
||||||
use sammo\DB;
|
|
||||||
use sammo\General;
|
|
||||||
use sammo\Json;
|
|
||||||
use sammo\KVStorage;
|
|
||||||
use sammo\RootDB;
|
|
||||||
use sammo\Session;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\Validator;
|
|
||||||
|
|
||||||
use function sammo\calcLeadershipBonus;
|
|
||||||
use function sammo\checkLimit;
|
|
||||||
use function sammo\checkSecretPermission;
|
|
||||||
use function sammo\getDed;
|
|
||||||
use function sammo\getDedLevelText;
|
|
||||||
use function sammo\getExpLevel;
|
|
||||||
use function sammo\getGenChar;
|
|
||||||
use function sammo\getGeneralSpecialDomesticName;
|
|
||||||
use function sammo\getGeneralSpecialWarName;
|
|
||||||
use function sammo\getHonor;
|
|
||||||
use function sammo\getNationStaticInfo;
|
|
||||||
use function sammo\getOfficerLevelText;
|
|
||||||
use function sammo\increaseRefresh;
|
|
||||||
|
|
||||||
class GeneralList extends \sammo\BaseAPI
|
|
||||||
{
|
|
||||||
public function validateArgs(): ?string
|
|
||||||
{
|
|
||||||
$v = new Validator($this->args);
|
|
||||||
$v
|
|
||||||
->rule('boolean', 'with_token');
|
|
||||||
if (!$v->validate()) {
|
|
||||||
return $v->errorStr();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequiredSessionMode(): int
|
|
||||||
{
|
|
||||||
return static::REQ_LOGIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function launch(Session $session, ?\DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
||||||
{
|
|
||||||
$db = DB::db();
|
|
||||||
$withToken = $this->args['with_token']??false;
|
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
|
||||||
|
|
||||||
$userID = $session->userID;
|
|
||||||
if ($session->isGameLoggedIn()) {
|
|
||||||
increaseRefresh("장수일람", 2);
|
|
||||||
$me = $db->queryFirstRow('SELECT con, turntime FROM general WHERE owner=%i', $userID);
|
|
||||||
$con = checkLimit($me['con']);
|
|
||||||
if ($con >= 2) {
|
|
||||||
return '접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$availableNextCall = $session->availableNextCallGetGeneralList ?? '2000-01-01 00:00:00';
|
|
||||||
$now = new \DateTimeImmutable();
|
|
||||||
|
|
||||||
if ($now <= new \DateTimeImmutable($availableNextCall) && $session->userGrade < 5) {
|
|
||||||
return "장수 리스트는 10초에 한번 갱신 가능합니다.\n다음 시간 : " . $availableNextCall;
|
|
||||||
}
|
|
||||||
|
|
||||||
$availableNextCall = $now->add(new \DateInterval('PT10S'))->format('Y-m-d H:i:s');
|
|
||||||
$session->availableNextCallGetGeneralList = $availableNextCall;
|
|
||||||
}
|
|
||||||
|
|
||||||
$session->setReadOnly();
|
|
||||||
|
|
||||||
|
|
||||||
$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,owner_name as ownerName,injury,leadership,strength,intel,experience,dedication,officer_level,killturn,connect from general');
|
|
||||||
|
|
||||||
$ownerNameList = [];
|
|
||||||
if ($gameStor->isunited) {
|
|
||||||
foreach (RootDB::db()->queryAllLists('SELECT no, name FROM member') as [$ownerID, $ownerName]) {
|
|
||||||
$ownerNameList[$ownerID] = $ownerName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$generalList = [];
|
|
||||||
foreach ($rawGeneralList as $rawGeneral) {
|
|
||||||
[$owner, $no, $picture, $imgsvr, $npc, $age, $nation, $special, $special2, $personal, $name, $ownerName, $injury, $leadership, $strength, $intel, $experience, $dedication, $officerLevel, $killturn, $connectCnt] = $rawGeneral;
|
|
||||||
|
|
||||||
if (key_exists($owner, $ownerNameList)) {
|
|
||||||
$ownerName = $ownerNameList[$owner];
|
|
||||||
}
|
|
||||||
|
|
||||||
$nationArr = getNationStaticInfo($nation);
|
|
||||||
$lbonus = calcLeadershipBonus($officerLevel, $nationArr['level']);
|
|
||||||
|
|
||||||
$generalList[] = [
|
|
||||||
$no,
|
|
||||||
$picture,
|
|
||||||
$imgsvr,
|
|
||||||
$npc,
|
|
||||||
$age,
|
|
||||||
$nationArr['name'],
|
|
||||||
getGeneralSpecialDomesticName($special),
|
|
||||||
getGeneralSpecialWarName($special2),
|
|
||||||
getGenChar($personal),
|
|
||||||
$name,
|
|
||||||
$npc == 1 ? $ownerName : null,
|
|
||||||
$injury,
|
|
||||||
$leadership,
|
|
||||||
$lbonus,
|
|
||||||
$strength,
|
|
||||||
$intel,
|
|
||||||
getExpLevel($experience),
|
|
||||||
getHonor($experience),
|
|
||||||
getDed($dedication),
|
|
||||||
getOfficerLevelText($officerLevel, $nationArr['level']),
|
|
||||||
$killturn,
|
|
||||||
$connectCnt
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$resultColumns = [
|
|
||||||
'no',
|
|
||||||
'picture',
|
|
||||||
'imgsvr',
|
|
||||||
'npc',
|
|
||||||
'age',
|
|
||||||
'nationName',
|
|
||||||
'special',
|
|
||||||
'special2',
|
|
||||||
'personal',
|
|
||||||
'name',
|
|
||||||
'ownerName',
|
|
||||||
'injury',
|
|
||||||
'leadership',
|
|
||||||
'lbonus',
|
|
||||||
'strength',
|
|
||||||
'intel',
|
|
||||||
'explevel',
|
|
||||||
'honorText',
|
|
||||||
'dedLevelText',
|
|
||||||
'officerLevelText',
|
|
||||||
];
|
|
||||||
|
|
||||||
$result = [
|
|
||||||
'result' => 'true',
|
|
||||||
'column' => $resultColumns,
|
|
||||||
'list' => $generalList,
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
if ($withToken) {
|
|
||||||
$now = (new \DateTimeImmutable())->format('Y-m-d H:i:s');
|
|
||||||
$tokens = [];
|
|
||||||
foreach ($db->query('SELECT * FROM select_npc_token WHERE `valid_until`>=%s', $now) as $token) {
|
|
||||||
$validUntil = $token['valid_until'];
|
|
||||||
|
|
||||||
foreach (Json::decode($token['pick_result']) as $pickResult) {
|
|
||||||
$tokens[$pickResult['no']] = $pickResult['keepCnt'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$result['token'] = $tokens;
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,325 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace sammo\API\Global;
|
|
||||||
|
|
||||||
use sammo\Session;
|
|
||||||
use DateTimeInterface;
|
|
||||||
use sammo\VersionGit;
|
|
||||||
use Nette\Caching\Cache;
|
|
||||||
use RuntimeException;
|
|
||||||
use sammo\APICacheResult;
|
|
||||||
use sammo\CityConst;
|
|
||||||
use sammo\GameConst;
|
|
||||||
use sammo\GameUnitConst;
|
|
||||||
use sammo\Json;
|
|
||||||
use sammo\TimeUtil;
|
|
||||||
use sammo\UniqueConst;
|
|
||||||
|
|
||||||
use function sammo\prepareDir;
|
|
||||||
|
|
||||||
class GetConst extends \sammo\BaseAPI
|
|
||||||
{
|
|
||||||
/** 반환하는 StaticValues 타입이 달라지면 +1 */
|
|
||||||
const CONST_API_VERSION = 2;
|
|
||||||
const CACHE_KEY = 'JSConst';
|
|
||||||
|
|
||||||
private ?string $cacheKey = null;
|
|
||||||
|
|
||||||
public function __construct(string $rootPath, array $args)
|
|
||||||
{
|
|
||||||
parent::__construct($rootPath, $args);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function validateArgs(): ?string
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequiredSessionMode(): int
|
|
||||||
{
|
|
||||||
return static::REQ_LOGIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function findLastModified(): ?int
|
|
||||||
{
|
|
||||||
$rawResult = explode("\n", shell_exec('git status -u -s --no-rename'));
|
|
||||||
$files = [];
|
|
||||||
foreach ($rawResult as $rawLine) {
|
|
||||||
if (strlen($rawLine) < 3) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$filePath = trim(substr($rawLine, 3));
|
|
||||||
if ($filePath[0] == '"') {
|
|
||||||
$filePath = substr($filePath, 1, strlen($filePath) - 2);
|
|
||||||
}
|
|
||||||
if (!file_exists($filePath)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$files[] = $filePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
$lastModified = null;
|
|
||||||
foreach ($files as $filePath) {
|
|
||||||
$fileModified = filemtime($filePath);
|
|
||||||
if ($fileModified === false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ($lastModified === null) {
|
|
||||||
$lastModified = $fileModified;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ($lastModified > $fileModified) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$lastModified = $fileModified;
|
|
||||||
}
|
|
||||||
if ($lastModified === null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return $lastModified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheKey(): string
|
|
||||||
{
|
|
||||||
if ($this->cacheKey !== null) {
|
|
||||||
return $this->cacheKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_subclass_of('\\sammo\\VersionGit', '\\sammo\VersionGitDynamic')) {
|
|
||||||
$lastModified = $this->findLastModified();
|
|
||||||
if ($lastModified !== null) {
|
|
||||||
$versionHash = "lt{$lastModified}";
|
|
||||||
} else {
|
|
||||||
$versionHash = VersionGit::getHash();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$versionHash = VersionGit::getHash();
|
|
||||||
}
|
|
||||||
|
|
||||||
$apiVersion = static::CONST_API_VERSION;
|
|
||||||
$serverID = UniqueConst::$serverID;
|
|
||||||
|
|
||||||
|
|
||||||
$cacheKey = "{$apiVersion}_{$serverID}_{$versionHash}";
|
|
||||||
$this->cacheKey = $cacheKey;
|
|
||||||
|
|
||||||
return $cacheKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tryCache(): ?APICacheResult
|
|
||||||
{
|
|
||||||
if (is_subclass_of('\\sammo\\VersionGit', '\\sammo\VersionGitDynamic')) {
|
|
||||||
return new APICacheResult(TimeUtil::secondsToDateTime($this->findLastModified()??\time(), true, true));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new APICacheResult(null, $this->getCacheKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function readCache(Cache $cache): null|string|array|int|float|bool
|
|
||||||
{
|
|
||||||
$rawJSONCache = $cache->load(static::CACHE_KEY);
|
|
||||||
if ($rawJSONCache === null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
$jsonCache = Json::decode($rawJSONCache);
|
|
||||||
if (!key_exists('cacheKey', $jsonCache)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$jsonCacheKey = $jsonCache['cacheKey'];
|
|
||||||
if ($jsonCacheKey !== $this->getCacheKey()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $jsonCache['data'] ?? null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function extractObjClassInfo(string $objKey, callable $callerFunction): array
|
|
||||||
{
|
|
||||||
/** @var \sammo\iAction */
|
|
||||||
$target = $callerFunction($objKey);
|
|
||||||
if (!($target instanceof \sammo\iAction)) {
|
|
||||||
throw new \RuntimeException("{$objKey}의 대상이 iAction이 아님");
|
|
||||||
}
|
|
||||||
return [
|
|
||||||
'value' => $objKey,
|
|
||||||
'name' => $target->getName(),
|
|
||||||
'info' => $target->getInfo(),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function extractObjClassInfoFromArray(array $constArray, callable $callerFunction): array
|
|
||||||
{
|
|
||||||
$result = [];
|
|
||||||
foreach ($constArray as $key => $target) {
|
|
||||||
if (is_string($target)) {
|
|
||||||
$actionInfo = $this->extractObjClassInfo($target, $callerFunction);
|
|
||||||
if (is_string($key)) {
|
|
||||||
$result[$key] = $actionInfo;
|
|
||||||
} else {
|
|
||||||
$result[$target] = $actionInfo;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (is_array($target)) {
|
|
||||||
$result[$key] = $this->extractObjClassInfoFromArray($target, $callerFunction);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(is_string($key) && is_int($target)){
|
|
||||||
//역전된 상황이다.
|
|
||||||
$result[$key] = $this->extractObjClassInfo($key, $callerFunction);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$result[$key] = $target;
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function extractObjClassInfoFromGameConst(string $gameConstKey, callable $callerFunction): array
|
|
||||||
{
|
|
||||||
$gameConstKeyList = explode(".", $gameConstKey);
|
|
||||||
$target = (GameConst::${$gameConstKeyList[0]}) ?? [];
|
|
||||||
foreach(\array_slice($gameConstKeyList, 1) as $gameConstSubKey){
|
|
||||||
$target = $target[$gameConstSubKey] ?? [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_string($target)) {
|
|
||||||
return [$target => $this->extractObjClassInfo($target, $callerFunction)];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_array($target)) {
|
|
||||||
throw new \RuntimeException("GameConst::{$gameConstKey}의 값이 {$target}임");
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->extractObjClassInfoFromArray($target, $callerFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function genConstData()
|
|
||||||
{
|
|
||||||
$gameConstKeys = [
|
|
||||||
'nationType' => [
|
|
||||||
'\sammo\buildNationTypeClass',
|
|
||||||
['availableNationType', 'neutralNationType']
|
|
||||||
],
|
|
||||||
'specialDomestic' => [
|
|
||||||
'\sammo\buildGeneralSpecialDomesticClass',
|
|
||||||
['defaultSpecialDomestic', 'availableSpecialDomestic', 'optionalSpecialDomestic']
|
|
||||||
],
|
|
||||||
'specialWar' => [
|
|
||||||
'\sammo\buildGeneralSpecialWarClass',
|
|
||||||
['defaultSpecialWar', 'availableSpecialWar', 'optionalSpecialWar']
|
|
||||||
],
|
|
||||||
'personality' => [
|
|
||||||
'\sammo\buildPersonalityClass',
|
|
||||||
['neutralPersonality', 'availablePersonality', 'optionalPersonality']
|
|
||||||
],
|
|
||||||
'item' => [
|
|
||||||
'\sammo\buildItemClass',
|
|
||||||
['allItems'],
|
|
||||||
1
|
|
||||||
],
|
|
||||||
];
|
|
||||||
//GameConst 중 BaseCommand는 시간 흐름, 장수에 따라 정보가 달라지므로 따로 처리해야함
|
|
||||||
|
|
||||||
|
|
||||||
$iActionInfo = [];
|
|
||||||
$iActionKeyMap = [];
|
|
||||||
foreach ($gameConstKeys as $mappedKey => $callerTarget) {
|
|
||||||
$flatLevel = 0;
|
|
||||||
if (is_array($callerTarget)) {
|
|
||||||
$callerFunction = $callerTarget[0];
|
|
||||||
$gameConstSubKey = $callerTarget[1];
|
|
||||||
if(count($callerTarget) > 2){
|
|
||||||
/** @var int */
|
|
||||||
$flatLevel = $callerTarget[2];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$gameConstSubKey = [$mappedKey];
|
|
||||||
$callerFunction = $callerTarget;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_callable($callerFunction)) {
|
|
||||||
throw new \RuntimeException("{$mappedKey} => {$callerFunction}이 callable이 아님");
|
|
||||||
}
|
|
||||||
|
|
||||||
$actionInfo = [];
|
|
||||||
foreach ($gameConstSubKey as $key) {
|
|
||||||
$appendInfo = $this->extractObjClassInfoFromGameConst($key, $callerFunction);
|
|
||||||
$actionInfo = array_merge($actionInfo, $appendInfo);
|
|
||||||
$iActionKeyMap[$key] = $mappedKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($flatLevel > 0){
|
|
||||||
foreach(range(0, $flatLevel - 1) as $tryFlatLevel){
|
|
||||||
$actionInfo = array_merge(...array_values($actionInfo));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$iActionInfo[$mappedKey] = $actionInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
$crewtypeMap = [];
|
|
||||||
foreach(GameUnitConst::all() as $crewtypeObj){
|
|
||||||
$crewtypeMap[$crewtypeObj->id] = [
|
|
||||||
'value'=>(string)$crewtypeObj->id,
|
|
||||||
'name'=>$crewtypeObj->name,
|
|
||||||
'info'=>$crewtypeObj->getInfo(),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
$iActionInfo['crewtype'] = $crewtypeMap;
|
|
||||||
|
|
||||||
|
|
||||||
return [
|
|
||||||
'gameConst' => get_class_vars('\sammo\GameConst'),
|
|
||||||
'gameUnitConst' => GameUnitConst::all(),
|
|
||||||
'cityConst' => CityConst::all(),
|
|
||||||
'cityConstMap' => [
|
|
||||||
'region' => CityConst::$regionMap,
|
|
||||||
'level' => CityConst::$levelMap,
|
|
||||||
],
|
|
||||||
'iActionInfo' => $iActionInfo,
|
|
||||||
'iActionKeyMap' => $iActionKeyMap,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
||||||
{
|
|
||||||
$cacheDir = $this->rootPath . '/data/file_cache';
|
|
||||||
|
|
||||||
if (!prepareDir($cacheDir)) {
|
|
||||||
throw new RuntimeException('cache 폴더 없음');
|
|
||||||
}
|
|
||||||
$storage = new \Nette\Caching\Storages\FileStorage($cacheDir);
|
|
||||||
$cache = new Cache($storage);
|
|
||||||
|
|
||||||
$currentCacheKey = $this->tryCache();
|
|
||||||
if($modifiedSince !== null && $currentCacheKey->lastModified == $modifiedSince){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if($reqEtag !== null && $currentCacheKey->etag == $reqEtag){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$constCache = $this->readCache($cache);
|
|
||||||
if ($constCache !== null) {
|
|
||||||
return [
|
|
||||||
'result' => true,
|
|
||||||
'cacheKey' => $this->getCacheKey(),
|
|
||||||
'data' => $constCache,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$constCache = $this->genConstData();
|
|
||||||
$cache->save(static::CACHE_KEY, Json::encode([
|
|
||||||
'cacheKey' => $this->getCacheKey(),
|
|
||||||
'data' => $constCache
|
|
||||||
]));
|
|
||||||
|
|
||||||
return [
|
|
||||||
'result' => true,
|
|
||||||
'cacheKey' => $this->getCacheKey(),
|
|
||||||
'data' => $constCache,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,285 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace sammo\API\Nation;
|
|
||||||
|
|
||||||
use sammo\DB;
|
|
||||||
use sammo\General;
|
|
||||||
use sammo\Session;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\Validator;
|
|
||||||
|
|
||||||
use function sammo\calcLeadershipBonus;
|
|
||||||
use function sammo\checkLimit;
|
|
||||||
use function sammo\checkSecretPermission;
|
|
||||||
use function sammo\getBillByLevel;
|
|
||||||
use function sammo\getDedLevelText;
|
|
||||||
use function sammo\getGenChar;
|
|
||||||
use function sammo\getGeneralSpecialDomesticName;
|
|
||||||
use function sammo\getGeneralSpecialWarName;
|
|
||||||
use function sammo\getHonor;
|
|
||||||
use function sammo\getNationStaticInfo;
|
|
||||||
use function sammo\getOfficerLevelText;
|
|
||||||
use function sammo\increaseRefresh;
|
|
||||||
|
|
||||||
class GeneralList extends \sammo\BaseAPI
|
|
||||||
{
|
|
||||||
private int $permission;
|
|
||||||
|
|
||||||
static $viewColumns = [
|
|
||||||
'no' => 0,
|
|
||||||
'name' => 0,
|
|
||||||
'nation' => 0,
|
|
||||||
'npc' => 0,
|
|
||||||
'injury' => 0,
|
|
||||||
'leadership' => 0,
|
|
||||||
'strength' => 0,
|
|
||||||
'intel' => 0,
|
|
||||||
'explevel' => 0,
|
|
||||||
'dedlevel' => 0,
|
|
||||||
'gold' => 0,
|
|
||||||
'rice' => 0,
|
|
||||||
'killturn' => 0,
|
|
||||||
'picture' => 0,
|
|
||||||
'imgsvr' => 0,
|
|
||||||
'age' => 0,
|
|
||||||
'special' => 0,
|
|
||||||
'special2' => 0,
|
|
||||||
'personal' => 0,
|
|
||||||
'belong' => 0,
|
|
||||||
'connect' => 0,
|
|
||||||
|
|
||||||
|
|
||||||
'city' => 1,
|
|
||||||
'experience' => 1,
|
|
||||||
'dedication' => 1,
|
|
||||||
|
|
||||||
'officer_level' => 2,
|
|
||||||
'officer_city' => 2,
|
|
||||||
'defence_train' => 2,
|
|
||||||
'troop' => 2,
|
|
||||||
'crewtype' => 2,
|
|
||||||
'crew' => 2,
|
|
||||||
'train' => 2,
|
|
||||||
'atmos' => 2,
|
|
||||||
'turntime' => 2,
|
|
||||||
'horse' => 2,
|
|
||||||
'weapon' => 2,
|
|
||||||
'book' => 2,
|
|
||||||
'item' => 2,
|
|
||||||
'recent_war' => 2,
|
|
||||||
|
|
||||||
'aux' => 2,
|
|
||||||
|
|
||||||
|
|
||||||
'owner_name' => 9,//안씀.
|
|
||||||
|
|
||||||
//RANK
|
|
||||||
'warnum' => 2,
|
|
||||||
'killnum' => 2,
|
|
||||||
'deathnum' => 2,
|
|
||||||
'killcrew' => 2,
|
|
||||||
'deathcrew' => 2,
|
|
||||||
'firenum' => 2,
|
|
||||||
];
|
|
||||||
|
|
||||||
static $columnRemap = [
|
|
||||||
'special' => 'specialDomestic',
|
|
||||||
'special2' => 'specialWar',
|
|
||||||
'aux' => null,
|
|
||||||
];
|
|
||||||
|
|
||||||
static $customViewColumns = [
|
|
||||||
'officerLevel' => 0,
|
|
||||||
'officerLevelText' => 0,
|
|
||||||
'lbonus' => 0,
|
|
||||||
'ownerName' => 0,
|
|
||||||
'honorText' => 0,
|
|
||||||
'dedLevelText' => 0,
|
|
||||||
'bill' => 0,
|
|
||||||
'reservedCommand' => 2,
|
|
||||||
|
|
||||||
'autorun_limit' => 2,
|
|
||||||
];
|
|
||||||
|
|
||||||
public function validateArgs(): ?string
|
|
||||||
{
|
|
||||||
//TODO: 장기적으로는 요청에 따라 반환해야...
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequiredSessionMode(): int
|
|
||||||
{
|
|
||||||
return static::REQ_GAME_LOGIN | static::REQ_READ_ONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getOfficerLevel($rawGeneral)
|
|
||||||
{
|
|
||||||
$level = $rawGeneral['officer_level'];
|
|
||||||
if ($level >= 5) {
|
|
||||||
return $level;
|
|
||||||
}
|
|
||||||
if ($this->permission > 1) {
|
|
||||||
return $level;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function launch(Session $session, ?\DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
||||||
{
|
|
||||||
increaseRefresh("세력장수", 1);
|
|
||||||
|
|
||||||
$db = DB::db();
|
|
||||||
|
|
||||||
$gameStor = \sammo\KVStorage::getStorage($db, 'game_env');
|
|
||||||
$env = $gameStor->getValues(['year', 'month', 'turntime', 'turnterm', 'autorun_user', 'killturn']);
|
|
||||||
|
|
||||||
$me = $db->queryFirstRow('SELECT con, turntime, belong, nation, officer_level, permission, penalty FROM general WHERE owner=%i', $session->getUserID());
|
|
||||||
$con = checkLimit($me['con']);
|
|
||||||
if ($con >= 2) {
|
|
||||||
return '접속 제한중입니다. 1턴 이내에 너무 많은 갱신을 하셨습니다.';
|
|
||||||
}
|
|
||||||
|
|
||||||
$nationID = $me['nation'];
|
|
||||||
$this->permission = checkSecretPermission($me, true);
|
|
||||||
|
|
||||||
$nationArr = getNationStaticInfo($nationID);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[$queryColumns, $rankColumns] = General::mergeQueryColumn(array_keys(static::$viewColumns), 1);
|
|
||||||
|
|
||||||
$rawGeneralList = Util::convertArrayToDict($db->query('SELECT %l from general WHERE nation = %i ORDER BY turntime ASC', Util::formatListOfBackticks($queryColumns), $nationID), 'no');
|
|
||||||
|
|
||||||
$reservedCommand = [];
|
|
||||||
if ($this->permission >= 2) {
|
|
||||||
$nonNPCGeneralIDList = [];
|
|
||||||
foreach ($rawGeneralList as $rawGeneral) {
|
|
||||||
if ($rawGeneral['npc'] < 2) {
|
|
||||||
$nonNPCGeneralIDList[] = $rawGeneral['no'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$rawTurnList = $db->query(
|
|
||||||
'SELECT general_id, turn_idx, action, arg, brief FROM general_turn WHERE general_id IN %li AND turn_idx < 5 ORDER BY general_id asc, turn_idx asc',
|
|
||||||
$nonNPCGeneralIDList
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($rawTurnList as $rawTurn) {
|
|
||||||
[
|
|
||||||
'general_id' => $generalID,
|
|
||||||
'action' => $action,
|
|
||||||
'arg' => $arg,
|
|
||||||
'brief' => $brief,
|
|
||||||
] = $rawTurn;
|
|
||||||
if (!key_exists($generalID, $reservedCommand)) {
|
|
||||||
$reservedCommand[$generalID] = [];
|
|
||||||
}
|
|
||||||
$reservedCommand[$generalID][] = [
|
|
||||||
'action' => $action,
|
|
||||||
'arg' => $arg,
|
|
||||||
'brief' => $brief
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$rankList = [];
|
|
||||||
if ($rankColumns) {
|
|
||||||
$rawRankList = $db->query('SELECT general_id, `type`, `value` FROM rank_data WHERE nation_id = %i AND `type` IN %ls', $nationID, $rankColumns);
|
|
||||||
foreach ($rawRankList as $rawRank) {
|
|
||||||
[
|
|
||||||
'general_id' => $generalID,
|
|
||||||
'type' => $type,
|
|
||||||
'value' => $value
|
|
||||||
] = $rawRank;
|
|
||||||
|
|
||||||
if (!key_exists($generalID, $rankList)) {
|
|
||||||
$rankList[$generalID] = [];
|
|
||||||
}
|
|
||||||
$rankList[$generalID][$type] = $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$getRankVar = fn ($key) => (fn ($rawGeneral) => (($rankList[$rawGeneral['no']] ?? [])[$key] ?? 0));
|
|
||||||
|
|
||||||
$specialViewFilter = [
|
|
||||||
'officerLevel' => fn ($rawGeneral) => $this->getOfficerLevel($rawGeneral),
|
|
||||||
'officerLevelText' => fn ($rawGeneral) => getOfficerLevelText($this->getOfficerLevel($rawGeneral), $nationArr['level']),
|
|
||||||
'lbonus' => fn ($rawGeneral) => calcLeadershipBonus($rawGeneral['officer_level'], $nationArr['level']),
|
|
||||||
'ownerName' => fn ($rawGeneral) => ($rawGeneral['npc'] != 1) ? null : $rawGeneral['owner_name'],
|
|
||||||
'honorText' => fn ($rawGeneral) => getHonor($rawGeneral['experience']),
|
|
||||||
'dedLevelText' => fn ($rawGeneral) => getDedLevelText($rawGeneral['dedlevel']),
|
|
||||||
//'0000-00-00 11:23';
|
|
||||||
'turntime' => fn ($rawGeneral) => substr($rawGeneral['turntime'], 0, 19),
|
|
||||||
'recent_war' => fn ($rawGeneral) => substr($rawGeneral['recent_war'], 0, 19),
|
|
||||||
'bill' => fn ($rawGeneral) => getBillByLevel($rawGeneral['dedlevel']),
|
|
||||||
'reservedCommand' => fn ($rawGeneral) => $reservedCommand[$rawGeneral['no']] ?? null,
|
|
||||||
'autorun_limit' => fn ($rawGeneral) => ($rawGeneral['aux'] ?? [])['autorun_limit'] ?? 0,
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($rankColumns as $rankKey) {
|
|
||||||
$specialViewFilter[$rankKey] = $getRankVar($rankKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$resultColumns = [];
|
|
||||||
foreach (static::$viewColumns as $column => $reqPermission) {
|
|
||||||
if ($reqPermission > $this->permission) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (key_exists($column, static::$columnRemap)) {
|
|
||||||
$newColumn = static::$columnRemap[$column];
|
|
||||||
if($newColumn !== null){
|
|
||||||
$resultColumns[$newColumn] = $column;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$resultColumns[$column] = $column;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (static::$customViewColumns as $column => $reqPermission) {
|
|
||||||
if ($reqPermission > $this->permission) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$resultColumns[$column] = $column;
|
|
||||||
}
|
|
||||||
|
|
||||||
$generalList = [];
|
|
||||||
foreach ($rawGeneralList as $rawGeneral) {
|
|
||||||
//General 생성?
|
|
||||||
if (key_exists('aux', $rawGeneral)) {
|
|
||||||
$rawGeneral['aux'] = \sammo\JSON::decode($rawGeneral['aux']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = [];
|
|
||||||
foreach ($resultColumns as $column) {
|
|
||||||
if (key_exists($column, $specialViewFilter)) {
|
|
||||||
$value = $specialViewFilter[$column]($rawGeneral);
|
|
||||||
} else {
|
|
||||||
$value = $rawGeneral[$column];
|
|
||||||
}
|
|
||||||
$item[] = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
$generalList[] = $item;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($this->permission >= 2){
|
|
||||||
$troops = $db->queryAllLists('SELECT troop_leader,name FROM troop WHERE nation = %i', $nationID);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$troops = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$result = [
|
|
||||||
'result' => true,
|
|
||||||
'permission' => $this->permission,
|
|
||||||
'column' => array_keys($resultColumns),
|
|
||||||
'list' => $generalList,
|
|
||||||
'troops' => $troops,
|
|
||||||
'env' => $env,
|
|
||||||
];
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -47,11 +47,6 @@ class SetBlockScout extends \sammo\BaseAPI
|
|||||||
return "권한이 부족합니다.";
|
return "권한이 부족합니다.";
|
||||||
}
|
}
|
||||||
|
|
||||||
$gameStor = new KVStorage($db, 'game_env');
|
|
||||||
$blockChangeScout = $gameStor->getValue('block_change_scout')??false;
|
|
||||||
if ($blockChangeScout){
|
|
||||||
return "임관 설정을 바꿀 수 없도록 설정되어 있습니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
$nationID = $me['nation'];
|
$nationID = $me['nation'];
|
||||||
|
|
||||||
|
|||||||
@@ -117,8 +117,6 @@ class GetReservedCommand extends \sammo\BaseAPI
|
|||||||
'autorun_limit' => $generalObj->getAuxVar('autorun_limit'),
|
'autorun_limit' => $generalObj->getAuxVar('autorun_limit'),
|
||||||
'officerLevel' => $me['officer_level'],
|
'officerLevel' => $me['officer_level'],
|
||||||
'commandList' => getChiefCommandTable($generalObj),
|
'commandList' => getChiefCommandTable($generalObj),
|
||||||
'mapName' => GameConst::$mapName,
|
|
||||||
'unitSet' => GameConst::$unitSet,
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace sammo\API\NationCommand;
|
|
||||||
|
|
||||||
use sammo\Session;
|
|
||||||
use DateTimeInterface;
|
|
||||||
use sammo\GameConst;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\Validator;
|
|
||||||
|
|
||||||
use function sammo\setNationCommand;
|
|
||||||
|
|
||||||
class ReserveBulkCommand extends \sammo\BaseAPI
|
|
||||||
{
|
|
||||||
public function validateArgs(): ?string
|
|
||||||
{
|
|
||||||
foreach ($this->args as $idx => $turn) {
|
|
||||||
$v = new Validator($turn);
|
|
||||||
$v->rule('required', [
|
|
||||||
'action',
|
|
||||||
'turnList'
|
|
||||||
])
|
|
||||||
->rule('lengthMin', 'action', 1)
|
|
||||||
->rule('integerArray', 'turnList');
|
|
||||||
|
|
||||||
if (!$v->validate()) {
|
|
||||||
return "{$idx}:{$v->errorStr()}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRequiredSessionMode(): int
|
|
||||||
{
|
|
||||||
return static::REQ_GAME_LOGIN | static::REQ_READ_ONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
|
|
||||||
{
|
|
||||||
$briefList = [];
|
|
||||||
foreach ($this->args as $idx => $turn) {
|
|
||||||
$action = $turn['action'];
|
|
||||||
$turnList = $turn['turnList'];
|
|
||||||
$arg = $turn['arg'] ?? [];
|
|
||||||
|
|
||||||
if (!$turnList) {
|
|
||||||
return "{$idx}: 턴이 입력되지 않았습니다";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($action, Util::array_flatten(GameConst::$availableChiefCommand))) {
|
|
||||||
return "{$idx}: 사용할 수 없는 커맨드입니다.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_array($arg)) {
|
|
||||||
return "{$idx}: 올바른 arg 형태가 아닙니다.";
|
|
||||||
}
|
|
||||||
$partialResult = setNationCommand($session->generalID, $turnList, $action, $arg);
|
|
||||||
if(!$partialResult['result']){
|
|
||||||
return [
|
|
||||||
'result' => false,
|
|
||||||
'briefList' => $briefList,
|
|
||||||
'errorIdx' => $idx,
|
|
||||||
'reason' => $partialResult['reason']
|
|
||||||
];
|
|
||||||
}
|
|
||||||
$briefList[$idx] = $partialResult['brief'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'result' => true,
|
|
||||||
'briefList' => $briefList,
|
|
||||||
'reason' => 'success'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -13,7 +13,7 @@ class che_보물_도기 extends \sammo\BaseItem
|
|||||||
|
|
||||||
protected $rawName = '도기';
|
protected $rawName = '도기';
|
||||||
protected $name = '도기(보물)';
|
protected $name = '도기(보물)';
|
||||||
protected $info = '[개인] 판매 시 장수 소지금과 국고에 금, 쌀 중 하나를 추가 (총 +10,000, 5년마다 +10,000)';
|
protected $info = '[개인] 판매 시 국고에 금, 쌀 중 하나를 추가 (+10,000, 5년마다 +10,000)';
|
||||||
protected $cost = 200;
|
protected $cost = 200;
|
||||||
protected $consumable = false;
|
protected $consumable = false;
|
||||||
|
|
||||||
@@ -44,20 +44,15 @@ class che_보물_도기 extends \sammo\BaseItem
|
|||||||
['쌀', 'rice']
|
['쌀', 'rice']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$nationId = $general->getVar('nation');
|
|
||||||
|
|
||||||
if ($nationId != 0) {
|
|
||||||
$db->update('nation', [
|
$db->update('nation', [
|
||||||
$resKey => $db->sqleval('%b + %i', $resKey, Util::toInt($score / 2))
|
$resKey => $db->sqleval('%b + %i', $resKey, $score)
|
||||||
], 'nation=%i', $nationId);
|
]);
|
||||||
}
|
|
||||||
$general->increaseVar($resKey, $score - Util::toInt($score / 2));
|
|
||||||
|
|
||||||
$score = Util::round($score);
|
$score = Util::round($score);
|
||||||
$scoreText = number_format($score, 0);
|
$scoreText = number_format($score, 0);
|
||||||
|
|
||||||
$logger = $general->getLogger();
|
$logger = $general->getLogger();
|
||||||
$logger->pushGeneralActionLog("재산과 국고에 총 {$resName} <C>{$scoreText}</>을 보충합니다.");
|
$logger->pushGeneralActionLog("국고에 {$resName} <C>{$scoreText}</>을 보충합니다.");
|
||||||
return $aux;
|
return $aux;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class che_상성보정_과실주 extends \sammo\BaseItem{
|
|||||||
|
|
||||||
protected $rawName = '과실주';
|
protected $rawName = '과실주';
|
||||||
protected $name = '과실주(상성)';
|
protected $name = '과실주(상성)';
|
||||||
protected $info = '[전투] 대등/유리한 병종 전투시 공격력 +10%, 피해 -10%';
|
protected $info = '[전투] 유리한 병종 전투시 공격력 +10%, 피해 -10%';
|
||||||
protected $cost = 200;
|
protected $cost = 200;
|
||||||
protected $consumable = false;
|
protected $consumable = false;
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ class che_상성보정_과실주 extends \sammo\BaseItem{
|
|||||||
{
|
{
|
||||||
$oppose = $unit->getOppose();
|
$oppose = $unit->getOppose();
|
||||||
$attackCoef = $unit->getCrewType()->getAttackCoef($oppose->getCrewType());
|
$attackCoef = $unit->getCrewType()->getAttackCoef($oppose->getCrewType());
|
||||||
if($attackCoef < 1){
|
if($attackCoef <= 1){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
|
|||||||
@@ -10,10 +10,4 @@ abstract class BaseNation implements iAction{
|
|||||||
protected $info = '';
|
protected $info = '';
|
||||||
static $pros = '';
|
static $pros = '';
|
||||||
static $cons = '';
|
static $cons = '';
|
||||||
|
|
||||||
public function getInfo(): string{
|
|
||||||
$pros = static::$pros;
|
|
||||||
$cons = static::$cons;
|
|
||||||
return "{$pros} {$cons}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ class Betting
|
|||||||
return Json::encode($bettingType);
|
return Json::encode($bettingType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function purifyBettingKey(array $bettingType, bool $ignoreOver = false): array
|
public function purifyBettingKey(array $bettingType): array
|
||||||
{
|
{
|
||||||
$selectCnt = $this->info->selectCnt;
|
$selectCnt = $this->info->selectCnt;
|
||||||
sort($bettingType, SORT_NUMERIC);
|
sort($bettingType, SORT_NUMERIC);
|
||||||
@@ -39,7 +39,7 @@ class Betting
|
|||||||
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(0 미만)' . print_r($bettingType, true));
|
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(0 미만)' . print_r($bettingType, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$ignoreOver && Util::array_last($bettingType) >= count($this->info->candidates)) {
|
if (Util::array_last($bettingType) >= count($this->info->candidates)) {
|
||||||
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(초과)' . print_r($bettingType, true));
|
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(초과)' . print_r($bettingType, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ class che_강행 extends Command\GeneralCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ class che_랜덤임관 extends Command\GeneralCommand
|
|||||||
if ($notIn) {
|
if ($notIn) {
|
||||||
|
|
||||||
$rawGeneralsCnt = $db->query(
|
$rawGeneralsCnt = $db->query(
|
||||||
"SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`npc` < 2 THEN 1.2 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
|
"SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
|
||||||
FROM general AS g
|
FROM general AS g
|
||||||
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
|
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
|
||||||
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
|
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
|
||||||
@@ -195,7 +195,7 @@ class che_랜덤임관 extends Command\GeneralCommand
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$rawGeneralsCnt = $db->query(
|
$rawGeneralsCnt = $db->query(
|
||||||
"SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 100)/(rb.value + 100)*(CASE WHEN g.`npc` < 2 THEN 1.2 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
|
"SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 100)/(rb.value + 100)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
|
||||||
FROM general AS g
|
FROM general AS g
|
||||||
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
|
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
|
||||||
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
|
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace sammo\Command\General;
|
|
||||||
|
|
||||||
use \sammo\{
|
|
||||||
DB, Util, JosaUtil,
|
|
||||||
General,
|
|
||||||
ActionLogger,
|
|
||||||
GameConst, GameUnitConst,
|
|
||||||
LastTurn,
|
|
||||||
Command
|
|
||||||
};
|
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
|
||||||
use \sammo\Constraint\ConstraintHelper;
|
|
||||||
|
|
||||||
use function sammo\tryRollbackInheritUniqueItem;
|
|
||||||
use function sammo\tryUniqueItemLottery;
|
|
||||||
|
|
||||||
class che_은퇴 extends Command\GeneralCommand{
|
|
||||||
static protected $actionName = '은퇴';
|
|
||||||
|
|
||||||
static protected $reqAge = 60;
|
|
||||||
|
|
||||||
protected function argTest():bool{
|
|
||||||
$this->arg = null;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function init(){
|
|
||||||
|
|
||||||
$general = $this->generalObj;
|
|
||||||
|
|
||||||
$this->setNation();
|
|
||||||
$reqAge = static::$reqAge;
|
|
||||||
|
|
||||||
$this->fullConditionConstraints=[
|
|
||||||
ConstraintHelper::ReqGeneralValue('age', '나이', '>=', $reqAge, "나이가 {$reqAge}세 이상이어야 합니다.")
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCommandDetailTitle(): string
|
|
||||||
{
|
|
||||||
$name = $this->getName();
|
|
||||||
$reqAge = static::$reqAge;
|
|
||||||
return "{$name}({$reqAge}세 이상, 2턴)";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCost():array{
|
|
||||||
return [0, 0];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPreReqTurn():int{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPostReqTurn():int{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function run():bool{
|
|
||||||
if(!$this->hasFullConditionMet()){
|
|
||||||
throw new \RuntimeException('불가능한 커맨드를 강제로 실행 시도');
|
|
||||||
}
|
|
||||||
|
|
||||||
$db = DB::db();
|
|
||||||
|
|
||||||
$general = $this->generalObj;
|
|
||||||
$date = $general->getTurnTime($general::TURNTIME_HM);
|
|
||||||
|
|
||||||
$logger = $general->getLogger();
|
|
||||||
|
|
||||||
$general->rebirth();
|
|
||||||
$logger->pushGeneralActionLog("은퇴하였습니다. <1>$date</>");
|
|
||||||
|
|
||||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
|
||||||
tryUniqueItemLottery($general);
|
|
||||||
$general->applyDB($db);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -181,6 +181,7 @@ class che_이동 extends Command\GeneralCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
||||||
|
|||||||
@@ -162,7 +162,6 @@ class che_임관 extends Command\GeneralCommand
|
|||||||
$general->setVar('officer_level', 1);
|
$general->setVar('officer_level', 1);
|
||||||
$general->setVar('officer_city', 0);
|
$general->setVar('officer_city', 0);
|
||||||
$general->setVar('belong', 1);
|
$general->setVar('belong', 1);
|
||||||
$general->setVar('troop', 0);
|
|
||||||
|
|
||||||
if ($this->destGeneralObj !== null) {
|
if ($this->destGeneralObj !== null) {
|
||||||
$general->setVar('city', $this->destGeneralObj->getCityID());
|
$general->setVar('city', $this->destGeneralObj->getCityID());
|
||||||
@@ -201,7 +200,6 @@ class che_임관 extends Command\GeneralCommand
|
|||||||
|
|
||||||
$rawNationList = Util::convertArrayToDict($db->query('SELECT nation,`name`,color,gennum,`power` FROM nation'), 'nation');
|
$rawNationList = Util::convertArrayToDict($db->query('SELECT nation,`name`,color,gennum,`power` FROM nation'), 'nation');
|
||||||
$scoutMsgs = KVStorage::getValuesFromInterNamespace($db, 'nation_env', 'scout_msg');
|
$scoutMsgs = KVStorage::getValuesFromInterNamespace($db, 'nation_env', 'scout_msg');
|
||||||
$nationList = [];
|
|
||||||
foreach ($scoutMsgs as $destNationID => $scoutMsg) {
|
foreach ($scoutMsgs as $destNationID => $scoutMsg) {
|
||||||
$rawNationList[$destNationID]['scoutmsg'] = $scoutMsg;
|
$rawNationList[$destNationID]['scoutmsg'] = $scoutMsg;
|
||||||
}
|
}
|
||||||
@@ -225,6 +223,7 @@ class che_임관 extends Command\GeneralCommand
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ use \sammo\{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use function sammo\getAllNationStaticInfo;
|
use function sammo\getAllNationStaticInfo;
|
||||||
use function \sammo\formatName;
|
use function \sammo\getColoredName;
|
||||||
use function \sammo\tryUniqueItemLottery;
|
use function \sammo\tryUniqueItemLottery;
|
||||||
use function \sammo\getInvitationList;
|
use function \sammo\getInvitationList;
|
||||||
use function \sammo\getNationStaticInfo;
|
use function \sammo\getNationStaticInfo;
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ class che_첩보 extends Command\GeneralCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ class che_출병 extends Command\GeneralCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
||||||
|
|||||||
@@ -62,7 +62,6 @@ class che_하야 extends Command\GeneralCommand{
|
|||||||
|
|
||||||
$general = $this->generalObj;
|
$general = $this->generalObj;
|
||||||
$date = $general->getTurnTime($general::TURNTIME_HM);
|
$date = $general->getTurnTime($general::TURNTIME_HM);
|
||||||
$generalID = $general->getID();
|
|
||||||
$generalName = $general->getName();
|
$generalName = $general->getName();
|
||||||
$josaYi = JosaUtil::pick($generalName, '이');
|
$josaYi = JosaUtil::pick($generalName, '이');
|
||||||
|
|
||||||
@@ -102,17 +101,6 @@ class che_하야 extends Command\GeneralCommand{
|
|||||||
$general->setVar('officer_city', 0);
|
$general->setVar('officer_city', 0);
|
||||||
$general->setVar('belong', 0);
|
$general->setVar('belong', 0);
|
||||||
$general->setVar('makelimit', 12);
|
$general->setVar('makelimit', 12);
|
||||||
|
|
||||||
//부대장일 경우
|
|
||||||
if($general->getVar('troop') == $generalID){
|
|
||||||
// 모두 탈퇴
|
|
||||||
$db->update('general', [
|
|
||||||
'troop'=>0,
|
|
||||||
], 'troop = %i', $generalID);
|
|
||||||
$db->delete('troop', 'troop_leader=%i', $generalID);
|
|
||||||
}
|
|
||||||
$general->setVar('troop', 0);
|
|
||||||
|
|
||||||
$general->increaseInheritancePoint('active_action', 1);
|
$general->increaseInheritancePoint('active_action', 1);
|
||||||
|
|
||||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||||
|
|||||||
@@ -281,7 +281,6 @@ class che_화계 extends Command\GeneralCommand
|
|||||||
|
|
||||||
$prob = GameConst::$sabotageDefaultProb + $this->calcSabotageAttackProb() - $this->calcSabotageDefenceProb($destCityGeneralList);
|
$prob = GameConst::$sabotageDefaultProb + $this->calcSabotageAttackProb() - $this->calcSabotageDefenceProb($destCityGeneralList);
|
||||||
$prob /= $dist;
|
$prob /= $dist;
|
||||||
$prob = Util::valueFit($prob, 0, 0.5);
|
|
||||||
|
|
||||||
if (!Util::randBool($prob)) {
|
if (!Util::randBool($prob)) {
|
||||||
$josaYi = JosaUtil::pick($commandName, '이');
|
$josaYi = JosaUtil::pick($commandName, '이');
|
||||||
@@ -342,6 +341,7 @@ class che_화계 extends Command\GeneralCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 3),
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ class che_급습 extends Command\NationCommand
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class che_몰수 extends Command\NationCommand
|
|||||||
);
|
);
|
||||||
$amountText = number_format($amount, 0);
|
$amountText = number_format($amount, 0);
|
||||||
|
|
||||||
if ($destGeneral->getNPCType() >= 2 && Util::randBool(GameConst::$npcSeizureMessageProb)) {
|
if ($destGeneral->getNPCType() >= 2 && Util::randBool(0.01)) {
|
||||||
$npcTexts = [
|
$npcTexts = [
|
||||||
'몰수를 하다니... 이것이 윗사람이 할 짓이란 말입니까...',
|
'몰수를 하다니... 이것이 윗사람이 할 짓이란 말입니까...',
|
||||||
'사유재산까지 몰수해가면서 이 나라가 잘 될거라 믿습니까? 정말 이해할 수가 없군요...',
|
'사유재산까지 몰수해가면서 이 나라가 잘 될거라 믿습니까? 정말 이해할 수가 없군요...',
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class che_물자원조 extends Command\NationCommand
|
|||||||
$limit = $this->nation['level'] * GameConst::$coefAidAmount;
|
$limit = $this->nation['level'] * GameConst::$coefAidAmount;
|
||||||
|
|
||||||
if ($goldAmount > $limit || $riceAmount > $limit) {
|
if ($goldAmount > $limit || $riceAmount > $limit) {
|
||||||
$this->fullConditionConstraints = [ConstraintHelper::AlwaysFail('작위 제한량 이상은 보낼 수 없습니다.')];
|
$this->fullConditionConstraints[ConstraintHelper::AlwaysFail('작위 제한량 이상은 보낼 수 없습니다.')];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,6 +291,7 @@ class che_물자원조 extends Command\NationCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'currentNationLevel' => $currentNationLevel,
|
'currentNationLevel' => $currentNationLevel,
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ class che_발령 extends Command\NationCommand
|
|||||||
$troops = Util::convertArrayToDict($db->query('SELECT * FROM troop WHERE nation=%i', $nationID), 'troop_leader');
|
$troops = Util::convertArrayToDict($db->query('SELECT * FROM troop WHERE nation=%i', $nationID), 'troop_leader');
|
||||||
$destRawGenerals = $db->queryAllLists('SELECT no,name,officer_level,npc,gold,rice,leadership,strength,intel,city,crew,train,atmos,troop FROM general WHERE nation = %i ORDER BY npc,binary(name)', $nationID);
|
$destRawGenerals = $db->queryAllLists('SELECT no,name,officer_level,npc,gold,rice,leadership,strength,intel,city,crew,train,atmos,troop FROM general WHERE nation = %i ORDER BY npc,binary(name)', $nationID);
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
'distanceList' => \sammo\JSCitiesBasedOnDistance($this->generalObj->getCityID(), 1),
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
|
|||||||
@@ -156,8 +156,11 @@ class che_백성동원 extends Command\NationCommand
|
|||||||
'wall' => $db->sqleval('GREATEST(wall_max * 0.8, wall)'),
|
'wall' => $db->sqleval('GREATEST(wall_max * 0.8, wall)'),
|
||||||
], 'city=%i', $destCityID);
|
], 'city=%i', $destCityID);
|
||||||
|
|
||||||
|
$josaYiNation = JosaUtil::pick($nationName, '이');
|
||||||
|
|
||||||
|
|
||||||
$logger->pushGeneralHistoryLog('<M>백성동원</>을 발동');
|
$logger->pushGeneralHistoryLog('<M>백성동원</>을 발동');
|
||||||
$logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>에 <M>백성동원</>을 발동");
|
$logger->pushNationalHistoryLog("<L><b>【전략】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>에 <M>백성동원</>을 하였습니다.");
|
||||||
|
|
||||||
$db->update('nation', [
|
$db->update('nation', [
|
||||||
'strategic_cmd_limit' => $this->generalObj->onCalcStrategic($this->getName(), 'globalDelay', 9)
|
'strategic_cmd_limit' => $this->generalObj->onCalcStrategic($this->getName(), 'globalDelay', 9)
|
||||||
@@ -172,6 +175,7 @@ class che_백성동원 extends Command\NationCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => new \stdClass(),
|
'distanceList' => new \stdClass(),
|
||||||
|
|||||||
@@ -101,13 +101,13 @@ class che_불가침제의 extends Command\NationCommand
|
|||||||
|
|
||||||
$nationID = $this->nation['nation'];
|
$nationID = $this->nation['nation'];
|
||||||
|
|
||||||
if ($reqMonth < $currentMonth + 6) {
|
if ($reqMonth < $currentMonth + 12) {
|
||||||
$this->permissionConstraints = [
|
$this->permissionConstraints = [
|
||||||
ConstraintHelper::AlwaysFail('기한은 6개월 이상이어야 합니다.')
|
ConstraintHelper::AlwaysFail('기한은 1년 이상이어야 합니다.')
|
||||||
];
|
];
|
||||||
|
|
||||||
$this->fullConditionConstraints = [
|
$this->fullConditionConstraints = [
|
||||||
ConstraintHelper::AlwaysFail('기한은 6개월 이상이어야 합니다.')
|
ConstraintHelper::AlwaysFail('기한은 1년 이상이어야 합니다.')
|
||||||
];
|
];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -255,6 +255,7 @@ class che_불가침제의 extends Command\NationCommand
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ class che_불가침파기제의 extends Command\NationCommand{
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ class che_선전포고 extends Command\NationCommand
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ class che_수몰 extends Command\NationCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => new \stdClass(),
|
'distanceList' => new \stdClass(),
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ class che_이호경식 extends Command\NationCommand
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -193,6 +193,7 @@ class che_종전제의 extends Command\NationCommand{
|
|||||||
$nationList[] = $nationTarget;
|
$nationList[] = $nationTarget;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class che_천도 extends Command\NationCommand
|
|||||||
[$reqGold, $reqRice] = $this->getCost();
|
[$reqGold, $reqRice] = $this->getCost();
|
||||||
|
|
||||||
if ($this->getDistance() === null) {
|
if ($this->getDistance() === null) {
|
||||||
$this->fullConditionConstraints = [ConstraintHelper::AlwaysFail('천도 대상으로 도달할 방법이 없습니다.')];
|
$this->fullConditionConstraints[ConstraintHelper::AlwaysFail('천도 대상으로 도달할 방법이 없습니다.')];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,6 +233,7 @@ class che_천도 extends Command\NationCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => new \stdClass(),
|
'distanceList' => new \stdClass(),
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ class che_초토화 extends Command\NationCommand{
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => new \stdClass(),
|
'distanceList' => new \stdClass(),
|
||||||
|
|||||||
@@ -280,6 +280,7 @@ class che_피장파장 extends Command\NationCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'nationList' => $nationList,
|
'nationList' => $nationList,
|
||||||
'startYear' => $this->env['startyear'],
|
'startYear' => $this->env['startyear'],
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ class che_허보 extends Command\NationCommand
|
|||||||
public function exportJSVars(): array
|
public function exportJSVars(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'mapTheme' => \sammo\getMapTheme(),
|
||||||
'procRes' => [
|
'procRes' => [
|
||||||
'cities' => \sammo\JSOptionsForCities(),
|
'cities' => \sammo\JSOptionsForCities(),
|
||||||
'distanceList' => new \stdClass(),
|
'distanceList' => new \stdClass(),
|
||||||
|
|||||||
@@ -16,9 +16,6 @@ class DummyGeneral extends General{
|
|||||||
'dedication'=>0,
|
'dedication'=>0,
|
||||||
'gold'=>0,
|
'gold'=>0,
|
||||||
'rice'=>0,
|
'rice'=>0,
|
||||||
'leadership'=>10,
|
|
||||||
'strength'=>10,
|
|
||||||
'intel'=>10,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
$this->raw = $raw;
|
$this->raw = $raw;
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace sammo\Event\Action;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\DB;
|
|
||||||
use sammo\KVStorage;
|
|
||||||
|
|
||||||
class BlockScoutAction extends \sammo\Event\Action{
|
|
||||||
public function __construct(private ?bool $blockChangeScout = null){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function run(array $env){
|
|
||||||
$db = DB::db();
|
|
||||||
$db->update('nation', [
|
|
||||||
'scout'=>1
|
|
||||||
], true);
|
|
||||||
if($this->blockChangeScout !== null){
|
|
||||||
$gameStor = new KVStorage($db, 'game_env');
|
|
||||||
$gameStor->setValue('block_change_scout', $this->blockChangeScout);
|
|
||||||
}
|
|
||||||
|
|
||||||
return [__CLASS__, $db->affectedRows()];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -49,20 +49,10 @@ class FinishNationBetting extends \sammo\Event\Action
|
|||||||
}
|
}
|
||||||
|
|
||||||
$winnerTypes = [];
|
$winnerTypes = [];
|
||||||
|
|
||||||
$notInBettingWinner = 0;
|
|
||||||
foreach ($winnerNations as $winnerNationID) {
|
foreach ($winnerNations as $winnerNationID) {
|
||||||
if(key_exists($winnerNationID, $nationIDMap)){
|
|
||||||
$winnerTypes[] = $nationIDMap[$winnerNationID];
|
$winnerTypes[] = $nationIDMap[$winnerNationID];
|
||||||
}
|
}
|
||||||
else{
|
$winnerTypes = $bettingHelper->purifyBettingKey($winnerTypes);
|
||||||
//혹시라도 베팅 시점 이후에 생성된 국가라 없을 수 있다.
|
|
||||||
$winnerTypes[] = count($nationIDMap) + $notInBettingWinner;
|
|
||||||
$notInBettingWinner += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$winnerTypes = $bettingHelper->purifyBettingKey($winnerTypes, $notInBettingWinner > 0);
|
|
||||||
|
|
||||||
$bettingHelper->giveReward($winnerTypes);
|
$bettingHelper->giveReward($winnerTypes);
|
||||||
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
||||||
|
|||||||
@@ -252,8 +252,6 @@ class RaiseInvader extends \sammo\Event\Action
|
|||||||
$logger->pushGlobalHistoryLog("<L><b>【이벤트】</b></>이민족의 기세는 그 누구도 막을 수 없을듯 합니다!");
|
$logger->pushGlobalHistoryLog("<L><b>【이벤트】</b></>이민족의 기세는 그 누구도 막을 수 없을듯 합니다!");
|
||||||
$logger->flush();
|
$logger->flush();
|
||||||
|
|
||||||
$gameStor->setValue('block_change_scout', false);
|
|
||||||
|
|
||||||
$db->update('plock', [
|
$db->update('plock', [
|
||||||
'plock' => 0
|
'plock' => 0
|
||||||
], true);
|
], true);
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace sammo\Event\Action;
|
|
||||||
use sammo\Util;
|
|
||||||
use sammo\DB;
|
|
||||||
use sammo\KVStorage;
|
|
||||||
|
|
||||||
class UnblockScoutAction extends \sammo\Event\Action{
|
|
||||||
public function __construct(private ?bool $blockChangeScout = null){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function run(array $env){
|
|
||||||
$db = DB::db();
|
|
||||||
$db->update('nation', [
|
|
||||||
'scout'=>0
|
|
||||||
]);
|
|
||||||
|
|
||||||
if($this->blockChangeScout !== null){
|
|
||||||
$gameStor = new KVStorage($db, 'game_env');
|
|
||||||
$gameStor->setValue('block_change_scout', $this->blockChangeScout);
|
|
||||||
}
|
|
||||||
|
|
||||||
return [__CLASS__, $db->affectedRows()];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+16
-21
@@ -275,17 +275,9 @@ class GameConstBase
|
|||||||
|
|
||||||
/** @var array 선택 가능한 커맨드 */
|
/** @var array 선택 가능한 커맨드 */
|
||||||
public static $availableGeneralCommand = [
|
public static $availableGeneralCommand = [
|
||||||
'개인' => [
|
'' => [
|
||||||
'휴식',
|
'휴식',
|
||||||
'che_요양',
|
'che_요양'
|
||||||
'che_단련',
|
|
||||||
'che_숙련전환',
|
|
||||||
'che_견문',
|
|
||||||
'che_은퇴',
|
|
||||||
'che_장비매매',
|
|
||||||
'che_군량매매',
|
|
||||||
'che_내정특기초기화',
|
|
||||||
'che_전투특기초기화',
|
|
||||||
],
|
],
|
||||||
'내정' => [
|
'내정' => [
|
||||||
'che_농지개간',
|
'che_농지개간',
|
||||||
@@ -299,32 +291,39 @@ class GameConstBase
|
|||||||
'che_물자조달',
|
'che_물자조달',
|
||||||
],
|
],
|
||||||
'군사' => [
|
'군사' => [
|
||||||
|
'che_소집해제',
|
||||||
|
'che_첩보',
|
||||||
'che_징병',
|
'che_징병',
|
||||||
'che_모병',
|
'che_모병',
|
||||||
'che_훈련',
|
'che_훈련',
|
||||||
'che_사기진작',
|
'che_사기진작',
|
||||||
'che_출병',
|
'che_출병',
|
||||||
'che_집합',
|
|
||||||
'che_소집해제',
|
|
||||||
'che_첩보',
|
|
||||||
],
|
],
|
||||||
'인사' => [
|
'인사' => [
|
||||||
'che_이동',
|
'che_이동',
|
||||||
'che_강행',
|
'che_강행',
|
||||||
'che_인재탐색',
|
'che_인재탐색',
|
||||||
'che_등용',
|
'che_등용',
|
||||||
|
'che_집합',
|
||||||
'che_귀환',
|
'che_귀환',
|
||||||
'che_임관',
|
'che_임관',
|
||||||
'che_랜덤임관',
|
'che_랜덤임관',
|
||||||
'che_장수대상임관',
|
'che_장수대상임관',
|
||||||
],
|
],
|
||||||
'계략' => [
|
'계략' => [
|
||||||
'che_선동',
|
|
||||||
'che_탈취',
|
|
||||||
'che_파괴',
|
|
||||||
'che_화계',
|
'che_화계',
|
||||||
|
'che_파괴',
|
||||||
|
'che_탈취',
|
||||||
|
'che_선동',
|
||||||
],
|
],
|
||||||
'국가' => [
|
'개인' => [
|
||||||
|
'che_내정특기초기화',
|
||||||
|
'che_전투특기초기화',
|
||||||
|
'che_단련',
|
||||||
|
'che_숙련전환',
|
||||||
|
'che_견문',
|
||||||
|
'che_장비매매',
|
||||||
|
'che_군량매매',
|
||||||
'che_증여',
|
'che_증여',
|
||||||
'che_헌납',
|
'che_헌납',
|
||||||
'che_하야',
|
'che_하야',
|
||||||
@@ -395,8 +394,4 @@ class GameConstBase
|
|||||||
'임', '정', '제', '조', '주', '준', '지', '찬', '책', '충', '탁', '택', '통', '패', '평', '포', '합', '해',
|
'임', '정', '제', '조', '주', '준', '지', '찬', '책', '충', '탁', '택', '통', '패', '평', '포', '합', '해',
|
||||||
'혁', '현', '화', '환', '회', '횡', '후', '훈', '휴', '흠', '흥'
|
'혁', '현', '화', '환', '회', '횡', '후', '훈', '휴', '흠', '흥'
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $npcBanMessageProb = 0.01;
|
|
||||||
public static $npcSeizureMessageProb = 0.01;
|
|
||||||
public static $npcMessageFreqByDay = 4;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -311,16 +311,16 @@ class GameUnitConstBase{
|
|||||||
|
|
||||||
[
|
[
|
||||||
1500, self::T_SIEGE, '정란',
|
1500, self::T_SIEGE, '정란',
|
||||||
100, 100, 6, 0, 0, 14, 5,
|
100, 100, 6, 0, 0, 15, 5,
|
||||||
0, null, null, 3,
|
0, null, null, 3,
|
||||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||||
['높은 구조물 위에서 공격합니다.'],
|
['높은 구조물 위에서 공격합니다.'],
|
||||||
['che_성벽부상무효'], null
|
['che_성벽부상무효'], null
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
1501, self::T_SIEGE, '충차',
|
1501, self::T_SIEGE, '충차',
|
||||||
150, 100, 6, 0, 0, 18, 5,
|
150, 100, 6, 0, 0, 20, 5,
|
||||||
1000, null, null, 3,
|
1000, null, null, 3,
|
||||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||||
@@ -329,16 +329,16 @@ class GameUnitConstBase{
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
1502, self::T_SIEGE, '벽력거',
|
1502, self::T_SIEGE, '벽력거',
|
||||||
200, 100, 6, 10, 0, 18, 5,
|
200, 100, 6, 10, 0, 25, 5,
|
||||||
3000, ['업'], null, 0,
|
3000, ['업'], null, 0,
|
||||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8],
|
||||||
[self::T_FOOTMAN=>0.833, self::T_ARCHER=>0.833, self::T_CAVALRY=>0.833, self::T_WIZARD=>0.833, 1106=>0.909],
|
[self::T_FOOTMAN=>0.833, self::T_ARCHER=>0.833, self::T_CAVALRY=>0.833, self::T_WIZARD=>0.833],
|
||||||
['상대에게 돌덩이를 날립니다.'],
|
['상대에게 돌덩이를 날립니다.'],
|
||||||
['che_성벽부상무효'], null
|
['che_성벽부상무효'], null
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
1503, self::T_SIEGE, '목우',
|
1503, self::T_SIEGE, '목우',
|
||||||
50, 200, 5, 0, 0, 18, 5,
|
50, 200, 5, 0, 0, 30, 5,
|
||||||
3000, ['성도'], null, 0,
|
3000, ['성도'], null, 0,
|
||||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8],
|
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8],
|
||||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||||
|
|||||||
+4
-15
@@ -2004,7 +2004,6 @@ class GeneralAI
|
|||||||
|
|
||||||
//수도와 연결된 도시 탐색
|
//수도와 연결된 도시 탐색
|
||||||
while (!$queue->isEmpty()) {
|
while (!$queue->isEmpty()) {
|
||||||
/** @var int */
|
|
||||||
$cityID = $queue->dequeue();
|
$cityID = $queue->dequeue();
|
||||||
|
|
||||||
foreach (array_keys(CityConst::byID($cityID)->path) as $nextCityID) {
|
foreach (array_keys(CityConst::byID($cityID)->path) as $nextCityID) {
|
||||||
@@ -2378,9 +2377,6 @@ class GeneralAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
$tryBuying = false;
|
$tryBuying = false;
|
||||||
if ($general->getNPCType() < 2 && $relGold >= $goldCost * 3 && $relRice >= $riceCost * 3){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if ($this->generalPolicy->can상인무시) {
|
if ($this->generalPolicy->can상인무시) {
|
||||||
if ($relRice * 1.5 < $relGold && $relRice < $riceCost * 2) {
|
if ($relRice * 1.5 < $relGold && $relRice < $riceCost * 2) {
|
||||||
$tryBuying = true;
|
$tryBuying = true;
|
||||||
@@ -3647,9 +3643,9 @@ class GeneralAI
|
|||||||
$npcType = $general->getNPCType();
|
$npcType = $general->getNPCType();
|
||||||
$nationID = $general->getNationID();
|
$nationID = $general->getNationID();
|
||||||
|
|
||||||
//특별 메세지 있는 경우 출력
|
//특별 메세지 있는 경우 출력 하루 4번
|
||||||
$term = $this->env['turnterm'];
|
$term = $this->env['turnterm'];
|
||||||
if ($general->getVar('npcmsg') && Util::randBool(GameConst::$npcMessageFreqByDay * $term / (60 * 24))) {
|
if ($general->getVar('npcmsg') && Util::randBool($term / (6 * 60))) {
|
||||||
$src = new MessageTarget(
|
$src = new MessageTarget(
|
||||||
$general->getID(),
|
$general->getID(),
|
||||||
$general->getVar('name'),
|
$general->getVar('name'),
|
||||||
@@ -4095,21 +4091,17 @@ class GeneralAI
|
|||||||
return 20;
|
return 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nationGenerals = $this->nationGenerals;
|
|
||||||
$nationGenerals[] = $this->general;
|
|
||||||
|
|
||||||
$dedicationList = array_map(function (General $general) {
|
$dedicationList = array_map(function (General $general) {
|
||||||
return $general->getRaw();
|
return $general->getRaw();
|
||||||
}, array_filter($this->nationGenerals, function (General $rawGeneral) {
|
}, array_filter($this->nationGenerals, function (General $rawGeneral) {
|
||||||
return $rawGeneral->getVar('npc') != 5;
|
return $rawGeneral->getVar('officer_level') != 5;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
$goldIncome = getGoldIncome($nation['nation'], $nation['level'], $nation['rate'], $nation['capital'], $nation['type'], $cityList);
|
$goldIncome = getGoldIncome($nation['nation'], $nation['level'], $nation['rate'], $nation['capital'], $nation['type'], $cityList);
|
||||||
$warIncome = getWarGoldIncome($nation['type'], $cityList);
|
$warIncome = getWarGoldIncome($nation['type'], $cityList);
|
||||||
$income = $goldIncome + $warIncome;
|
$income = $goldIncome + $warIncome;
|
||||||
|
|
||||||
$outcome = Util::valueFit(getOutcome(100, $dedicationList), 1);
|
$outcome = getOutcome(100, $dedicationList);
|
||||||
|
|
||||||
$bill = intval($income / $outcome * 90); // 수입의 90% 만 지급
|
$bill = intval($income / $outcome * 90); // 수입의 90% 만 지급
|
||||||
if ($nation['gold'] + $income - $outcome > $this->nationPolicy->reqNationGold * 2) {
|
if ($nation['gold'] + $income - $outcome > $this->nationPolicy->reqNationGold * 2) {
|
||||||
@@ -4142,9 +4134,6 @@ class GeneralAI
|
|||||||
return 20;
|
return 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nationGenerals = $this->nationGenerals;
|
|
||||||
$nationGenerals[] = $this->general;
|
|
||||||
|
|
||||||
$dedicationList = array_map(function (General $general) {
|
$dedicationList = array_map(function (General $general) {
|
||||||
return $general->getRaw();
|
return $general->getRaw();
|
||||||
}, array_filter($this->nationGenerals, function (General $rawGeneral) {
|
}, array_filter($this->nationGenerals, function (General $rawGeneral) {
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ class ResetHelper{
|
|||||||
'month'=> $month,
|
'month'=> $month,
|
||||||
'init_year'=> $year,
|
'init_year'=> $year,
|
||||||
'init_month'=>$month,
|
'init_month'=>$month,
|
||||||
'map_theme' => $scenarioObj->getMapTheme(), //@deprecated
|
'map_theme' => $scenarioObj->getMapTheme(),
|
||||||
'season'=>$seasonIdx,
|
'season'=>$seasonIdx,
|
||||||
'msg'=>'공지사항',//TODO:공지사항
|
'msg'=>'공지사항',//TODO:공지사항
|
||||||
'maxgeneral'=>GameConst::$defaultMaxGeneral,
|
'maxgeneral'=>GameConst::$defaultMaxGeneral,
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ class che_약탈발동 extends BaseWarUnitTrigger
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$general->increaseVarWithLimit('atmos', $selfEnv['addAtmos'], 0, GameConst::$maxAtmosByWar);
|
||||||
|
|
||||||
$opposeGeneral = $oppose->getGeneral();
|
$opposeGeneral = $oppose->getGeneral();
|
||||||
|
|
||||||
$theftGold = $opposeGeneral->getVar('gold') * $selfEnv['theftRatio'];
|
$theftGold = $opposeGeneral->getVar('gold') * $selfEnv['theftRatio'];
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
"history":[
|
"history":[
|
||||||
],
|
],
|
||||||
"const": {
|
"const": {
|
||||||
"joinRuinedNPCProp":0,
|
"joinRuinedNPCProp":0
|
||||||
"npcBanMessageProb":1
|
|
||||||
},
|
},
|
||||||
"events":[
|
"events":[
|
||||||
[
|
[
|
||||||
@@ -35,15 +34,6 @@
|
|||||||
],
|
],
|
||||||
["OpenNationBetting", 1, 1000],
|
["OpenNationBetting", 1, 1000],
|
||||||
["DeleteEvent"]
|
["DeleteEvent"]
|
||||||
],
|
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -7,8 +7,7 @@
|
|||||||
"history":[
|
"history":[
|
||||||
],
|
],
|
||||||
"const": {
|
"const": {
|
||||||
"joinRuinedNPCProp":0,
|
"joinRuinedNPCProp":0
|
||||||
"npcBanMessageProb":1
|
|
||||||
},
|
},
|
||||||
"events":[
|
"events":[
|
||||||
[
|
[
|
||||||
@@ -38,15 +37,6 @@
|
|||||||
],
|
],
|
||||||
["OpenNationBetting", 1, 1000],
|
["OpenNationBetting", 1, 1000],
|
||||||
["DeleteEvent"]
|
["DeleteEvent"]
|
||||||
],
|
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -727,14 +727,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -873,14 +873,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -798,14 +798,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -775,14 +775,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -750,15 +750,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -756,15 +756,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -763,15 +763,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -749,15 +749,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -741,15 +741,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -744,15 +744,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -741,14 +741,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -763,14 +763,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -11,8 +11,7 @@
|
|||||||
"expandCityDevelIncreaseAmount": 1350,
|
"expandCityDevelIncreaseAmount": 1350,
|
||||||
"expandCityWallIncreaseAmount": 1600,
|
"expandCityWallIncreaseAmount": 1600,
|
||||||
"defaultMaxGeneral":300,
|
"defaultMaxGeneral":300,
|
||||||
"joinRuinedNPCProp":0,
|
"joinRuinedNPCProp":0
|
||||||
"npcBanMessageProb":1
|
|
||||||
},
|
},
|
||||||
"events":[
|
"events":[
|
||||||
[
|
[
|
||||||
@@ -42,15 +41,6 @@
|
|||||||
],
|
],
|
||||||
["OpenNationBetting", 1, 1000],
|
["OpenNationBetting", 1, 1000],
|
||||||
["DeleteEvent"]
|
["DeleteEvent"]
|
||||||
],
|
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -701,14 +701,6 @@
|
|||||||
|
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -709,14 +709,6 @@
|
|||||||
|
|
||||||
],
|
],
|
||||||
"events":[
|
"events":[
|
||||||
[
|
|
||||||
"destroy_nation", 1000,
|
|
||||||
["and",
|
|
||||||
["Date", ">=", 183, 1],
|
|
||||||
["RemainNation", "==", 1]
|
|
||||||
],
|
|
||||||
["BlockScoutAction"],
|
|
||||||
["DeleteEvent"]
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user