private void Awake() { Instance = this; WeaponSubject = new WeaponSubject(); ItemSubject = new ItemSubject(); newSlots = new List <GameObject>(); WeaponSubject.Attach(new WeaponObserver(a => { if (a.isNewItemNotify) { var newSlot = WeaponSlot.weaponSlots.Where(slot => { return(slot.gameObject.activeSelf == false); }).First(); if (newSlot != null) { newSlots.Add(newSlot.gameObject); newSlot.Init(a.NewItem); a.isNewItemNotify = false; } } })); //WeaponSubject.Notify(); gameObject.SetActive(false); }
private void Start() { subject = ItemWindow.Instance.ItemSubject; var button = gameObject.GetComponent <Button>(); subject.Attach(new ItemObserver(a => { var childImage = gameObject.transform.GetChild(0).GetComponent <Image>(); if (a.SelectedItem[slotNum] != null) { childImage.sprite = setImage; childImage.color = new Color(1.0f, 1.0f, 1.0f, 1.0f); } else { a.itemCount--; childImage.sprite = null; childImage.color = new Color(1.0f, 1.0f, 1.0f, 0.0f); } })); button.onClick.AddListener(() => { if (subject.SelectedItem[slotNum] == null) { } else { StartCoroutine(subject.SelectedItem[slotNum].ItemFunction()); subject.SelectedItem[slotNum] = null; subject.Notify(); } }); }
public async Task <IActionResult> PutSubjectItem(long id, ItemSubject item) { if (id != item.Id) { return(BadRequest()); } _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult <ItemSubject> > PostSubjectItem(ItemSubject item) { if (item == null) { return(BadRequest()); } _context.SubjectItems.Add(item); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetSubjetItem), new { id = item.Id }, item)); }
/// <summary> /// Sets the stack, but limits based on subject MaxStack /// </summary> /// <param name="newSubjectID"></param> /// <param name="newStackSize"></param> /// <param name="masterSubjectList"></param> /// <returns></returns> public bool SetStack(int newSubjectID, int newStackSize, MasterSubjectList masterSubjectList) { ItemSubject newSubject = masterSubjectList.GetSubject(newSubjectID, typeof(ItemSubject)) as ItemSubject; if (newSubject != null) { subjectID = newSubjectID; stackSize = Math.Min(newStackSize, newSubject.MaxStack); return(true); } else { return(false); } }
/// <summary> /// Copy an existing ItemSubject. /// </summary> public override Subject Copy() { ItemSubject newItemSubject = new ItemSubject(); newItemSubject.subjectID = subjectID; newItemSubject.name = name; newItemSubject.description = description; newItemSubject.icon = icon; newItemSubject.prefab = prefab; newItemSubject.relatedSubjects = relatedSubjects; newItemSubject.buildDirections = buildDirections; newItemSubject.maxStack = maxStack; return(newItemSubject); }
/// <summary> /// Adds to the stack, limits based on the subject MaxStack /// </summary> /// <param name="newSubjectID"></param> /// <param name="newStackSize"></param> /// <param name="masterSubjectList"></param> /// <returns></returns> public int Add(int newSubjectID, int newStackSize, MasterSubjectList masterSubjectList) { if (newSubjectID != subjectID) { return(newStackSize); //reject entire amount } ItemSubject newSubject = masterSubjectList.GetSubject(newSubjectID) as ItemSubject; if (newSubject != null) { int tempStack = stackSize + newStackSize; stackSize = Math.Min(tempStack, newSubject.MaxStack); newStackSize = Math.Max(0, tempStack - newSubject.MaxStack); } return(newStackSize); }
/// <summary> /// Adds to the stack, limits based on the subject MaxStack /// </summary> /// <param name="addedInvItem"></param> /// <param name="masterSubjectList"></param> /// <returns></returns> public int Add(InventoryItem addedInvItem, MasterSubjectList masterSubjectList) { if (addedInvItem.subjectID != subjectID) { return(addedInvItem.stackSize); //reject entire amount } ItemSubject newSubject = masterSubjectList.GetSubject(addedInvItem.subjectID) as ItemSubject; if (newSubject != null) { int tempStack = stackSize + addedInvItem.stackSize; stackSize = Math.Min(tempStack, newSubject.MaxStack); addedInvItem.stackSize = Math.Max(0, tempStack - newSubject.MaxStack); } return(addedInvItem.stackSize); }