public void Initialize(ProjectileTypeDefinition typeDef, Vector2 startingPoint, Vector2 direction) { TypeDefinition = typeDef; gameObject.transform.position = startingPoint; GetComponent <Rigidbody2D>().AddForce(direction * typeDef.Speed, ForceMode2D.Impulse); gameObject.GetComponent <SpriteRenderer>().sprite = TypeDefinition.Sprite; Damage = TypeDefinition.Damage; }
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 blueTypeDef = new ProjectileTypeDefinition(); blueTypeDef.ProjectileType = ProjectileType.Blue; blueTypeDef.Sprite = blueProjectile; blueTypeDef.Speed = 10f; blueTypeDef.Damage = 1; blueTypeDef.Layer = ProjectileLayer.Player; typeDefinitionMap.Add(blueTypeDef.ProjectileType, blueTypeDef); } { var greenTypeDef = new ProjectileTypeDefinition(); greenTypeDef.ProjectileType = ProjectileType.Green; greenTypeDef.Sprite = greenProjectile; greenTypeDef.Speed = 20f; greenTypeDef.Damage = 1; greenTypeDef.Layer = ProjectileLayer.Player; typeDefinitionMap.Add(greenTypeDef.ProjectileType, greenTypeDef); } { var redTypeDef = new ProjectileTypeDefinition(); redTypeDef.ProjectileType = ProjectileType.Red; redTypeDef.Sprite = redProjectile; redTypeDef.Speed = 10f; redTypeDef.Damage = 1; redTypeDef.Layer = ProjectileLayer.Player; typeDefinitionMap.Add(redTypeDef.ProjectileType, redTypeDef); } { var enemyTypeDef = new ProjectileTypeDefinition(); enemyTypeDef.ProjectileType = ProjectileType.Enemy; enemyTypeDef.Sprite = enemyProjectile; enemyTypeDef.Speed = 10f; enemyTypeDef.Damage = 1; enemyTypeDef.Layer = ProjectileLayer.Enemy; typeDefinitionMap.Add(enemyTypeDef.ProjectileType, enemyTypeDef); } } }