예제 #1
0
    public void OnEnemyDeath(EnemyTypeDefinition enemyType, Vector2 pos)
    {
        DeathSystem.OnEnemyDeath(enemyType, pos);
        LootSystem.OnEnemyDeath(enemyType, pos);

        scoredPointsEvent.Raise(enemyType.PointsForKilling);
    }
예제 #2
0
    public Enemy SpawnNewEnemy(EnemyTypeDefinition enemyType, Vector2 pos)
    {
        var newEnemy = enemyPool.InitNewObject();
        var enemy    = newEnemy.GetComponent <Enemy>();

        enemy.Initialize(enemyType, pos);
        return(enemy);
    }
예제 #3
0
    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();
    }
예제 #4
0
    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
        }
    }
예제 #5
0
    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;
    }
예제 #6
0
    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);
    }
예제 #7
0
    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);
            }
        }
    }
예제 #8
0
 public void OnEnemyDeath(EnemyTypeDefinition enemyDef, Vector2 pos)
 {
     ExecuteLootTable(enemyDef.LootTable, pos);
 }