Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TaskPlow.cs
Go to the documentation of this file.
1using UnityEngine;
2
4{
6
7 public override bool CanPressRepeat => true;
8
9 public override int destDist
10 {
11 get
12 {
13 if (!pos.cell.blocked)
14 {
15 return 0;
16 }
17 return 1;
18 }
19 }
20
21 public override bool CanProgress()
22 {
23 if (base.CanProgress())
24 {
25 return !pos.IsFarmField;
26 }
27 return false;
28 }
29
30 public override void OnCreateProgress(Progress_Custom p)
31 {
32 p.textHint = Name;
33 p.maxProgress = Mathf.Max((15 + EClass.rnd(20)) * 100 / (100 + owner.Tool.material.hardness * 3), 2);
34 p.onProgressBegin = delegate
35 {
36 if (owner.Tool != null)
37 {
38 owner.Say("till_start", owner, owner.Tool);
39 }
40 };
41 p.onProgress = delegate(Progress_Custom _p)
42 {
43 SourceMaterial.Row row = (pos.cell.HasBridge ? pos.cell.matBridge : pos.cell.matFloor);
44 row.PlayHitEffect(pos);
45 row.AddBlood(pos);
48 if (!(pos.HasBridge ? pos.sourceBridge : pos.sourceFloor).tag.Contains("soil"))
49 {
50 owner.Say("till_invalid");
51 _p.Cancel();
52 }
53 };
54 p.onProgressComplete = delegate
55 {
57 Effect.Get("mine").Play(pos).SetParticleColor(pos.cell.HasBridge ? pos.matBridge.GetColor() : pos.matFloor.GetColor())
58 .Emit(10 + EClass.rnd(10));
59 pos.Animate(AnimeID.Dig, animeBlock: true);
60 if (pos.HasBridge)
61 {
62 pos.cell._bridge = 4;
63 }
64 else
65 {
66 pos.SetFloor(pos.matFloor.id, 4);
67 }
68 owner.elements.ModExp(286, 30);
69 owner.stamina.Mod(-1);
70 };
71 }
72
73 public override HitResult GetHitResult()
74 {
76 {
77 return HitResult.Invalid;
78 }
79 return HitResult.Valid;
80 }
81}
AnimeID
Definition: AnimeID.cs:2
HitResult
Definition: HitResult.cs:2
virtual Status Cancel()
Definition: AIAct.cs:291
new Chara owner
Definition: AIAct.cs:14
virtual new string Name
Definition: AIAct.cs:68
virtual void NextFrame()
ElementContainerCard elements
Definition: Card.cs:37
SourceMaterial.Row material
Definition: Card.cs:1927
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Thing Tool
Definition: Card.cs:2270
CardRenderer renderer
Definition: Card.cs:57
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
bool HasBridge
Definition: Cell.cs:671
SourceMaterial.Row matBridge
Definition: Cell.cs:1034
bool IsTopWater
Definition: Cell.cs:700
SourceMaterial.Row matFloor
Definition: Cell.cs:1032
Stats stamina
Definition: Chara.cs:955
static CursorInfo Dig
Definition: CursorSystem.cs:66
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
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)
SourceMaterial.Row matFloor
Definition: Point.cs:57
bool HasBridge
Definition: Point.cs:209
bool IsFarmField
Definition: Point.cs:127
SourceMaterial.Row matBridge
Definition: Point.cs:59
void SetFloor(int idMat=0, int idFloor=0)
Definition: Point.cs:887
SoundSource PlaySound(string id, bool synced=true, float v=1f, bool spatial=true)
Definition: Point.cs:1217
SourceFloor.Row sourceFloor
Definition: Point.cs:65
bool HasObj
Definition: Point.cs:137
Cell cell
Definition: Point.cs:51
void Animate(AnimeID id, bool animeBlock=false)
Definition: Point.cs:1266
SourceFloor.Row sourceBridge
Definition: Point.cs:67
string GetSoundImpact(RenderRow c=null)
void AddBlood(Point p, int a=1)
void PlayHitEffect(Point p, int emit=2)
virtual void Mod(int a)
Definition: Stats.cs:135
override bool CanProgress()
Definition: TaskPlow.cs:21
override HitResult GetHitResult()
Definition: TaskPlow.cs:73
override void OnCreateProgress(Progress_Custom p)
Definition: TaskPlow.cs:30
override int destDist
Definition: TaskPlow.cs:10
override CursorInfo CursorIcon
Definition: TaskPlow.cs:5
override bool CanPressRepeat
Definition: TaskPlow.cs:7
Point pos
Definition: TaskPoint.cs:11