private NestElement InstantiateIShapeRoad(EnumRoadHVDirection direction)
    {
        var roadData = new IShapeRoadData(direction);

        //  roadData.IsUnderConstruction = true;
        return(NestSystem.Instance.InstantiateNestElement(roadData));
    }
예제 #2
0
        public void PushDown()
        {
            position   = Input.mousePosition;
            position.z = 10f;
            screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position);
            //Listでシーン内にあるNestElementをすべて取得
            var list = NestSystem.Instance.NestElements;

            //貯蓄庫と女王の部屋の数を数えます
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].GetType().Name == "StoreRoom")
                {
                    Chochikukonum++;
                }
                else if (list[i].GetType().Name == "QueenRoom")//仮の名前
                {
                    QweenRoomNum++;
                }
            }

            //出現させるNestElementのデータを保存
            NestElementData data;

            if (NestName == "IShapeVertical")
            {
                data = new IShapeRoadData(EnumRoadHVDirection.Vertical)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "IShapeHorizontal")
            {
                data = new IShapeRoadData(EnumRoadHVDirection.Horizontal)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "LShapeBottom")
            {
                data = new LShapeRoadData(EnumRoadDirection.Bottom)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "LShapeRight")
            {
                data = new LShapeRoadData(EnumRoadDirection.Right)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "LShapeTop")
            {
                data = new LShapeRoadData(EnumRoadDirection.Top)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "LShapeLeft")
            {
                data = new LShapeRoadData(EnumRoadDirection.Left)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "TShapeBottom")
            {
                data = new TShapeRoadData(EnumRoadDirection.Bottom)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "TShapeRight")
            {
                data = new TShapeRoadData(EnumRoadDirection.Right)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "TShapeTop")
            {
                data = new TShapeRoadData(EnumRoadDirection.Top)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "TShapeLeft")
            {
                data = new TShapeRoadData(EnumRoadDirection.Left)
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "Chochikubeya" && Chochikukonum == 0)
            {
                //data = new ChochikubeyaData();
                data = new StoreRoomData()
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "QueenRoom" && QweenRoomNum == 0)
            {
                //data = new QweenAntRoomData();
                data = new QueenRoomData()
                {
                    IsUnderConstruction = true
                };
            }
            else if (NestName == "Cross")
            {
                data = new CrossShapeRoadData()
                {
                    IsUnderConstruction = true
                };
            }
            else
            {
                data = new CrossShapeRoadData();
            }

            //貯蓄庫と女王の部屋が指定されたときシーン内に巣でにそれらの部屋があるなら出せない
            if ((NestName == "Chochikubeya" && Chochikukonum != 0) || (NestName == "QueenRoom" && QweenRoomNum != 0))
            {
                GetComponent <EventTrigger>().triggers.Clear();
            }
            else
            {
                nestelement = NestSystem.Instance.InstantiateNestElement(data, false, false);
                nestelement.transform.position = screenToWorldPointPosition;
                (nestelement as NestBuildableElement).SetImage(EnumNestImage.Spector);
            }
        }
예제 #3
0
        public void PushDown()
        {
            position   = Input.mousePosition;
            position.z = 10f;
            screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position);
            //Listでシーン内にあるNestElementをすべて取得
            var list = NestSystem.Instance.NestElements;

            //貯蓄庫と女王の部屋の数を数えます
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].gameObject.name == "Chochikubeya(Clone)")
                {
                    Chochikukonum++;
                }
                else if (list[i].gameObject.name == "QweenAntRoom(Clone)")//仮の名前
                {
                    QweenRoomNum++;
                }
            }

            //出現させるNestElementのデータを保存
            NestElementData data;

            if (NestName == "IShapeVertical")
            {
                data = new IShapeRoadData(EnumRoadHVDirection.Vertical);
            }
            else if (NestName == "IShapeHorizontal")
            {
                data = new IShapeRoadData(EnumRoadHVDirection.Horizontal);
            }
            else if (NestName == "LShapeBottom")
            {
                data = new LShapeRoadData(EnumRoadDirection.Bottom);
            }
            else if (NestName == "LShapeRight")
            {
                data = new LShapeRoadData(EnumRoadDirection.Right);
            }
            else if (NestName == "LShapeTop")
            {
                data = new LShapeRoadData(EnumRoadDirection.Top);
            }
            else if (NestName == "LShapeLeft")
            {
                data = new LShapeRoadData(EnumRoadDirection.Left);
            }
            else if (NestName == "TShapeBottom")
            {
                data = new TShapeRoadData(EnumRoadDirection.Bottom);
            }
            else if (NestName == "TShapeRight")
            {
                data = new TShapeRoadData(EnumRoadDirection.Right);
            }
            else if (NestName == "TShapeTop")
            {
                data = new TShapeRoadData(EnumRoadDirection.Top);
            }
            else if (NestName == "TShapeLeft")
            {
                data = new TShapeRoadData(EnumRoadDirection.Left);
            }
            else if (NestName == "Chochikubeya")
            {
                //data = new ChochikubeyaData();
                data = new CrossShapeRoadData();
            }
            else if (NestName == "QweenAntRoom")
            {
                //data = new QweenAntRoomData();
                data = new CrossShapeRoadData();
            }
            else if (NestName == "Cross")
            {
                data = new CrossShapeRoadData();
            }
            else
            {
                data = new CrossShapeRoadData();
            }

            //貯蓄庫と女王の部屋が指定されたときシーン内に巣でにそれらの部屋があるなら出せない
            if ((NestName == "Chochikubeya" && Chochikukonum != 0) || (NestName == "QweenAntRoom" && QweenRoomNum != 0))
            {
            }
            else
            {
                nestelement = NestSystem.Instance.InstantiateNestElement(data);
                nestelement.transform.position = screenToWorldPointPosition;
            }
        }
예제 #4
0
        public static void LoadDefaultSaveUnitToCurrent(DefaultEnvironmentData defaultEnvironment = null)
        {
            var su = SaveUnit.GetEmptySaveUnit();

            //初期環境のセットアップ
            if (defaultEnvironment != null)
            {
                var structure = su.s_GameContext.s_NestData.Structure;
                structure.NestElements.AddRange(defaultEnvironment.GeneralPathRoads);

                //エサ備蓄
                su.s_GameContext.s_NestData.StoredFood = defaultEnvironment.StoredFood;

                //道
                var initialRoad = new IShapeRoadData()
                {
                    Position  = defaultEnvironment.InitialRoadPosition,
                    Direction = EnumRoadHVDirection.Vertical
                };
                structure.NestElements.Add(initialRoad);
                NestSystem.ParseNodePath(defaultEnvironment.InitialRoadBindNodePath, out string guid, out string name);
                structure.ElementEdges.Add(new NestPathElementEdgeData()
                {
                    ElementGuidA = initialRoad.Guid,
                    ElementGuidB = guid,
                    NodeNameA    = defaultEnvironment.InitialRoadNodeName,
                    NodeNameB    = name
                });

                //砂糖山
                var sugarStack = new MtSugarData()
                {
                    Position = defaultEnvironment.SugarStackPosition
                };
                structure.NestElements.Add(sugarStack);
                NestSystem.ParseNodePath(defaultEnvironment.SugarStackBindNodePath, out guid, out name);
                structure.ElementEdges.Add(new NestPathElementEdgeData()
                {
                    ElementGuidA = sugarStack.Guid,
                    ElementGuidB = guid,
                    NodeNameA    = defaultEnvironment.SugarStackNodeName,
                    NodeNameB    = name
                });

                //アリ
                var ants = su.s_GameContext.s_NestData.Ants;
                for (int i = 0; i < defaultEnvironment.BuilderAntCount; i++)
                {
                    ants.Add(new BuilderAntData());
                }
                for (int i = 0; i < defaultEnvironment.ErgateAntCount; i++)
                {
                    ants.Add(new ErgateAntData());
                }
                for (int i = 0; i < defaultEnvironment.UnemployedAntCount; i++)
                {
                    ants.Add(new UnemployedAntData());
                }
            }

            su.SetAsCurrent();
        }
예제 #5
0
    private NestElement InstantiateIShapeRoad(EnumRoadHVDirection direction)
    {
        var roadData = new IShapeRoadData(direction);

        return(NestSystem.Instance.InstantiateNestElement(roadData));
    }