Example #1
0
    private void SpawnEnemies()
    {
        int difficulty = GameInformation.instance.GetLevelDifficulty();

        int currentDifficulty = 0;
        int numOfEnemies      = 0;

        while (currentDifficulty < difficulty && numOfEnemies < 6)
        {
            GameObject enemy = Instantiate(owner.enemyPrefab);

            int   index = Random.Range(0, enemyTiles.Count);
            Point p     = enemyTiles[index];
            enemyTiles.RemoveAt(index);

            EnemyUnit enemyUnit = enemy.GetComponent <EnemyUnit>();
            enemyUnit.Place(board.GetTile(p));

            EnemyUnitInfo enemyInfo = GameInformation.instance.GetRandomEnemy();
            enemyUnit.GetComponent <UnitStats>().SetEnemyInfo(enemyInfo);

            owner.enemyUnits.Add(enemyUnit);
            enemyUnit.Match();

            currentDifficulty += enemyInfo.difficulty;
            numOfEnemies++;
        }
    }
    public void SetEnemyInfo(EnemyUnitInfo enemyInfo)
    {
        _enemyInfo = enemyInfo;
        _enemyInfo.InitWeapons();

        SetInfo(_enemyInfo);
    }
Example #3
0
    public void Setup(EnemyUnitInfo enemyUnitInfo)
    {
        unitName.text = enemyUnitInfo.enemyName;
        unitLvl.text  = enemyUnitInfo.enemyLvl.ToString();

        //loveMeter.maxValue = enemyUnitInfo.maxLove;
        loveMeter.value = enemyUnitInfo.currentLove;
    }
Example #4
0
 public void Start()
 {
     enemyUnit  = GameObject.FindGameObjectWithTag("EnemyManager").GetComponent <EnemyUnitInfo>();
     playerUnit = GameObject.FindGameObjectWithTag("PlayerManager").GetComponent <PlayerUnitInfo>();
     playerUnit.currentConfidence = playerUnit.maxConfidence;
     enemyUnit.currentLove        = playerUnit.attraction;
     animator = GetComponent <Animator>();
 }
Example #5
0
    /// <summary>
    /// Setup in debug mode so we dont require initialization from the GameManager
    /// </summary>
    void DebugSetup()
    {
        BoardManager.instance.InitializeMapForCombat(0);

        GameObject mapEditor = GameObject.Find("MapEditor");

        if (mapEditor != null)
        {
            Destroy(mapEditor);
        }

        List <PartyUnit> CurrentParty = new List <PartyUnit>();
        PartyUnit        newUnit      = ScriptableObject.CreateInstance <PartyUnit> ();

        newUnit.UnitPrefab       = Resources.Load("Characters/Hero") as GameObject;
        newUnit.MovementDistance = 4;
        newUnit.Health           = 150;
        newUnit.UnitClass        = PlayerControlledBoardUnit.PlayerClass.Support;
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Support/ElectromagneticField")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Support/ConcussiveBlast")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Support/StaticShell")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Support/PulseForce")) as AbilityDescription);
        newUnit.currentLevel   = 1;
        newUnit.UnitTalentTree = Instantiate(Resources.Load <TalentTree> ("TalentTrees/WarriorTree")) as TalentTree;
        CurrentParty.Add(newUnit);
        newUnit                  = ScriptableObject.CreateInstance <PartyUnit> ();
        newUnit.UnitPrefab       = Resources.Load("Characters/Hero") as GameObject;
        newUnit.MovementDistance = 4;
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Wizard/RadiantEnergy")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Wizard/CircuitBreak")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Wizard/StaticGrip")) as AbilityDescription);
        newUnit.ListOfAbilities.Add(Instantiate(Resources.Load <AbilityDescription> ("Abilities/Wizard/FluxBlast")) as AbilityDescription);
        newUnit.Health         = 120;
        newUnit.UnitClass      = PlayerControlledBoardUnit.PlayerClass.Wizard;
        newUnit.currentLevel   = 1;
        newUnit.UnitTalentTree = Instantiate(Resources.Load <TalentTree> ("TalentTrees/WizardTree")) as TalentTree;
        CurrentParty.Add(newUnit);


        List <EnemyUnitInfo> enemies  = new List <EnemyUnitInfo> ();
        EnemyUnitInfo        newEnemy = ScriptableObject.CreateInstance <EnemyUnitInfo> ();

        newEnemy.UnitPrefab       = Resources.Load("EnemyUnitPrefabTest") as GameObject;
        newEnemy.MovementDistance = 3;
        newEnemy.Health           = 400;
        newEnemy.AIType           = CombatAIManager.AIType.Melee;
        newEnemy.ListOfAbilities.Add(Resources.Load <AbilityDescription> ("Abilities/EnemyAbilities/Bite"));
        enemies.Add(newEnemy);
        newEnemy                  = ScriptableObject.CreateInstance <EnemyUnitInfo> ();
        newEnemy.UnitPrefab       = Resources.Load("EnemyUnitPrefabTest") as GameObject;
        newEnemy.MovementDistance = 3;
        newEnemy.Health           = 400;
        newEnemy.AIType           = CombatAIManager.AIType.Melee;
        newEnemy.ListOfAbilities.Add(Resources.Load <AbilityDescription> ("Abilities/EnemyAbilities/Bite"));
        enemies.Add(newEnemy);

        SetupCombat(0, CurrentParty, enemies);
    }
 /// <summary>
 /// Initialize the unit based  on a PartyUnit
 /// </summary>
 public void Initialize(EnemyUnitInfo u)
 {
     MoveDistance = u.MovementDistance;
     AbilityActivator.ListOfAbilities = u.ListOfAbilities;
     MaxHealth     = u.Health;
     CurrentHealth = u.Health;
     alive         = true;
     AIType        = u.AIType;
 }
Example #7
0
    static void Init()
    {
        //		AbilityWindow window = (AbilityWindow)EditorWindow.GetWindow (typeof (AbilityWindow));
        //		window.Show();
        Debug.Log("Created new EnemyUnitInfo to Path: \"BattleBots/Resources/Enemies/NewEnemy.asset\"");
        EnemyUnitInfo ab = ScriptableObject.CreateInstance <EnemyUnitInfo>();

        AssetDatabase.CreateAsset(ab, @"Assets/BattleBots/Resources/Enemies/NewEnemy.asset");
        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = ab;
    }
    public void Show(EnemyUnitInfo unit)
    {
        gameObject.SetActive(true);
        bust.gameObject.SetActive(false);

        name.text = unit.name;

        //mainWeaponUI.Set(unit.WeaponMain);
        mainWeaponUI.gameObject.SetActive(false);
        secondaryWeaponUI.gameObject.SetActive(false);

        talkButton.gameObject.SetActive(false);

        comboUI.gameObject.SetActive(false);
    }
Example #9
0
    /// <summary>
    /// Raises the level was loaded event.
    /// </summary>
    void OnLevelWasLoaded(int level)
    {
        if (_instance != this)         //Object that is destroyed will still call this
        {
            return;
        }

        if (Application.loadedLevelName == "CombatTest")
        {
            combatManager       = GameObject.Find("CombatManager").GetComponent <CombatManager> ();
            combatManager.debug = false;
            BoardManager.instance.InitializeMapForCombat(0);

            GameObject mapEditor = GameObject.Find("MapEditor");
            if (mapEditor != null)
            {
                Destroy(mapEditor);
            }

            if (enemies == null || enemies.Count == 0)
            {
                enemies = new List <EnemyUnitInfo> ();
                EnemyUnitInfo newUnit = ScriptableObject.CreateInstance <EnemyUnitInfo> ();
                newUnit.UnitPrefab       = Resources.Load("EnemyUnitPrefabTest") as GameObject;
                newUnit.MovementDistance = 3;
                newUnit.Health           = 400;
                newUnit.AIType           = CombatAIManager.AIType.Melee;
                newUnit.ListOfAbilities.Add(Resources.Load <AbilityDescription> ("Abilities/EnemyAbilities/Bite"));
                enemies.Add(newUnit);
                newUnit                  = ScriptableObject.CreateInstance <EnemyUnitInfo> ();
                newUnit.UnitPrefab       = Resources.Load("EnemyUnitPrefabTest") as GameObject;
                newUnit.MovementDistance = 3;
                newUnit.Health           = 400;
                newUnit.AIType           = CombatAIManager.AIType.Melee;
                newUnit.ListOfAbilities.Add(Resources.Load <AbilityDescription> ("Abilities/EnemyAbilities/Bite"));
                enemies.Add(newUnit);
            }
            combatManager.SetupCombat(0, CurrentParty, enemies);
        }
        else if (Application.loadedLevelName == "CustomizationMenu")
        {
            CustomizationMenuLoaded();
        }
        else if (Application.loadedLevelName == "OpenWorld")
        {
            OpenWorldLoaded();
        }
    }
Example #10
0
    IEnumerator SetupBattle()
    {
        playerUnit = GameObject.FindGameObjectWithTag("PlayerManager").GetComponent <PlayerUnitInfo>();

        enemyUnit = GameObject.FindGameObjectWithTag("EnemyManager").GetComponent <EnemyUnitInfo>();

        battleText.text = enemyUnit.enemyName + " looks uninterested...";

        playerHUD.Setup(playerUnit);
        enemyHUD.Setup(enemyUnit);

        yield return(new WaitForSeconds(2f));

        state = BattleState.PLAYERTURN;
        playerImage.sprite = playerSprites[1];
        PlayerTurn();
    }
Example #11
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();
        enemyUnit = (EnemyUnitInfo)target;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Name:");
        enemyUnit.name = EditorGUILayout.TextField(enemyUnit.name);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Health:");
        enemyUnit.Health = EditorGUILayout.IntField(enemyUnit.Health);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("MovementDistance:");
        enemyUnit.MovementDistance = EditorGUILayout.IntField(enemyUnit.MovementDistance);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        enemyUnit.AIType = (CombatAIManager.AIType)EditorGUILayout.EnumPopup("Enemy AI Type", enemyUnit.AIType);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Abilities:");
        EditorGUILayout.EndHorizontal();
        DisplayAbilities();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Drag New Abilities Here", GUILayout.MaxWidth(200));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("newAbility"), GUIContent.none);
        if (Event.current.type == EventType.Repaint)           //repaint only to avoid layout errors
        {
            if (enemyUnit.newAbility != null)
            {
                enemyUnit.AddNewAbility();
            }
        }
        EditorGUILayout.EndHorizontal();

        serializedObject.ApplyModifiedProperties();
        EditorUtility.SetDirty(enemyUnit);          //Have to set dirty or it wont update
    }
Example #12
0
 public void ShowPortrait(EnemyUnitInfo unit)
 {
     unitPortraitUI.Show(unit);
 }