Beispiel #1
0
    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);
            }
        }
    }