private void Awake() { if (!instance) { instance = this; } gm = GameManager.instance; quizes = gm.GetQuiz(); animals = new ArrayList(); card = new GameObject[10]; answers = new int[10]; for (int i = 0; i < card.Length; i++) { card[i] = GameObject.Find("select" + i); } foreach (GameObject gameObject in FindObjectsOfType(typeof(GameObject))) { if (gameObject.name.Contains("animal")) { animals.Add(gameObject); //Instantiate((GameObject)animals[j], card[i].transform.position, Quaternion.identity, card[i].transform); } } ResetItems(); }
//Handle the Click event private void HandleClick() { txtQuestion = GameObject.Find("Question").GetComponent <Text>(); GameManager gm = GameManager.instance; if (card == null) { card = CardChange.instance; } if (itemName.Equals("sphinx")) { AnswerScript answerScript = AnswerScript.instance; if (gm.CheckAnswer()) { GameObject.Find("SoundCorrect").GetComponent <AudioSource>().Play(); answerScript.correct.SetActive(true); Invoke("CorrectAnswer", 2); } else { GameObject.Find("SoundWrong").GetComponent <AudioSource>().Play(); answerScript.wrong.SetActive(true); Invoke("WrongAnswer", 2); } } else { gm.AddText(itemName); //SphinxManager sphinx = new SphinxManager(); } }
void MoveCards() { if (moveCardsIndexList.Count == 0) { canMove = true; return; } int totleScore = 0; for (int i = 0; i < moveCardsIndexList.Count; i++) { int froX = moveCardsIndexList[i].fromIndexX; int froY = moveCardsIndexList[i].fromIndexY; int toX = moveCardsIndexList[i].toIndexX; int toY = moveCardsIndexList[i].toIndexY; int crNum = moveCardsIndexList[i].createNum; if (crNum != 0) { DestroyCardItem(items[toX, toY]); CardChange change = new CardChange(-1, -1, -1, -1, toX, toY, toX, toY, crNum); destroyCardsIndexList.Add(change); createCardsIndexList.Add(change); totleScore += crNum; } switch (toX) { case 0: items[froX, froY].SetMoveValue(oneRowCards[toY].position); break; case 1: items[froX, froY].SetMoveValue(towRowCards[toY].position); break; case 2: items[froX, froY].SetMoveValue(thrRowCards[toY].position); break; case 3: items[froX, froY].SetMoveValue(forRowCards[toY].position); break; } items[toX, toY] = items[froX, froY]; items[froX, froY] = null; } //加分 if (totleScore != 0) { ScoreController._instance.AddScore(totleScore); } moveCardsIndexList.Clear(); StartCoroutine(TestNest()); }
public void Add_card_change() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(1); change = CardChange.MapCard(card); change.Description = "description change"; change.Comment = "test"; change.UserId = Guid.NewGuid(); Guid newId = repository.AddCardChangeRequest(change); Assert.AreNotEqual(Guid.Empty, newId); }
public void Get_change_value() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = "test"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); Assert.AreEqual(value, "test"); }
public void Get_card_change() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Description = "1"; change.Comment = "test"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); change = repository.GetCardChangeRequest(id); Assert.AreEqual(id, change.Id); }
public void Get_card_changes() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = "1"; //change.UserId = Guid.NewGuid(); repository.AddCardChangeRequest(change); CardChange[] changes = repository.GetCardChangeRequests(2); Assert.Greater(changes.Length, 0); }
//随机生成一个元素2 public CardChange RedomCreateValue() { int row = Random.Range(0, 4); int col = Random.Range(0, 4); while (intValue[row, col] != 0) { row = Random.Range(0, 4); col = Random.Range(0, 4); } intValue[row, col] = Random.Range(0f, 1f) > 0.9f ? 4 : 2; CardChange cardChange = new CardChange(-1, -1, -1, -1, row, col, -1, -1, intValue[row, col]); //检查是否输了 CheckLose(); return(cardChange); }
public void Make_change_to_field() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = Guid.NewGuid().ToString(); change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); admin.UpdateCardField(mtgdbUser.AuthToken, change.Mvid, "description", value); card = mtgdb.GetCard(2); Assert.AreEqual(card.Description, change.Description); }
public void Make_change_to_field() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = Guid.NewGuid().ToString(); change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); admin.UpdateCardField(mtgdbUser.AuthToken, change.Mvid, "description",value); card = mtgdb.GetCard(2); Assert.AreEqual(card.Description, change.Description ); }
public void Update_change_status() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = "lucky"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); admin.UpdateCardField(mtgdbUser.AuthToken, change.Mvid, "description",value); repository.UpdateCardChangeStatus(id, "Accepted", "description"); change = repository.GetCardChangeRequest(id); Assert.AreEqual(change.Status, "Accepted" ); Assert.Greater(change.ChangesCommitted.Length, 0); }
public void Update_setchange_status() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = "lucky"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); admin.UpdateCardField(mtgdbUser.AuthToken, change.Mvid, "description", value); repository.UpdateCardChangeStatus(id, "Accepted", "description"); change = repository.GetCardChangeRequest(id); Assert.AreEqual(change.Status, "Accepted"); Assert.Greater(change.ChangesCommitted.Length, 0); }
//Handle the Click event private void HandleClick() { txtQuestion = GameObject.Find("Question").GetComponent <Text>(); GameManager gm = GameManager.instance; TutorialScript ts = TutorialScript.instance; if (ts.isClicked) { if (card == null) { card = CardChange.instance; } if (itemName.Equals("sphinx")) { AnswerScript answerScript = AnswerScript.instance; bool isAnswer = true; string[] arr = gm.GetListItems(); for (int i = 0; i < arr.Length; i++) { if (!arr[i].Equals("penguin") && !arr[i].Equals("pheas") && !arr[i].Equals("crow")) { isAnswer = false; } } if (isAnswer && arr.Length == 3) { GameObject.Find("SoundCorrect").GetComponent <AudioSource>().Play(); answerScript.correct.SetActive(true); Invoke("CorrectAnswer", 2); } else { GameObject.Find("SoundWrong").GetComponent <AudioSource>().Play(); answerScript.wrong.SetActive(true); Invoke("WrongAnswer", 2); } } else { gm.AddText(itemName); if (ts.num == 8) { ts.ResumeScript(); } else if (ts.num == 13 && gm.GetListCount() == 0) { ts.ResumeScript(); } else if (ts.num == 20) { bool isAnswer = true; string[] arr = gm.GetListItems(); for (int i = 0; i < arr.Length; i++) { if (!arr[i].Equals("penguin") && !arr[i].Equals("pheas") && !arr[i].Equals("crow")) { isAnswer = false; } } if (isAnswer && arr.Length == 3) { ts.ResumeScript(); } } } } }
public void Add_card_change() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(1); change = CardChange.MapCard(card); change.Description = "description change"; change.Comment = "test"; change.UserId = Guid.NewGuid(); Guid newId = repository.AddCardChangeRequest(change); Assert.AreNotEqual(Guid.Empty,newId); }
public void Get_card_change() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Description = "1"; change.Comment = "test"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); change = repository.GetCardChangeRequest(id); Assert.AreEqual(id, change.Id ); }
public void Get_change_value() { CardChange change = new CardChange(); Card card = mtgdb.GetCard(2); change = CardChange.MapCard(card); change.Comment = "test"; change.Description = "test"; change.UserId = Guid.NewGuid(); Guid id = repository.AddCardChangeRequest(change); string value = change.GetFieldValue("description"); Assert.AreEqual(value, "test" ); }
public CardModule () { this.RequiresAuthentication (); Get["/cr/{status?}"] = parameters => { ChangeRequestModel model = new ChangeRequestModel(); string status = (string)parameters.status; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.Title = "M:tgDb.Info Admin"; if(status == null) { model.Changes = repository.GetChangeRequests().ToList(); } else { model.Changes = repository.GetChangeRequests(status).ToList(); } return View["Change/ChangeRequests", model]; }; Get["/cards/{id}/logs"] = parameters => { CardLogsModel model = new CardLogsModel(); model.ActiveMenu = "sets"; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.Mvid = (int)parameters.id; try { model.Changes = repository.GetCardChangeRequests((int)parameters.id) .OrderByDescending(x => x.Version) .ToList(); } catch(Exception e) { model.Errors.Add(e.Message); } return View["Change/CardLogs", model]; }; Get["/cards/{id}/logs/{logid}"] = parameters => { CardChange model = new CardChange(); try { model = repository.GetCardChangeRequest((Guid)parameters.logid); } catch(Exception e) { model.Errors.Add(e.Message); } model.ActiveMenu = "sets"; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.Mvid = (int)parameters.id; return View["Change/CardChange", model]; }; Post["/change/{id}/field/{field}"] = parameters => { Admin admin = new Admin(ConfigurationManager.AppSettings.Get("api")); Planeswalker planeswalker = (Planeswalker)this.Context.CurrentUser; Guid changeId = Guid.Parse((string)parameters.id); string field = (string)parameters.field; CardChange change = null; if(!planeswalker.InRole("admin")) { return HttpStatusCode.Unauthorized; } try { change = repository.GetCardChangeRequest(changeId); if(field == "close") { repository.UpdateCardChangeStatus(change.Id, "Closed"); return Response.AsRedirect(string.Format("/cards/{0}/logs/{1}", change.Mvid, change.Id)); } if(field == "open") { repository.UpdateCardChangeStatus(change.Id, "Pending"); return Response.AsRedirect(string.Format("/cards/{0}/logs/{1}", change.Mvid, change.Id)); } if(field == "formats") { admin.UpdateCardFormats(planeswalker.AuthToken, change.Mvid, change.Formats); } else if(field == "rulings") { admin.UpdateCardRulings(planeswalker.AuthToken, change.Mvid, change.Rulings); } else { string value = change.GetFieldValue(field); admin.UpdateCardField(planeswalker.AuthToken, change.Mvid, field, (string)value); } repository.UpdateCardChangeStatus(change.Id, "Accepted", field); } catch(Exception e) { throw e; } return Response.AsRedirect(string.Format("/cards/{0}/logs/{1}", change.Mvid, change.Id)); }; Get ["/cards/{id}/change"] = parameters => { CardChange model = new CardChange(); Card card; try { card = magicdb.GetCard((int)parameters.id); model = CardChange.MapCard(card); } catch(Exception e) { throw e; } return View["Change/Card", model]; }; Post ["/cards/{id}/change"] = parameters => { CardChange model = this.Bind<CardChange>(); Card current = magicdb.GetCard((int)parameters.id); model.CardSetId = current.CardSetId; model.CardSetName = current.CardSetName; model.Name = current.Name; model.Mvid = (int)parameters.id; model.Rulings = Bind.Rulings(Request); model.Formats = Bind.Formats(Request); model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.UserId = model.Planeswalker.Id; CardChange card = null; var result = this.Validate(model); if (!result.IsValid) { model.Errors = ErrorUtility.GetValidationErrors(result); return View["Change/Card", model]; } try { card = repository.GetCardChangeRequest( repository.AddCardChangeRequest(model) ); } catch(Exception e) { model.Errors.Add(e.Message); return View["Change/Card", model]; } return Response.AsRedirect(string.Format("/cards/{0}/logs?v={1}", card.Mvid, card.Version)); //return model.Description; //return View["Change/Card", model]; }; Post ["/cards/{id}/amount/{count}"] = parameters => { int multiverseId = (int)parameters.id; int count = (int)parameters.count; Guid walkerId = ((Planeswalker)this.Context.CurrentUser).Id; repository.AddUserCard(walkerId,multiverseId,count); return count.ToString(); }; //TODO: Refactor this, to long and confusing Get ["/pw/{planeswalker}/blocks/{block}/cards/{setId?}"] = parameters => { PlaneswalkerModel model = new PlaneswalkerModel(); model.ActiveMenu = "mycards"; string setId = (string)parameters.setId; model.Block = (string)parameters.block; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; if(model.Planeswalker.UserName.ToLower() != ((string)parameters.planeswalker).ToLower()) { model.Errors.Add(string.Format("Tsk Tsk! {0}, this profile is not yours.", model.Planeswalker.UserName)); return View["Page", model]; } try { model.Counts = repository.GetSetCardCounts(model.Planeswalker.Id); if(model.Counts == null || model.Counts.Count == 0) { return Response.AsRedirect("~/" + model.Planeswalker.UserName + "/cards"); } model.TotalCards = model.Counts.Sum(x => x.Value); model.TotalAmount = repository.GetUserCards(model.Planeswalker.Id).Sum(x => x.Amount); string[] blocks; if(model.Counts.Count > 0) { model.Sets = magicdb.GetSets(model.Counts .AsEnumerable().Select(x => x.Key) .ToArray()); blocks = model.Sets.Select(x => x.Block).Distinct().OrderBy(x => x).ToArray(); foreach(string block in blocks) { CardSet[] sets = model.Sets.Where(x => x.Block == block).ToArray(); int total = 0; foreach(CardSet set in sets) { total += model.Counts[set.Id]; } model.Blocks.Add(block,total); } model.Sets = model.Sets .Where(x => x.Block == model.Block) .OrderBy(x => x.Name).ToArray(); if(model.Sets == null || model.Sets.Length == 0) { return Response.AsRedirect(string.Format("~/{0}/cards", model.Planeswalker.UserName)); } if(setId == null) { setId = model.Sets.FirstOrDefault().Id; } model.SetId = setId; model.UserCards = repository.GetUserCards(model.Planeswalker.Id, setId); if(model.UserCards == null || model.UserCards.Length == 0) { return Response.AsRedirect(string.Format("~/{0}/cards", model.Planeswalker.UserName)); } Card[] dbcards = null; if(Request.Query.Show != null) { dbcards = magicdb.GetSetCards(model.SetId); model.Show = true; } else { dbcards = magicdb.GetCards(model.UserCards .AsEnumerable() .Where(x => x.Amount > 0) .Select(x => x.MultiverseId) .ToArray()); model.Show = false; } if(dbcards == null || dbcards.Length == 0) { return Response.AsRedirect(string.Format("~/{0}/cards", model.Planeswalker.UserName)); } List<CardInfo> cards = new List<CardInfo>(); CardInfo card = null; foreach(Card c in dbcards) { card = new CardInfo(); card.Amount = model.UserCards .AsEnumerable() .Where(x => x.MultiverseId == c.Id) .Select(x => x.Amount) .FirstOrDefault(); card.Card = c; cards.Add(card); } model.Cards = cards.OrderBy(x => x.Card.SetNumber).ToArray(); } else { model.Messages.Add("You have no cards in your library."); } } catch(Exception e) { model.Errors.Add(e.Message); } return View["MyCards", model]; }; Get ["/pw/{planeswalker}/cards"] = parameters => { PageModel model = new PageModel(); model.ActiveMenu = "mycards"; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; if(model.Planeswalker.UserName.ToLower() != ((string)parameters.planeswalker).ToLower()) { model.Errors.Add(string.Format("Tsk Tsk! {0}, this profile is not yours.", model.Planeswalker.UserName)); return View["Page", model]; } try { string setId = repository.GetSetCardCounts(model.Planeswalker.Id) .Select(x => x.Key) .OrderBy(x => x).FirstOrDefault(); if(setId != null) { CardSet s = magicdb.GetSet(setId); return Response.AsRedirect(string.Format("/pw/{0}/blocks/{1}/cards", model.Planeswalker.UserName, s.Block )); } model.Information.Add("You have no cards yet in your library. " + "Browse the sets and start adding cards Planeswalker!"); } catch(Exception e) { model.Errors.Add(e.Message); } return View["Page", model]; }; }
public List <CardChange> MoveToButtom() { List <CardChange> changeList = new List <CardChange>(); for (int i = 0; i < 4; i++) { for (int j = 3; j >= 0; j--) { CardChange change = new CardChange(); if (j == 3) { tabIndex = j; } else { if (intValue[j, i] == 0) { continue; } else if (intValue[j, i] != 0 && intValue[tabIndex, i] == 0) { intValue[tabIndex, i] = intValue[j, i]; intValue[j, i] = 0; change.fromIndexX = j; change.fromIndexY = i; change.toIndexX = tabIndex; change.toIndexY = i; changeList.Add(change); } else if (intValue[j, i] != 0 && intValue[tabIndex, i] != 0 && intValue[j, i] != intValue[tabIndex, i]) { intValue[tabIndex - 1, i] = intValue[j, i]; if (Mathf.Abs(j - tabIndex) > 1) { intValue[j, i] = 0; change.fromIndexX = j; change.fromIndexY = i; change.toIndexX = tabIndex - 1; change.toIndexY = i; changeList.Add(change); } tabIndex--; } else if (intValue[j, i] != 0 && intValue[tabIndex, i] != 0 && intValue[j, i] == intValue[tabIndex, i]) { intValue[tabIndex, i] *= 2; intValue[j, i] = 0; change.fromIndexX = j; change.fromIndexY = i; change.toIndexX = tabIndex; change.toIndexY = i; change.createNum = intValue[tabIndex, i]; changeList.Add(change); tabIndex--; } } } } return(changeList); }
public List <CardChange> MoveToLeft() { List <CardChange> changeList = new List <CardChange>(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { CardChange change = new CardChange(); if (j == 0) { tabIndex = j; } else { if (intValue[i, j] == 0) { continue; } else if (intValue[i, j] != 0 && intValue[i, tabIndex] == 0) { intValue[i, tabIndex] = intValue[i, j]; intValue[i, j] = 0; change.fromIndexX = i; change.fromIndexY = j; change.toIndexX = i; change.toIndexY = tabIndex; changeList.Add(change); } else if (intValue[i, j] != 0 && intValue[i, tabIndex] != 0 && intValue[i, j] != intValue[i, tabIndex]) { intValue[i, tabIndex + 1] = intValue[i, j]; if (Mathf.Abs(j - tabIndex) > 1) { intValue[i, j] = 0; change.fromIndexX = i; change.fromIndexY = j; change.toIndexX = i; change.toIndexY = tabIndex + 1; changeList.Add(change); } tabIndex++; } else if (intValue[i, j] != 0 && intValue[i, tabIndex] != 0 && intValue[i, j] == intValue[i, tabIndex]) { intValue[i, tabIndex] *= 2; intValue[i, j] = 0; change.fromIndexX = i; change.fromIndexY = j; change.toIndexX = i; change.toIndexY = tabIndex; change.createNum = intValue[i, tabIndex]; changeList.Add(change); tabIndex++; } } } } return(changeList); }
public Guid AddCardChangeRequest(CardChange change) { MongoCollection<CardChange> collection = database.GetCollection<CardChange> ("card_changes"); List<CardChange> changes = new List<CardChange>(); Card card = magicdb.GetCard(change.Mvid); var query = Query.And(Query<CardChange>.EQ (e => e.Mvid, change.Mvid )); var mongoResults = collection.Find(query); foreach(CardChange c in mongoResults) { changes.Add(c); } if(changes.Count == 0) { CardChange original = CardChange.MapCard(card); original.Comment = "Original card info"; original.Id = Guid.NewGuid(); original.Version = 0; original.CreatedAt = DateTime.Now; collection.Save(original); } change.Id = Guid.NewGuid(); change.Version = changes.Count == 0 ? 1 : changes.Count; change.CreatedAt = DateTime.Now; change.ModifiedAt = DateTime.Now; change.FieldsUpdated = CardChange.FieldsChanged(card, change); change.Status = "Pending"; //change.ReleasedAt = change.ReleasedAt.ToShortDateString(); if(change.FieldsUpdated == null || change.FieldsUpdated.Length == 0) { throw new ArgumentException("No fields have been updated."); } try { collection.Save(change); } catch(Exception e) { change.Id = Guid.Empty; throw e; } return change.Id; }