StationObscurum/Assets/Scripts/Item
2024-02-01 22:46:09 -05:00
..
FlareBeacon Steam lobby implemented 2023-06-01 08:03:48 -07:00
Pistol Steam lobby implemented 2023-06-01 08:03:48 -07:00
Registers Steam lobby implemented 2023-06-01 08:03:48 -07:00
CarryableItem.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
CarryableItem.cs.meta first push 2 2023-03-13 19:59:59 -04:00
DoorInteractable.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
DoorInteractable.cs.meta updates to scene. Working on pickup 2023-03-21 14:49:47 -04:00
FlareBeacon.meta resource limits added 2023-04-17 22:29:21 -04:00
GenericInteractable.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
GenericInteractable.cs.meta slight modifications to assets' 2023-04-22 15:56:22 -04:00
HeavyInteractableItem.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
HeavyInteractableItem.cs.meta first push 2 2023-03-13 19:59:59 -04:00
HeavyItemReceiver.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
HeavyItemReceiver.cs.meta fixed item system 2023-04-03 23:00:18 -04:00
InteractableItem.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
InteractableItem.cs.meta first push 2 2023-03-13 19:59:59 -04:00
KeyItem.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
KeyItem.cs.meta first push 2 2023-03-13 19:59:59 -04:00
Pistol.meta updated start menu, added beacon 2023-04-17 18:23:47 -04:00
Readme.txt Added Readme and Cleanup 2024-02-01 22:46:09 -05:00
Readme.txt.meta Added Readme and Cleanup 2024-02-01 22:46:09 -05:00
Registers.meta imported music, added combat and death 2023-04-21 03:30:43 -04:00
SpecialItemCycler.cs Steam lobby implemented 2023-06-01 08:03:48 -07:00
SpecialItemCycler.cs.meta resource limits added 2023-04-17 22:29:21 -04:00

Class Definitions:
Overview: Basically the classes are built out to uniquely abstract certain types of objects.
Basically there are currently only Interactable Items that are used. Some are heavy (ie Power Cores)
used to power things like doors. The classes defined here offer functionality over serveral abstraction layers
to keep implementation of new items at a minimum with higher layers automatically performing tasks.


CarryableItem
    - Type: Abstract Class
    - Extends: MonoBehaviour
    - Description: The highest level representation of an item.
    - Features: Forces an item to have a size and name.

InteractableItem
    - Type: Abstract Class
    - Extends: CarryableItem
    - Description: Any 3D in world item that can be picked up in the game.
    - Features:
        - Must have a In World Canvas and Text that appears whenever the player gets close.

Generic Interactable:
    - Type: Class
    - Extends: InteractableItem
    - Description: Object has no functionality other than enforcing InteractableItem's features.
                   This was done since Abstract Classes cannot be instantiated in a scene.

Heavy Interactable:
    - Type: Class
    - Extends: InteractableItem
    - Description: A large item that the astronaut has to carry in their arms.
    - Features:
        - Offers functionality to Enable and Disable the collision systems of a Heavy
        item for pickup. Additionally defines functions for classes that extend it to
        define how it gets interacted with.

Heavy Item Receiver:
    - Type: Abstract Class
    - Extends: InteractableItem
    - Description: Represents items that stores Heavy Interactable Items within.
    - Features:
        - Defines space for the Heavy Item that is stored within it.
        - Defines a keyword the receiver looks for when a heavy item is inserted.

Door Interactable Item:
    - Type: Class
    - Extends: Heavy Item Receiver
    - Description: Represents power slots for doors. Taking in a Heavy Interactable Item with
    the name "Power Core" in it.
    - Features:
        - Defines the Interact() function for when a player clicks the interaction button.
        - Checks if a player has a heavy item in its hands and moves it into the slot both 
        on back-end and visually.
        - Then modifies the door's animator to animate it opening/closing.