Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitBoat.cs
Go to the documentation of this file.
1using System;
2
3public class TraitBoat : Trait
4{
5 public override bool CanBeDestroyed => false;
6
7 public override bool IsFloating => true;
8
9 public override bool IsGround => true;
10
11 public override void OnChangePlaceState(PlaceState state)
12 {
13 if (state == PlaceState.installed)
14 {
15 ForeachDeck(delegate(Point p)
16 {
17 p.SetFloor(1, 57);
18 p.cell.floorDir = ((owner.dir % 2 != 0) ? 1 : 0);
19 });
20 }
21 }
22
23 public override void OnRemovedFromZone()
24 {
25 if (owner.placeState == PlaceState.installed)
26 {
28 ForeachDeck(delegate(Point p)
29 {
30 p.SetFloor(mat.id, 43);
31 });
32 }
33 }
34
35 public void ForeachDeck(Action<Point> action)
36 {
37 int num = 1 + ((owner.dir % 2 == 1 && owner.id != "boat3") ? 1 : 0);
38 int num2 = 1 + ((owner.dir % 2 == 0 && owner.id != "boat3") ? 1 : 0);
39 int x = owner.pos.x - owner.W + num;
40 int z = owner.pos.z + num2;
41 int mx = owner.pos.x - num;
42 int mz = owner.pos.z + owner.H - num2;
43 owner.pos.ForeachMultiSize(owner.W, owner.H, delegate(Point p, bool main)
44 {
45 if (p.x > x && p.z >= z && p.x <= mx && p.z < mz)
46 {
47 action(p);
48 }
49 });
50 }
51
53 {
54 int mat = 67;
55 owner.ForeachPoint(delegate(Point p, bool main)
56 {
57 if (p.cell.IsFloorWater)
58 {
59 mat = p.matFloor.id;
60 }
61 });
62 return EClass.sources.materials.rows[mat];
63 }
64}
PlaceState
Definition: PlaceState.cs:2
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:6942
PlaceState placeState
Definition: Card.cs:79
Point pos
Definition: Card.cs:55
int H
Definition: Card.cs:2226
int W
Definition: Card.cs:2214
bool IsFloorWater
Definition: Cell.cs:727
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
Definition: Point.cs:9
void ForeachMultiSize(int w, int h, Action< Point, bool > action)
Definition: Point.cs:1349
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
void SetFloor(int idMat=0, int idFloor=0)
Definition: Point.cs:887
Cell cell
Definition: Point.cs:51
SourceMaterial materials
override bool IsGround
Definition: TraitBoat.cs:9
override bool IsFloating
Definition: TraitBoat.cs:7
override bool CanBeDestroyed
Definition: TraitBoat.cs:5
void ForeachDeck(Action< Point > action)
Definition: TraitBoat.cs:35
override void OnChangePlaceState(PlaceState state)
Definition: TraitBoat.cs:11
override void OnRemovedFromZone()
Definition: TraitBoat.cs:23
SourceMaterial.Row GetWaterMat()
Definition: TraitBoat.cs:52
Definition: Trait.cs:7
Card owner
Definition: Trait.cs:26