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(); } }
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); } } }
public void AddNewTeam(teamScript newTeam) { // Called when a team is created allTeams.Add(newTeam); }
// 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; } } }