Exemple #1
0
    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;
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    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;
    }
Exemple #4
0
    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);
    }
Exemple #5
0
    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);
    }