public JsonResult Bonus(string MyChecked) { Bonus n = new Bonus(); BonusData nd = new BonusData(); var array = MyChecked.Split(','); if (MyChecked != "" && MyChecked != null) { for (var i = 0; i < array.Length; i++) { //var Original = nd.Get().ToList().Where(a => a.num.ToString() == array[i]).SingleOrDefault(); //var DelPath = System.IO.Path.Combine(Server.MapPath("~/upload/News/"), Original.pic1); //System.IO.File.Delete(DelPath); //if (Original.jsonimg != "no_img.jpg") //{ // var jsonstr = JsonConvert.DeserializeObject<List<jsonSer>>(Original.jsonimg); // var DelJsonPath = Server.MapPath("~/upload/photograhy/"); // foreach (var j in jsonstr) // { // var DelJsonPathing = System.IO.Path.Combine(DelJsonPath, j.content); // System.IO.File.Delete(DelJsonPathing); // } //} n.num = Convert.ToInt32(array[i]); nd.Delete(n); } } return Json(""); }
public override bool Create(ulong guidlow, uint itemid, Player owner) { var itemProto = Global.ObjectMgr.GetItemTemplate(itemid); if (itemProto == null || itemProto.GetContainerSlots() > ItemConst.MaxBagSize) { return(false); } _Create(ObjectGuid.Create(HighGuid.Item, guidlow)); _bonusData = new BonusData(itemProto); SetEntry(itemid); SetObjectScale(1.0f); if (owner) { SetOwnerGUID(owner.GetGUID()); SetContainedIn(owner.GetGUID()); } SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), itemProto.MaxDurability); SetDurability(itemProto.MaxDurability); SetCount(1); // Setting the number of Slots the Container has SetBagSize(itemProto.GetContainerSlots()); // Cleaning 20 slots for (byte i = 0; i < ItemConst.MaxBagSize; ++i) { SetSlot(i, ObjectGuid.Empty); } m_bagslot = new Item[ItemConst.MaxBagSize]; return(true); }
public override bool Create(ulong guidlow, uint itemid, Player owner) { var itemProto = Global.ObjectMgr.GetItemTemplate(itemid); if (itemProto == null || itemProto.GetContainerSlots() > ItemConst.MaxBagSize) { return(false); } _Create(ObjectGuid.Create(HighGuid.Item, guidlow)); _bonusData = new BonusData(itemProto); SetEntry(itemid); SetObjectScale(1.0f); if (owner) { SetGuidValue(ItemFields.Owner, owner.GetGUID()); SetGuidValue(ItemFields.Contained, owner.GetGUID()); } SetUInt32Value(ItemFields.MaxDurability, itemProto.MaxDurability); SetUInt32Value(ItemFields.Durability, itemProto.MaxDurability); SetUInt32Value(ItemFields.StackCount, 1); // Setting the number of Slots the Container has SetUInt32Value(ContainerFields.NumSlots, itemProto.GetContainerSlots()); // Cleaning 20 slots for (byte i = 0; i < ItemConst.MaxBagSize; ++i) { SetGuidValue(ContainerFields.Slot1 + (i * 4), ObjectGuid.Empty); } m_bagslot = new Item[ItemConst.MaxBagSize]; return(true); }
/// <summary> /// Add Healths action for player /// </summary> /// <param name="_bonus"></param> public void AddHealths(BonusData _bonus) { hPoints += _bonus.Value; OnHealthsSet(hPoints); if (hPoints <= 0) { gameObject.SetActive(value: false); OnPlayerDead(); } else { if (_animator) { _animator.Play(HealthsAnimation); if (_bonusAudioSource != null && _bonus.Sound != null) { _bonusAudioSource.PlayOneShot( clip: _bonus.Sound, volumeScale: 1 ); } } } }
public void Load(UXMLElement element) { Id = element.GetString("id"); RemainTime = element.GetFloat("time"); data = resourceService.GetBonus(Id); }
public BuffInfo(string id, float remainTime) { Id = id; RemainTime = remainTime; data = resourceService.GetBonus(Id); }
public BuffInfo(BonusData data) { this.data = data; Id = data.id; RemainTime = data.interval; }
public override void Setup(object objdata = null) { base.Setup(objdata); if (source == null) { source = resourceService.bonusList; } if (objdata == null) { index = 0; } else { BonusData data = objdata as BonusData; if (data == null) { throw new ArgumentException(typeof(BonusData).Name); } index = source.FindIndex(b => b.id == data.id); if (index < 0) { index = 0; } } BonusData bonusData = source[index]; List <string> ingredientIds = bonusData.ingredientList; wishlistView.Setup(); for (int i = 0; i < ingredientIds.Count; i++) { IngredientData ingredientData = resourceService.GetIngredient(ingredientIds[i]); if (i < ingredientViews.Length) { ingredientViews[i].Setup(ingredientData); } } bonusView.Setup(bonusData); nextButton.SetListener(() => { if (source != null) { index++; if (index >= source.Count) { index = 0; } BonusData nextData = source[index]; Setup(nextData); } }, engine.GetService <IAudioService>()); prevButton.SetListener(() => { if (source != null) { index--; if (index < 0) { index = source.Count - 1; } BonusData prevData = source[index]; Setup(prevData); } }, engine.GetService <IAudioService>()); combineButton.SetListener(() => { if (ravenhillGameModeService.IsAlchemyReadyToCharge(bonusData)) { ravenhillGameModeService.ChargeAlchemy(bonusData); } }, engine.GetService <IAudioService>()); combineUpdateTimer.Setup(0.5f, (delta) => { if (bonusData != null) { combineButton.interactable = ravenhillGameModeService.IsAlchemyReadyToCharge(bonusData); } }); }
/// <summary> /// Редактирование выбранной карты /// </summary> private void EditCard() { if (!editButt) { editButt = true; } CardData cd = new CardData(); GUILayout.Label("Редактирование карты", EditorStyles.boldLabel); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Уникальное имя для редактора", "Не будет видно в игре(игроку)")); _name = EditorGUILayout.TextField(_name); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Внутриигровое имя", "Название карты которое будет видно непосредственно игроку")); _inGameName = EditorGUILayout.TextField(_inGameName); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Стоимость карты и необходимый ресурс", "Т.е. мана или очки действия")); _cost = EditorGUILayout.IntSlider(_cost, 0, 10); if (cardsList[selectedCardIndex].manaSpell) { costType = 1; } else { costType = 0; } costType = EditorGUILayout.Popup(costType, costTypes); if (costType == 0) { _isManaSpell = false; } else { _isManaSpell = true; } GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Тип карты", "Вызов существа или заклинание")); spellType = EditorGUILayout.Popup(spellType, spellTypes); if (spellType == 0) { _isCreature = true; _creature = EditorGUILayout.ObjectField(_creature, typeof(GameObject), true) as GameObject; } else { _isCreature = false; bonusIndex = EditorGUILayout.Popup(bonusIndex, bonusNames.ToArray()); _bonus = bonusList[bonusIndex]; } GUILayout.EndHorizontal(); //Помогайка GUILayout.Space(10); if (!_isCreature && _bonus.type != SpellType.heal) { EditorGUILayout.HelpBox("Spell Info:" + "\n" + _bonus.unikName + "\n" + _bonus.type + "\n" + _bonus.fullName + "\n" + _bonus.target + "\n" + _bonus.att + "/" + _bonus.hp, MessageType.Info); } else if (!_isCreature && _bonus.type == SpellType.heal) { EditorGUILayout.HelpBox("Spell Info:" + "\n" + _bonus.unikName + "\n" + _bonus.type + "\n" + _bonus.fullName + "\n" + _bonus.target + "\n" + _bonus.hp, MessageType.Info); } #region Сохранение в кэш/Отмена GUILayout.BeginHorizontal(); //Save button using (new EditorGUI.DisabledGroupScope(_name == string.Empty || _inGameName == string.Empty)) { if (GUILayout.Button(new GUIContent("Save", "Сохранение изменений. Не сохраняет в файл"))) { cd.cardName = _name; cd.inGameName = _inGameName; cd.cost = _cost; cd.manaSpell = _isManaSpell; if (_isCreature) { cd.creatureName = _creature.name; cd.cardsBonusIndex = 0; } else { cd.creatureName = string.Empty; cd.cardsBonusIndex = bonusIndex; } cardsList[selectedCardIndex] = cd; cardsNames[selectedCardIndex] = cd.cardName; editButt = false; } } //Cancel button using (new EditorGUI.DisabledGroupScope(cardsList.Count == 0)) { if (GUILayout.Button(new GUIContent("Cancel", "Отменить изменения"))) { editButt = false; } } GUILayout.EndHorizontal(); #endregion Сохранение в кэш/Отмена #region Инфо о редактируемой карте EditorGUILayout.HelpBox("---Редактируемая карта---", MessageType.Info); GUILayout.Space(10); GUILayout.Label("Карта:", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("Уникальное имя(для редактора):"); GUILayout.Label(cardsList[selectedCardIndex].cardName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Игровое название(для игрока):"); GUILayout.Label(cardsList[selectedCardIndex].inGameName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Стоимость карты:"); GUILayout.Label(cardsList[selectedCardIndex].cost.ToString()); if (cardsList[selectedCardIndex].manaSpell) { GUILayout.Label("mana"); } else { GUILayout.Label("action"); } GUILayout.EndHorizontal(); //Если вызов существа if (cardsList[selectedCardIndex].creatureName != string.Empty) { GUILayout.BeginHorizontal(); GUILayout.Label("Имя призываемого существа:"); GUILayout.Label(cardsList[selectedCardIndex].creatureName, EditorStyles.centeredGreyMiniLabel); GUILayout.EndHorizontal(); } //Если заклинание else { _bonus = bonusList[cardsList[selectedCardIndex].cardsBonusIndex]; GUILayout.Space(10); GUILayout.Label("Spell info:", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("Название(для редактора):"); GUILayout.Label(_bonus.unikName); GUILayout.EndHorizontal(); } #endregion }
/// <summary> /// Сохдание новой карты /// </summary> private void CreateCard() { if (!addButt) { addButt = true; //Если было запущено ввиду отсутствия карт в списке, нужно отметить, что сейчас действует это окно } CardData cd = new CardData(); GUILayout.Label("Создание новой карты", EditorStyles.boldLabel); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Уникальное имя для редактора", "Не будет видно в игре(игроку)")); _name = EditorGUILayout.TextField(_name); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Внутриигровое имя", "Название карты которое будет видно непосредственно игроку")); _inGameName = EditorGUILayout.TextField(_inGameName); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Стоимость карты и необходимый ресурс", "Т.е. мана или очки действия")); _cost = EditorGUILayout.IntSlider(_cost, 0, 10); costType = EditorGUILayout.Popup(costType, costTypes); if (costType == 0) { _isManaSpell = false; } else { _isManaSpell = true; } GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Тип карты", "Вызов существа или заклинание")); spellType = EditorGUILayout.Popup(spellType, spellTypes); if (spellType == 0) { _isCreature = true; _creature = EditorGUILayout.ObjectField(_creature, typeof(GameObject), true) as GameObject; } else { _isCreature = false; bonusIndex = EditorGUILayout.Popup(bonusIndex, bonusNames.ToArray()); _bonus = bonusList[bonusIndex]; } GUILayout.EndHorizontal(); //Помогайка GUILayout.Space(10); if (!_isCreature && _bonus.type != SpellType.heal) { EditorGUILayout.HelpBox("Spell Info:" + "\n" + _bonus.unikName + "\n" + _bonus.type + "\n" + _bonus.fullName + "\n" + _bonus.target + "\n" + _bonus.att + "/" + _bonus.hp, MessageType.Info); } else if (!_isCreature && _bonus.type == SpellType.heal) { EditorGUILayout.HelpBox("Spell Info:" + "\n" + _bonus.unikName + "\n" + _bonus.type + "\n" + _bonus.fullName + "\n" + _bonus.target + "\n" + _bonus.hp, MessageType.Info); } #region Сохранение в кэш/отмена GUILayout.Space(5); GUILayout.BeginHorizontal(); using (new EditorGUI.DisabledGroupScope(_name == string.Empty || _inGameName == string.Empty)) { //Save button if (GUILayout.Button(new GUIContent("Save", "Сохраняет карту и добавляет ее в список. Не сохраняет в файл"))) { cd.cardName = _name; cd.inGameName = _inGameName; cd.cost = _cost; cd.manaSpell = _isManaSpell; if (_isCreature) { cd.creatureName = _creature.name; cd.cardsBonusIndex = 0; } else { cd.creatureName = string.Empty; cd.cardsBonusIndex = bonusIndex; } cardsList.Add(cd); cardsNames.Add(cd.cardName); addButt = false; } } using (new EditorGUI.DisabledGroupScope(cardsList.Count == 0)) { if (GUILayout.Button(new GUIContent("Cancel", "Отменить изменения"))) { addButt = false; } } GUILayout.EndHorizontal(); #endregion }
public void BonusInit(BonusData data) { _bonus = data; }
public void AddBuff(BonusData data) => buffs.AddBuff(data);
public bool UpdateBonus(BonusData bonus) { return(dal.UpdateBonus(bonus) > 0); }
public static void OnAlchemyCharged(BonusData data) { AlchemyCharged?.Invoke(data); }
public BonusFabric(BonusData bonusData) { _bonusData = bonusData; }
/// <summary> /// Присваивание карты (карта = card) /// </summary> /// <param name="card">Карта, которую нужно присвоить</param> public void Assignment(Card card) { _cardData = card.CardsData; _cardsBonus = card.CardsBonus; _creature = card.CardsCreature; }
public override void Setup(IconData objdata) { base.Setup(objdata); data = objdata as IngredientData; if (data == null) { throw new ArgumentException(typeof(IngredientData).Name); } int playerCount = playerService.GetItemCount(data); BonusData bonusData = resourceService.GetBonus(data.bonusId); int requiredCount = bonusData.GetIngredientCount(data.id); Color color = Color.black; if (playerCount < requiredCount) { color = Color.red; } countText.text = $"{playerCount}/{requiredCount}"; countText.color = color; if (playerCount < requiredCount) { iconImage.color = new Color(1, 1, 1, 0.5f); } else { iconImage.color = Color.white; } buyButton.SetListener(() => { PriceData price = data.price; if (playerService.HasCoins(price)) { playerService.RemoveCoins(price); playerService.AddItem(new InventoryItem(data, 1)); } else { viewService.ShowView(RavenhillViewType.bank); } }, engine.GetService <IAudioService>()); wishButtonTimer.Setup(0.5f, (delta) => { if (data != null) { wishButton.interactable = (!playerService.IsWishlistFull && !playerService.IsWishlistContains(data)); } else { wishButton.interactable = false; } }); wishButton.SetListener(() => { playerService.AddToWishlist(data); wishButton.interactable = false; }, engine.GetService <IAudioService>()); }
/// <summary> /// /// </summary> /// <param name="person"></param> /// <returns></returns> public bool AddBonusData(BonusData bonus) { return(dal.AddBonusData(bonus) > 0); }
private void InfoScreen() { GUILayout.BeginHorizontal(); selectedCardIndex = EditorGUILayout.Popup(selectedCardIndex, cardsNames.ToArray()); editButt = GUILayout.Button(new GUIContent("Edit", "Edit selected card")); addButt = GUILayout.Button(new GUIContent("Add", "Add new card")); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Уникальное имя(для редактора):"); GUILayout.Label(cardsList[selectedCardIndex].cardName); _name = cardsList[selectedCardIndex].cardName; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Игровое название(для игрока):"); GUILayout.Label(cardsList[selectedCardIndex].inGameName); _inGameName = cardsList[selectedCardIndex].inGameName; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Стоимость карты:"); GUILayout.Label(cardsList[selectedCardIndex].cost.ToString()); _cost = cardsList[selectedCardIndex].cost; //Тип стоимости if (cardsList[selectedCardIndex].manaSpell) { GUILayout.Label("mana"); _isManaSpell = true; } else { GUILayout.Label("action"); _isManaSpell = false; } GUILayout.EndHorizontal(); //Если вызов существа if (cardsList[selectedCardIndex].creatureName != string.Empty) { GUILayout.BeginHorizontal(); GUILayout.Label("Имя призываемого существа:"); GUILayout.Label(cardsList[selectedCardIndex].creatureName, EditorStyles.centeredGreyMiniLabel); GUILayout.EndHorizontal(); _isCreature = true; } //Если заклинание else { _bonus = bonusList[cardsList[selectedCardIndex].cardsBonusIndex]; GUILayout.Space(10); GUILayout.Label("Spell info:", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("Название(для редактора):"); GUILayout.Label(_bonus.unikName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Полное описание(для игрока):"); GUILayout.Label(_bonus.fullName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Тип заклинания(для редактора):"); GUILayout.Label(_bonus.type.ToString()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Цeль(-и):"); GUILayout.Label(_bonus.target.ToString()); GUILayout.EndHorizontal(); if (_bonus.type != SpellType.heal) { GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label("Значение attack:"); GUILayout.Label(_bonus.att.ToString()); GUILayout.EndHorizontal(); } if (_bonus.type != SpellType.damage) { GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label("Значение HP: "); GUILayout.Label(_bonus.hp.ToString()); GUILayout.EndHorizontal(); } } #region Сохранение в файл if (GUILayout.Button(new GUIContent("Save", "Сохранить все изменения в файл"))) { var saveList = new List <string>(); //писок зашифрованных Json-ом строк foreach (CardData cd in cardsList) { saveList.Add(JsonUtility.ToJson(cd)); } File.WriteAllLines(path, saveList.ToArray()); Debug.Log("Saved in " + path); } #endregion }
/// <summary> /// Изменение выбранного бонуса/заклинания /// </summary> /// <param name="selected">Индекс выбранного бонуса</param> private void EditBonus(int selected) { GUILayout.Label("Редактирование бонуса", EditorStyles.boldLabel); GUILayout.Space(10); BonusData bd = new BonusData(); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Название заклинания:", "Уникальное имя")); _unikName = GUILayout.TextArea(_unikName); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Тип бонуса/заклинания(для вызова метода):", "Может повторяться")); _type = (SpellType)EditorGUILayout.EnumPopup(_type); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.Label(new GUIContent("Полное описание бонуса/заклинания(для игрока):", "Beta: пока нужно следить что бы описание совпадало с остальными данными")); _fullName = EditorGUILayout.TextArea(_fullName); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label("Цель:"); _target = (TargetType)EditorGUILayout.EnumPopup(_target); GUILayout.EndHorizontal(); //Если НЕ хилка, то отображаем атаку if (_type != SpellType.heal) { GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Значение attack:", "Если не нужно - 0")); _att = EditorGUILayout.IntSlider(_att, -20, 20); GUILayout.EndHorizontal(); } //Если это все же хил, то значение атаки = 0 else { _att = 0; } //Если это НЕ атака, то отображаем хп if (_type != SpellType.damage) { GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Значение HP: ", "Если не нужно - 0")); _hp = EditorGUILayout.IntSlider(_hp, -20, 20); GUILayout.EndHorizontal(); } //Если это все же нанесение урона(т.е. атака), но хп = 0 else { _hp = 0; } //Помогайка EditorGUILayout.HelpBox("Главные сокращения:" + "\nCreature-cr, destroy - dist," + "\nЕсли был изменен список сокращенных имен, необходимо сопоставить его с Bonus скриптом", MessageType.Info); #region Сохранение GUILayout.Space(10); GUILayout.Label("Сохранить можно только если все поля заполнены"); GUILayout.BeginHorizontal(); using (new EditorGUI.DisabledGroupScope(_unikName == string.Empty || _fullName == string.Empty)) { if (GUILayout.Button(new GUIContent("Confurm", "Завершение редактирование и переход к окну Info"))) { //Перепись данных. bd.unikName = _unikName.ToLower(); bd.type = _type; bd.fullName = _fullName; bd.target = _target; bd.att = _att; bd.hp = _hp; bonusList[selected] = bd; bonusNames[selected] = bd.unikName; editButt = false; } } if (GUILayout.Button(new GUIContent("Cancel", "Отменяет все операции"))) { editButt = false; } GUILayout.EndHorizontal(); #endregion }
public BonusController(BonusData bonusData) { _bonusData = bonusData; }