Lab 8A - Collision, Inventory

Summary

You will implement a placeable actor that adds a counter inventory item.

Learning Outcomes

  • Ability to manipulate the inventory manager
  • Ability to add and interact with inventory items

Files to Implement

  • L8Game.uc
  • L8CounterItem.uc
  • L8SpawnerBase.uc
  • L8-Map.udk

Submission Requirements

Show your completed lab part A to your instructor(s) including a barrel that can be touched by the player and that adds a counter item to the player's inventory and then announces the counter item's counter value.

Instructions

L8Game

  • Create the class L8Game which inherits from UTGame
  • As usual, ensure that this game type is correctly set up to handle opening maps with the prefix "L8"

L8CounterItem

  • Create the class L8CounterItem inherting from the class Inventory
  • This class should have a single integer member variable named counter. Initialize this to 0.
  • Implement the function increment, which should accept no parameters and return nothing
    • This function should simply increment the value of the counter variable
  • Implement the function announce, which should accept no parameters and return nothing
    • This function should log a message that includes the current value of the counter variable

L8SpawnerBase

  • Create the class L8SpawnerBase which inherits from Actor
    • Declare this class to be placeable and to be ClassGroup Lab8
  • Add a static mesh component to this object and set the component's static mesh property to StaticMesh'E3_Demo.Meshes.SM_Barrel_01'
  • Ensure that this actor is set to collide actors
  • Implement the function Touch on this class, returning nothing and accepting the following parameters: Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal
    • Have this function emit a log message every time it executes
    • Check if the incoming Other actor is in fact a Pawn, if it is...
      • Check if the class L8CounterItem is in its inventory
        • If it is not, create the item in/using Other's inventory manager
      • Call the increment function on Other's counter item
      • Call the announce function on Other's counter item