public ChampionObject(ChampionObject cloneThis, int level) { this.championName = cloneThis.championName; this.classType1 = cloneThis.classType1; this.classType2 = cloneThis.classType2; this.classType3 = cloneThis.classType3; this.cost = cloneThis.cost; this.level = level; }
public void ReturnToDeck(ChampionObject toReturn) { //ChampionObject temp = new ChampionObject(toReturn.championName,toReturn.classType1,toReturn.classType2,toReturn.classType3,toReturn.cost,toReturn.level); if (toReturn.championName != "Empty") { switch (toReturn.cost) { //make sure to add the appropriate champions into their respective decks //the number of champions is simply 3 ^ (level - 1) case 1: for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++) { deck.tier1Deck.Add(new ChampionObject(toReturn, 1)); } break; case 2: for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++) { deck.tier2Deck.Add(new ChampionObject(toReturn, 1)); } break; case 3: for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++) { deck.tier3Deck.Add(new ChampionObject(toReturn, 1)); } break; case 4: for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++) { deck.tier4Deck.Add(new ChampionObject(toReturn, 1)); } break; case 5: for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++) { deck.tier5Deck.Add(new ChampionObject(toReturn, 1)); } break; } } }
public void Buy(string buttonName) { switch (buttonName) { case "Option1": { for (int i = 0; i < 9; i++) { if (inventory[i].championName == "Empty") { //here i create a new champion object because if it make //the inventory spot equal the cardsrevealed, any modification will point to //the main deck inventory[i] = new ChampionObject(cardsRevealed[0].championName, cardsRevealed[0].classType1, cardsRevealed[0].classType2, cardsRevealed[0].classType3, cardsRevealed[0].cost , cardsRevealed[0].level); goldUsed += cardsRevealed[0].cost; cardsRevealed[0] = new Champion().placeHolder; //option1.GetComponent<Image>().sprite = "Graves"; Combine(); break; } else { if (i == 8) { overflowPlaceholder.championName = cardsRevealed[0].championName; if (CombineOverflow(overflowPlaceholder)) { goldUsed += cardsRevealed[0].cost; cardsRevealed[0] = new Champion().placeHolder; } else { Debug.Log("No more space!"); } } } } break; } case "Option2": { for (int i = 0; i < 9; i++) { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(cardsRevealed[1].championName, cardsRevealed[1].classType1, cardsRevealed[1].classType2, cardsRevealed[1].classType3, cardsRevealed[1].cost , cardsRevealed[1].level); goldUsed += cardsRevealed[1].cost; cardsRevealed[1] = new Champion().placeHolder; Combine(); break; } else { if (i == 8) { overflowPlaceholder.championName = cardsRevealed[1].championName; if (CombineOverflow(overflowPlaceholder)) { goldUsed += cardsRevealed[1].cost; cardsRevealed[1] = new Champion().placeHolder; } else { Debug.Log("No more space!"); } } } } break; } case "Option3": { for (int i = 0; i < 9; i++) { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(cardsRevealed[2].championName, cardsRevealed[2].classType1, cardsRevealed[2].classType2, cardsRevealed[2].classType3, cardsRevealed[2].cost , cardsRevealed[2].level); goldUsed += cardsRevealed[2].cost; cardsRevealed[2] = new Champion().placeHolder; Combine(); break; } else { if (i == 8) { overflowPlaceholder.championName = cardsRevealed[2].championName; if (CombineOverflow(overflowPlaceholder)) { goldUsed += cardsRevealed[2].cost; cardsRevealed[2] = new Champion().placeHolder; } else { Debug.Log("No more space!"); } } } } break; } case "Option4": { for (int i = 0; i < 9; i++) { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(cardsRevealed[3].championName, cardsRevealed[3].classType1, cardsRevealed[3].classType2, cardsRevealed[3].classType3, cardsRevealed[3].cost , cardsRevealed[3].level); goldUsed += cardsRevealed[3].cost; cardsRevealed[3] = new Champion().placeHolder; Combine(); break; } else { if (i == 8) { overflowPlaceholder.championName = cardsRevealed[3].championName; if (CombineOverflow(overflowPlaceholder)) { goldUsed += cardsRevealed[3].cost; cardsRevealed[3] = new Champion().placeHolder; } else { Debug.Log("No more space!"); } } } } break; } case "Option5": { for (int i = 0; i < 9; i++) { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(cardsRevealed[4].championName, cardsRevealed[4].classType1, cardsRevealed[4].classType2, cardsRevealed[4].classType3, cardsRevealed[4].cost , cardsRevealed[4].level); goldUsed += cardsRevealed[4].cost; cardsRevealed[4] = new Champion().placeHolder; Combine(); break; } else { if (i == 8) { overflowPlaceholder.championName = cardsRevealed[4].championName; if (CombineOverflow(overflowPlaceholder)) { goldUsed += cardsRevealed[4].cost; cardsRevealed[4] = new Champion().placeHolder; } else { Debug.Log("No more space!"); } } } } break; } case "Empty": { Debug.Log("Champion is sold"); break; } } //here ill write one more combine (this mostly checks if anything has hit level 3. //i can also add another exception in the combine function if i have time. Combine(); }
//this combines when the inventory is full public bool CombineOverflow(ChampionObject Overflow) { numOfSameUnit = 0; //check for any pair on the field first for (int i = 0; i < 9; i++) { //check for any pair on the field first if (champsOnField[i].championName != "Empty") { if (champsOnField[i].championName == Overflow.championName && champsOnField[i].level == Overflow.level) { numOfSameUnit++; if (numOfSameUnit == 2) { champsOnField[sameUnitPosField[0]].cost *= 3; champsOnField[sameUnitPosField[0]].level++; champsOnField[i] = new Champion().placeHolder; return(true); } else { sameUnitPosField[0] = i; } } } } //combine if one exists in the field if (numOfSameUnit == 1) { for (int i = 0; i < 9; i++) { if (inventory[i].championName != "Empty") { if (inventory[i].championName == Overflow.championName && inventory[i].level == Overflow.level) { champsOnField[sameUnitPosField[0]].cost *= 3; champsOnField[sameUnitPosField[0]].level++; inventory[i] = new Champion().placeHolder; return(true); } } } } //if none are in the field, just check the inventory normally numOfSameUnit = 0; for (int i = 0; i < 9; i++) { if (inventory[i].championName != "Empty") { if (inventory[i].championName == Overflow.championName && inventory[i].level == Overflow.level) { numOfSameUnit++; if (numOfSameUnit == 2) { Debug.Log("overflow triple found"); inventory[sameUnitPosInventory[0]].cost *= 3; inventory[sameUnitPosInventory[0]].level++; inventory[i] = new Champion().placeHolder; return(true); } else { sameUnitPosInventory[0] = i; } } } } return(false); }
public void OnDrop(PointerEventData eventData) { posBeingDragged = int.Parse(eventData.pointerDrag.name.Remove(0, this.name.Length - 1)) - 1; nameBeingDragged = eventData.pointerDrag.name.Remove(this.name.Length - 1); //as long as im not dropping an empty slot... for (int i = 0; i < 9; i++) { onFieldPos.Add(gameController.onfield[i].transform.position); inventoryPos.Add(gameController.inventoryObjects[i].transform.position); } //If dragged to bottom, sell it! if (this.transform.position.y < -1.6) { //Debug.Log("Sell me"); if (nameBeingDragged == "Inventory") { gameController.ReturnToDeck(inventory[posBeingDragged]); inventory[posBeingDragged] = new Champion().placeHolder; } else { gameController.ReturnToDeck(gameController.champsOnField[posBeingDragged]); gameController.champsOnField[posBeingDragged] = new Champion().placeHolder; } gameController.sprites.UpdatePics(); } for (int i = 0; i < 9; i++) { distanceFromField = Vector3.Distance(this.transform.position, onFieldPos[i]); distanceFromInventory = Vector3.Distance(this.transform.position, inventoryPos[i]); //skip checking itself! if (distanceFromField < 0.45) { //moving to field i if (nameBeingDragged == "Inventory") { if (gameController.champsOnField[i].championName == "Empty") { // Debug.Log("Swapping inventory with Field"); gameController.champsOnField[i] = new ChampionObject(inventory[posBeingDragged]); inventory[posBeingDragged] = new Champion().placeHolder; gameController.sprites.UpdatePics(); break; } } } //dropping into inventory else if (distanceFromInventory < 0.45) { if (nameBeingDragged == "Inventory") { if (i != posBeingDragged) { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(inventory[posBeingDragged]); inventory[posBeingDragged] = new Champion().placeHolder; gameController.sprites.UpdatePics(); break; } else { //swap objects ChampionObject tempChamp = new ChampionObject(inventory[i]); inventory[i] = new ChampionObject(inventory[posBeingDragged]); inventory[posBeingDragged] = new ChampionObject(tempChamp); gameController.sprites.UpdatePics(); } } } //field to inventory else { if (inventory[i].championName == "Empty") { inventory[i] = new ChampionObject(gameController.champsOnField[posBeingDragged]); gameController.champsOnField[posBeingDragged] = new Champion().placeHolder; gameController.sprites.UpdatePics(); break; } else { //swap objects ChampionObject tempChamp = new ChampionObject(gameController.champsOnField[i]); inventory[i] = new ChampionObject(gameController.champsOnField[posBeingDragged]); gameController.champsOnField[posBeingDragged] = new ChampionObject(tempChamp); gameController.sprites.UpdatePics(); } } } } textMesh.SetText(gameController.Traits()); textMesh.ForceMeshUpdate(); }