Elin Decompiled Documentation EA 23.102 Nightly
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 string LangUse => "ActRestrain";
12
13 public virtual bool AllowTraining => true;
14
15 public override bool CanStackTo(Thing to)
16 {
17 return false;
18 }
19
20 public override bool CanUse(Chara c)
21 {
23 {
24 if (owner.pos.FirstChara != null)
25 {
27 }
28 return true;
29 }
30 return false;
31 }
32
33 public override void TrySetHeldAct(ActPlan p)
34 {
36 {
37 shackle = this
38 }, p.pos.FirstChara);
39 }
40
41 public override bool OnUse(Chara c)
42 {
44 ActRestrain actRestrain = new ActRestrain();
45 actRestrain.shackle = this;
46 actRestrain.Perform(c, c, c.pos);
47 return true;
48 }
49
50 public void Restrain(Card tc, bool msg = false)
51 {
52 tc.isRestrained = true;
53 owner.c_uidRefCard = tc.uid;
54 if (msg)
55 {
56 tc.Say("restrained", tc);
57 }
58 }
59
60 public bool IsRestraining()
61 {
63 {
64 return false;
65 }
66 foreach (Chara chara in owner.pos.Charas)
67 {
68 if (chara.isRestrained && owner.c_uidRefCard == chara.uid)
69 {
70 return true;
71 }
72 }
73 foreach (Chara chara2 in EClass._map.charas)
74 {
75 if (chara2.isChara && chara2.isRestrained && chara2.pos.Equals(owner.pos))
76 {
77 owner.c_uidRefCard = chara2.uid;
78 return true;
79 }
80 }
81 return false;
82 }
83}
AnimeID
Definition: AnimeID.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
override bool Perform()
Definition: ActRestrain.cs:27
Definition: Card.cs:11
bool isRestrained
Definition: Card.cs:538
int c_uidRefCard
Definition: Card.cs:1084
Point pos
Definition: Card.cs:55
int uid
Definition: Card.cs:118
bool IsInstalled
Definition: Card.cs:2241
void MoveImmediate(Point p, bool focus=true, bool cancelAI=true)
Definition: Card.cs:5127
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Definition: Chara.cs:10
override bool isChara
Definition: Chara.cs:671
Definition: EClass.cs:5
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static GameSetting setting
Definition: EClass.cs:34
RenderSetting render
Definition: GameSetting.cs:301
List< Chara > charas
Definition: Map.cs:81
bool simulatingZone
Definition: Player.cs:980
List< Chara > Charas
Definition: Point.cs:316
bool Equals(int _x, int _z)
Definition: Point.cs:924
Chara FirstChara
Definition: Point.cs:264
Definition: Thing.cs:8
virtual Vector3 GetRestrainPos
Definition: TraitShackle.cs:5
override bool CanUse(Chara c)
Definition: TraitShackle.cs:20
virtual AnimeID animeId
Definition: TraitShackle.cs:7
override string LangUse
Definition: TraitShackle.cs:11
virtual bool AllowTraining
Definition: TraitShackle.cs:13
override bool CanStackTo(Thing to)
Definition: TraitShackle.cs:15
override bool OnUse(Chara c)
Definition: TraitShackle.cs:41
bool IsRestraining()
Definition: TraitShackle.cs:60
override bool CanBeHeld
Definition: TraitShackle.cs:9
void Restrain(Card tc, bool msg=false)
Definition: TraitShackle.cs:50
override void TrySetHeldAct(ActPlan p)
Definition: TraitShackle.cs:33
Definition: Trait.cs:7
Card owner
Definition: Trait.cs:26
bool IsPCFaction
Definition: Zone.cs:464