Elin Decompiled Documentation EA 23.287 Stable Patch 3
Loading...
Searching...
No Matches
GameDate Class Reference
Inheritance diagram for GameDate:
Date EClass

Public Member Functions

void AdvanceSec (int a)
 
void AdvanceMin (int a)
 
void AdvanceHour ()
 
void AdvanceDay ()
 
void AdvanceMonth ()
 
void AdvanceYear ()
 
void ShipGoods ()
 
void ShipPackages ()
 
void ShipLetter ()
 
void ShipRandomPackages ()
 
- Public Member Functions inherited from Date
Date Copy ()
 
override string ToString ()
 
void AddHour (int a)
 
void AddDay (int a)
 
void AddMonth (int a)
 
string GetText (TextFormat format)
 
int GetRawReal (int offsetHours=0)
 
int GetRaw (int offsetHours=0)
 
int GetRawDay ()
 
bool IsExpired (int time)
 
int GetRemainingHours (int rawDeadLine)
 
int GetRemainingSecs (int rawDeadLine)
 
int GetElapsedMins (int rawDate)
 
int GetElapsedHour (int rawDate)
 

Public Attributes

bool shaken
 
- Public Attributes inherited from Date
int[] raw = new int[6]
 

Static Public Attributes

const int minPerRound = 5
 
- Static Public Attributes inherited from Date
const int ShippingHour = 5
 
const int HourToken = 60
 
const int DayToken = 1440
 
const int MonthToken = 43200
 
const int YearToken = 518400
 
const int HourTokenReal = 60
 
const int DayTokenReal = 1440
 
const int MonthTokenReal = 46080
 
const int YearTokenReal = 552960
 
- Static Public Attributes inherited from EClass
static Core core
 

Additional Inherited Members

- Public Types inherited from Date
enum  TextFormat {
  Default , Log , Widget , Schedule ,
  Travel , YearMonthDay , LogPlusYear
}
 
- Static Public Member Functions inherited from Date
static string GetText (int raw, TextFormat format)
 
static string GetText (int hour)
 
static string GetText2 (int hour)
 
static string SecToDate (int sec)
 
static string MinToDayAndHour (int min)
 
static int[] GetDateArray (int raw)
 
static Date ToDate (int raw)
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Properties inherited from Date
int year [get, set]
 
int month [get, set]
 
int day [get, set]
 
int hour [get, set]
 
int min [get, set]
 
int sec [get, set]
 
bool IsDay [get]
 
bool IsNight [get]
 
int HourMorning [get]
 
int HourNight [get]
 
PeriodOfDay periodOfDay [get]
 
string NameMonth [get]
 
string NameSeason [get]
 
string NameMonthShort [get]
 
string NameTime [get]
 
bool IsSpring [get]
 
bool IsSummer [get]
 
bool IsAutumn [get]
 
bool IsWinter [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 5 of file GameDate.cs.

Member Function Documentation

◆ AdvanceDay()

void GameDate.AdvanceDay ( )
inline

Definition at line 149 of file GameDate.cs.

150 {
151 base.day++;
153 EClass.player.questRerollCost -= 3;
155 {
156 EClass.player.questRerollCost = 0;
157 }
158 if (EClass.player.stats.days >= 90)
159 {
160 Tutorial.Reserve("death_penalty");
161 }
162 if (base.day > 30)
163 {
164 base.day = 1;
165 AdvanceMonth();
166 }
168 EClass.Sound.Play("owl");
169 if (!EClass.player.prayed && EClass.pc.Evalue(1655) > 0)
170 {
171 ActPray.TryPray(EClass.pc, passive: true);
172 }
173 Msg.Say("endDay");
174 shaken = false;
178 foreach (Chara item in EClass.game.cards.listAdv)
179 {
180 if (!item.IsPCFaction && EClass.rnd(10) == 0 && (item.isDead || item.currentZone == null || item.currentZone.id == "somewhere"))
181 {
182 item.SetHomeZone(EClass.world.region.ListTowns().RandomItem());
183 item.Revive();
184 item.MoveZone(item.homeZone);
185 }
186 }
187 foreach (Chara value in EClass.game.cards.globalCharas.Values)
188 {
189 value.OnAdvanceDay();
190 }
192 {
194 }
195 if (EClass.player.stats.days >= 7 && EClass.game.cards.globalCharas.Find("fiama").currentZone == EClass.game.StartZone && EClass.game.quests.GetGlobal("fiama_starter_gift") == null && !EClass.game.quests.IsCompleted("fiama_starter_gift"))
196 {
197 EClass.game.quests.Add("fiama_starter_gift", "fiama");
198 }
199 if (EClass.game.quests.completedIDs.Contains("demitas_spellwriter") && !EClass.game.quests.IsAdded<QuestNegotiationDarkness>())
200 {
201 EClass.game.quests.Add("negotiation_darkness", "loytel");
202 }
203 if (EClass.game.quests.IsCompleted("exploration"))
204 {
207 {
208 EClass.player.flags.magicChestSent = true;
209 Thing thing = ThingGen.Create("parchment");
210 thing.SetStr(53, "letter_magic_chest");
211 Thing p = ThingGen.CreateParcel(null, ThingGen.Create("container_magic"), thing);
213 }
214 }
215 if (base.day == 1 && base.month == 11 && (EClass.game.quests.IsStarted<QuestDebt>() || EClass.debug.enable))
216 {
217 Thing thing2 = ThingGen.Create("parchment");
218 thing2.SetStr(53, "letter_crimale");
219 Thing p2 = ThingGen.CreateParcel(null, ThingGen.Create("crimale2"), thing2);
221 }
222 if (base.day == 25 && base.month == 12)
223 {
225 }
226 foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
227 {
228 if (value2.IsPCFaction && value2.IsMarried && !value2.c_love.gotMusicBox)
229 {
230 Date date = Date.ToDate(value2.c_love.dateMarriage);
231 if (date.month == base.month && date.day == base.day)
232 {
233 value2.c_love.gotMusicBox = true;
234 Thing thing3 = ThingGen.Create("musicbox_memory2");
235 thing3.MakeRefFrom(value2, EClass.pc, simple: true);
236 Thing thing4 = ThingGen.Create("parchment");
237 thing4.MakeRefFrom(value2, null, simple: true);
238 thing4.SetStr(53, "letter_love");
239 Thing p3 = ThingGen.CreateParcel(null, thing3, ThingGen.Create("1165"), thing4);
241 }
242 }
243 }
244 }
static bool TryPray(Chara c, bool passive=false)
Definition: ActPray.cs:12
void SetStr(int id, string value=null)
Definition: BaseCard.cs:63
Chara Find(string id)
Definition: CardManager.cs:20
List< Chara > listAdv
Definition: CardManager.cs:64
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Card MakeRefFrom(string id)
Definition: Card.cs:5804
LoveData c_love
Definition: Card.cs:1871
int Evalue(int ele)
Definition: Card.cs:2611
Definition: Chara.cs:10
Faction faction
Definition: Chara.cs:429
void OnAdvanceDay()
Definition: Chara.cs:10340
override bool IsPCFaction
Definition: Chara.cs:685
Zone currentZone
Definition: Chara.cs:257
Zone homeZone
Definition: Chara.cs:269
bool IsMarried
Definition: Chara.cs:611
bool enable
Definition: CoreDebug.cs:286
Definition: Date.cs:4
int month
Definition: Date.cs:50
static Date ToDate(int raw)
Definition: Date.cs:399
int day
Definition: Date.cs:62
Definition: EClass.cs:6
static Game game
Definition: EClass.cs:9
static World world
Definition: EClass.cs:41
static int rnd(long a)
Definition: EClass.cs:59
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
static SoundManager Sound
Definition: EClass.cs:47
void OnAdvanceDay()
Definition: FACTION.cs:379
bool shaken
Definition: GameDate.cs:8
void AdvanceMonth()
Definition: GameDate.cs:246
CardManager cards
Definition: Game.cs:156
RelationManager relations
Definition: Game.cs:186
QuestManager quests
Definition: Game.cs:183
Zone StartZone
Definition: Game.cs:278
bool gotMusicBox
Definition: LoveData.cs:21
int dateMarriage
Definition: LoveData.cs:6
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
bool magicChestSent
Definition: Player.cs:532
int daysAfterQuestExploration
Definition: Player.cs:664
int days
Definition: Player.cs:75
Flags flags
Definition: Player.cs:1149
void OnAdvanceDay()
Definition: Player.cs:2449
Stats stats
Definition: Player.cs:1071
bool prayed
Definition: Player.cs:1041
int questRerollCost
Definition: Player.cs:1017
HashSet< string > completedIDs
Definition: QuestManager.cs:17
Quest Add(string id, string idGlobalChara=null)
Definition: QuestManager.cs:29
bool IsCompleted(string id)
Quest GetGlobal(string id)
List< Zone > ListTowns()
Definition: Region.cs:271
void UpdateRelations()
Faction mainFaction
Definition: Spatial.cs:442
static Thing CreateParcel(string idLang=null, params Thing[] things)
Definition: ThingGen.cs:42
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
static void Reserve(string idStep, Action onBeforePlay=null)
Definition: Tutorial.cs:55
static void Add(BaseSticky sticky, bool animate=true)
Definition: WidgetSticky.cs:52
void CreateDayData()
Definition: World.cs:43
Region region
Definition: World.cs:23
void SendPackage(Thing p)
Definition: World.cs:68

References WidgetSticky.Add(), QuestManager.Add(), AdvanceMonth(), Card.c_love, Game.cards, QuestManager.completedIDs, ThingGen.Create(), World.CreateDayData(), ThingGen.CreateParcel(), Chara.currentZone, LoveData.dateMarriage, Date.day, Player.Stats.days, Player.Flags.daysAfterQuestExploration, EClass.debug, CoreDebug.enable, Card.Evalue(), Chara.faction, CardManager.GlobalCharaList.Find(), Player.flags, EClass.game, QuestManager.GetGlobal(), CardManager.globalCharas, LoveData.gotMusicBox, Chara.homeZone, QuestManager.IsCompleted(), Chara.IsMarried, Chara.IsPCFaction, item, CardManager.listAdv, Region.ListTowns(), Player.Flags.magicChestSent, Spatial.mainFaction, Card.MakeRefFrom(), Date.month, Chara.OnAdvanceDay(), Faction.OnAdvanceDay(), Player.OnAdvanceDay(), EClass.pc, EClass.player, Player.prayed, Player.questRerollCost, Game.quests, World.region, Game.relations, Tutorial.Reserve(), EClass.rnd(), Msg.Say(), World.SendPackage(), BaseCard.SetStr(), shaken, EClass.Sound, Game.StartZone, Player.stats, Date.ToDate(), ActPray.TryPray(), RelationManager.UpdateRelations(), and EClass.world.

Referenced by AdvanceHour().

◆ AdvanceHour()

void GameDate.AdvanceHour ( )
inline

Definition at line 71 of file GameDate.cs.

72 {
73 VirtualDate virtualDate = new VirtualDate();
74 virtualDate.IsRealTime = true;
75 virtualDate.SimulateHour();
76 base.hour++;
77 if (base.hour >= 24)
78 {
79 base.hour = 0;
80 AdvanceDay();
81 }
82 if (!shaken && EClass.rnd(24) == 0 && !EClass._zone.IsRegion)
83 {
84 Msg.Say("earthquake");
86 {
87 Shaker.ShakeCam("earthquake");
88 }
89 shaken = true;
90 }
97 {
99 }
101 {
103 }
104 foreach (Chara value in EClass.game.cards.globalCharas.Values)
105 {
106 if (!value.IsPCParty && value.currentZone != EClass.game.activeZone && value.trait.UseGlobalGoal)
107 {
108 if (value.global.goal == null && !value.IsPCFaction)
109 {
110 GlobalGoalAdv globalGoalAdv = new GlobalGoalAdv();
111 globalGoalAdv.SetOwner(value);
112 globalGoalAdv.Start();
113 }
114 if (value.global.goal != null)
115 {
116 value.global.goal.AdvanceHour();
117 }
118 }
119 }
121 if (base.hour == 5)
122 {
123 ShipGoods();
124 ShipPackages();
125 ShipLetter();
126 if (EClass.rnd(30) == 0 && EClass.game.cards.listPackage.Count <= 2)
127 {
129 }
130 if (base.month == 10)
131 {
132 Tutorial.Reserve("season");
133 }
134 if (base.month == 11)
135 {
136 Tutorial.Reserve("season2");
137 }
138 else
139 {
140 Tutorial.Remove("season2");
141 }
142 if (base.year >= 2500)
143 {
144 Tutorial.Reserve("worldend");
145 }
146 }
147 }
List< Thing > listPackage
Definition: CardManager.cs:61
void RecalculateFOV()
Definition: Card.cs:6591
new TraitChara trait
Definition: Chara.cs:505
override bool IsPCParty
Definition: Chara.cs:629
GlobalData global
Definition: Chara.cs:76
GraphicSetting graphic
Definition: CoreConfig.cs:607
CoreConfig config
Definition: Core.cs:70
static Scene scene
Definition: EClass.cs:31
static Core core
Definition: EClass.cs:7
static Zone _zone
Definition: EClass.cs:21
void ShipGoods()
Definition: GameDate.cs:280
void ShipPackages()
Definition: GameDate.cs:392
void AdvanceDay()
Definition: GameDate.cs:149
void ShipRandomPackages()
Definition: GameDate.cs:482
void ShipLetter()
Definition: GameDate.cs:437
SurvivalManager survival
Definition: Game.cs:228
Zone activeZone
Definition: Game.cs:252
bool IsSurvival
Definition: Game.cs:276
GlobalGoal goal
Definition: GlobalData.cs:9
void Start()
Definition: GlobalGoal.cs:16
void SetOwner(Chara c)
Definition: GlobalGoal.cs:10
void AdvanceHour()
Definition: GlobalGoal.cs:25
void OnAdvanceHour()
Definition: Player.cs:2429
void OnAdvanceHour()
void CheckRandomSites()
Definition: Region.cs:75
void OnChangeHour()
Definition: Scene.cs:779
Definition: Shaker.cs:5
static void ShakeCam(string id="default", float magnitude=1f)
Definition: Shaker.cs:25
virtual bool IsRegion
Definition: Spatial.cs:515
virtual bool UseGlobalGoal
Definition: TraitChara.cs:93
static void Remove(string idStep)
Definition: Tutorial.cs:49
void SimulateHour()
Definition: VirtualDate.cs:66
void OnChangeHour()
Definition: Weather.cs:197
Weather weather
Definition: World.cs:12
virtual void OnAdvanceHour()
Definition: Zone.cs:1208
Region Region
Definition: Zone.cs:165

References EClass._zone, Game.activeZone, AdvanceDay(), GlobalGoal.AdvanceHour(), Game.cards, Region.CheckRandomSites(), Core.config, EClass.core, Chara.currentZone, CoreConfig.GraphicSetting.disableShake, EClass.game, Chara.global, CardManager.globalCharas, GlobalData.goal, CoreConfig.graphic, Chara.IsPCFaction, Chara.IsPCParty, Spatial.IsRegion, Game.IsSurvival, CardManager.listPackage, Player.OnAdvanceHour(), QuestManager.OnAdvanceHour(), SurvivalManager.OnAdvanceHour(), Zone.OnAdvanceHour(), Scene.OnChangeHour(), Weather.OnChangeHour(), EClass.pc, EClass.player, Game.quests, Card.RecalculateFOV(), Zone.Region, Tutorial.Remove(), Tutorial.Reserve(), EClass.rnd(), Msg.Say(), EClass.scene, GlobalGoal.SetOwner(), Shaker.ShakeCam(), shaken, ShipGoods(), ShipLetter(), ShipPackages(), ShipRandomPackages(), VirtualDate.SimulateHour(), GlobalGoal.Start(), Game.survival, Chara.trait, TraitChara.UseGlobalGoal, World.weather, and EClass.world.

Referenced by AdvanceMin(), WidgetArtTool.OnActivate(), and LayerTravel.Refresh().

◆ AdvanceMin()

void GameDate.AdvanceMin ( int  a)
inline

Definition at line 22 of file GameDate.cs.

23 {
24 EClass.game.sessionMin += a;
25 EClass.player.stats.mins += a;
26 base.min += a;
27 if (base.min >= 60)
28 {
29 while (base.min >= 60)
30 {
31 base.min -= 60;
33 }
35 }
36 else if (base.min % 3 == 2)
37 {
39 }
40 if (EClass._map.footmarks.Count > 0)
41 {
42 for (int num = EClass._map.footmarks.Count - 1; num >= 0; num--)
43 {
44 Footmark footmark = EClass._map.footmarks[num];
45 footmark.remaining--;
46 if (footmark.remaining <= 0)
47 {
48 CellDetail detail = footmark.pos.detail;
49 if (detail != null && detail.footmark == footmark)
50 {
51 detail.footmark = null;
52 footmark.pos.cell.TryDespawnDetail();
53 }
54 EClass._map.footmarks.RemoveAt(num);
55 }
56 }
57 }
60 {
61 Msg.NewLine();
62 EClass.player.countNewline = 0;
63 }
66 {
67 item.minElapsed += a;
68 }
69 }
Footmark footmark
Definition: CellDetail.cs:17
void TryDespawnDetail()
Definition: Cell.cs:1542
new GameConfig game
Definition: CoreConfig.cs:609
static Map _map
Definition: EClass.cs:19
static BaseGameScreen screen
Definition: EClass.cs:33
int remaining
Definition: Footmark.cs:5
Point pos
Definition: Footmark.cs:3
void AdvanceHour()
Definition: GameDate.cs:71
List< Footmark > footmarks
Definition: Map.cs:99
static void NewLine()
Definition: Msg.cs:323
void OnChangeMin()
Definition: PCOrbit.cs:19
int countNewline
Definition: Player.cs:1245
CellDetail detail
Definition: Point.cs:71
Cell cell
Definition: Point.cs:51
List< ZoneEvent > list
ZoneEventManager events
Definition: Zone.cs:40

References EClass._map, EClass._zone, AdvanceHour(), Point.cell, Core.config, EClass.core, Player.countNewline, Point.detail, Zone.events, CellDetail.footmark, Map.footmarks, CoreConfig.game, item, ZoneEventManager.list, Msg.NewLine(), CoreConfig.GameConfig.newlineCount, PCOrbit.OnChangeMin(), BaseGameScreen.pcOrbit, EClass.player, Footmark.pos, BaseGameScreen.RefreshGrading(), Footmark.remaining, EClass.screen, and Cell.TryDespawnDetail().

Referenced by Chara._Move(), LayerSleep.Advance(), AdvanceSec(), GameUpdater.Update(), and CoreDebug.UpdateInput().

◆ AdvanceMonth()

void GameDate.AdvanceMonth ( )
inline

Definition at line 246 of file GameDate.cs.

247 {
248 base.month++;
249 if (base.month > 12)
250 {
251 base.month = 1;
252 AdvanceYear();
253 }
256 if (base.month % 2 == 0)
257 {
259 }
261 foreach (Thing thing in EClass._map.things)
262 {
263 if (thing.renderer.hasActor)
264 {
265 thing.renderer.RefreshSprite();
266 }
267 }
269 }
void RefreshSprite()
CardRenderer renderer
Definition: Card.cs:62
void OnAdvanceMonth()
Definition: FACTION.cs:387
void AdvanceYear()
Definition: GameDate.cs:271
List< Thing > things
Definition: Map.cs:49
void RefreshAllTiles()
Definition: Map.cs:2108
void OnAdvanceMonth()
int months
Definition: Player.cs:78
int holyWell
Definition: Player.cs:972
NumLogManager nums
Definition: Player.cs:1074

References EClass._map, AdvanceYear(), Chara.faction, CardRenderer.hasActor, Player.holyWell, Player.Stats.months, Player.nums, Faction.OnAdvanceMonth(), NumLogManager.OnAdvanceMonth(), EClass.pc, EClass.player, Map.RefreshAllTiles(), CardRenderer.RefreshSprite(), Card.renderer, Player.stats, and Map.things.

Referenced by AdvanceDay().

◆ AdvanceSec()

void GameDate.AdvanceSec ( int  a)
inline

Definition at line 12 of file GameDate.cs.

13 {
14 base.sec += a;
15 if (base.sec >= 60)
16 {
17 AdvanceMin(base.sec / 60);
18 base.sec %= 60;
19 }
20 }
void AdvanceMin(int a)
Definition: GameDate.cs:22

References AdvanceMin().

◆ AdvanceYear()

void GameDate.AdvanceYear ( )
inline

Definition at line 271 of file GameDate.cs.

272 {
273 base.year++;
274 EClass.player.flags.santa = 0;
275 EClass.player.wellWished = false;
277 EClass.world.SendPackage(ThingGen.Create("gift_newyear"));
278 }
void OnAdvanceYear()

References ThingGen.Create(), Player.nums, NumLogManager.OnAdvanceYear(), EClass.player, World.SendPackage(), and EClass.world.

Referenced by AdvanceMonth().

◆ ShipGoods()

void GameDate.ShipGoods ( )
inline

Definition at line 280 of file GameDate.cs.

281 {
282 Thing container_shipping = EClass.game.cards.container_shipping;
283 if (container_shipping.things.Count == 0)
284 {
285 return;
286 }
287 int num = 0;
288 int num2 = 0;
289 int num3 = 0;
290 int num4 = 0;
291 List<Thing> list = new List<Thing>();
292 List<string> list2 = new List<string>();
294 if (zone == null || zone.branch == null)
295 {
296 zone = EClass.pc.homeZone;
297 }
298 ShippingResult shippingResult = new ShippingResult();
299 shippingResult.rawDate = EClass.world.date.GetRaw();
300 shippingResult.uidZone = zone.uid;
302 {
303 EClass.player.stats.shipMoney = 2147483647L;
304 }
305 shippingResult.total = EClass.player.stats.shipMoney;
306 shippingResult.hearthLv = zone.branch.lv;
307 shippingResult.hearthExp = zone.branch.exp;
308 shippingResult.debt = EClass.player.debt;
309 foreach (Thing thing3 in container_shipping.things)
310 {
311 if (thing3.trait.CanBeShipped)
312 {
313 int price = thing3.GetPrice(CurrencyType.Money, sell: true, PriceType.Shipping);
314 int num5 = price * thing3.Num;
315 num3 += num5;
316 num += thing3.Num;
317 num2 += EClass.rndHalf(thing3.Num * Mathf.Min(15 + price, 10000) / 100 + 1);
318 list.Add(thing3);
319 shippingResult.items.Add(new ShippingResult.Item
320 {
321 text = thing3.Name,
322 income = num5
323 });
324 }
325 }
326 if (list.Count == 0)
327 {
328 return;
329 }
330 num2 = num2 / 2 + 1;
331 if (zone.branch.policies.IsActive(2515))
332 {
333 num2 = 0;
334 }
335 shippingResult.hearthExpGained = num2;
336 EClass.pc.homeBranch.log.Add(Msg.Say("shipped_collect"));
337 foreach (string item in list2)
338 {
340 }
342 EClass.player.stats.shipNum += num;
343 EClass.player.stats.shipMoney += num3;
345 if (shippingBonus2 > shippingBonus)
346 {
347 num4 = shippingBonus2 - shippingBonus;
348 }
349 foreach (Thing item2 in list)
350 {
351 item2.Destroy();
352 }
353 Thing thing = null;
354 Thing thing2 = null;
355 string text = "";
356 if (num3 != 0)
357 {
358 thing = ThingGen.Create("money").SetNum(num3);
359 }
360 if (num4 != 0)
361 {
362 thing2 = ThingGen.Create("money2").SetNum(num4);
363 }
364 if (thing != null && thing2 != null)
365 {
366 text = "_and".lang(thing.Name, thing2.Name);
367 SE.Pay();
368 }
369 else if (thing != null || thing2 != null)
370 {
371 text = ((thing != null) ? thing : thing2).Name;
372 }
373 EClass.pc.homeBranch.log.Add(Msg.Say((text == "") ? "shipped_none" : "shipped", num.ToString() ?? "", text), FontColor.Good);
374 EClass.player.shippingResults.Add(shippingResult);
375 EClass.player.showShippingResult = EClass.core.config.game.showShippingResult;
376 for (int i = 0; i < EClass.player.shippingResults.Count - 10; i++)
377 {
378 EClass.player.shippingResults.RemoveAt(0);
379 }
380 zone.branch.statistics.ship += num3;
381 zone.branch.ModExp(num2);
382 if (thing != null)
383 {
384 EClass.pc.Pick(thing);
385 }
386 if (thing2 != null)
387 {
388 EClass.pc.Pick(thing2);
389 }
390 }
CurrencyType
Definition: CurrencyType.cs:2
FontColor
Definition: FontColor.cs:2
PriceType
Definition: PriceType.cs:2
Thing container_shipping
Definition: CardManager.cs:52
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Card.cs:7504
string Name
Definition: Card.cs:2177
Thing SetNum(int a)
Definition: Card.cs:3577
Trait trait
Definition: Card.cs:54
void Destroy()
Definition: Card.cs:5164
ThingContainer things
Definition: Card.cs:39
int Num
Definition: Card.cs:159
FactionBranch homeBranch
Definition: Chara.cs:1080
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:4381
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
static int rndHalf(int a)
Definition: EClass.cs:97
void ModExp(int a)
PolicyManager policies
SpatialManager spatials
Definition: Game.cs:153
void Add(Data data)
Definition: MsgLog.cs:53
long shipMoney
Definition: Player.cs:144
int GetShippingBonus(long _a)
Definition: Player.cs:236
int debt
Definition: Player.cs:1002
List< ShippingResult > shippingResults
Definition: Player.cs:1179
int uidLastShippedZone
Definition: Player.cs:957
bool IsActive(int id, int days=-1)
List< Item > items
Zone Find(string id)
int uid
Definition: Spatial.cs:70
virtual bool CanBeShipped
Definition: Trait.cs:330
GameDate date
Definition: World.cs:6
Definition: Zone.cs:12
FactionBranch branch
Definition: Zone.cs:34

References MsgLog.Add(), Zone.branch, Trait.CanBeShipped, Game.cards, Core.config, CardManager.container_shipping, EClass.core, ThingGen.Create(), World.date, Player.debt, Card.Destroy(), FactionBranch.exp, SpatialManager.Find(), CoreConfig.game, EClass.game, Card.GetPrice(), Date.GetRaw(), Player.Stats.GetShippingBonus(), Chara.homeBranch, Chara.homeZone, item, FactionBranch.log, FactionBranch.lv, Card.Name, Card.Num, EClass.pc, Chara.Pick(), EClass.player, EClass.rndHalf(), Msg.Say(), Card.SetNum(), Player.Stats.shipMoney, Player.shippingResults, CoreConfig.GameConfig.showShippingResult, Game.spatials, Player.stats, Card.things, Card.trait, Spatial.uid, Player.uidLastShippedZone, and EClass.world.

Referenced by AdvanceHour().

◆ ShipLetter()

void GameDate.ShipLetter ( )
inline

Definition at line 437 of file GameDate.cs.

438 {
439 int num = -1;
440 int lutz = EClass.player.flags.lutz;
441 if (EClass.player.stats.days >= 2 && lutz <= 0)
442 {
443 num = 1;
444 }
445 else if (EClass.player.stats.days >= 5 && lutz <= 1)
446 {
447 num = 2;
448 }
449 else if (EClass.player.stats.days >= 8 && lutz <= 2)
450 {
451 num = 3;
452 }
453 else if (EClass.player.stats.days >= 11 && lutz <= 3)
454 {
455 num = 4;
456 }
457 else if (EClass.player.stats.days >= 15 && lutz <= 4)
458 {
459 num = 5;
460 }
461 else if (EClass.player.stats.days >= 17 && lutz <= 5)
462 {
463 num = 6;
464 }
465 else if (EClass.player.stats.days >= 30 && lutz <= 6)
466 {
467 num = 7;
468 }
469 else if (EClass.player.stats.days >= 50 && lutz <= 7)
470 {
471 num = 8;
472 }
473 if (num != -1)
474 {
475 EClass.player.flags.lutz = num;
476 Thing thing = ThingGen.Create("letter");
477 thing.SetStr(53, "lutz_" + num);
478 EClass.world.SendPackage(thing);
479 }
480 }
int lutz
Definition: Player.cs:652

References ThingGen.Create(), Player.Stats.days, Player.flags, Player.Flags.lutz, EClass.player, World.SendPackage(), BaseCard.SetStr(), Player.stats, and EClass.world.

Referenced by AdvanceHour().

◆ ShipPackages()

void GameDate.ShipPackages ( )
inline

Definition at line 392 of file GameDate.cs.

393 {
394 Thing container_deliver = EClass.game.cards.container_deliver;
395 if (container_deliver.things.Count == 0)
396 {
397 return;
398 }
399 int num = 0;
400 while (container_deliver.things.Count > 0)
401 {
402 num++;
403 if (num > 100)
404 {
405 Debug.Log("too many tries");
406 break;
407 }
408 int uidZone = 0;
409 foreach (Thing thing2 in container_deliver.things)
410 {
411 int @int = thing2.GetInt(102);
412 if (@int != 0)
413 {
414 uidZone = @int;
415 thing2.SetInt(102);
416 break;
417 }
418 }
419 int num2 = 20;
420 Thing thing = ThingGen.CreateCardboardBox(uidZone);
421 for (int num3 = container_deliver.things.Count - 1; num3 >= 0; num3--)
422 {
423 Thing c = container_deliver.things[num3];
424 thing.AddCard(c);
425 num2 += 5;
426 if (thing.things.IsFull())
427 {
428 break;
429 }
430 }
431 EClass.world.SendPackage(thing);
432 Thing bill = ThingGen.CreateBill(num2, tax: false);
434 }
435 }
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
Thing container_deliver
Definition: CardManager.cs:55
Card AddCard(Card c)
Definition: Card.cs:3166
void TryPayBill(Thing bill)
Definition: FACTION.cs:424
bool IsFull(int y=0)
static Thing CreateBill(int pay, bool tax)
Definition: ThingGen.cs:85
static Thing CreateCardboardBox(int uidZone=-1)
Definition: ThingGen.cs:244

References Card.AddCard(), bill, Game.cards, CardManager.container_deliver, ThingGen.CreateBill(), ThingGen.CreateCardboardBox(), Debug, Chara.faction, EClass.game, BaseCard.GetInt(), ThingContainer.IsFull(), EClass.pc, World.SendPackage(), BaseCard.SetInt(), Card.things, Faction.TryPayBill(), and EClass.world.

Referenced by AdvanceHour().

◆ ShipRandomPackages()

void GameDate.ShipRandomPackages ( )
inline

Definition at line 482 of file GameDate.cs.

483 {
485 TraitContainer traitContainer = box.trait as TraitContainer;
486 bool flag = EClass.pc.homeBranch.policies.IsActive(2708);
487 if (EClass.rnd(EClass.debug.enable ? 1 : 100) == 0 && !EClass.player.flags.statueShipped)
488 {
489 EClass.player.flags.statueShipped = true;
490 Add("statue_weird", 1);
491 flag = false;
492 }
493 else if (EClass.rnd(10) == 0)
494 {
495 Add("234", 1);
496 }
497 else if (EClass.rnd(5) == 0)
498 {
499 AddThing(ThingGen.CreateFromCategory("junk"), 1);
500 }
501 else if (EClass.rnd(10) == 0)
502 {
503 AddThing(ThingGen.CreateFromTag("garbage"), 1);
504 }
505 else if (EClass.rnd(8) == 0)
506 {
507 CardRow cardRow = SpawnList.Get("chara").Select(EClass.pc.LV + 10);
508 traitContainer.PutChara(cardRow.id);
509 flag = false;
510 }
511 else if (EClass.rnd(8) == 0)
512 {
513 Add("plat", 1 + EClass.rnd(4));
514 flag = false;
515 }
516 else if (EClass.rnd(8) == 0)
517 {
518 Add("money2", 1 + EClass.rnd(4));
519 flag = false;
520 }
521 else
522 {
523 string id2 = "trash2";
524 if (EClass.rnd(3) == 0)
525 {
526 id2 = "trash1";
527 }
528 if (EClass.rnd(3) == 0)
529 {
530 id2 = ((EClass.rnd(3) == 0) ? "529" : "1170");
531 }
532 if (EClass.rnd(5) == 0)
533 {
534 id2 = "_poop";
535 }
536 if (EClass.rnd(100) == 0)
537 {
538 id2 = "goodness";
539 flag = false;
540 }
541 Add(id2, 1);
542 }
543 if (!flag)
544 {
546 }
547 void Add(string id, int num)
548 {
549 AddThing(ThingGen.Create(id), num);
550 }
551 void AddThing(Thing t, int num)
552 {
553 t.SetNum(num);
554 box.AddCard(t);
555 }
556 }
list. Add(item3)
string id
Definition: CardRow.cs:7
int LV
Definition: Card.cs:387
bool statueShipped
Definition: Player.cs:448
static SpawnList Get(string id, string parent=null, CardFilter filter=null)
Definition: SpawnList.cs:18
CardRow Select(int lv=-1, int levelRange=-1)
Definition: SpawnList.cs:139
static Thing CreateFromTag(string idTag, int lv=-1)
Definition: ThingGen.cs:80
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
void PutChara(string id)

References Add(), Card.AddCard(), ThingGen.Create(), ThingGen.CreateCardboardBox(), ThingGen.CreateFromCategory(), ThingGen.CreateFromTag(), EClass.debug, CoreDebug.enable, Player.flags, SpawnList.Get(), Chara.homeBranch, CardRow.id, PolicyManager.IsActive(), Card.LV, EClass.pc, EClass.player, FactionBranch.policies, TraitBaseContainer.PutChara(), EClass.rnd(), SpawnList.Select(), World.SendPackage(), Card.SetNum(), Player.Flags.statueShipped, and EClass.world.

Referenced by AdvanceHour().

Member Data Documentation

◆ minPerRound

const int GameDate.minPerRound = 5
static

Definition at line 10 of file GameDate.cs.

◆ shaken

bool GameDate.shaken

Definition at line 8 of file GameDate.cs.

Referenced by AdvanceDay(), and AdvanceHour().


The documentation for this class was generated from the following file: