Example #1
0
    void FastAttack()
    {
        GameObject clone = Instantiate <GameObject> (bullet, transform.position, Quaternion.identity);

        BulletRock bulletRock = clone.GetComponent <BulletRock> ();

        bulletRock.Init(10f);
    }
Example #2
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        BulletRock bullet = collision.gameObject.GetComponent <BulletRock> ();

        if (bullet != null)
        {
            animator.SetBool("isDead", true);
        }
    }
Example #3
0
        public IEnumerable <Wait> MeteorBash(Attack attack)
        {
            int traitLvl = attack.Attacker.GetTrait(this);

            if (attack.Defender is Creature targetCreature && attack.ReactionLevel <= 0 && targetCreature.CurrentHP > 0 && attack.IsWeaponAttack())
            {
                var bullet = new BulletRock(attack.Attacker.World, SpriteLoader.Instance.AddSprite("content/rock_big"), attack.Attacker.VisualTarget, Material.Meteorite.ColorTransform, 0.1f, 10);
                bullet.Move(targetCreature.VisualTarget, 10);
                yield return(attack.Attacker.WaitSome(10));

                new FireExplosion(targetCreature.World, targetCreature.VisualTarget, Vector2.Zero, 0, 20);
                Point offset = attack.Attacker.Facing.ToOffset();
                var   wait   = attack.Attacker.Attack(targetCreature, new Vector2(offset.X, offset.Y), MeteorAttack);
                yield return(wait);
            }

            yield return(Wait.NoWait);
        }