void FastAttack() { GameObject clone = Instantiate <GameObject> (bullet, transform.position, Quaternion.identity); BulletRock bulletRock = clone.GetComponent <BulletRock> (); bulletRock.Init(10f); }
private void OnCollisionEnter2D(Collision2D collision) { BulletRock bullet = collision.gameObject.GetComponent <BulletRock> (); if (bullet != null) { animator.SetBool("isDead", true); } }
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); }