37 public override bool IsGrowth => pos.growth !=
null;
82 return "TaskHarvestSeed".lang();
86 string text = (
HaveHarvestThing() ?
"TaskDisassemble" :
"TaskDisassemble_destroy").lang();
90 text = text +
" " +
"TaskDisassemble_newrecipe".lang();
96 return base.GetBaseText(str);
98 return "actHarvest".lang();
105 return base.GetTextSmall(c);
118 bool hasDiggingTool = t !=
null && t.
HasElement(230);
147 for (
int num = p.
Things.Count - 1; num >= 0; num--)
160 for (
int num2 = p.
Things.Count - 1; num2 >= 0; num2--)
175 bool IsValidTarget(
string[] raw)
177 if (raw[0] ==
"digging")
179 return hasDiggingTool;
183 bool flag = ((!num3 && num4 != 250) ?
true :
false);
188 return !flag || hasTool;
201 if (base.CanProgress())
211 return base.CanProgress();
249 float num = (base.IsHarvest ? 0.5f : ((!
IsObj) ? 1f : ((growth !=
null) ? growth.MtpProgress : 1f)));
254 p.maxProgress = (int)((
float)(
maxProgress * 150) * num / 100f);
256 p.onProgressBegin = delegate
262 else if (base.IsTooHard)
288 if (base.IsHarvest && growth !=
null)
313 p.onProgressComplete = delegate
317 int num2 = ((
EClass.
rnd(3) != 0) ? 1 : 0);
330 if (flag && growth !=
null)
357 if (sourceObj.
alias ==
"mound")
376 exp = target.Num * 5;
387 if (backerObj !=
null)
394 switch (backerObj.
id)
400 thing.c_priceFix = -100;
415 thing.
Dye(
"obsidian");
439 Debug.LogError(
"exception: Backer Loot not valid:" + backerObj.
id +
"/" + backerObj.
loot);
446 bool num3 = backerObj.type == 1;
447 Msg.
Say(num3 ?
"backerRemain_read" :
"backerTree_read");
448 Msg.
Say(num3 ?
"backerRemain" :
"backerTree", backerObj.
Text);
470 string result =
target.
source.components[0].Split(
'|')[0].Split(
'/')[0];
484 if (dest.Contains(
"$") || dest.Contains(
"#") || dest.Contains(
"@") || dest.Contains(
"-"))
509 float num2 = 1.0999999f;
510 if (text ==
"log" || text ==
"rock")
515 if (text2 ==
"glass" || text2 ==
"brick")
523 float num3 = num % num2;
525 Debug.Log(
"num:" + num +
" div:" + num3 +
" chance:" + num2 +
" check:" + (num2 - num3 + 1f));
526 if (num3 > 0f &&
EClass.
rndf(num2 - num3 + 1f) < 1f)
void SetTarget(Chara c, Thing _tool=null)
static void Set(CardBlueprint _bp)
ElementContainerCard elements
bool HasElement(int ele, int req=1)
SourceMaterial.Row material
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
bool IsEquipmentOrRangedOrAmmo
virtual void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None)
virtual void SetBlessedState(BlessedState s)
Card MakeFoodFrom(string _id)
void ModExp(string alias, int a)
void PlayAnime(AnimeID id, bool force=false)
SourceCategory.Row category
virtual void ChangeRarity(Rarity q)
void Say(string lang, string ref1=null, string ref2=null)
override void LookAt(Card c)
BackerContentConfig backer
static SourceManager sources
static float rndf(float a)
void ModExp(int ele, int a, bool chain=false)
Element SetBase(string alias, int v, int potential=0)
bool disableUsermapBenefit
virtual AnimeID AnimeProgress
virtual void OnHitFail(Chara c)
virtual bool IsCrimeToHarvest
void OnProgressComplete(Chara c)
virtual string GetSoundProgress()
void DestroyObj(Point point)
void TrySmoothPick(Cell cell, Thing t, Chara c)
void MineObj(Point point, Task task=null, Chara c=null)
SourceBacker.Row GetBackerObj(Point p)
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
HashSet< int > doneBackers
void SetObj(int id=0, int value=1, int dir=0)
SoundSource PlaySound(string id, bool synced=true, float v=1f, bool spatial=true)
bool TryWitnessCrime(Chara criminal, Chara target=null, int radius=4, Func< Chara, bool > funcWitness=null)
void Animate(AnimeID id, bool animeBlock=false)
void ComeUpWithRecipe(string idRecipe, int chanceForRandomRecipe=0)
bool CanCeomUpWithRecipe(string idRecipe)
Dictionary< string, CardRow > map
string GetSoundImpact(RenderRow c=null)
void AddBlood(Point p, int a=1)
void PlayHitEffect(Point p, int emit=2)
override bool CanProgress()
override string GetTextSmall(Card c)
override bool IsHostileAct
static TaskHarvest TryGetAct(Chara c, Point p)
override HitResult GetHitResult()
override HarvestType harvestType
bool ShouldGenerateDismantled(string dest)
override string GetBaseText(string str)
override void OnCreateProgress(Progress_Custom p)
override bool CanManualCancel()
static Thing CreateFromCategory(string idCat, int lv=-1)
static Thing Create(string id, int idMat=-1, int lv=-1)
virtual bool CanBeDisassembled
virtual string ReqHarvest
Card AddThing(string id, int x, int z)
bool IsCrime(Chara c, Act act)
Card AddCard(Card t, Point point)