Elin Decompiled Documentation EA 23.270 Nightly Patch 1
Loading...
Searching...
No Matches
TraitShackle.cs
Go to the documentation of this file.
1using UnityEngine;
2
3public class TraitShackle : Trait
4{
5 public virtual Vector3 GetRestrainPos => EClass.setting.render.posShackle;
6
7 public virtual AnimeID animeId => AnimeID.Shiver;
8
9 public override bool CanBeHeld => !IsRestraining();
10
11 public override bool CanBeDisassembled => !IsRestraining();
12
13 public override string LangUse => "ActRestrain";
14
15 public virtual bool AllowTraining => true;
16
17 public override bool CanStackTo(Thing to)
18 {
19 return false;
20 }
21
22 public override bool CanUse(Chara c)
23 {
25 {
26 if (owner.pos.FirstChara != null)
27 {
29 }
30 return true;
31 }
32 return false;
33 }
34
35 public override void TrySetHeldAct(ActPlan p)
36 {
38 {
39 shackle = this
40 }, p.pos.FirstChara);
41 }
42
43 public override bool OnUse(Chara c)
44 {
46 ActRestrain actRestrain = new ActRestrain();
47 actRestrain.shackle = this;
48 actRestrain.Perform(c, c, c.pos);
49 return true;
50 }
51
52 public void Restrain(Card tc, bool msg = false)
53 {
54 tc.isRestrained = true;
55 owner.c_uidRefCard = tc.uid;
56 if (msg)
57 {
58 tc.Say("restrained", tc);
59 }
60 }
61
62 public bool IsRestraining()
63 {
65 {
66 return false;
67 }
68 foreach (Chara chara in owner.pos.Charas)
69 {
70 if (chara.isRestrained && owner.c_uidRefCard == chara.uid)
71 {
72 return true;
73 }
74 }
75 foreach (Chara chara2 in EClass._map.charas)
76 {
77 if (chara2.isChara && chara2.isRestrained && chara2.pos.Equals(owner.pos))
78 {
79 owner.c_uidRefCard = chara2.uid;
80 return true;
81 }
82 }
83 return false;
84 }
85}
AnimeID
Definition: AnimeID.cs:2
Point pos
Definition: ActPlan.cs:152
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:368
override bool Perform()
Definition: ActRestrain.cs:27
Definition: Card.cs:11
bool isRestrained
Definition: Card.cs:567
int c_uidRefCard
Definition: Card.cs:1125
Point pos
Definition: Card.cs:60
int uid
Definition: Card.cs:123
bool IsInstalled
Definition: Card.cs:2384
void MoveImmediate(Point p, bool focus=true, bool cancelAI=true)
Definition: Card.cs:5874
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6991
Definition: Chara.cs:10
override bool isChara
Definition: Chara.cs:688
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static Map _map
Definition: EClass.cs:19
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
static GameSetting setting
Definition: EClass.cs:35
RenderSetting render
Definition: GameSetting.cs:301
List< Chara > charas
Definition: Map.cs:81
bool simulatingZone
Definition: Player.cs:1179
List< Chara > Charas
Definition: Point.cs:340
bool Equals(int _x, int _z)
Definition: Point.cs:960
Chara FirstChara
Definition: Point.cs:288
Definition: Thing.cs:8
virtual Vector3 GetRestrainPos
Definition: TraitShackle.cs:5
override bool CanUse(Chara c)
Definition: TraitShackle.cs:22
virtual AnimeID animeId
Definition: TraitShackle.cs:7
override string LangUse
Definition: TraitShackle.cs:13
override bool CanBeDisassembled
Definition: TraitShackle.cs:11
virtual bool AllowTraining
Definition: TraitShackle.cs:15
override bool CanStackTo(Thing to)
Definition: TraitShackle.cs:17
override bool OnUse(Chara c)
Definition: TraitShackle.cs:43
bool IsRestraining()
Definition: TraitShackle.cs:62
override bool CanBeHeld
Definition: TraitShackle.cs:9
void Restrain(Card tc, bool msg=false)
Definition: TraitShackle.cs:52
override void TrySetHeldAct(ActPlan p)
Definition: TraitShackle.cs:35
Definition: Trait.cs:7
Card owner
Definition: Trait.cs:28
bool IsPCFaction
Definition: Zone.cs:473