private void CopyComponent(int cell) { LandStats prevLandStats = Lane[cell - 1].GetComponent <LandStats>(); Destroy(Lane[cell].GetComponent <LandStats>()); LandStats curLandStatsLane = Lane[cell].AddComponent <LandStats>(); curLandStatsLane.player = prevLandStats.player; curLandStatsLane.units = prevLandStats.units; curLandStatsLane.frontline = prevLandStats.frontline; }
private void UpdateCastleStats(GameObject playerCastle, CharacterStats characterStats) { LandStats castleStats = playerCastle.GetComponent <LandStats>(); if (characterStats.type.Equals("melee")) { castleStats.units.melee.Add(characterStats); castleStats.units.meleeDamage += characterStats.dmgValue; } else if (characterStats.type.Equals("range")) { castleStats.units.rangeDamage += characterStats.dmgValue; } castleStats.units.allUnits.Add(characterStats); }
void Start() { Destroy(GameObject.Find("LandEnemy2").GetComponent <LandStats>()); CreateLandStatsComponents(); DragDrop.CharacterStats ePawn1 = CreateEnemyPawn("LandEnemy2"); DragDrop.CharacterStats ePawn2 = CreateEnemyPawn("LandEnemy2"); LandStats landEnemy2 = GameObject.Find("LandEnemy2").GetComponent <LandStats>(); landEnemy2.units.allUnits.Add(ePawn1); landEnemy2.units.melee.Add(ePawn1); landEnemy2.units.meleeDamage += ePawn1.dmgValue; landEnemy2.player = false; LandStats landEnemy1 = GameObject.Find("LandEnemy2").GetComponent <LandStats>(); landEnemy1.units.allUnits.Add(ePawn2); landEnemy1.units.melee.Add(ePawn2); landEnemy1.units.meleeDamage += ePawn2.dmgValue; landEnemy1.player = false; }
private void MeleesPhase(int land) { LandStats landPlayer = Lane[land - 1].GetComponent <LandStats>(); LandStats landEnemy = Lane[land].GetComponent <LandStats>(); int damagePlayer = landPlayer.units.meleeDamage; int damageEnemy = landEnemy.units.meleeDamage; landPlayer.units.melee.Sort((p1, p2) => p2.hpValue.CompareTo(p1.hpValue)); landPlayer.units.melee.Reverse(); landEnemy.units.melee.Sort((p1, p2) => p2.hpValue.CompareTo(p1.hpValue)); landEnemy.units.melee.Reverse(); //Debug.Log($"landPlayer: {landPlayer.player}, landEnemy: {landEnemy.player}, damagePlayer: {damagePlayer}, damageEnemy: {damageEnemy}"); //for (int i = 0; i < landPlayer.units.melee.Count; i++) //{ // Debug.Log($"dmg{i}: {landPlayer.units.melee[i].dmgValue}, hp{i}: {landPlayer.units.melee[i].hpValue}"); //} //for (int i = 0; i < landEnemy.units.melee.Count; i++) //{ // Debug.Log($"dmg{i}: {landEnemy.units.melee[i].dmgValue}, hp{i}: {landEnemy.units.melee[i].hpValue}"); //} for (int i = 0; i < landEnemy.units.melee.Count; i++) { if (damagePlayer >= landEnemy.units.melee[i].hpValue) { damagePlayer -= landEnemy.units.melee[i].hpValue; landEnemy.units.melee[i].hpValue = 0; for (int j = 0; j < landEnemy.units.allUnits.Count; j++) { if (SameUnits(landEnemy.units.allUnits[j], landEnemy.units.melee[i])) { SendToGrave(land); landEnemy.units.allUnits.RemoveAt(j); // ToDo: send card to graveyard break; } } landEnemy.units.meleeDamage -= landEnemy.units.melee[i].dmgValue; landEnemy.units.melee.RemoveAt(i); i--; } else { for (int j = 0; j < landEnemy.units.allUnits.Count; j++) { if (SameUnits(landEnemy.units.allUnits[j], landEnemy.units.melee[i])) { landEnemy.units.allUnits[j].hpValue -= damagePlayer; break; } } damagePlayer = 0; } } for (int i = 0; i < landPlayer.units.melee.Count; i++) { if (damageEnemy >= landPlayer.units.melee[i].hpValue) { damageEnemy -= landPlayer.units.melee[i].hpValue; landPlayer.units.melee[i].hpValue = 0; for (int j = 0; j < landPlayer.units.allUnits.Count; j++) { if (SameUnits(landPlayer.units.allUnits[j], landPlayer.units.melee[i])) { SendToGrave(land - 1); landPlayer.units.allUnits.RemoveAt(j); // ToDo: send card to graveyard break; } } landPlayer.units.meleeDamage -= landPlayer.units.melee[i].dmgValue; landPlayer.units.melee.RemoveAt(i); i--; } else { for (int j = 0; j < landPlayer.units.allUnits.Count; j++) { if (SameUnits(landPlayer.units.allUnits[j], landPlayer.units.melee[i])) { landPlayer.units.allUnits[j].hpValue -= damageEnemy; break; } } damageEnemy = 0; } } //Debug.Log($"LandEnemy: {landEnemy.units.melee.Count} ; Lane: {Lane[land].GetComponent<LandStats>().units.melee.Count}"); //Debug.Log($"Component: {GameObject.Find("LandEnemy2").GetComponent<LandStats>().units.melee.Count}"); //Debug.Log($"landPlayer: {landPlayer.player}, landEnemy: {landEnemy.player}, damagePlayer: {damagePlayer}, damageEnemy: {damageEnemy}"); //for (int i = 0; i < landPlayer.units.melee.Count; i++) //{ // Debug.Log($"dmg{i}: {landPlayer.units.melee[i].dmgValue}, hp{i}: {landPlayer.units.melee[i].hpValue}"); //} //for (int i = 0; i < landEnemy.units.melee.Count; i++) //{ // Debug.Log($"dmg{i}: {landEnemy.units.melee[i].dmgValue}, hp{i}: {landEnemy.units.melee[i].hpValue}"); //} //UpdateComponent(land-1, landPlayer.units); }
private void RangeAttack(int land) { LandStats landPlayer = Lane[land - 1].GetComponent <LandStats>(); LandStats landEnemy = Lane[land].GetComponent <LandStats>(); int damagePlayer = landPlayer.units.rangeDamage; int damageEnemy = landEnemy.units.rangeDamage; landPlayer.units.allUnits.Sort((p1, p2) => p2.hpValue.CompareTo(p1.hpValue)); landPlayer.units.allUnits.Reverse(); landEnemy.units.allUnits.Sort((p1, p2) => p2.hpValue.CompareTo(p1.hpValue)); landEnemy.units.allUnits.Reverse(); for (int i = 0; i < landEnemy.units.allUnits.Count; i++) { if (damagePlayer >= landEnemy.units.allUnits[i].hpValue) { damagePlayer -= landEnemy.units.allUnits[i].hpValue; landEnemy.units.allUnits[i].hpValue = 0; for (int j = 0; j < landEnemy.units.melee.Count; j++) { if (SameUnits(landEnemy.units.allUnits[i], landEnemy.units.melee[j])) { landEnemy.units.meleeDamage -= landEnemy.units.melee[j].dmgValue; SendToGrave(land); landEnemy.units.melee.RemoveAt(j); // ToDo: send card to graveyard break; } } if (landEnemy.units.allUnits[i].type.Equals("range")) { landEnemy.units.rangeDamage -= landEnemy.units.allUnits[i].dmgValue; } landEnemy.units.allUnits.RemoveAt(i); i--; } else { landEnemy.units.allUnits[i].hpValue -= damagePlayer; //for (int j = 0; j < landEnemy.units.melee.Count; j++) //{ // if (landEnemy.units.allUnits[i] == landEnemy.units.melee[j]) // { // landEnemy.units.melee[j].hpValue -= damagePlayer; // break; // } //} damagePlayer = 0; } } //UpdateComponent(land, landEnemy.units); for (int i = 0; i < landPlayer.units.allUnits.Count; i++) { if (damageEnemy >= landPlayer.units.allUnits[i].hpValue) { damageEnemy -= landPlayer.units.allUnits[i].hpValue; landPlayer.units.allUnits[i].hpValue = 0; for (int j = 0; j < landPlayer.units.melee.Count; j++) { if (SameUnits(landPlayer.units.allUnits[i], landPlayer.units.melee[j])) { landPlayer.units.meleeDamage -= landPlayer.units.melee[j].dmgValue; SendToGrave(land - 1); landPlayer.units.melee.RemoveAt(j); // ToDo: send card to graveyard //Lane[land-1].GetComponent<LandStats>().units.melee.RemoveAt(j); break; } } if (landPlayer.units.allUnits[i].type.Equals("range")) { landPlayer.units.rangeDamage -= landPlayer.units.allUnits[i].dmgValue; } landPlayer.units.allUnits.RemoveAt(i); //Lane[land - 1].GetComponent<LandStats>().units.allUnits.RemoveAt(i); i--; } else { landPlayer.units.allUnits[i].hpValue -= damageEnemy; //for (int j = 0; j < landPlayer.units.melee.Count; j++) //{ // if (landPlayer.units.allUnits[i] == landPlayer.units.melee[j]) // { // landPlayer.units.melee[j].hpValue -= damageEnemy; // break; // } //} damageEnemy = 0; } } //UpdateComponent(land-1, landPlayer.units); }