Clatter Quest (part 2)
- clatter component
- remove clatter on interaction
- update quest stat
- jump and interact
- subscription to interact
Working on the clatter quest. The hero cannot get out from the apartment because the entrance to the apartment is clattered. Everybody can levitate people started using windows instead of doors.
I implemented some initial clatter disappearance animation. It flies in the spiral and after two seconds getting destroyed.
I added jump and triggering interaction on left mouse click.
So for the quest system I have an idea on every significant event generate the signal. And make quests to subscribe to this signal. In the clatter quest I made an interact signal and implemented subscription. In the quest player has to collect 5/5 clattered items.
I implemented completed event and make the barrier disappear after quest is completed.
To be able to do this, I implemented Event class. I could use UE4 delegate system, but UE4 implementation of delegate system is very confusing.
I updated addQuest()
function to return added quest if it added or
return nullptr. This allows my add as many quests as I want
without re-implementing again and again check for if quest already
added.
I started a dialog system. I need a player to be able to communicate
with NPCs. I needed a class derived from UUserWidget
and implement
IUserObjectListEntry
interface.
I started working on NPC Jane and started working on telepathy quest. This is the idea of the quest. The player goes to Jane, clicks on her, dialog pops and player clicks on the dialog line: “Session to restore telepathy -$450”. Quest is getting marked as completed, the players gets the telepathy ability and $450 is getting deducted from his/her account.
The hero will have the quest to get back telepathy ability back. To do this, the hero has to go to NPC Jane therapist. She will hypnotize the hero and return to him/her telepathy ability. Without this ability the hero would not be able to communicate with anyone.
I created enumeration type to list all abilities in the game.
TODO: drop some loot.