Пример #1
0
 // Use this for initialization
 void Start()
 {
     player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>();
     BB     = GetComponentInParent <BouncingBullet>();
     damage = 2.9f * player.playerDamageMultiplier;
     UID    = "BouncingBastard" + UnityEngine.Random.value.ToString();
     hitbox = GetComponent <CircleCollider2D>();
 }
        public static Projectile CreateProjectile(Dictionary <string, object> projectileProperties)
        {
            Projectile projectile = null;

            string    textureName = (string)projectileProperties["textureName"];
            Texture2D texture     = TextureFactory.GetTexture(textureName);

            string colorName = (string)projectileProperties["color"];
            Color  color     = System.Drawing.Color.FromName(colorName).ToXNA();

            MovementPattern movement = MovementPatternFactory.CreateMovementPattern((Dictionary <string, object>)projectileProperties["movementPattern"]);

            int damage = Convert.ToInt32((float)projectileProperties["damage"]);

            switch (projectileProperties["projectileType"])
            {
            case "bullet":
                projectile = new Bullet(texture, color, movement, damage);
                break;

            case "bouncingBullet":
                projectile = new BouncingBullet(texture, color, movement, damage);
                break;

            case "bounceBullet":
                int numberOfTimesToBounce = (int)projectileProperties["bounceTimes"];
                projectile = new BounceBullet(texture, color, movement, damage, numberOfTimesToBounce);
                break;

            case "pushBullet":
                projectile = new PushBullet(texture, color, movement, damage);
                break;

            default:
                throw new Exception("Invalid Projectile Type");
            }

            return(projectile);
        }