Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ZoneEventHarvest.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Linq;
3using UnityEngine;
4
6{
7 public QuestHarvest questHarvest => base.quest as QuestHarvest;
8
9 public override string TextWidgetDate => "eventHarvest".lang((TimeLimit - minElapsed <= 30) ? "end_soon".lang() : "", Lang._weight(questHarvest.weightDelivered), Lang._weight(questHarvest.destWeight));
10
11 public override int TimeLimit => 180;
12
13 public override void OnVisit()
14 {
16 {
17 return;
18 }
20 Point centerPos = EClass._map.GetCenterPos();
21 PartialMap.Apply("Special/farm_chest.mp", centerPos);
23 genBounds.marginPartial = 2;
24 genBounds.FuncCheckEmpty = (Cell cell) => cell.sourceFloor.id == 42;
25 List<SourceObj.Row> crops = EClass.sources.objs.rows.Where((SourceObj.Row o) => o.tag.Contains("harvest")).ToList();
26 for (int i = 0; i < 50; i++)
27 {
28 genBounds.TryAddMapPiece(MapPiece.Type.Farm, 0f, "", delegate(PartialMap p, GenBounds b)
29 {
30 List<Point> list = b.ListEmptyPoint();
31 SourceObj.Row row = crops.RandomItemWeighted((SourceObj.Row o) => o.chance);
32 int num = 1 + EClass.rnd(5 + base.quest.difficulty * 2);
33 foreach (Point item in list)
34 {
35 if (item.sourceFloor.id == 4 && EClass.rnd(4) != 0)
36 {
37 item.SetObj(row.id);
38 int num2 = item.growth.HarvestStage - EClass.rnd(4);
39 item.growth.SetStage(num2);
40 if (num2 == item.growth.HarvestStage)
41 {
42 EClass._map.AddPlant(item, null).size = Mathf.Clamp(num + EClass.rnd(2) - EClass.rnd(2), 0, 9) + 1;
43 }
44 item.cell.isClearSnow = true;
45 }
46 }
47 });
48 }
49 foreach (Thing thing in EClass._map.things)
50 {
51 thing.isNPCProperty = true;
52 }
53 for (int j = 0; j < 12; j++)
54 {
56 }
57 for (int k = 0; k < 30; k++)
58 {
60 }
61 }
62
64 {
67 {
68 return ZoneInstance.Status.Fail;
69 }
70 return ZoneInstance.Status.Success;
71 }
72
73 public override void OnLeaveZone()
74 {
76 {
77 EClass._zone.instance.status = OnReachTimeLimit();
78 }
79 List<Thing> list = new List<Thing>();
80 foreach (Chara member in EClass.pc.party.members)
81 {
82 member.things.Foreach(delegate(Thing t)
83 {
84 if (t.GetBool(115) && EClass.rnd(2) != 0)
85 {
86 list.Add(t);
87 }
88 });
89 }
90 if (list.Count <= 0)
91 {
92 return;
93 }
94 Msg.Say("harvest_confiscate", list.Count.ToString() ?? "");
95 foreach (Thing item in list)
96 {
97 item.Destroy();
98 }
100 }
101}
bool GetBool(int id)
Definition: BaseCard.cs:15
ThingContainer things
Definition: Card.cs:34
Definition: Cell.cs:7
Definition: Chara.cs:10
Party party
Definition: Chara.cs:43
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
bool isLoading
Definition: Game.cs:235
static GenBounds Create(Zone z)
Definition: GenBounds.cs:123
List< Point > ListEmptyPoint()
Definition: GenBounds.cs:94
PartialMap TryAddMapPiece(MapPiece.Type type=MapPiece.Type.Any, float ruin=-1f, string tags=null, Action< PartialMap, GenBounds > onCreate=null)
Definition: GenBounds.cs:183
Definition: Lang.cs:6
static string _weight(int a, int b, bool showUnit=true, int unitSize=0)
Definition: Lang.cs:172
Point GetCenterPos()
Definition: MapBounds.cs:52
List< Thing > things
Definition: Map.cs:49
PlantData AddPlant(Point pos, Thing seed)
Definition: Map.cs:1930
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
void Apply(Point _point, ApplyMode mode)
Definition: PartialMap.cs:112
List< Chara > members
Definition: Party.cs:18
int size
Definition: PlantData.cs:15
void ModKarma(int a)
Definition: Player.cs:2289
Definition: Point.cs:9
int weightDelivered
Definition: QuestHarvest.cs:6
SourceObj objs
static SpawnSetting HomeWild(int lv)
Definition: SpawnSetting.cs:91
void Foreach(Action< Thing > action, bool onlyAccessible=true)
Definition: Thing.cs:8
override string TextWidgetDate
override void OnLeaveZone()
QuestHarvest questHarvest
override ZoneInstance.Status OnReachTimeLimit()
override void OnVisit()
override int TimeLimit
int minElapsed
Definition: ZoneEvent.cs:15
Status status
Definition: ZoneInstance.cs:22
void SetBGM(List< int > ids, bool refresh=true)
Definition: Zone.cs:2706
Chara SpawnMob(Point pos=null, SpawnSetting setting=null)
Definition: Zone.cs:2543
ZoneInstance instance
Definition: Zone.cs:52