Elin Decompiled Documentation EA 23.297 Nightly Patch 1
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:5852
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:10363
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:544
int daysAfterQuestExploration
Definition: Player.cs:676
int days
Definition: Player.cs:75
Flags flags
Definition: Player.cs:1161
void OnAdvanceDay()
Definition: Player.cs:2461
Stats stats
Definition: Player.cs:1083
bool prayed
Definition: Player.cs:1053
int questRerollCost
Definition: Player.cs:1029
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:6642
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:609
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:418
void AdvanceDay()
Definition: GameDate.cs:149
void ShipRandomPackages()
Definition: GameDate.cs:508
void ShipLetter()
Definition: GameDate.cs:463
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:2441
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:611
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:1257
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:984
NumLogManager nums
Definition: Player.cs:1086

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 long num3 = 0L;
290 long num4 = 0L;
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 long num5 = (long)price * (long)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 if (num4 > int.MaxValue)
350 {
351 num4 = 2147483647L;
352 }
353 foreach (Thing item2 in list)
354 {
355 item2.Destroy();
356 }
357 Thing thing = null;
358 Thing thing2 = null;
359 string text = "";
360 long num6 = 0L;
361 if (num3 > int.MaxValue)
362 {
363 num6 = num3 - int.MaxValue;
364 num3 = 2147483647L;
365 }
366 if (num3 > 0)
367 {
368 thing = ThingGen.Create("money").SetNum((int)num3);
369 }
370 if (num4 > 0)
371 {
372 thing2 = ThingGen.Create("money2").SetNum((int)num4);
373 }
374 if (thing != null && thing2 != null)
375 {
376 text = "_and".lang(thing.Name, thing2.Name);
377 SE.Pay();
378 }
379 else if (thing != null || thing2 != null)
380 {
381 text = ((thing != null) ? thing : thing2).Name;
382 }
383 EClass.pc.homeBranch.log.Add(Msg.Say((text == "") ? "shipped_none" : "shipped", num.ToString() ?? "", text), FontColor.Good);
384 EClass.player.shippingResults.Add(shippingResult);
385 EClass.player.showShippingResult = EClass.core.config.game.showShippingResult;
386 for (int i = 0; i < EClass.player.shippingResults.Count - 10; i++)
387 {
388 EClass.player.shippingResults.RemoveAt(0);
389 }
390 zone.branch.statistics.ship += num3;
391 zone.branch.ModExp(num2);
392 if (thing != null)
393 {
394 EClass.pc.Pick(thing);
395 }
396 if (thing2 != null)
397 {
398 EClass.pc.Pick(thing2);
399 }
400 while (num6 > 0)
401 {
402 int num7 = 0;
403 if (num6 > int.MaxValue)
404 {
405 num7 = int.MaxValue;
406 num6 -= int.MaxValue;
407 }
408 else
409 {
410 num7 = (int)num6;
411 num6 = 0L;
412 }
413 Thing t = ThingGen.Create("money").SetNum(num7);
415 }
416 }
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:7557
string Name
Definition: Card.cs:2177
Thing SetNum(int a)
Definition: Card.cs:3577
Point pos
Definition: Card.cs:60
Trait trait
Definition: Card.cs:54
void Destroy()
Definition: Card.cs:5182
ThingContainer things
Definition: Card.cs:39
int Num
Definition: Card.cs:159
void PickOrDrop(Point p, string idThing, int idMat=-1, int num=1, bool msg=true)
Definition: Chara.cs:4366
FactionBranch homeBranch
Definition: Chara.cs:1080
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:4386
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:248
int debt
Definition: Player.cs:1014
List< ShippingResult > shippingResults
Definition: Player.cs:1191
int uidLastShippedZone
Definition: Player.cs:969
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 Zone.branch, Trait.CanBeShipped, Game.cards, CardManager.container_shipping, World.date, Player.debt, FactionBranch.exp, SpatialManager.Find(), EClass.game, Card.GetPrice(), Date.GetRaw(), Chara.homeZone, FactionBranch.lv, Card.Name, Card.Num, EClass.pc, EClass.player, EClass.rndHalf(), Player.Stats.shipMoney, 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 463 of file GameDate.cs.

464 {
465 int num = -1;
466 int lutz = EClass.player.flags.lutz;
467 if (EClass.player.stats.days >= 2 && lutz <= 0)
468 {
469 num = 1;
470 }
471 else if (EClass.player.stats.days >= 5 && lutz <= 1)
472 {
473 num = 2;
474 }
475 else if (EClass.player.stats.days >= 8 && lutz <= 2)
476 {
477 num = 3;
478 }
479 else if (EClass.player.stats.days >= 11 && lutz <= 3)
480 {
481 num = 4;
482 }
483 else if (EClass.player.stats.days >= 15 && lutz <= 4)
484 {
485 num = 5;
486 }
487 else if (EClass.player.stats.days >= 17 && lutz <= 5)
488 {
489 num = 6;
490 }
491 else if (EClass.player.stats.days >= 30 && lutz <= 6)
492 {
493 num = 7;
494 }
495 else if (EClass.player.stats.days >= 50 && lutz <= 7)
496 {
497 num = 8;
498 }
499 if (num != -1)
500 {
501 EClass.player.flags.lutz = num;
502 Thing thing = ThingGen.Create("letter");
503 thing.SetStr(53, "lutz_" + num);
504 EClass.world.SendPackage(thing);
505 }
506 }
int lutz
Definition: Player.cs:664

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 418 of file GameDate.cs.

419 {
420 Thing container_deliver = EClass.game.cards.container_deliver;
421 if (container_deliver.things.Count == 0)
422 {
423 return;
424 }
425 int num = 0;
426 while (container_deliver.things.Count > 0)
427 {
428 num++;
429 if (num > 100)
430 {
431 Debug.Log("too many tries");
432 break;
433 }
434 int uidZone = 0;
435 foreach (Thing thing2 in container_deliver.things)
436 {
437 int @int = thing2.GetInt(102);
438 if (@int != 0)
439 {
440 uidZone = @int;
441 thing2.SetInt(102);
442 break;
443 }
444 }
445 int num2 = 20;
446 Thing thing = ThingGen.CreateCardboardBox(uidZone);
447 for (int num3 = container_deliver.things.Count - 1; num3 >= 0; num3--)
448 {
449 Thing c = container_deliver.things[num3];
450 thing.AddCard(c);
451 num2 += 5;
452 if (thing.things.IsFull())
453 {
454 break;
455 }
456 }
457 EClass.world.SendPackage(thing);
458 Thing bill = ThingGen.CreateBill(num2, tax: false);
460 }
461 }
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 508 of file GameDate.cs.

509 {
511 TraitContainer traitContainer = box.trait as TraitContainer;
512 bool flag = EClass.pc.homeBranch.policies.IsActive(2708);
513 if (EClass.rnd(EClass.debug.enable ? 1 : 100) == 0 && !EClass.player.flags.statueShipped)
514 {
515 EClass.player.flags.statueShipped = true;
516 Add("statue_weird", 1);
517 flag = false;
518 }
519 else if (EClass.rnd(10) == 0)
520 {
521 Add("234", 1);
522 }
523 else if (EClass.rnd(5) == 0)
524 {
525 AddThing(ThingGen.CreateFromCategory("junk"), 1);
526 }
527 else if (EClass.rnd(10) == 0)
528 {
529 AddThing(ThingGen.CreateFromTag("garbage"), 1);
530 }
531 else if (EClass.rnd(8) == 0)
532 {
533 CardRow cardRow = SpawnList.Get("chara").Select(EClass.pc.LV + 10);
534 traitContainer.PutChara(cardRow.id);
535 flag = false;
536 }
537 else if (EClass.rnd(8) == 0)
538 {
539 Add("plat", 1 + EClass.rnd(4));
540 flag = false;
541 }
542 else if (EClass.rnd(8) == 0)
543 {
544 Add("money2", 1 + EClass.rnd(4));
545 flag = false;
546 }
547 else
548 {
549 string id2 = "trash2";
550 if (EClass.rnd(3) == 0)
551 {
552 id2 = "trash1";
553 }
554 if (EClass.rnd(3) == 0)
555 {
556 id2 = ((EClass.rnd(3) == 0) ? "529" : "1170");
557 }
558 if (EClass.rnd(5) == 0)
559 {
560 id2 = "_poop";
561 }
562 if (EClass.rnd(100) == 0)
563 {
564 id2 = "goodness";
565 flag = false;
566 }
567 Add(id2, 1);
568 }
569 if (!flag)
570 {
572 }
573 void Add(string id, int num)
574 {
575 AddThing(ThingGen.Create(id), num);
576 }
577 void AddThing(Thing t, int num)
578 {
579 t.SetNum(num);
580 box.AddCard(t);
581 }
582 }
list. Add(item3)
string id
Definition: CardRow.cs:7
int LV
Definition: Card.cs:387
bool statueShipped
Definition: Player.cs:460
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: