using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using k7th;
using LitJson;
public class PersonageChooseController : MonoBehaviour, NetworkCallback {
//grid to add personage data to
public UIGrid grid;
public GameObject prefabPersonageView;
public UIScrollView scrollView;
private bool mOnlyCanPlay;
private bool mIsShowing;
private bool mShouldShowing;
private List<PersonageModel> mPersonages;
public void StartShowing(bool onlyCanPlay) {
mOnlyCanPlay = onlyCanPlay;
mShouldShowing = true;
//we need to show stuff.
NetworkRequest request
= new NetworkRequest
("modules/get_personages.php",
"preload"); request.set ("session", GameEngine.session);
request.set ("onlyCanPlay", mOnlyCanPlay?"1":"0");
//TODO: fill in the request
NetworkModule.getInstance().sendRequest(request, this);
}
public void StopShowing() {
mIsShowing = false;
mShouldShowing = false;
mOnlyCanPlay = false;
mPersonages.Clear();
while (grid.transform.childCount > 0) {
NGUITools.Destroy(grid.transform.GetChild(0).gameObject);
}
grid.transform.DetachChildren();
grid.Reposition();
grid.transform.parent.GetComponent<UIScrollView>().ResetPosition();
}
// Use this for initialization
void Start () {
mOnlyCanPlay = false;
mPersonages
= new List
<PersonageModel
>(); }
// Update is called once per frame
void Update () {
}
public void onResponse(long requestId, string tag, JsonData data, string str_data) {
if (tag == "preload") {
//ok, we got server response
JsonData jsonPersonages = data["personages"];
List
<PersonageModel
> personages
= new List
<PersonageModel
>();//TODO: fill in personage list for (int i = 0; i < jsonPersonages.Count; i++) {
personages
.Add(new PersonageModel
(jsonPersonages
[i
])); }
foreach (PersonageModel personage in personages) {
AddPersonageToGrid(personage);
}
gameObject.SetActive(true);
}
}
private void AddPersonageToGrid(PersonageModel personage) {
//add personage to UI grid
GameObject portrait = NGUITools.AddChild(grid.gameObject, prefabPersonageView);
PersonagePortraitScript portraitScript
= (PersonagePortraitScript
) portrait
.GetComponent(typeof(PersonagePortraitScript
)); portraitScript.ApplyModel(personage);
UIDragScrollView drag
= (UIDragScrollView
) portrait
.GetComponent(typeof(UIDragScrollView
)); drag.scrollView = scrollView;
grid.Reposition();
grid.transform.parent.GetComponent<UIScrollView>().ResetPosition();
}
public void onError(long requestId, string error) {
}
public void OnCancel() {
GameEngine.one.NotifyPersonageChooser(null, true);
}
}