Fission FSN
Loading...
Searching...
No Matches
gfCDayEconomySim.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: gfCDayEconomySim.h
4*
5* Purpose: Headless day economy/scoring: coins earned from service
6* purchases, visitor outcomes, and a coin-goal-based star
7* rating. Real currency types, catalogue unlock-level
8* feed-through and running-order integration are later
9* design work.
10*
11*********************************************************************/
12
13#ifndef gfCDayEconomySimhdr
14#define gfCDayEconomySimhdr
15
16#include <fsCore/fsBaseTypes.h>
17
19{
20public:
21
22 gfCDayEconomySim(fsS32 pCoinGoal);
23
24 // A purchase and the visitor's final opinion are separate events. This lets
25 // an empty park host happy walkers without creating phantom income, and lets
26 // one visitor use several services without being counted several times.
27 void servicePurchasedHandle(fsS32 pSpend);
28 void guestLeftHappyHandle(fsS32 pSatisfactionPercent = 100);
29 void guestLeftUnhappyHandle(fsS32 pSatisfactionPercent = 0);
30
31 // Restores a coin total from a save (mid-progress save/restore, Phase
32 // 6) - not part of the normal guest-served flow above.
33 void coinsSet(fsS32 pCoins) { mCoins = pCoins; }
34 void progressSet(fsS32 pCoins, fsS32 pHappyCount, fsS32 pUnhappyCount,
35 fsS32 pServicesPurchasedCount, fsS32 pSatisfactionTotal);
36
37 fsS32 coinsGet() const { return mCoins; }
38 fsS32 happyCountGet() const { return mHappyCount; }
39 fsS32 unhappyCountGet() const { return mUnhappyCount; }
40 fsS32 servicesPurchasedCountGet() const { return mServicesPurchasedCount; }
41 fsS32 satisfactionTotalGet() const { return mSatisfactionTotal; }
43 // Reputation changes gradually, so one poor day cannot erase a developed
44 // park and one good day cannot instantly create a five-star destination.
45 fsS32 reputationAfterDayGet(fsS32 pCurrentReputation) const;
46
47 // 0-3 stars based on coins earned vs the day's coin goal.
48 fsS32 starsGet() const;
49
50private:
51
52 fsS32 mCoins;
53 fsS32 mCoinGoal;
54 fsS32 mHappyCount;
55 fsS32 mUnhappyCount;
56 fsS32 mServicesPurchasedCount;
57 fsS32 mSatisfactionTotal;
58};
59
60#endif
void guestLeftUnhappyHandle(fsS32 pSatisfactionPercent=0)
Definition gfCDayEconomySim.cpp:36
fsS32 satisfactionAveragePercentGet() const
Definition gfCDayEconomySim.cpp:57
fsS32 reputationAfterDayGet(fsS32 pCurrentReputation) const
Definition gfCDayEconomySim.cpp:63
void guestLeftHappyHandle(fsS32 pSatisfactionPercent=100)
Definition gfCDayEconomySim.cpp:30
fsS32 unhappyCountGet() const
Definition gfCDayEconomySim.h:39
fsS32 coinsGet() const
Definition gfCDayEconomySim.h:37
fsS32 starsGet() const
Definition gfCDayEconomySim.cpp:73
fsS32 happyCountGet() const
Definition gfCDayEconomySim.h:38
void progressSet(fsS32 pCoins, fsS32 pHappyCount, fsS32 pUnhappyCount, fsS32 pServicesPurchasedCount, fsS32 pSatisfactionTotal)
Definition gfCDayEconomySim.cpp:42
void servicePurchasedHandle(fsS32 pSpend)
Definition gfCDayEconomySim.cpp:14
fsS32 servicesPurchasedCountGet() const
Definition gfCDayEconomySim.h:40
gfCDayEconomySim(fsS32 pCoinGoal)
Definition gfCDayEconomySim.cpp:4
void coinsSet(fsS32 pCoins)
Definition gfCDayEconomySim.h:33
fsS32 satisfactionTotalGet() const
Definition gfCDayEconomySim.h:41
int fsS32
Definition fsBaseTypes.h:20