Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TaskDrawWater.cs
Go to the documentation of this file.
2{
4
5 public override int destDist => 1;
6
7 public override bool CanPressRepeat => true;
8
9 public override bool Loop
10 {
11 get
12 {
13 if (CanProgress())
14 {
16 }
17 return false;
18 }
19 }
20
22
23 public override bool CanProgress()
24 {
25 if (base.CanProgress() && pos.cell.IsTopWater && pot.owner.c_charges < pot.MaxCharge)
26 {
27 return owner.Tool == pot.owner;
28 }
29 return false;
30 }
31
32 public override bool CanManualCancel()
33 {
34 return true;
35 }
36
37 public override void OnCreateProgress(Progress_Custom p)
38 {
39 p.textHint = Name;
40 p.maxProgress = 6;
41 p.onProgressBegin = delegate
42 {
43 if (owner.Tool != null)
44 {
45 owner.Say("drawWater_start", owner, owner.Tool);
46 }
47 };
48 p.onProgress = delegate
49 {
50 SourceMaterial.Row row2 = (pos.cell.HasBridge ? pos.cell.matBridge : pos.cell.matFloor);
51 row2.PlayHitEffect(pos);
53 };
54 p.onProgressComplete = delegate
55 {
56 Effect.Get("mine").Play(pos).SetParticleColor(pos.cell.HasBridge ? pos.matBridge.GetColor() : pos.matFloor.GetColor())
57 .Emit(10 + EClass.rnd(10));
58 pos.Animate(AnimeID.Dig, animeBlock: true);
59 owner.PlaySound("water");
61 switch ((pos.HasBridge ? pos.sourceBridge : pos.sourceFloor).alias)
62 {
63 case "floor_water_shallow":
64 ChangeFloor("floor_water_shallow2");
65 break;
66 case "floor_water":
67 ChangeFloor("floor_water_shallow");
68 break;
69 case "floor_water_deep":
70 ChangeFloor("floor_water");
71 break;
72 default:
73 ChangeFloor("floor_raw3");
74 break;
75 }
77 owner.elements.ModExp(286, 5);
78 if (EClass.rnd(3) == 0)
79 {
80 owner.stamina.Mod(-1);
81 }
82 };
83 void ChangeFloor(string id)
84 {
86 if (pos.HasBridge)
87 {
88 pos.cell._bridge = (byte)row.id;
89 if (id == "floor_raw3")
90 {
91 pos.cell._bridgeMat = 45;
92 }
93 }
94 else
95 {
96 pos.cell._floor = (byte)row.id;
97 if (id == "floor_raw3")
98 {
99 pos.cell._floorMat = 45;
100 }
101 }
104 }
105 }
106
107 public override HitResult GetHitResult()
108 {
110 {
111 return HitResult.Invalid;
112 }
113 return HitResult.Valid;
114 }
115}
AnimeID
Definition: AnimeID.cs:2
HitResult
Definition: HitResult.cs:2
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
new Chara owner
Definition: AIAct.cs:14
virtual new string Name
Definition: AIAct.cs:68
ElementContainerCard elements
Definition: Card.cs:37
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Thing Tool
Definition: Card.cs:2270
void Dye(string idMat)
Definition: Card.cs:5267
void ModCharge(int a, bool destroy=false)
Definition: Card.cs:3627
int c_charges
Definition: Card.cs:1205
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
bool HasBridge
Definition: Cell.cs:671
bool IsTopWater
Definition: Cell.cs:700
SourceMaterial.Row matFloor
Definition: Cell.cs:1032
bool HasFullBlock
Definition: Cell.cs:817
bool HasCondition(string alias)
Definition: Chara.cs:8568
Stats stamina
Definition: Chara.cs:955
static CursorInfo Hand
Definition: CursorSystem.cs:60
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
Definition: Effect.cs:7
static Effect Get(Effect original)
Definition: Effect.cs:85
void Play(float delay, Point from, float fixY=0f, Point to=null, Sprite sprite=null)
Definition: Effect.cs:100
void ModExp(int ele, int a, bool chain=false)
int id
Definition: ELEMENT.cs:240
void SetLiquid(int x, int z, CellEffect effect=null)
Definition: Map.cs:1464
SourceMaterial.Row matFloor
Definition: Point.cs:57
bool HasBridge
Definition: Point.cs:209
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
SourceMaterial.Row matBridge
Definition: Point.cs:59
SourceFloor.Row sourceFloor
Definition: Point.cs:65
bool HasObj
Definition: Point.cs:137
void RefreshNeighborTiles()
Definition: Point.cs:1240
Cell cell
Definition: Point.cs:51
void Animate(AnimeID id, bool animeBlock=false)
Definition: Point.cs:1266
SourceFloor.Row sourceBridge
Definition: Point.cs:67
SourceFloor floors
string GetSoundImpact(RenderRow c=null)
void PlayHitEffect(Point p, int emit=2)
virtual void Mod(int a)
Definition: Stats.cs:135
override CursorInfo CursorIcon
override bool CanManualCancel()
override bool CanPressRepeat
Definition: TaskDrawWater.cs:7
override bool Loop
override void OnCreateProgress(Progress_Custom p)
TraitToolWaterPot pot
Definition: TaskDrawWater.cs:3
override HitResult GetHitResult()
override int destDist
Definition: TaskDrawWater.cs:5
override bool CanProgress()
Point pos
Definition: TaskPoint.cs:11
int id
Definition: TileRow.cs:8
Card owner
Definition: Trait.cs:26