Elin Decompiled Documentation EA 23.287 Stable Patch 3
Loading...
Searching...
No Matches
FEAT.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3
4public class FEAT
5{
6 public const int featEND = 1622;
7
8 public const int featHardy = 1630;
9
10 public const int featSPD = 1629;
11
12 public const int featLuck = 1628;
13
14 public const int featCHA = 1627;
15
16 public const int featWIL = 1626;
17
18 public const int featMAG = 1625;
19
20 public const int featLER = 1624;
21
22 public const int featPER = 1623;
23
24 public const int featEvade = 1632;
25
26 public const int featDefense = 1631;
27
28 public const int featExecutioner = 1420;
29
30 public const int featSTR = 1620;
31
32 public const int featStamina = 1612;
33
34 public const int featMana = 1611;
35
36 public const int featLife = 1610;
37
38 public const int featNeckHunter = 1426;
39
40 public const int featMimic = 1425;
41
42 public const int featElite = 1424;
43
44 public const int featPeaky = 1423;
45
46 public const int featHealer = 1422;
47
48 public const int featManaMeat = 1421;
49
50 public const int featSpotting = 1633;
51
52 public const int featMilitant = 1419;
53
54 public const int featSwordsage = 1418;
55
56 public const int featDEX = 1621;
57
58 public const int featNegotiate = 1634;
59
60 public const int featGourmet = 1650;
61
62 public const int featFaith = 1636;
63
64 public const int featWitch = 1417;
65
66 public const int featComat = 1750;
67
68 public const int featFastEater = 1663;
69
70 public const int featGoldenFinger = 1662;
71
72 public const int featDismantler = 1661;
73
74 public const int featLooter = 1660;
75
76 public const int featFisher = 1659;
77
78 public const int featChef = 1658;
79
80 public const int featManaCost = 1657;
81
82 public const int featScavenger = 1656;
83
84 public const int featModelBeliever = 1655;
85
86 public const int featHeavyCasting = 1654;
87
88 public const int featDreamWaker = 1653;
89
90 public const int featRapidArrow = 1652;
91
92 public const int featMagicManner = 1651;
93
94 public const int featDefender = 1649;
95
96 public const int featRapidMagic = 1648;
97
98 public const int featSummoner = 1647;
99
100 public const int featLonelySoul = 1646;
101
102 public const int featParty = 1645;
103
104 public const int featBodyParts = 1644;
105
106 public const int featSorter = 1643;
107
108 public const int featSleeper = 1642;
109
110 public const int featResCurse = 1641;
111
112 public const int featAnimalLover = 1640;
113
114 public const int featMartial = 1635;
115
116 public const int featInquisitor = 1416;
117
118 public const int featSevenSense = 1245;
119
120 public const int featWhiteVixen = 1414;
121
122 public const int featCosmicHorror = 1233;
123
124 public const int featHeavyEater = 1234;
125
126 public const int featLightEater = 1235;
127
128 public const int featNorland = 1236;
129
130 public const int featRoran = 1237;
131
132 public const int featElder = 1238;
133
134 public const int featDemon = 1239;
135
136 public const int featMassSummoner = 1240;
137
138 public const int featMeatCushion = 1241;
139
140 public const int featGeneSlot = 1242;
141
142 public const int featEternalYouth = 1243;
143
144 public const int featCentaur = 1244;
145
146 public const int featPegasus = 1246;
147
148 public const int featBaby = 1232;
149
150 public const int featLibra = 1247;
151
152 public const int featBloodBond = 1249;
153
154 public const int featVampire = 1250;
155
156 public const int featAshborn = 1251;
157
158 public const int featFoxMaid = 1415;
159
160 public const int featGoodKarma = 1270;
161
162 public const int featBadKarma = 1271;
163
164 public const int featPeacemaker = 1272;
165
166 public const int featBloom = 1273;
167
168 public const int featSlimeEvolution = 1274;
169
170 public const int featBelovedOne = 1275;
171
172 public const int featHarem = 1276;
173
174 public const int featGoddess = 1290;
175
176 public const int featGod_element1 = 1300;
177
178 public const int featMiscreation = 1248;
179
180 public const int featNirvana = 1231;
181
182 public const int featAdam = 1230;
183
184 public const int featLittleOne = 1229;
185
186 public const int featSlowFood = 1200;
187
188 public const int featManaBond = 1201;
189
190 public const int featFastLearner = 1202;
191
192 public const int featGrowParts = 1203;
193
194 public const int featFairyWeak = 1204;
195
196 public const int featCannibalism = 1205;
197
198 public const int featMelilithCurse = 1206;
199
200 public const int featFoxBless = 1207;
201
202 public const int featFoxLearn = 1208;
203
204 public const int featFluffyTail = 1209;
205
206 public const int featUndead = 1210;
207
208 public const int featSnail = 1211;
209
210 public const int featFairyResist = 1212;
211
212 public const int featElea = 1213;
213
214 public const int featManaPrecision = 1214;
215
216 public const int featDwarf = 1215;
217
218 public const int featSuccubus = 1216;
219
220 public const int featGolem = 1217;
221
222 public const int featMetal = 1218;
223
224 public const int featElderCrab = 1219;
225
226 public const int featFate = 1220;
227
228 public const int featSpike = 1221;
229
230 public const int featSplit = 1222;
231
232 public const int featAcidBody = 1223;
233
234 public const int featShiva = 1224;
235
236 public const int featLoyal = 1225;
237
238 public const int featUnderground = 1226;
239
240 public const int featServant = 1227;
241
242 public const int featDemigod = 1228;
243
244 public const int featGod_earth1 = 1305;
245
246 public const int featGod_wind1 = 1310;
247
248 public const int featAquatic = 1252;
249
250 public const int featGod_healing1 = 1320;
251
252 public const int featFairysan = 1413;
253
254 public const int featLuckyCat = 1412;
255
256 public const int featEarthStrength = 1411;
257
258 public const int featReboot = 1410;
259
260 public const int featBoost = 1409;
261
262 public const int featPaladin2 = 1408;
263
264 public const int featPaladin = 1407;
265
266 public const int featTourist = 1406;
267
268 public const int featPianist = 1405;
269
270 public const int featGod_machine1 = 1315;
271
272 public const int featArcher = 1404;
273
274 public const int featWizard = 1402;
275
276 public const int featThief = 1401;
277
278 public const int featWarrior = 1400;
279
280 public const int featGod_strife1 = 1355;
281
282 public const int featGod_moonshadow1 = 1350;
283
284 public const int featGod_trickery1 = 1345;
285
286 public const int featGod_oblivion1 = 1340;
287
288 public const int featGod_harmony1 = 1335;
289
290 public const int featGod_luck1 = 1330;
291
292 public const int featGod_harvest1 = 1325;
293
294 public const int featFarmer = 1403;
295
296 public static readonly int[] IDS = new int[145]
297 {
298 1622, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1632,
299 1631, 1420, 1620, 1612, 1611, 1610, 1426, 1425, 1424, 1423,
300 1422, 1421, 1633, 1419, 1418, 1621, 1634, 1650, 1636, 1417,
301 1750, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655,
302 1654, 1653, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 1644,
303 1643, 1642, 1641, 1640, 1635, 1416, 1245, 1414, 1233, 1234,
304 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
305 1246, 1232, 1247, 1249, 1250, 1251, 1415, 1270, 1271, 1272,
306 1273, 1274, 1275, 1276, 1290, 1300, 1248, 1231, 1230, 1229,
307 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
308 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
309 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1305,
310 1310, 1252, 1320, 1413, 1412, 1411, 1410, 1409, 1408, 1407,
311 1406, 1405, 1315, 1404, 1402, 1401, 1400, 1355, 1350, 1345,
312 1340, 1335, 1330, 1325, 1403
313 };
314}
315public class Feat : Element
316{
317 public static List<string> hints = new List<string>();
318
319 public static string[] featRef = new string[5];
320
321 public override bool ShowBonuses => false;
322
323 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
324
325 public override string FullName
326 {
327 get
328 {
329 string[] array = base.source.GetText().SplitNewline();
330 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (" " + base.Value) : "");
331 }
332 }
333
334 public override bool ShowXP => false;
335
336 public override bool ShowValue => false;
337
338 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
339
340 public override bool CanLink(ElementContainer owner)
341 {
342 return !base.IsGlobalElement;
343 }
344
345 public override Sprite GetIcon(string suffix = "")
346 {
347 return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_Feat");
348 }
349
350 public override void OnWriteNote(UINote n, ElementContainer owner)
351 {
352 Apply(base.Value, owner, hint: true);
353 foreach (string hint in hints)
354 {
355 n.AddText("_bullet".lang() + hint);
356 }
357 }
358
360 {
361 string text = "";
362 Apply(base.Value, owner, hint: true);
363 foreach (string hint in hints)
364 {
365 text = text + hint.StripLastPun() + ", ";
366 }
367 return text.TrimEnd(' ').TrimEnd(',');
368 }
369
370 public override bool IsPurchaseFeatReqMet(ElementContainer owner, int lv = -1)
371 {
372 if (base.source.req.Length != 0)
373 {
374 Element element = owner.GetElement(base.source.req[0]);
375 if (element == null || element.ValueWithoutLink < ((base.source.req.Length == 1) ? 1 : base.source.req[Mathf.Clamp(((lv == -1 && owner != null) ? owner.Value(id) : lv) + 1, 1, base.source.req.Length - 1)].ToInt()))
376 {
377 return false;
378 }
379 }
380 return true;
381 }
382
383 public override void WritePurchaseReq(UINote n, int lv = -1)
384 {
385 if (base.source.req.Length != 0)
386 {
387 Element element = Element.Create(base.source.req[0], (base.source.req.Length == 1) ? 1 : base.source.req[Mathf.Clamp(((lv == -1 && owner != null) ? owner.Value(id) : lv) + 1, 1, base.source.req.Length - 1)].ToInt());
388 if (element != null)
389 {
390 n.AddHeader("featReq");
391 n.AddText(element.Name + ": " + element.Value, FontColor.Bad);
392 }
393 }
394 }
395
396 public List<string> Apply(int a, ElementContainer owner, bool hint = false)
397 {
398 if (hint)
399 {
400 hints.Clear();
401 }
403 {
404 feat = this,
405 owner = owner,
406 hint = hint
407 };
408 elinFeatApplyEventArgs.SetData(a);
409 BaseModManager.PublishEvent("elin.feat.apply", elinFeatApplyEventArgs);
410 a = elinFeatApplyEventArgs.data;
411 int value = base.Value;
412 int A = Mathf.Abs(a);
413 int invert = ((a >= 0) ? 1 : (-1));
414 if (hint)
415 {
416 featRef[0] = a.ToString() ?? "";
417 featRef[1] = a.ToString() ?? "";
418 }
419 Chara chara = owner.Chara;
420 int num = vPotential;
421 if (!hint && a > 0 && chara != null)
422 {
423 num = (vPotential = chara.LV);
424 }
425 switch (id)
426 {
427 case 1660:
428 featRef[0] = (a * 25).ToString() ?? "";
429 break;
430 case 1206:
431 ModBase(78, -a * 10, hide: false);
432 break;
433 case 1642:
434 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ?? "";
435 break;
436 case 1643:
437 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ?? "";
438 break;
439 case 1610:
440 ModBase(60, a * 4, hide: false);
441 break;
442 case 1611:
443 ModBase(61, a * 4, hide: false);
444 break;
445 case 1612:
446 ModBase(62, a * 4, hide: false);
447 break;
448 case 1620:
449 ModAttribute(70);
450 break;
451 case 1621:
452 ModAttribute(72);
453 break;
454 case 1622:
455 ModAttribute(71);
456 break;
457 case 1623:
458 ModAttribute(73);
459 break;
460 case 1626:
461 ModAttribute(75);
462 break;
463 case 1625:
464 ModAttribute(76);
465 break;
466 case 1627:
467 ModAttribute(77);
468 break;
469 case 1624:
470 ModAttribute(74);
471 break;
472 case 1629:
473 ModBase(79, a * 5, hide: false);
474 break;
475 case 1630:
476 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide: false);
477 break;
478 case 1631:
479 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide: false);
480 break;
481 case 1632:
482 ModBase(150, a * 2, hide: false);
483 break;
484 case 1633:
485 ModBase(210, a * 3, hide: false);
486 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide: false);
487 break;
488 case 1634:
489 ModBase(291, a * 4, hide: false);
490 break;
491 case 1635:
492 ModBase(100, a * 3, hide: false);
493 break;
494 case 1636:
495 ModBase(306, a * 4, hide: false);
496 break;
497 case 1628:
498 ModBase(78, a * 2, hide: false);
499 break;
500 case 1640:
501 ModBase(77, a * 2, hide: false);
502 break;
503 case 1400:
504 featRef[0] = (a * 10).ToString() ?? "";
505 break;
506 case 1404:
507 featRef[0] = (a * 10).ToString() ?? "";
508 break;
509 case 1401:
510 ModBase(78, a * 15, hide: false);
511 break;
512 case 1406:
513 featRef[0] = (a * 20).ToString() ?? "";
514 featRef[1] = (a * 5).ToString() ?? "";
515 break;
516 case 1644:
517 featRef[0] = a.ToString() ?? "";
518 if (!hint)
519 {
520 if (a > 0)
521 {
523 }
524 else
525 {
526 _ = a;
527 _ = 0;
528 }
529 if (owner.Chara.IsPC && (bool)WidgetEquip.Instance)
530 {
532 }
533 }
534 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide: false);
535 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide: false);
536 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide: false);
537 break;
538 case 1230:
539 ModBase(60, A * 2 * invert, hide: false);
540 ModBase(79, A * 3 * invert, hide: false);
541 break;
542 case 1204:
543 ModBase(64, a * 50, hide: true);
544 ModBase(401, a, hide: false);
545 break;
546 case 1202:
547 ModBase(403, a * 20, hide: true);
548 break;
549 case 1210:
550 ModBase(955, a * 5, hide: false);
551 ModBase(953, a * 10, hide: false);
552 ModBase(958, a * 5, hide: false);
553 ModBase(956, a * 10, hide: false);
554 ModBase(950, a * -5, hide: false);
555 ModBase(960, a * -5, hide: false);
556 ModBase(423, a, hide: false);
557 break;
558 case 1290:
559 ModBase(418, a * 100, hide: false);
560 break;
561 case 1239:
562 ModBase(956, a * 5, hide: false);
563 ModBase(959, a * 5, hide: false);
564 ModBase(423, a, hide: false);
565 ModBase(424, a, hide: false);
566 ModBase(421, a, hide: false);
567 break;
568 case 1233:
569 ModBase(954, a * 10, hide: false);
570 ModBase(423, a, hide: false);
571 ModBase(425, a, hide: false);
572 ModBase(424, a, hide: false);
573 ModBase(421, a, hide: false);
574 break;
575 case 1226:
576 ModBase(955, a * 5, hide: false);
577 ModBase(953, a * 5, hide: false);
578 break;
579 case 1212:
580 ModBase(961, a * 5, hide: false);
581 ModBase(953, a * 5, hide: false);
582 ModBase(958, a * 5, hide: false);
583 ModBase(956, a * 5, hide: false);
584 ModBase(954, a * 5, hide: false);
585 ModBase(957, a * 5, hide: false);
586 ModBase(959, a * 5, hide: false);
587 break;
588 case 1213:
589 ModBase(962, a * 20, hide: false);
590 break;
591 case 1224:
592 ModBase(951, a * 15, hide: false);
593 break;
594 case 1217:
595 ModBase(952, a * -10, hide: false);
596 ModBase(955, a * 20, hide: false);
597 ModBase(964, a * 20, hide: false);
598 break;
599 case 1218:
600 ModBase(950, a / 40, hide: false);
601 ModBase(952, a / 40, hide: false);
602 ModBase(955, a / 40, hide: false);
603 ModBase(953, a / 40, hide: false);
604 ModBase(958, a / 40, hide: false);
605 ModBase(956, a / 40, hide: false);
606 ModBase(954, a / 40, hide: false);
607 ModBase(959, a / 40, hide: false);
608 ModBase(964, a / 40, hide: false);
609 ModBase(961, a / 40, hide: false);
610 break;
611 case 1221:
612 ModBase(964, a * 20, hide: false);
613 break;
614 case 1223:
615 ModBase(963, a * 20, hide: false);
616 break;
617 case 1216:
618 ModBase(6020, a, hide: false);
619 break;
620 case 1250:
621 ModBase(950, a * -10, hide: false);
622 ModBase(951, a * 5, hide: false);
623 ModBase(961, a * 5, hide: false);
624 ModBase(8793, a, hide: false);
625 ModBase(6607, a, hide: false);
626 break;
627 case 1415:
628 ModBase(60, a * 15, hide: false);
629 ModBase(79, a * 5, hide: false);
630 ModBase(953, a * 3, hide: false);
631 ModBase(961, a, hide: false);
632 ModBase(960, a, hide: false);
633 break;
634 case 1419:
635 ModPotential(101, a * 50);
636 ModPotential(111, a * 50);
637 ModPotential(103, a * 50);
638 ModPotential(106, a * 50);
639 ModPotential(122, a * 50);
640 ModPotential(120, a * 50);
641 ModPotential(123, a * 50);
642 break;
643 case 1274:
644 featRef[3] = (a - 7).ToString() ?? "";
645 break;
646 case 1750:
647 {
648 string[] array = featRef;
649 int num2 = a;
650 array[0] = num2.ToString() ?? "";
651 featRef[1] = (a * 2).ToString() ?? "";
652 break;
653 }
654 case 1532:
655 ModBase(73, -a * 5, hide: false);
656 break;
657 case 1533:
658 ModBase(73, a * 5, hide: false);
659 break;
660 case 1510:
661 ModBase(65, a * 3, hide: false);
662 break;
663 case 1511:
664 ModBase(65, -a * 3, hide: false);
665 break;
666 case 1512:
667 ModBase(73, a * 5, hide: false);
668 break;
669 case 1513:
670 ModBase(73, -a * 5, hide: false);
671 break;
672 case 1514:
673 ModBase(72, a * 3, hide: false);
674 break;
675 case 1515:
676 ModBase(72, -a * 3, hide: false);
677 break;
678 case 1516:
679 ModBase(300, a * 4, hide: false);
680 break;
681 case 1517:
682 ModBase(300, -a * 4, hide: false);
683 break;
684 case 1518:
685 ModBase(79, a * 5, hide: false);
686 break;
687 case 1519:
688 ModBase(79, -a * 5, hide: false);
689 break;
690 case 1520:
691 ModBase(70, a * 3, hide: false);
692 break;
693 case 1521:
694 ModBase(70, -a * 3, hide: false);
695 break;
696 case 1522:
697 ModBase(77, a * 5, hide: false);
698 break;
699 case 1523:
700 ModBase(77, -a * 5, hide: false);
701 break;
702 case 1524:
703 ModBase(307, a * 4, hide: false);
704 break;
705 case 1525:
706 ModBase(307, -a * 4, hide: false);
707 break;
708 case 1526:
709 ModBase(951, a * 5, hide: false);
710 ModBase(950, -a * 5, hide: false);
711 break;
712 case 1527:
713 ModBase(951, -a * 5, hide: false);
714 ModBase(950, a * 5, hide: false);
715 break;
716 case 1528:
717 ModBase(952, a * 5, hide: false);
718 break;
719 case 1529:
720 ModBase(952, -a * 5, hide: false);
721 break;
722 case 1530:
723 ModBase(960, a * 5, hide: false);
724 ModBase(956, -a * 5, hide: false);
725 break;
726 case 1531:
727 ModBase(960, -a * 5, hide: false);
728 ModBase(956, a * 5, hide: false);
729 break;
730 case 1300:
731 case 1305:
732 case 1310:
733 case 1315:
734 case 1320:
735 case 1325:
736 case 1330:
737 case 1335:
738 case 1340:
739 case 1345:
740 case 1350:
741 case 1355:
742 GodHint();
743 break;
744 case 1550:
745 ModBase(404, -a * 10, hide: false);
746 break;
747 case 1551:
748 ModBase(77, -a * (4 + num / 5), hide: false);
749 break;
750 case 1552:
751 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide: false);
752 if (!hint && a > 0)
753 {
754 chara?.body.UnequipAll(39);
755 }
756 break;
757 case 1553:
758 ModBase(73, a * (5 + num / 3), hide: false);
759 ModBase(77, -a * (5 + num / 3), hide: false);
760 break;
761 case 1554:
762 ModBase(404, a * 10, hide: false);
763 ModBase(401, a, hide: false);
764 ModBase(79, a * (10 + num / 5), hide: false);
765 if (!hint && a > 0)
766 {
767 chara?.body.UnequipAll(33);
768 }
769 break;
770 case 1555:
771 ModBase(65, a * (12 + num), hide: false);
772 ModBase(77, -a * (5 + num / 5), hide: false);
773 if (!hint && a > 0)
774 {
775 chara?.body.UnequipAll(31);
776 }
777 break;
778 case 1556:
779 ModBase(64, -a * (10 + num), hide: false);
780 ModBase(67, a * (5 + num / 2), hide: false);
781 break;
782 case 1557:
783 ModBase(71, -a * (5 + num / 3), hide: false);
784 ModBase(72, -a * (4 + num / 4), hide: false);
785 ModBase(74, a * (6 + num / 2), hide: false);
786 ModBase(75, a * (2 + num / 6), hide: false);
787 break;
788 case 1560:
789 ModBase(60, -a * 15, hide: false);
790 ModBase(70, -a * (4 + num / 3), hide: false);
791 break;
792 case 1561:
793 ModBase(61, -a * 15, hide: false);
794 ModBase(76, -a * (4 + num / 3), hide: false);
795 break;
796 case 1562:
797 ModBase(65, a * (15 + num / 2), hide: false);
798 ModBase(79, -a * (10 + num / 5), hide: false);
799 break;
800 case 1563:
801 ModBase(77, -a * (3 + num / 4), hide: false);
802 break;
803 case 1564:
804 ModBase(961, a * 5, hide: false);
805 break;
806 case 1565:
807 ModBase(955, a * 20, hide: false);
808 break;
809 }
810 if (hint)
811 {
812 string text = base.source.GetText("textExtra");
813 if (!text.IsEmpty())
814 {
815 string text2 = text.SplitNewline().TryGet(value - 1, 99);
816 if (!text2.IsEmpty())
817 {
818 int num3 = 0;
819 string[] array2 = text2.Split(',');
820 foreach (string obj in array2)
821 {
822 string text3 = featRef[num3];
823 string text4 = obj;
824 if (text3.ToInt() < 0)
825 {
826 text4 = text4.Replace("+#1", text3);
827 }
828 text4 = text4.Replace("#1", text3);
829 hints.Add(text4);
830 num3++;
831 }
832 }
833 }
834 }
835 return hints;
836 void GodHint()
837 {
838 if (!hint)
839 {
840 return;
841 }
842 foreach (Element value2 in owner.Card.Chara.faithElements.dict.Values)
843 {
844 if (value2.source.id != id)
845 {
846 NoteElement(value2.id, value2.Value);
847 }
848 }
849 }
850 void ModAttribute(int ele)
851 {
852 _ = hint;
853 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide: false);
854 ModPotential(ele, a * 10);
855 }
856 void ModBase(int ele, int _v, bool hide)
857 {
858 if (!hint)
859 {
860 owner.ModBase(ele, _v);
861 }
862 if (!hide && _v != 0)
863 {
864 NoteElement(ele, _v);
865 }
866 }
867 void ModPotential(int ele, int _v)
868 {
869 if (!hint)
870 {
871 owner.ModPotential(ele, _v);
872 }
873 Note("modPotential".lang(EClass.sources.elements.map[ele].GetName(), "+" + _v + "%"));
874 }
875 void Note(string s)
876 {
877 if (hint)
878 {
879 hints.Add(s);
880 }
881 }
882 void NoteElement(int ele, int a)
883 {
885 if (row.category == "ability")
886 {
887 Note("hintLearnAbility".lang(row.GetName().ToTitleCase()));
888 }
889 else if (row.tag.Contains("flag"))
890 {
891 Note(row.GetName());
892 }
893 else
894 {
895 string @ref = ((a < 0) ? "" : "+") + a;
896 if (row.category == "resist")
897 {
898 int num4 = 0;
899 @ref = ((a > 0) ? "+" : "-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
900 Note("modValueRes".lang(row.GetName(), @ref));
901 }
902 else
903 {
904 Note("modValue".lang(row.GetName(), @ref));
905 }
906 }
907 }
908 }
909}
@ ModPotential
@ hint
FontColor
Definition: FontColor.cs:2
static void PublishEvent(string eventId, object data=null)
virtual Chara Chara
Definition: Card.cs:2108
int LV
Definition: Card.cs:387
void UnequipAll(int idSlot)
Definition: CharaBody.cs:57
Definition: Chara.cs:10
CharaBody body
Definition: Chara.cs:94
override bool IsPC
Definition: Chara.cs:626
void AddRandomBodyPart(bool msg=false)
Definition: Chara.cs:2241
ElementContainer faithElements
Definition: Chara.cs:38
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
virtual void SetData(T newData)
Definition: EVENT.cs:11
Dictionary< int, Element > dict
Element ModPotential(int ele, int v)
virtual Card Card
int Value(int ele)
Element ModBase(int ele, int v)
virtual Chara Chara
Element GetElement(string alias)
int ValueWithoutLink
Definition: ELEMENT.cs:299
int id
Definition: ELEMENT.cs:255
SourceElement.Row source
Definition: ELEMENT.cs:278
int vPotential
Definition: ELEMENT.cs:261
ElementContainer owner
Definition: ELEMENT.cs:271
int Value
Definition: ELEMENT.cs:297
virtual string Name
Definition: ELEMENT.cs:309
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1115
Definition: FEAT.cs:5
const int featManaCost
Definition: FEAT.cs:80
const int featElite
Definition: FEAT.cs:42
const int featDemon
Definition: FEAT.cs:134
const int featLonelySoul
Definition: FEAT.cs:100
const int featUnderground
Definition: FEAT.cs:238
const int featMiscreation
Definition: FEAT.cs:178
const int featAdam
Definition: FEAT.cs:182
const int featWitch
Definition: FEAT.cs:64
const int featLuckyCat
Definition: FEAT.cs:254
const int featShiva
Definition: FEAT.cs:234
const int featCannibalism
Definition: FEAT.cs:196
const int featMartial
Definition: FEAT.cs:114
const int featFairysan
Definition: FEAT.cs:252
const int featBoost
Definition: FEAT.cs:260
const int featNirvana
Definition: FEAT.cs:180
const int featSPD
Definition: FEAT.cs:10
const int featSnail
Definition: FEAT.cs:208
const int featSwordsage
Definition: FEAT.cs:54
const int featEvade
Definition: FEAT.cs:24
const int featModelBeliever
Definition: FEAT.cs:84
const int featEternalYouth
Definition: FEAT.cs:142
const int featAcidBody
Definition: FEAT.cs:232
const int featBloom
Definition: FEAT.cs:166
const int featGeneSlot
Definition: FEAT.cs:140
const int featMelilithCurse
Definition: FEAT.cs:198
const int featTourist
Definition: FEAT.cs:266
const int featGod_element1
Definition: FEAT.cs:176
const int featFate
Definition: FEAT.cs:226
const int featServant
Definition: FEAT.cs:240
const int featAshborn
Definition: FEAT.cs:156
const int featDEX
Definition: FEAT.cs:56
const int featNorland
Definition: FEAT.cs:128
const int featGoodKarma
Definition: FEAT.cs:160
const int featFastEater
Definition: FEAT.cs:68
const int featFaith
Definition: FEAT.cs:62
const int featExecutioner
Definition: FEAT.cs:28
const int featArcher
Definition: FEAT.cs:272
const int featEND
Definition: FEAT.cs:6
const int featPaladin
Definition: FEAT.cs:264
const int featSuccubus
Definition: FEAT.cs:218
const int featBelovedOne
Definition: FEAT.cs:170
const int featPaladin2
Definition: FEAT.cs:262
const int featRoran
Definition: FEAT.cs:130
const int featLightEater
Definition: FEAT.cs:126
const int featHardy
Definition: FEAT.cs:8
const int featHeavyCasting
Definition: FEAT.cs:86
const int featGolem
Definition: FEAT.cs:220
const int featNeckHunter
Definition: FEAT.cs:38
const int featFisher
Definition: FEAT.cs:76
const int featMagicManner
Definition: FEAT.cs:92
const int featHealer
Definition: FEAT.cs:46
const int featElea
Definition: FEAT.cs:212
const int featDreamWaker
Definition: FEAT.cs:88
const int featMetal
Definition: FEAT.cs:222
const int featLoyal
Definition: FEAT.cs:236
const int featManaPrecision
Definition: FEAT.cs:214
const int featScavenger
Definition: FEAT.cs:82
const int featMassSummoner
Definition: FEAT.cs:136
const int featLuck
Definition: FEAT.cs:12
const int featMimic
Definition: FEAT.cs:40
const int featFoxLearn
Definition: FEAT.cs:202
const int featAquatic
Definition: FEAT.cs:248
const int featBodyParts
Definition: FEAT.cs:104
const int featSTR
Definition: FEAT.cs:30
const int featDefense
Definition: FEAT.cs:26
const int featManaBond
Definition: FEAT.cs:188
const int featFastLearner
Definition: FEAT.cs:190
const int featGod_wind1
Definition: FEAT.cs:246
const int featPeaky
Definition: FEAT.cs:44
const int featSplit
Definition: FEAT.cs:230
const int featLER
Definition: FEAT.cs:20
const int featPER
Definition: FEAT.cs:22
const int featDwarf
Definition: FEAT.cs:216
const int featFairyWeak
Definition: FEAT.cs:194
const int featInquisitor
Definition: FEAT.cs:116
const int featGod_trickery1
Definition: FEAT.cs:284
const int featCosmicHorror
Definition: FEAT.cs:122
const int featSummoner
Definition: FEAT.cs:98
const int featEarthStrength
Definition: FEAT.cs:256
const int featSorter
Definition: FEAT.cs:106
const int featWhiteVixen
Definition: FEAT.cs:120
const int featManaMeat
Definition: FEAT.cs:48
const int featGod_healing1
Definition: FEAT.cs:250
const int featReboot
Definition: FEAT.cs:258
const int featMAG
Definition: FEAT.cs:18
const int featSevenSense
Definition: FEAT.cs:118
const int featBadKarma
Definition: FEAT.cs:162
const int featRapidMagic
Definition: FEAT.cs:96
const int featFluffyTail
Definition: FEAT.cs:204
const int featLibra
Definition: FEAT.cs:150
const int featGourmet
Definition: FEAT.cs:60
const int featResCurse
Definition: FEAT.cs:110
const int featMeatCushion
Definition: FEAT.cs:138
const int featBloodBond
Definition: FEAT.cs:152
const int featBaby
Definition: FEAT.cs:148
static readonly int[] IDS
Definition: FEAT.cs:296
const int featWIL
Definition: FEAT.cs:16
const int featFoxBless
Definition: FEAT.cs:200
const int featSpotting
Definition: FEAT.cs:50
const int featGod_moonshadow1
Definition: FEAT.cs:282
const int featSleeper
Definition: FEAT.cs:108
const int featStamina
Definition: FEAT.cs:32
const int featThief
Definition: FEAT.cs:276
const int featDismantler
Definition: FEAT.cs:72
const int featGoldenFinger
Definition: FEAT.cs:70
const int featVampire
Definition: FEAT.cs:154
const int featWarrior
Definition: FEAT.cs:278
const int featGod_strife1
Definition: FEAT.cs:280
const int featSlimeEvolution
Definition: FEAT.cs:168
const int featGod_harvest1
Definition: FEAT.cs:292
const int featAnimalLover
Definition: FEAT.cs:112
const int featSpike
Definition: FEAT.cs:228
const int featComat
Definition: FEAT.cs:66
const int featUndead
Definition: FEAT.cs:206
const int featCHA
Definition: FEAT.cs:14
const int featFairyResist
Definition: FEAT.cs:210
const int featHarem
Definition: FEAT.cs:172
const int featGod_earth1
Definition: FEAT.cs:244
const int featFoxMaid
Definition: FEAT.cs:158
const int featElderCrab
Definition: FEAT.cs:224
const int featGod_luck1
Definition: FEAT.cs:290
const int featPegasus
Definition: FEAT.cs:146
const int featHeavyEater
Definition: FEAT.cs:124
const int featCentaur
Definition: FEAT.cs:144
const int featGod_machine1
Definition: FEAT.cs:270
const int featMilitant
Definition: FEAT.cs:52
const int featRapidArrow
Definition: FEAT.cs:90
const int featLooter
Definition: FEAT.cs:74
const int featGrowParts
Definition: FEAT.cs:192
const int featDemigod
Definition: FEAT.cs:242
const int featParty
Definition: FEAT.cs:102
const int featPianist
Definition: FEAT.cs:268
const int featLittleOne
Definition: FEAT.cs:184
const int featChef
Definition: FEAT.cs:78
const int featDefender
Definition: FEAT.cs:94
const int featGoddess
Definition: FEAT.cs:174
const int featGod_harmony1
Definition: FEAT.cs:288
const int featElder
Definition: FEAT.cs:132
const int featPeacemaker
Definition: FEAT.cs:164
const int featMana
Definition: FEAT.cs:34
const int featWizard
Definition: FEAT.cs:274
const int featSlowFood
Definition: FEAT.cs:186
const int featLife
Definition: FEAT.cs:36
const int featGod_oblivion1
Definition: FEAT.cs:286
const int featFarmer
Definition: FEAT.cs:294
const int featNegotiate
Definition: FEAT.cs:58
Definition: FEAT.cs:316
List< string > Apply(int a, ElementContainer owner, bool hint=false)
Definition: FEAT.cs:396
override bool ShowValue
Definition: FEAT.cs:336
override string FullName
Definition: FEAT.cs:326
override Sprite GetIcon(string suffix="")
Definition: FEAT.cs:345
override bool ShowXP
Definition: FEAT.cs:334
static List< string > hints
Definition: FEAT.cs:317
override bool CanLink(ElementContainer owner)
Definition: FEAT.cs:340
static string[] featRef
Definition: FEAT.cs:319
string GetHint(ElementContainer owner)
Definition: FEAT.cs:359
override void WritePurchaseReq(UINote n, int lv=-1)
Definition: FEAT.cs:383
override bool IsPurchaseFeatReqMet(ElementContainer owner, int lv=-1)
Definition: FEAT.cs:370
override string Name
Definition: FEAT.cs:323
override void OnWriteNote(UINote n, ElementContainer owner)
Definition: FEAT.cs:350
override int CostLearn
Definition: FEAT.cs:338
override bool ShowBonuses
Definition: FEAT.cs:321
override string GetName()
SourceElement elements
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
Definition: UINote.cs:6
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
static WidgetEquip Instance
Definition: WidgetEquip.cs:11
void Rebuild()
Definition: WidgetEquip.cs:53