Esempio n. 1
0
 public void RemoveTeam(teamScript deadTeam)
 {
     // Called when a team is empty
     if (allTeams.Contains(deadTeam))
     {
         allTeams.Remove(deadTeam);
     }
     // If there is only one team remaining, declare it victorious
     if (allTeams.Count == 1)
     {
         DeclareVictory();
     }
 }
Esempio n. 2
0
    private void GenerateTeam()
    {
        if (!bGenerateSuccess)
        {
            Debug.Log("Error on Team Generation");
        }
        else
        {
            Debug.Log("No errors, enjoy!");

            // Initialises the team object
            GameObject newTeamObj = new GameObject("team" + teamNumber);
            teamScript newScript  = newTeamObj.AddComponent <teamScript>();
            newScript.initTeam(teamColour, teamFormation, teamNumber);

            // Initialises each character object
            for (int i = 0; i < teamSize; i++)
            {
                GameObject newCharObj = GameObject.CreatePrimitive(PrimitiveType.Cube);
                newCharObj.transform.localScale = new Vector3(.5f, .5f, .5f);
                newCharObj.transform.SetParent(newTeamObj.transform);
                newCharObj.GetComponent <MeshRenderer>().material.color = teamColour;
                newCharObj.name = (teamUnit_Name[i]);

                // Switch-case to determine which script is added
                ABC_character newCharScript;
                switch (teamUnit_Class[i])
                {
                case gameEnums.charClasses.barbarian:
                    newCharScript = newCharObj.AddComponent <char_Barbarian>();
                    break;

                case gameEnums.charClasses.druid:
                    newCharScript = newCharObj.AddComponent <char_Druid>();
                    break;

                case gameEnums.charClasses.fighter:
                    newCharScript = newCharObj.AddComponent <char_Fighter>();
                    break;

                case gameEnums.charClasses.monk:
                    newCharScript = newCharObj.AddComponent <char_Monk>();
                    break;

                case gameEnums.charClasses.paladin:
                    newCharScript = newCharObj.AddComponent <char_Paladin>();
                    break;

                case gameEnums.charClasses.ranger:
                    newCharScript = newCharObj.AddComponent <char_Ranger>();
                    break;

                case gameEnums.charClasses.wizard:
                    newCharScript = newCharObj.AddComponent <char_Wizard>();
                    break;

                // Backup default to fighter
                default:
                    newCharScript = newCharObj.AddComponent <char_Fighter>();
                    break;
                }
                newCharScript.InitCharacter(teamUnit_Name[i], teamUnit_Level[i], teamUnit_Class[i], teamUnit_Race[i], newTeamObj);
            }
        }
    }
Esempio n. 3
0
 public void AddNewTeam(teamScript newTeam)
 {
     // Called when a team is created
     allTeams.Add(newTeam);
 }
Esempio n. 4
0
    // Fills out some variables, as well as the Abilties list depending on class
    public void InitCharacter(string newName, int newLevel, gameEnums.charClasses myNewClass, gameEnums.charRaces myNewRace, GameObject myNewTeam)
    {
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());
        myAbilities.Add(new gameEnums.classAbility());

        // Basic stats
        myName      = newName;
        myLevel     = newLevel;
        myMaxHealth = 6 * myLevel;
        myCurHealth = myMaxHealth;

        // Race, Class, Team
        myClass = myNewClass;
        myRace  = myNewRace;
        Debug.Log(myTeam);
        myTeam = myNewTeam.GetComponent <teamScript>();
        Debug.Log(myTeam);
        Debug.Log(gameObject);
        myTeam.characterAdd(gameObject);

        // Switch-case based on class
        // Each case sets the character's HP as well as their abilities
        switch (myClass)
        {
        case (gameEnums.charClasses.barbarian):
        {
            myAbilities[0] = new gameEnums.classAbility("Swing Axe", "The Barbarian swings his weapon at the enemy", 0, 0);             // 1d5 damage
            myAbilities[1] = new gameEnums.classAbility("Enraged", "The Barbarian is filled with rage and hits harder ", 2, 3);         // Doubles damage dealt
            myAbilities[2] = new gameEnums.classAbility("Summon Gang", "The Barbarian calls for aid", 4, 2);                            // Spawns 3 weak fighter allies of same race
            myAbilities[3] = new gameEnums.classAbility("Natural Armour", "The Barbarian's rockhard abs protects him from harm", 1, 0); // 1d3 damage next hit
            myAbilities[4] = new gameEnums.classAbility("Intimidate", "The Barbarian attempts to scare the opponent", 0, 0);            // Target rolls will-save or misses next turn
            break;
        }

        case (gameEnums.charClasses.druid):
        {
            myAbilities[0] = new gameEnums.classAbility("Swing Stick", "The Druid swings his stick", 0, 0);                         // 1d4 damage
            myAbilities[1] = new gameEnums.classAbility("Forest's Wrath", "Druid does 3d3 damage against Orcs and Dwarves ", 2, 0); // 3d3 against certain races
            myAbilities[2] = new gameEnums.classAbility("Natural Order", "Druid does 3d3 against Undead and Demons ", 2, 0);        // 3d3 against certain races
            myAbilities[3] = new gameEnums.classAbility("Plains' Reclamation", "Druid does 3d3 against Humans and Elves ", 2, 0);   // 3d3 against certain races
            break;
        }

        case (gameEnums.charClasses.fighter):
        {
            myAbilities[0] = new gameEnums.classAbility("Swing Sword", "The Fighter swings his sword", 0, 0);                          // 2d3 damage
            myAbilities[1] = new gameEnums.classAbility("Raised Shield", "The Fighter raises his shield in a defensive stance", 1, 0); // 1d3 on all received attacks next turn
            myAbilities[2] = new gameEnums.classAbility("Flanking Move", "Enemy has to roll Save or take 2d5 damage", 2, 4);           // 2d5 damage against enemies who fail save
            break;
        }

        case (gameEnums.charClasses.monk):
        {
            myAbilities[0] = new gameEnums.classAbility("Swing Fists", "The Monk throws a punch", 0, 0);                                      // 1d4 damage
            myAbilities[1] = new gameEnums.classAbility("Holy Fury", "The Monk does 4d2 damage against Demons", 2, 3);                        // Extra damage against demons
            myAbilities[2] = new gameEnums.classAbility("Focused Defense", "The Monk's training allows him to negate damage and fear", 1, 0); // 1d3 damage removed until next turn
            break;
        }

        case (gameEnums.charClasses.paladin):
        {
            myAbilities[0] = new gameEnums.classAbility("Swing Mace", "The Paladin swings his mace", 0, 0);                             // 1d4 damage
            myAbilities[1] = new gameEnums.classAbility("Smite", "The Paladin does extra damage against Undead/Demons", 2, 0);          // 1d6 damage against bias, 1d3 against nonbias
            myAbilities[2] = new gameEnums.classAbility("Turn Undead", "The Paladin terrifies all Undead, causing them to flee", 1, 0); // Undead have to roll save or miss a turn
            myAbilities[3] = new gameEnums.classAbility("Blessed Healing", "The Paladin heals the living and harms the unholy", 1, 0);  // 1d3 healing or 1d6 damage to Undead/Demon
            break;
        }

        case (gameEnums.charClasses.ranger):
        {
            myAbilities[0] = new gameEnums.classAbility("Fire Arrow", "The Ranger fires his bow", 0, 0);                            // 1d4 damage, range of 4
            myAbilities[1] = new gameEnums.classAbility("Multi-shot", "The Ranger attacks multiple nearby targets at once", 1, 0);  // 1d3 against up to 3 nearby targets
            myAbilities[2] = new gameEnums.classAbility("Camouflage", "The Ranger increases his save rolls until next turn", 1, 0); // 1d3 added to all saves until next turn
            break;
        }

        case (gameEnums.charClasses.wizard):
        {
            myAbilities[0] = new gameEnums.classAbility("Magic Missile", "The Wizard fires a bolt of pure magic", 0, 0);                       // 1d4 damage
            myAbilities[1] = new gameEnums.classAbility("Fireball", "The Wizard fires an explosive bolt of flames", 3, 2);                     // 2d4 damage, spread of 1, damages all
            myAbilities[2] = new gameEnums.classAbility("Blessed Healing", "The Wizard heals the living and harms the unholy", 1, 0);          // 1d3 healing or 1d6 damage to Undead/Demon
            myAbilities[3] = new gameEnums.classAbility("Turn Undead", "The Wizard terrifies all Undead, causing them to flee", 1, 0);         // Undead have to roll save or miss a turn
            myAbilities[4] = new gameEnums.classAbility("Summon Undead", "The Wizard spawns two weak Undead to fight for him", 3, 2);          // Summons 2 weak Undead not of class Wizard, unsummoned on death
            myAbilities[5] = new gameEnums.classAbility("Magical Ward", "The Wizard creates a Ward that protects his team for 2 turns", 3, 3); // 2d2 damage removed when teammates are hit for two turns
            myAbilities[6] = new gameEnums.classAbility("Unholy Ritual", "The Wizard summons a powerful demon to his aid", 5, 1);              // Summons 1 Demon equal to highest level in enemy team, unsummoned on death
            break;
        }
        }
    }