Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitTrap.cs
Go to the documentation of this file.
1using UnityEngine;
2
4{
5 public override byte WeightMod
6 {
7 get
8 {
9 if (!owner.isHidden)
10 {
11 return 10;
12 }
13 return 0;
14 }
15 }
16
17 public virtual int DestroyChanceOnActivateTrap => 50;
18
19 public override bool CanBeHeld => EClass._zone.IsPCFaction;
20
21 public override bool StartHidden => true;
22
23 public override bool CanDisarmTrap => !IsJammed;
24
25 public override bool IsNegativeEffect => true;
26
27 public override bool IgnoreWhenLevitating()
28 {
29 if (owner.sourceCard.vals.Length == 0)
30 {
31 return false;
32 }
33 switch (owner.sourceCard.vals[0])
34 {
35 case "spear":
36 case "paralysis":
37 case "acid":
38 case "blind":
39 case "sleep":
40 case "mine":
41 case "banana":
42 return true;
43 default:
44 return false;
45 }
46 }
47
48 public override void OnActivateTrap(Chara c)
49 {
50 if (owner.sourceCard.vals == null || owner.sourceCard.vals.Length == 0)
51 {
52 Debug.Log(owner.id);
53 return;
54 }
55 string text = owner.sourceCard.vals[0];
56 c.PlaySound("trap");
57 c.Say("trap", c, owner);
58 if (text == "mine")
59 {
60 Msg.Say("trap_mine", c);
61 }
62 else
63 {
64 c.Say("trap_" + text, c);
65 }
66 switch (text)
67 {
68 case "sister":
69 foreach (Chara chara in EClass._map.charas)
70 {
71 chara.RemoveCondition<ConSuspend>();
72 }
73 break;
74 case "acid":
75 c.PlayEffect("Element/eleAcid");
76 ActEffect.Proc(EffectId.Acid, c);
77 break;
78 case "teleport":
79 ActEffect.Proc(EffectId.Teleport, c);
80 break;
81 case "curse":
82 ActEffect.Proc(EffectId.CurseEQ, c);
83 break;
84 case "sleep":
85 ActEffect.Proc(EffectId.Sleep, c);
86 break;
87 case "spear":
88 if (c.IsLevitating)
89 {
90 c.Say("trap_spear_nullify", c);
91 }
92 else
93 {
94 c.DamageHP(base.TrapLv * 2 + 10, AttackSource.Trap);
95 }
96 break;
97 case "blind":
98 ActEffect.Proc(EffectId.Blind, c);
99 break;
100 case "paralysis":
101 ActEffect.Proc(EffectId.Paralyze, c);
102 break;
103 case "mine":
104 {
105 c.PlayEffect("explosion");
106 c.PlaySound("explosion");
107 int num = (EClass.debug.enable ? 100000 : 50) + base.TrapLv * 2 + EClass.rnd(150);
108 if (IsLaidByDog)
109 {
110 num = num * 3 / 2;
111 }
112 c.DamageHP(num, AttackSource.Trap);
114 break;
115 }
116 case "banana":
117 c.Stumble(150);
118 break;
119 }
121 {
122 owner.Destroy();
123 }
124 }
125
126 public override void SetName(ref string s)
127 {
128 if (IsJammed)
129 {
130 s = "_jammed".lang(s);
131 }
132 }
133}
AttackSource
Definition: AttackSource.cs:2
EffectId
Definition: EffectId.cs:2
static void Proc(EffectId id, Card cc, Card tc=null, int power=100, ActRef actRef=default(ActRef))
Definition: ActEffect.cs:788
string[] vals
Definition: CardRow.cs:37
string id
Definition: Card.cs:31
void DamageHP(int dmg, AttackSource attackSource=AttackSource.None, Card origin=null)
Definition: Card.cs:3735
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
Definition: Card.cs:5438
void Destroy()
Definition: Card.cs:4538
bool isHidden
Definition: Card.cs:502
virtual CardRow sourceCard
Definition: Card.cs:2007
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Definition: Chara.cs:10
bool IsLevitating
Definition: Chara.cs:582
void Stumble(int mtp=100)
Definition: Chara.cs:1588
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
List< Chara > charas
Definition: Map.cs:81
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Definition: Shaker.cs:5
static void ShakeCam(string id="default", float magnitude=1f)
Definition: Shaker.cs:25
virtual bool IsLaidByDog
Definition: TraitSwitch.cs:17
virtual bool IsJammed
Definition: TraitSwitch.cs:15
virtual int DestroyChanceOnActivateTrap
Definition: TraitTrap.cs:17
override bool IgnoreWhenLevitating()
Definition: TraitTrap.cs:27
override void SetName(ref string s)
Definition: TraitTrap.cs:126
override bool CanBeHeld
Definition: TraitTrap.cs:19
override bool IsNegativeEffect
Definition: TraitTrap.cs:25
override byte WeightMod
Definition: TraitTrap.cs:6
override bool CanDisarmTrap
Definition: TraitTrap.cs:23
override bool StartHidden
Definition: TraitTrap.cs:21
override void OnActivateTrap(Chara c)
Definition: TraitTrap.cs:48
Card owner
Definition: Trait.cs:26
bool IsPCFaction
Definition: Zone.cs:464