├── .gitattributes
├── AlchemistCodeCode
├── packages.config
├── App.config
├── Network
│ ├── Requests
│ │ ├── ReqQuestParam.cs
│ │ ├── ReqMasterParam.cs
│ │ ├── ReqHome.cs
│ │ ├── ReqGacha.cs
│ │ ├── ReqAwardList.cs
│ │ ├── ReqBundleParam.cs
│ │ ├── ReqFriendList.cs
│ │ ├── ReqLoginPack.cs
│ │ ├── ReqBingoProgress.cs
│ │ ├── ReqProductParam.cs
│ │ ├── ReqGachaHistory.cs
│ │ ├── ReqSendAlterData.cs
│ │ ├── ReqSupporter.cs
│ │ ├── ReqTrophyProgress.cs
│ │ ├── ReqDebugDataReset.cs
│ │ ├── ReqHikkoshiToken.cs
│ │ ├── ReqEventShopList.cs
│ │ ├── ReqFriendFollower.cs
│ │ ├── ReqItemAddStmPaid.cs
│ │ ├── ReqTowerSupporter.cs
│ │ ├── ReqBuyGold.cs
│ │ ├── ReqItemAbilPointPaid.cs
│ │ ├── ReqItemAddBoxPaid.cs
│ │ ├── ReqItemShop.cs
│ │ ├── ReqLimitedShopList.cs
│ │ ├── ReqChatChannelMaster.cs
│ │ ├── ReqChatMessageOffical.cs
│ │ ├── ReqFriendReq.cs
│ │ ├── ReqJobRankup.cs
│ │ ├── ReqUnitUnlock.cs
│ │ ├── ReqChatChannelAutoAssign.cs
│ │ ├── ReqItemComposit.cs
│ │ ├── ReqMPVersion.cs
│ │ ├── ReqHikkoshiExec.cs
│ │ ├── ReqItemCompositAll.cs
│ │ ├── ReqFriendFavoriteAdd.cs
│ │ ├── ReqBtlComResume.cs
│ │ ├── ReqFgGAuth.cs
│ │ ├── ReqSetLanguage.cs
│ │ ├── ReqFriendFavoriteRemove.cs
│ │ ├── ReqFriendFind.cs
│ │ ├── ReqItemShopUpdate.cs
│ │ ├── ReqSetName.cs
│ │ ├── ReqTowerBtlComResume.cs
│ │ ├── ReqFriendApprove.cs
│ │ ├── ReqBtlColo.cs
│ │ ├── ReqGetSupport.cs
│ │ ├── ReqBtlColoHistory.cs
│ │ ├── ReqFriendFindByUsername.cs
│ │ ├── ReqGoogleReview.cs
│ │ ├── ReqVersusSeason.cs
│ │ ├── ReqBtlCom.cs
│ │ ├── ReqJobEquip.cs
│ │ ├── ReqItemShopBuypaid.cs
│ │ ├── ReqBtlColoReset.cs
│ │ ├── ReqVersusLine.cs
│ │ ├── ReqVersusLineMake.cs
│ │ ├── ReqItemEventShopUpdate.cs
│ │ ├── ReqReLogin.cs
│ │ ├── ReqAlterCheck.cs
│ │ ├── ReqArtifactFavorite.cs
│ │ ├── ReqSetSupport.cs
│ │ ├── ReqTutUpdate.cs
│ │ ├── ReqChatUserProfile.cs
│ │ ├── ReqAddChatBlackList.cs
│ │ ├── ReqTower.cs
│ │ ├── ReqArtifactAddRare.cs
│ │ ├── ReqPlayNew.cs
│ │ ├── ReqRemoveChatBlackList.cs
│ │ ├── ReqTowerReset.cs
│ │ ├── ReqBtlComOpen.cs
│ │ ├── ReqBtlComReset.cs
│ │ ├── ReqArtifactAdd.cs
│ │ ├── ReqShopLineup.cs
│ │ ├── ReqBtlColoRanking.cs
│ │ ├── ReqEventShopItemList.cs
│ │ ├── ReqMPRoom.cs
│ │ ├── ReqUpdateSelectAward.cs
│ │ ├── ReqGetSessionID.cs
│ │ ├── ReqLimitedShopItemList.cs
│ │ ├── ReqSendChatMessage.cs
│ │ ├── ReqSendChatStamp.cs
│ │ ├── ReqFriendReject.cs
│ │ ├── ReqFriendRemove.cs
│ │ ├── ReqLogin.cs
│ │ ├── ReqHealAp.cs
│ │ ├── ReqMultiCheat.cs
│ │ ├── ReqProductBuy.cs
│ │ ├── ReqVersusRoomUpdate.cs
│ │ ├── ReqMPRoomUpdate.cs
│ │ ├── ReqTowerReward.cs
│ │ ├── ReqItemEventShopBuypaid.cs
│ │ ├── ReqJobRankupAll.cs
│ │ ├── ReqGAuthPasscode.cs
│ │ ├── ReqMultiRank.cs
│ │ ├── ReqVersusRoomJoin.cs
│ │ ├── ReqItemLimitedShopBuypaid.cs
│ │ ├── ReqCheckFacebookID.cs
│ │ ├── ReqCheckVersion.cs
│ │ ├── ReqJobAbility.cs
│ │ ├── ReqVersusStatus.cs
│ │ ├── ReqAttachFacebookToDevice.cs
│ │ ├── ReqVersusStart.cs
│ │ ├── ReqGachaExec.cs
│ │ ├── ReqJobEquipV2.cs
│ │ ├── ReqChatMessage.cs
│ │ ├── ReqMultiPlayResume.cs
│ │ ├── ReqGetDeviceID.cs
│ │ ├── ReqVersusResume.cs
│ │ ├── ReqGAuthMigrate.cs
│ │ ├── ReqGetAccessToken.cs
│ │ ├── ReqUnitPlus.cs
│ │ ├── ReqUnitRare.cs
│ │ ├── ReqBtlComCont.cs
│ │ ├── ReqArtifactSell.cs
│ │ ├── ReqVersusMake.cs
│ │ ├── ReqArtifactConvert.cs
│ │ ├── ReqBtlComRaid.cs
│ │ ├── ReqBtlTowerComReq.cs
│ │ ├── ReqItemSell.cs
│ │ ├── ReqSendSupportEmail.cs
│ │ ├── ReqMPRoomJoin.cs
│ │ ├── ReqMPRoomMake.cs
│ │ ├── ReqTowerRecover.cs
│ │ ├── ReqGAuthMigrateFgG.cs
│ │ ├── ReqUnitExpAdd.cs
│ │ ├── ReqMigrateFacebookToDevice.cs
│ │ ├── ReqRegisterDeviceToFacebook.cs
│ │ ├── ReqBtlColoReq.cs
│ │ ├── ReqChargeCheck.cs
│ │ ├── ReqSkinSet.cs
│ │ ├── ReqTowerRank.cs
│ │ ├── ReqUnitJob.cs
│ │ ├── ReqChatBlackList.cs
│ │ ├── ReqSellPiece.cs
│ │ ├── ReqMailSelect.cs
│ │ ├── ReqArtifactEnforce.cs
│ │ ├── ReqEquipExpAdd.cs
│ │ ├── ReqVersus.cs
│ │ ├── ReqChatChannelList.cs
│ │ ├── ReqMail.cs
│ │ ├── ReqAbilityRankUp.cs
│ │ ├── ReqBtlComReq.cs
│ │ ├── ReqParty.cs
│ │ ├── ReqMailRead.cs
│ │ ├── ReqArtifactSet.cs
│ │ ├── ReqUpdateTrophy.cs
│ │ ├── ReqUpdateBingo.cs
│ │ ├── ReqVersusEnd.cs
│ │ ├── ReqBtlComEnd.cs
│ │ └── ReqTowerBtlComEnd.cs
│ ├── Networking.cs
│ └── WebAPI.cs
├── LICENSE
├── GameManager.cs
├── Properties
│ └── AssemblyInfo.cs
├── SaveFile.cs
├── Program.cs
└── AlchemistCodeCode.csproj
├── DataExtractor
├── packages.config
├── App.config
├── Wiki
│ ├── Skills.cs
│ ├── Equipments.cs
│ ├── Units.cs
│ └── Jobs.cs
├── Properties
│ └── AssemblyInfo.cs
├── Program.cs
└── DataExtractor.csproj
├── README.md
├── LICENSE
├── AlchemistCodeCode.sln
└── .gitignore
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
--------------------------------------------------------------------------------
/AlchemistCodeCode/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqQuestParam.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqQuestParam : WebAPI
7 | {
8 | public ReqQuestParam()
9 | {
10 | this.name = "mst/10/quest";
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMasterParam.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMasterParam : WebAPI
7 | {
8 | public ReqMasterParam()
9 | {
10 | this.name = "mst/10/master";
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqHome.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqHome : WebAPI
7 | {
8 | public ReqHome()
9 | {
10 | this.name = "home";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGacha.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGacha : WebAPI
7 | {
8 | public ReqGacha()
9 | {
10 | this.name = "gacha";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqAwardList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqAwardList : WebAPI
7 | {
8 | public ReqAwardList()
9 | {
10 | this.name = "award";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBundleParam.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBundleParam : WebAPI
7 | {
8 | public ReqBundleParam()
9 | {
10 | this.name = "bundle";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendList : WebAPI
7 | {
8 | public ReqFriendList()
9 | {
10 | this.name = "friend";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqLoginPack.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqLoginPack : WebAPI
7 | {
8 | public ReqLoginPack()
9 | {
10 | this.name = "login/param";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBingoProgress.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBingoProgress : WebAPI
7 | {
8 | public ReqBingoProgress()
9 | {
10 | this.name = "bingo";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqProductParam.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqProductParam : WebAPI
7 | {
8 | public ReqProductParam()
9 | {
10 | this.name = "product";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGachaHistory.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGachaHistory : WebAPI
7 | {
8 | public ReqGachaHistory()
9 | {
10 | this.name = "gacha/history";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSendAlterData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqSendAlterData : WebAPI
7 | {
8 | public ReqSendAlterData()
9 | {
10 | this.name = "master/log";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSupporter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqSupporter : WebAPI
7 | {
8 | public ReqSupporter()
9 | {
10 | this.name = "btl/com/supportlist";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTrophyProgress.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqTrophyProgress : WebAPI
7 | {
8 | public ReqTrophyProgress()
9 | {
10 | this.name = "trophy";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqDebugDataReset.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqDebugDataReset : WebAPI
7 | {
8 | public ReqDebugDataReset()
9 | {
10 | this.name = "debug/reset";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqHikkoshiToken.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqHikkoshiToken : WebAPI
7 | {
8 | public ReqHikkoshiToken()
9 | {
10 | this.name = "hikkoshi/token";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqEventShopList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqEventShopList : WebAPI
7 | {
8 | public ReqEventShopList()
9 | {
10 | this.name = "shop/event/shoplist";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendFollower.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendFollower : WebAPI
7 | {
8 | public ReqFriendFollower()
9 | {
10 | this.name = "friend/follower";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemAddStmPaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemAddStmPaid : WebAPI
7 | {
8 | public ReqItemAddStmPaid()
9 | {
10 | this.name = "item/addstmpaid";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerSupporter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqTowerSupporter : WebAPI
7 | {
8 | public ReqTowerSupporter()
9 | {
10 | this.name = "tower/supportlist";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBuyGold.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBuyGold : WebAPI
7 | {
8 | public ReqBuyGold(int coin)
9 | {
10 | this.name = "shop/gold/buy";
11 | this.body = WebAPI.GetRequestString("\"coin\":" + coin.ToString());
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemAbilPointPaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemAbilPointPaid : WebAPI
7 | {
8 | public ReqItemAbilPointPaid()
9 | {
10 | this.name = "item/addappaid";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemAddBoxPaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemAddBoxPaid : WebAPI
7 | {
8 | public ReqItemAddBoxPaid(long iid)
9 | {
10 | this.name = "item/addboxpaid";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemShop.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemShop : WebAPI
7 | {
8 | public ReqItemShop(string iname)
9 | {
10 | this.name = "shop";
11 | this.body = WebAPI.GetRequestString("\"iname\":\"" + iname + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqLimitedShopList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqLimitedShopList : WebAPI
7 | {
8 | public ReqLimitedShopList()
9 | {
10 | this.name = "shop/limited/shoplist";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatChannelMaster.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqChatChannelMaster : WebAPI
7 | {
8 | public ReqChatChannelMaster()
9 | {
10 | this.name = "chat/channel/master";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatMessageOffical.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqChatMessageOffical : WebAPI
7 | {
8 | public ReqChatMessageOffical()
9 | {
10 | this.name = "chat/message/offical";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendReq.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendReq : WebAPI
7 | {
8 | public ReqFriendReq(string fuid)
9 | {
10 | this.name = "friend/req";
11 | this.body = WebAPI.GetRequestString("\"fuid\":\"" + fuid + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqJobRankup.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqJobRankup : WebAPI
7 | {
8 | public ReqJobRankup(long iid_job)
9 | {
10 | this.name = "unit/job/equip/lvup/";
11 | this.body = WebAPI.GetRequestString("\"iid\":" + iid_job);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUnitUnlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqUnitUnlock : WebAPI
7 | {
8 | public ReqUnitUnlock(string iname)
9 | {
10 | this.name = "unit/add";
11 | this.body = WebAPI.GetRequestString("\"iname\":\"" + iname + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatChannelAutoAssign.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqChatChannelAutoAssign : WebAPI
7 | {
8 | public ReqChatChannelAutoAssign()
9 | {
10 | this.name = "chat/channel/auto";
11 | this.body = WebAPI.GetRequestString(null);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemComposit.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemComposit : WebAPI
7 | {
8 | public ReqItemComposit(string iname)
9 | {
10 | this.name = "item/gousei";
11 | this.body = WebAPI.GetRequestString("\"iname\":\"" + iname + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMPVersion.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMPVersion : WebAPI
7 | {
8 | public ReqMPVersion()
9 | {
10 | this.name = "btl/multi/check";
11 | this.body = string.Empty;
12 | this.body = WebAPI.GetRequestString(this.body);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqHikkoshiExec.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqHikkoshiExec : WebAPI
7 | {
8 | public ReqHikkoshiExec(string token)
9 | {
10 | this.name = "hikkoshi/exec";
11 | this.body = WebAPI.GetRequestString("\"token\":\"" + token + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemCompositAll.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemCompositAll : WebAPI
7 | {
8 | public ReqItemCompositAll(string iname)
9 | {
10 | this.name = "item/gouseiall";
11 | this.body = WebAPI.GetRequestString("\"iname\":\"" + iname + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendFavoriteAdd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendFavoriteAdd : WebAPI
7 | {
8 | public ReqFriendFavoriteAdd(string fuid)
9 | {
10 | this.name = "friend/favorite/add";
11 | this.body = WebAPI.GetRequestString("\"fuid\":\"" + fuid + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComResume.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBtlComResume : WebAPI
7 | {
8 | public ReqBtlComResume(long btlid)
9 | {
10 | this.name = "btl/com/resume";
11 | this.body = "\"btlid\":" + btlid;
12 | this.body = WebAPI.GetRequestString(this.body);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFgGAuth.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFgGAuth : WebAPI
7 | {
8 | public enum eAuthStatus
9 | {
10 | None,
11 | Disable,
12 | NotSynchronized,
13 | Synchronized
14 | }
15 |
16 | public ReqFgGAuth()
17 | {
18 | this.name = "achieve/auth";
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSetLanguage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqSetLanguage : WebAPI
7 | {
8 | public ReqSetLanguage(string language)
9 | {
10 | string str = language;
11 | this.name = "setlanguage";
12 | this.body = WebAPI.GetRequestString("\"lang\":\"" + str + "\"");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendFavoriteRemove.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendFavoriteRemove : WebAPI
7 | {
8 | public ReqFriendFavoriteRemove(string fuid)
9 | {
10 | this.name = "friend/favorite/remove";
11 | this.body = WebAPI.GetRequestString("\"fuid\":\"" + fuid + "\"");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendFind.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendFind : WebAPI
7 | {
8 | public ReqFriendFind(string fuid)
9 | {
10 | fuid = WebAPI.EscapeString(fuid);
11 | this.name = "friend/find";
12 | this.body = WebAPI.GetRequestString("\"fuid\":\"" + fuid + "\"");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemShopUpdate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemShopUpdate : WebAPI
7 | {
8 | public ReqItemShopUpdate(string iname)
9 | {
10 | this.name = "shop/update";
11 | this.body = "\"iname\":\"" + iname + "\"";
12 | this.body = WebAPI.GetRequestString(this.body);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSetName.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqSetName : WebAPI
7 | {
8 | public ReqSetName(string username)
9 | {
10 | username = WebAPI.EscapeString(username);
11 | this.name = "setname";
12 | this.body = WebAPI.GetRequestString("\"name\":\"" + username + "\"");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerBtlComResume.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqTowerBtlComResume : WebAPI
7 | {
8 | public ReqTowerBtlComResume(long btlid)
9 | {
10 | this.name = "tower/btl/resume";
11 | this.body = "\"btlid\":" + btlid;
12 | this.body = WebAPI.GetRequestString(this.body);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/DataExtractor/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendApprove.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendApprove : WebAPI
7 | {
8 | public ReqFriendApprove(string fuid)
9 | {
10 | fuid = WebAPI.EscapeString(fuid);
11 | this.name = "friend/approve";
12 | this.body = WebAPI.GetRequestString("\"fuid\":\"" + fuid + "\"");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlColo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlColo : WebAPI
8 | {
9 | public ReqBtlColo()
10 | {
11 | this.name = "btl/colo";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGetSupport.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqGetSupport : WebAPI
8 | {
9 | public ReqGetSupport()
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "support";
13 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlColoHistory.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlColoHistory : WebAPI
8 | {
9 | public ReqBtlColoHistory()
10 | {
11 | this.name = "btl/colo/history/";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendFindByUsername.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendFindByUsername : WebAPI
7 | {
8 | public ReqFriendFindByUsername(string username)
9 | {
10 | username = WebAPI.EscapeString(username);
11 | this.name = "friend/search";
12 | this.body = WebAPI.GetRequestString("\"name\":\"" + username + "\"");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGoogleReview.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqGoogleReview : WebAPI
8 | {
9 | public ReqGoogleReview()
10 | {
11 | this.name = "serial/register/greview";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusSeason.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusSeason : WebAPI
7 | {
8 | public class Response
9 | {
10 | public int unreadmail;
11 | }
12 |
13 | public ReqVersusSeason()
14 | {
15 | this.name = "vs/towermatch/season";
16 | this.body = string.Empty;
17 | this.body = WebAPI.GetRequestString(this.body);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlCom.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBtlCom : WebAPI
7 | {
8 | public ReqBtlCom(bool refresh = false)
9 | {
10 | this.name = "btl/com";
11 | if (refresh)
12 | {
13 | this.body = WebAPI.GetRequestString("\"event\":1");
14 | }
15 | else
16 | {
17 | this.body = WebAPI.GetRequestString(null);
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqJobEquip.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqJobEquip : WebAPI
7 | {
8 | public ReqJobEquip(long iid_job, long id_equip)
9 | {
10 | this.name = "unit/job/equip/set";
11 | this.body = "\"iid\":" + iid_job + ",";
12 | this.body = this.body + "\"id_equip\":" + id_equip;
13 | this.body = WebAPI.GetRequestString(this.body);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemShopBuypaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemShopBuypaid : WebAPI
7 | {
8 | public ReqItemShopBuypaid(string iname, int id)
9 | {
10 | this.name = "shop/buy";
11 | this.body = "\"iname\":\"" + iname + "\",";
12 | this.body = this.body + "\"id\":" + id.ToString();
13 | this.body = WebAPI.GetRequestString(this.body);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlColoReset.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlColoReset : WebAPI
8 | {
9 | public ReqBtlColoReset(ColoResetTypes reset)
10 | {
11 | this.name = "btl/colo/reset/" + reset.ToString();
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusLine.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusLine : WebAPI
7 | {
8 | public ReqVersusLine(string roomname)
9 | {
10 | this.name = "vs/friendmatch/line/recruitment";
11 | this.body = string.Empty;
12 | this.body = this.body + "\"token\":\"" + JsonEscape.Escape(roomname) + "\"";
13 | this.body = WebAPI.GetRequestString(this.body);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusLineMake.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusLineMake : WebAPI
7 | {
8 | public ReqVersusLineMake(string roomname)
9 | {
10 | this.name = "vs/friendmatch/line/make";
11 | this.body = string.Empty;
12 | this.body = this.body + "\"token\":\"" + JsonEscape.Escape(roomname) + "\"";
13 | this.body = WebAPI.GetRequestString(this.body);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemEventShopUpdate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqItemEventShopUpdate : WebAPI
7 | {
8 | public ReqItemEventShopUpdate(string iname, string costiname)
9 | {
10 | this.name = "shop/update";
11 | this.body = "\"iname\":\"" + iname + "\",";
12 | this.body = this.body + "\"costiname\":\"" + costiname + "\"";
13 | this.body = WebAPI.GetRequestString(this.body);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqReLogin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqReLogin : WebAPI
8 | {
9 | public ReqReLogin(int ymd)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"yymmdd\":");
13 | stringBuilder.Append(ymd);
14 | this.name = "login/span";
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqAlterCheck.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqAlterCheck : WebAPI
8 | {
9 | public ReqAlterCheck(string hash)
10 | {
11 | this.name = "altercheck";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("hash");
14 | stringBuilder.Append(hash);
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactFavorite.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqArtifactFavorite : WebAPI
7 | {
8 | public ReqArtifactFavorite(long iid, bool isFavorite)
9 | {
10 | this.name = "unit/job/artifact/favorite";
11 | this.body = WebAPI.GetRequestString(string.Concat(new object[]
12 | {
13 | "\"iid\":",
14 | iid,
15 | ",\"fav\":",
16 | (!isFavorite) ? 0 : 1
17 | }));
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSetSupport.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqSetSupport : WebAPI
8 | {
9 | public ReqSetSupport(long id)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "support/set";
13 | stringBuilder.Append("\"uiid\":");
14 | stringBuilder.Append(id);
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTutUpdate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTutUpdate : WebAPI
8 | {
9 | public ReqTutUpdate(long flags)
10 | {
11 | this.name = "tut/update";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"tut\":");
14 | stringBuilder.Append(flags);
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatUserProfile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqChatUserProfile : WebAPI
8 | {
9 | public ReqChatUserProfile(string target_uid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/profile";
13 | stringBuilder.Append("\"target_uid\":\"" + target_uid + "\"");
14 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqAddChatBlackList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqAddChatBlackList : WebAPI
8 | {
9 | public ReqAddChatBlackList(string target_uid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/blacklist/add";
13 | stringBuilder.Append("\"target_uid\":\"" + target_uid + "\"");
14 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTower.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTower : WebAPI
8 | {
9 | public ReqTower(string questID)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "tower";
13 | stringBuilder.Append("\"qid\":\"");
14 | stringBuilder.Append(questID);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactAddRare.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqArtifactAddRare : WebAPI
8 | {
9 | public ReqArtifactAddRare(long iid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"iid\":");
13 | stringBuilder.Append(iid);
14 | this.name = "unit/job/artifact/rare/add";
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqPlayNew.cs:
--------------------------------------------------------------------------------
1 | using GR;
2 | using System;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqPlayNew : WebAPI
8 | {
9 | public ReqPlayNew(bool isDebug)
10 | {
11 | this.name = "playnew";
12 | this.body = string.Empty;
13 | string text = string.Empty;
14 | if (isDebug)
15 | {
16 | text = "\"debug\":1,";
17 | }
18 | text = text + "\"permanent_id\":\"" + GameManager.Instance.UdId + "\"";
19 | this.body += WebAPI.GetRequestString(text);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqRemoveChatBlackList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqRemoveChatBlackList : WebAPI
8 | {
9 | public ReqRemoveChatBlackList(string target_uid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/blacklist/remove";
13 | stringBuilder.Append("\"target_uid\":\"" + target_uid + "\"");
14 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerReset.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTowerReset : WebAPI
8 | {
9 | public ReqTowerReset(string qid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"qid\":\"");
13 | stringBuilder.Append(qid);
14 | stringBuilder.Append("\"");
15 | this.name = "tower/reset";
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComOpen.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlComOpen : WebAPI
8 | {
9 | public ReqBtlComOpen(string iname)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "btl/com/open";
13 | stringBuilder.Append("\"areaid\":\"");
14 | stringBuilder.Append(iname);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComReset.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlComReset : WebAPI
8 | {
9 | public ReqBtlComReset(string iname)
10 | {
11 | this.name = "btl/com/reset";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iname\":\"");
14 | stringBuilder.Append(iname);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactAdd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqArtifactAdd : WebAPI
8 | {
9 | public ReqArtifactAdd(string iname)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"iname\":\"");
13 | stringBuilder.Append(iname);
14 | stringBuilder.Append('"');
15 | this.name = "unit/job/artifact/add";
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqShopLineup.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqShopLineup : WebAPI
8 | {
9 | public ReqShopLineup(string shop_name)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "shop/itemlist";
13 | stringBuilder.Append("\"shopName\":\"");
14 | stringBuilder.Append(shop_name);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/DataExtractor/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlColoRanking.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlColoRanking : WebAPI
8 | {
9 | public enum RankingTypes
10 | {
11 | world,
12 | friend
13 | }
14 |
15 | public ReqBtlColoRanking(ReqBtlColoRanking.RankingTypes type)
16 | {
17 | this.name = "btl/colo/ranking/" + type.ToString();
18 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
19 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqEventShopItemList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqEventShopItemList : WebAPI
8 | {
9 | public ReqEventShopItemList(string shop_name)
10 | {
11 | this.name = "shop/event";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"shopName\":\"");
14 | stringBuilder.Append(shop_name);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMPRoom.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMPRoom : WebAPI
7 | {
8 | public class Response
9 | {
10 | public MultiPlayAPIRoom[] rooms;
11 | }
12 |
13 | public ReqMPRoom(string fuid)
14 | {
15 | this.name = "btl/room";
16 | this.body = string.Empty;
17 | if (!string.IsNullOrEmpty(fuid))
18 | {
19 | this.body = this.body + "\"fuid\":\"" + JsonEscape.Escape(fuid) + "\"";
20 | }
21 | this.body = WebAPI.GetRequestString(this.body);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUpdateSelectAward.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqUpdateSelectAward : WebAPI
8 | {
9 | public ReqUpdateSelectAward(string iname)
10 | {
11 | this.name = "award/select";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"selected_award\":\"");
14 | stringBuilder.Append(iname);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGetSessionID.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGetSessionID : WebAPI
7 | {
8 | public ReqGetSessionID(string udid, string udid_, string romver)
9 | {
10 | this.name = "getsid";
11 | this.body = "{\"ticket\":" + Networking.TicketID + ",\"param\":{";
12 | this.body = this.body + "\"udid\":\"" + udid + "\",";
13 | this.body = this.body + "\"udid_\":\"" + udid_ + "\",";
14 | this.body = this.body + "\"romver\":\"" + romver + "\"";
15 | this.body += "}}";
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqLimitedShopItemList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqLimitedShopItemList : WebAPI
8 | {
9 | public ReqLimitedShopItemList(string shop_name)
10 | {
11 | this.name = "shop/limited";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"shopName\":\"");
14 | stringBuilder.Append(shop_name);
15 | stringBuilder.Append("\"");
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSendChatMessage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqSendChatMessage : WebAPI
8 | {
9 | public ReqSendChatMessage(int channel, string message)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/send";
13 | stringBuilder.Append("\"channel\":" + channel.ToString() + ",");
14 | stringBuilder.Append("\"message\":\"" + message + "\"");
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSendChatStamp.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqSendChatStamp : WebAPI
8 | {
9 | public ReqSendChatStamp(int channel, int stamp_id)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/send/stamp";
13 | stringBuilder.Append("\"channel\":" + channel.ToString() + ",");
14 | stringBuilder.Append("\"stamp_id\":" + stamp_id.ToString());
15 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendReject.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendReject : WebAPI
7 | {
8 | public ReqFriendReject(string[] fuids)
9 | {
10 | this.name = "friend/reject";
11 | this.body = "\"fuids\":[";
12 | for (int i = 0; i < fuids.Length; i++)
13 | {
14 | this.body = this.body + "\"" + fuids[i] + "\"";
15 | if (i != fuids.Length - 1)
16 | {
17 | this.body += ",";
18 | }
19 | }
20 | this.body += "]";
21 | this.body = WebAPI.GetRequestString(this.body);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqFriendRemove.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqFriendRemove : WebAPI
7 | {
8 | public ReqFriendRemove(string[] fuids)
9 | {
10 | this.name = "friend/remove";
11 | this.body = "\"fuids\":[";
12 | for (int i = 0; i < fuids.Length; i++)
13 | {
14 | this.body = this.body + "\"" + fuids[i] + "\"";
15 | if (i != fuids.Length - 1)
16 | {
17 | this.body += ",";
18 | }
19 | }
20 | this.body += "]";
21 | this.body = WebAPI.GetRequestString(this.body);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqLogin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqLogin : WebAPI
8 | {
9 | public ReqLogin()
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"device\":\"");
13 | //stringBuilder.Append("samsung SM-E7000");
14 | stringBuilder.Append("iPhoneUnknown");
15 | stringBuilder.Append("\"");
16 | this.name = "login";
17 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqHealAp.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqHealAp : WebAPI
8 | {
9 | public ReqHealAp(long iid, int num)
10 | {
11 | this.name = "item/addstm";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iid\" : ");
14 | stringBuilder.Append(iid);
15 | stringBuilder.Append(",");
16 | stringBuilder.Append("\"num\" : ");
17 | stringBuilder.Append(num);
18 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMultiCheat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMultiCheat : WebAPI
7 | {
8 | public ReqMultiCheat(int type, string val)
9 | {
10 | this.name = "btl/multi/cheat";
11 | this.body = string.Empty;
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"type\":",
17 | type,
18 | ","
19 | });
20 | this.body = this.body + "\"val\":\"" + JsonEscape.Escape(val) + "\"";
21 | this.body = WebAPI.GetRequestString(this.body);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqProductBuy.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqProductBuy : WebAPI
7 | {
8 | public ReqProductBuy(string productID, string receipt, string transactionID)
9 | {
10 | this.name = "product/buy";
11 | this.body = string.Empty;
12 | this.body = this.body + "\"productid\":\"" + productID + "\",";
13 | this.body = this.body + "\"receipt\":\"" + receipt + "\",";
14 | this.body = this.body + "\"transactionid\":\"" + transactionID + "\"";
15 | this.body = WebAPI.GetRequestString(this.body);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusRoomUpdate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusRoomUpdate : WebAPI
7 | {
8 | public ReqVersusRoomUpdate(int roomID, string comment, string iname)
9 | {
10 | this.name = "vs/friendmatch/update";
11 | this.body = string.Empty;
12 | this.body = this.body + "\"roomid\":" + roomID;
13 | this.body = this.body + ",\"comment\":\"" + JsonEscape.Escape(comment) + "\"";
14 | this.body = this.body + ",\"quest\":\"" + iname + "\"";
15 | this.body = WebAPI.GetRequestString(this.body);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMPRoomUpdate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMPRoomUpdate : WebAPI
7 | {
8 | public ReqMPRoomUpdate(int roomID, string comment, string passCode)
9 | {
10 | this.name = "btl/room/update";
11 | this.body = string.Empty;
12 | this.body = this.body + "\"roomid\":" + roomID;
13 | this.body = this.body + ",\"comment\":\"" + JsonEscape.Escape(comment) + "\"";
14 | this.body = this.body + ",\"pwd\":\"" + JsonEscape.Escape(passCode) + "\"";
15 | this.body = WebAPI.GetRequestString(this.body);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerReward.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTowerReward : WebAPI
8 | {
9 | public ReqTowerReward(short mid, short nid)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "expedition/reward";
13 | stringBuilder.Append("\"mid\":");
14 | stringBuilder.Append(mid);
15 | stringBuilder.Append(",");
16 | stringBuilder.Append("\"nid\":");
17 | stringBuilder.Append(nid);
18 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemEventShopBuypaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqItemEventShopBuypaid : WebAPI
8 | {
9 | public ReqItemEventShopBuypaid(string shopname, int id, int buynum)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "shop/event/buy";
13 | stringBuilder.Append("\"shopName\":\"" + shopname + "\",");
14 | stringBuilder.Append("\"id\":" + id.ToString() + ",");
15 | stringBuilder.Append("\"buynum\":" + buynum.ToString());
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqJobRankupAll.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqJobRankupAll : WebAPI
8 | {
9 | public ReqJobRankupAll(long iid_unit, string iname_jobset)
10 | {
11 | this.name = "unit/job/equip/lvupall";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"uiid\":");
14 | stringBuilder.Append(iid_unit);
15 | stringBuilder.Append(",\"jobset\":\"");
16 | stringBuilder.Append(iname_jobset);
17 | stringBuilder.Append("\"");
18 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGAuthPasscode.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqGAuthPasscode : WebAPI
8 | {
9 | public ReqGAuthPasscode(string secretKey, string deviceID)
10 | {
11 | this.name = "gauth/passcode";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"secret_key\":\"");
14 | stringBuilder.Append(secretKey);
15 | stringBuilder.Append("\",\"device_id\":\"");
16 | stringBuilder.Append(deviceID);
17 | stringBuilder.Append("\"");
18 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMultiRank.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMultiRank : WebAPI
7 | {
8 | public class Json_MultiRankParam
9 | {
10 | public string unit_iname;
11 |
12 | public string job_iname;
13 | }
14 |
15 | public class Json_MultiRank
16 | {
17 | public ReqMultiRank.Json_MultiRankParam[] ranking;
18 |
19 | public int isReady;
20 | }
21 |
22 | public ReqMultiRank(string iname)
23 | {
24 | this.name = "btl/usedunit";
25 | this.body = "\"iname\":\"" + JsonEscape.Escape(iname) + "\"";
26 | this.body = WebAPI.GetRequestString(this.body);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusRoomJoin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusRoomJoin : WebAPI
7 | {
8 | public class Quest
9 | {
10 | public string iname;
11 | }
12 |
13 | public class Response
14 | {
15 | public string app_id;
16 |
17 | public string token;
18 |
19 | public ReqVersusRoomJoin.Quest quest;
20 | }
21 |
22 | public ReqVersusRoomJoin(int roomID)
23 | {
24 | this.name = "vs/friendmatch/join";
25 | this.body = string.Empty;
26 | this.body = this.body + "\"roomid\":" + roomID;
27 | this.body = WebAPI.GetRequestString(this.body);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemLimitedShopBuypaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqItemLimitedShopBuypaid : WebAPI
8 | {
9 | public ReqItemLimitedShopBuypaid(string shopname, int id, int buynum)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "shop/limited/buy";
13 | stringBuilder.Append("\"shopName\":\"" + shopname + "\",");
14 | stringBuilder.Append("\"id\":" + id.ToString() + ",");
15 | stringBuilder.Append("\"buynum\":" + buynum.ToString());
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqCheckFacebookID.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqCheckFacebookID : WebAPI
7 | {
8 | public ReqCheckFacebookID(string udid)
9 | {
10 | this.name = "player/chkfb";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"device_id\":\"" + udid + "\"";
23 | this.body += "}";
24 | this.body += "}";
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqCheckVersion.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqCheckVersion : WebAPI
7 | {
8 | public ReqCheckVersion(string ver, string os)
9 | {
10 | this.name = "chkver";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"param\":{";
21 | this.body = this.body + "\"ver\":\"" + ver + "\",";
22 | this.body = this.body + "\"os\":\"" + os + "\"";
23 | this.body += "}";
24 | this.body += "}";
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqJobAbility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqJobAbility : WebAPI
7 | {
8 | public ReqJobAbility(long iid_job, long[] iid_abils)
9 | {
10 | this.name = "unit/job/abil/set";
11 | this.body = "\"iid\":" + iid_job + ",";
12 | this.body += "\"iid_abils\":";
13 | this.body += "[";
14 | for (int i = 0; i < iid_abils.Length; i++)
15 | {
16 | this.body += iid_abils[i].ToString();
17 | if (i != iid_abils.Length - 1)
18 | {
19 | this.body += ",";
20 | }
21 | }
22 | this.body += "]";
23 | this.body = WebAPI.GetRequestString(this.body);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusStatus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusStatus : WebAPI
7 | {
8 | public class Response
9 | {
10 | public int floor;
11 |
12 | public int key;
13 |
14 | public int wincnt;
15 |
16 | public int is_season_gift;
17 |
18 | public int is_give_season_gift;
19 |
20 | public long end_at;
21 |
22 | public string vstower_id;
23 |
24 | public string tower_iname;
25 | }
26 |
27 | public ReqVersusStatus()
28 | {
29 | this.name = "vs/status";
30 | this.body = string.Empty;
31 | this.body = WebAPI.GetRequestString(this.body);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqAttachFacebookToDevice.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqAttachFacebookToDevice : WebAPI
7 | {
8 | public ReqAttachFacebookToDevice(string accesstoken)
9 | {
10 | this.name = "gauth/facebook/sso/device";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"access_token\":\"" + accesstoken + "\"";
23 | this.body += "}";
24 | this.body += "}";
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusStart.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusStart : WebAPI
7 | {
8 | public class JSON_VersusMap
9 | {
10 | public string free;
11 |
12 | public string tower;
13 |
14 | public string friend;
15 | }
16 |
17 | public class Response
18 | {
19 | public string app_id;
20 |
21 | public ReqVersusStart.JSON_VersusMap maps;
22 | }
23 |
24 | public ReqVersusStart(VERSUS_TYPE type)
25 | {
26 | this.name = "vs/start";
27 | this.body = string.Empty;
28 | this.body = this.body + "\"type\":\"" + type.ToString().ToLower() + "\"";
29 | this.body = WebAPI.GetRequestString(this.body);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGachaExec.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGachaExec : WebAPI
7 | {
8 | public ReqGachaExec(string gachaid)
9 | {
10 | this.name = "gacha/exec";
11 | this.body = WebAPI.GetRequestString("\"gachaid\":\"" + gachaid + "\"");
12 | }
13 |
14 | public ReqGachaExec(string iname, int free = 0, int num = 0)
15 | {
16 | this.name = "gacha/exec";
17 | this.body = "\"gachaid\":\"" + iname + "\",";
18 | this.body = this.body + "\"free\":" + free.ToString();
19 | if (num > 0)
20 | {
21 | this.body = this.body + ",\"ticketnum\":" + num.ToString();
22 | }
23 | this.body = WebAPI.GetRequestString(this.body);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqJobEquipV2.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqJobEquipV2 : WebAPI
8 | {
9 | public ReqJobEquipV2(long iid_unit, string iname_jobset, long slot)
10 | {
11 | this.name = "unit/job/equip/set2";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iid\":");
14 | stringBuilder.Append(iid_unit);
15 | stringBuilder.Append(",\"iname\":\"");
16 | stringBuilder.Append(iname_jobset);
17 | stringBuilder.Append("\"");
18 | stringBuilder.Append(",\"slot\":");
19 | stringBuilder.Append(slot);
20 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatMessage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqChatMessage : WebAPI
8 | {
9 | public ReqChatMessage(int start_id, int channel, int limit, int exclude_id)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/message";
13 | stringBuilder.Append("\"start_id\":" + start_id.ToString() + ",");
14 | stringBuilder.Append("\"channel\":" + channel.ToString() + ",");
15 | stringBuilder.Append("\"limit\":" + limit.ToString() + ",");
16 | stringBuilder.Append("\"exclude_id\":" + exclude_id.ToString());
17 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMultiPlayResume.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMultiPlayResume : WebAPI
7 | {
8 | public class Quest
9 | {
10 | public string iname;
11 | }
12 |
13 | public class Response
14 | {
15 | public ReqMultiPlayResume.Quest quest;
16 |
17 | public int btlid;
18 |
19 | public string app_id;
20 |
21 | public string token;
22 |
23 | public Json_BtlInfo_Multi btlinfo;
24 | }
25 |
26 | public ReqMultiPlayResume(long btlID)
27 | {
28 | this.name = "btl/multi/resume";
29 | this.body = string.Empty;
30 | this.body = this.body + "\"btlid\":" + btlID;
31 | this.body = WebAPI.GetRequestString(this.body);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGetDeviceID.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGetDeviceID : WebAPI
7 | {
8 | public ReqGetDeviceID(string secretkey, string udid)
9 | {
10 | this.name = "gauth/register";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"secret_key\":\"" + secretkey + "\",";
23 | this.body = this.body + "\"udid\":\"" + udid + "\"";
24 | this.body += "}";
25 | this.body += "}";
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusResume.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusResume : WebAPI
7 | {
8 | public class Quest
9 | {
10 | public string iname;
11 | }
12 |
13 | public class Response
14 | {
15 | public ReqVersusResume.Quest quest;
16 |
17 | public int btlid;
18 |
19 | public string app_id;
20 |
21 | public string token;
22 |
23 | public string type;
24 |
25 | public Json_BtlInfo_Multi btlinfo;
26 | }
27 |
28 | public ReqVersusResume(long btlID)
29 | {
30 | this.name = "vs/resume";
31 | this.body = string.Empty;
32 | this.body = this.body + "\"btlid\":" + btlID;
33 | this.body = WebAPI.GetRequestString(this.body);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGAuthMigrate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqGAuthMigrate : WebAPI
8 | {
9 | public ReqGAuthMigrate(string secretKey, string deviceID, string passcode)
10 | {
11 | this.name = "gauth/migrate";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"secret_key\":\"");
14 | stringBuilder.Append(secretKey);
15 | stringBuilder.Append("\",\"device_id\":\"");
16 | stringBuilder.Append(deviceID);
17 | stringBuilder.Append("\",\"passcode\":\"");
18 | stringBuilder.Append(passcode);
19 | stringBuilder.Append("\"");
20 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGetAccessToken.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqGetAccessToken : WebAPI
7 | {
8 | public ReqGetAccessToken(string deviceid, string secretkey)
9 | {
10 | this.name = "gauth/accesstoken";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"device_id\":\"" + deviceid + "\",";
23 | this.body = this.body + "\"secret_key\":\"" + secretkey + "\"";
24 | this.body += "}";
25 | this.body += "}";
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUnitPlus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqUnitPlus : WebAPI
8 | {
9 | public ReqUnitPlus(long iid, string trophyprog = null, string bingoprog = null)
10 | {
11 | this.name = "unit/plus/add";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iid\":" + iid);
14 | if (!string.IsNullOrEmpty(trophyprog))
15 | {
16 | stringBuilder.Append(",");
17 | stringBuilder.Append(trophyprog);
18 | }
19 | if (!string.IsNullOrEmpty(bingoprog))
20 | {
21 | stringBuilder.Append(",");
22 | stringBuilder.Append(bingoprog);
23 | }
24 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUnitRare.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqUnitRare : WebAPI
8 | {
9 | public ReqUnitRare(long iid, string trophyprog = null, string bingoprog = null)
10 | {
11 | this.name = "unit/rare/add";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iid\":" + iid);
14 | if (!string.IsNullOrEmpty(trophyprog))
15 | {
16 | stringBuilder.Append(",");
17 | stringBuilder.Append(trophyprog);
18 | }
19 | if (!string.IsNullOrEmpty(bingoprog))
20 | {
21 | stringBuilder.Append(",");
22 | stringBuilder.Append(bingoprog);
23 | }
24 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AlchemistCodeCode
2 |
3 | This project shows how basic network communication works with the game "The Alchemist Code", and how you can directly use some classes from the game code. This project also shows how to dump out game data from the Alchemist Code.
4 |
5 | Things not included and you will have to include to get started:
6 | 1. Dump out AssemblySharp.dll from the game executable, and reference that dll. Many tutorials online.
7 | 2. Download DotNetWikiBot.cs to actually post to the wiki. I didn't include this because GPL.
8 |
9 |
10 | MIT License
11 |
12 | *AlchemistCodeCode and Shalzuth aren't endorsed by gumi Inc. and doesn’t reflect the views or opinions of gumi Inc. or anyone officially involved in producing or managing gumi Inc. Game content and materials are trademarks and copyrights of gumi Inc.*
13 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComCont.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqBtlComCont : WebAPI
7 | {
8 | public ReqBtlComCont(long btlid, BattleCore.Record record, bool multi)
9 | {
10 | this.name = ((!multi) ? "btl/com/cont" : "btl/multi/cont");
11 | if (record != null)
12 | {
13 | this.body = "\"btlid\":" + btlid + ",";
14 | string btlEndParamString = WebAPI.GetBtlEndParamString(record, multi);
15 | if (!string.IsNullOrEmpty(btlEndParamString))
16 | {
17 | this.body += WebAPI.GetBtlEndParamString(record, multi);
18 | }
19 | this.body = WebAPI.GetRequestString(this.body);
20 | }
21 | else
22 | {
23 | this.body = WebAPI.GetRequestString("\"btlid\":\"" + btlid + "\"");
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactSell.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqArtifactSell : WebAPI
8 | {
9 | public ReqArtifactSell(long[] artifact_iids)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"sells\":[");
13 | string text = string.Empty;
14 | for (int i = 0; i < artifact_iids.Length; i++)
15 | {
16 | text = text + artifact_iids[i].ToString() + ",";
17 | }
18 | if (text.Length > 0)
19 | {
20 | text = text.Substring(0, text.Length - 1);
21 | }
22 | stringBuilder.Append(text);
23 | stringBuilder.Append("]");
24 | this.name = "unit/job/artifact/sell";
25 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusMake.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqVersusMake : WebAPI
7 | {
8 | public class Response
9 | {
10 | public string token;
11 |
12 | public string owner_name;
13 |
14 | public int roomid;
15 | }
16 |
17 | public ReqVersusMake(VERSUS_TYPE type, string comment, string iname, bool isLine = false)
18 | {
19 | this.name = "vs/" + type.ToString().ToLower() + "match/make";
20 | this.body = string.Empty;
21 | this.body = this.body + "\"comment\":\"" + JsonEscape.Escape(comment) + "\",";
22 | this.body = this.body + "\"iname\":\"" + JsonEscape.Escape(iname) + "\",";
23 | this.body = this.body + "\"Line\":" + ((!isLine) ? 0 : 1);
24 | this.body = WebAPI.GetRequestString(this.body);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactConvert.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqArtifactConvert : WebAPI
8 | {
9 | public ReqArtifactConvert(long[] artifact_iids)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"iids\":[");
13 | string text = string.Empty;
14 | for (int i = 0; i < artifact_iids.Length; i++)
15 | {
16 | text = text + artifact_iids[i].ToString() + ",";
17 | }
18 | if (text.Length > 0)
19 | {
20 | text = text.Substring(0, text.Length - 1);
21 | }
22 | stringBuilder.Append(text);
23 | stringBuilder.Append("]");
24 | this.name = "unit/job/artifact/convert";
25 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComRaid.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlComRaid : WebAPI
8 | {
9 | public ReqBtlComRaid(string iname, int ticket, int partyIndex)
10 | {
11 | this.name = "btl/com/raid2";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iname\":\"");
14 | stringBuilder.Append(iname);
15 | stringBuilder.Append("\",");
16 | if (partyIndex >= 0)
17 | {
18 | stringBuilder.Append("\"partyid\":");
19 | stringBuilder.Append(partyIndex);
20 | stringBuilder.Append(",");
21 | }
22 | stringBuilder.Append("\"ticket\":");
23 | stringBuilder.Append(ticket.ToString());
24 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlTowerComReq.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlTowerComReq : WebAPI
8 | {
9 | public ReqBtlTowerComReq(string qid, string fid, PartyData partyIndex)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "tower/btl/req";
13 | stringBuilder.Append("\"qid\":\"");
14 | stringBuilder.Append(qid);
15 | stringBuilder.Append("\",");
16 | stringBuilder.Append("\"fid\":\"");
17 | stringBuilder.Append(fid);
18 | stringBuilder.Append("\",");
19 | stringBuilder.Append("\"fuid\":\"");
20 | stringBuilder.Append(GlobalVars.SelectedFriendID);
21 | stringBuilder.Append("\"");
22 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqItemSell.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqItemSell : WebAPI
8 | {
9 | public ReqItemSell(Dictionary sells)
10 | {
11 | this.name = "item/sell";
12 | this.body = "\"sells\":[";
13 | string text = string.Empty;
14 | foreach (KeyValuePair current in sells)
15 | {
16 | text += "{";
17 | text = text + "\"iid\":" + current.Key.ToString() + ",";
18 | text = text + "\"num\":" + current.Value.ToString();
19 | text += "},";
20 | }
21 | if (text.Length > 0)
22 | {
23 | text = text.Substring(0, text.Length - 1);
24 | }
25 | this.body += text;
26 | this.body += "]";
27 | this.body = WebAPI.GetRequestString(this.body);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSendSupportEmail.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqSendSupportEmail : WebAPI
7 | {
8 | public ReqSendSupportEmail(string subject, string message, string replyTo)
9 | {
10 | this.name = "support/mail";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"subject\":\"" + subject + "\",";
23 | this.body = this.body + "\"message\":\"" + message + "\",";
24 | this.body = this.body + "\"replyTo\":\"" + replyTo + "\"";
25 | this.body += "}";
26 | this.body += "}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMPRoomJoin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMPRoomJoin : WebAPI
7 | {
8 | public class Quest
9 | {
10 | public string iname;
11 | }
12 |
13 | public class Response
14 | {
15 | public string app_id;
16 |
17 | public string token;
18 |
19 | public ReqMPRoomJoin.Quest quest;
20 | }
21 |
22 | public ReqMPRoomJoin(int roomID, bool LockRoom = false)
23 | {
24 | this.name = "btl/room/join";
25 | this.body = string.Empty;
26 | string body = this.body;
27 | this.body = string.Concat(new object[]
28 | {
29 | body,
30 | "\"roomid\":",
31 | roomID,
32 | ","
33 | });
34 | this.body += "\"pwd\":";
35 | this.body += ((!LockRoom) ? "\"0\"" : "\"1\"");
36 | this.body = WebAPI.GetRequestString(this.body);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMPRoomMake.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMPRoomMake : WebAPI
7 | {
8 | public class Response
9 | {
10 | public int roomid;
11 |
12 | public string app_id;
13 |
14 | public string token;
15 | }
16 |
17 | public ReqMPRoomMake(string iname, string comment, string passCode, bool isPrivate)
18 | {
19 | this.name = "btl/room/make";
20 | this.body = string.Empty;
21 | this.body = this.body + "\"iname\":\"" + JsonEscape.Escape(iname) + "\"";
22 | this.body = this.body + ",\"comment\":\"" + JsonEscape.Escape(comment) + "\"";
23 | this.body = this.body + ",\"pwd\":\"" + JsonEscape.Escape(passCode) + "\"";
24 | this.body = this.body + ",\"private\":" + ((!isPrivate) ? 0 : 1);
25 | this.body = WebAPI.GetRequestString(this.body);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerRecover.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTowerRecover : WebAPI
8 | {
9 | public ReqTowerRecover(string qid, int coin, int round, byte floor)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "tower/recover";
13 | stringBuilder.Append("\"qid\":\"");
14 | stringBuilder.Append(qid);
15 | stringBuilder.Append("\",");
16 | stringBuilder.Append("\"coin\":");
17 | stringBuilder.Append(coin);
18 | stringBuilder.Append(",");
19 | stringBuilder.Append("\"round\":");
20 | stringBuilder.Append(round);
21 | stringBuilder.Append(",");
22 | stringBuilder.Append("\"floor\":");
23 | stringBuilder.Append(floor);
24 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqGAuthMigrateFgG.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqGAuthMigrateFgG : WebAPI
8 | {
9 | public ReqGAuthMigrateFgG(string secretKey, string deviceID, string mail, string password)
10 | {
11 | this.name = "gauth/achievement/mgrate";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"secret_key\":\"");
14 | stringBuilder.Append(secretKey);
15 | stringBuilder.Append("\",\"device_id\":\"");
16 | stringBuilder.Append(deviceID);
17 | stringBuilder.Append("\",\"email\":\"");
18 | stringBuilder.Append(mail);
19 | stringBuilder.Append("\",\"password\":\"");
20 | stringBuilder.Append(password);
21 | stringBuilder.Append("\"");
22 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUnitExpAdd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqUnitExpAdd : WebAPI
8 | {
9 | public ReqUnitExpAdd(long iid, Dictionary usedItems)
10 | {
11 | this.name = "unit/exp/add";
12 | this.body = "\"iid\":" + iid + ",";
13 | this.body += "\"mats\":[";
14 | string text = string.Empty;
15 | foreach (KeyValuePair current in usedItems)
16 | {
17 | text += "{";
18 | text = text + "\"iname\":\"" + current.Key + "\",";
19 | text = text + "\"num\":" + current.Value;
20 | text += "},";
21 | }
22 | if (text.Length > 0)
23 | {
24 | text = text.Substring(0, text.Length - 1);
25 | }
26 | this.body += text;
27 | this.body += "]";
28 | this.body = WebAPI.GetRequestString(this.body);
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMigrateFacebookToDevice.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMigrateFacebookToDevice : WebAPI
7 | {
8 | public ReqMigrateFacebookToDevice(string secretkey, string udid, string accesstoken)
9 | {
10 | this.name = "gauth/facebook/sso/migrate";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"secret_key\":\"" + secretkey + "\",";
23 | this.body = this.body + "\"device_id\":\"" + udid + "\",";
24 | this.body = this.body + "\"access_token\":\"" + accesstoken + "\"";
25 | this.body += "}";
26 | this.body += "}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqRegisterDeviceToFacebook.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqRegisterDeviceToFacebook : WebAPI
7 | {
8 | public ReqRegisterDeviceToFacebook(string secretkey, string udid, string accesstoken)
9 | {
10 | this.name = "gauth/facebook/sso/relate_account";
11 | this.body = "{";
12 | string body = this.body;
13 | this.body = string.Concat(new object[]
14 | {
15 | body,
16 | "\"ticket\":",
17 | Networking.TicketID,
18 | ","
19 | });
20 | this.body += "\"access_token\":\"\",";
21 | this.body += "\"param\":{";
22 | this.body = this.body + "\"secret_key\":\"" + secretkey + "\",";
23 | this.body = this.body + "\"device_id\":\"" + udid + "\",";
24 | this.body = this.body + "\"access_token\":\"" + accesstoken + "\"";
25 | this.body += "}";
26 | this.body += "}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlColoReq.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlColoReq : WebAPI
8 | {
9 | public ReqBtlColoReq(string questID, string fuid, ArenaPlayer ap, int partyIndex)
10 | {
11 | this.name = "btl/colo/req";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | if (partyIndex >= 0)
14 | {
15 | stringBuilder.Append("\"partyid\":");
16 | stringBuilder.Append(partyIndex);
17 | stringBuilder.Append(",");
18 | }
19 | stringBuilder.Append("\"btlparam\":{},");
20 | stringBuilder.Append("\"fuid\":\"");
21 | stringBuilder.Append(fuid);
22 | stringBuilder.Append("\"");
23 | stringBuilder.Append(",");
24 | stringBuilder.Append("\"opp_rank\":");
25 | stringBuilder.Append(ap.ArenaRank);
26 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChargeCheck.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqChargeCheck : WebAPI
7 | {
8 | public ReqChargeCheck(PaymentManager.Product[] products, bool isPurchase)
9 | {
10 | this.name = "charge/check";
11 | this.body = string.Empty;
12 | this.body += "\"targets\":[";
13 | for (int i = 0; i < products.Length; i++)
14 | {
15 | this.body += "{";
16 | this.body = this.body + "\"product_id\":\"" + products[i].productID + "\",";
17 | this.body = this.body + "\"price\":" + products[i].sellPrice;
18 | this.body += "}";
19 | if (i != products.Length - 1)
20 | {
21 | this.body += ",";
22 | }
23 | }
24 | this.body += "],";
25 | this.body += "\"currency\":\"JPY\",";
26 | this.body = this.body + "\"is_purchase\":" + ((!isPurchase) ? "0" : "1");
27 | this.body = WebAPI.GetRequestString(this.body);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSkinSet.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqSkinSet : WebAPI
9 | {
10 | public ReqSkinSet(Dictionary sets)
11 | {
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"sets\":[");
14 | string text = string.Empty;
15 | foreach (KeyValuePair current in sets)
16 | {
17 | text += "{";
18 | text = text + "\"iid\":" + current.Key.ToString() + ",";
19 | text = text + "\"iname\":\"" + current.Value + "\"";
20 | text += "},";
21 | }
22 | if (text.Length > 0)
23 | {
24 | text = text.Substring(0, text.Length - 1);
25 | }
26 | stringBuilder.Append(text);
27 | stringBuilder.Append("]");
28 | this.name = "unit/skin/set";
29 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerRank.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqTowerRank : WebAPI
8 | {
9 | public class JSON_TowerRankParam
10 | {
11 | public string fuid;
12 |
13 | public string name;
14 |
15 | public int lv;
16 |
17 | public int rank;
18 |
19 | public int score;
20 |
21 | public string uid;
22 |
23 | public Json_Unit unit;
24 | }
25 |
26 | public class JSON_TowerRankResponse
27 | {
28 | public ReqTowerRank.JSON_TowerRankParam[] speed;
29 |
30 | public ReqTowerRank.JSON_TowerRankParam[] technical;
31 | }
32 |
33 | public ReqTowerRank(string qid)
34 | {
35 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
36 | this.name = "tower/ranking";
37 | stringBuilder.Append("\"qid\":\"");
38 | stringBuilder.Append(qid);
39 | stringBuilder.Append("\"");
40 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUnitJob.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqUnitJob : WebAPI
8 | {
9 | public ReqUnitJob(long iid_unit, long iid_job)
10 | {
11 | this.Setup(iid_unit, iid_job, null);
12 | }
13 |
14 | public ReqUnitJob(long iid_unit, long iid_job, string ptype)
15 | {
16 | this.Setup(iid_unit, iid_job, ptype);
17 | }
18 |
19 | private void Setup(long iid_unit, long iid_job, string ptype)
20 | {
21 | this.name = "unit/job/set";
22 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
23 | stringBuilder.Append("\"iid\":");
24 | stringBuilder.Append(iid_unit);
25 | stringBuilder.Append(",\"iid_job\":");
26 | stringBuilder.Append(iid_job);
27 | if (!string.IsNullOrEmpty(ptype))
28 | {
29 | stringBuilder.Append(",\"type\":\"");
30 | stringBuilder.Append(ptype);
31 | stringBuilder.Append('"');
32 | }
33 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatBlackList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqChatBlackList : WebAPI
8 | {
9 | public ReqChatBlackList(int start_id, int limit, int exclude_id)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/blacklist";
13 | stringBuilder.Append("\"start_id\":" + start_id.ToString() + ",");
14 | stringBuilder.Append("\"limit\":" + limit.ToString() + ",");
15 | stringBuilder.Append("\"exclude_id\":" + exclude_id.ToString());
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 |
19 | public ReqChatBlackList(int offset, int limit)
20 | {
21 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
22 | this.name = "chat/blacklist";
23 | stringBuilder.Append("\"offset\":" + offset.ToString() + ",");
24 | stringBuilder.Append("\"limit\":" + limit.ToString());
25 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqSellPiece.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqSellPiece : WebAPI
9 | {
10 | public ReqSellPiece(Dictionary sells)
11 | {
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"sells\":[");
14 | string text = string.Empty;
15 | foreach (KeyValuePair current in sells)
16 | {
17 | text += "{";
18 | string text2 = text;
19 | text = string.Concat(new object[]
20 | {
21 | text2,
22 | "\"iid\":",
23 | current.Key,
24 | ","
25 | });
26 | text = text + "\"num\":" + current.Value;
27 | text += "},";
28 | }
29 | if (text.Length > 0)
30 | {
31 | text = text.Substring(0, text.Length - 1);
32 | }
33 | stringBuilder.Append(text);
34 | stringBuilder.Append("]");
35 | this.name = "shop/piece/sell";
36 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMailSelect.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqMailSelect : WebAPI
8 | {
9 | public enum type : byte
10 | {
11 | item,
12 | unit,
13 | artifact
14 | }
15 |
16 | public ReqMailSelect(string ticketid, ReqMailSelect.type type)
17 | {
18 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
19 | this.name = "mail/select";
20 | stringBuilder.Append("\"iname\" : \"");
21 | stringBuilder.Append(ticketid);
22 | stringBuilder.Append("\",");
23 | stringBuilder.Append("\"type\" : \"");
24 | switch (type)
25 | {
26 | case ReqMailSelect.type.item:
27 | stringBuilder.Append("item");
28 | break;
29 | case ReqMailSelect.type.unit:
30 | stringBuilder.Append("unit");
31 | break;
32 | case ReqMailSelect.type.artifact:
33 | stringBuilder.Append("artifact");
34 | break;
35 | }
36 | stringBuilder.Append("\"");
37 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactEnforce.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqArtifactEnforce : WebAPI
9 | {
10 | public ReqArtifactEnforce(long iid, Dictionary usedItems)
11 | {
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("\"iid\":");
14 | stringBuilder.Append(iid);
15 | stringBuilder.Append(",\"mats\":[");
16 | string text = string.Empty;
17 | foreach (KeyValuePair current in usedItems)
18 | {
19 | text += "{";
20 | text = text + "\"iname\":\"" + current.Key + "\",";
21 | text = text + "\"num\":" + current.Value;
22 | text += "},";
23 | }
24 | if (text.Length > 0)
25 | {
26 | text = text.Substring(0, text.Length - 1);
27 | }
28 | stringBuilder.Append(text);
29 | stringBuilder.Append("]");
30 | this.name = "unit/job/artifact/enforce";
31 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqEquipExpAdd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqEquipExpAdd : WebAPI
8 | {
9 | public ReqEquipExpAdd(long iid, int slot, Dictionary usedItems)
10 | {
11 | this.name = "unit/job/equip/enforce";
12 | this.body = "\"iid\":" + iid + ",";
13 | string body = this.body;
14 | this.body = string.Concat(new object[]
15 | {
16 | body,
17 | "\"id_equip\":",
18 | slot,
19 | ","
20 | });
21 | this.body += "\"mats\":[";
22 | string text = string.Empty;
23 | foreach (KeyValuePair current in usedItems)
24 | {
25 | text += "{";
26 | text = text + "\"iname\":\"" + current.Key + "\",";
27 | text = text + "\"num\":" + current.Value;
28 | text += "},";
29 | }
30 | if (text.Length > 0)
31 | {
32 | text = text.Substring(0, text.Length - 1);
33 | }
34 | this.body += text;
35 | this.body += "]";
36 | this.body = WebAPI.GetRequestString(this.body);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 shalzuth
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/AlchemistCodeCode/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 shalzuth
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqVersus : WebAPI
8 | {
9 | public ReqVersus(string iname, int plid, int seat, string uid, VERSUS_TYPE type)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "vs/" + type.ToString().ToLower() + "match/req";
13 | stringBuilder.Append("\"iname\":\"");
14 | stringBuilder.Append("QE_VS_TEST_00");
15 | stringBuilder.Append("\",");
16 | stringBuilder.Append("\"token\":\"");
17 | stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
18 | stringBuilder.Append("\",");
19 | stringBuilder.Append("\"plid\":\"");
20 | stringBuilder.Append(plid);
21 | stringBuilder.Append("\",");
22 | stringBuilder.Append("\"seat\":\"");
23 | stringBuilder.Append(seat);
24 | stringBuilder.Append("\",");
25 | stringBuilder.Append("\"uid\":\"");
26 | stringBuilder.Append(uid);
27 | stringBuilder.Append("\"");
28 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/GameManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using SRPG;
7 |
8 | namespace AlchemistCodeCode
9 | {
10 | public class GameManager
11 | {
12 | public static GameManager Instance = new GameManager();
13 | public string Version = "1812";
14 | public string SessionID;
15 | public string AssetVersion;
16 | public string SecretKey;
17 | public string UdId;
18 | public string DeviceId;
19 |
20 | public PlayerData Player;
21 | public TowerResuponse TowerResuponse;
22 | public TowerFloorParam FindTowerFloor(string iname)
23 | {
24 | /*if (this.mTowerFloors != null)
25 | {
26 | for (int i = this.mTowerFloors.get_Count() - 1; i >= 0; i--)
27 | {
28 | if (this.mTowerFloors.get_Item(i).iname == iname)
29 | {
30 | return this.mTowerFloors.get_Item(i);
31 | }
32 | }
33 | }*/
34 | return null;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqChatChannelList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqChatChannelList : WebAPI
8 | {
9 | public ReqChatChannelList(int start_id, int limit, int exclude_id)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = "chat/channel";
13 | stringBuilder.Append("\"start_id\":" + start_id.ToString() + ",");
14 | stringBuilder.Append("\"limit\":" + limit.ToString() + ",");
15 | stringBuilder.Append("\"exclude_id\":" + exclude_id.ToString());
16 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
17 | }
18 |
19 | public ReqChatChannelList(int[] channel_ids)
20 | {
21 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
22 | this.name = "chat/channel";
23 | stringBuilder.Append("\"channel_ids\":[");
24 | for (int i = 0; i < channel_ids.Length; i++)
25 | {
26 | stringBuilder.Append(channel_ids[i]);
27 | if (i != channel_ids.Length - 1)
28 | {
29 | stringBuilder.Append(",");
30 | }
31 | }
32 | stringBuilder.Append("]");
33 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMail.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqMail : WebAPI
8 | {
9 | public ReqMail(int page, bool isPeriod, bool isRead)
10 | {
11 | this.name = "mail";
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append(this.MakeKeyValue("page", page));
14 | stringBuilder.Append(",");
15 | stringBuilder.Append(this.MakeKeyValue("isPeriod", (!isPeriod) ? 0 : 1));
16 | stringBuilder.Append(",");
17 | stringBuilder.Append(this.MakeKeyValue("isRead", (!isRead) ? 0 : 1));
18 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
19 | }
20 |
21 | private string MakeKeyValue(string key, int value)
22 | {
23 | return string.Format("\"{0}\":{1}", key, value);
24 | }
25 |
26 | private string MakeKeyValue(string key, float value)
27 | {
28 | return string.Format("\"{0}\":{1}", key, value);
29 | }
30 |
31 | private string MakeKeyValue(string key, long value)
32 | {
33 | return string.Format("\"{0}\":{1}", key, value);
34 | }
35 |
36 | private string MakeKeyValue(string key, string value)
37 | {
38 | return string.Format("\"{0}\":\"{1}\"", key, value);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqAbilityRankUp.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqAbilityRankUp : WebAPI
9 | {
10 | public ReqAbilityRankUp(Dictionary abilities, string trophyprog = null, string bingoprog = null)
11 | {
12 | this.name = "unit/job/abil/lvup";
13 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
14 | stringBuilder.Append("\"aps\":[");
15 | string text = string.Empty;
16 | foreach (KeyValuePair current in abilities)
17 | {
18 | text += "{";
19 | string text2 = text;
20 | text = string.Concat(new object[]
21 | {
22 | text2,
23 | "\"iid\":",
24 | current.Key,
25 | ","
26 | });
27 | text = text + "\"ap\":" + current.Value;
28 | text += "},";
29 | }
30 | if (text.Length > 0)
31 | {
32 | stringBuilder.Append(text.Substring(0, text.Length - 1));
33 | }
34 | stringBuilder.Append("]");
35 | if (!string.IsNullOrEmpty(trophyprog))
36 | {
37 | stringBuilder.Append(",");
38 | stringBuilder.Append(trophyprog);
39 | }
40 | if (!string.IsNullOrEmpty(bingoprog))
41 | {
42 | stringBuilder.Append(",");
43 | stringBuilder.Append(bingoprog);
44 | }
45 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/DataExtractor/Wiki/Skills.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Newtonsoft.Json.Linq;
7 |
8 | namespace DataExtractor.Wiki
9 | {
10 | public static class Skills
11 | {
12 | public static String CreateSkillListPage(List skills)
13 | {
14 | string header = "The following are the available '''{{PAGENAME}}''' for '''[[{{Gamename}}]]'''.[[Category:Equipment Data]]\n\n";
15 | header += "=={{PAGENAME}}==\n{| class=\"wikitable sortable\"\n |-\n ! Name\n";
16 | string footer = "\n |}";
17 | string skillList = String.Join("\n", skills.Select(j =>
18 | " |-\n | [[" + Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_NAME"]
19 | + "]] || " + Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_EXPR"]));
20 | return header + skillList + footer;
21 | }
22 | public static String CreateSkillPage(JToken skill)
23 | {
24 | string Content = "'''{{PAGENAME}}''' is an '''[[Equipment]]''' in '''[[The Alchemist Code]]'''.[[Category:Equipment Data]]\n\n";
25 | Content += "==Info==\n";
26 | Content += "'''Stats''' : " + Updater.Loc_english_LocalizedMasterParam[skill["iname"] + "_EXPR"] + "\n\n";
27 | Content += "'''Description''' : " + Updater.Loc_english_LocalizedMasterParam[skill["iname"] + "_FLAVOR"] + "";
28 | return Content;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/DataExtractor/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("DataExtractor")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("DataExtractor")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("63ae8754-a4fd-4582-8405-df6cfaabc80c")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComReq.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqBtlComReq : WebAPI
8 | {
9 | public ReqBtlComReq(string iname, string fuid, bool multi, int partyIndex, bool isHost = false, int plid = 0, int seat = 0)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | this.name = ((!multi) ? "btl/com/req" : "btl/multi/req");
13 | stringBuilder.Append("\"iname\":\"");
14 | stringBuilder.Append(iname);
15 | stringBuilder.Append("\",");
16 | if (partyIndex >= 0)
17 | {
18 | stringBuilder.Append("\"partyid\":");
19 | stringBuilder.Append(partyIndex);
20 | stringBuilder.Append(",");
21 | }
22 | if (multi)
23 | {
24 | stringBuilder.Append("\"token\":\"");
25 | stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
26 | stringBuilder.Append("\",");
27 | stringBuilder.Append("\"host\":\"");
28 | stringBuilder.Append((!isHost) ? "0" : "1");
29 | stringBuilder.Append("\",");
30 | stringBuilder.Append("\"plid\":\"");
31 | stringBuilder.Append(plid);
32 | stringBuilder.Append("\",");
33 | stringBuilder.Append("\"seat\":\"");
34 | stringBuilder.Append(seat);
35 | stringBuilder.Append("\",");
36 | }
37 | stringBuilder.Append("\"btlparam\":{\"help\":{\"fuid\":\"");
38 | stringBuilder.Append(fuid);
39 | stringBuilder.Append("\"}}");
40 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("AlchemistCodeCode")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("AlchemistCodeCode")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("817ac3d2-c88a-4556-94b2-173af31645a3")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/DataExtractor/Wiki/Equipments.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Newtonsoft.Json.Linq;
7 |
8 | namespace DataExtractor.Wiki
9 | {
10 | public static class Equipments
11 | {
12 | public static String CreateEquipmentListPage(List equipment)
13 | {
14 | string header = "The following are the available '''Equipments''' for '''[[{{Gamename}}]]'''.[[Category:Equipment Data]]\n\n";
15 | header += "==Equipment==\n{| class=\"wikitable sortable\"\n |-\n ! Name\n";
16 | string footer = "\n |}";
17 | string equipmentList = String.Join("\n", equipment.Select(j =>
18 | " |-\n | [[" + Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_NAME"]
19 | + "]] || " + Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_EXPR"]));
20 | return header + equipmentList + footer;
21 | }
22 | public static String CreateEquipmentPage(JToken equipment)
23 | {
24 | string Content = "'''{{PAGENAME}}''' is an '''[[Equipment]]''' in '''[[The Alchemist Code]]'''.[[Category:Equipment Data]]\n\n";
25 | Content += "==Info==\n";
26 | Content += "'''Stats''' : " + Updater.Loc_english_LocalizedMasterParam[equipment["iname"] + "_EXPR"] + "\n\n";
27 | Content += "'''Description''' : " + Updater.Loc_english_LocalizedMasterParam[equipment["iname"] + "_FLAVOR"] + "";
28 | return Content;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqParty.cs:
--------------------------------------------------------------------------------
1 | using GR;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 | using SRPG;
6 |
7 | namespace AlchemistCodeCode.Network.Requests
8 | {
9 | public class ReqParty : WebAPI
10 | {
11 | public ReqParty(bool needUpdateMultiRoom = false, bool ignoreEmpty = true)
12 | {
13 | List partys = GameManager.Instance.Player.Partys;
14 | this.name = "party2";
15 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
16 | stringBuilder.Append("\"parties\":[");
17 | int num = 0;
18 | for (int i = 0; i < partys.Count; i++)
19 | {
20 | if (!ignoreEmpty || partys[i].Num != 0)
21 | {
22 | if (num > 0)
23 | {
24 | stringBuilder.Append(',');
25 | }
26 | stringBuilder.Append("{\"units\":[");
27 | for (int j = 0; j < partys[i].MAX_UNIT; j++)
28 | {
29 | if (j > 0)
30 | {
31 | stringBuilder.Append(',');
32 | }
33 | stringBuilder.Append(partys[i].GetUnitUniqueID(j));
34 | }
35 | stringBuilder.Append(']');
36 | string stringFromPartyType = PartyData.GetStringFromPartyType((PlayerPartyTypes)i);
37 | stringBuilder.Append(",\"ptype\":\"");
38 | stringBuilder.Append(stringFromPartyType);
39 | stringBuilder.Append('"');
40 | stringBuilder.Append('}');
41 | num++;
42 | }
43 | }
44 | stringBuilder.Append(']');
45 | if (needUpdateMultiRoom)
46 | {
47 | stringBuilder.Append(",\"roomowner\":1");
48 | DebugUtility.Log("UpdateMulti!");
49 | }
50 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/AlchemistCodeCode.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26730.12
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AlchemistCodeCode", "AlchemistCodeCode\AlchemistCodeCode.csproj", "{817AC3D2-C88A-4556-94B2-173AF31645A3}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataExtractor", "DataExtractor\DataExtractor.csproj", "{63AE8754-A4FD-4582-8405-DF6CFAABC80C}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {817AC3D2-C88A-4556-94B2-173AF31645A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {817AC3D2-C88A-4556-94B2-173AF31645A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {817AC3D2-C88A-4556-94B2-173AF31645A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {817AC3D2-C88A-4556-94B2-173AF31645A3}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {63AE8754-A4FD-4582-8405-DF6CFAABC80C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {63AE8754-A4FD-4582-8405-DF6CFAABC80C}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {63AE8754-A4FD-4582-8405-DF6CFAABC80C}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {63AE8754-A4FD-4582-8405-DF6CFAABC80C}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {21A39F26-BA77-4C48-BF18-2BA2DF9FC8D2}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqMailRead.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using SRPG;
3 |
4 | namespace AlchemistCodeCode.Network.Requests
5 | {
6 | public class ReqMailRead : WebAPI
7 | {
8 | public ReqMailRead(long[] mailids, bool period, int page)
9 | {
10 | this.name = "mail/read";
11 | this.body = "\"mailids\":[";
12 | for (int i = 0; i < mailids.Length; i++)
13 | {
14 | this.body += mailids[i].ToString();
15 | if (i != mailids.Length - 1)
16 | {
17 | this.body += ",";
18 | }
19 | }
20 | this.body += "],";
21 | this.body += "\"page\":";
22 | this.body += page;
23 | this.body += ",";
24 | this.body += "\"period\":";
25 | this.body += ((!period) ? 0 : 1);
26 | this.body = WebAPI.GetRequestString(this.body);
27 | }
28 |
29 | public ReqMailRead(long[] mailids, int[] periods, int page)
30 | {
31 | this.name = "mail/read";
32 | this.body = "\"mailids\":[";
33 | for (int i = 0; i < mailids.Length; i++)
34 | {
35 | this.body += mailids[i].ToString();
36 | if (i != mailids.Length - 1)
37 | {
38 | this.body += ",";
39 | }
40 | }
41 | this.body += "],";
42 | this.body += "\"page\":";
43 | this.body += page;
44 | this.body += ",";
45 | this.body += "\"period\":";
46 | this.body += periods[0];
47 | this.body = WebAPI.GetRequestString(this.body);
48 | }
49 |
50 | public ReqMailRead(long mailid, bool period, int page, string iname)
51 | {
52 | this.name = "mail/read";
53 | this.body = "\"mailids\":[";
54 | this.body += mailid.ToString();
55 | this.body += "],";
56 | this.body += "\"page\":";
57 | this.body += page;
58 | this.body += ",";
59 | this.body += "\"period\":";
60 | this.body += ((!period) ? 0 : 1);
61 | this.body += ",";
62 | this.body += "\"selected\":\"";
63 | this.body += iname;
64 | this.body += "\"";
65 | this.body = WebAPI.GetRequestString(this.body);
66 | }
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqArtifactSet.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqArtifactSet : WebAPI
8 | {
9 | public ReqArtifactSet(long iid_job, long iid_artifact)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("\"iid_job\":");
13 | stringBuilder.Append(iid_job);
14 | stringBuilder.Append(",\"iid_artifact\":");
15 | stringBuilder.Append(iid_artifact);
16 | this.name = "unit/job/artifact/set";
17 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
18 | }
19 |
20 | public ReqArtifactSet(long iid_job, long[] iid_artifact)
21 | {
22 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
23 | stringBuilder.Append("\"iid_job\":");
24 | stringBuilder.Append(iid_job);
25 | stringBuilder.Append(",\"iid_artifact\":");
26 | stringBuilder.Append(iid_artifact[0]);
27 | stringBuilder.Append(",\"iid_artifacts\":[");
28 | for (int i = 0; i < iid_artifact.Length; i++)
29 | {
30 | if (i > 0)
31 | {
32 | stringBuilder.Append(',');
33 | }
34 | stringBuilder.Append(iid_artifact[i]);
35 | }
36 | stringBuilder.Append(']');
37 | this.name = "unit/job/artifact/set";
38 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
39 | }
40 |
41 | public ReqArtifactSet(long iid_unit, long iid_job, long[] iid_artifact)
42 | {
43 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
44 | stringBuilder.Append("\"iid_unit\":");
45 | stringBuilder.Append(iid_unit);
46 | stringBuilder.Append(",\"iid_job\":");
47 | stringBuilder.Append(iid_job);
48 | stringBuilder.Append(",\"iid_artifacts\":[");
49 | for (int i = 0; i < iid_artifact.Length; i++)
50 | {
51 | if (i > 0)
52 | {
53 | stringBuilder.Append(',');
54 | }
55 | stringBuilder.Append(iid_artifact[i]);
56 | }
57 | stringBuilder.Append(']');
58 | this.name = "unit/job/artifact/set";
59 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUpdateTrophy.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqUpdateTrophy : WebAPI
9 | {
10 | private StringBuilder sb;
11 |
12 | private bool is_begin;
13 |
14 | public ReqUpdateTrophy()
15 | {
16 | }
17 |
18 | public ReqUpdateTrophy(List trophyprogs, bool finish)
19 | {
20 | this.name = "trophy/exec";
21 | this.BeginTrophyReqString();
22 | this.AddTrophyReqString(trophyprogs, finish);
23 | this.EndTrophyReqString();
24 | this.body = WebAPI.GetRequestString(this.GetTrophyReqString());
25 | }
26 |
27 | public string GetTrophyReqString()
28 | {
29 | return this.sb.ToString();
30 | }
31 |
32 | public void BeginTrophyReqString()
33 | {
34 | this.is_begin = true;
35 | this.sb = WebAPI.GetStringBuilder();
36 | this.sb.Append("\"trophyprogs\":[");
37 | }
38 |
39 | public void EndTrophyReqString()
40 | {
41 | this.sb.Append(']');
42 | }
43 |
44 | public void AddTrophyReqString(List trophyprogs, bool finish)
45 | {
46 | int num = 0;
47 | int value = 0;
48 | if (finish)
49 | {
50 | value = int.Parse(DateTime.Now.ToString("yyMMdd"));
51 | }
52 | for (int i = 0; i < trophyprogs.Count; i++)
53 | {
54 | if (this.is_begin)
55 | {
56 | this.is_begin = false;
57 | }
58 | else
59 | {
60 | this.sb.Append(',');
61 | }
62 | this.sb.Append("{\"iname\":\"");
63 | this.sb.Append(trophyprogs[i].iname);
64 | this.sb.Append("\",");
65 | this.sb.Append("\"pts\":[");
66 | for (int j = 0; j < trophyprogs[i].Count.Length; j++)
67 | {
68 | if (j > 0)
69 | {
70 | this.sb.Append(',');
71 | }
72 | this.sb.Append(trophyprogs[i].Count[j]);
73 | }
74 | this.sb.Append("],");
75 | this.sb.Append("\"ymd\":");
76 | this.sb.Append(trophyprogs[i].StartYMD);
77 | if (finish)
78 | {
79 | this.sb.Append(",\"rewarded_at\":");
80 | this.sb.Append(value);
81 | }
82 | this.sb.Append("}");
83 | num++;
84 | }
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqUpdateBingo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqUpdateBingo : WebAPI
9 | {
10 | private StringBuilder sb;
11 |
12 | private bool is_begin;
13 |
14 | public ReqUpdateBingo()
15 | {
16 | }
17 |
18 | public ReqUpdateBingo(List trophyprogs, bool finish)
19 | {
20 | this.name = "bingo/exec";
21 | this.BeginBingoReqString();
22 | this.AddBingoReqString(trophyprogs, finish);
23 | this.EndBingoReqString();
24 | this.body = WebAPI.GetRequestString(this.GetBingoReqString());
25 | }
26 |
27 | public string GetBingoReqString()
28 | {
29 | return this.sb.ToString();
30 | }
31 |
32 | public void BeginBingoReqString()
33 | {
34 | this.is_begin = true;
35 | this.sb = WebAPI.GetStringBuilder();
36 | this.sb.Append("\"bingoprogs\":[");
37 | }
38 |
39 | public void EndBingoReqString()
40 | {
41 | this.sb.Append(']');
42 | }
43 |
44 | public void AddBingoReqString(List progs, bool finish)
45 | {
46 | int num = 0;
47 | int value = 0;
48 | if (finish)
49 | {
50 | value = int.Parse(DateTime.Now.ToString("yyMMdd"));
51 | }
52 | for (int i = 0; i < progs.Count; i++)
53 | {
54 | if (this.is_begin)
55 | {
56 | this.is_begin = false;
57 | }
58 | else
59 | {
60 | this.sb.Append(',');
61 | }
62 | this.sb.Append("{\"iname\":\"");
63 | this.sb.Append(progs[i].iname);
64 | this.sb.Append("\",");
65 | this.sb.Append("\"parent\":\"");
66 | if (progs[i].Param != null)
67 | {
68 | this.sb.Append(progs[i].Param.ParentTrophy);
69 | }
70 | this.sb.Append("\",");
71 | this.sb.Append("\"pts\":[");
72 | for (int j = 0; j < progs[i].Count.Length; j++)
73 | {
74 | if (j > 0)
75 | {
76 | this.sb.Append(',');
77 | }
78 | this.sb.Append(progs[i].Count[j]);
79 | }
80 | this.sb.Append("],");
81 | this.sb.Append("\"ymd\":");
82 | this.sb.Append(progs[i].StartYMD);
83 | if (finish)
84 | {
85 | this.sb.Append(",\"rewarded_at\":");
86 | this.sb.Append(value);
87 | }
88 | this.sb.Append("}");
89 | num++;
90 | }
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/SaveFile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace AlchemistCodeCode
8 | {
9 | public class SaveFile
10 | {
11 | static byte[] xorArray = new byte[128]
12 | {
13 | 0x08, 0x38, 0x55, 0x64, 0x17, 0xa0, 0x78, 0x4c, 0xf5, 0x97, 0x86, 0x4b, 0x16, 0xac, 0x9d, 0xd9,
14 | 0xaa, 0x1c, 0x81, 0x7a, 0x27, 0xae, 0x3f, 0x2c, 0xa1, 0x95, 0x80, 0xf4, 0xc8, 0x97, 0xd8, 0x6d,
15 | 0x98, 0x2c, 0x12, 0x5b, 0x88, 0x74, 0x13, 0xbe, 0xe6, 0x84, 0xda, 0xac, 0x14, 0x19, 0xf3, 0x38,
16 | 0x8a, 0xe2, 0x9d, 0x5d, 0xa0, 0x5c, 0x03, 0x71, 0xf6, 0x5b, 0x56, 0xb6, 0x48, 0x14, 0xe7, 0x16,
17 | 0xea, 0x44, 0x3b, 0xd0, 0xd8, 0x20, 0xd5, 0x65, 0xe9, 0xbe, 0xf9, 0xb2, 0xa8, 0x49, 0x1e, 0x80,
18 | 0x1e, 0xd8, 0x80, 0xf1, 0x3f, 0x71, 0x5f, 0x79, 0x92, 0xe3, 0xef, 0xb8, 0xbe, 0xe9, 0x63, 0x5a,
19 | 0x1e, 0xcf, 0x24, 0x5b, 0x87, 0x6b, 0xa2, 0xdc, 0x13, 0x3d, 0x7b, 0xfe, 0x19, 0x60, 0x53, 0xcf,
20 | 0x13, 0x03, 0x45, 0x4f, 0x0f, 0x84, 0xc8, 0x87, 0xac, 0x2a, 0xd5, 0xbc, 0x70, 0xbd, 0xfd, 0x66
21 | };
22 | static List Decrypt(List result)
23 | {
24 | int v2 = 153;
25 | for (int i = 0; i < result.Count; ++i)
26 | {
27 | v2 ^= result[i] ^ xorArray[i & 0x7F];
28 | result[i] = (byte)v2;
29 | }
30 | return result;
31 | }
32 | static List Encrypt(List result)
33 | {
34 | byte v2 = 0x99;
35 | byte v4;
36 | for (int i = 0; i < result.Count; ++i)
37 | {
38 | v4 = result[i];
39 | result[i] = (byte)(v2 ^ xorArray[i & 0x7F] ^ v4);
40 | v2 = v4;
41 | }
42 | return result;
43 | }
44 | public static void Save(String deviceId, String secret, String saveFileLoc)
45 | {
46 | var fileContent = deviceId + " " + secret;
47 | var fileBytes = Encoding.UTF8.GetBytes(fileContent);
48 | var saveFileBytes = Encrypt(fileBytes.ToList());
49 | File.WriteAllBytes(saveFileLoc, saveFileBytes.ToArray());
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/DataExtractor/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.IO;
5 | using Mono.Cecil;
6 | using ICSharpCode.Decompiler;
7 | using ICSharpCode.Decompiler.Ast;
8 |
9 | namespace DataExtractor
10 | {
11 | class Program
12 | {
13 | static void Main(string[] args)
14 | {
15 | //Wiki.Updater.Update();
16 | // todo - add getting Assembly-CSharp.dll dynamically
17 | var assemblyDefinition = AssemblyDefinition.ReadAssembly(@"Assembly-CSharp.dll");
18 | var types = assemblyDefinition.MainModule.Types.ToList().FindAll(t => t.Name.StartsWith("Req"));
19 | foreach (var type in types)
20 | {
21 | var decompiler = new AstBuilder(new DecompilerContext(type.Module));
22 | decompiler.AddType(type);
23 | var output = new StringWriter();
24 | decompiler.GenerateCode(new PlainTextOutput(output));
25 | var code = output.ToString();
26 | code = code.Replace("Network.", "Networking.");
27 | code = code.Replace("Mathf.", "Math.");
28 | code = code.Replace("using UnityEngine;\r\n", "");
29 | code = code.Replace("\r\nnamespace SRPG", "using SRPG;\r\n\r\nnamespace AlchemistCodeCode.Network.Requests");
30 | //code = code.Replace("\r\nnamespace SRPG", "\r\n\r\nnamespace AlchemistCodeCode.Network.Requests");
31 | code = code.Replace("SystemInfo.deviceModel", "\"samsung SM-E7000\"");
32 | code = code.Replace(", Networking.ResponseCallback response = null", "");
33 | code = code.Replace(", Networking.ResponseCallback response", "");
34 | code = code.Replace("Networking.ResponseCallback response, ", "");
35 | code = code.Replace("Networking.ResponseCallback response", "");
36 | code = code.Replace(", response", "");
37 | code = code.Replace("\r\n this.callback = response;", "");
38 | code = code.Replace("TimeManager.ServerTime.ToYMD()", "int.Parse(DateTime.Now.ToString(\"yyMMdd\"))");
39 | code = code.Replace("GameUtility.ConvertLanguageToISO639(language)", "language");
40 | code = code.Replace("MonoSingleton<", "");
41 | code = code.Replace(">.Instance", ".Instance");
42 | //Console.WriteLine(code);
43 | //File.WriteAllText(@"..\AlchemistCodeCode\Network\Requests\" + type.Name + ".cs", code);
44 | }
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqVersusEnd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network.Requests
6 | {
7 | public class ReqVersusEnd : WebAPI
8 | {
9 | public ReqVersusEnd(long btlid, int time, BtlResultTypes result, int[] beats, string uid, string fuid, VERSUS_TYPE type, string trophyprog = null, string bingoprog = null, string maxdata = null)
10 | {
11 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
12 | stringBuilder.Append("vs/");
13 | stringBuilder.Append(type.ToString().ToLower());
14 | stringBuilder.Append("match/end");
15 | this.name = stringBuilder.ToString();
16 | stringBuilder.Length = 0;
17 | stringBuilder.Append("\"btlid\":");
18 | stringBuilder.Append(btlid);
19 | stringBuilder.Append(',');
20 | stringBuilder.Append("\"btlendparam\":{");
21 | stringBuilder.Append("\"time\":");
22 | stringBuilder.Append(time);
23 | stringBuilder.Append(',');
24 | stringBuilder.Append("\"result\":\"");
25 | switch (result)
26 | {
27 | case BtlResultTypes.Win:
28 | stringBuilder.Append("win");
29 | break;
30 | case BtlResultTypes.Lose:
31 | stringBuilder.Append("lose");
32 | break;
33 | case BtlResultTypes.Retire:
34 | stringBuilder.Append("retire");
35 | break;
36 | case BtlResultTypes.Cancel:
37 | stringBuilder.Append("cancel");
38 | break;
39 | case BtlResultTypes.Draw:
40 | stringBuilder.Append("draw");
41 | break;
42 | }
43 | if (result == BtlResultTypes.Win && beats == null)
44 | {
45 | beats = new int[0];
46 | }
47 | stringBuilder.Append("\",");
48 | if (beats != null)
49 | {
50 | stringBuilder.Append("\"beats\":[");
51 | for (int i = 0; i < beats.Length; i++)
52 | {
53 | if (i > 0)
54 | {
55 | stringBuilder.Append(',');
56 | }
57 | stringBuilder.Append(beats[i].ToString());
58 | }
59 | stringBuilder.Append("],");
60 | }
61 | stringBuilder.Append("\"steals\":[");
62 | stringBuilder.Append("],");
63 | stringBuilder.Append("\"missions\":[");
64 | stringBuilder.Append("],");
65 | stringBuilder.Append("\"token\":\"");
66 | stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
67 | stringBuilder.Append("\",");
68 | if (stringBuilder[stringBuilder.Length - 1] == ',')
69 | {
70 | stringBuilder.Length--;
71 | }
72 | stringBuilder.Append("},");
73 | stringBuilder.Append("\"uid\":\"");
74 | stringBuilder.Append(uid);
75 | stringBuilder.Append("\",");
76 | stringBuilder.Append("\"fuid\":\"");
77 | stringBuilder.Append(fuid);
78 | stringBuilder.Append("\"");
79 | if (!string.IsNullOrEmpty(trophyprog))
80 | {
81 | stringBuilder.Append(",");
82 | stringBuilder.Append(trophyprog);
83 | }
84 | if (!string.IsNullOrEmpty(bingoprog))
85 | {
86 | stringBuilder.Append(",");
87 | stringBuilder.Append(bingoprog);
88 | }
89 | if (!string.IsNullOrEmpty(maxdata))
90 | {
91 | stringBuilder.Append(",");
92 | stringBuilder.Append(maxdata);
93 | }
94 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Networking.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Net;
4 | using System.Text;
5 | using System.Text.RegularExpressions;
6 | using Newtonsoft.Json;
7 | using Newtonsoft.Json.Linq;
8 |
9 | namespace AlchemistCodeCode.Network
10 | {
11 | public static class Networking
12 | {
13 | public static int debuglevel = 0;
14 | public static int TicketID = 1;
15 | public delegate void ResponseCallback(SRPG.WWWResult result);
16 | private static int FindStat(string response)
17 | {
18 | Regex regex = new Regex("\"stat\":(?\\d+)", 0);
19 | Match match = regex.Match(response);
20 | if (!match.Success)
21 | {
22 | return 0;
23 | }
24 | return Convert.ToInt32(regex.Match(response).Result("${stat}"));
25 | }
26 | private static string FindMessage(string response)
27 | {
28 | Regex regex = new Regex("\"stat_msg\":\"(?.+?)\"[,}]", 0);
29 | Match match = regex.Match(response);
30 | if (!match.Success)
31 | {
32 | return string.Empty;
33 | }
34 | return regex.Match(response).Result("${stat_msg}");
35 | }
36 | public static JObject RequestAPI(WebAPI api)
37 | {
38 | if (debuglevel > 0)
39 | Console.Write("Requesting " + api.name + "...");
40 | HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://app.alcww.gumi.sg/"/*SRPG.Network.Host*/ + api.name);
41 | httpWebRequest.ContentType = "application/json; charset=utf-8";
42 | httpWebRequest.Timeout = ((int)(240 * 1000f));
43 | httpWebRequest.UserAgent = "Mozilla/5.0 (Linux; Android 4.4.2; SM-E7000 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36";
44 | if (!string.IsNullOrEmpty(GameManager.Instance.Version))
45 | httpWebRequest.Headers.Add("x-app-ver", GameManager.Instance.Version);
46 | if (!string.IsNullOrEmpty(GameManager.Instance.AssetVersion))
47 | httpWebRequest.Headers.Add("x-asset-ver", GameManager.Instance.AssetVersion);
48 | httpWebRequest.Headers.Set("X-GUMI-TRANSACTION", api.GumiTransactionId);
49 | httpWebRequest.Headers.Set("X-Unity-Version", "5.3.6f1");
50 | if (!string.IsNullOrEmpty(GameManager.Instance.SessionID))
51 | httpWebRequest.Headers.Add("Authorization", "gumi " + GameManager.Instance.SessionID);
52 | HttpWebResponse httpWebResponse = null;
53 | string response = null;
54 | try
55 | {
56 | if (string.IsNullOrEmpty(api.body))
57 | {
58 | httpWebRequest.Method = "GET";
59 | }
60 | else
61 | {
62 | httpWebRequest.Method = "POST";
63 | byte[] bytes = Encoding.UTF8.GetBytes(api.body);
64 | httpWebRequest.ContentLength = (long)bytes.Length;
65 | BinaryWriter binaryWriter = new BinaryWriter(httpWebRequest.GetRequestStream());
66 | binaryWriter.Write(bytes);
67 | binaryWriter.Close();
68 | }
69 | httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
70 | StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), true);
71 | response = streamReader.ReadToEnd();
72 | }
73 | catch (Exception exception)
74 | {
75 | Console.WriteLine(exception.Message);
76 | }
77 | finally
78 | {
79 | if (httpWebResponse != null)
80 | httpWebResponse.Close();
81 | }
82 | if (debuglevel > 1)
83 | {
84 | if (api.body != null)
85 | Console.WriteLine(((JObject)JsonConvert.DeserializeObject(api.body)).ToString());
86 | Console.WriteLine(((JObject)JsonConvert.DeserializeObject(response)).ToString());
87 | }
88 | if (debuglevel > 0)
89 | Console.WriteLine(" done.");
90 | TicketID++;
91 | return (JObject)JsonConvert.DeserializeObject(response);
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/WebAPI.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using SRPG;
4 |
5 | namespace AlchemistCodeCode.Network
6 | {
7 | public abstract class WebAPI
8 | {
9 | public string name;
10 | public string body;
11 | public Networking.ResponseCallback callback;
12 | public readonly string GumiTransactionId = Guid.NewGuid().ToString();
13 | private static StringBuilder mSB = new StringBuilder(512);
14 | protected static StringBuilder GetStringBuilder()
15 | {
16 | mSB.Length = 0;
17 | return mSB;
18 | }
19 | public static string EscapeString(string s)
20 | {
21 | s = s.Replace("\\", "\\\\");
22 | s = s.Replace("\"", "\\\"");
23 | return s;
24 | }
25 | protected static string GetRequestString(string body)
26 | {
27 | string text = "{\"ticket\":" + Networking.TicketID;
28 | if (!string.IsNullOrEmpty(body))
29 | {
30 | text = text + ",\"param\":{" + body + "}";
31 | }
32 | return text + "}";
33 | }
34 | protected static string GetBtlEndParamString(BattleCore.Record record, bool multi = false)
35 | {
36 | string text = null;
37 | if (record != null)
38 | {
39 | int num = 0;
40 | string text2 = "win";
41 | if (multi && record.result == BattleCore.QuestResult.Pending)
42 | {
43 | text2 = "retire";
44 | }
45 | else if (record.result != BattleCore.QuestResult.Win)
46 | {
47 | text2 = "lose";
48 | }
49 | int[] array = new int[record.drops.Length];
50 | for (int i = 0; i < record.drops.Length; i++)
51 | {
52 | array[i] = record.drops[i];
53 | }
54 | int[] array2 = new int[record.item_steals.Length];
55 | for (int j = 0; j < record.item_steals.Length; j++)
56 | {
57 | array2[j] = record.item_steals[j];
58 | }
59 | int[] array3 = new int[record.gold_steals.Length];
60 | for (int k = 0; k < record.gold_steals.Length; k++)
61 | {
62 | array3[k] = record.gold_steals[k];
63 | }
64 | int[] array4 = new int[3];
65 | for (int l = 0; l < array4.Length; l++)
66 | {
67 | array4[l] = (((record.bonusFlags & 1 << l) == 0) ? 0 : 1);
68 | }
69 | text += "\"btlendparam\":{";
70 | string text3 = text;
71 | text = string.Concat(new object[]
72 | {
73 | text3,
74 | "\"time\":",
75 | num,
76 | ","
77 | });
78 | text = text + "\"result\":\"" + text2 + "\",";
79 | text += "\"beats\":[";
80 | for (int m = 0; m < array.Length; m++)
81 | {
82 | text += array[m].ToString();
83 | if (m != array.Length - 1)
84 | {
85 | text += ",";
86 | }
87 | }
88 | text += "],";
89 | text += "\"steals\":{";
90 | text += "\"items\":[";
91 | for (int n = 0; n < array2.Length; n++)
92 | {
93 | text += array2[n].ToString();
94 | if (n != array.Length - 1)
95 | {
96 | text += ",";
97 | }
98 | }
99 | text += "],";
100 | text += "\"golds\":[";
101 | for (int num2 = 0; num2 < array3.Length; num2++)
102 | {
103 | text += array3[num2].ToString();
104 | if (num2 != array.Length - 1)
105 | {
106 | text += ",";
107 | }
108 | }
109 | text += "]";
110 | text += "},";
111 | text += "\"missions\":[";
112 | for (int num3 = 0; num3 < array4.Length; num3++)
113 | {
114 | text += array4[num3].ToString();
115 | if (num3 != array4.Length - 1)
116 | {
117 | text += ",";
118 | }
119 | }
120 | text += "]";
121 | if (multi)
122 | {
123 | text = text + ",\"token\":\"" + JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName) + "\"";
124 | }
125 | text += "}";
126 | }
127 | return text;
128 | }
129 | public class JSON_BaseResponse
130 | {
131 | public int stat;
132 | public string stat_msg;
133 | public string stat_code;
134 | public long time;
135 | public int ticket;
136 | }
137 | public class JSON_BodyResponse : JSON_BaseResponse
138 | {
139 | public T body;
140 | }
141 | }
142 | }
143 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqBtlComEnd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SRPG;
5 |
6 | namespace AlchemistCodeCode.Network.Requests
7 | {
8 | public class ReqBtlComEnd : WebAPI
9 | {
10 | public ReqBtlComEnd(long btlid, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, string[] fuid, Dictionary usedItems, BtlEndTypes apiType, string trophyprog = null, string bingoprog = null, string maxdata = null)
11 | {
12 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
13 | stringBuilder.Append("btl/");
14 | stringBuilder.Append(apiType.ToString());
15 | stringBuilder.Append("/end");
16 | this.name = stringBuilder.ToString();
17 | stringBuilder.Length = 0;
18 | stringBuilder.Append("\"btlid\":");
19 | stringBuilder.Append(btlid);
20 | stringBuilder.Append(',');
21 | stringBuilder.Append("\"btlendparam\":{");
22 | stringBuilder.Append("\"time\":");
23 | stringBuilder.Append(time);
24 | stringBuilder.Append(',');
25 | stringBuilder.Append("\"result\":\"");
26 | switch (result)
27 | {
28 | case BtlResultTypes.Win:
29 | stringBuilder.Append("win");
30 | break;
31 | case BtlResultTypes.Lose:
32 | stringBuilder.Append("lose");
33 | break;
34 | case BtlResultTypes.Retire:
35 | stringBuilder.Append("retire");
36 | break;
37 | case BtlResultTypes.Cancel:
38 | stringBuilder.Append("cancel");
39 | break;
40 | }
41 | if (result == BtlResultTypes.Win)
42 | {
43 | if (beats == null)
44 | {
45 | beats = new int[0];
46 | }
47 | if (itemSteals == null)
48 | {
49 | itemSteals = new int[0];
50 | }
51 | if (goldSteals == null)
52 | {
53 | goldSteals = new int[0];
54 | }
55 | if (missions == null)
56 | {
57 | missions = new int[3];
58 | }
59 | }
60 | if (result != BtlResultTypes.Cancel && usedItems == null)
61 | {
62 | usedItems = new Dictionary();
63 | }
64 | stringBuilder.Append("\",");
65 | if (beats != null)
66 | {
67 | stringBuilder.Append("\"beats\":[");
68 | for (int i = 0; i < beats.Length; i++)
69 | {
70 | if (i > 0)
71 | {
72 | stringBuilder.Append(',');
73 | }
74 | stringBuilder.Append(beats[i].ToString());
75 | }
76 | stringBuilder.Append("],");
77 | }
78 | if (itemSteals != null || goldSteals != null)
79 | {
80 | stringBuilder.Append("\"steals\":{");
81 | if (itemSteals != null)
82 | {
83 | stringBuilder.Append("\"items\":[");
84 | for (int j = 0; j < itemSteals.Length; j++)
85 | {
86 | stringBuilder.Append(itemSteals[j].ToString());
87 | if (j != beats.Length - 1)
88 | {
89 | stringBuilder.Append(',');
90 | }
91 | }
92 | stringBuilder.Append("]");
93 | }
94 | if (goldSteals != null)
95 | {
96 | if (itemSteals != null)
97 | {
98 | stringBuilder.Append(',');
99 | }
100 | stringBuilder.Append("\"golds\":[");
101 | for (int k = 0; k < goldSteals.Length; k++)
102 | {
103 | stringBuilder.Append(goldSteals[k].ToString());
104 | if (k != beats.Length - 1)
105 | {
106 | stringBuilder.Append(",");
107 | }
108 | }
109 | stringBuilder.Append("]");
110 | }
111 | stringBuilder.Append("},");
112 | }
113 | if (missions != null)
114 | {
115 | stringBuilder.Append("\"missions\":[");
116 | for (int l = 0; l < missions.Length; l++)
117 | {
118 | if (l > 0)
119 | {
120 | stringBuilder.Append(',');
121 | }
122 | stringBuilder.Append(missions[l].ToString());
123 | }
124 | stringBuilder.Append("],");
125 | }
126 | if (usedItems != null)
127 | {
128 | stringBuilder.Append("\"inputs\":[");
129 | int num = 0;
130 | foreach (KeyValuePair current in usedItems)
131 | {
132 | if (num > 0)
133 | {
134 | stringBuilder.Append(',');
135 | }
136 | stringBuilder.Append("{");
137 | stringBuilder.Append("\"use\":\"");
138 | stringBuilder.Append(current.Key);
139 | stringBuilder.Append("\",");
140 | stringBuilder.Append("\"n\":");
141 | stringBuilder.Append(current.Value);
142 | stringBuilder.Append("}");
143 | num++;
144 | }
145 | stringBuilder.Append("],");
146 | }
147 | if (apiType == BtlEndTypes.multi)
148 | {
149 | stringBuilder.Append("\"token\":\"");
150 | stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
151 | stringBuilder.Append("\",");
152 | }
153 | if (stringBuilder[stringBuilder.Length - 1] == ',')
154 | {
155 | stringBuilder.Length--;
156 | }
157 | stringBuilder.Append('}');
158 | if (apiType == BtlEndTypes.multi && fuid != null)
159 | {
160 | stringBuilder.Append(",\"fuids\":[");
161 | for (int m = 0; m < fuid.Length; m++)
162 | {
163 | if (fuid[m] != null)
164 | {
165 | if (m != 0)
166 | {
167 | stringBuilder.Append(", ");
168 | }
169 | stringBuilder.Append("\"");
170 | stringBuilder.Append(fuid[m]);
171 | stringBuilder.Append("\"");
172 | }
173 | }
174 | stringBuilder.Append("]");
175 | }
176 | if (!string.IsNullOrEmpty(trophyprog))
177 | {
178 | stringBuilder.Append(",");
179 | stringBuilder.Append(trophyprog);
180 | }
181 | if (!string.IsNullOrEmpty(bingoprog))
182 | {
183 | stringBuilder.Append(",");
184 | stringBuilder.Append(bingoprog);
185 | }
186 | if (!string.IsNullOrEmpty(maxdata))
187 | {
188 | stringBuilder.Append(",");
189 | stringBuilder.Append(maxdata);
190 | }
191 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
192 | }
193 | }
194 | }
195 |
--------------------------------------------------------------------------------
/DataExtractor/DataExtractor.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {63AE8754-A4FD-4582-8405-DF6CFAABC80C}
8 | Exe
9 | DataExtractor
10 | DataExtractor
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | ..\bin\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | ..\bin\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 |
36 | ..\Assembly-CSharp.dll
37 |
38 |
39 | ..\packages\ICSharpCode.Decompiler.2.3.1\lib\Net40\ICSharpCode.Decompiler.dll
40 |
41 |
42 | ..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll
43 |
44 |
45 | ..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.Cecil.dll
46 |
47 |
48 | ..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll
49 |
50 |
51 | ..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.Xml.dll
52 |
53 |
54 | ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll
55 |
56 |
57 | ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Mdb.dll
58 |
59 |
60 | ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Pdb.dll
61 |
62 |
63 | ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Rocks.dll
64 |
65 |
66 | ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | ..\UnityEngine.dll
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | {817ac3d2-c88a-4556-94b2-173af31645a3}
100 | AlchemistCodeCode
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Network/Requests/ReqTowerBtlComEnd.cs:
--------------------------------------------------------------------------------
1 | using GR;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 | using SRPG;
6 |
7 | namespace AlchemistCodeCode.Network.Requests
8 | {
9 | public class ReqTowerBtlComEnd : WebAPI
10 | {
11 | public ReqTowerBtlComEnd(long btlid, Unit[] Player, Unit[] Enemy, int actCount, int round, byte floor, BtlResultTypes result, RandDeckResult[] deck, string trophyprog = null, string bingoprog = null, string maxdata = null)
12 | {
13 | StringBuilder stringBuilder = WebAPI.GetStringBuilder();
14 | this.name = "tower/btl/end";
15 | stringBuilder.Length = 0;
16 | this.SetValue(ref stringBuilder, "\"btlid\":", btlid);
17 | stringBuilder.Append("\"btlendparam\":{");
18 | if (Player != null)
19 | {
20 | stringBuilder.Append("\"pdeck\":[");
21 | for (int i = 0; i < Player.Length; i++)
22 | {
23 | Unit unit = Player[i];
24 | if (unit.Side == EUnitSide.Player && unit.UnitData.UniqueID != 0L)
25 | {
26 | stringBuilder.Append("{");
27 | this.SetValue(ref stringBuilder, "\"iid\":", unit.UnitData.UniqueID);
28 | this.SetValue(ref stringBuilder, "\"iname\":\"", unit.UnitData.UnitParam.iname, "\",");
29 | int num = unit.CalcTowerDamege();
30 | TowerFloorParam towerFloorParam = GameManager.Instance.FindTowerFloor(SceneBattle.Instance.Battle.QuestID);
31 | num -= towerFloorParam.CalcHelaNum(unit.MaximumStatus.param.hp);
32 | num = Math.Max(num, 0);
33 | this.SetValue(ref stringBuilder, "\"damage\":", (long)num);
34 | this.SetValue(ref stringBuilder, "\"is_died\":", (!unit.IsDeadCondition()) ? 0L : 1L, string.Empty);
35 | stringBuilder.Append("},");
36 | }
37 | }
38 | stringBuilder.Length--;
39 | stringBuilder.Append("],");
40 | }
41 | stringBuilder.Append("\"status\":\"");
42 | switch (result)
43 | {
44 | case BtlResultTypes.Win:
45 | stringBuilder.Append("win");
46 | break;
47 | case BtlResultTypes.Lose:
48 | stringBuilder.Append("lose");
49 | break;
50 | case BtlResultTypes.Retire:
51 | stringBuilder.Append("retire");
52 | break;
53 | case BtlResultTypes.Cancel:
54 | stringBuilder.Append("cancel");
55 | break;
56 | }
57 | stringBuilder.Append("\"");
58 | stringBuilder.Append(",\"turn\":");
59 | stringBuilder.Append(actCount);
60 | stringBuilder.Append(",\"round\":");
61 | stringBuilder.Append(round);
62 | stringBuilder.Append(",\"floor\":");
63 | stringBuilder.Append(floor);
64 | if (result == BtlResultTypes.Lose)
65 | {
66 | stringBuilder.Append(",\"edeck\":[");
67 | List list = new List(Enemy);
68 | list.RemoveAll((Unit x) => x.Side != EUnitSide.Enemy);
69 | if (GameManager.Instance.TowerResuponse.edeck != null)
70 | {
71 | List edeck = GameManager.Instance.TowerResuponse.edeck;
72 | int num2 = 0;
73 | for (int j = 0; j < edeck.Count; j++)
74 | {
75 | if (edeck[j].hp == 0)
76 | {
77 | stringBuilder.Append("{");
78 | this.SetValue(ref stringBuilder, "\"eid\":\"", (long)j, "\",");
79 | this.SetValue(ref stringBuilder, "\"iname\":\"", edeck[j].iname, "\",");
80 | this.SetValue(ref stringBuilder, "\"hp\":", 0L);
81 | this.SetValue(ref stringBuilder, "\"jewel\":", 0L, string.Empty);
82 | stringBuilder.Append("},");
83 | }
84 | else
85 | {
86 | Unit unit2 = list[num2];
87 | num2++;
88 | if (unit2.Side == EUnitSide.Enemy)
89 | {
90 | stringBuilder.Append("{");
91 | this.SetValue(ref stringBuilder, "\"eid\":\"", (long)j, "\",");
92 | this.SetValue(ref stringBuilder, "\"iname\":\"", unit2.UnitParam.iname, "\",");
93 | this.SetValue(ref stringBuilder, "\"hp\":", (!unit2.IsDead) ? ((long)unit2.CurrentStatus.param.hp) : 0L);
94 | this.SetValue(ref stringBuilder, "\"jewel\":", (long)unit2.CurrentStatus.param.mp, string.Empty);
95 | stringBuilder.Append("},");
96 | }
97 | }
98 | }
99 | }
100 | else
101 | {
102 | for (int k = 0; k < list.Count; k++)
103 | {
104 | Unit unit3 = list[k];
105 | if (unit3.Side == EUnitSide.Enemy)
106 | {
107 | stringBuilder.Append("{");
108 | this.SetValue(ref stringBuilder, "\"eid\":\"", (long)k, "\",");
109 | this.SetValue(ref stringBuilder, "\"iname\":\"", unit3.UnitParam.iname, "\",");
110 | this.SetValue(ref stringBuilder, "\"hp\":", (!unit3.IsDead) ? ((long)unit3.CurrentStatus.param.hp) : 0L);
111 | this.SetValue(ref stringBuilder, "\"jewel\":", (long)unit3.CurrentStatus.param.mp, string.Empty);
112 | stringBuilder.Append("},");
113 | }
114 | }
115 | }
116 | stringBuilder.Length--;
117 | stringBuilder.Append("]");
118 | }
119 | SupportData supportData = GlobalVars.SelectedSupport.Get();
120 | if (GlobalVars.SelectedFriendID != null && supportData != null)
121 | {
122 | stringBuilder.Append(",\"help\":{\"fuid\":\"");
123 | stringBuilder.Append(GlobalVars.SelectedFriendID);
124 | stringBuilder.Append("\",\"cost\":");
125 | stringBuilder.Append(supportData.Cost);
126 | stringBuilder.Append("}");
127 | }
128 | if (!string.IsNullOrEmpty(trophyprog))
129 | {
130 | stringBuilder.Append(",");
131 | stringBuilder.Append(trophyprog);
132 | }
133 | if (!string.IsNullOrEmpty(bingoprog))
134 | {
135 | stringBuilder.Append(",");
136 | stringBuilder.Append(bingoprog);
137 | }
138 | if (!string.IsNullOrEmpty(maxdata))
139 | {
140 | stringBuilder.Append(",");
141 | stringBuilder.Append(maxdata);
142 | }
143 | stringBuilder.Append("}");
144 | this.body = WebAPI.GetRequestString(stringBuilder.ToString());
145 | }
146 |
147 | public void SetValue(ref StringBuilder sb, string name, long value)
148 | {
149 | sb.Append(name);
150 | sb.Append(value);
151 | sb.Append(",");
152 | }
153 |
154 | public void SetValue(ref StringBuilder sb, string name, string value)
155 | {
156 | sb.Append(name);
157 | sb.Append(value);
158 | sb.Append(",");
159 | }
160 |
161 | public void SetValue(ref StringBuilder sb, string name, long value, string end)
162 | {
163 | sb.Append(name);
164 | sb.Append(value);
165 | sb.Append(end);
166 | }
167 |
168 | public void SetValue(ref StringBuilder sb, string name, string value, string end)
169 | {
170 | sb.Append(name);
171 | sb.Append(value);
172 | sb.Append(end);
173 | }
174 | }
175 | }
176 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # MSTest test Results
33 | [Tt]est[Rr]esult*/
34 | [Bb]uild[Ll]og.*
35 |
36 | # NUNIT
37 | *.VisualState.xml
38 | TestResult.xml
39 |
40 | # Build Results of an ATL Project
41 | [Dd]ebugPS/
42 | [Rr]eleasePS/
43 | dlldata.c
44 |
45 | # Benchmark Results
46 | BenchmarkDotNet.Artifacts/
47 |
48 | # .NET Core
49 | project.lock.json
50 | project.fragment.lock.json
51 | artifacts/
52 | **/Properties/launchSettings.json
53 |
54 | *_i.c
55 | *_p.c
56 | *_i.h
57 | *.ilk
58 | *.meta
59 | *.obj
60 | *.pch
61 | *.pdb
62 | *.pgc
63 | *.pgd
64 | *.rsp
65 | *.sbr
66 | *.tlb
67 | *.tli
68 | *.tlh
69 | *.tmp
70 | *.tmp_proj
71 | *.log
72 | *.vspscc
73 | *.vssscc
74 | .builds
75 | *.pidb
76 | *.svclog
77 | *.scc
78 |
79 | # Chutzpah Test files
80 | _Chutzpah*
81 |
82 | # Visual C++ cache files
83 | ipch/
84 | *.aps
85 | *.ncb
86 | *.opendb
87 | *.opensdf
88 | *.sdf
89 | *.cachefile
90 | *.VC.db
91 | *.VC.VC.opendb
92 |
93 | # Visual Studio profiler
94 | *.psess
95 | *.vsp
96 | *.vspx
97 | *.sap
98 |
99 | # TFS 2012 Local Workspace
100 | $tf/
101 |
102 | # Guidance Automation Toolkit
103 | *.gpState
104 |
105 | # ReSharper is a .NET coding add-in
106 | _ReSharper*/
107 | *.[Rr]e[Ss]harper
108 | *.DotSettings.user
109 |
110 | # JustCode is a .NET coding add-in
111 | .JustCode
112 |
113 | # TeamCity is a build add-in
114 | _TeamCity*
115 |
116 | # DotCover is a Code Coverage Tool
117 | *.dotCover
118 |
119 | # AxoCover is a Code Coverage Tool
120 | .axoCover/*
121 | !.axoCover/settings.json
122 |
123 | # Visual Studio code coverage results
124 | *.coverage
125 | *.coveragexml
126 |
127 | # NCrunch
128 | _NCrunch_*
129 | .*crunch*.local.xml
130 | nCrunchTemp_*
131 |
132 | # MightyMoose
133 | *.mm.*
134 | AutoTest.Net/
135 |
136 | # Web workbench (sass)
137 | .sass-cache/
138 |
139 | # Installshield output folder
140 | [Ee]xpress/
141 |
142 | # DocProject is a documentation generator add-in
143 | DocProject/buildhelp/
144 | DocProject/Help/*.HxT
145 | DocProject/Help/*.HxC
146 | DocProject/Help/*.hhc
147 | DocProject/Help/*.hhk
148 | DocProject/Help/*.hhp
149 | DocProject/Help/Html2
150 | DocProject/Help/html
151 |
152 | # Click-Once directory
153 | publish/
154 |
155 | # Publish Web Output
156 | *.[Pp]ublish.xml
157 | *.azurePubxml
158 | # Note: Comment the next line if you want to checkin your web deploy settings,
159 | # but database connection strings (with potential passwords) will be unencrypted
160 | *.pubxml
161 | *.publishproj
162 |
163 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
164 | # checkin your Azure Web App publish settings, but sensitive information contained
165 | # in these scripts will be unencrypted
166 | PublishScripts/
167 |
168 | # NuGet Packages
169 | *.nupkg
170 | # The packages folder can be ignored because of Package Restore
171 | **/packages/*
172 | # except build/, which is used as an MSBuild target.
173 | !**/packages/build/
174 | # Uncomment if necessary however generally it will be regenerated when needed
175 | #!**/packages/repositories.config
176 | # NuGet v3's project.json files produces more ignorable files
177 | *.nuget.props
178 | *.nuget.targets
179 |
180 | # Microsoft Azure Build Output
181 | csx/
182 | *.build.csdef
183 |
184 | # Microsoft Azure Emulator
185 | ecf/
186 | rcf/
187 |
188 | # Windows Store app package directories and files
189 | AppPackages/
190 | BundleArtifacts/
191 | Package.StoreAssociation.xml
192 | _pkginfo.txt
193 | *.appx
194 |
195 | # Visual Studio cache files
196 | # files ending in .cache can be ignored
197 | *.[Cc]ache
198 | # but keep track of directories ending in .cache
199 | !*.[Cc]ache/
200 |
201 | # Others
202 | ClientBin/
203 | ~$*
204 | *~
205 | *.dbmdl
206 | *.dbproj.schemaview
207 | *.jfm
208 | *.pfx
209 | *.publishsettings
210 | orleans.codegen.cs
211 |
212 | # Since there are multiple workflows, uncomment next line to ignore bower_components
213 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
214 | #bower_components/
215 |
216 | # RIA/Silverlight projects
217 | Generated_Code/
218 |
219 | # Backup & report files from converting an old project file
220 | # to a newer Visual Studio version. Backup files are not needed,
221 | # because we have git ;-)
222 | _UpgradeReport_Files/
223 | Backup*/
224 | UpgradeLog*.XML
225 | UpgradeLog*.htm
226 |
227 | # SQL Server files
228 | *.mdf
229 | *.ldf
230 | *.ndf
231 |
232 | # Business Intelligence projects
233 | *.rdl.data
234 | *.bim.layout
235 | *.bim_*.settings
236 |
237 | # Microsoft Fakes
238 | FakesAssemblies/
239 |
240 | # GhostDoc plugin setting file
241 | *.GhostDoc.xml
242 |
243 | # Node.js Tools for Visual Studio
244 | .ntvs_analysis.dat
245 | node_modules/
246 |
247 | # Typescript v1 declaration files
248 | typings/
249 |
250 | # Visual Studio 6 build log
251 | *.plg
252 |
253 | # Visual Studio 6 workspace options file
254 | *.opt
255 |
256 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
257 | *.vbw
258 |
259 | # Visual Studio LightSwitch build output
260 | **/*.HTMLClient/GeneratedArtifacts
261 | **/*.DesktopClient/GeneratedArtifacts
262 | **/*.DesktopClient/ModelManifest.xml
263 | **/*.Server/GeneratedArtifacts
264 | **/*.Server/ModelManifest.xml
265 | _Pvt_Extensions
266 |
267 | # Paket dependency manager
268 | .paket/paket.exe
269 | paket-files/
270 |
271 | # FAKE - F# Make
272 | .fake/
273 |
274 | # JetBrains Rider
275 | .idea/
276 | *.sln.iml
277 |
278 | # CodeRush
279 | .cr/
280 |
281 | # Python Tools for Visual Studio (PTVS)
282 | __pycache__/
283 | *.pyc
284 |
285 | # Cake - Uncomment if you are using it
286 | # tools/**
287 | # !tools/packages.config
288 |
289 | # Tabs Studio
290 | *.tss
291 |
292 | # Telerik's JustMock configuration file
293 | *.jmconfig
294 |
295 | # BizTalk build output
296 | *.btp.cs
297 | *.btm.cs
298 | *.odx.cs
299 | *.xsd.cs
300 | *.dll
301 | DataExtractor/Wiki/DotNetWikiBot.cs
302 |
--------------------------------------------------------------------------------
/DataExtractor/Wiki/Units.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Newtonsoft.Json.Linq;
7 |
8 | namespace DataExtractor.Wiki
9 | {
10 | public static class Units
11 | {
12 | public static String CreateUnitListPage(List units)
13 | {
14 | string Content = "The following are the available '''Units''' for '''[[{{Gamename}}]]'''.[[Category:Unit Data]]\n\n";
15 | Content += "==Summons==\n";
16 | Content += "{| class=\"wikitable sortable\"\n";
17 | Content += " |-\n ! Portrait !! Name !! Rarity !! Max Rarity || Element || Job 1 || Job 2 || Job 3\n";
18 | foreach(var unit in units)
19 | {
20 | var unitName = Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_NAME"];
21 | Content += " |-\n | [[File:" + unitName + "Portrait.png|link=" + unitName + "]] || ";
22 | Content += "[[" + unitName + "]] || ";
23 | Content += (int.Parse(unit["rare"].ToString()) + 1) + "★ || ";
24 | Content += (int.Parse(unit["raremax"].ToString()) + 1) + "★ || ";
25 | Content += "[[File: " + (SRPG.EElement)int.Parse(unit["elem"].ToString()) + "Element.png|center]] || ";
26 | var jobList = new List() { "", "", "" };
27 | int i = 0;
28 | foreach (var job in unit["jobsets"])
29 | {
30 | var jobset = Updater.Data_MasterParam["JobSet"].First(a => a["iname"].ToString() == job.ToString());
31 | var subjob = Updater.Data_MasterParam["Job"].First(a => a["iname"].ToString() == jobset["job"].ToString());
32 | var subjobname = Updater.Loc_english_LocalizedMasterParam[subjob["iname"] + "_NAME"].ToString();
33 | var jobname = subjob["iname"].ToString() == subjob["origin"]?.ToString() ? subjobname : (subjobname.Replace("[", "").Replace("]", "") + " (" + subjob["iname"].ToString().Substring(3)) + ")";
34 | jobList[i++] = "[[" + jobname + "]]";
35 | }
36 | Content += String.Join(" || ", jobList);
37 | Content += "\n |-\n";
38 | }
39 | Content += " |}";
40 | return Content;
41 | }
42 | public static String CreateUnitPage(JToken unit)
43 | {
44 | string Content = "{{Infobox\n| name = {{PAGENAME}}\n| image = {{PAGENAME}}FullImage.png\n}}\n'''{{PAGENAME}}''' is a '''[[Units|Unit]]''' in '''[[The Alchemist Code]]'''.[[Category:Summons]]\n\n";
45 | Content += "==Stats==\n";
46 | Content += "{| class=\"wikitable sortable\"\n";
47 | Content += " |-\n ! Stat !! Min !! Max\n";
48 | Content += " |-\n | HP || " + unit["hp"] + " || " + unit["mhp"] + "\n";
49 | Content += " |-\n | MP || " + unit["mp"] + " || " + unit["mmp"] + "\n";
50 | Content += " |-\n | ATK || " + unit["atk"] + " || " + unit["matk"] + "\n";
51 | Content += " |-\n | DEF || " + unit["def"] + " || " + unit["mdef"] + "\n";
52 | Content += " |-\n | MAG || " + unit["mag"] + " || " + unit["mmag"] + "\n";
53 | Content += " |-\n | MND || " + unit["mnd"] + " || " + unit["mmnd"] + "\n";
54 | Content += " |-\n | DEX || " + unit["dex"] + " || " + unit["mdex"] + "\n";
55 | Content += " |-\n | SPD || " + unit["spd"] + " || " + unit["mspd"] + "\n";
56 | Content += " |-\n | CRI || " + unit["cri"] + " || " + unit["mcri"] + "\n";
57 | Content += " |-\n | LUK || " + unit["luk"] + " || " + unit["mluk"] + "\n |}\n";
58 | Content += "'''Growth Rate'': " + unit["grow"] + "\n\n";
59 | Content += "==Information==\n";
60 | Content += "'''Initial Rarity''': " + (int.Parse(unit["rare"].ToString()) + 1) + "★\n\n";
61 | Content += "'''Max Rarity''': " + (int.Parse(unit["raremax"].ToString()) + 1) + "★\n\n";
62 | Content += "'''Element''': " + (SRPG.EElement)int.Parse(unit["elem"].ToString()) + "\n\n";
63 | Content += "===Leader Skill===\n";
64 | Content += (unit["ls1"] == null ? "This unit does not have a leader skill" : (";" + Updater.Loc_english_LocalizedMasterParam[unit["ls1"] + "_NAME"] + "\n: " + Updater.Loc_english_LocalizedMasterParam[unit["ls1"] + "_EXPR"])) + "\n\n";
65 | Content += "===Master Skill===\n";
66 | var ability = Updater.Data_MasterParam["Ability"].FirstOrDefault(a => a["iname"].ToString() == unit["ability"]?.ToString());
67 | Content += (ability == null ? "This unit does not have a master skill" : (";" + Updater.Loc_english_LocalizedMasterParam[ability["skl1"] + "_NAME"] + "\n: " + Updater.Loc_english_LocalizedMasterParam[ability["skl1"] + "_EXPR"])) + "\n\n";
68 | Content += "==Available Jobs==\n";
69 | foreach(var job in unit["jobsets"])
70 | {
71 | var jobset = Updater.Data_MasterParam["JobSet"].First(a => a["iname"].ToString() == job.ToString());
72 | var subjob = Updater.Data_MasterParam["Job"].First(a => a["iname"].ToString() == jobset["job"].ToString());
73 | var jobname = subjob["iname"].ToString() == subjob["origin"]?.ToString() ? Updater.Loc_english_LocalizedMasterParam[subjob["iname"] + "_NAME"] : (Updater.Loc_english_LocalizedMasterParam[subjob["iname"] + "_NAME"].ToString().Replace("[", "").Replace("]", "") + " (" + subjob["iname"].ToString().Substring(3)) + ")";
74 | Content += "[[" + jobname + "]]" + (jobset["lplus"] != null ? " (Limit Break " + jobset["lplus"] + "x)" : "") + "\n\n";
75 | }
76 | Content += "==Profile==\n";
77 | Content += "'''Description''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_PROFILE"] + "\n\n";
78 | Content += "'''Origin''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_COUNTRY"] + "\n\n";
79 | Content += "'''Height''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_HEIGHT"] + "\n\n";
80 | Content += "'''Weight''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_WEIGHT"] + "\n\n";
81 | Content += "'''Birthday''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_BIRTH"] + "\n\n";
82 | Content += "'''Blood Type''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_BLOOD"] + "\n\n";
83 | Content += "'''Zodiac''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_ZODIAC"] + "\n\n";
84 | Content += "'''Likes''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_FAVORITE"] + "\n\n";
85 | Content += "'''Hobbies''': " + Updater.Loc_english_LocalizedMasterParam[unit["iname"] + "_HOBBY"];
86 | return Content;
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/DataExtractor/Wiki/Jobs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Newtonsoft.Json.Linq;
7 |
8 | namespace DataExtractor.Wiki
9 | {
10 | public static class Jobs
11 | {
12 | public static String CreateJobListPage(List jobs)
13 | {
14 | string header = "The following are the available '''Jobs''' for '''[[{{Gamename}}]]'''.[[Category:Job Data]]\n\n";
15 | header += "==Jobs==\n{| class=\"wikitable sortable\"\n |-\n ! Name !! Role\n";
16 | string footer = "\n |}";
17 | string jobList = String.Join("\n", jobs.Select(j =>
18 | " |-\n | [[" + (j["iname"].ToString() == j["origin"]?.ToString() ? Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_NAME"] : (Updater.Loc_english_LocalizedMasterParam[j["iname"] + "_NAME"].Replace("[","").Replace("]","") + " (" + j["iname"].ToString().Substring(3) + ")"))
19 | + "]] || " + j["role"]));
20 | return header + jobList + footer;
21 | }
22 | public static String CreateJobPage(JToken job)
23 | {
24 | string Content = "'''{{PAGENAME}}''' is a '''[[Jobs|Job]]''' in '''[[The Alchemist Code]]'''.[[Category:Job Data]]\n\n";
25 | Content += "==Stats==\n";
26 | Content += "{| class=\"wikitable sortable\"\n";
27 | Content += " |-\n ! Stat !! Value\n";
28 | var basicAttack = Updater.Data_MasterParam["Skill"].FirstOrDefault(a => a["iname"].ToString() == job["atkskl"]?.ToString());
29 | var range = basicAttack["rangemin"] ?? "0" + " - " + basicAttack["range"];
30 | Content += " |-\n | Range || " + range + " \n";
31 | Content += " |-\n | MOV || " + job["jmov"] + " \n";
32 | Content += " |-\n | JMP || " + job["jjmp"] + " \n";
33 | Content += " |-\n | HP || " + job["ranks"][0]["hp"] + " \n";
34 | Content += " |-\n | MP || " + job["ranks"][0]["mp"] + " \n";
35 | Content += " |-\n | ATK || " + job["ranks"][0]["atk"] + " \n";
36 | Content += " |-\n | DEF || " + job["ranks"][0]["def"] + " \n";
37 | Content += " |-\n | MAG || " + job["ranks"][0]["mag"] + " \n";
38 | Content += " |-\n | MND || " + job["ranks"][0]["mnd"] + " \n";
39 | Content += " |-\n | DEX || " + job["ranks"][0]["dex"] + " \n";
40 | Content += " |-\n | SPD || " + job["ranks"][0]["spd"] + " \n";
41 | Content += " |-\n | CRI || " + job["ranks"][0]["cri"] + " \n";
42 | Content += " |-\n | LUK || " + job["ranks"][0]["luk"] + " \n |}\n\n";
43 |
44 | Content += "==Main Abilities==\n";
45 |
46 | var abilities = Updater.Data_MasterParam["Ability"].FirstOrDefault(a => a["iname"].ToString() == job["fixabl"]?.ToString());
47 | if (abilities != null)
48 | {
49 | var skills = abilities.ToList().FindAll(a => ((JProperty)a).Name.Contains("skl"));
50 | foreach (var skill in skills)
51 | {
52 | if (!Updater.Loc_english_LocalizedMasterParam.ContainsKey(((JProperty)skill).Value + "_NAME"))
53 | continue;
54 | Content += ";[[" + Updater.Loc_english_LocalizedMasterParam[((JProperty)skill).Value + "_NAME"] + "]] - Level " + abilities[((JProperty)skill).Name.ToString().Replace("skl", "lv")] + "\n";
55 | Content += ": " + Updater.Loc_english_LocalizedMasterParam[((JProperty)skill).Value + "_EXPR"] + "\n";
56 | }
57 | }
58 | else
59 | {
60 | Content += "Job has no innate abilities.";
61 | }
62 | Content += "\n";
63 |
64 | Content += "==Basic Abilities==\n";
65 |
66 | for (int i = 0; i < job["ranks"].Count(); i++)
67 | {
68 | var rank = job["ranks"][i];
69 | var learn = rank["learn1"];
70 | abilities = Updater.Data_MasterParam["Ability"].FirstOrDefault(a => a["iname"].ToString() == learn?.ToString());
71 | if (abilities != null)
72 | {
73 | Content += "'''Rank " + i + "\n";
74 | var skills = abilities.ToList().FindAll(a => ((JProperty)a).Name.Contains("skl"));
75 | foreach (var skill in skills)
76 | {
77 | if (!Updater.Loc_english_LocalizedMasterParam.ContainsKey(((JProperty)skill).Value + "_NAME"))
78 | continue;
79 | Content += ";[[" + Updater.Loc_english_LocalizedMasterParam[((JProperty)skill).Value + "_NAME"] + "]] - Level " + abilities[((JProperty)skill).Name.ToString().Replace("skl", "lv")] + "\n";
80 | Content += ": " + Updater.Loc_english_LocalizedMasterParam[((JProperty)skill).Value + "_EXPR"] + "\n";
81 | }
82 | }
83 | }
84 | Content += "\n";
85 | Content += "==Equipment==\n";
86 | Content += "{| class=\"wikitable\"\n";
87 | Content += " |-\n ! Rank !! Slot 1 !! Slot 2 !! Slot 3 !! Slot 4 !! Slot 5 !! Slot 6 \n";
88 | var rankEqs = new List();
89 | for (int i = 0; i < job["ranks"].Count(); i++)
90 | {
91 | var rank = job["ranks"][i];
92 | if (!Updater.Loc_english_LocalizedMasterParam.ContainsKey(rank["eqid1"] + "_NAME"))
93 | continue;
94 | rankEqs.Add(" |-\n | Rank " + i + " || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid1"] + "_NAME"] +
95 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid2"] + "_NAME"] +
96 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid3"] + "_NAME"] +
97 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid4"] + "_NAME"] +
98 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid5"] + "_NAME"] +
99 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid6"] + "_NAME"] + "]]");
100 | /*Content += " |-\n | Rank " + i + " || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid1"] + "_NAME"] +
101 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid2"] + "_NAME"] +
102 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid3"] + "_NAME"] +
103 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid4"] + "_NAME"] +
104 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid5"] + "_NAME"] +
105 | "]] || [[" + Updater.Loc_english_LocalizedMasterParam[rank["eqid6"] + "_NAME"] + "]]\n";*/
106 | }
107 | Content += String.Join("\n", rankEqs);
108 | return Content;
109 | }
110 | }
111 | }
112 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Newtonsoft.Json;
5 | using Newtonsoft.Json.Linq;
6 | using AlchemistCodeCode.Network;
7 | using AlchemistCodeCode.Network.Requests;
8 | namespace AlchemistCodeCode
9 | {
10 | class Program
11 | {
12 | static void RespLogin(SRPG.WWWResult www)
13 | {
14 | var response = (JObject)JsonConvert.DeserializeObject(www.text);
15 | var user = response["body"];
16 | Networking.TicketID++;
17 | }
18 | static void Login()
19 | {
20 | GameManager.Instance.AssetVersion = GameManager.Instance.SessionID = null;
21 | //var CheckVersion = Networking.RequestAPI(new ReqCheckVersion(GameManager.Instance.Version, "android"));
22 | var CheckVersion = Networking.RequestAPI(new ReqCheckVersion(GameManager.Instance.Version, "ios"));
23 | GameManager.Instance.AssetVersion = CheckVersion["body"]["assets"].ToString();
24 | Networking.TicketID = 1;
25 | //GameManager.Instance.UdId = "----";
26 | if (String.IsNullOrEmpty(GameManager.Instance.DeviceId))
27 | {
28 | var DeviceId = Networking.RequestAPI(new ReqGetDeviceID(GameManager.Instance.SecretKey, GameManager.Instance.UdId));
29 | GameManager.Instance.DeviceId = DeviceId["body"]["device_id"].ToString();
30 | }
31 | var AccessToken = Networking.RequestAPI(new ReqGetAccessToken(GameManager.Instance.DeviceId, GameManager.Instance.SecretKey));
32 | GameManager.Instance.SessionID = AccessToken["body"]["access_token"].ToString();
33 | //Networking.RequestAPI(new ReqSendAlterData());
34 | Networking.RequestAPI(new ReqFgGAuth());
35 | Networking.RequestAPI(new ReqLogin());
36 | //Networking.RequestAPI(new ReqPlayNew(false));
37 | //Networking.RequestAPI(new ReqSetLanguage("en"));
38 | }
39 | static void DoBattle(String iname, bool useFriend = false, int partyIndex = 0)
40 | {
41 | var battleInfo = Networking.RequestAPI(new ReqBtlComReq(iname, "", false, partyIndex));
42 | var beats = battleInfo["body"]["btlinfo"]["drops"].Select(b => 1).ToArray();
43 | var dropped = battleInfo["body"]["btlinfo"]["drops"].Select(b => 0).ToArray();
44 | var steal = battleInfo["body"]["btlinfo"]["drops"].Select(b => 0).ToArray();
45 | var missions = new int[3] { 1, 1, 1 };
46 | Networking.RequestAPI(
47 | new ReqBtlComEnd(
48 | long.Parse(battleInfo["body"]["btlid"].ToString()),
49 | 0,
50 | SRPG.BtlResultTypes.Win,
51 | beats,
52 | dropped,
53 | steal,
54 | missions,
55 | null,
56 | new Dictionary(),
57 | SRPG.BtlEndTypes.com,
58 | "\"hpleveldamage\":[419,1,146]"
59 | )
60 | );
61 | }
62 | static void CompleteChallenge(Boolean bingo, params string[] iname)
63 | {
64 | var trophies = new List();
65 | foreach (var trophy in iname)
66 | {
67 | var newTrophy = new SRPG.TrophyState
68 | {
69 | iname = trophy,
70 | Count = new int[1] { 1 },
71 | StartYMD = int.Parse(DateTime.Now.ToString("yyMMdd"))
72 | };
73 | if (bingo)
74 | {
75 | newTrophy.Param = new SRPG.TrophyParam();
76 | newTrophy.Param.ParentTrophy = trophy.Substring(0, trophy.Length - 3);
77 |
78 | }
79 | trophies.Add(newTrophy);
80 | }
81 | if (bingo)
82 | Networking.RequestAPI(new ReqUpdateBingo(trophies, true));
83 | else
84 | Networking.RequestAPI(new ReqUpdateTrophy(trophies, true));
85 | }
86 | static void Reroll()
87 | {
88 | /*var translation = File.ReadAllLines(@"text\Loc_english_LocalizedMasterParam.txt")
89 | .ToList().FindAll(s => s.Contains("SRPG_UnitParam_UN_V2_"))
90 | .Select(s => s.Split(new char[1] { '\t' }))
91 | .ToDictionary(s => s[0].Replace("SRPG_UnitParam_", "").Replace("_NAME", ""), s => s[1]);*/
92 | /*.Select(s =>
93 | new KeyValuePair(s.Substring(21, s.IndexOf("\t")), s.Substring(s.IndexOf("\t") + 1))).ToList();/*.
94 | ToDictionary(o => o.Key, o => o.Value);//*/
95 | Networking.debuglevel = 1;
96 | Console.WriteLine("reroll start");
97 | Login();
98 | DoBattle("QE_OP_0002");
99 | DoBattle("QE_OP_0003");
100 | DoBattle("QE_OP_0004");
101 | DoBattle("QE_OP_0006");
102 | //CompleteChallenge(true, Enumerable.Range(0, 9).Select(i => "CHALLENGE_01_0" + i).ToArray());
103 | CompleteChallenge(true, "CHALLENGE_01_08");
104 | Networking.RequestAPI(new ReqTutUpdate(8192));
105 | Networking.RequestAPI(new ReqAwardList());
106 | CompleteChallenge(false, "DAILY_GLAPVIDEO_06");
107 | Networking.RequestAPI(new ReqTutUpdate(8193));
108 | CompleteChallenge(false, "LOGIN_GLTUTORIAL_01");
109 | //Networking.RequestAPI(new ReqAwardList());
110 | //Networking.RequestAPI(new ReqTrophyProgress());
111 | //Networking.RequestAPI(new ReqTutUpdate(8195));
112 | //Networking.RequestAPI(new ReqGacha());
113 | //Networking.RequestAPI(new ReqBtlCom(true));
114 | //Networking.RequestAPI(new ReqTutUpdate(10243));
115 | //Networking.RequestAPI(new ReqTutUpdate(10251));
116 | //Networking.RequestAPI(new ReqSupporter());
117 | CompleteChallenge(false, Enumerable.Range(1, 10).Select(i => "WINQUEST_" + i.ToString("D3")).ToArray());
118 | //DoBattle("QE_ST_NO_010001");
119 | //DoBattle("QE_ST_NO_010002");
120 | //DoBattle("QE_ST_NO_010003");
121 | //Networking.RequestAPI(new ReqTutUpdate(10763));
122 | var mail = Networking.RequestAPI(new ReqMail(1, true, false));
123 | var mailIds = mail["body"]["mails"]["list"].Select(m => long.Parse(m["mid"].ToString())).ToArray();
124 | Networking.RequestAPI(new ReqMailRead(mailIds, true, 1));
125 |
126 | Networking.RequestAPI(new ReqGachaExec("Rare_Gacha_ii", 1));
127 | var summon = Networking.RequestAPI(new ReqGachaExec("3Step_Gacha_Step1_B0b", 0));
128 | //var units = String.Join("|", summon["body"]["units"].Select(u => translation[u["iname"].ToString()])).Replace("Logi|Lambert|Melia|", "");
129 | //File.AppendAllText("accounts.csv", units + "," + "http://shalzuth.us-east-1.elasticbeanstalk.com/Starter?a=" + GameManager.Instance.DeviceId + "&b=" + GameManager.Instance.SecretKey + "\r\n");
130 | //Console.WriteLine(String.Join(",", summon["body"]["units"].Select(u => translation[u["iname"].ToString()])).Replace("Logi,Lambert,Melia,", ""));
131 | }
132 | static void Main(string[] args)
133 | {
134 | Networking.debuglevel = 1;
135 | //GameManager.Instance.SecretKey = "----";
136 | //GameManager.Instance.DeviceId = "----";
137 | while (true)
138 | {
139 | GameManager.Instance.DeviceId = null;
140 |
141 | }
142 | Login();
143 |
144 | //CompleteChallenge(true, Enumerable.Range(0, 9).Select(i => "CHALLENGE_03_" + i.ToString("D2")).ToArray());
145 | var gacha = Networking.RequestAPI(new ReqGacha());
146 | var summon = Networking.RequestAPI(new ReqGachaExec("3Step_Gacha_Step1_B0b", 0));
147 | CompleteChallenge(false, Enumerable.Range(1, 90).Select(i => "WINQUEST_" + i.ToString("D3")).ToArray());
148 | //Enumerable.Range(11, 19).Select(i => "QE_ST_HA_0100" + i.ToString("D2")).ToList().ForEach(i => DoBattle(i));
149 | Console.WriteLine("fin");
150 | Console.Read();
151 |
152 | //File.WriteAllText("accounts.csv", "units,download link\r\n");
153 | /*while (true)
154 | {
155 | try { Reroll(); } catch { }
156 | }*/
157 |
158 | }
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/AlchemistCodeCode/AlchemistCodeCode.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {817AC3D2-C88A-4556-94B2-173AF31645A3}
8 | Exe
9 | AlchemistCodeCode
10 | AlchemistCodeCode
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 |
36 | ..\Assembly-CSharp.dll
37 |
38 |
39 | ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
--------------------------------------------------------------------------------