Elin Decompiled Documentation EA 23.102 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 }
38 if (t.GetPrice(CurrencyType.Money, sell: true, PriceType.PlayerShop) == 0)
39 {
40 return false;
41 }
42 return true;
43 }
44
45 public override void TrySetHeldAct(ActPlan p)
46 {
48 {
49 return;
50 }
51 p.pos.ListCards().ForEach(delegate(Card t)
52 {
53 if (t.trait is TraitSalesTag && t.isOn)
54 {
55 p.TrySetAct("actRemove", delegate
56 {
57 t.Destroy();
58 SE.Trash();
59 return false;
60 }, t);
61 }
62 if (t.isSale)
63 {
64 p.TrySetAct("actRemoveSalesTag".lang(t.Name), delegate
65 {
66 SE.Play("paper");
67 t.SetSale(sale: false);
68 return false;
69 });
70 }
71 else if (CanTagSale(t))
72 {
73 int price = t.GetPrice(CurrencyType.Money, sell: true, PriceType.PlayerShop);
74 p.TrySetAct("actSalesTag".lang(Lang._currency(price, "money"), t.Name), delegate
75 {
76 SE.Play("paper");
77 t.SetSale(sale: true);
78 return false;
79 });
80 }
81 });
82 }
83
84 public override bool CanStackTo(Thing to)
85 {
86 return false;
87 }
88}
CurrencyType
Definition: CurrencyType.cs:2
PriceType
Definition: PriceType.cs:2
Point pos
Definition: ActPlan.cs:149
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:344
List< Chara > listAdv
Definition: CardManager.cs:64
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:1946
bool isMasked
Definition: Card.cs:562
bool IsUnique
Definition: Card.cs:1967
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
Definition: Card.cs:6449
bool isSale
Definition: Card.cs:838
string Name
Definition: Card.cs:2013
Trait trait
Definition: Card.cs:49
bool IsInstalled
Definition: Card.cs:2241
virtual bool isChara
Definition: Card.cs:1959
bool isOn
Definition: Card.cs:514
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:488
override bool IsPCParty
Definition: Chara.cs:600
override bool IsPCFaction
Definition: Chara.cs:656
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:1015
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:285
virtual bool CanBeHeld
Definition: Trait.cs:269
virtual bool CanBeShipped
Definition: Trait.cs:306
Card owner
Definition: Trait.cs:26
bool IsPCFaction
Definition: Zone.cs:464