Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TaskBuild Class Reference
Inheritance diagram for TaskBuild:
TaskBaseBuild TaskDesignation TaskPoint ISyncScreen Task IInspect AIAct Act Element EClass

Public Member Functions

override bool CanManualCancel ()
 
bool CanRotateBlock ()
 
override string GetText (string str="")
 
override bool _CanPerformTask (Chara chara, int radius)
 
override void OnAdd ()
 
override HitResult GetHitResult ()
 
HitResult _GetHitResult (Point p)
 
override void OnProgressComplete ()
 
override void OnDestroy ()
 
override void DrawMarker (int x, int z, RenderParam p)
 
- Public Member Functions inherited from TaskBaseBuild
bool CanPlaceCard (Point pos, Card c)
 
- Public Member Functions inherited from TaskDesignation
virtual string GetTextOrbit ()
 
bool PointHasOtherDesignation ()
 
virtual void DrawMarker (int x, int z, RenderParam p)
 
virtual void Draw (int x, int z, RenderParam p)
 
virtual void OnEnterScreen ()
 
virtual void OnLeaveScreen ()
 
virtual void TrySpawnOrbit ()
 
void DespawnOrbit ()
 
- Public Member Functions inherited from TaskPoint
override bool CanManualCancel ()
 
override bool CanPerform ()
 
override bool _CanPerformTask (Chara chara, int radius)
 
override IEnumerable< StatusRun ()
 
void OnInspect ()
 
void WriteNote (UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
 
- Public Member Functions inherited from Task
virtual HitResult GetHitResult ()
 
override void OnSuccess ()
 
void TryLater (int min=30)
 
Status Destroy ()
 
virtual void OnDestroy ()
 
override Status Cancel ()
 
override void OnReset ()
 
override bool CanProgress ()
 
bool CanPerformTask (Chara chara, int radius)
 
virtual bool _CanPerformTask (Chara chara, int radius)
 
virtual void OnAdd ()
 
void ToggleSuspend ()
 
- Public Member Functions inherited from AIAct
override string ToString ()
 
override MultiSprite GetStateIcon ()
 
virtual bool ShouldAllyAttack (Chara tg)
 
virtual Point GetDestination ()
 
AIProgress GetProgress ()
 
string GetCurrentActionText ()
 
override bool IsToolValid ()
 
virtual void OnStart ()
 
void SetOwner (Chara c)
 
virtual void OnSetOwner ()
 
void SetChild (AIAct seq, Func< Status > _onChildFail=null)
 
void Start ()
 
override bool Perform ()
 
Status Restart ()
 
Status Success (Action action=null)
 
virtual void OnSuccess ()
 
bool TryCancel (Card c)
 
virtual Status Cancel ()
 
virtual void OnCancel ()
 
virtual void OnCancelOrSuccess ()
 
virtual bool CanManualCancel ()
 
Status KeepRunning ()
 
void Reset ()
 
virtual void OnReset ()
 
Status Tick ()
 
virtual IEnumerable< StatusRun ()
 
Status TickChild ()
 
Status Do (AIAct _seq, Func< Status > _onChildFail=null)
 
Status DoGotoInteraction (Point pos, Func< Status > _onChildFail=null)
 
Status DoGoto (Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
 
Status DoGoto (Card card, Func< Status > _onChildFail=null)
 
Status DoGoto (Card card, int dist, Func< Status > _onChildFail=null)
 
Status DoGotoSpot (Card card, Func< Status > _onChildFail=null)
 
Status DoGoto< T > (Func< Status > _onChildFail=null)
 
Status DoGotoSpot< T > (Func< Status > _onChildFail=null, bool ignoreAccessType=false)
 
Status DoGrab (Card card, int num=-1, bool pickHeld=false, Func< Status > _onChildFail=null)
 
Status DoGrab< T > ()
 
Status DoProgress ()
 
Status DoIdle (int repeat=3)
 
Status DoWait (int count=1)
 
virtual AIProgress CreateProgress ()
 
virtual void OnCreateProgress (Progress_Custom p)
 
virtual bool CanProgress ()
 
virtual void OnBeforeProgress ()
 
virtual void OnProgress ()
 
virtual void OnProgressComplete ()
 
void SimulateZone (int days)
 
virtual void OnSimulateZone (int days)
 
virtual void OnSimulatePosition ()
 
- Public Member Functions inherited from Act
virtual CursorInfo GetCursorIcon (Card c)
 
virtual MultiSprite GetStateIcon ()
 
override Sprite GetSprite ()
 
virtual bool ShowMouseHint (Card c)
 
virtual bool IsValidTC (Card c)
 
virtual string GetHintText (string str="")
 
virtual string GetText (string str="")
 
virtual string GetTextSmall (Card c)
 
bool IsTargetHostileParty ()
 
virtual Color GetActPlanColor ()
 
virtual bool Perform ()
 
virtual bool CanPerform ()
 
bool Perform (Chara _cc, Card _tc=null, Point _tp=null)
 
bool CanPerform (Chara _cc, Card _tc=null, Point _tp=null)
 
virtual bool IsToolValid ()
 
new void SetImage (Image image)
 
virtual void OnMarkMapHighlights ()
 
virtual bool ShouldMapHighlight (Point p)
 
- Public Member Functions inherited from Element
virtual SourceElement.Row GetSource ()
 
virtual int GetSourcePotential (int v)
 
virtual Sprite GetSprite ()
 
int GetMaterialSourceValue (Thing t, int v)
 
virtual int GetSourceValue (int v, int lv, SourceValueType type)
 
virtual Sprite GetIcon (string suffix="")
 
bool IsActive (Card c)
 
int SortVal (bool charaSheet=false)
 
virtual bool CanLink (ElementContainer owner)
 
bool HasTag (string tag)
 
void SetImage (Image i)
 
virtual string GetDetail ()
 
bool IsFactionElement (Chara c)
 
Element GetParent (Card c)
 
void WriteNote (UINote n, ElementContainer owner=null, Action< UINote > onWriteNote=null)
 
void WriteNoteWithRef (UINote n, ElementContainer owner, Action< UINote > onWriteNote, Element refEle)
 
void _WriteNote (UINote n, Chara c, Act act)
 
void AddHeaderAbility (UINote n)
 
void _WriteNote (UINote n, ElementContainer owner, Action< UINote > onWriteNote, bool isRef, bool addHeader=true)
 
virtual void OnWriteNote (UINote n, ElementContainer owner)
 
virtual void OnChangeValue ()
 
void CheckLevelBonus (ElementContainer owner, UINote n=null)
 
int GetSortVal (UIList.SortMode m)
 
virtual Act.Cost GetCost (Chara c)
 
virtual int GetPower (Card c)
 
virtual void SetTextValue (UIText text)
 
virtual bool IsPurchaseFeatReqMet (ElementContainer owner, int lv=-1)
 
virtual void WritePurchaseReq (UINote n, int lv=1)
 
void WriteNote (UINote n, Action< UINote > onWriteNote=null, NoteMode mode=NoteMode.Default, Recipe recipe=null)
 
void OnInspect ()
 
void OnEnterScreen ()
 
void OnLeaveScreen ()
 

Public Attributes

Recipe recipe
 
int dir
 
int bridgeHeight
 
int altitude
 
List< Thingresources = new List<Thing>()
 
int[] reqs
 
Card held
 
float fx
 
float fy
 
bool freePos
 
bool disableRotateBlock
 
Card target
 
Point lastPos
 
- Public Attributes inherited from TaskDesignation
long sync
 
bool isSynced
 
TCOrbitTask orbit
 
- Public Attributes inherited from TaskPoint
Point pos = new Point()
 
bool isRepeated
 
- Public Attributes inherited from Task
TaskList taskList
 
bool isDestroyed
 
int nextTry
 
bool suspended
 
- Public Attributes inherited from AIAct
new Chara owner
 
Status status
 
IEnumerator< StatusEnumerator
 
AIAct child
 
AIAct parent
 
byte restartCount
 
Func< StatusonChildFail
 
Func< bool > isFail
 
- Public Attributes inherited from Element
SourceElement.Row _source
 
int id
 
int vBase
 
int vExp
 
int vPotential
 
int vTempPotential
 
int vLink
 
int vSource
 
int vSourcePotential
 
ElementContainer owner
 

Properties

override int destDist [get]
 
override bool CanPressRepeat [get]
 
override bool HasProgress [get]
 
override bool destIgnoreConnection [get]
 
bool useHeld [get]
 
override int W [get]
 
override int H [get]
 
override bool isBlock [get]
 
- Properties inherited from TaskDesignation
override bool HasProgress [get]
 
virtual int idMarker [get]
 
virtual int W [get]
 
virtual int H [get]
 
virtual bool ShowOrbit [get]
 
virtual bool Working [get]
 
override bool ShowAuto [get]
 
override CursorInfo CursorIcon [get]
 
TaskManager.Designations Designations [get]
 
long Sync [get]
 
- Properties inherited from TaskPoint
override bool HasProgress [get]
 
virtual int destDist [get]
 
virtual bool destIgnoreConnection [get]
 
virtual bool isBlock [get]
 
virtual bool Loop [get]
 
bool CanInspect [get]
 
string InspectName [get]
 
Point InspectPoint [get]
 
Vector3 InspectPosition [get]
 
- Properties inherited from Task
override TargetType TargetType [get]
 
- Properties inherited from AIAct
virtual bool IsRunning [get]
 
bool IsChildRunning [get]
 
bool IsMoveAI [get]
 
virtual int MaxRestart [get]
 
virtual new string Name [get]
 
virtual MultiSprite stateIcon [get]
 
virtual Sprite actionIcon [get]
 
virtual bool IsNoGoal [get]
 
virtual bool IsAutoTurn [get]
 
virtual bool IsIdle [get]
 
virtual bool CancelOnAggro [get]
 
virtual bool PushChara [get]
 
virtual int MaxProgress [get]
 
virtual bool ShowProgress [get]
 
virtual bool UseTurbo [get]
 
virtual int CurrentProgress [get]
 
virtual bool ShowCursor [get]
 
virtual bool CancelWhenDamaged [get]
 
virtual bool CancelWhenMoved [get]
 
virtual bool InformCancel [get]
 
virtual Thing RenderThing [get]
 
AIAct Current [get]
 
override bool IsAct [get]
 
override bool ShowPotential [get]
 
override bool UsePotential [get]
 
override bool ShowRelativeAttribute [get]
 
virtual bool HasProgress [get]
 
- Properties inherited from Act
override bool ShowPotential [get]
 
override bool UsePotential [get]
 
override bool ShowRelativeAttribute [get]
 
virtual CursorInfo CursorIcon [get]
 
virtual string ID [get]
 
virtual bool IsAct [get]
 
virtual bool WillEndTurn [get]
 
virtual bool CloseLayers [get]
 
virtual int LeftHand [get]
 
virtual int RightHand [get]
 
virtual int ElementPowerMod [get]
 
virtual bool ShowMapHighlight [get]
 
virtual bool ShowMapHighlightBlock [get]
 
virtual bool PickHeldOnStart [get]
 
virtual bool DropHeldOnStart [get]
 
virtual bool CanPressRepeat [get]
 
virtual bool CanAutofire [get]
 
virtual bool ResetAxis [get]
 
virtual bool RequireTool [get]
 
virtual bool IsHostileAct [get]
 
virtual bool HideRightInfo [get]
 
virtual bool HaveLongPressAction [get]
 
virtual float Radius [get]
 
virtual int PerformDistance [get]
 
virtual int MaxRadius [get]
 
virtual TargetType TargetType [get]
 
virtual bool LocalAct [get]
 
virtual bool CanRapidFire [get]
 
virtual float RapidDelay [get]
 
virtual bool ShowAuto [get]
 
virtual bool IsCrime [get]
 
- Properties inherited from Element
SourceElement.Row source [get]
 
virtual int DisplayValue [get]
 
virtual int MinValue [get]
 
int Value [get]
 
int ValueWithoutLink [get]
 
virtual int MinPotential [get]
 
int Potential [get]
 
virtual bool CanGainExp [get]
 
bool IsFlag [get]
 
virtual string Name [get]
 
virtual string FullName [get]
 
virtual int ExpToNext [get]
 
virtual bool UseExpMod [get]
 
virtual int CostTrain [get]
 
virtual int CostLearn [get]
 
virtual bool ShowXP [get]
 
virtual bool ShowMsgOnValueChanged [get]
 
virtual bool ShowValue [get]
 
virtual bool ShowPotential [get]
 
virtual bool UsePotential [get]
 
virtual bool PotentialAsStock [get]
 
virtual bool ShowRelativeAttribute [get]
 
virtual bool ShowBonuses [get]
 
virtual string ShortName [get]
 
bool IsGlobalElement [get]
 
bool IsFactionWideElement [get]
 
bool IsPartyWideElement [get]
 
virtual bool ShowEncNumber [get]
 
bool IsTrait [get]
 
bool IsFoodTrait [get]
 
bool IsFoodTraitMain [get]
 
bool IsMainAttribute [get]
 
Act act [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 
- Properties inherited from IInspect
bool CanInspect [get]
 
string InspectName [get]
 
Point InspectPoint [get]
 
Vector3 InspectPosition [get]
 
- Properties inherited from ISyncScreen
long Sync [get]
 

Additional Inherited Members

- Public Types inherited from AIAct
enum  Status { Running , Fail , Success }
 
- Public Types inherited from Act
enum  CostType { None , MP , SP }
 
- Public Types inherited from IInspect
enum  NoteMode { Default , Recipe , Product , Info }
 
- Static Public Member Functions inherited from Act
static void SetReference (Chara _cc, Card _tc=null, Point _tp=null)
 
static void SetTool (Thing t)
 
- Static Public Member Functions inherited from Element
static string GetName (string alias)
 
static SourceElement.Row Get (int id)
 
static Dictionary< int, int > GetElementMap (int[] list)
 
static Dictionary< int, int > GetElementMap (int[] list, Dictionary< int, int > map)
 
static SourceElement.Row GetRandomElement (int lv=1)
 
static Element Create (int id, int v=0)
 
static Element Create (string id, int v=1)
 
static int GetId (string alias)
 
static int GetResistLv (int v)
 
static int GetResistDamage (int dmg, int v, int power=0)
 
- Static Public Member Functions inherited from EClass
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Static Public Attributes inherited from Act
static Chara CC
 
static Card TC
 
static Point TP = new Point()
 
static Thing TOOL
 
static int powerMod = 100
 
static bool forcePt
 
- Static Public Attributes inherited from Element
const int Div = 5
 
static Element Void = new Element()
 
static int[] List_MainAttributes = new int[9] { 70, 72, 71, 77, 74, 75, 76, 73, 79 }
 
static int[] List_MainAttributesMajor = new int[8] { 70, 72, 71, 77, 74, 75, 76, 73 }
 
static int[] List_Body = new int[4] { 70, 72, 71, 77 }
 
static int[] List_Mind = new int[4] { 74, 75, 76, 73 }
 
static List< SourceElement.RowListElements = new List<SourceElement.Row>()
 
static List< SourceElement.RowListAttackElements = new List<SourceElement.Row>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Detailed Description

Definition at line 5 of file TaskBuild.cs.

Member Function Documentation

◆ _CanPerformTask()

override bool TaskBuild._CanPerformTask ( Chara  chara,
int  radius 
)
inlinevirtual

Reimplemented from Task.

Definition at line 122 of file TaskBuild.cs.

123 {
124 Recipe.Ingredient ingredient = recipe.ingredients[0];
125 if (!ingredient.IsThingSpecified && ingredient.thing == null)
126 {
127 ingredient.thing = EClass._map.Stocked.Find(ingredient.id, ingredient.mat, ingredient.refVal);
128 if (ingredient.thing == null)
129 {
130 TryLater();
131 return false;
132 }
133 }
134 return true;
135 }
Definition: EClass.cs:5
static Map _map
Definition: EClass.cs:18
PropsStocked Stocked
Definition: Map.cs:121
Thing Find(int uid)
Definition: Props.cs:357
bool IsThingSpecified
Definition: Recipe.cs:45
List< Ingredient > ingredients
Definition: Recipe.cs:164
Recipe recipe
Definition: TaskBuild.cs:8
void TryLater(int min=30)
Definition: Task.cs:26

References EClass._map, Props.Find(), Recipe.Ingredient.id, Recipe.ingredients, Recipe.Ingredient.IsThingSpecified, Recipe.Ingredient.mat, recipe, Recipe.Ingredient.refVal, Map.Stocked, Recipe.Ingredient.thing, and Task.TryLater().

◆ _GetHitResult()

HitResult TaskBuild._GetHitResult ( Point  p)
inline

Definition at line 248 of file TaskBuild.cs.

249 {
250 if (useHeld)
251 {
252 if (EClass.pc.held == null || EClass.pc.held.isDestroyed)
253 {
254 return HitResult.Invalid;
255 }
256 if (p.Installed != null)
257 {
259 {
260 return HitResult.Invalid;
261 }
262 if (EClass.pc.held.trait is TraitFertilizer && p.Things.LastItem().trait is TraitFertilizer)
263 {
264 return HitResult.Invalid;
265 }
267 {
268 foreach (Thing thing in p.Things)
269 {
270 if (thing.trait is TraitSeed)
271 {
272 return HitResult.Invalid;
273 }
274 }
275 }
276 }
277 }
279 }
HitResult
Definition: HitResult.cs:2
bool isDestroyed
Definition: Card.cs:71
Trait trait
Definition: Card.cs:49
Card held
Definition: Chara.cs:67
static Chara pc
Definition: EClass.cs:14
Thing Installed
Definition: Point.cs:303
List< Thing > Things
Definition: Point.cs:314
virtual Card Mold
Definition: Recipe.cs:237
virtual TileType tileType
Definition: Recipe.cs:198
bool useHeld
Definition: TaskBuild.cs:61
Definition: Thing.cs:8
HitResult _HitTest(Point pos, Card target, bool canIgnore=true)
Definition: TileType.cs:287

References TileType._HitTest(), Chara.held, Point.Installed, Card.isDestroyed, Recipe.Mold, EClass.pc, recipe, Point.Things, Recipe.tileType, Card.trait, and useHeld.

Referenced by GetHitResult().

◆ CanManualCancel()

override bool TaskBuild.CanManualCancel ( )
inlinevirtual

Reimplemented from AIAct.

Definition at line 69 of file TaskBuild.cs.

70 {
71 return true;
72 }

◆ CanRotateBlock()

bool TaskBuild.CanRotateBlock ( )
inline

Definition at line 74 of file TaskBuild.cs.

75 {
77 {
78 disableRotateBlock = false;
79 }
80 if (useHeld && EClass.pc.held != null)
81 {
83 {
84 return false;
85 }
87 {
88 return false;
89 }
91 {
92 return false;
93 }
95 {
96 return true;
97 }
98 }
99 return false;
100 }
bool pressing
Definition: ButtonState.cs:35
static Zone _zone
Definition: EClass.cs:20
Definition: EInput.cs:8
static ButtonState rightMouse
Definition: EInput.cs:351
bool HasBlock
Definition: Point.cs:141
virtual bool IsRegion
Definition: Spatial.cs:501
bool disableRotateBlock
Definition: TaskBuild.cs:33
Point pos
Definition: TaskPoint.cs:11
virtual bool CanBuildInTown
Definition: Trait.cs:258
virtual bool IsDoor
Definition: Trait.cs:56
virtual bool CanBeOnlyBuiltInHome
Definition: Trait.cs:255
bool IsPCFactionOrTent
Definition: Zone.cs:467
virtual bool RestrictBuild
Definition: Zone.cs:283

References EClass._zone, Trait.CanBeOnlyBuiltInHome, Trait.CanBuildInTown, disableRotateBlock, Point.HasBlock, Chara.held, Trait.IsDoor, Zone.IsPCFactionOrTent, Spatial.IsRegion, EClass.pc, TaskPoint.pos, ButtonState.pressing, Zone.RestrictBuild, EInput.rightMouse, Card.trait, and useHeld.

Referenced by GetHitResult(), GetText(), and OnProgressComplete().

◆ DrawMarker()

override void TaskBuild.DrawMarker ( int  x,
int  z,
RenderParam  p 
)
inlinevirtual

Reimplemented from TaskDesignation.

Definition at line 395 of file TaskBuild.cs.

396 {
397 recipe.OnRenderMarker(Point.shared.Set(x, z), owner != null, HitResult.Default, x == pos.x && z == pos.z, dir, bridgeHeight + altitude);
398 }
new Chara owner
Definition: AIAct.cs:14
Definition: Point.cs:9
static Point shared
Definition: Point.cs:20
Point Set(int _x, int _z)
Definition: Point.cs:479
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
virtual void OnRenderMarker(Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
Definition: Recipe.cs:688
int altitude
Definition: TaskBuild.cs:17
int bridgeHeight
Definition: TaskBuild.cs:14
int dir
Definition: TaskBuild.cs:11

References altitude, bridgeHeight, dir, Recipe.OnRenderMarker(), AIAct.owner, TaskPoint.pos, recipe, Point.Set(), Point.shared, Point.x, and Point.z.

◆ GetHitResult()

override HitResult TaskBuild.GetHitResult ( )
inlinevirtual

Reimplemented from Task.

Definition at line 149 of file TaskBuild.cs.

150 {
152 {
153 return HitResult.Invalid;
154 }
155 if (recipe == null)
156 {
157 Debug.Log("recipe is null");
158 return HitResult.Invalid;
159 }
160 if (useHeld)
161 {
162 if (EClass.pc.held == null || EClass.pc.held.GetRootCard() != EClass.pc || EClass.pc.held != held)
163 {
164 return HitResult.Invalid;
165 }
167 {
168 return HitResult.Invalid;
169 }
170 if (CanRotateBlock())
171 {
172 return HitResult.Valid;
173 }
175 {
176 recipe.SetDir((pos.cell.blockDir != 0) ? 1 : 0);
177 }
179 {
181 {
182 return HitResult.Invalid;
183 }
185 {
186 return HitResult.Invalid;
187 }
188 }
189 }
190 if (lastPos != null)
191 {
192 if (recipe.IsBlock && lastPos.x != pos.x && lastPos.z != pos.z)
193 {
194 return HitResult.Invalid;
195 }
196 if (recipe.IsWallOrFence && ((recipe._dir == 0 && pos.z != lastPos.z) || (recipe._dir == 1 && pos.x != lastPos.x)))
197 {
198 return HitResult.Invalid;
199 }
200 }
202 {
203 return HitResult.Default;
204 }
205 if (recipe.IsThing)
206 {
207 if (recipe.renderRow is CardRow cardRow && !CanPlaceCard(pos, cardRow.model))
208 {
209 return HitResult.Invalid;
210 }
211 if (recipe.MultiSize && useHeld)
212 {
213 Point point = new Point();
214 for (int i = 0; i < H; i++)
215 {
216 for (int j = 0; j < W; j++)
217 {
218 point.Set(pos.x - j, pos.z + i);
219 if (!point.IsValid)
220 {
221 return HitResult.Invalid;
222 }
223 HitResult hitResult = _GetHitResult(point);
224 if (hitResult != HitResult.Valid && hitResult != HitResult.Warning)
225 {
226 return HitResult.Invalid;
227 }
228 }
229 }
230 return HitResult.Valid;
231 }
232 }
234 {
235 return HitResult.Valid;
236 }
238 {
239 return HitResult.Valid;
240 }
242 {
243 return HitResult.Valid;
244 }
245 return _GetHitResult(pos);
246 }
Definition: AM_Adv.cs:6
static int actCount
Definition: AM_Adv.cs:101
virtual bool IsRoofEditMode(Card c=null)
Definition: ActionMode.cs:311
TileType TileType
Definition: Card.cs:2011
Card GetRootCard()
Definition: Card.cs:3173
int blockDir
Definition: Cell.cs:898
bool IsHostile()
Definition: Chara.cs:5884
bool ignoreBuildRule
Definition: CoreDebug.cs:184
static Scene scene
Definition: EClass.cs:30
static CoreDebug debug
Definition: EClass.cs:48
static Point Invalid
Definition: Point.cs:28
bool HasWallOrFence
Definition: Point.cs:155
bool IsInBoundsPlus
Definition: Point.cs:116
bool IsValid
Definition: Point.cs:88
Chara FirstChara
Definition: Point.cs:264
bool IsInBounds
Definition: Point.cs:104
Cell cell
Definition: Point.cs:51
bool HasChara
Definition: Point.cs:226
bool HasSameTile(Point point, int dir, int altitude, int bridgeHeight)
Definition: Recipe.cs:560
virtual void SetDir(int d)
Definition: Recipe.cs:868
virtual RenderRow renderRow
Definition: Recipe.cs:193
virtual bool IsBlock
Definition: Recipe.cs:229
virtual bool IsThing
Definition: Recipe.cs:235
bool IsWallOrFence
Definition: Recipe.cs:231
bool MultiSize
Definition: Recipe.cs:266
int _dir
Definition: Recipe.cs:175
ActionMode actionMode
Definition: Scene.cs:77
bool CanPlaceCard(Point pos, Card c)
Definition: TaskBaseBuild.cs:3
Card held
Definition: TaskBuild.cs:25
bool CanRotateBlock()
Definition: TaskBuild.cs:74
override int W
Definition: TaskBuild.cs:63
override int H
Definition: TaskBuild.cs:65
HitResult _GetHitResult(Point p)
Definition: TaskBuild.cs:248
Point lastPos
Definition: TaskBuild.cs:37
virtual bool IsDoor
Definition: TileType.cs:193
virtual bool IsBlockPass
Definition: TileType.cs:149
bool IsPCFaction
Definition: Zone.cs:464

References Recipe._dir, _GetHitResult(), EClass._zone, AM_Adv.actCount, Scene.actionMode, altitude, Cell.blockDir, bridgeHeight, Trait.CanBeOnlyBuiltInHome, Trait.CanBuildInTown, TaskBaseBuild.CanPlaceCard(), CanRotateBlock(), Point.cell, EClass.debug, Debug, Point.FirstChara, Card.GetRootCard(), H, Point.HasBlock, Point.HasChara, Recipe.HasSameTile(), Point.HasWallOrFence, Chara.held, held, CoreDebug.ignoreBuildRule, Point.Invalid, Recipe.IsBlock, TileType.IsBlockPass, TileType.IsDoor, Chara.IsHostile(), Point.IsInBounds, Point.IsInBoundsPlus, Zone.IsPCFaction, Zone.IsPCFactionOrTent, ActionMode.IsRoofEditMode(), Recipe.IsThing, Point.IsValid, Recipe.IsWallOrFence, lastPos, Recipe.MultiSize, EClass.pc, TaskPoint.pos, recipe, Recipe.renderRow, Zone.RestrictBuild, EClass.scene, Point.Set(), Recipe.SetDir(), Card.TileType, Card.trait, useHeld, W, Point.x, and Point.z.

◆ GetText()

override string TaskBuild.GetText ( string  str = "")
inlinevirtual

Reimplemented from Act.

Definition at line 102 of file TaskBuild.cs.

103 {
104 if (CanRotateBlock())
105 {
106 return "actRotateWall".lang();
107 }
108 if (useHeld && EClass.pc.held != null)
109 {
110 if (EClass.pc.held.category.id == "seed")
111 {
112 return "actInstallSeed".lang();
113 }
114 if (EClass.pc.held.id == "fertilizer")
115 {
116 return "actInstallFertilizer".lang();
117 }
118 }
119 return base.GetText(str);
120 }
string id
Definition: Card.cs:31
SourceCategory.Row category
Definition: Card.cs:1925

References CanRotateBlock(), Card.category, Chara.held, Card.id, EClass.pc, and useHeld.

◆ OnAdd()

override void TaskBuild.OnAdd ( )
inlinevirtual

Reimplemented from Task.

Definition at line 137 of file TaskBuild.cs.

138 {
139 if (reqs == null)
140 {
141 reqs = new int[recipe.ingredients.Count];
142 for (int i = 0; i < recipe.ingredients.Count; i++)
143 {
144 reqs[i] = recipe.ingredients[i].req;
145 }
146 }
147 }
int[] reqs
Definition: TaskBuild.cs:23

References Recipe.ingredients, recipe, and reqs.

◆ OnDestroy()

override void TaskBuild.OnDestroy ( )
inlinevirtual

Reimplemented from Task.

Definition at line 387 of file TaskBuild.cs.

388 {
389 foreach (Thing resource in resources)
390 {
392 }
393 }
List< Thing > resources
Definition: TaskBuild.cs:20
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893

References EClass._zone, Zone.AddCard(), TaskPoint.pos, resource, and resources.

◆ OnProgressComplete()

override void TaskBuild.OnProgressComplete ( )
inlinevirtual

Reimplemented from AIAct.

Definition at line 281 of file TaskBuild.cs.

282 {
283 if (useHeld)
284 {
285 if (EClass.pc.held == null || EClass.pc.held.GetRootCard() != EClass.pc || pos.Distance(EClass.pc.pos) > 1 || !pos.IsInBounds)
286 {
287 return;
288 }
289 if (CanRotateBlock())
290 {
291 SE.Rotate();
293 disableRotateBlock = true;
294 return;
295 }
296 disableRotateBlock = true;
299 target = (EClass.pc.held.category.installOne ? EClass.pc.held.Split(1) : EClass.pc.held);
300 if (target.trait is TraitTile)
301 {
302 target.ModNum(-1);
303 }
304 dir = recipe._dir;
306 EClass.pc.renderer.PlayAnime(AnimeID.Attack_Place, pos);
307 if (target.id == "statue_weird")
308 {
309 EClass.pc.Say("statue_install");
310 }
311 }
312 lastPos = pos.Copy();
313 if (ActionMode.Build.IsActive && ActionMode.Build.IsFillMode())
314 {
315 if (recipe.IsBridge)
316 {
319 altitude = 0;
320 }
321 else if (recipe.IsFloor)
322 {
324 }
325 else if (recipe.IsBlock)
326 {
328 }
329 }
330 else
331 {
332 Effect.Get("smoke").Play(pos);
333 Effect.Get("mine").Play(pos).SetParticleColor(recipe.GetColorMaterial().GetColor())
334 .Emit(10 + EClass.rnd(10));
336 {
338 {
339 pos.cell.blockDir = 2;
340 EClass.pc.PlaySound(pos.matBlock.GetSoundImpact());
342 return;
343 }
344 if (pos.sourceRoofBlock.tileType.IsWallOrFence && pos.cell._roofBlockDir % 4 != 2 && pos.cell._roofBlockDir % 4 != recipe._dir)
345 {
346 pos.cell._roofBlockDir = (byte)(pos.cell._roofBlockDir / 4 * 4 + 2);
347 EClass.pc.PlaySound(pos.matBlock.GetSoundImpact());
349 return;
350 }
351 }
352 }
353 if (bridgeHeight > 150)
354 {
355 bridgeHeight = 150;
356 }
357 recipe.Build(this);
358 resources.Clear();
363 EClass.pc.renderer.SetFirst(first: true);
364 if (recipe.IsFloor)
365 {
366 foreach (Card item in pos.ListThings<TraitNewZone>())
367 {
368 _ = (item.trait as TraitNewZone).IsDownstairs;
369 }
370 }
372 {
373 return;
374 }
375 pos.ForeachMultiSize(recipe.W, recipe.H, delegate(Point p, bool center)
376 {
377 if (p.IsBlocked && p.HasChara)
378 {
379 foreach (Chara item2 in p.ListCharas())
380 {
381 EClass.pc.Kick(item2, ignoreSelf: true, karmaLoss: false, show: false);
382 }
383 }
384 });
385 }
AnimeID
Definition: AnimeID.cs:2
int bridgeHeight
Definition: AM_Build.cs:6
override bool IsFillMode()
Definition: AM_Build.cs:92
override bool IsRoofEditMode(Card c=null)
Definition: AM_Build.cs:87
void FixBridge(Point point, Recipe recipe)
Definition: AM_Build.cs:230
static AM_Build Build
Definition: ActionMode.cs:49
void PlayAnime(AnimeID id, bool force)
virtual void SetFirst(bool first, Vector3 pos)
Definition: Card.cs:11
Thing Split(int a)
Definition: Card.cs:3231
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
Point pos
Definition: Card.cs:55
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
CardRenderer renderer
Definition: Card.cs:57
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
byte _roofBlockDir
Definition: Cell.cs:54
int floorDir
Definition: Cell.cs:922
void RotateBlock(int a)
Definition: Cell.cs:1435
byte bridgeHeight
Definition: Cell.cs:74
Definition: Chara.cs:10
void Kick(Point p, bool ignoreSelf=false)
Definition: Chara.cs:5174
override void LookAt(Card c)
Definition: Chara.cs:3219
static int rnd(int a)
Definition: EClass.cs:50
static Player player
Definition: EClass.cs:12
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 RefreshFOV(int x, int z, int radius=6, bool recalculate=false)
Definition: Map.cs:923
void RefreshShadow(int x, int z)
Definition: Map.cs:1787
void OnBuild(Recipe r)
Definition: Player.cs:553
Flags flags
Definition: Player.cs:895
SourceMaterial.Row matBlock
Definition: Point.cs:55
void ForeachMultiSize(int w, int h, Action< Point, bool > action)
Definition: Point.cs:1349
Point Copy()
Definition: Point.cs:467
bool IsBlocked
Definition: Point.cs:339
void RefreshTile()
Definition: Point.cs:1245
List< Chara > ListCharas()
Definition: Point.cs:1135
int Distance(Point p)
Definition: Point.cs:953
SourceBlock.Row sourceRoofBlock
Definition: Point.cs:61
virtual void Build(TaskBuild task)
Definition: Recipe.cs:605
virtual int H
Definition: Recipe.cs:252
bool IsFloor
Definition: Recipe.cs:225
bool IsBridge
Definition: Recipe.cs:233
virtual SourceMaterial.Row GetColorMaterial()
Definition: Recipe.cs:481
virtual int W
Definition: Recipe.cs:240
Card target
Definition: TaskBuild.cs:35

References Recipe._dir, EClass._map, Cell._roofBlockDir, altitude, Cell.blockDir, AM_Build.bridgeHeight, Cell.bridgeHeight, bridgeHeight, ActionMode.Build, Recipe.Build(), CanRotateBlock(), Point.cell, Point.Copy(), dir, disableRotateBlock, Point.Distance(), AM_Build.FixBridge(), Player.flags, Cell.floorDir, Point.ForeachMultiSize(), Effect.Get(), Recipe.GetColorMaterial(), Card.GetRootCard(), Recipe.H, Point.HasChara, Point.HasWallOrFence, Chara.held, Card.id, Recipe.IsBlock, Point.IsBlocked, Recipe.IsBridge, AM_Build.IsFillMode(), Recipe.IsFloor, Point.IsInBounds, AM_Build.IsRoofEditMode(), Recipe.IsWallOrFence, item, Chara.Kick(), lastPos, Point.ListCharas(), Chara.LookAt(), Point.matBlock, Card.ModNum(), Player.Flags.OnBuild(), EClass.pc, Effect.Play(), CardRenderer.PlayAnime(), EClass.player, Card.PlaySound(), Card.pos, TaskPoint.pos, recipe, Map.RefreshFOV(), Map.RefreshShadow(), Point.RefreshTile(), Card.renderer, resources, EClass.rnd(), Cell.RotateBlock(), Card.Say(), CardRenderer.SetFirst(), Point.sourceRoofBlock, Card.Split(), target, Card.trait, useHeld, Recipe.W, Point.x, and Point.z.

Member Data Documentation

◆ altitude

int TaskBuild.altitude

◆ bridgeHeight

int TaskBuild.bridgeHeight

◆ dir

int TaskBuild.dir

Definition at line 11 of file TaskBuild.cs.

Referenced by Recipe.Build(), RecipeCard.Build(), DrawMarker(), and OnProgressComplete().

◆ disableRotateBlock

bool TaskBuild.disableRotateBlock

Definition at line 33 of file TaskBuild.cs.

Referenced by CanRotateBlock(), and OnProgressComplete().

◆ freePos

bool TaskBuild.freePos

Definition at line 31 of file TaskBuild.cs.

◆ fx

float TaskBuild.fx

Definition at line 27 of file TaskBuild.cs.

◆ fy

float TaskBuild.fy

Definition at line 29 of file TaskBuild.cs.

◆ held

Card TaskBuild.held

Definition at line 25 of file TaskBuild.cs.

Referenced by GetHitResult().

◆ lastPos

Point TaskBuild.lastPos

Definition at line 37 of file TaskBuild.cs.

Referenced by GetHitResult(), and OnProgressComplete().

◆ recipe

◆ reqs

int [] TaskBuild.reqs

Definition at line 23 of file TaskBuild.cs.

Referenced by OnAdd().

◆ resources

List<Thing> TaskBuild.resources = new List<Thing>()

Definition at line 20 of file TaskBuild.cs.

Referenced by RecipeCard.Build(), OnDestroy(), and OnProgressComplete().

◆ target

Card TaskBuild.target

Definition at line 35 of file TaskBuild.cs.

Referenced by RecipeCard.Build(), and OnProgressComplete().

Property Documentation

◆ CanPressRepeat

override bool TaskBuild.CanPressRepeat
get

Definition at line 41 of file TaskBuild.cs.

42 {
43 get
44 {
45 if (useHeld)
46 {
47 if (EClass.pc.held != null)
48 {
50 }
51 return false;
52 }
53 return false;
54 }
55 }
virtual bool CanExtendBuild
Definition: Trait.cs:161

◆ destDist

override int TaskBuild.destDist
get

Definition at line 39 of file TaskBuild.cs.

◆ destIgnoreConnection

override bool TaskBuild.destIgnoreConnection
get

Definition at line 59 of file TaskBuild.cs.

◆ H

override int TaskBuild.H
get

Definition at line 65 of file TaskBuild.cs.

Referenced by GetHitResult().

◆ HasProgress

override bool TaskBuild.HasProgress
get

Definition at line 57 of file TaskBuild.cs.

◆ isBlock

override bool TaskBuild.isBlock
get

Definition at line 67 of file TaskBuild.cs.

◆ useHeld

bool TaskBuild.useHeld
get

Definition at line 61 of file TaskBuild.cs.

Referenced by _GetHitResult(), CanRotateBlock(), GetHitResult(), GetText(), and OnProgressComplete().

◆ W

override int TaskBuild.W
get

Definition at line 63 of file TaskBuild.cs.

Referenced by GetHitResult().


The documentation for this class was generated from the following file: