Exemplo n.º 1
0
        public ReqBtlComEnd(long btlid, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, string[] fuid, Dictionary <OString, OInt> usedItems, Network.ResponseCallback response, BtlEndTypes apiType, string trophyprog = null, string bingoprog = null, int elem = 0, string rankingQuestEndParam = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Append("btl/");
            stringBuilder.Append(apiType.ToString());
            stringBuilder.Append("/end");
            this.name     = stringBuilder.ToString();
            this.body     = WebAPI.GetRequestString(this.makeBody(false, btlid, time, result, beats, itemSteals, goldSteals, missions, fuid, usedItems, response, apiType, trophyprog, bingoprog, elem, rankingQuestEndParam));
            this.callback = response;
        }
Exemplo n.º 2
0
        public ReqBtlComEnd(string req_fuid, int opp_rank, int my_rank, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, string[] fuid, Dictionary <OString, OInt> usedItems, Network.ResponseCallback response, BtlEndTypes apiType, string trophyprog = null, string bingoprog = null)
        {
            this.name = "btl/colo/exec";
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Append("\"fuid\":\"");
            stringBuilder.Append(req_fuid);
            stringBuilder.Append("\"");
            stringBuilder.Append(",\"opp_rank\":");
            stringBuilder.Append(opp_rank);
            stringBuilder.Append(",\"my_rank\":");
            stringBuilder.Append(my_rank);
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString() + "," + this.makeBody(true, 0L, 0, result, beats, itemSteals, goldSteals, missions, fuid, usedItems, response, apiType, trophyprog, bingoprog, 0, (string)null));
            this.callback = response;
        }
Exemplo n.º 3
0
        public ReqVersusEnd(long btlid, BtlResultTypes result, string uid, string fuid, uint turn, int[] myhp, int[] enhp, int atk, int dmg, int heal, int beat, Network.ResponseCallback response, VERSUS_TYPE type, string trophyprog = null, string bingoprog = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Append("vs/");
            stringBuilder.Append(type.ToString().ToLower());
            stringBuilder.Append("match/end");
            this.name            = stringBuilder.ToString();
            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;

            case BtlResultTypes.Draw:
                stringBuilder.Append("draw");
                break;
            }
            stringBuilder.Append("\",");
            stringBuilder.Append("\"token\":\"");
            stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
            stringBuilder.Append("\",");
            stringBuilder.Append("\"turn\":\"");
            stringBuilder.Append(turn);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"atk\":\"");
            stringBuilder.Append(atk);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"dmg\":\"");
            stringBuilder.Append(dmg);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"heal\":\"");
            stringBuilder.Append(heal);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"beatcnt\":");
            stringBuilder.Append(beat);
            if (myhp != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"myhp\":[");
                for (int index = 0; index < myhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(myhp[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if (enhp != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"enhp\":[");
                for (int index = 0; index < enhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(enhp[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if ((int)stringBuilder[stringBuilder.Length - 1] == 44)
            {
                --stringBuilder.Length;
            }
            stringBuilder.Append("},");
            stringBuilder.Append("\"uid\":\"");
            stringBuilder.Append(uid);
            stringBuilder.Append("\",");
            stringBuilder.Append("\"fuid\":\"");
            stringBuilder.Append(fuid);
            stringBuilder.Append("\"");
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString());
            this.callback = response;
        }
Exemplo n.º 4
0
        private static string makeBody(string fuid, long btlid, int[] achieved, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, Dictionary <OString, OInt> usedItems)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            if (achieved != null)
            {
                stringBuilder.Append("\"achieved\":[");
                for (int index = 0; index < achieved.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(achieved[index].ToString());
                }
                stringBuilder.Append("],");
            }
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"time\":");
            stringBuilder.Append(time);
            stringBuilder.Append(',');
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;
            }
            if (result == BtlResultTypes.Win)
            {
                if (beats == null)
                {
                    beats = new int[0];
                }
                if (itemSteals == null)
                {
                    itemSteals = new int[0];
                }
                if (goldSteals == null)
                {
                    goldSteals = new int[0];
                }
                if (missions == null)
                {
                    missions = new int[3];
                }
            }
            stringBuilder.Append("\",");
            if (beats != null)
            {
                stringBuilder.Append("\"beats\":[");
                for (int index = 0; index < beats.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(beats[index].ToString());
                }
                stringBuilder.Append("],");
            }
            if (itemSteals != null || goldSteals != null)
            {
                stringBuilder.Append("\"steals\":{");
                if (itemSteals != null)
                {
                    stringBuilder.Append("\"items\":[");
                    for (int index = 0; index < itemSteals.Length; ++index)
                    {
                        stringBuilder.Append(itemSteals[index].ToString());
                        if (index != beats.Length - 1)
                        {
                            stringBuilder.Append(',');
                        }
                    }
                    stringBuilder.Append("]");
                }
                if (goldSteals != null)
                {
                    if (itemSteals != null)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append("\"golds\":[");
                    for (int index = 0; index < goldSteals.Length; ++index)
                    {
                        stringBuilder.Append(goldSteals[index].ToString());
                        if (index != beats.Length - 1)
                        {
                            stringBuilder.Append(",");
                        }
                    }
                    stringBuilder.Append("]");
                }
                stringBuilder.Append("},");
            }
            if (missions != null)
            {
                stringBuilder.Append("\"missions\":[");
                for (int index = 0; index < missions.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(missions[index].ToString());
                }
                stringBuilder.Append("],");
            }
            if (usedItems != null)
            {
                stringBuilder.Append("\"inputs\":[");
                int num = 0;
                using (Dictionary <OString, OInt> .Enumerator enumerator = usedItems.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <OString, OInt> current = enumerator.Current;
                        if (num > 0)
                        {
                            stringBuilder.Append(',');
                        }
                        stringBuilder.Append("{");
                        stringBuilder.Append("\"use\":\"");
                        stringBuilder.Append((string)current.Key);
                        stringBuilder.Append("\",");
                        stringBuilder.Append("\"n\":");
                        stringBuilder.Append((int)current.Value);
                        stringBuilder.Append("}");
                        ++num;
                    }
                }
                stringBuilder.Append("],");
            }
            if (stringBuilder[stringBuilder.Length - 1] == ',')
            {
                --stringBuilder.Length;
            }
            stringBuilder.Append('}');
            return(stringBuilder.ToString());
        }
Exemplo n.º 5
0
 public ReqBtlComRecordUpload(string fuid, long btlid, int[] achieved, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, Dictionary <OString, OInt> usedItems, Network.ResponseCallback response)
 {
     this.name     = "btl/com/record/upload";
     this.body     = ReqBtlComRecordUpload.CreateRequestString(ReqBtlComRecordUpload.makeBody(fuid, btlid, achieved, time, result, beats, itemSteals, goldSteals, missions, usedItems));
     this.callback = response;
 }
Exemplo n.º 6
0
        public ReqBtlMultiTwEnd(long btlid, int time, BtlResultTypes result, int[] myhp, string[] myUnit, string[] fuid, Network.ResponseCallback response, string trophyprog = null, string bingoprog = null)
        {
            this.name = "btl/multi/tower/end";
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"time\":");
            stringBuilder.Append(time);
            stringBuilder.Append(',');
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;

            case BtlResultTypes.Draw:
                stringBuilder.Append("draw");
                break;
            }
            stringBuilder.Append("\",");
            stringBuilder.Append("\"token\":\"");
            stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
            stringBuilder.Append("\"");
            if (myhp != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"myhp\":[");
                for (int index = 0; index < myhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(myhp[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if (myUnit != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"myUnit\":[");
                for (int index = 0; index < myhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append("\"" + myUnit[index] + "\"");
                }
                stringBuilder.Append("]");
            }
            stringBuilder.Append("}");
            if (fuid != null)
            {
                stringBuilder.Append(",\"fuids\":[");
                for (int index = 0; index < fuid.Length; ++index)
                {
                    if (fuid[index] != null)
                    {
                        if (index != 0)
                        {
                            stringBuilder.Append(", ");
                        }
                        stringBuilder.Append("\"");
                        stringBuilder.Append(fuid[index]);
                        stringBuilder.Append("\"");
                    }
                }
                stringBuilder.Append("]");
            }
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString());
            this.callback = response;
        }
Exemplo n.º 7
0
        public ReqTowerBtlComEnd(long btlid, Unit[] Player, Unit[] Enemy, int actCount, int round, byte floor, BtlResultTypes result, RandDeckResult[] deck, Network.ResponseCallback response, string trophyprog = null, string bingoprog = null, int[] missions = null, int[] missions_value = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            this.name            = "tower/btl/end";
            stringBuilder.Length = 0;
            this.SetValue(ref stringBuilder, "\"btlid\":", btlid);
            stringBuilder.Append("\"btlendparam\":{");
            if (Player != null)
            {
                stringBuilder.Append("\"pdeck\":[");
                for (int index = 0; index < Player.Length; ++index)
                {
                    Unit unit = Player[index];
                    if (unit.Side == EUnitSide.Player && unit.UnitData.UniqueID != 0L)
                    {
                        stringBuilder.Append("{");
                        this.SetValue(ref stringBuilder, "\"iid\":", unit.UnitData.UniqueID);
                        this.SetValue(ref stringBuilder, "\"iname\":\"", unit.UnitData.UnitParam.iname, "\",");
                        int num = Mathf.Max(unit.CalcTowerDamege() - MonoSingleton <GameManager> .Instance.FindTowerFloor(SceneBattle.Instance.Battle.QuestID).CalcHelaNum((int)unit.MaximumStatus.param.hp), 0);
                        this.SetValue(ref stringBuilder, "\"damage\":", (long)num);
                        this.SetValue(ref stringBuilder, "\"is_died\":", !unit.IsDeadCondition() ? 0L : (!unit.IsUnitFlag(EUnitFlag.UnitChanged) ? 1L : 0L), string.Empty);
                        stringBuilder.Append("},");
                    }
                }
                --stringBuilder.Length;
                stringBuilder.Append("],");
            }
            stringBuilder.Append("\"status\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;
            }
            stringBuilder.Append("\"");
            stringBuilder.Append(",\"turn\":");
            stringBuilder.Append(actCount);
            stringBuilder.Append(",\"round\":");
            stringBuilder.Append(round);
            stringBuilder.Append(",\"floor\":");
            stringBuilder.Append(floor);
            if (result == BtlResultTypes.Lose)
            {
                stringBuilder.Append(",\"edeck\":[");
                List <Unit> unitList = new List <Unit>((IEnumerable <Unit>)Enemy);
                unitList.RemoveAll((Predicate <Unit>)(x =>
                {
                    if (x.IsBreakObj)
                    {
                        return(!string.IsNullOrEmpty(x.CreateBreakObjId));
                    }
                    return(false);
                }));
                if (MonoSingleton <GameManager> .Instance.TowerResuponse.edeck != null)
                {
                    List <TowerResuponse.EnemyUnit> edeck = MonoSingleton <GameManager> .Instance.TowerResuponse.edeck;
                    int index1 = 0;
                    for (int index2 = 0; index2 < edeck.Count; ++index2)
                    {
                        if (edeck[index2].hp == 0)
                        {
                            stringBuilder.Append("{");
                            this.SetValue(ref stringBuilder, "\"eid\":\"", (long)index2, "\",");
                            this.SetValue(ref stringBuilder, "\"iname\":\"", edeck[index2].iname, "\",");
                            this.SetValue(ref stringBuilder, "\"hp\":", 0L);
                            this.SetValue(ref stringBuilder, "\"jewel\":", 0L, string.Empty);
                            stringBuilder.Append("},");
                        }
                        else
                        {
                            Unit unit = unitList[index1];
                            ++index1;
                            stringBuilder.Append("{");
                            this.SetValue(ref stringBuilder, "\"eid\":\"", (long)index2, "\",");
                            this.SetValue(ref stringBuilder, "\"iname\":\"", unit.UnitParam.iname, "\",");
                            if (unit.IsGimmick && !unit.IsDisableGimmick())
                            {
                                if (unit.IsBreakObj)
                                {
                                    this.SetValue(ref stringBuilder, "\"hp\":", (long)(int)unit.CurrentStatus.param.hp);
                                }
                                else
                                {
                                    this.SetValue(ref stringBuilder, "\"hp\":", 1L);
                                }
                            }
                            else
                            {
                                this.SetValue(ref stringBuilder, "\"hp\":", !unit.IsDead ? (long)(int)unit.CurrentStatus.param.hp : 0L);
                            }
                            this.SetValue(ref stringBuilder, "\"jewel\":", (long)(int)unit.CurrentStatus.param.mp, string.Empty);
                            stringBuilder.Append("},");
                        }
                    }
                }
                else
                {
                    for (int index = 0; index < unitList.Count; ++index)
                    {
                        Unit unit = unitList[index];
                        stringBuilder.Append("{");
                        this.SetValue(ref stringBuilder, "\"eid\":\"", (long)index, "\",");
                        this.SetValue(ref stringBuilder, "\"iname\":\"", unit.UnitParam.iname, "\",");
                        if (unit.IsGimmick && !unit.IsDisableGimmick())
                        {
                            if (unit.IsBreakObj)
                            {
                                this.SetValue(ref stringBuilder, "\"hp\":", (long)(int)unit.CurrentStatus.param.hp);
                            }
                            else
                            {
                                this.SetValue(ref stringBuilder, "\"hp\":", 1L);
                            }
                        }
                        else
                        {
                            this.SetValue(ref stringBuilder, "\"hp\":", !unit.IsDead ? (long)(int)unit.CurrentStatus.param.hp : 0L);
                        }
                        this.SetValue(ref stringBuilder, "\"jewel\":", (long)(int)unit.CurrentStatus.param.mp, string.Empty);
                        stringBuilder.Append("},");
                    }
                }
                --stringBuilder.Length;
                stringBuilder.Append("]");
            }
            SupportData supportData = GlobalVars.SelectedSupport.Get();

            if (GlobalVars.SelectedFriendID != null && supportData != null)
            {
                stringBuilder.Append(",\"help\":{\"fuid\":\"");
                stringBuilder.Append(GlobalVars.SelectedFriendID);
                stringBuilder.Append("\",\"cost\":");
                stringBuilder.Append(supportData.Cost);
                stringBuilder.Append("}");
            }
            if (missions != null && missions_value != null)
            {
                stringBuilder.Append(",");
                stringBuilder.Append("\"missions\":[");
                for (int index = 0; index < missions.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(missions[index].ToString());
                }
                stringBuilder.Append("]");
                stringBuilder.Append(",");
                stringBuilder.Append("\"missions_val\":[");
                for (int index = 0; index < missions_value.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(missions_value[index].ToString());
                }
                stringBuilder.Append("]");
            }
            else
            {
                stringBuilder.Append(",");
                stringBuilder.Append("\"missions\":[]");
                stringBuilder.Append(",");
                stringBuilder.Append("\"missions_val\":[]");
            }
            stringBuilder.Append("}");
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString());
            this.callback = response;
        }
Exemplo n.º 8
0
        public ReqVersusEnd(long btlid, int time, BtlResultTypes result, int[] beats, string uid, string fuid, Network.ResponseCallback response, VERSUS_TYPE type, string trophyprog = null, string bingoprog = null, string maxdata = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Append("vs/");
            stringBuilder.Append(type.ToString().ToLower());
            stringBuilder.Append("match/end");
            this.name            = stringBuilder.ToString();
            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"time\":");
            stringBuilder.Append(time);
            stringBuilder.Append(',');
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;

            case BtlResultTypes.Draw:
                stringBuilder.Append("draw");
                break;
            }
            if (result == BtlResultTypes.Win && beats == null)
            {
                beats = new int[0];
            }
            stringBuilder.Append("\",");
            if (beats != null)
            {
                stringBuilder.Append("\"beats\":[");
                for (int index = 0; index < beats.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(beats[index].ToString());
                }
                stringBuilder.Append("],");
            }
            stringBuilder.Append("\"steals\":[");
            stringBuilder.Append("],");
            stringBuilder.Append("\"missions\":[");
            stringBuilder.Append("],");
            stringBuilder.Append("\"token\":\"");
            stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
            stringBuilder.Append("\",");
            if ((int)stringBuilder[stringBuilder.Length - 1] == 44)
            {
                --stringBuilder.Length;
            }
            stringBuilder.Append("},");
            stringBuilder.Append("\"uid\":\"");
            stringBuilder.Append(uid);
            stringBuilder.Append("\",");
            stringBuilder.Append("\"fuid\":\"");
            stringBuilder.Append(fuid);
            stringBuilder.Append("\"");
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            if (!string.IsNullOrEmpty(maxdata))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(maxdata);
            }
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString());
            this.callback = response;
        }
Exemplo n.º 9
0
        private string makeBody(bool is_arena, long btlid, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, string[] fuid, Dictionary <OString, OInt> usedItems, Network.ResponseCallback response, BtlEndTypes apiType, string trophyprog, string bingoprog, int elem = 0, string rankingQuestEndParam = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Length = 0;
            if (!is_arena)
            {
                stringBuilder.Append("\"btlid\":");
                stringBuilder.Append(btlid);
                stringBuilder.Append(',');
            }
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"time\":");
            stringBuilder.Append(time);
            stringBuilder.Append(',');
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;
            }
            if (result == BtlResultTypes.Win)
            {
                if (beats == null)
                {
                    beats = new int[0];
                }
                if (itemSteals == null)
                {
                    itemSteals = new int[0];
                }
                if (goldSteals == null)
                {
                    goldSteals = new int[0];
                }
                if (missions == null)
                {
                    missions = new int[3];
                }
            }
            if (result != BtlResultTypes.Cancel && usedItems == null)
            {
                usedItems = new Dictionary <OString, OInt>();
            }
            stringBuilder.Append("\",");
            if (beats != null)
            {
                stringBuilder.Append("\"beats\":[");
                for (int index = 0; index < beats.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(beats[index].ToString());
                }
                stringBuilder.Append("],");
            }
            if (itemSteals != null || goldSteals != null)
            {
                stringBuilder.Append("\"steals\":{");
                if (itemSteals != null)
                {
                    stringBuilder.Append("\"items\":[");
                    for (int index = 0; index < itemSteals.Length; ++index)
                    {
                        stringBuilder.Append(itemSteals[index].ToString());
                        if (index != beats.Length - 1)
                        {
                            stringBuilder.Append(',');
                        }
                    }
                    stringBuilder.Append("]");
                }
                if (goldSteals != null)
                {
                    if (itemSteals != null)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append("\"golds\":[");
                    for (int index = 0; index < goldSteals.Length; ++index)
                    {
                        stringBuilder.Append(goldSteals[index].ToString());
                        if (index != beats.Length - 1)
                        {
                            stringBuilder.Append(",");
                        }
                    }
                    stringBuilder.Append("]");
                }
                stringBuilder.Append("},");
            }
            if (missions != null)
            {
                stringBuilder.Append("\"missions\":[");
                for (int index = 0; index < missions.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(missions[index].ToString());
                }
                stringBuilder.Append("],");
            }
            if (usedItems != null)
            {
                stringBuilder.Append("\"inputs\":[");
                int num = 0;
                using (Dictionary <OString, OInt> .Enumerator enumerator = usedItems.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <OString, OInt> current = enumerator.Current;
                        if (num > 0)
                        {
                            stringBuilder.Append(',');
                        }
                        stringBuilder.Append("{");
                        stringBuilder.Append("\"use\":\"");
                        stringBuilder.Append((string)current.Key);
                        stringBuilder.Append("\",");
                        stringBuilder.Append("\"n\":");
                        stringBuilder.Append((int)current.Value);
                        stringBuilder.Append("}");
                        ++num;
                    }
                }
                stringBuilder.Append("],");
            }
            if (apiType == BtlEndTypes.multi)
            {
                stringBuilder.Append("\"token\":\"");
                stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
                stringBuilder.Append("\",");
            }
            if (!string.IsNullOrEmpty(rankingQuestEndParam))
            {
                stringBuilder.Append(rankingQuestEndParam);
                stringBuilder.Append(",");
            }
            if ((int)stringBuilder[stringBuilder.Length - 1] == 44)
            {
                --stringBuilder.Length;
            }
            stringBuilder.Append('}');
            if (apiType == BtlEndTypes.multi && fuid != null)
            {
                stringBuilder.Append(",\"fuids\":[");
                for (int index = 0; index < fuid.Length; ++index)
                {
                    if (fuid[index] != null)
                    {
                        if (index != 0)
                        {
                            stringBuilder.Append(", ");
                        }
                        stringBuilder.Append("\"");
                        stringBuilder.Append(fuid[index]);
                        stringBuilder.Append("\"");
                    }
                }
                stringBuilder.Append("]");
            }
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            if (elem != 0)
            {
                stringBuilder.Append(",");
                stringBuilder.Append("\"support_elem\":\"");
                stringBuilder.Append(elem);
                stringBuilder.Append("\"");
            }
            return(stringBuilder.ToString());
        }
Exemplo n.º 10
0
        public ReqBtlComEnd(long btlid, int time, BtlResultTypes result, int[] beats, int[] itemSteals, int[] goldSteals, int[] missions, string[] fuid, Dictionary <OString, OInt> usedItems, BtlEndTypes apiType, string trophyprog = null, string bingoprog = null, string maxdata = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            stringBuilder.Append("btl/");
            stringBuilder.Append(apiType.ToString());
            stringBuilder.Append("/end");
            this.name            = stringBuilder.ToString();
            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"time\":");
            stringBuilder.Append(time);
            stringBuilder.Append(',');
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;
            }
            if (result == BtlResultTypes.Win)
            {
                if (beats == null)
                {
                    beats = new int[0];
                }
                if (itemSteals == null)
                {
                    itemSteals = new int[0];
                }
                if (goldSteals == null)
                {
                    goldSteals = new int[0];
                }
                if (missions == null)
                {
                    missions = new int[3];
                }
            }
            if (result != BtlResultTypes.Cancel && usedItems == null)
            {
                usedItems = new Dictionary <OString, OInt>();
            }
            stringBuilder.Append("\",");
            if (beats != null)
            {
                stringBuilder.Append("\"beats\":[");
                for (int i = 0; i < beats.Length; i++)
                {
                    if (i > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(beats[i].ToString());
                }
                stringBuilder.Append("],");
            }
            if (itemSteals != null || goldSteals != null)
            {
                stringBuilder.Append("\"steals\":{");
                if (itemSteals != null)
                {
                    stringBuilder.Append("\"items\":[");
                    for (int j = 0; j < itemSteals.Length; j++)
                    {
                        stringBuilder.Append(itemSteals[j].ToString());
                        if (j != beats.Length - 1)
                        {
                            stringBuilder.Append(',');
                        }
                    }
                    stringBuilder.Append("]");
                }
                if (goldSteals != null)
                {
                    if (itemSteals != null)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append("\"golds\":[");
                    for (int k = 0; k < goldSteals.Length; k++)
                    {
                        stringBuilder.Append(goldSteals[k].ToString());
                        if (k != beats.Length - 1)
                        {
                            stringBuilder.Append(",");
                        }
                    }
                    stringBuilder.Append("]");
                }
                stringBuilder.Append("},");
            }
            if (missions != null)
            {
                stringBuilder.Append("\"missions\":[");
                for (int l = 0; l < missions.Length; l++)
                {
                    if (l > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(missions[l].ToString());
                }
                stringBuilder.Append("],");
            }
            if (usedItems != null)
            {
                stringBuilder.Append("\"inputs\":[");
                int num = 0;
                foreach (KeyValuePair <OString, OInt> current in usedItems)
                {
                    if (num > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append("{");
                    stringBuilder.Append("\"use\":\"");
                    stringBuilder.Append(current.Key);
                    stringBuilder.Append("\",");
                    stringBuilder.Append("\"n\":");
                    stringBuilder.Append(current.Value);
                    stringBuilder.Append("}");
                    num++;
                }
                stringBuilder.Append("],");
            }
            if (apiType == BtlEndTypes.multi)
            {
                stringBuilder.Append("\"token\":\"");
                stringBuilder.Append(JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName));
                stringBuilder.Append("\",");
            }
            if (stringBuilder[stringBuilder.Length - 1] == ',')
            {
                stringBuilder.Length--;
            }
            stringBuilder.Append('}');
            if (apiType == BtlEndTypes.multi && fuid != null)
            {
                stringBuilder.Append(",\"fuids\":[");
                for (int m = 0; m < fuid.Length; m++)
                {
                    if (fuid[m] != null)
                    {
                        if (m != 0)
                        {
                            stringBuilder.Append(", ");
                        }
                        stringBuilder.Append("\"");
                        stringBuilder.Append(fuid[m]);
                        stringBuilder.Append("\"");
                    }
                }
                stringBuilder.Append("]");
            }
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            if (!string.IsNullOrEmpty(maxdata))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(maxdata);
            }
            this.body = WebAPI.GetRequestString(stringBuilder.ToString());
        }
Exemplo n.º 11
0
        public ReqVersusCpuEnd(long btlid, BtlResultTypes result, uint turn, int[] myhp, int[] enhp, int atk, int dmg, int heal, int beat, int[] place, Network.ResponseCallback response, string trophyprog = null, string bingoprog = null)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            this.name            = "vs/com/end";
            stringBuilder.Length = 0;
            stringBuilder.Append("\"btlid\":");
            stringBuilder.Append(btlid);
            stringBuilder.Append(',');
            stringBuilder.Append("\"btlendparam\":{");
            stringBuilder.Append("\"result\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;

            case BtlResultTypes.Draw:
                stringBuilder.Append("draw");
                break;
            }
            stringBuilder.Append("\",");
            stringBuilder.Append("\"turn\":\"");
            stringBuilder.Append(turn);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"atk\":\"");
            stringBuilder.Append(atk);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"dmg\":\"");
            stringBuilder.Append(dmg);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"heal\":\"");
            stringBuilder.Append(heal);
            stringBuilder.Append("\"");
            stringBuilder.Append(",");
            stringBuilder.Append("\"beatcnt\":");
            stringBuilder.Append(beat);
            if (myhp != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"myhp\":[");
                for (int index = 0; index < myhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(myhp[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if (enhp != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"enhp\":[");
                for (int index = 0; index < enhp.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(enhp[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if (place != null)
            {
                stringBuilder.Append(',');
                stringBuilder.Append("\"place\":[");
                for (int index = 0; index < place.Length; ++index)
                {
                    if (index > 0)
                    {
                        stringBuilder.Append(',');
                    }
                    stringBuilder.Append(place[index].ToString());
                }
                stringBuilder.Append("]");
            }
            if (stringBuilder[stringBuilder.Length - 1] == ',')
            {
                --stringBuilder.Length;
            }
            stringBuilder.Append("}");
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            this.body     = WebAPI.GetRequestString(stringBuilder.ToString());
            this.callback = response;
        }
Exemplo n.º 12
0
        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)
        {
            StringBuilder stringBuilder = WebAPI.GetStringBuilder();

            this.name            = "tower/btl/end";
            stringBuilder.Length = 0;
            this.SetValue(ref stringBuilder, "\"btlid\":", btlid);
            stringBuilder.Append("\"btlendparam\":{");
            if (Player != null)
            {
                stringBuilder.Append("\"pdeck\":[");
                for (int i = 0; i < Player.Length; i++)
                {
                    Unit unit = Player[i];
                    if (unit.Side == EUnitSide.Player && unit.UnitData.UniqueID != 0L)
                    {
                        stringBuilder.Append("{");
                        this.SetValue(ref stringBuilder, "\"iid\":", unit.UnitData.UniqueID);
                        this.SetValue(ref stringBuilder, "\"iname\":\"", unit.UnitData.UnitParam.iname, "\",");
                        int             num             = unit.CalcTowerDamege();
                        TowerFloorParam towerFloorParam = GameManager.Instance.FindTowerFloor(SceneBattle.Instance.Battle.QuestID);
                        num -= towerFloorParam.CalcHelaNum(unit.MaximumStatus.param.hp);
                        num  = Math.Max(num, 0);
                        this.SetValue(ref stringBuilder, "\"damage\":", (long)num);
                        this.SetValue(ref stringBuilder, "\"is_died\":", (!unit.IsDeadCondition()) ? 0L : 1L, string.Empty);
                        stringBuilder.Append("},");
                    }
                }
                stringBuilder.Length--;
                stringBuilder.Append("],");
            }
            stringBuilder.Append("\"status\":\"");
            switch (result)
            {
            case BtlResultTypes.Win:
                stringBuilder.Append("win");
                break;

            case BtlResultTypes.Lose:
                stringBuilder.Append("lose");
                break;

            case BtlResultTypes.Retire:
                stringBuilder.Append("retire");
                break;

            case BtlResultTypes.Cancel:
                stringBuilder.Append("cancel");
                break;
            }
            stringBuilder.Append("\"");
            stringBuilder.Append(",\"turn\":");
            stringBuilder.Append(actCount);
            stringBuilder.Append(",\"round\":");
            stringBuilder.Append(round);
            stringBuilder.Append(",\"floor\":");
            stringBuilder.Append(floor);
            if (result == BtlResultTypes.Lose)
            {
                stringBuilder.Append(",\"edeck\":[");
                List <Unit> list = new List <Unit>(Enemy);
                list.RemoveAll((Unit x) => x.Side != EUnitSide.Enemy);
                if (GameManager.Instance.TowerResuponse.edeck != null)
                {
                    List <TowerResuponse.EnemyUnit> edeck = GameManager.Instance.TowerResuponse.edeck;
                    int num2 = 0;
                    for (int j = 0; j < edeck.Count; j++)
                    {
                        if (edeck[j].hp == 0)
                        {
                            stringBuilder.Append("{");
                            this.SetValue(ref stringBuilder, "\"eid\":\"", (long)j, "\",");
                            this.SetValue(ref stringBuilder, "\"iname\":\"", edeck[j].iname, "\",");
                            this.SetValue(ref stringBuilder, "\"hp\":", 0L);
                            this.SetValue(ref stringBuilder, "\"jewel\":", 0L, string.Empty);
                            stringBuilder.Append("},");
                        }
                        else
                        {
                            Unit unit2 = list[num2];
                            num2++;
                            if (unit2.Side == EUnitSide.Enemy)
                            {
                                stringBuilder.Append("{");
                                this.SetValue(ref stringBuilder, "\"eid\":\"", (long)j, "\",");
                                this.SetValue(ref stringBuilder, "\"iname\":\"", unit2.UnitParam.iname, "\",");
                                this.SetValue(ref stringBuilder, "\"hp\":", (!unit2.IsDead) ? ((long)unit2.CurrentStatus.param.hp) : 0L);
                                this.SetValue(ref stringBuilder, "\"jewel\":", (long)unit2.CurrentStatus.param.mp, string.Empty);
                                stringBuilder.Append("},");
                            }
                        }
                    }
                }
                else
                {
                    for (int k = 0; k < list.Count; k++)
                    {
                        Unit unit3 = list[k];
                        if (unit3.Side == EUnitSide.Enemy)
                        {
                            stringBuilder.Append("{");
                            this.SetValue(ref stringBuilder, "\"eid\":\"", (long)k, "\",");
                            this.SetValue(ref stringBuilder, "\"iname\":\"", unit3.UnitParam.iname, "\",");
                            this.SetValue(ref stringBuilder, "\"hp\":", (!unit3.IsDead) ? ((long)unit3.CurrentStatus.param.hp) : 0L);
                            this.SetValue(ref stringBuilder, "\"jewel\":", (long)unit3.CurrentStatus.param.mp, string.Empty);
                            stringBuilder.Append("},");
                        }
                    }
                }
                stringBuilder.Length--;
                stringBuilder.Append("]");
            }
            SupportData supportData = GlobalVars.SelectedSupport.Get();

            if (GlobalVars.SelectedFriendID != null && supportData != null)
            {
                stringBuilder.Append(",\"help\":{\"fuid\":\"");
                stringBuilder.Append(GlobalVars.SelectedFriendID);
                stringBuilder.Append("\",\"cost\":");
                stringBuilder.Append(supportData.Cost);
                stringBuilder.Append("}");
            }
            if (!string.IsNullOrEmpty(trophyprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(trophyprog);
            }
            if (!string.IsNullOrEmpty(bingoprog))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(bingoprog);
            }
            if (!string.IsNullOrEmpty(maxdata))
            {
                stringBuilder.Append(",");
                stringBuilder.Append(maxdata);
            }
            stringBuilder.Append("}");
            this.body = WebAPI.GetRequestString(stringBuilder.ToString());
        }