Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitTicketFurniture.cs
1using System;
2using UnityEngine;
3
4// Token: 0x02000429 RID: 1065
6{
7 // Token: 0x17000965 RID: 2405
8 // (get) Token: 0x06001E2D RID: 7725 RVA: 0x000AE29E File Offset: 0x000AC49E
9 // (set) Token: 0x06001E2E RID: 7726 RVA: 0x000AE2B0 File Offset: 0x000AC4B0
10 public Zone zone
11 {
12 get
13 {
14 return RefZone.Get(this.owner.refVal);
15 }
16 set
17 {
18 this.owner.refVal = ((value != null) ? value.uid : 0);
19 }
20 }
21
22 // Token: 0x17000966 RID: 2406
23 // (get) Token: 0x06001E2F RID: 7727 RVA: 0x000AE2C9 File Offset: 0x000AC4C9
24 public override bool IsTool
25 {
26 get
27 {
28 return true;
29 }
30 }
31
32 // Token: 0x06001E30 RID: 7728 RVA: 0x000AE2CC File Offset: 0x000AC4CC
33 public override void TrySetHeldAct(ActPlan p)
34 {
35 if (EClass._zone.GetTopZone() != this.zone)
36 {
37 return;
38 }
39 p.pos.Things.ForEach(delegate(Thing t)
40 {
41 if (!t.IsInstalled || !t.isNPCProperty || !t.trait.CanBeHeld || t.trait.IsDoor || t.isMasked || t.source.value == 0)
42 {
43 return;
44 }
45 if (!(EClass._zone is Zone_LittleGarden) && !t.trait.CanBeDestroyed)
46 {
47 return;
48 }
49 int price = this.GetPrice(t) * t.Num;
50 p.TrySetAct("actCollectFurniture".lang(price.ToString() ?? "", t.Name, null, null, null) + ((t.category.ticket >= 10) ? "ticketNotIntended".lang() : ""), delegate()
51 {
52 if (this.owner.Num < price)
53 {
54 Msg.Say("notEnoughTicket");
55 return false;
56 }
57 SE.Pay();
58 this.owner.ModNum(-price, true);
59 t.isNPCProperty = false;
60 if (t.trait is TraitPillow)
61 {
62 t.noSell = true;
63 }
64 EClass.pc.Pick(t, true, true);
65 return false;
66 }, null, 1);
67 });
68 }
69
70 // Token: 0x06001E31 RID: 7729 RVA: 0x000AE324 File Offset: 0x000AC524
71 public int GetPrice(Thing t)
72 {
73 int num = (t.GetPrice(CurrencyType.Money, false, PriceType.Default, null) / 500 + 1) * t.category.ticket;
74 if (EClass._zone is Zone_LittleGarden)
75 {
76 if (num >= 10)
77 {
78 num = 10;
79 }
80 num = Mathf.Max(num + EClass.player.little_dead - EClass.player.little_saved / 5, num);
81 }
82 return num;
83 }
84
85 // Token: 0x06001E32 RID: 7730 RVA: 0x000AE385 File Offset: 0x000AC585
86 public override void SetName(ref string s)
87 {
88 if (this.zone != null)
89 {
90 s = "_of".lang(this.zone.Name, s, null, null, null);
91 }
92 }
93
94 // Token: 0x06001E33 RID: 7731 RVA: 0x000AE3AC File Offset: 0x000AC5AC
95 public static void SetZone(Zone zone, Thing t)
96 {
97 int num = 0;
98 if (zone != null)
99 {
100 if (zone.IsTown || zone is Zone_LittleGarden)
101 {
102 num = zone.GetTopZone().uid;
103 }
104 if (zone.IsPCFaction)
105 {
106 num = EClass.game.spatials.Find("mysilia").uid;
107 }
108 }
109 if (num == 0)
110 {
111 num = EClass.game.spatials.Find("palmia").uid;
112 }
113 t.refVal = num;
114 }
115}
Definition Msg.cs:7
Definition Thing.cs:10
Definition Trait.cs:9
Definition Zone.cs:14