public void Initialize(ProjectileLauncherTypeDefinition typeDef, Vector2 direction) { TypeDefinition = typeDef; timeSinceLastShot = 0.0f; Direction = direction; }
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; }
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); } }
public void SetTypeDefinition(ProjectileLauncherTypeDefinition typeDef) { TypeDefinition = typeDef; }