예제 #1
0
    public void Initialize(ProjectileLauncherTypeDefinition typeDef, Vector2 direction)
    {
        TypeDefinition    = typeDef;
        timeSinceLastShot = 0.0f;

        Direction = direction;
    }
예제 #2
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;
    }
예제 #3
0
    private static void GenerateTypeMap()
    {
        //this is all throwaway code
        //this would be much better suited in data rather than hard-coded

        {
            var straightTypeDef = new ProjectileLauncherTypeDefinition();
            straightTypeDef.LauncherType     = ProjectileLauncherType.Straight;
            straightTypeDef.ProjectileType   = ProjectileType.Green;
            straightTypeDef.TimeBetweenShots = 0.25f;
            straightTypeDef.OnFireMethod     = OnFireStraight;
            typeDefinitionMap.Add(straightTypeDef.LauncherType, straightTypeDef);
        }

        {
            var spreadTypeDef = new ProjectileLauncherTypeDefinition();
            spreadTypeDef.LauncherType     = ProjectileLauncherType.Spread;
            spreadTypeDef.ProjectileType   = ProjectileType.Blue;
            spreadTypeDef.TimeBetweenShots = 0.5f;
            spreadTypeDef.OnFireMethod     = OnFireSpread;
            typeDefinitionMap.Add(spreadTypeDef.LauncherType, spreadTypeDef);
        }
        {
            var machineGunTypeDef = new ProjectileLauncherTypeDefinition();
            machineGunTypeDef.LauncherType     = ProjectileLauncherType.MachineGun;
            machineGunTypeDef.ProjectileType   = ProjectileType.Red;
            machineGunTypeDef.TimeBetweenShots = 0.1f;
            machineGunTypeDef.OnFireMethod     = OnFireStraight;
            typeDefinitionMap.Add(machineGunTypeDef.LauncherType, machineGunTypeDef);
        }
        {
            var enemyBasicTypeDef = new ProjectileLauncherTypeDefinition();
            enemyBasicTypeDef.LauncherType     = ProjectileLauncherType.EnemyBasic;
            enemyBasicTypeDef.ProjectileType   = ProjectileType.Enemy;
            enemyBasicTypeDef.TimeBetweenShots = 0.5f;
            enemyBasicTypeDef.OnFireMethod     = OnFireStraight;
            typeDefinitionMap.Add(enemyBasicTypeDef.LauncherType, enemyBasicTypeDef);
        }

        {
            var enemyRandomTypeDef = new ProjectileLauncherTypeDefinition();
            enemyRandomTypeDef.LauncherType     = ProjectileLauncherType.EnemyRandom;
            enemyRandomTypeDef.ProjectileType   = ProjectileType.Enemy;
            enemyRandomTypeDef.TimeBetweenShots = 0.25f;
            enemyRandomTypeDef.OnFireMethod     = OnFireRandom;
            typeDefinitionMap.Add(enemyRandomTypeDef.LauncherType, enemyRandomTypeDef);
        }
    }
예제 #4
0
 public void SetTypeDefinition(ProjectileLauncherTypeDefinition typeDef)
 {
     TypeDefinition = typeDef;
 }