示例#1
0
文件: Basic.cs 项目: wiilinkpds/Wotrn
        public override bool Cast()
        {
            target = ((Player)Owner).Target;

            if (target == null || !base.Cast())
                return false;

            double distance = Math.Sqrt(
                              Math.Pow(Owner.Position.X - target.Position.X, 2) +
                              Math.Pow(Owner.Position.Y - target.Position.Y, 2));

            if (distance > range) // Portee de l'attaque
                return false;
            if (Owner.Direction == target.Direction) // Cast uniquement si le joueur est tourne vers l'entite
                return false;

            // Créer un vecteur directeur
            Vector2 move = target.Position + new Vector2(target.TextureSize.X, target.TextureSize.Y) / 2;

            move -= Owner.Position + new Vector2(Owner.TextureSize.X, Owner.TextureSize.Y) / 2;
            move.Normalize(); // Donne au vecteur la taille d'un pixel

            target.Position += move * 5;
            target.Damage(Owner, 10);

            return true;
        }
示例#2
0
        public override bool Cast()
        {
            target = ((Player)Owner).Target;

            if (target == null || !base.Cast())
                return false;

            // Créer un vecteur directeur
            Vector2 move = target.Position + new Vector2(target.TextureSize.X, target.TextureSize.Y) / 2;

            move -= Owner.Position + new Vector2(Owner.TextureSize.X, Owner.TextureSize.Y) / 2;
            move.Normalize(); // Donne au vecteur la taille d'un pixel

            target.Position += move * 20;
            target.Damage(Owner, 20);

            return true;
        }