Elin Modding Docs Doc
Loading...
Searching...
No Matches
ActRush.cs
1using System;
2
3// Token: 0x020001BF RID: 447
4public class ActRush : ActMelee
5{
6 // Token: 0x17000333 RID: 819
7 // (get) Token: 0x06000CEE RID: 3310 RVA: 0x00065AE1 File Offset: 0x00063CE1
8 public override bool ShowMapHighlight
9 {
10 get
11 {
12 return true;
13 }
14 }
15
16 // Token: 0x06000CEF RID: 3311 RVA: 0x00065AE4 File Offset: 0x00063CE4
17 public override void OnMarkMapHighlights()
18 {
19 if (!EClass.scene.mouseTarget.pos.IsValid || EClass.scene.mouseTarget.TargetChara == null)
20 {
21 return;
22 }
23 Point dest = EClass.scene.mouseTarget.pos;
24 Los.IsVisible(EClass.pc.pos, dest, delegate(Point p, bool blocked)
25 {
26 if (p.Equals(EClass.pc.pos))
27 {
28 return;
29 }
30 p.cell.highlight = ((blocked || p.IsBlocked || (!p.Equals(dest) && p.HasChara)) ? 4 : ((p.Distance(EClass.pc.pos) <= 2) ? 2 : 8));
31 EClass.player.lastMarkedHighlights.Add(p.Copy());
32 });
33 }
34
35 // Token: 0x06000CF0 RID: 3312 RVA: 0x00065B58 File Offset: 0x00063D58
36 public override bool CanPerform()
37 {
38 bool flag = Act.CC.IsPC && !(Act.CC.ai is GoalAutoCombat);
39 if (flag)
40 {
41 Act.TC = EClass.scene.mouseTarget.TargetChara;
42 }
43 if (Act.TC == null)
44 {
45 return false;
46 }
47 Act.TP.Set(flag ? EClass.scene.mouseTarget.pos : Act.TC.pos);
48 return !Act.CC.isRestrained && Act.CC.host == null && Act.CC.Dist(Act.TP) > 2 && Los.GetRushPoint(Act.CC.pos, Act.TP) != null && base.CanPerform();
49 }
50
51 // Token: 0x17000334 RID: 820
52 // (get) Token: 0x06000CF1 RID: 3313 RVA: 0x00065C1F File Offset: 0x00063E1F
53 public override int PerformDistance
54 {
55 get
56 {
57 return 6;
58 }
59 }
60
61 // Token: 0x06000CF2 RID: 3314 RVA: 0x00065C24 File Offset: 0x00063E24
62 public override bool Perform()
63 {
64 bool flag = Act.CC.IsPC && !(Act.CC.ai is GoalAutoCombat);
65 if (flag)
66 {
67 Act.TC = EClass.scene.mouseTarget.TargetChara;
68 }
69 if (Act.TC == null)
70 {
71 return false;
72 }
73 Act.TP.Set(flag ? EClass.scene.mouseTarget.pos : Act.TC.pos);
74 int num = Act.CC.Dist(Act.TP);
75 Point rushPoint = Los.GetRushPoint(Act.CC.pos, Act.TP);
76 Act.CC.pos.PlayEffect("vanish");
77 Act.CC.MoveImmediate(rushPoint, true, false);
78 Act.CC.Say("rush", Act.CC, Act.TC, null, null);
79 Act.CC.PlaySound("rush", 1f, true);
80 Act.CC.pos.PlayEffect("vanish");
81 return base.Attack(1f + 0.1f * (float)num, true);
82 }
83}
Definition Act.2.cs:7
Definition Los.cs:6
Definition Point.cs:11