53 public override bool IsGrowth => pos.growth !=
null;
110 return "TaskHarvestSeed".lang();
114 return (
HaveHarvestThing() ?
"TaskDisassemble" :
"TaskDisassemble_destroy").lang();
118 return base.GetBaseText(str);
120 return "actHarvest".lang();
127 return base.GetTextSmall(c);
140 bool hasDiggingTool = t !=
null && t.
HasElement(230);
181 for (
int num = p.
Things.Count - 1; num >= 0; num--)
194 for (
int num2 = p.
Things.Count - 1; num2 >= 0; num2--)
209 bool IsValidTarget(
string[] raw)
211 if (raw[0] ==
"digging")
213 return hasDiggingTool;
217 bool flag = ((!num3 && num4 != 250) ?
true :
false);
222 return !flag || hasTool;
235 if (base.CanProgress())
245 return base.CanProgress();
283 float num = (base.IsHarvest ? 0.5f : ((!
IsObj) ? 1f : ((growth !=
null) ? growth.MtpProgress : 1f)));
288 p.maxProgress = (int)((
float)(
maxProgress * 150) * num / 100f);
290 p.onProgressBegin = delegate
296 else if (base.IsTooHard)
322 if (base.IsHarvest && growth !=
null)
347 p.onProgressComplete = delegate
351 int num2 = ((
EClass.
rnd(3) != 0) ? 1 : 0);
364 if (flag && growth !=
null)
391 if (sourceObj.
alias ==
"mound")
410 exp = target.Num * 5;
421 if (backerObj !=
null)
428 switch (backerObj.
id)
434 thing.c_priceFix = -100;
449 thing.
Dye(
"obsidian");
473 Debug.LogError(
"exception: Backer Loot not valid:" + backerObj.
id +
"/" + backerObj.
loot);
480 bool num3 = backerObj.type == 1;
481 Msg.
Say(num3 ?
"backerRemain_read" :
"backerTree_read");
482 Msg.
Say(num3 ?
"backerRemain" :
"backerTree", backerObj.
Text);
508 string[] array =
target.
source.components[0].Split(
'|');
509 for (
int i = 0; i < array.Length; i++)
511 array[i] = array[i].Split(
'/')[0];
513 string result = array[0];
514 if (array.Length > 1)
517 bool flag = category ==
"rock" || category ==
"ore" || category ==
"gem";
518 if (array[0] ==
"ingot" && array[1] ==
"log" && !flag)
544 if (dest.Contains(
"$") || dest.Contains(
"#") || dest.Contains(
"@") || dest.Contains(
"-"))
569 float num2 = 1.0999999f;
585 if (text2 ==
"glass" || text2 ==
"brick")
589 float num3 = num % num2;
591 Debug.Log(
"num:" + num +
" div:" + num3 +
" chance:" + num2 +
" check:" + (num2 - num3 + 1f));
592 if (num3 > 0f &&
EClass.
rndf(num2 - num3 + 1f) < 1f)
622 Msg.
Say(
"spellbookCrumble", thing);
void SetTarget(Chara c, Thing _tool=null)
static void Set(CardBlueprint _bp)
ElementContainerCard elements
virtual void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None, Chara originalTarget=null)
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 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, float 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)
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)