コード例 #1
0
ファイル: BaseCore.cs プロジェクト: Thinny-Hendrix/MoonCow
 public void releaseHeavySpot(BaseCoreSpot spot)
 {
     List<BaseCoreSpot> s = hevNeighbors(spots.IndexOf(spot));
     foreach (BaseCoreSpot spo in s)
         spo.taken = false;
     spot.taken = false;
 }
コード例 #2
0
ファイル: BaseCore.cs プロジェクト: Thinny-Hendrix/MoonCow
        public List<Vector3> coordsToSpot(BaseCoreSpot b, Vector3 currentPos, Vector3 corePos)
        {
            List<Vector3> temp = new List<Vector3>();

            if(b.rot <= MathHelper.PiOver4*0.5f || b.rot >= MathHelper.PiOver4*7.5f)
            {
                if(currentPos.X > pos.X+15)
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                }
                else if(currentPos.X < pos.X-15)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                temp.Add(pos + new Vector3(0, 0, -30));
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4*0.5f && b.rot <= MathHelper.PiOver4*1.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4 * 1.5f && b.rot <= MathHelper.PiOver4 * 2.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                temp.Add(pos + new Vector3(-30, 0, 0));
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4 * 2.5f && b.rot <= MathHelper.PiOver4 * 3.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                    temp.Add(pos + new Vector3(-30, 0, -30));
                }
                temp.Add(pos + new Vector3(-30, 0, 0));
                temp.Add(pos + new Vector3(-30, 0, 30));
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4 * 3.5f && b.rot <= MathHelper.PiOver4 * 4.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                    temp.Add(pos + new Vector3(-30, 0, 0));
                    temp.Add(pos + new Vector3(-30, 0, 30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                    temp.Add(pos + new Vector3(30, 0, 0));
                    temp.Add(pos + new Vector3(30, 0, 30));
                }
                temp.Add(pos + new Vector3(0, 0, 30));
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4 * 4.5f && b.rot <= MathHelper.PiOver4 * 5.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                }
                else
                {
                }
                temp.Add(pos + new Vector3(30, 0, -30));
                temp.Add(pos + new Vector3(30, 0, 0));
                temp.Add(pos + new Vector3(30, 0, 30));
                temp.Add(corePos);
            }
            else if (b.rot > MathHelper.PiOver4 * 5.5f && b.rot <= MathHelper.PiOver4 * 6.5f)
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                    temp.Add(pos + new Vector3(30, 0, -30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                }
                temp.Add(pos + new Vector3(30, 0, 0));
                temp.Add(corePos);
            }
            else//above 4pi*6.5 and less than 4pi*7.5
            {
                if (currentPos.X < pos.X)
                {
                    temp.Add(pos + new Vector3(-30, 0, -30));
                    temp.Add(pos + new Vector3(0, 0, -30));
                    temp.Add(pos + new Vector3(30, 0, -30));
                }
                else
                {
                    temp.Add(pos + new Vector3(30, 0, -30));
                }
                temp.Add(corePos);
            }

            return temp;
        }
コード例 #3
0
ファイル: BaseCore.cs プロジェクト: Thinny-Hendrix/MoonCow
        public List<Vector3> coordsToWait(BaseCoreSpot b, Vector3 currentPos, Vector3 corePos)
        {
            List<Vector3> temp = new List<Vector3>();

            if(corePos.X < pos.X)
            {
                if(currentPos.X < pos.X)
                {
                    temp.Add(pos+new Vector3(-30,0,-35));
                }
                else
                {
                    if(waitSpots.ElementAt(1).taken)
                    {
                        temp.Add(pos + new Vector3(30, 0, -15));
                        temp.Add(pos + new Vector3(0, 0, -15));
                    }
                    else
                    {
                        temp.Add(pos + new Vector3(30, 0, -35));
                    }
                }
            }
            else
            {
                if(currentPos.X > pos.X)
                {
                    temp.Add(pos + new Vector3(30, 0, -35));
                }
                else
                {
                    if (waitSpots.ElementAt(0).taken)
                    {
                        temp.Add(pos + new Vector3(-30, 0, -15));
                        temp.Add(pos + new Vector3(0, 0, -15));
                    }
                    else
                    {
                        temp.Add(pos + new Vector3(-30, 0, -35));
                    }
                }
            }

            temp.Add(corePos);

            return temp;
        }