From 790c3669a0c828f27290f61c9a84805fe03290d5 Mon Sep 17 00:00:00 2001
From: Sam <samuelkeiffer@gmail.com>
Date: Sun, 22 Aug 2021 11:23:34 -0400
Subject: [PATCH] Fix mindflayer summoning minions inside pillars.

---
 .../common/abilities/custom/mindflayer/summonminions.ron | 2 +-
 common/src/states/basic_summon.rs                        | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/assets/common/abilities/custom/mindflayer/summonminions.ron b/assets/common/abilities/custom/mindflayer/summonminions.ron
index 7fdfb01ec1..1716608e3c 100644
--- a/assets/common/abilities/custom/mindflayer/summonminions.ron
+++ b/assets/common/abilities/custom/mindflayer/summonminions.ron
@@ -3,7 +3,7 @@ BasicSummon(
     cast_duration: 1.0,
     recover_duration: 0.5,
     summon_amount: 6,
-    summon_distance: (3, 3),
+    summon_distance: (4, 4),
     summon_info: (
         body: BipedSmall((
             species: Husk,
diff --git a/common/src/states/basic_summon.rs b/common/src/states/basic_summon.rs
index 6b2e2b943b..338b488e75 100644
--- a/common/src/states/basic_summon.rs
+++ b/common/src/states/basic_summon.rs
@@ -16,7 +16,7 @@ use crate::{
 };
 use rand::Rng;
 use serde::{Deserialize, Serialize};
-use std::{f32::consts::PI, time::Duration};
+use std::{f32::consts::PI, ops::Sub, time::Duration};
 use vek::*;
 
 /// Separated out to condense update portions of character state
@@ -129,16 +129,17 @@ impl CharacterBehavior for Data {
                         let ray_vector = Vec3::new(
                             (summon_frac * 2.0 * PI).sin() * length,
                             (summon_frac * 2.0 * PI).cos() * length,
-                            data.body.eye_height(),
+                            0.0,
                         );
 
-                        // Check for collision on the xy plane
+                        // Check for collision on the xy plane, subtract 1 to get point before block
                         let obstacle_xy = data
                             .terrain
                             .ray(data.pos.0, data.pos.0 + length * ray_vector)
                             .until(Block::is_solid)
                             .cast()
-                            .0;
+                            .0
+                            .sub(1.0);
 
                         let collision_vector = Vec3::new(
                             data.pos.0.x + (summon_frac * 2.0 * PI).sin() * obstacle_xy,