Inventory ch 4 Richard Gesick.

Slides:



Advertisements
Similar presentations
© Copyright 2012 by Pearson Education, Inc. All Rights Reserved. Chapter 14 Tuples, Sets, and Dictionaries 1.
Advertisements

CSE 1301 Lecture 8 Conditionals & Boolean Expressions Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
Copyright © Curt Hill More Components Varying the input of Dev-C++ Windows Programs.
 PERFORM COMPUTATIONS INVOLVING COMPLEX NUMBERS. Copyright © 2012 Pearson Education, Inc. Publishing as Addison Wesley 3.1 The Complex Numbers.
Copyright © 2011 Pearson Education, Inc. Equations Involving Absolute Value Solve equations involving absolute value.
Copyright © 2012 Pearson Education, Inc. Chapter 5: Loops.
Adding and Subtracting Polynomials
Functional Processing of Collections (Advanced) 6.0.
Copyright © 2008 Pearson Education, Inc
Chapter 1 Functions Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Queues Chapter 8 (continued)
Chapter 3 Derivatives Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Lecture 2 Richard Gesick
CHAPTER R: Basic Concepts of Algebra
Lecture 14 Searching and Sorting Richard Gesick.
Expandable Item Classes ch 3
Chapter 3 Differentiation
Copyright © 2008 Pearson Education, Inc
Chapter 9 Power Series Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Chapter 2 Limits Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Copyright © 2008 Pearson Education, Inc
Graphing Linear Inequalities
Sequences and Infinite Series
Conditionals & Boolean Expressions
Conditionals & Boolean Expressions
Chapter 5: Looping Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Integration Techniques
Informed Decisions Using Data
Chapter 17 Linked Lists.
Chapter 19 Binary Search Trees.
Operations Multiplying Dividing
11.7 Motion in Space Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Chapter 4 Inheritance.
Further Applications of Integration
Chapter 14 Graphs and Paths.
Chapter 3 Integration Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Rational Expressions and Functions: Adding and Subtracting
Copyright © 2006 Pearson Education, Inc
Lecture 3 Richard Gesick
Lecture 11 Searching and Sorting Richard Gesick.
Operations Adding Subtracting
Chapter 10 Datapath Subsystems.
Applications of the Derivative
Chapter 5 Integration Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
11.8 Length of Curves Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Adding and Subtracting Rational Expressions
Chapter 20 Hash Tables.
Chapter 2 Limits and Continuity
Copyright © 2011 Pearson Education, Inc
Chapter 1 Preliminaries
[Update PPE for Worker] Worker Register
Chapter 1 Functions Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Chapter 15 Multiple Integrals
Copyright © 2006 Pearson Education, Inc
Vector-Valued Functions and Motion in Space
The Facts to Be Explained
CHAPTER 3: Quadratic Functions and Equations; Inequalities
Exploring Microsoft® Office 2016 Series Editor Mary Anne Poatsy
Copyright © 2008 Pearson Education, Inc
Copyright © 2012 Pearson Education, Inc. Publishing as Addison Wesley
Basic Matrix Operations
2.3 The Composition of Functions
Circuit Characterization and Performance Estimation
The Classical Model with Many Goods
Chapter 2 Part 1 Data and Expressions.
Chapter 6 Dynamic Programming.
Chapter 2 Reference Types.
Copyright © 2011 Pearson Education, Inc
Chapter 5 Integration Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Presentation transcript:

Inventory ch 4 Richard Gesick

Objectives Creating a storage system for GameObjects Adding items to the inventory Removing items from the inventory Initializing the inventory Setting the inventory size to be dynamic Making it possible to have multiples of items Setting quick items that can be used by our custom quick item inputs Accessing the inventory using our custom inventory inputs Displaying the inventory on screen via GUI

Features of an inventory Limits - weight and slot size or both combined Accessibility - menu system, quick-items, and an item bar Order - the physical size, item type, slot size, or alphabetical order. Physical size can be either lightest to heaviest or heaviest to lightest. By item type, healing items should be kept separate from weapons and armor. These separate item types can be split up into multiple submenus: one each for weapons, armor, healing items, etc.

Item count modifications Buying, selling, and trading items Dropping and picking up items Destroying or using items

KeyValuePair Uses parallel lists which is not normally a good idea but is probably the easiest way to handle this List<KeyValuePair<int, string>> items = new List<KeyValuePair<int, string>>(); List<KeyValuePair<int, int>> itemCount = new List<KeyValuePair<int, int>>(); . . . items.Add(new KeyValuePair<int, string>(i, invItems[i])); itemCount.Add(new KeyValuePair<int, int>(i, 0)); Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Displaying the inventory InventoryGui() GUILayout.BeginArea(new Rect(0, 50, 400, 400)); GUILayout.BeginHorizontal(); if (GUILayout.Button(itemCount[0].Value.ToString() + " " + invItems[0].name, GUILayout.Height(75))) { invItems[0].SetActive(true); RemoveFromInventory(1, invItems[0]); } if (GUILayout.Button(itemCount[1].Value.ToString() + " " + invItems[1].name, GUILayout.Height(75))) invItems[1].SetActive(true); RemoveFromInventory(1, invItems[1]); GUILayout.Button(itemCount[2].Value.ToString() + " " + invItems[2].name, GUILayout.Height(75)); GUILayout.EndHorizontal();

Gui Trigger Create a boolean controlled by a key if (Input.GetKeyDown(KeyCode.I)) { showInventory = (showInventory) ? false : true; } And use the Boolean in OnGui() Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Add to inventory If the item already exists, add to the count of the item int val = itemCount[i].Value + HowMany; itemCount[i] = new KeyValuePair<int, int>(itemCount[i].Key, val); Else add it as a new item invItems[i] = NewItem; items[i] = new KeyValuePair<int, GameObject>(i, NewItem); itemCount[i] = new KeyValuePair<int, int>(i, val); Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Using/removing from inventory If the item exists, subtract 1/how many from inventory as long as enough exist Once the item is empty, shuffle the other elements in the collection up If you are using parallel collections with keyvalue pairs, you have to remember to shift corresponding elements in both collections Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley