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); }
public void Setup(EnemyUnitInfo enemyUnitInfo) { unitName.text = enemyUnitInfo.enemyName; unitLvl.text = enemyUnitInfo.enemyLvl.ToString(); //loveMeter.maxValue = enemyUnitInfo.maxLove; loveMeter.value = enemyUnitInfo.currentLove; }
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>(); }
/// <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; }
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); }
/// <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(); } }
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(); }
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 }
public void ShowPortrait(EnemyUnitInfo unit) { unitPortraitUI.Show(unit); }