public void OnEnemyDeath(EnemyTypeDefinition enemyType, Vector2 pos) { DeathSystem.OnEnemyDeath(enemyType, pos); LootSystem.OnEnemyDeath(enemyType, pos); scoredPointsEvent.Raise(enemyType.PointsForKilling); }
public Enemy SpawnNewEnemy(EnemyTypeDefinition enemyType, Vector2 pos) { var newEnemy = enemyPool.InitNewObject(); var enemy = newEnemy.GetComponent <Enemy>(); enemy.Initialize(enemyType, pos); return(enemy); }
public void OnEnemyDeath(EnemyTypeDefinition enemyDef, Vector2 pos) { Debug.Log("Enemy Died at: " + pos.ToString() + " You get points: " + enemyDef.PointsForKilling.ToString()); var points = pointsPool.InitNewObject().GetComponent <PointsNotification>(); points.Init(enemyDef.PointsForKilling, pos + Vector2.up); Stats.Instance.EnemiesKilledIncrementByOne(); }
public void OnEnemyHit(EnemyTypeDefinition enemyDef, Vector2 pos) { Debug.Log("Enemy Hit at: " + pos.ToString()); var hit = hitPool.InitNewObject().GetComponent <EnemyHit>(); hit.Init(pos); if (enemyDef.OnHitSound != null) { SoundManager.Instance.PlaySound(enemyDef.OnHitSound, pos); //play hit sound effect } }
public void Initialize(EnemyTypeDefinition typeDef, Vector2 pos) { TypeDefinition = typeDef; gameObject.transform.position = pos; gameObject.GetComponent <SpriteRenderer>().sprite = TypeDefinition.Sprite; Health = TypeDefinition.StartingHealth; LauncherTypeDefinition = ProjectileLauncherFactory.GetLauncherTypeDefinition(typeDef.LauncherType); myLauncher = gameObject.GetComponentInChildren <ProjectileLauncher>(); myLauncher.Initialize(LauncherTypeDefinition, Vector2.down); canMoveAndShoot = false; }
public void Initialize(EnemyTypeDefinition typeDef, Vector2 pos) { TypeDefinition = typeDef; transform.position = pos; spriteRenderer.sprite = typeDef.Sprite; Health = TypeDefinition.Health; var panda = GetComponent <PandaBehaviour>(); panda.scripts = typeDef.aiType.behaviorTree; panda.Apply(); panda.Compile(); projectileWeapon.SetWeaponDefinition(typeDef.weapon); }
private void GenerateTypeMap() { //this is all throwaway code //this would be much better suited in data rather than hard-coded if (typeDefinitionMap.Count == 0) { { var crossTypeDef = new EnemyTypeDefinition(); crossTypeDef.EnemyType = EnemyType.Cross; crossTypeDef.Sprite = crossSprite; crossTypeDef.StartingHealth = 1; crossTypeDef.LauncherType = ProjectileLauncherType.EnemyBasic; crossTypeDef.PointsForKilling = 25; typeDefinitionMap.Add(EnemyType.Cross, crossTypeDef); } { var squareTypeDef = new EnemyTypeDefinition(); squareTypeDef.EnemyType = EnemyType.Square; squareTypeDef.Sprite = squareSprite; squareTypeDef.StartingHealth = 1; squareTypeDef.LauncherType = ProjectileLauncherType.EnemyBasic; squareTypeDef.PointsForKilling = 50; typeDefinitionMap.Add(EnemyType.Square, squareTypeDef); } { var triangleTypeDef = new EnemyTypeDefinition(); triangleTypeDef.EnemyType = EnemyType.Triangle; triangleTypeDef.Sprite = triangleSprite; triangleTypeDef.StartingHealth = 2; triangleTypeDef.LauncherType = ProjectileLauncherType.EnemyRandom; triangleTypeDef.PointsForKilling = 100; typeDefinitionMap.Add(EnemyType.Triangle, triangleTypeDef); } } }
public void OnEnemyDeath(EnemyTypeDefinition enemyDef, Vector2 pos) { ExecuteLootTable(enemyDef.LootTable, pos); }