Elin Decompiled Documentation EA 23.350.1 Nightly
Loading...
Searching...
No Matches
AI_Slaughter.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3
5{
6 public static bool slaughtering;
7
8 public static Chara slaughterer;
9
10 public override bool CanManualCancel()
11 {
12 return true;
13 }
14
15 public override string GetText(string str = "")
16 {
17 string[] list = Lang.GetList("fur");
18 string text = list[Mathf.Clamp(target.c_fur / 10, 0, list.Length - 1)];
19 return "AI_Slaughter".lang() + "(" + text + ")";
20 }
21
22 public override bool IsValidTC(Card c)
23 {
24 return c?.ExistsOnMap ?? false;
25 }
26
27 public override bool Perform()
28 {
29 target = Act.TC;
30 return base.Perform();
31 }
32
33 public override IEnumerable<Status> Run()
34 {
35 yield return DoGoto(target, 1, ignoreConnection: true);
36 if (target != owner)
37 {
38 target.Chara.AddCondition<ConWait>(1000, force: true);
39 }
41 {
42 canProgress = () => IsValidTC(target),
43 onProgressBegin = delegate
44 {
45 target.PlaySound("slaughter");
46 target.SetCensored(enable: true);
47 owner.Say("disassemble_start", owner, owner.Tool, target.Name);
48 },
49 onProgress = delegate(Progress_Custom p)
50 {
53 if (target != owner)
54 {
55 target.Chara.AddCondition<ConWait>(1000, force: true);
56 }
57 if (owner.Dist(target) > 1)
58 {
60 if (owner == null)
61 {
62 p.Cancel();
63 }
64 else if (owner.Dist(target) > 1)
65 {
66 owner.Say("targetTooFar");
67 p.Cancel();
68 }
69 }
70 },
71 onProgressComplete = delegate
72 {
73 bool num = target.HasElement(1237) || target.Chara.race.id == "cat";
74 target.pos.PlayEffect("revive");
76 owner.ShowEmo(Emo.love);
77 target.SetCensored(enable: false);
78 if (target.HaveFur())
79 {
82 }
83 slaughtering = true;
85 target.SetSale(sale: false);
87 {
88 if (target.Chara.host != null)
89 {
91 }
93 }
94 target.Die();
95 Msg.Say("goto_heaven", target);
96 slaughtering = false;
97 slaughterer = null;
98 if (!target.IsPC)
99 {
101 {
102 target.c_dateDeathLock = EClass.world.date.GetRaw() + 86400;
103 }
104 else
105 {
106 target.Chara.c_uniqueData = null;
108 }
109 }
110 if (owner != null)
111 {
112 owner.elements.ModExp(290, 200f);
113 }
114 if (!EClass.pc.isDead)
115 {
116 EClass.pc.stamina.Mod(-3);
117 }
118 if (num)
119 {
120 Msg.Say("killcat");
122 }
123 }
124 }.SetDuration(6000 / (100 + owner.Tool.material.hardness * 2), 3);
125 yield return Do(seq);
126 }
127
128 public override void OnCancelOrSuccess()
129 {
131 {
132 target.Chara.RemoveCondition<ConWait>();
133 target.SetCensored(enable: false);
134 }
135 }
136}
AnimeID
Definition: AnimeID.cs:2
Emo
Definition: Emo.cs:2
Status Do(AIAct _seq, Func< Status > _onChildFail=null)
Definition: AIAct.cs:430
virtual Status Cancel()
Definition: AIAct.cs:305
new Chara owner
Definition: AIAct.cs:14
Status DoGoto(Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
Definition: AIAct.cs:446
static Thing GetFur(Chara c, int mod=100)
Definition: AI_Shear.cs:118
override void OnCancelOrSuccess()
override string GetText(string str="")
Definition: AI_Slaughter.cs:15
override IEnumerable< Status > Run()
Definition: AI_Slaughter.cs:33
static Chara slaughterer
Definition: AI_Slaughter.cs:8
override bool Perform()
Definition: AI_Slaughter.cs:27
override bool CanManualCancel()
Definition: AI_Slaughter.cs:10
override bool IsValidTC(Card c)
Definition: AI_Slaughter.cs:22
static bool slaughtering
Definition: AI_Slaughter.cs:6
static void Unride(Chara host, Chara mount, bool talk=true)
Definition: ActRide.cs:107
Definition: ACT.cs:62
static Card TC
Definition: ACT.cs:79
void PlayAnime(AnimeID id, bool force)
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:2122
void SetCensored(bool enable)
Definition: Card.cs:8278
ElementContainerCard elements
Definition: Card.cs:42
virtual void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None, Chara originalTarget=null)
Definition: Card.cs:5245
SourceMaterial.Row material
Definition: Card.cs:2103
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6645
Thing Tool
Definition: Card.cs:2480
virtual bool IsPCParty
Definition: Card.cs:2203
string Name
Definition: Card.cs:2191
bool ExistsOnMap
Definition: Card.cs:2137
Point pos
Definition: Card.cs:60
void ShowEmo(Emo _emo=Emo.none, float duration=0f, bool skipSame=true)
Definition: Card.cs:6613
bool HaveFur()
Definition: Card.cs:8439
virtual bool IsPC
Definition: Card.cs:2197
void SetSale(bool sale)
Definition: Card.cs:7683
int Dist(Card c)
Definition: Card.cs:8229
CardRenderer renderer
Definition: Card.cs:64
int c_fur
Definition: Card.cs:1369
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:6383
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:7324
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:509
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9875
void ModAffinity(Chara c, int a, bool show=true, bool showOnlyEmo=false)
Definition: Chara.cs:8445
Chara host
Definition: Chara.cs:33
Party party
Definition: Chara.cs:43
Stats stamina
Definition: Chara.cs:1205
Chara parasite
Definition: Chara.cs:30
MoveResult TryMoveTowards(Point p)
Definition: Chara.cs:2878
FactionBranch homeBranch
Definition: Chara.cs:1113
bool isDead
Definition: Chara.cs:393
override void LookAt(Card c)
Definition: Chara.cs:3804
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static World world
Definition: EClass.cs:41
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
void ModExp(int ele, float a, bool chain=false)
void BanishMember(Chara c, bool skipMsg=false)
Definition: Lang.cs:7
static string[] GetList(string id)
Definition: Lang.cs:113
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
void RemoveMember(Chara c)
Definition: Party.cs:116
void ModKarma(int a)
Definition: Player.cs:2636
Effect PlayEffect(string id)
Definition: Point.cs:1254
virtual void Mod(int a)
Definition: Stats.cs:135
Definition: Thing.cs:8
virtual bool IsUnique
Definition: TraitChara.cs:34
GameDate date
Definition: World.cs:6
Card AddCard(Card t, Point point)
Definition: Zone.cs:2151