Elin Decompiled Documentation EA 23.130 Nightly
Loading...
Searching...
No Matches
TraitSalesTag.cs
Go to the documentation of this file.
1public class TraitSalesTag : Trait
2{
3 public override bool CanBeDestroyed => false;
4
5 public override bool IsTool => !owner.isOn;
6
7 public override bool UseAltTiles => owner.isOn;
8
9 public static bool CanTagSale(Card t, bool insideContainer = false)
10 {
11 if (t.isSale)
12 {
13 return false;
14 }
15 if (t.isChara)
16 {
17 Chara chara = t.Chara;
18 if (chara.trait is TraitUniqueChara || chara.IsUnique || EClass.game.cards.listAdv.Contains(chara))
19 {
20 return false;
21 }
22 if (!chara.IsPCFaction || chara.IsPCParty)
23 {
24 return false;
25 }
26 }
27 else
28 {
29 if (!insideContainer && !t.IsInstalled)
30 {
31 return false;
32 }
34 {
35 return false;
36 }
37 if (t.trait is TraitMannequin)
38 {
39 return false;
40 }
41 }
42 if (t.GetPrice(CurrencyType.Money, sell: true, PriceType.PlayerShop) == 0)
43 {
44 return false;
45 }
46 return true;
47 }
48
49 public override void TrySetHeldAct(ActPlan p)
50 {
52 {
53 return;
54 }
55 p.pos.ListCards().ForEach(delegate(Card t)
56 {
57 if (t.trait is TraitSalesTag && t.isOn)
58 {
59 p.TrySetAct("actRemove", delegate
60 {
61 t.Destroy();
62 SE.Trash();
63 return false;
64 }, t);
65 }
66 if (t.isSale)
67 {
68 p.TrySetAct("actRemoveSalesTag".lang(t.Name), delegate
69 {
70 SE.Play("paper");
71 t.SetSale(sale: false);
72 return false;
73 });
74 }
75 else if (CanTagSale(t))
76 {
77 int price = t.GetPrice(CurrencyType.Money, sell: true, PriceType.PlayerShop);
78 p.TrySetAct("actSalesTag".lang(Lang._currency(price, "money"), t.Name), delegate
79 {
80 SE.Play("paper");
81 t.SetSale(sale: true);
82 return false;
83 });
84 }
85 });
86 }
87
88 public override bool CanStackTo(Thing to)
89 {
90 return false;
91 }
92}
CurrencyType
Definition: CurrencyType.cs:2
PriceType
Definition: PriceType.cs:2
Point pos
Definition: ActPlan.cs:150
bool TrySetAct(string lang, Func< bool > onPerform, Card tc, CursorInfo cursor=null, int dist=1, bool isHostileAct=false, bool localAct=true, bool canRepeat=false)
Definition: ActPlan.cs:345
List< Chara > listAdv
Definition: CardManager.cs:64
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:1970
bool isMasked
Definition: Card.cs:562
bool IsUnique
Definition: Card.cs:1991
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Card.cs:6676
bool isSale
Definition: Card.cs:838
string Name
Definition: Card.cs:2037
Trait trait
Definition: Card.cs:49
bool IsInstalled
Definition: Card.cs:2281
virtual bool isChara
Definition: Card.cs:1983
bool isOn
Definition: Card.cs:514
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:493
override bool IsPCParty
Definition: Chara.cs:605
override bool IsPCFaction
Definition: Chara.cs:661
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Zone _zone
Definition: EClass.cs:20
CardManager cards
Definition: Game.cs:155
Definition: Lang.cs:6
static string _currency(object a, string IDCurrency)
Definition: Lang.cs:162
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1027
Definition: Thing.cs:8
override bool CanBeDestroyed
Definition: TraitSalesTag.cs:3
override bool IsTool
Definition: TraitSalesTag.cs:5
override bool CanStackTo(Thing to)
static bool CanTagSale(Card t, bool insideContainer=false)
Definition: TraitSalesTag.cs:9
override bool UseAltTiles
Definition: TraitSalesTag.cs:7
override void TrySetHeldAct(ActPlan p)
Definition: Trait.cs:7
virtual bool CanBeDestroyed
Definition: Trait.cs:289
virtual bool CanBeHeld
Definition: Trait.cs:273
virtual bool CanBeShipped
Definition: Trait.cs:312
Card owner
Definition: Trait.cs:26
bool IsPCFaction
Definition: Zone.cs:464