36 virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps)
const override;
37 virtual void BeginPlay()
override;
40 virtual void Tick(
float DeltaSeconds)
override;
45 FORCEINLINE
float GetTimeTaken() {
return TimeLimit - RemainMissionTime; }
53 UFUNCTION(BlueprintCallable, Category =
"Mission")
54 void StartMissionTimer(
float TimeLimit);
57 UFUNCTION(BlueprintCallable, Category = "Mission")
58 void StopMissionTimer();
60 UFUNCTION(BlueprintCallable, Category = "Mission")
61 void DecreaseMissionTimer(const
float InValue);
63 void UpdateRemainMissionTime(const
float InTimeLimit);
70 void SetRoomLevel(int32 InRoomLevel);
73 UFUNCTION(NetMulticast, Reliable)
74 void Multicast_UpdateQuestType(const
EQuestType InQuestType);
76 UFUNCTION(NetMulticast, Reliable)
79 UFUNCTION(NetMulticast, Reliable)
83 void OnRep_ReadScenarioData();
86 void OnRep_ReadResult();
89 void OnRep_ListenScenarioData();
92 void OnRep_ListenResult();
98 void OnRep_RoomLevel();
102 UFUNCTION(NetMulticast, Reliable)
103 void MulticastRPC_SendChat(
FResponseUserMe sendUser, const FText& inMessage, int32 PlayerIndex);
107 void OnMissionTimerEnd();
110 FOnReadResultUpdated OnReadResultUpdated;
111 FOnListenResultUpdated OnListenResultUpdated;
112 FOnQuestScenarioDataUpdated OnQuestScenarioDataUpdated;
113 FOnRoomIdUpdated OnRoomIdUpdated;
114 FOnRoomLevelUpdated OnRoomLevelUpdated;
116 FORCEINLINE
int GetWrongReadAnswerNum() {
return WrongReadAnswerList.Num(); }
117 void AddWrongReadAnswer(int32 Value);
119 UPROPERTY(ReplicatedUsing = OnRep_ReadScenarioData)
122 UPROPERTY(Replicated)
123 TArray<int32> WrongReadAnswerList;
125 UPROPERTY(Replicated)
128 UPROPERTY(ReplicatedUsing = OnRep_ReadResult)
132 FORCEINLINE
int GetWrongListenAnswerNum() {
return WrongListenAnswerList.Num(); }
133 void AddWrongListenAnswer(int32 Value);
135 UPROPERTY(ReplicatedUsing = OnRep_ListenScenarioData)
138 UPROPERTY(Replicated)
141 UPROPERTY(Replicated)
142 TArray<int32> WrongListenAnswerList;
144 UPROPERTY(Replicated)
147 UPROPERTY(ReplicatedUsing = OnRep_ListenResult)
152 UPROPERTY(Replicated, BlueprintReadOnly, Category = "Mission")
153 float RemainMissionTime = 0.f;
156 UPROPERTY(Replicated, BlueprintReadOnly, Category = "Mission")
157 bool bIsTimerActive = false;
159 UPROPERTY(Replicated, BlueprintReadOnly, Category = "Quest")
163 UPROPERTY(ReplicatedUsing=OnRep_RoomId, BlueprintReadOnly, Category = "Room")
166 UPROPERTY(ReplicatedUsing=OnRep_RoomLevel, BlueprintReadOnly, Category = "Room")
176 UFUNCTION(BlueprintCallable, Category = "Compass")
177 void SetCompassVisibilityByTag(FName Tag,
bool bVisible);
179 UFUNCTION(BlueprintCallable, Category = "Compass")
180 void SetCompassVisibilityByClass(TSubclassOf<AActor> ActorClass,
bool bVisible);
182 UFUNCTION(BlueprintCallable, Category = "Compass")
183 void SetAllCompassVisibility(
bool bVisible);
185 UFUNCTION(NetMulticast, Reliable)
186 void Multicast_SetCompassVisibilityByTag(FName Tag,
bool bVisible);
188 UFUNCTION(NetMulticast, Reliable)
189 void Multicast_SetCompassVisibilityByClass(TSubclassOf<AActor> ActorClass,
bool bVisible);
191 UFUNCTION(NetMulticast, Reliable)
192 void Multicast_SetAllCompassVisibility(
bool bVisible);