private static void CreateScriptableObjects(ItemCreatorWindow.CustomItem item)
    {
        var obj = ScriptableObject.CreateInstance <DynamicData>();

        var fields = obj.GetType().GetFields();

        Sprite currentText = ItemCreator.GetItemIcon(item.itemIconDirectory);

        obj.itemIcon    = currentText;
        obj.itemName    = item.name;
        obj.isStackable = item.isStackable;
        obj.stackAmount = item.stackAmount;
        obj.inGameName  = item.inGameName;
        obj.description = item.description;
        obj.category    = item.category;


        foreach (var field in fields)
        {
            int hasIndex = item.addedVariables.FindIndex(x => { return(x.varName == field.Name); });

            if (hasIndex > -1)
            {
                item.addedVariables[hasIndex].data = Convert.ChangeType(item.addedVariables[hasIndex].data, field.FieldType);

                field.SetValue(obj, item.addedVariables[hasIndex].data);
            }
        }


        AssetDatabase.CreateAsset(obj, $"{ITEMS_FOLDER_PATH}/{item.name}.asset");
    }
Пример #2
0
        /// <summary>Getter for index</summary>
        /// <param name="key">key to find (or load if needed)</param>
        /// <param name="createItem">
        /// An optional factory method for creating the item if it does not exist in the cache.
        /// </param>
        /// <returns>the object value associated with key, or null if not found or could not be loaded</returns>
        public async Task <T> GetItem(TKey key, ItemCreator <TKey, T> createItem = null)
        {
            INode <T> node = FindExistingNodeByKey(key);

            node?.Touch();

            ItemCreator <TKey, T> creator = createItem ?? loadItem;

            if ((node?.Value == null) && (creator != null))
            {
                Task <T> task = creator(key);
                if (task == null)
                {
                    throw new ArgumentNullException(nameof(createItem),
                                                    "Expected a non-null Task. Did you intend to return a null-returning Task instead?");
                }

                T value = await task;

                lock (this)
                {
                    node = FindExistingNodeByKey(key);
                    if (node?.Value == null)
                    {
                        node = owner.AddAsNode(value);
                    }

                    lifespanManager.CheckValidity();
                }
            }

            return(node?.Value);
        }
        /// <summary>
        /// Submit event handler. Responsible for creating items.
        /// </summary>
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (IsValid)
            {
                foreach (RepeaterItem item in rpBulkItemEditor.Items)
                {
                    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                    {
                        var model = new ItemCreatorModel();

                        //Find controls from item in repeater
                        var ParentNode = (TextBox)item.FindControl("txtParentNode");
                        var TemplateID = (TextBox)item.FindControl("txtTemplateID");
                        var NoOfItems  = (TextBox)item.FindControl("txtNoOfItems");
                        var Languages  = (CheckBoxList)item.FindControl("cblLanguage");

                        //Set model values
                        model.NumberOfItems = System.Convert.ToInt32(NoOfItems.Text);
                        model.ParentNode    = ParentNode.Text;
                        model.TemplateId    = TemplateID.Text;
                        model.Languages     = Languages.SelectedValue;

                        //create items in CMS
                        var _itemCreator = new ItemCreator();
                        _itemCreator.ItemGenerator(model);
                    }
                }
            }
        }
Пример #4
0
    int Equip(CEquipment pEquip, EEquipPos ePos)
    {
        if (!ItemCreator.MIsEquipment(pEquip.GetItemTypeID()))
        {
            return(1);
        }

        if (pEquip.m_pEquipProto.byLevel > m_nLevel)
        {
            return(2);
        }

        CEquipment pSrc = (CEquipment)m_pEquipment.GetPos((Int16)ePos);

        if (pSrc != null)
        {
            // switch equip 's pos
            CItemMgr.Inst.m_pPocket.Remove(pEquip.GetItemID());
            m_pEquipment.Equip(pEquip, (Int16)ePos);
            ProcEquipEffect(pEquip, pSrc);
        }
        else
        {
            CItemMgr.Inst.m_pPocket.Remove(pEquip.GetItemID());
            m_pEquipment.Equip(pEquip, (Int16)ePos);
            ProcEquipEffect(pEquip, null);
        }

        //if( CNGUISys.Inst != null )
        //{
        //    CNGUISys.Inst.OnUpdateCharacterALL();
        //}
        return(0);
    }
        public void TestDataTableToList()
        {
            var expectedUser = FakeModelObjects.GetUser();
            var dt           = new DataTable();

            dt.Columns.Add("Id", typeof(string));
            dt.Columns.Add("FirstName", typeof(string));
            dt.Columns.Add("LastName", typeof(string));
            dt.Columns.Add("Email", typeof(string));
            dt.Columns.Add("Password", typeof(string));
            DataRow dataRow = dt.NewRow();

            dataRow["Id"]        = FakeModelObjects.FakeGuid.ToString();
            dataRow["FirstName"] = "Default";
            dataRow["LastName"]  = "Userov";
            dataRow["Email"]     = "*****@*****.**";
            dataRow["Password"]  = "******";
            dt.Rows.Add(dataRow);
            var resUser = ItemCreator.DataTableToList <User>(dt).FirstOrDefault();

            Assert.AreEqual(expectedUser.Id, resUser.Id);
            Assert.AreEqual(expectedUser.FirstName, resUser.FirstName);
            Assert.AreEqual(expectedUser.LastName, resUser.LastName);
            Assert.AreEqual(expectedUser.Email, resUser.Email);
        }
Пример #6
0
    public void Buy(int itemIndex)
    {
        var item = ItemCreator.CreateItem(itemIndex);

        this.Inventory.BuyItem(item);
        this.PrintInventory();
    }
Пример #7
0
        static void Main(string[] args)
        {
            // World w = World.GetInstance;(new Position(20,20),"The Game",new Hero("Heroic Hector", new Position(10, 10), 25, 30, Movement.State.North));

            Opponent o = new Opponent("Azeroth", new Position(8, 7), 30, 34);
            Opponent p = new Opponent("Beelzebub", new Position(6, 12), 30, 34);
            Opponent q = new Opponent("Azeroth", new Position(18, 7), 30, 34);
            Opponent r = new Opponent("Azeroth", new Position(8, 17), 30, 34);

            World.GetInstance().ObstacleList();

            DefenseFactory d = new DefenseFactory();
            ItemCreator    i = new ItemCreator(d);

            i.PlaceInWorld();
            World.GetInstance().ObstacleList();

            World.GetInstance().RegisterOpponents(o);
            World.GetInstance().RegisterOpponents(p);
            World.GetInstance().RegisterOpponents(q);
            World.GetInstance().RegisterOpponents(r);

            DrawGame dg = new DrawGame();

            dg.Draw();

            World.GetInstance().Hero.ToString();
        }
Пример #8
0
        public TriggerManager(RoomStateRepository roomStateRepository, ItemCreator itemCreator, GimmickManager gimmickManager)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;

            itemCreator.OnCreate += OnCreateItem;
        }
Пример #9
0
        /// <summary>Getter for index</summary>
        /// <param name="key">key to find (or load if needed)</param>
        /// <param name="createItem">
        /// An optional factory method for creating the item if it does not exist in the cache.
        /// </param>
        /// <returns>the object value associated with key, or null if not found or could not be loaded</returns>
        public async Task <T> GetItem(TKey key, ItemCreator <TKey, T> createItem = null)
        {
            INode <T> node = FindExistingNodeByKey(key);

            node?.Touch();

            ItemCreator <TKey, T> creator = createItem ?? loadItem;

            if ((node?.Value == null) && (creator != null))
            {
                T value = await creator(key);

                lock (this)
                {
                    node = FindExistingNodeByKey(key);
                    if (node?.Value == null)
                    {
                        node = owner.AddAsNode(value);
                    }

                    lifespanManager.CheckValidity();
                }
            }

            return(node?.Value);
        }
Пример #10
0
        static void Main(string[] args)
        {
            // Parse the input arguments.
            Parser.Default.ParseArguments <CommandLineOptions>(args)
            .WithParsed <CommandLineOptions>(opts =>
            {
                using (var client = new SessionAwareCoreServiceClient(opts.EndpointName))
                {
                    var creator = new ItemCreator(client, opts.publicationName, opts.XlsxPath);

                    switch (opts.Type)
                    {
                    case CreationType.Folders:
                        {
                            creator.CreateFolders(opts.FolderName);
                            break;
                        }

                    case CreationType.Keywords:
                        {
                            creator.CreateKeywords(opts.CategoryName);
                            break;
                        }

                    case CreationType.StructureGroups:
                        {
                            creator.CreateStructureGroups(opts.StructureGroupName);
                            break;
                        }
                    }
                }
            });
        }
Пример #11
0
        public async Task <T> GetItem(TKey key, ItemCreator <TKey, T> createItem = null)
        {
            T value = null;

            lock (syncObject)
            {
                Node <T> node = FindExistingNodeByKey(key);
                if (node != null)
                {
                    value = node.Value;

                    node.Touch();
                }
            }

            if (value == null)
            {
                value = await TryCreate(key, createItem);

                if (value != null)
                {
                    Node <T> newOrExistingNode = owner.TryAddAsNode(value);
                    value = newOrExistingNode.Value;

                    lifespanManager.CheckValidity();
                }
            }

            return(value);
        }
    private void OnEnable()
    {
        List <CustomItem> virtualItems = ItemCreator.GetData <List <CustomItem> >(DataTypeEnum.Items);

        if (virtualItems != null)
        {
            foreach (var item in virtualItems)
            {
                AddItem(item);
            }
        }

        List <ItemVariables> virtualVariables = ItemCreator.GetData <List <ItemVariables> >(DataTypeEnum.Variables);

        if (virtualVariables != null)
        {
            foreach (var variable in virtualVariables)
            {
                AddVariable(variable);
            }
        }

        List <Category> virtualCategories = ItemCreator.GetData <List <Category> >(DataTypeEnum.Categories);

        if (virtualCategories != null)
        {
            foreach (var category in virtualCategories)
            {
                AddCategory(category);
            }
        }
    }
        static void SetupTriggerGimmicks(IEnumerable <GameObject> rootGameObjects, ItemCreator itemCreator, ItemDestroyer itemDestroyer)
        {
            RoomStateRepository = new RoomStateRepository();
            GimmickManager      = new GimmickManager(RoomStateRepository, itemCreator, itemDestroyer);
            SignalGenerator     = new SignalGenerator();
            var triggerManager = new TriggerManager(RoomStateRepository, itemCreator, GimmickManager, SignalGenerator);
            var items          = GetComponentsInGameObjectsChildren <IItem>(rootGameObjects).ToArray();

            triggerManager.Add(items.SelectMany(x => x.gameObject.GetComponents <IItemTrigger>()));
            triggerManager.Add(GetComponentsInGameObjectsChildren <IPlayerTrigger>(rootGameObjects));
            triggerManager.Add(GetComponentsInGameObjectsChildren <IGlobalTrigger>(rootGameObjects));
            GimmickManager.AddGimmicksInScene(GetComponentsInGameObjectsChildren <IGimmick>(rootGameObjects));
            foreach (var item in items)
            {
                GimmickManager.AddGimmicksInItem(item.gameObject.GetComponentsInChildren <IGimmick>(true), item.Id.Value);
            }

            new LogicManager(itemCreator, RoomStateRepository, GimmickManager,
                             GetComponentsInGameObjectsChildren <IItemLogic>(rootGameObjects),
                             GetComponentsInGameObjectsChildren <IPlayerLogic>(rootGameObjects),
                             GetComponentsInGameObjectsChildren <IGlobalLogic>(rootGameObjects),
                             SignalGenerator);
            new PlayerEffectManager(PlayerPresenter, itemCreator, GetComponentsInGameObjectsChildren <IPlayerEffectGimmick>(rootGameObjects));
            new CreateItemGimmickManager(itemCreator, GetComponentsInGameObjectsChildren <ICreateItemGimmick>(rootGameObjects));
            new DestroyItemGimmickManager(itemCreator, itemDestroyer, GetComponentsInGameObjectsChildren <IDestroyItemGimmick>(rootGameObjects));

            var onReceiveOwnershipItemTriggerManager = new OnReceiveOwnershipItemTriggerManager(itemCreator);
            var onCreateItemTriggerManager           = new OnCreateItemTriggerManager(itemCreator);
            var onJoinPlayerTriggerManager           = new OnJoinPlayerTriggerManager();

            onCreateItemTriggerManager.Invoke(items.SelectMany(x => x.gameObject.GetComponents <IOnCreateItemTrigger>()));
            onJoinPlayerTriggerManager.Invoke(GetComponentsInGameObjectsChildren <IOnJoinPlayerTrigger>(rootGameObjects));
            onReceiveOwnershipItemTriggerManager.InvokeOnStart(items.SelectMany(x => x.gameObject.GetComponents <IOnReceiveOwnershipItemTrigger>()));
        }
 public CreateItemGimmickManager(
     ItemCreator itemCreator,
     IEnumerable <ICreateItemGimmick> createItemGimmicks)
 {
     this.itemCreator      = itemCreator;
     itemCreator.OnCreate += OnCreateItem;
     Register(createItemGimmicks);
 }
Пример #15
0
    static void Init()
    {
        GetIDCount();
        // Get existing open window or if none, make a new one:
        ItemCreator window = (ItemCreator)EditorWindow.GetWindow(typeof(ItemCreator));

        window.Show();
    }
Пример #16
0
        private void ArmourCreator_Click(object sender, EventArgs e)
        {
            Hide();
            ItemCreator armourCreator = new ItemCreator();

            armourCreator.ShowDialog();
            Show();
        }
Пример #17
0
    // Use this for initialization
    void Start()
    {
        Ground = GameObject.Find("Ground");
        cc     = GameObject.Find("CoinCreator").GetComponent <CoinCreator>();
        ec     = GameObject.Find("Enemy").GetComponent <EnemyCreato>();

        ic = GameObject.Find("ItemBox").GetComponent <ItemCreator>();
    }
Пример #18
0
    void CreateNewItem(ItemCreator creator)
    {
        Item newItem = null;

        if(index1==0){
            if(index2==0){ //One Handed Melee
                OneHandedMelee ohm = new OneHandedMelee();
                newItem = ohm as Item;
            }
            else if(index2==1){ //Two Handed Melee
                TwoHandedMelee thm = new TwoHandedMelee();
                newItem = thm as Item;
            }
            else if(index2==2){ //Bow
                Bow b = new Bow();
                newItem = b as Item;
            }
            else if(index2==3){ //Staff
                Staff s = new Staff();
                newItem = s as Item;
            }
            else if(index2==4){ //Shield
                Shield s = new Shield();
                newItem = s as Item;
            }
        }
        else if(index1==1){
            if(index2==0){ //Head
                HeadArmor ha = new HeadArmor();
                newItem = ha as Item;
            }
            else if(index2==1){ //Body
                BodyArmor ba = new BodyArmor();
                newItem = ba as Item;
            }
            else if(index2==2){ //Hand
                HandArmor ha = new HandArmor();
                newItem = ha as Item;
            }
            else if(index2==3){ //Leg
                LegArmor la = new LegArmor();
                newItem = la as Item;
            }
        }
        else if(index1==2){

        }

        newItem.ID = creator.itemID;

        creator._Item = newItem;
        creator.Save();

        creator.AddSpriteManager(sm);

        creator.isEditing = true;
        creator.isCreating = false;
    }
 public DestroyItemGimmickManager(
     ItemCreator itemCreator,
     ItemDestroyer itemDestroyer,
     IEnumerable <IDestroyItemGimmick> destroyItemGimmicks)
 {
     this.itemDestroyer    = itemDestroyer;
     itemCreator.OnCreate += OnCreateItem;
     Register(destroyItemGimmicks);
 }
Пример #20
0
 IEnumerator RunCreatorWithDuration(ItemCreator itemCreator, WaitForSeconds forDuration)
 {
     while (true)
     {
         GameObject itemObj = itemCreator.CreateItem();
         itemObj.transform.position = area.GetRandomPosInArea();
         yield return(forDuration);
     }
 }
Пример #21
0
 public bool RegisterType(ItemType _type, ItemCreator _creator)
 {
     if (factory.ContainsKey(_type))
     {
         return(false);
     }
     factory.Add(_type, _creator);
     return(true);
 }
        //Produce item if interval is up
        protected void produceItem(GameObject pirate, Object itemPrefab)
        {
            //If interval is up
            if (workSinceProduction >= productionTime)
            {
                workSinceProduction = 0;

                //Create item
                ItemCreator.produceItem(pirate, itemPrefab);
            }
        }
Пример #23
0
        /// <summary>Adds a new index to the cache</summary>
        /// <typeparam name="TKey">the type of the key value</typeparam>
        /// <param name="indexName">the name to be associated with this list</param>
        /// <param name="getKey">delegate to get key from object</param>
        /// <param name="item">delegate to load object if it is not found in index</param>
        /// <param name="keyEqualityComparer">The equality comparer to be used to compare the keys. Optional.</param>
        /// <returns>the newly created index</returns>
        public IIndex <TKey, T> AddIndex <TKey>(
            string indexName,
            GetKey <T, TKey> getKey,
            ItemCreator <TKey, T> item = null,
            IEqualityComparer <TKey> keyEqualityComparer = null)
        {
            var index = new Index <TKey, T>(this, lifeSpan, getKey, item, keyEqualityComparer);

            indexList[indexName] = index;
            return(index);
        }
        public TriggerManager(
            RoomStateRepository roomStateRepository,
            ItemCreator itemCreator,
            GimmickManager gimmickManager,
            SignalGenerator signalGenerator)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;
            this.signalGenerator     = signalGenerator;

            itemCreator.OnCreate += OnCreateItem;
        }
Пример #25
0
        protected virtual void Initialize(int level, Point?startTile)
        {
            CurrentLevelIndex = level;
            CurrentMap        = Data.Maps[level];
            TileCreator.Reset();
            ItemCreator.Reset();
            InitializeMapTextures();
            TileInitializers = new List <TileInitializer>();

            start         = startTile ?? new Point(Data.StartPosition.Position.X, Data.StartPosition.Position.Y);
            TilePositions = new Dictionary <Point, Tile>();
        }
Пример #26
0
 /// <summary>constructor</summary>
 /// <param name="owner">parent of index</param>
 /// <param name="lifespanManager"></param>
 /// <param name="getKey">delegate to get key from object</param>
 /// <param name="loadItem">delegate to load object if it is not found in index</param>
 public Index(FluidCache <T> owner, LifespanManager <T> lifespanManager, GetKey <T, TKey> getKey,
              ItemCreator <TKey, T> loadItem)
 {
     Debug.Assert(owner != null, "owner argument required");
     Debug.Assert(getKey != null, "GetKey delegate required");
     this.owner           = owner;
     this.lifespanManager = lifespanManager;
     index         = new Dictionary <TKey, WeakReference <INode <T> > >();
     _getKey       = getKey;
     this.loadItem = loadItem;
     RebuildIndex();
 }
        static void OnChangePlayMode(PlayModeStateChange playMode)
        {
            switch (playMode)
            {
            case PlayModeStateChange.ExitingPlayMode:
                SetIsInGameMode(false);
                break;

            case PlayModeStateChange.EnteredPlayMode:
                SetIsInGameMode(true);

                ItemIdAssigner.AssignItemId();
                ItemTemplateIdAssigner.Execute();
                LayerCollisionConfigurer.SetupLayerCollision();

                var rootGameObjects = SceneManager.GetActiveScene().GetRootGameObjects();

                var spawnPoints = GetComponentsInGameObjectsChildren <ISpawnPoint>(rootGameObjects);
                SpawnPointManager = new SpawnPointManager(spawnPoints);

                // 疑似Playerの設定
                var enterDeviceType = EnterDeviceType.Desktop;
                if (XRSettings.enabled)
                {
                    enterDeviceType = EnterDeviceType.VR;
                }

                var despawnHeight = GetComponentInGameObjectsChildren <IDespawnHeight>(rootGameObjects).Height;
                PlayerPresenter = new PlayerPresenter(PermissionType.Audience, enterDeviceType, SpawnPointManager);
                new AvatarRespawner(despawnHeight, PlayerPresenter);

                var itemCreator   = new ItemCreator(GetComponentsInGameObjectsChildren <ICreateItemGimmick>(rootGameObjects));
                var itemDestroyer = new ItemDestroyer(PlayerPresenter.PlayerTransform.GetComponent <IItemController>());
                new ItemRespawner(despawnHeight, itemCreator, itemDestroyer, GetComponentsInGameObjectsChildren <IMovableItem>(rootGameObjects));

                var mainScreenViews = GetComponentsInGameObjectsChildren <IMainScreenView>(rootGameObjects);
                MainScreenPresenter = new MainScreenPresenter(mainScreenViews);

                var rankingScreenViews     = GetComponentsInGameObjectsChildren <IRankingScreenView>(rootGameObjects);
                var rankingScreenPresenter = new RankingScreenPresenter(rankingScreenViews);
                rankingScreenPresenter.SetRanking(11);

                var commentScreenViews =
                    GetComponentsInGameObjectsChildren <ICommentScreenView>(rootGameObjects);
                CommentScreenPresenter = new CommentScreenPresenter(commentScreenViews);

                SetupTriggerGimmicks(rootGameObjects, itemCreator, itemDestroyer);

                OnInitializedEvent?.Invoke();
                break;
            }
        }
Пример #28
0
    void OnMonsterDeath(int id)
    {
        Debug.Log($"Monster with id {id} died, current Monsters is {Monsters.Count}");
        var monster = Monsters.First(e => e.id == id);

        _battleResult.Experience += monster.GetExperience();
        _battleResult.Gold       += Random.Range(50, 500) * _level;
        _battleResult.Items.Add(ItemCreator.CreateItem(monster.level));
        Monsters.Remove(monster);
        positionedMonsters.Remove(positionedMonsters.FirstOrDefault(e => e.Value.id == id).Key);
        allCharacters.Remove(id);
        CheckMonsterDict();
    }
    /// <summary>
    /// Draws the selection window for the item icon
    /// </summary>
    /// <param name="index"></param>
    private void DrawIconSelection(int index)
    {
        GUI.skin = null;
        Sprite currentSprite = ItemCreator.GetItemIcon(items[index].itemIconDirectory);

        currentSprite = (Sprite)EditorGUILayout.ObjectField("Item Icon", currentSprite, typeof(Sprite), false);

        if (!AssetDatabase.GetAssetPath(currentSprite).Equals(items[index].itemIconDirectory))
        {
            items[index].itemIconDirectory = AssetDatabase.GetAssetPath(currentSprite);
            SaveData();
        }
    }
    private void SaveData()
    {
        violationsStatus = new bool[] { false, false, false, false };

        if (cannotCompile)
        {
            Debug.LogError("Cannot save data, you must fix all errors before saving");
            return;
        }
        ItemCreator.SaveItemData();
        ItemCreator.SaveVarData();
        ItemCreator.SaveCategoryData();
    }
Пример #31
0
    public int SetCreatorWithDuration(ItemCreator itemCreator, float duration)
    {
        if (coroutineList.Count <= emptyIdx)
        {
            coroutineList.Add(RunCreatorWithDuration(itemCreator, new WaitForSeconds(duration)));
        }
        else
        {
            coroutineList[emptyIdx] = RunCreatorWithDuration(itemCreator, new WaitForSeconds(duration));
        }

        return(GetSettedIdx());
    }
Пример #32
0
    void DrawCreateLayout(ItemCreator creator)
    {
        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Create"))
            CreateNewItem(creator);

        if (GUILayout.Button("Cancel"))
            creator.Done();

        EditorGUILayout.EndHorizontal();
    }
Пример #33
0
    void DrawSaveLayout(ItemCreator creator)
    {
        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Save"))
            creator.Save();

        if (GUILayout.Button("Close"))
            creator.Done();

        if (GUILayout.Button("Delete"))
            creator.Delete(sm);

        EditorGUILayout.EndHorizontal();
    }