示例#1
0
    // = Helper.FillAlienJibs(PersonPriority);//


    public static Dictionary <string, int> FillPrioritys(Dictionary <SaveLoadData.TypePrefabs, PriorityFinder> pioritys)
    {
        var max = Enum.GetValues(typeof(SaveLoadData.TypePrefabs)).Length - 1;

        var _CollectionPowerAllTypes = new Dictionary <string, int>();

        SaveLoadData.TypePrefabs prefabNameType;
        SaveLoadData.TypePrefabs prefabNameTypeTarget;
        for (int ind = 0; ind < max; ind++)
        {
            prefabNameType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), ind.ToString());
            //if (Helper.IsTypePrefabNPC(prefabNameType.ToString()))
            if (pioritys.ContainsKey(prefabNameType))
            {
                ModelNPC.ObjectData objData   = BilderGameDataObjects.BildObjectData(prefabNameType.ToString());
                PriorityFinder      prioritys = pioritys[prefabNameType];
                for (int indT = 0; indT < max; indT++)
                {
                    prefabNameTypeTarget = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), indT.ToString());
                    ModelNPC.ObjectData objDataTarget = BilderGameDataObjects.BildObjectData(prefabNameTypeTarget.ToString());
                    int    power      = GetPriorityPower(objDataTarget, prioritys);
                    string keyJoinNPC = prefabNameType + "_" + prefabNameTypeTarget;
                    _CollectionPowerAllTypes.Add(keyJoinNPC, power);
                }
            }
        }
        return(_CollectionPowerAllTypes);
    }
示例#2
0
        //Clear location for portal
        public void ClearLocationAndCreateBiomFloor(int fieldX, int fieldY)
        {
            var          portal     = this;
            TypesBiomNPC typePortal = portal.TypeBiom;

            string            nameField    = string.Empty;
            List <Vector2Int> findedFileds = new List <Vector2Int>();

            Helper.GetSpiralFields(ref findedFileds, fieldX, fieldY, BuildSize);
            findedFileds.Add(new Vector2Int(fieldX, fieldY));
            foreach (Vector2Int fieldNext in findedFileds)
            {
                Helper.GetNameField_Cache(ref nameField, fieldNext.x, fieldNext.y);
                GenericWorldManager.ClearLayerForStructure(nameField, true);
                SaveLoadData.TypePrefabs portalFloorType = ManagerPortals.PortalBiomFloorsBase[typePortal];

                //Create object Biom Floor
                var    objDataSave = BilderGameDataObjects.BildObjectData(portalFloorType);
                string nameObject  = string.Empty;
                Helper.CreateName_Cache(ref nameObject, portalFloorType.ToString(), nameField, "-1");
                objDataSave.Position = Helper.NormalizFieldToWorld(fieldNext);
                Storage.Data.AddDataObjectInGrid(objDataSave, nameField, "GenericPortal");
                objDataSave.SetNameObject(nameObject, true);

                //%CLUSTER FILL
                //if (objDataSave.IsFloor())
                //{
                Vector2Int posField    = Helper.GetFieldPositByWorldPosit(objDataSave.Position);
                int        clusterSize = AlienJobsManager.GetClusterSize(posField.x, posField.y, objDataSave.TypePrefab);
                (objDataSave as ModelNPC.TerraData).ClusterFillSize = clusterSize;
                (objDataSave as ModelNPC.TerraData).DataCreate      = DateTime.Now;
                //}

                //... Check on Real
                bool isZonaReal = Helper.IsValidPiontInZona(objDataSave.Position.x, objDataSave.Position.y);
                if (!objDataSave.IsReality && isZonaReal)
                {
                    Storage.GenGrid.LoadObjectToReal(nameField);
                }
            }
        }
示例#3
0
    public bool AddConstructInGridData(string nameField, DataTile itemTile,
                                       PaletteMapController.SelCheckOptDel p_TypeModeOptStartDelete = PaletteMapController.SelCheckOptDel.None,
                                       PaletteMapController.SelCheckOptDel p_TypeModeOptStartCheck  = PaletteMapController.SelCheckOptDel.None)
    {
        TypePrefabs prefabName        = TypePrefabs.PrefabField;
        string      personTextureName = "";

        if (itemTile == null)
        {
            Debug.Log("####### AddConstructInGridData  itemTile == null");
            return(false);
        }

        //ArgumentException: The requested value 'SpriteBossAlien(Clone)' was not found.

        TypesStructure structType = (TypesStructure)Enum.Parse(typeof(TypesStructure), itemTile.Tag);;

        if (structType == TypesStructure.Terra)
        {
            prefabName = TypePrefabs.PrefabField;
        }
        if (structType == TypesStructure.Person)
        {
            personTextureName = itemTile.Name.ClearClone();
            prefabName        = TypePrefabs.PrefabBoss;
        }
        if (structType == TypesStructure.Prefab)
        {
            //ArgumentException: The requested value 'SpriteBossAlien(Clone)' was not found.
            prefabName = (TypePrefabs)Enum.Parse(typeof(TypePrefabs), itemTile.Name);
        }

        Vector2 posStruct = Helper.GetPositByField(nameField);
        int     x         = (int)posStruct.x;
        int     y         = (int)posStruct.y;
        int     _y        = y * (-1);
        Vector3 pos       = new Vector3(x, _y, 0) * Spacing;

        pos.z = -1;
        if (prefabName == TypePrefabs.PrefabUfo)
        {
            pos.z = -2;
        }

        string nameObject = Helper.CreateName(prefabName.ToString(), nameField, "-1");// prefabName.ToString() + "_" + nameFiled + "_" + i;

        ModelNPC.ObjectData objDataSave = BilderGameDataObjects.BildObjectData(prefabName);
        objDataSave.CreateID(nameObject);
        objDataSave.SetNameObject(nameObject, true);

        if (PoolGameObjects.IsUseTypePoolPrefabs)
        {
            objDataSave.ModelView = itemTile.Name;
        }
        else
        {
            if (structType == TypesStructure.Terra)
            {
                var objTerra = objDataSave as ModelNPC.TerraData;
                if (objTerra == null)
                {
                    Debug.Log("####### AddConstructInGridData: structType is TypesStructure.Terra   objDataSave Not is ModelNPC.TerraData !!!!");
                    return(false);
                }
                objTerra.ModelView = itemTile.Name;
            }
            if (structType == TypesStructure.TerraPrefab)
            {
                var objTerraPrefab = objDataSave as ModelNPC.WallData;
                if (objTerraPrefab == null)
                {
                    Debug.Log("####### AddConstructInGridData: structType is TypesStructure.TerraPrefab   objDataSave Not is ModelNPC.TerraData !!!!");
                    return(false);
                }
                objTerraPrefab.ModelView = itemTile.Name;
            }
        }

        if (structType == TypesStructure.Person)
        {
            var objPerson = objDataSave as ModelNPC.GameDataBoss;
            if (objPerson == null)
            {
                Debug.Log("####### AddConstructInGridData: structType is TypesStructure.Terra   objDataSave Not is ModelNPC.TerraData !!!!");
                return(false);
            }
        }

        bool res = Storage.Data.AddDataObjectInGrid(objDataSave, nameField, "CreateDataGamesObjectsWorld",
                                                    p_TypeModeOptStartDelete, p_TypeModeOptStartCheck);


        objDataSave.SetPosition(pos);
        return(res);
    }