Elin Decompiled Documentation EA 23.333 Myaightly 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
 

Private Attributes

List< Element_fieldEffectsToRemove = new List<Element>()
 

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

171 {
172 base.day++;
174 EClass.player.questRerollCost -= 3;
176 {
177 EClass.player.questRerollCost = 0;
178 }
179 if (EClass.player.stats.days >= 90)
180 {
181 Tutorial.Reserve("death_penalty");
182 }
183 if (base.day > 30)
184 {
185 base.day = 1;
186 AdvanceMonth();
187 }
189 EClass.Sound.Play("owl");
190 if (!EClass.player.prayed && EClass.pc.Evalue(1655) > 0)
191 {
192 ActPray.TryPray(EClass.pc, passive: true);
193 }
194 Msg.Say("endDay");
195 shaken = false;
199 foreach (Chara item in EClass.game.cards.listAdv)
200 {
201 if (!item.IsPCFaction && EClass.rnd(10) == 0 && (item.isDead || item.currentZone == null || item.currentZone.id == "somewhere"))
202 {
203 item.SetHomeZone(EClass.world.region.ListTowns().RandomItem());
204 item.Revive();
205 item.MoveZone(item.homeZone);
206 }
207 }
208 foreach (Chara value in EClass.game.cards.globalCharas.Values)
209 {
210 value.OnAdvanceDay();
211 }
213 {
215 }
216 if (EClass.player.stats.days >= 7)
217 {
218 Chara chara = EClass.game.cards.globalCharas.Find("fiama");
219 if (chara != null && chara.currentZone == EClass.game.StartZone && EClass.game.quests.GetGlobal("fiama_starter_gift") == null && !EClass.game.quests.IsCompleted("fiama_starter_gift"))
220 {
221 EClass.game.quests.Add("fiama_starter_gift", "fiama");
222 }
223 }
224 if (EClass.game.quests.completedIDs.Contains("demitas_spellwriter") && !EClass.game.quests.IsAdded<QuestNegotiationDarkness>())
225 {
226 EClass.game.quests.Add("negotiation_darkness", "loytel");
227 }
229 {
230 EClass.game.quests.Add("stone_dream", "loytel");
231 }
232 if (EClass.game.quests.IsCompleted("exploration"))
233 {
236 {
237 EClass.player.flags.magicChestSent = true;
238 Thing thing = ThingGen.Create("parchment");
239 thing.SetStr(53, "letter_magic_chest");
240 Thing p = ThingGen.CreateParcel(null, ThingGen.Create("container_magic"), thing);
242 }
243 }
244 if (base.day == 1 && base.month == 11 && (EClass.game.quests.IsStarted<QuestDebt>() || EClass.debug.enable))
245 {
246 Thing thing2 = ThingGen.Create("parchment");
247 thing2.SetStr(53, "letter_crimale");
248 Thing p2 = ThingGen.CreateParcel(null, ThingGen.Create("crimale2"), thing2);
250 }
251 if (base.day == 25 && base.month == 12)
252 {
254 }
255 foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
256 {
257 if (value2.IsPCFaction && value2.IsMarried && !value2.c_love.gotMusicBox)
258 {
259 Date date = Date.ToDate(value2.c_love.dateMarriage);
260 if (date.month == base.month && date.day == base.day)
261 {
262 value2.c_love.gotMusicBox = true;
263 Thing thing3 = ThingGen.Create("musicbox_memory2");
264 thing3.MakeRefFrom(value2, EClass.pc, simple: true);
265 Thing thing4 = ThingGen.Create("parchment");
266 thing4.MakeRefFrom(value2, null, simple: true);
267 thing4.SetStr(53, "letter_love");
268 Thing p3 = ThingGen.CreateParcel(null, thing3, ThingGen.Create("1165"), thing4);
270 }
271 }
272 }
273 }
static bool TryPray(Chara c, bool passive=false)
Definition: ActPray.cs:12
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:6008
LoveData c_love
Definition: Card.cs:1885
void SetStr(string id, string value=null)
Definition: Card.cs:2600
int Evalue(int ele)
Definition: Card.cs:2704
Definition: Chara.cs:10
Faction faction
Definition: Chara.cs:431
void OnAdvanceDay()
Definition: Chara.cs:10710
override bool IsPCFaction
Definition: Chara.cs:689
Zone currentZone
Definition: Chara.cs:259
Zone homeZone
Definition: Chara.cs:271
bool IsMarried
Definition: Chara.cs:615
bool enable
Definition: CoreDebug.cs:301
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:275
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
bool IsAdded(string id)
Quest Add(string id, string idGlobalChara=null)
Definition: QuestManager.cs:29
bool IsStarted(string id)
bool IsCompleted(string id)
Quest GetGlobal(string id)
List< Zone > ListTowns()
Definition: Region.cs:272
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.IsAdded(), QuestManager.IsCompleted(), Chara.IsMarried, Chara.IsPCFaction, QuestManager.IsStarted(), 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(), Card.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 92 of file GameDate.cs.

93 {
94 VirtualDate virtualDate = new VirtualDate();
95 virtualDate.IsRealTime = true;
96 virtualDate.SimulateHour();
97 base.hour++;
98 if (base.hour >= 24)
99 {
100 base.hour = 0;
101 AdvanceDay();
102 }
103 if (!shaken && EClass.rnd(24) == 0 && !EClass._zone.IsRegion)
104 {
105 Msg.Say("earthquake");
107 {
108 Shaker.ShakeCam("earthquake");
109 }
110 shaken = true;
111 }
118 {
120 }
122 {
124 }
125 foreach (Chara value in EClass.game.cards.globalCharas.Values)
126 {
127 if (!value.IsPCParty && value.currentZone != EClass.game.activeZone && value.trait.UseGlobalGoal)
128 {
129 if (value.global.goal == null && !value.IsPCFaction)
130 {
131 GlobalGoalAdv globalGoalAdv = new GlobalGoalAdv();
132 globalGoalAdv.SetOwner(value);
133 globalGoalAdv.Start();
134 }
135 if (value.global.goal != null)
136 {
137 value.global.goal.AdvanceHour();
138 }
139 }
140 }
142 if (base.hour == 5)
143 {
144 ShipGoods();
145 ShipPackages();
146 ShipLetter();
147 if (EClass.rnd(30) == 0 && EClass.game.cards.listPackage.Count <= 2)
148 {
150 }
151 if (base.month == 10)
152 {
153 Tutorial.Reserve("season");
154 }
155 if (base.month == 11)
156 {
157 Tutorial.Reserve("season2");
158 }
159 else
160 {
161 Tutorial.Remove("season2");
162 }
163 if (base.year >= 2500)
164 {
165 Tutorial.Reserve("worldend");
166 }
167 }
168 }
List< Thing > listPackage
Definition: CardManager.cs:61
void RecalculateFOV()
Definition: Card.cs:6842
new TraitChara trait
Definition: Chara.cs:509
override bool IsPCParty
Definition: Chara.cs:633
GlobalData global
Definition: Chara.cs:76
GraphicSetting graphic
Definition: CoreConfig.cs:617
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:309
void ShipPackages()
Definition: GameDate.cs:447
void AdvanceDay()
Definition: GameDate.cs:170
void ShipRandomPackages()
Definition: GameDate.cs:537
void ShipLetter()
Definition: GameDate.cs:492
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:76
void OnChangeHour()
Definition: Scene.cs:783
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:96
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:1281
Region Region
Definition: Zone.cs:167

References EClass._zone, Game.activeZone, AdvanceDay(), GlobalGoal.AdvanceHour(), Game.cards, Region.CheckRandomSites(), Core.config, EClass.core, Chara.currentZone, CoreConfig.GraphicSetting.disableShake, CoreConfig.Test.disableShake2, 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, CoreConfig.test, 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 24 of file GameDate.cs.

25 {
26 EClass.game.sessionMin += a;
27 EClass.player.stats.mins += a;
28 base.min += a;
29 if (base.min >= 60)
30 {
31 while (base.min >= 60)
32 {
33 base.min -= 60;
35 }
37 }
38 else if (base.min % 3 == 2)
39 {
41 }
42 if (EClass._map.footmarks.Count > 0)
43 {
44 for (int num = EClass._map.footmarks.Count - 1; num >= 0; num--)
45 {
46 Footmark footmark = EClass._map.footmarks[num];
47 footmark.remaining--;
48 if (footmark.remaining <= 0)
49 {
50 CellDetail detail = footmark.pos.detail;
51 if (detail != null && detail.footmark == footmark)
52 {
53 detail.footmark = null;
54 footmark.pos.cell.TryDespawnDetail();
55 }
56 EClass._map.footmarks.RemoveAt(num);
57 }
58 }
59 }
62 {
63 Msg.NewLine();
64 EClass.player.countNewline = 0;
65 }
67 if (EClass._zone.fieldElements.dict.Count > 0)
68 {
70 foreach (Element value in EClass._zone.fieldElements.dict.Values)
71 {
72 if (value.vPotential > 0)
73 {
74 value.vPotential--;
75 if (value.vPotential == 0)
76 {
77 _fieldEffectsToRemove.Add(value);
78 }
79 }
80 }
82 {
84 }
85 }
86 foreach (ZoneEvent item2 in EClass._zone.events.list)
87 {
88 item2.minElapsed += a;
89 }
90 }
Footmark footmark
Definition: CellDetail.cs:17
void TryDespawnDetail()
Definition: Cell.cs:1578
new GameConfig game
Definition: CoreConfig.cs:619
static Map _map
Definition: EClass.cs:19
static BaseGameScreen screen
Definition: EClass.cs:33
Dictionary< int, Element > dict
int vPotential
Definition: ELEMENT.cs:265
int remaining
Definition: Footmark.cs:5
Point pos
Definition: Footmark.cs:3
List< Element > _fieldEffectsToRemove
Definition: GameDate.cs:12
void AdvanceHour()
Definition: GameDate.cs:92
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
ElementContainerField fieldElements
Definition: Zone.cs:46
void RemoveFieldEffect(int idEle)
Definition: Zone.cs:3100

References _fieldEffectsToRemove, EClass._map, EClass._zone, AdvanceHour(), Point.cell, Core.config, EClass.core, Player.countNewline, Point.detail, ElementContainer.dict, Zone.events, Zone.fieldElements, 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, Zone.RemoveFieldEffect(), EClass.screen, Cell.TryDespawnDetail(), and Element.vPotential.

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

◆ AdvanceMonth()

void GameDate.AdvanceMonth ( )
inline

Definition at line 275 of file GameDate.cs.

276 {
277 base.month++;
278 if (base.month > 12)
279 {
280 base.month = 1;
281 AdvanceYear();
282 }
285 if (base.month % 2 == 0)
286 {
288 }
290 foreach (Thing thing in EClass._map.things)
291 {
292 if (thing.renderer.hasActor)
293 {
294 thing.renderer.RefreshSprite();
295 }
296 }
298 }
void RefreshSprite()
CardRenderer renderer
Definition: Card.cs:64
void OnAdvanceMonth()
Definition: FACTION.cs:387
void AdvanceYear()
Definition: GameDate.cs:300
List< Thing > things
Definition: Map.cs:49
void RefreshAllTiles()
Definition: Map.cs:2154
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 14 of file GameDate.cs.

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

References AdvanceMin().

◆ AdvanceYear()

void GameDate.AdvanceYear ( )
inline

Definition at line 300 of file GameDate.cs.

301 {
302 base.year++;
303 EClass.player.flags.santa = 0;
304 EClass.player.wellWished = false;
306 EClass.world.SendPackage(ThingGen.Create("gift_newyear"));
307 }
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 309 of file GameDate.cs.

310 {
311 Thing container_shipping = EClass.game.cards.container_shipping;
312 if (container_shipping.things.Count == 0)
313 {
314 return;
315 }
316 int num = 0;
317 int num2 = 0;
318 long num3 = 0L;
319 long num4 = 0L;
320 List<Thing> list = new List<Thing>();
321 List<string> list2 = new List<string>();
323 if (zone == null || zone.branch == null)
324 {
325 zone = EClass.pc.homeZone;
326 }
327 ShippingResult shippingResult = new ShippingResult();
328 shippingResult.rawDate = EClass.world.date.GetRaw();
329 shippingResult.uidZone = zone.uid;
331 {
332 EClass.player.stats.shipMoney = 2147483647L;
333 }
334 shippingResult.total = EClass.player.stats.shipMoney;
335 shippingResult.hearthLv = zone.branch.lv;
336 shippingResult.hearthExp = zone.branch.exp;
337 shippingResult.debt = EClass.player.debt;
338 foreach (Thing thing3 in container_shipping.things)
339 {
340 if (thing3.trait.CanBeShipped)
341 {
342 int price = thing3.GetPrice(CurrencyType.Money, sell: true, PriceType.Shipping);
343 long num5 = (long)price * (long)thing3.Num;
344 num3 += num5;
345 num += thing3.Num;
346 num2 += EClass.rndHalf(thing3.Num * Mathf.Min(15 + price, 10000) / 100 + 1);
347 list.Add(thing3);
348 shippingResult.items.Add(new ShippingResult.Item
349 {
350 text = thing3.Name,
351 income = num5
352 });
353 }
354 }
355 if (list.Count == 0)
356 {
357 return;
358 }
359 num2 = num2 / 2 + 1;
360 if (zone.branch.policies.IsActive(2515))
361 {
362 num2 = 0;
363 }
364 shippingResult.hearthExpGained = num2;
365 EClass.pc.homeBranch.log.Add(Msg.Say("shipped_collect"));
366 foreach (string item in list2)
367 {
369 }
371 EClass.player.stats.shipNum += num;
372 EClass.player.stats.shipMoney += num3;
374 if (shippingBonus2 > shippingBonus)
375 {
376 num4 = shippingBonus2 - shippingBonus;
377 }
378 if (num4 > int.MaxValue)
379 {
380 num4 = 2147483647L;
381 }
382 foreach (Thing item2 in list)
383 {
384 item2.Destroy();
385 }
386 Thing thing = null;
387 Thing thing2 = null;
388 string text = "";
389 long num6 = 0L;
390 if (num3 > int.MaxValue)
391 {
392 num6 = num3 - int.MaxValue;
393 num3 = 2147483647L;
394 }
395 if (num3 > 0)
396 {
397 thing = ThingGen.Create("money").SetNum((int)num3);
398 }
399 if (num4 > 0)
400 {
401 thing2 = ThingGen.Create("money2").SetNum((int)num4);
402 }
403 if (thing != null && thing2 != null)
404 {
405 text = "_and".lang(thing.Name, thing2.Name);
406 SE.Pay();
407 }
408 else if (thing != null || thing2 != null)
409 {
410 text = ((thing != null) ? thing : thing2).Name;
411 }
412 EClass.pc.homeBranch.log.Add(Msg.Say((text == "") ? "shipped_none" : "shipped", num.ToString() ?? "", text), FontColor.Good);
413 EClass.player.shippingResults.Add(shippingResult);
414 EClass.player.showShippingResult = EClass.core.config.game.showShippingResult;
415 for (int i = 0; i < EClass.player.shippingResults.Count - 10; i++)
416 {
417 EClass.player.shippingResults.RemoveAt(0);
418 }
419 zone.branch.statistics.ship += num3;
420 zone.branch.ModExp(num2);
421 if (thing != null)
422 {
423 EClass.pc.Pick(thing);
424 }
425 if (thing2 != null)
426 {
427 EClass.pc.Pick(thing2);
428 }
429 while (num6 > 0)
430 {
431 int num7 = 0;
432 if (num6 > int.MaxValue)
433 {
434 num7 = int.MaxValue;
435 num6 -= int.MaxValue;
436 }
437 else
438 {
439 num7 = (int)num6;
440 num6 = 0L;
441 }
442 Thing t = ThingGen.Create("money").SetNum(num7);
444 }
445 }
CurrencyType
Definition: CurrencyType.cs:2
FontColor
Definition: FontColor.cs:2
PriceType
Definition: PriceType.cs:2
Thing container_shipping
Definition: CardManager.cs:52
string Name
Definition: Card.cs:2191
Thing SetNum(int a)
Definition: Card.cs:3673
Point pos
Definition: Card.cs:60
Trait trait
Definition: Card.cs:54
void Destroy()
Definition: Card.cs:5305
ThingContainer things
Definition: Card.cs:39
int Num
Definition: Card.cs:161
void PickOrDrop(Point p, string idThing, int idMat=-1, int num=1, bool msg=true)
Definition: Chara.cs:4545
FactionBranch homeBranch
Definition: Chara.cs:1113
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:4565
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:141
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
override int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Thing.cs:829
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, Thing.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 492 of file GameDate.cs.

493 {
494 int num = -1;
495 int lutz = EClass.player.flags.lutz;
496 if (EClass.player.stats.days >= 2 && lutz <= 0)
497 {
498 num = 1;
499 }
500 else if (EClass.player.stats.days >= 5 && lutz <= 1)
501 {
502 num = 2;
503 }
504 else if (EClass.player.stats.days >= 8 && lutz <= 2)
505 {
506 num = 3;
507 }
508 else if (EClass.player.stats.days >= 11 && lutz <= 3)
509 {
510 num = 4;
511 }
512 else if (EClass.player.stats.days >= 15 && lutz <= 4)
513 {
514 num = 5;
515 }
516 else if (EClass.player.stats.days >= 17 && lutz <= 5)
517 {
518 num = 6;
519 }
520 else if (EClass.player.stats.days >= 30 && lutz <= 6)
521 {
522 num = 7;
523 }
524 else if (EClass.player.stats.days >= 50 && lutz <= 7)
525 {
526 num = 8;
527 }
528 if (num != -1)
529 {
530 EClass.player.flags.lutz = num;
531 Thing thing = ThingGen.Create("letter");
532 thing.SetStr(53, "lutz_" + num);
533 EClass.world.SendPackage(thing);
534 }
535 }
int lutz
Definition: Player.cs:664

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

Referenced by AdvanceHour().

◆ ShipPackages()

void GameDate.ShipPackages ( )
inline

Definition at line 447 of file GameDate.cs.

448 {
449 Thing container_deliver = EClass.game.cards.container_deliver;
450 if (container_deliver.things.Count == 0)
451 {
452 return;
453 }
454 int num = 0;
455 while (container_deliver.things.Count > 0)
456 {
457 num++;
458 if (num > 100)
459 {
460 Debug.Log("too many tries");
461 break;
462 }
463 int uidZone = 0;
464 foreach (Thing thing2 in container_deliver.things)
465 {
466 int @int = thing2.GetInt(102);
467 if (@int != 0)
468 {
469 uidZone = @int;
470 thing2.SetInt(102);
471 break;
472 }
473 }
474 int num2 = 20;
475 Thing thing = ThingGen.CreateCardboardBox(uidZone);
476 for (int num3 = container_deliver.things.Count - 1; num3 >= 0; num3--)
477 {
478 Thing c = container_deliver.things[num3];
479 thing.AddCard(c);
480 num2 += 5;
481 if (thing.things.IsFull())
482 {
483 break;
484 }
485 }
486 EClass.world.SendPackage(thing);
487 Thing bill = ThingGen.CreateBill(num2, tax: false);
489 }
490 }
Thing container_deliver
Definition: CardManager.cs:55
void SetInt(string id, int value=0)
Definition: Card.cs:2586
Card AddCard(Card c)
Definition: Card.cs:3263
int GetInt(string id, int? defaultInt=null)
Definition: Card.cs:2567
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:252

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

Referenced by AdvanceHour().

◆ ShipRandomPackages()

void GameDate.ShipRandomPackages ( )
inline

Definition at line 537 of file GameDate.cs.

538 {
540 TraitContainer traitContainer = box.trait as TraitContainer;
541 bool flag = EClass.pc.homeBranch.policies.IsActive(2708);
542 if (EClass.rnd(EClass.debug.enable ? 1 : 100) == 0 && !EClass.player.flags.statueShipped)
543 {
544 EClass.player.flags.statueShipped = true;
545 Add("statue_weird", 1);
546 flag = false;
547 }
548 else if (EClass.rnd(10) == 0)
549 {
550 Add("234", 1);
551 }
552 else if (EClass.rnd(5) == 0)
553 {
554 AddThing(ThingGen.CreateFromCategory("junk"), 1);
555 }
556 else if (EClass.rnd(10) == 0)
557 {
558 AddThing(ThingGen.CreateFromTag("garbage"), 1);
559 }
560 else if (EClass.rnd(8) == 0)
561 {
562 CardRow cardRow = SpawnList.Get("chara").Select(EClass.pc.LV + 10);
563 traitContainer.PutChara(cardRow.id);
564 flag = false;
565 }
566 else if (EClass.rnd(8) == 0)
567 {
568 Add("plat", 1 + EClass.rnd(4));
569 flag = false;
570 }
571 else if (EClass.rnd(8) == 0)
572 {
573 Add("money2", 1 + EClass.rnd(4));
574 flag = false;
575 }
576 else
577 {
578 string id2 = "trash2";
579 if (EClass.rnd(3) == 0)
580 {
581 id2 = "trash1";
582 }
583 if (EClass.rnd(3) == 0)
584 {
585 id2 = ((EClass.rnd(3) == 0) ? "529" : "1170");
586 }
587 if (EClass.rnd(5) == 0)
588 {
589 id2 = "_poop";
590 }
591 if (EClass.rnd(100) == 0)
592 {
593 id2 = "goodness";
594 flag = false;
595 }
596 Add(id2, 1);
597 }
598 if (!flag)
599 {
601 }
602 void Add(string id, int num)
603 {
604 AddThing(ThingGen.Create(id), num);
605 }
606 void AddThing(Thing t, int num)
607 {
608 t.SetNum(num);
609 box.AddCard(t);
610 }
611 }
string id
Definition: CardRow.cs:7
int LV
Definition: Card.cs:389
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 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

◆ _fieldEffectsToRemove

List<Element> GameDate._fieldEffectsToRemove = new List<Element>()
private

Definition at line 12 of file GameDate.cs.

Referenced by AdvanceMin().

◆ 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: