Elin Decompiled Documentation EA 23.153 Nightly
Loading...
Searching...
No Matches
Element Class Reference
Inheritance diagram for Element:
EClass Act AttbMain AttbSpecial AttbWeapon Culture Feat Level Piety RaceBonus Resistance Skill

Classes

class  BonusInfo
 

Public Member Functions

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)
 
void AddEncNote (UINote n, Card Card, ElementContainer.NoteMode mode=ElementContainer.NoteMode.Default, Func< Element, string, string > funcText=null, Action< UINote, Element > onAddNote=null)
 
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)
 

Static Public Member Functions

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 rndSeed (int a, int seed)
 
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)
 

Public Attributes

SourceElement.Row _source
 
int id
 
int vBase
 
int vExp
 
int vPotential
 
int vTempPotential
 
int vLink
 
int vSource
 
int vSourcePotential
 
ElementContainer owner
 

Static Public Attributes

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
 

Properties

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]
 

Detailed Description

Definition at line 86 of file ELEMENT.cs.

Member Function Documentation

◆ _WriteNote() [1/2]

void Element._WriteNote ( UINote  n,
Chara  c,
Act  act 
)
inline

Definition at line 604 of file ELEMENT.cs.

605 {
607 Act.Cost cost = e.GetCost(c);
608 int p = e.GetPower(c);
609 n.Space(6);
610 string text = source.GetText("textExtra");
611 if (!text.IsEmpty())
612 {
613 string[] array = text.Split(',');
614 foreach (string text2 in array)
615 {
616 if (text2.StartsWith("@"))
617 {
618 Condition condition = Condition.Create(text2.Replace("@", ""), p);
619 condition.owner = c;
620 if (!source.aliasRef.IsEmpty())
621 {
622 condition.SetElement(EClass.sources.elements.alias[source.aliasRef].id);
623 }
624 switch (act.id)
625 {
626 case 6902:
627 condition.SetRefVal(79, 268);
628 break;
629 case 8510:
630 case 8710:
631 condition.SetRefVal(79, (act.id == 8710) ? 222 : 221);
632 break;
633 }
634 n.AddText("_bullet".lang() + (condition.HasDuration ? "hintCon" : "hintCon2").lang(condition.Name, condition.EvaluateTurn(p).ToString() ?? ""));
635 condition._WriteNote(n, asChild: true);
636 }
637 else
638 {
639 string text3 = text2.Replace("#calc", Calc());
640 if (!source.aliasRef.IsEmpty())
641 {
642 text3 = text3.Replace("#ele", EClass.sources.elements.alias[source.aliasRef].GetName().ToLower());
643 }
644 n.AddText("_bullet".lang() + text3);
645 }
646 }
647 }
648 if (source.tag.Contains("syncRide"))
649 {
650 n.AddText("_bullet".lang() + "hintSyncRide".lang());
651 }
653 {
654 int i = id;
655 if (i != 8230 && i != 8232)
656 {
657 n.AddText("_bullet".lang() + "hintPartyAbility".lang());
658 }
659 }
660 if (!act.LocalAct)
661 {
662 n.Space();
663 n.AddText("isGlobalAct".lang());
664 }
665 if (cost.type == Act.CostType.None || cost.cost == 0)
666 {
667 return;
668 }
669 n.Space(4);
670 UIItem uIItem = n.AddExtra<UIItem>("costPrice");
671 int num = cost.cost;
672 if (cost.type == Act.CostType.MP)
673 {
674 if (c.Evalue(483) > 0)
675 {
676 num = cost.cost * 100 / (100 + (int)Mathf.Sqrt(c.Evalue(483) * 10) * 3);
677 }
678 if (c.IsPC && c.HasCondition<StanceManaCost>())
679 {
680 int num2 = c.Evalue(1657);
681 if (num2 > 0 && vPotential >= 2)
682 {
683 num = num * (100 - num2 * 20) / 100;
684 }
685 }
686 }
687 string text4 = cost.cost.ToString() ?? "";
688 if (num != cost.cost)
689 {
690 text4 = num + " (" + text4 + ")";
691 }
692 uIItem.text1.SetText(text4, (((cost.type == Act.CostType.MP) ? c.mana.value : c.stamina.value) >= num) ? FontColor.Good : FontColor.Bad);
693 uIItem.image1.sprite = ((cost.type == Act.CostType.MP) ? EClass.core.refs.icons.mana : EClass.core.refs.icons.stamina);
694 uIItem.image1.SetNativeSize();
695 string Calc()
696 {
697 Dice dice = Dice.Create(e, c);
698 if (dice == null)
699 {
700 return p.ToString() ?? "";
701 }
702 return dice.ToString();
703 }
704 }
FontColor
Definition: FontColor.cs:2
Definition: ACT.cs:62
CostType
Definition: ACT.cs:64
virtual bool LocalAct
Definition: ACT.cs:171
virtual bool HaveLongPressAction
Definition: ACT.cs:133
void SetElement(int id)
virtual bool HasDuration
virtual string Name
override void _WriteNote(UINote n, bool asChild=false)
virtual int EvaluateTurn(int p)
void SetRefVal(int a, int b)
ElementContainerCard elements
Definition: Card.cs:37
int Evalue(int ele)
Definition: Card.cs:2507
override bool IsPC
Definition: Chara.cs:608
bool HasCondition(string alias)
Definition: Chara.cs:8716
Stats stamina
Definition: Chara.cs:998
static Condition Create(string alias, int power=100, Action< Condition > onCreate=null)
Definition: Condition.cs:46
Sprite mana
Definition: CoreRef.cs:122
Sprite stamina
Definition: CoreRef.cs:124
Icons icons
Definition: CoreRef.cs:345
CoreRef refs
Definition: Core.cs:51
Definition: Dice.cs:4
override string ToString()
Definition: Dice.cs:91
static Dice Create(Element ele, Card c)
Definition: Dice.cs:96
Definition: EClass.cs:5
static Core core
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:42
Element GetOrCreateElement(Element ele)
int id
Definition: ELEMENT.cs:248
SourceElement.Row source
Definition: ELEMENT.cs:271
int vPotential
Definition: ELEMENT.cs:254
virtual int GetPower(Card c)
Definition: ELEMENT.cs:1068
virtual Act.Cost GetCost(Chara c)
Definition: ELEMENT.cs:1021
Act act
Definition: ELEMENT.cs:392
SourceElement elements
virtual int value
Definition: Stats.cs:56
Definition: UIItem.cs:5
Image image1
Definition: UIItem.cs:14
UIText text1
Definition: UIItem.cs:6
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
void Space(int sizeY=0, int sizeX=1)
Definition: UINote.cs:62
void SetText(string s)
Definition: UIText.cs:159
Definition: ACT.cs:71
CostType type
Definition: ACT.cs:74
int cost
Definition: ACT.cs:72

References BaseCondition._WriteNote(), act, UINote.AddText(), EClass.core, Act.Cost.cost, Dice.Create(), Condition.Create(), Card.elements, SourceManager.elements, BaseCondition.EvaluateTurn(), Card.Evalue(), GetCost(), ElementContainer.GetOrCreateElement(), GetPower(), Chara.HasCondition(), BaseCondition.HasDuration, Act.HaveLongPressAction, CoreRef.icons, id, UIItem.image1, Chara.IsPC, Act.LocalAct, CoreRef.Icons.mana, BaseCondition.Name, Core.refs, BaseCondition.SetElement(), BaseCondition.SetRefVal(), UIText.SetText(), source, EClass.sources, UINote.Space(), Chara.stamina, CoreRef.Icons.stamina, UIItem.text1, Dice.ToString(), Act.Cost.type, Stats.value, and vPotential.

Referenced by Thing.WriteNote(), WriteNote(), and WriteNoteWithRef().

◆ _WriteNote() [2/2]

void Element._WriteNote ( UINote  n,
ElementContainer  owner,
Action< UINote onWriteNote,
bool  isRef,
bool  addHeader = true 
)
inline

Definition at line 713 of file ELEMENT.cs.

714 {
715 if (addHeader)
716 {
717 if (isRef)
718 {
719 UIText.globalSizeMod = -2;
720 n.AddHeader("prevElement".lang(FullName));
721 }
722 else if (this is Act)
723 {
725 n.Space(8);
726 }
727 else
728 {
729 n.AddHeader(FullName.ToTitleCase(wholeText: true));
730 }
731 }
732 string detail = GetDetail();
733 if (!detail.IsEmpty())
734 {
735 n.AddText("NoteText_flavor_element", detail);
736 n.Space(6);
737 }
738 int num = vLink;
739 if (owner.Chara != null && owner.Chara.IsPCFaction)
740 {
742 }
743 bool flag = ShowValue;
744 bool flag2 = ShowRelativeAttribute;
745 if (source.category == "landfeat")
746 {
747 flag = false;
748 flag2 = false;
749 }
750 if (this is Act)
751 {
752 Act act = ACT.Create(source.id);
753 UIItem uIItem = n.AddItem("ItemAbility");
754 uIItem.text1.text = "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))));
755 uIItem.text2.text = act.TargetType.ToString().lang();
756 uIItem.text3.text = ((this is Spell) ? (owner.Chara.CalcCastingChance(owner.GetOrCreateElement(act.source.id)) + "%") : "-") ?? "";
757 }
758 else if (flag)
759 {
760 n.AddTopic("TopicLeft", "vCurrent".lang(), "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
761 if (ShowPotential)
762 {
763 num = vTempPotential;
764 n.AddTopic("TopicLeft", "vPotential".lang(), "vValue".lang(Potential.ToString() ?? "", vPotential + vSourcePotential + MinPotential + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
765 }
767 }
768 if (flag2 && !source.aliasParent.IsEmpty())
769 {
770 Element element = Create(source.aliasParent);
771 UIItem uIItem2 = n.AddItem("ItemRelativeAttribute");
772 uIItem2.text1.SetText(element.Name);
773 element.SetImage(uIItem2.image1);
774 bool flag3 = source.lvFactor > 0 && this is Act;
775 uIItem2.text2.SetActive(flag3);
776 uIItem2.text3.SetActive(flag3);
777 if (flag3)
778 {
779 uIItem2.text2.SetText(GetPower(EClass.pc).ToString() ?? "");
780 }
781 }
782 OnWriteNote(n, owner);
784 {
785 n.AddTopic("TopicLeft", "Class:", GetType()?.ToString() ?? "");
786 n.AddTopic("TopicLeft", "vExp".lang(), vExp.ToString() ?? "");
787 n.AddTopic("TopicLeft", "vSource", vSource.ToString() ?? "");
788 n.AddTopic("TopicLeft", "vSourcePotential", vSourcePotential.ToString() ?? "");
789 n.AddTopic("TopicLeft", "vPotential", vPotential.ToString() ?? "");
790 n.AddTopic("TopicLeft", "Potential", Potential.ToString() ?? "");
791 }
793 onWriteNote?.Invoke(n);
794 if (ShowBonuses && owner.Chara != null)
795 {
796 BonusInfo bonusInfo = new BonusInfo();
797 bonusInfo.ele = this;
798 bonusInfo.n = n;
799 bonusInfo.c = owner.Chara;
800 bonusInfo.WriteNote();
801 }
802 UIText.globalSizeMod = 0;
803 }
Definition: ACT.cs:6
static Act Create(int id)
Definition: ACT.cs:36
virtual TargetType TargetType
Definition: ACT.cs:142
Faction faction
Definition: Chara.cs:423
override void WriteNote(UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
Definition: Chara.cs:6747
int CalcCastingChance(Element e, int num=1)
Definition: Chara.cs:5677
override bool IsPCFaction
Definition: Chara.cs:667
bool showExtra
Definition: CoreDebug.cs:167
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
int Value(int ele)
virtual Chara Chara
virtual bool ShowPotential
Definition: ELEMENT.cs:330
virtual int DisplayValue
Definition: ELEMENT.cs:286
int ValueWithoutLink
Definition: ELEMENT.cs:292
int Potential
Definition: ELEMENT.cs:296
int vExp
Definition: ELEMENT.cs:252
ElementContainer owner
Definition: ELEMENT.cs:264
int vTempPotential
Definition: ELEMENT.cs:256
virtual string FullName
Definition: ELEMENT.cs:304
void AddHeaderAbility(UINote n)
Definition: ELEMENT.cs:706
void SetImage(Image i)
Definition: ELEMENT.cs:476
void CheckLevelBonus(ElementContainer owner, UINote n=null)
Definition: ELEMENT.cs:961
virtual bool ShowRelativeAttribute
Definition: ELEMENT.cs:336
virtual string Name
Definition: ELEMENT.cs:302
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1097
int vLink
Definition: ELEMENT.cs:258
virtual bool ShowBonuses
Definition: ELEMENT.cs:338
virtual bool PotentialAsStock
Definition: ELEMENT.cs:334
int vSource
Definition: ELEMENT.cs:260
int vSourcePotential
Definition: ELEMENT.cs:262
virtual void OnWriteNote(UINote n, ElementContainer owner)
Definition: ELEMENT.cs:953
virtual string GetDetail()
Definition: ELEMENT.cs:486
virtual int MinPotential
Definition: ELEMENT.cs:294
virtual bool ShowValue
Definition: ELEMENT.cs:328
ElementContainerFaction charaElements
Definition: FACTION.cs:146
Definition: SPELL.cs:527
UIText text3
Definition: UIItem.cs:10
UIText text2
Definition: UIItem.cs:8
UIItem AddItem(string id)
Definition: UINote.cs:139
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIItem AddTopic(string id, string text, string value=null)
Definition: UINote.cs:144

References act, UINote.AddHeader(), AddHeaderAbility(), UINote.AddItem(), UINote.AddText(), UINote.AddTopic(), Chara.CalcCastingChance(), ElementContainer.Chara, Faction.charaElements, CheckLevelBonus(), ACT.Create(), Create(), EClass.debug, DisplayValue, Chara.faction, FullName, GetDetail(), ElementContainer.GetOrCreateElement(), GetPower(), UIItem.image1, Chara.IsPCFaction, MinPotential, Name, OnWriteNote(), owner, EClass.pc, Potential, PotentialAsStock, SetImage(), UIText.SetText(), ShowBonuses, CoreDebug.showExtra, ShowPotential, ShowRelativeAttribute, ShowValue, source, UINote.Space(), Act.TargetType, UIItem.text1, UIItem.text2, UIItem.text3, ElementContainer.Value(), ValueWithoutLink, vExp, vLink, vPotential, vSource, vSourcePotential, vTempPotential, and Element.BonusInfo.WriteNote().

◆ AddEncNote()

void Element.AddEncNote ( UINote  n,
Card  Card,
ElementContainer::NoteMode  mode = ElementContainer::NoteMode::Default,
Func< Element, string, string >  funcText = null,
Action< UINote, Element onAddNote = null 
)
inline

Definition at line 805 of file ELEMENT.cs.

806 {
807 string text = "";
808 switch (mode)
809 {
810 case ElementContainer.NoteMode.Domain:
811 n.AddText(Name, FontColor.Default);
812 return;
813 case ElementContainer.NoteMode.Default:
814 case ElementContainer.NoteMode.BonusTrait:
815 {
816 bool flag = source.tag.Contains("common");
817 string categorySub = source.categorySub;
818 bool flag2 = false;
819 bool flag3 = (source.tag.Contains("neg") ? (Value > 0) : (Value < 0));
820 int num = Mathf.Abs(Value);
821 bool flag4 = Card?.ShowFoodEnc ?? false;
822 bool flag5 = Card != null && Card.IsWeapon && this is Ability;
823 if (IsTrait || (flag4 && IsFoodTrait))
824 {
825 string[] textArray = source.GetTextArray("textAlt");
826 int num2 = Mathf.Clamp(Value / 10 + 1, (Value < 0 || textArray.Length <= 2) ? 1 : 2, textArray.Length - 1);
827 text = "altEnc".lang(textArray[0].IsEmpty(Name), textArray[num2], EClass.debug.showExtra ? (Value + " " + Name) : "");
828 flag3 = num2 <= 1 || textArray.Length <= 2;
829 flag2 = true;
830 }
831 else if (flag5)
832 {
833 text = "isProc".lang(Name);
834 flag3 = false;
835 }
836 else if (categorySub == "resist")
837 {
838 text = ("isResist" + (flag3 ? "Neg" : "")).lang(Name);
839 }
840 else if (categorySub == "eleAttack")
841 {
842 text = "isEleAttack".lang(Name);
843 }
844 else if (!source.textPhase.IsEmpty() && Value > 0)
845 {
846 text = source.GetText("textPhase");
847 }
848 else
849 {
850 string name = Name;
851 bool flag6 = source.category == "skill" || (source.category == "attribute" && !source.textPhase.IsEmpty());
852 bool flag7 = source.category == "enchant";
853 if (source.tag.Contains("multiplier"))
854 {
855 flag6 = (flag7 = false);
856 name = EClass.sources.elements.alias[source.aliasRef].GetName();
857 }
858 flag2 = !(flag6 || flag7);
859 text = (flag6 ? "textEncSkill" : (flag7 ? "textEncEnc" : "textEnc")).lang(name, num + (source.tag.Contains("ratio") ? "%" : ""), ((Value > 0) ? "encIncrease" : "encDecrease").lang());
860 }
861 int num3 = ((!(this is Resistance)) ? 1 : 0);
862 int num4 = 5;
863 if (id == 484)
864 {
865 num3 = 0;
866 num4 = 1;
867 }
868 if (!flag && !flag2 && !source.tag.Contains("flag"))
869 {
870 text = text + " [" + "*".Repeat(Mathf.Clamp(num * source.mtp / num4 + num3, 1, 5)) + ((num * source.mtp / num4 + num3 > 5) ? "+" : "") + "]";
871 }
872 if (HasTag("hidden") && mode != ElementContainer.NoteMode.BonusTrait)
873 {
874 text = "(debug)" + text;
875 }
876 FontColor color = (flag ? FontColor.Default : (flag3 ? FontColor.Bad : FontColor.Good));
877 if (IsGlobalElement)
878 {
879 text = text + " " + (IsFactionWideElement ? "_factionWide" : "_partyWide").lang();
880 if (!IsActive(Card))
881 {
882 return;
883 }
884 color = FontColor.Myth;
885 }
886 if (flag4 && IsFoodTrait && !IsFoodTraitMain)
887 {
888 color = FontColor.FoodMisc;
889 }
890 if (id == 2 && Value >= 0)
891 {
892 color = FontColor.FoodQuality;
893 }
894 if (funcText != null)
895 {
896 text = funcText(this, text);
897 }
898 UIItem uIItem = n.AddText("NoteText_enc", text, color);
899 Sprite sprite = EClass.core.refs.icons.enc.enc;
900 Thing thing = Card?.Thing;
901 if (thing != null)
902 {
903 if (thing.material.HasEnc(id))
904 {
905 sprite = EClass.core.refs.icons.enc.mat;
906 }
907 foreach (int key in thing.source.elementMap.Keys)
908 {
909 if (key == id)
910 {
911 sprite = EClass.core.refs.icons.enc.card;
912 }
913 }
914 if (thing.ShowFoodEnc && IsFoodTrait)
915 {
917 }
918 if (id == thing.GetInt(107))
919 {
920 sprite = EClass.core.refs.icons.enc.cat;
921 }
922 if (thing.GetRuneEnc(id) != null)
923 {
924 sprite = EClass.core.refs.icons.enc.rune;
925 }
926 }
927 if ((bool)sprite)
928 {
929 uIItem.image1.SetActive(enable: true);
930 uIItem.image1.sprite = sprite;
931 }
932 uIItem.image2.SetActive(source.IsWeaponEnc);
933 onAddNote?.Invoke(n, this);
934 return;
935 }
936 }
937 UIItem uIItem2 = n.AddTopic("TopicAttribute", Name, "".TagColor((ValueWithoutLink > 0) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad, ValueWithoutLink.ToString() ?? ""));
938 if ((bool)uIItem2.button1)
939 {
940 uIItem2.button1.tooltip.onShowTooltip = delegate(UITooltip t)
941 {
943 };
944 }
945 SetImage(uIItem2.image1);
946 Image image = uIItem2.image2;
947 int value = (Potential - 80) / 20;
948 image.enabled = Potential != 80;
949 image.sprite = EClass.core.refs.spritesPotential[Mathf.Clamp(Mathf.Abs(value), 0, EClass.core.refs.spritesPotential.Count - 1)];
950 image.color = ((Potential - 80 >= 0) ? Color.white : new Color(1f, 0.7f, 0.7f));
951 }
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
Definition: Card.cs:11
SourceMaterial.Row material
Definition: Card.cs:1987
SocketData GetRuneEnc(int idEle)
Definition: Card.cs:3485
virtual Thing Thing
Definition: Card.cs:1994
bool ShowFoodEnc
Definition: Card.cs:2126
Sprite traitFood
Definition: CoreRef.cs:71
List< Sprite > spritesPotential
Definition: CoreRef.cs:365
bool HasTag(string tag)
Definition: ELEMENT.cs:471
int Value
Definition: ELEMENT.cs:290
bool IsFoodTrait
Definition: ELEMENT.cs:362
void WriteNote(UINote n, ElementContainer owner=null, Action< UINote > onWriteNote=null)
Definition: ELEMENT.cs:582
bool IsGlobalElement
Definition: ELEMENT.cs:343
bool IsTrait
Definition: ELEMENT.cs:360
bool IsFactionWideElement
Definition: ELEMENT.cs:354
bool IsFoodTraitMain
Definition: ELEMENT.cs:365
bool IsActive(Card c)
Definition: ELEMENT.cs:451
static SkinColorProfile CurrentColors
Definition: SkinManager.cs:84
Definition: Thing.cs:8
SourceThing.Row source
Definition: Thing.cs:11
Image image2
Definition: UIItem.cs:16
UIButton button1
Definition: UIItem.cs:18
UINote note
Definition: UITooltip.cs:21

References UINote.AddText(), UINote.AddTopic(), UIItem.button1, CoreRef.Icons.Enc.card, CoreRef.Icons.Enc.cat, Color, EClass.core, SkinManager.CurrentColors, Card.elements, SourceManager.elements, CoreRef.Icons.Enc.enc, CoreRef.Icons.enc, BaseCard.GetInt(), Card.GetRuneEnc(), HasTag(), CoreRef.icons, UIItem.image1, UIItem.image2, IsActive(), IsFactionWideElement, IsFoodTrait, IsFoodTraitMain, IsGlobalElement, IsTrait, CoreRef.Icons.Enc.mat, Card.material, Name, UITooltip.note, EClass.pc, Potential, Core.refs, CoreRef.Icons.Enc.rune, SetImage(), Card.ShowFoodEnc, source, Thing.source, EClass.sources, CoreRef.spritesPotential, SkinColorProfile.textBad, SkinColorProfile.textGood, Card.Thing, CoreRef.Icons.Enc.traitFood, Value, ValueWithoutLink, and WriteNote().

◆ AddHeaderAbility()

void Element.AddHeaderAbility ( UINote  n)
inline

Definition at line 706 of file ELEMENT.cs.

707 {
708 UIItem uIItem = n.AddHeader("HeaderAbility", FullName.ToTitleCase(wholeText: true), GetSprite());
709 uIItem.text2.text = ((this is Spell) ? (vPotential.ToString() ?? "") : "-");
710 (this as Act)?.SetImage(uIItem.image1);
711 }
virtual Sprite GetSprite()
Definition: ELEMENT.cs:414

References UINote.AddHeader(), FullName, GetSprite(), UIItem.image1, SetImage(), and vPotential.

Referenced by _WriteNote().

◆ CanLink()

virtual bool Element.CanLink ( ElementContainer  owner)
inlinevirtual

◆ CheckLevelBonus()

void Element.CheckLevelBonus ( ElementContainer  owner,
UINote  n = null 
)
inline

Definition at line 961 of file ELEMENT.cs.

962 {
963 if (owner == null || source.levelBonus.IsEmpty())
964 {
965 return;
966 }
967 bool flag = n == null;
968 string[] array = (source.GetText("levelBonus", returnNull: true) ?? source.levelBonus).Split(Environment.NewLine.ToCharArray());
969 if (!flag)
970 {
971 n.Space(10);
972 }
973 string[] array2 = array;
974 foreach (string obj in array2)
975 {
976 string[] array3 = obj.Split(',');
977 int lv = array3[0].ToInt();
978 SourceElement.Row row = (EClass.sources.elements.alias.ContainsKey(array3[1]) ? EClass.sources.elements.alias[array3[1]] : null);
979 if (flag)
980 {
981 if (lv > ValueWithoutLink)
982 {
983 break;
984 }
985 if (row != null && !owner.Has(row.id) && owner is ElementContainerZone)
986 {
987 owner.Learn(row.id);
988 }
989 }
990 else
991 {
992 string s = ((row != null) ? row.GetName() : array3[1]);
993 n.AddText((" Lv " + lv).TagColor(FontColor.Topic) + " " + s.TagColorGoodBad(() => (row != null) ? owner.Has(row.id) : (lv <= ValueWithoutLink), () => false));
994 }
995 }
996 if (!flag)
997 {
998 n.Space(4);
999 }
1000 }
void Learn(int ele, int v=1)
bool Has(int ele)
override string GetName()

References SourceManager.elements, SourceElement.Row.GetName(), ElementContainer.Has(), SourceElement.Row.id, ElementContainer.Learn(), owner, source, EClass.sources, and ValueWithoutLink.

Referenced by _WriteNote(), and ElementContainer.ModBase().

◆ Create() [1/2]

◆ Create() [2/2]

static Element Element.Create ( string  id,
int  v = 1 
)
inlinestatic

Definition at line 1111 of file ELEMENT.cs.

1112 {
1113 return Create(EClass.sources.elements.alias[id].id, v);
1114 }

References Create(), SourceManager.elements, and EClass.sources.

◆ Get()

static SourceElement.Row Element.Get ( int  id)
inlinestatic

◆ GetCost()

virtual Act.Cost Element.GetCost ( Chara  c)
inlinevirtual

Definition at line 1021 of file ELEMENT.cs.

1022 {
1023 if (source.cost[0] == 0)
1024 {
1025 Act.Cost result = default(Act.Cost);
1026 result.type = Act.CostType.None;
1027 return result;
1028 }
1029 Act.Cost result2 = default(Act.Cost);
1030 if (this is Spell)
1031 {
1032 result2.type = Act.CostType.MP;
1033 int num = EClass.curve(Value, 50, 10);
1034 result2.cost = source.cost[0] * (100 + ((!source.tag.Contains("noCostInc")) ? (num * 3) : 0)) / 100;
1035 }
1036 else
1037 {
1038 result2.type = Act.CostType.SP;
1039 result2.cost = source.cost[0];
1040 switch (source.id)
1041 {
1042 case 6020:
1043 result2.cost = Mathf.Min(c.stamina.max / 3 + 10, 30);
1044 break;
1045 case 6663:
1046 case 6664:
1047 {
1048 int num2 = -2;
1049 foreach (BodySlot slot in c.body.slots)
1050 {
1051 if (slot.thing != null && slot.thing.IsMeleeWeapon)
1052 {
1053 num2++;
1054 }
1055 }
1056 result2.cost += num2 * 2;
1057 break;
1058 }
1059 }
1060 }
1061 if (!c.IsPC && result2.cost > 2)
1062 {
1063 result2.cost /= 2;
1064 }
1065 return result2;
1066 }
Thing thing
Definition: BodySlot.cs:8
bool IsMeleeWeapon
Definition: Card.cs:2177
List< BodySlot > slots
Definition: CharaBody.cs:8
CharaBody body
Definition: Chara.cs:94
static int curve(int a, int start, int step, int rate=75)
Definition: EClass.cs:63
virtual int max
Definition: Stats.cs:68

References Chara.body, Act.Cost.cost, EClass.curve(), Card.IsMeleeWeapon, Chara.IsPC, Stats.max, CharaBody.slots, source, Chara.stamina, BodySlot.thing, and Value.

Referenced by _WriteNote(), ElementContainer.GetSpellExp(), GoalCombat.TryUseAbility(), and Chara.UseAbility().

◆ GetDetail()

virtual string Element.GetDetail ( )
inlinevirtual

Definition at line 486 of file ELEMENT.cs.

487 {
488 return source.GetDetail();
489 }

References source.

Referenced by _WriteNote(), and ButtonElement.Refresh().

◆ GetElementMap() [1/2]

static Dictionary< int, int > Element.GetElementMap ( int[]  list)
inlinestatic

Definition at line 529 of file ELEMENT.cs.

530 {
531 Dictionary<int, int> dictionary = new Dictionary<int, int>();
532 if (list != null)
533 {
534 for (int i = 0; i < list.Length / 2; i++)
535 {
536 dictionary[list[i * 2]] = list[i * 2 + 1];
537 }
538 }
539 return dictionary;
540 }

Referenced by SourceCard.AddRow(), SourceJob.OnInit(), SourceMaterial.OnInit(), and SourceRace.OnInit().

◆ GetElementMap() [2/2]

static Dictionary< int, int > Element.GetElementMap ( int[]  list,
Dictionary< int, int >  map 
)
inlinestatic

Definition at line 542 of file ELEMENT.cs.

543 {
544 if (list != null)
545 {
546 for (int i = 0; i < list.Length / 2; i++)
547 {
548 map[list[i * 2]] = list[i * 2 + 1];
549 }
550 }
551 return map;
552 }

◆ GetIcon()

virtual Sprite Element.GetIcon ( string  suffix = "")
inlinevirtual

Reimplemented in Feat, LandFeat, RaceBonus, and Resistance.

Definition at line 446 of file ELEMENT.cs.

447 {
448 return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.alias + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.aliasParent + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "cat_" + source.category);
449 }
static Sprite Get(string id)
Definition: SpriteSheet.cs:28

References SpriteSheet.Get(), and source.

Referenced by WidgetStatsBar.Add(), ButtonElement.SetGrid(), and SetImage().

◆ GetId()

static int Element.GetId ( string  alias)
inlinestatic

Definition at line 1116 of file ELEMENT.cs.

1117 {
1118 return EClass.sources.elements.alias[alias].id;
1119 }

References SourceManager.elements, and EClass.sources.

◆ GetMaterialSourceValue()

int Element.GetMaterialSourceValue ( Thing  t,
int  v 
)
inline

Definition at line 419 of file ELEMENT.cs.

420 {
421 if (id == 2 || v < 0)
422 {
423 return v;
424 }
425 if (IsTrait)
426 {
427 if (t.IsFurniture)
428 {
429 return v;
430 }
431 return Mathf.Min(v + t.encLV * 10, 60);
432 }
433 return v * (100 + t.encLV * 10) / 100;
434 }
bool IsFurniture
Definition: Card.cs:2187
int encLV
Definition: Card.cs:310

References Card.encLV, Card.IsFurniture, and IsTrait.

Referenced by ElementContainer.ApplyMaterialElementMap().

◆ GetName()

static string Element.GetName ( string  alias)
inlinestatic

Definition at line 394 of file ELEMENT.cs.

395 {
396 return EClass.sources.elements.alias[alias].GetName();
397 }

References SourceManager.elements, and EClass.sources.

Referenced by TaskChopWood.OnCreateProgress().

◆ GetParent()

Element Element.GetParent ( Card  c)
inline

Definition at line 520 of file ELEMENT.cs.

521 {
522 if (!source.aliasParent.IsEmpty())
523 {
524 return c.elements.GetOrCreateElement(source.aliasParent);
525 }
526 return null;
527 }

References Card.elements, ElementContainer.GetOrCreateElement(), and source.

Referenced by ElementContainer.ModExp(), and AttackProcess.Prepare().

◆ GetPower()

virtual int Element.GetPower ( Card  c)
inlinevirtual

Reimplemented in Ability.

Definition at line 1068 of file ELEMENT.cs.

1069 {
1070 return 100;
1071 }

Referenced by _WriteNote(), Dice.Create(), Act.Perform(), and Chara.UseAbility().

◆ GetRandomElement()

static SourceElement.Row Element.GetRandomElement ( int  lv = 1)
inlinestatic

Definition at line 554 of file ELEMENT.cs.

555 {
556 if (lv > 100)
557 {
558 lv = 100;
559 }
560 if (ListElements.Count == 0)
561 {
562 foreach (SourceElement.Row row in EClass.sources.elements.rows)
563 {
564 if (row.categorySub == "eleAttack" && row.chance > 0)
565 {
566 ListElements.Add(row);
567 }
568 }
569 }
570 List<Tuple<SourceElement.Row, int>> list = new List<Tuple<SourceElement.Row, int>>();
571 foreach (SourceElement.Row listElement in ListElements)
572 {
573 int num = 40 * (listElement.eleP - 100) / 100;
574 if (list.Count == 0 || num < lv)
575 {
576 list.Add(new Tuple<SourceElement.Row, int>(listElement, num));
577 }
578 }
579 return list.RandomItemWeighted((Tuple<SourceElement.Row, int> a) => 10000 / (100 + (lv - a.Item2) * 25)).Item1;
580 }
static List< SourceElement.Row > ListElements
Definition: ELEMENT.cs:266

References SourceManager.elements, ListElements, and EClass.sources.

Referenced by TraitToolRangeCane.OnCreate().

◆ GetResistDamage()

static int Element.GetResistDamage ( int  dmg,
int  v,
int  power = 0 
)
inlinestatic

Definition at line 1135 of file ELEMENT.cs.

1136 {
1137 int num = GetResistLv(v);
1138 if (power > 0 && num > 0)
1139 {
1140 num = Mathf.Max(num - power, 0);
1141 }
1142 if (num >= 4)
1143 {
1144 return 0;
1145 }
1146 return num switch
1147 {
1148 3 => dmg / 4,
1149 2 => dmg / 3,
1150 1 => dmg / 2,
1151 0 => dmg,
1152 -1 => dmg * 3 / 2,
1153 -2 => dmg * 2,
1154 _ => dmg * 2,
1155 };
1156 }
static int GetResistLv(int v)
Definition: ELEMENT.cs:1121

References GetResistLv().

Referenced by Card.DamageHP().

◆ GetResistLv()

static int Element.GetResistLv ( int  v)
inlinestatic

Definition at line 1121 of file ELEMENT.cs.

1122 {
1123 int num = v / 5;
1124 if (num < -2)
1125 {
1126 num = -2;
1127 }
1128 if (num > 4)
1129 {
1130 num = 4;
1131 }
1132 return num;
1133 }

Referenced by GetResistDamage(), Card.ResistLv(), and ButtonElement.SetGrid().

◆ GetSortVal()

int Element.GetSortVal ( UIList::SortMode  m)
inline

Definition at line 1002 of file ELEMENT.cs.

1003 {
1004 switch (m)
1005 {
1006 case UIList.SortMode.ByCategory:
1007 return source.id + ((!source.aliasParent.IsEmpty()) ? (EClass.sources.elements.alias[source.aliasParent].id * 10000) : 0);
1008 case UIList.SortMode.ByNumber:
1009 return -vPotential * 10000 + source.id;
1010 case UIList.SortMode.ByElementParent:
1011 if (!source.aliasParent.IsEmpty())
1012 {
1013 return EClass.sources.elements.alias[source.aliasParent].sort;
1014 }
1015 return id;
1016 default:
1017 return source.id;
1018 }
1019 }
Definition: UIList.cs:9
SortMode
Definition: UIList.cs:27

References SourceManager.elements, id, source, EClass.sources, and vPotential.

Referenced by ElementContainer.AddNote(), WindowCharaMini.Refresh(), LayerHome.RefreshFeat(), WindowChara.RefreshSkill(), and LayerAbility.SelectGroup().

◆ GetSource()

virtual SourceElement.Row Element.GetSource ( )
inlinevirtual

Definition at line 404 of file ELEMENT.cs.

405 {
406 return EClass.sources.elements.alias.TryGetValue(GetType().ToString());
407 }

References SourceManager.elements, and EClass.sources.

◆ GetSourcePotential()

virtual int Element.GetSourcePotential ( int  v)
inlinevirtual

Reimplemented in Skill.

Definition at line 409 of file ELEMENT.cs.

410 {
411 return 0;
412 }

Referenced by ElementContainer.ApplyElementMap().

◆ GetSourceValue()

virtual int Element.GetSourceValue ( int  v,
int  lv,
SourceValueType  type 
)
inlinevirtual

Reimplemented in Ability.

Definition at line 436 of file ELEMENT.cs.

437 {
438 return type switch
439 {
440 SourceValueType.Chara => v * (100 + (lv - 1 + EClass.rnd(lv / 2 + 1)) * source.lvFactor / 10) / 100 + EClass.rnd(lv / 3) * source.lvFactor / 100,
441 SourceValueType.Fixed => v,
442 _ => v * ((source.encFactor == 0) ? 100 : (50 + EClass.rnd(100) + EClass.rnd((int)Mathf.Sqrt(lv * 100)) * source.encFactor / 100)) / 100,
443 };
444 }
static int rnd(int a)
Definition: EClass.cs:58

References EClass.rnd(), and source.

Referenced by ElementContainer.ApplyElementMap().

◆ GetSprite()

virtual Sprite Element.GetSprite ( )
inlinevirtual

Reimplemented in Act.

Definition at line 414 of file ELEMENT.cs.

415 {
416 return null;
417 }

Referenced by AddHeaderAbility().

◆ HasTag()

◆ IsActive()

bool Element.IsActive ( Card  c)
inline

Definition at line 451 of file ELEMENT.cs.

452 {
453 if (IsGlobalElement && c != null && !c.c_idDeity.IsEmpty() && c.c_idDeity != EClass.pc.idFaith)
454 {
455 return false;
456 }
457 return Value != 0;
458 }
string c_idDeity
Definition: Card.cs:1541
string idFaith
Definition: Chara.cs:227

References Card.c_idDeity, Chara.idFaith, IsGlobalElement, EClass.pc, and Value.

Referenced by AddEncNote().

◆ IsFactionElement()

bool Element.IsFactionElement ( Chara  c)
inline

Definition at line 491 of file ELEMENT.cs.

492 {
493 if (c == null)
494 {
495 return false;
496 }
497 if (c.IsPCFaction)
498 {
499 foreach (Element value in EClass.pc.faction.charaElements.dict.Values)
500 {
501 if (value.id == id && value.Value > 0)
502 {
503 return true;
504 }
505 }
506 }
507 if (c.faithElements != null)
508 {
509 foreach (Element value2 in c.faithElements.dict.Values)
510 {
511 if (value2.id == id && value2.Value > 0)
512 {
513 return true;
514 }
515 }
516 }
517 return false;
518 }
ElementContainer faithElements
Definition: Chara.cs:38
Dictionary< int, Element > dict

References Faction.charaElements, ElementContainer.dict, Chara.faction, Chara.faithElements, id, Chara.IsPCFaction, EClass.pc, and Value.

Referenced by ButtonElement.Refresh(), WindowChara.RefreshSkill(), and ButtonElement.SetGrid().

◆ IsPurchaseFeatReqMet()

virtual bool Element.IsPurchaseFeatReqMet ( ElementContainer  owner,
int  lv = -1 
)
inlinevirtual

Reimplemented in Feat.

Definition at line 1088 of file ELEMENT.cs.

1089 {
1090 return false;
1091 }

Referenced by ButtonElement.Refresh(), and WriteNoteWithRef().

◆ OnChangeValue()

virtual void Element.OnChangeValue ( )
inlinevirtual

Reimplemented in Ability, AttbMain, and Skill.

Definition at line 957 of file ELEMENT.cs.

958 {
959 }

Referenced by ElementContainer.ModBase(), ElementContainer.ModLink(), and ElementContainer.SetBase().

◆ OnWriteNote()

virtual void Element.OnWriteNote ( UINote  n,
ElementContainer  owner 
)
inlinevirtual

Reimplemented in Feat, and RaceBonus.

Definition at line 953 of file ELEMENT.cs.

954 {
955 }

Referenced by _WriteNote().

◆ SetImage()

void Element.SetImage ( Image  i)
inline

Definition at line 476 of file ELEMENT.cs.

477 {
478 Sprite icon = GetIcon();
479 if ((bool)icon)
480 {
481 i.sprite = icon;
482 i.SetNativeSize();
483 }
484 }
virtual Sprite GetIcon(string suffix="")
Definition: ELEMENT.cs:446

References GetIcon().

Referenced by _WriteNote(), AddEncNote(), AddHeaderAbility(), and ButtonElement.Refresh().

◆ SetTextValue()

virtual void Element.SetTextValue ( UIText  text)
inlinevirtual

Reimplemented in Resistance.

Definition at line 1073 of file ELEMENT.cs.

1074 {
1075 string text2 = DisplayValue.ToString() ?? "";
1076 if (ShowXP)
1077 {
1078 text2 += ".".TagSize((vExp / 10).ToString("D2") ?? "", 11);
1079 }
1080 if (vLink != 0)
1081 {
1082 string text3 = ((vLink > 0) ? "+" : "") + vLink;
1083 text2 = "<color=" + ((DisplayValue > ValueWithoutLink) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad).ToHex() + ">" + text2 + (" (" + text3 + ")").TagSize(13) + "</color>";
1084 }
1085 text.text = text2;
1086 }
virtual bool ShowXP
Definition: ELEMENT.cs:315

References SkinManager.CurrentColors, DisplayValue, ShowXP, SkinColorProfile.textBad, SkinColorProfile.textGood, ValueWithoutLink, vExp, and vLink.

Referenced by ButtonElement.Refresh().

◆ SortVal()

int Element.SortVal ( bool  charaSheet = false)
inline

Definition at line 460 of file ELEMENT.cs.

461 {
462 int num = ((source.sort != 0) ? source.sort : id);
463 return (IsFlag ? 100000 : 0) + ((!charaSheet && IsGlobalElement) ? (-1000000) : 0) + (((IsFoodTrait || IsTrait) && owner != null && owner.Card != null && owner.Card.ShowFoodEnc) ? 10000 : 0) + num;
464 }
virtual Card Card
bool IsFlag
Definition: ELEMENT.cs:300

References ElementContainer.Card, IsFlag, IsFoodTrait, IsGlobalElement, IsTrait, owner, Card.ShowFoodEnc, and source.

Referenced by ElementContainer.AddNote(), AI_Torture.CreateProgress(), and TaskDump.Run().

◆ WriteNote()

void Element.WriteNote ( UINote  n,
ElementContainer  owner = null,
Action< UINote onWriteNote = null 
)
inline

Definition at line 582 of file ELEMENT.cs.

583 {
584 n.Clear();
585 _WriteNote(n, owner, onWriteNote, isRef: false);
586 n.Build();
587 }
void _WriteNote(UINote n, Chara c, Act act)
Definition: ELEMENT.cs:604
void Clear()
Definition: UINote.cs:35
void Build()
Definition: UINote.cs:49

References _WriteNote(), UINote.Build(), UINote.Clear(), and owner.

Referenced by AddEncNote(), ButtonElement.Refresh(), ItemCulture.Refresh(), ButtonAbility.SetAct(), ItemGachaResult.SetChara(), UICardInfo.SetElement(), ButtonElement.SetGrid(), and Policy.WriteNote().

◆ WriteNoteWithRef()

void Element.WriteNoteWithRef ( UINote  n,
ElementContainer  owner,
Action< UINote onWriteNote,
Element  refEle 
)
inline

Definition at line 589 of file ELEMENT.cs.

590 {
591 n.Clear();
592 _WriteNote(n, owner, onWriteNote, isRef: false);
593 if (refEle.Value > 0)
594 {
595 refEle._WriteNote(n, owner, onWriteNote, isRef: true);
596 }
598 {
600 }
601 n.Build();
602 }
virtual void WritePurchaseReq(UINote n, int lv=1)
Definition: ELEMENT.cs:1093
virtual bool IsPurchaseFeatReqMet(ElementContainer owner, int lv=-1)
Definition: ELEMENT.cs:1088

References _WriteNote(), UINote.Build(), UINote.Clear(), IsPurchaseFeatReqMet(), owner, Value, ElementContainer.Value(), and WritePurchaseReq().

Referenced by ButtonElement.Refresh().

◆ WritePurchaseReq()

virtual void Element.WritePurchaseReq ( UINote  n,
int  lv = 1 
)
inlinevirtual

Reimplemented in Feat.

Definition at line 1093 of file ELEMENT.cs.

1094 {
1095 }

Referenced by WriteNoteWithRef().

Member Data Documentation

◆ _source

SourceElement.Row Element._source

Definition at line 246 of file ELEMENT.cs.

◆ Div

const int Element.Div = 5
static

Definition at line 234 of file ELEMENT.cs.

◆ id

int Element.id

Definition at line 248 of file ELEMENT.cs.

Referenced by TraitAltar._OnOffer(), BaseCondition._WriteNote(), _WriteNote(), DamageTextRenderer.Add(), Feat.Apply(), Chara.ApplyDeathPenalty(), ElementContainer.ApplyMaterialElementMap(), GrowSystem.ApplySeed(), ActMelee.Attack(), Thing.CanAutoFire(), RecipeManager.CanCeomUpWithRecipe(), Thing.CanStackTo(), TraitAmmo.CanStackTo(), RecipeManager.ComeUpWithRecipe(), TraitCrafter.Craft(), RecipeCard.Craft(), Dice.Create(), Create(), Chara.Cuddle(), Card.DamageHP(), CoreDebug.Fix_EtherDisease(), Chara.GainAbility(), DNA.Generate(), Get(), GoalAutoCombat.GetAbilities(), Card.GetBestAttribute(), DNA.GetInvalidAction(), DNA.GetInvalidFeat(), ElementContainer.GetOrCreateElement(), Recipe.GetQualityBonus(), ElementContainer.GetSortVal(), GetSortVal(), RecipeSource.GetSPCost(), Act.GetText(), Chara.GiveGift(), IsFactionElement(), Chara.ListAvailabeFeats(), ElementContainer.ListBestAttributes(), ElementContainer.ListBestSkills(), ElementContainer.ListElements(), Card.MakeFoodFrom(), TraitSeed.MakeSeed(), CraftUtil.MixIngredients(), ElementContainer.ModBase(), ElementContainer.ModExp(), CraftUtil.ModRandomFoodEnc(), Chara.ModTempElement(), FactionBranch.OnClaimZone(), TaskDrawWater.OnCreateProgress(), TaskPourWater.OnCreateProgress(), TraitDrinkMilkMother.OnDrink(), ElementContainerFaction.OnEquip(), ElementContainerCard.OnLevelUp(), TaskCraft.OnProgress(), TaskCraft.OnProgressComplete(), ElementContainer.OnSerializing(), FactionBranch.OnUnclaimZone(), ElementContainerFaction.OnUnequip(), ResearchPlan.ParseReward(), Act.Perform(), AttackProcess.Perform(), FoodEffect.Proc(), ActEffect.Proc(), ActEffect.ProcAt(), FoodEffect.ProcTrait(), Religion.Reforge(), ButtonElement.Refresh(), UICharaMaker.Refresh(), WidgetStatsBar.Refresh(), WindowCharaMini.Refresh(), WindowChara.RefreshSkill(), AI_Idle.Run(), LayerAbility.SelectGroup(), ElementContainer.SetBase(), ButtonElement.SetGrid(), Card.SetLv(), Chara.SetMutation(), ElementContainer.SetParent(), Card.SetTier(), ElementContainer.SetTo(), ButtonAbility.SpecialHoldAction(), WidgetTracker.Toggle(), CalcPlat.Train(), GoalCombat.TryAddAbility(), Thing.TryLickEnchant(), GoalCombat.TryRemoveAbility(), HotItemAct.TrySetAct(), Chara.TryUpgrade(), GoalCombat.TryUseAbility(), FactionBranch.Upgrade(), Chara.UseAbility(), ElementContainerCard.ValueBonus(), Element.BonusInfo.WriteNote(), and Thing.WriteNote().

◆ List_Body

int [] Element.List_Body = new int[4] { 70, 72, 71, 77 }
static

Definition at line 242 of file ELEMENT.cs.

Referenced by Chara.CureTempElements(), and Chara.DamageTempElements().

◆ List_MainAttributes

int [] Element.List_MainAttributes = new int[9] { 70, 72, 71, 77, 74, 75, 76, 73, 79 }
static

Definition at line 238 of file ELEMENT.cs.

◆ List_MainAttributesMajor

int [] Element.List_MainAttributesMajor = new int[8] { 70, 72, 71, 77, 74, 75, 76, 73 }
static

Definition at line 240 of file ELEMENT.cs.

Referenced by Card.GetBestAttribute(), WindowCharaMini.Refresh(), and Chara.TryUpgrade().

◆ List_Mind

int [] Element.List_Mind = new int[4] { 74, 75, 76, 73 }
static

◆ ListAttackElements

List<SourceElement.Row> Element.ListAttackElements = new List<SourceElement.Row>()
static

Definition at line 268 of file ELEMENT.cs.

Referenced by SourceManager.Init().

◆ ListElements

List<SourceElement.Row> Element.ListElements = new List<SourceElement.Row>()
static

Definition at line 266 of file ELEMENT.cs.

Referenced by Chara.GetFavWeaponSkill(), and GetRandomElement().

◆ owner

◆ vBase

◆ vExp

◆ vLink

◆ Void

◆ vPotential

◆ vSource

◆ vSourcePotential

int Element.vSourcePotential

Definition at line 262 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ vTempPotential

Property Documentation

◆ act

◆ CanGainExp

virtual bool Element.CanGainExp
get

Definition at line 298 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp().

◆ CostLearn

virtual int Element.CostLearn
get

◆ CostTrain

virtual int Element.CostTrain
get

Definition at line 310 of file ELEMENT.cs.

Referenced by CalcPlat.Train().

◆ DisplayValue

virtual int Element.DisplayValue
get

◆ ExpToNext

virtual int Element.ExpToNext
get

Definition at line 306 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp(), and Thing.WriteNote().

◆ FullName

virtual string Element.FullName
get

Definition at line 304 of file ELEMENT.cs.

Referenced by _WriteNote(), AddHeaderAbility(), and ButtonElement.Refresh().

◆ IsFactionWideElement

bool Element.IsFactionWideElement
get

Definition at line 354 of file ELEMENT.cs.

Referenced by AddEncNote().

◆ IsFlag

bool Element.IsFlag
get

Definition at line 300 of file ELEMENT.cs.

Referenced by WindowChara.RefreshSkill(), and SortVal().

◆ IsFoodTrait

◆ IsFoodTraitMain

bool Element.IsFoodTraitMain
get

Definition at line 364 of file ELEMENT.cs.

365 {
366 get
367 {
368 if (IsFoodTrait)
369 {
370 if (!source.tag.Contains("primary"))
371 {
372 return source.tag.Contains("foodpot");
373 }
374 return true;
375 }
376 return false;
377 }
378 }

Referenced by AddEncNote(), ElementContainer.GetSortVal(), Thing.ListLimitedValidTraits(), Thing.ListValidTraits(), CraftUtil.MixIngredients(), and Thing.WriteNote().

◆ IsGlobalElement

bool Element.IsGlobalElement
get

Definition at line 342 of file ELEMENT.cs.

343 {
344 get
345 {
346 if (vExp != -1)
347 {
348 return vExp == -2;
349 }
350 return true;
351 }
352 }

Referenced by AddEncNote(), Card.HasGlobalElement(), IsActive(), ElementContainerFaction.OnEquip(), ElementContainerFaction.OnUnequip(), ButtonElement.SetGrid(), SortVal(), and Element.BonusInfo.WriteNote().

◆ IsMainAttribute

bool Element.IsMainAttribute
get

Definition at line 380 of file ELEMENT.cs.

381 {
382 get
383 {
384 if (source.category == "attribute")
385 {
386 return source.tag.Contains("primary");
387 }
388 return false;
389 }
390 }

Referenced by Chara.ApplyDeathPenalty(), and FoodEffect.Proc().

◆ IsPartyWideElement

bool Element.IsPartyWideElement
get

Definition at line 356 of file ELEMENT.cs.

◆ IsTrait

◆ MinPotential

virtual int Element.MinPotential
get

Definition at line 294 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ MinValue

virtual int Element.MinValue
get

Definition at line 288 of file ELEMENT.cs.

◆ Name

◆ Potential

int Element.Potential
get

Definition at line 296 of file ELEMENT.cs.

Referenced by _WriteNote(), AddEncNote(), and ButtonElement.Refresh().

◆ PotentialAsStock

virtual bool Element.PotentialAsStock
get

Definition at line 334 of file ELEMENT.cs.

Referenced by _WriteNote(), and LayerAbility.SelectGroup().

◆ ShortName

virtual string Element.ShortName
get

Definition at line 340 of file ELEMENT.cs.

Referenced by ButtonElement.SetGrid().

◆ ShowBonuses

virtual bool Element.ShowBonuses
get

Definition at line 338 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowEncNumber

virtual bool Element.ShowEncNumber
get

Definition at line 358 of file ELEMENT.cs.

◆ ShowMsgOnValueChanged

virtual bool Element.ShowMsgOnValueChanged
get

Definition at line 326 of file ELEMENT.cs.

Referenced by ElementContainerCard.OnLevelDown(), and ElementContainerCard.OnLevelUp().

◆ ShowPotential

virtual bool Element.ShowPotential
get

Definition at line 330 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowRelativeAttribute

virtual bool Element.ShowRelativeAttribute
get

Definition at line 336 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowValue

virtual bool Element.ShowValue
get

Definition at line 328 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowXP

virtual bool Element.ShowXP
get

Definition at line 314 of file ELEMENT.cs.

315 {
316 get
317 {
319 {
320 return source.category != "attribute";
321 }
322 return true;
323 }
324 }

Referenced by WidgetTracker.Refresh(), and SetTextValue().

◆ source

SourceElement.Row Element.source
get

Definition at line 270 of file ELEMENT.cs.

271 {
272 get
273 {
275 if (row == null)
276 {
277 SourceElement.Row obj = ((id == 0) ? GetSource() : Get(id)) ?? EClass.sources.elements.rows[0];
278 SourceElement.Row row2 = obj;
279 _source = obj;
280 row = row2;
281 }
282 return row;
283 }
284 }
virtual SourceElement.Row GetSource()
Definition: ELEMENT.cs:404
static SourceElement.Row Get(int id)
Definition: ELEMENT.cs:399
SourceElement.Row _source
Definition: ELEMENT.cs:246

Referenced by _WriteNote(), AddEncNote(), ElementContainer.AddNoteAll(), Feat.Apply(), ElementContainer.ApplyElementMap(), ElementContainer.ApplyMaterialElementMap(), GoalAutoCombat.BuildAbilityList(), Chara.CalcCastingChance(), DNA.CalcSlot(), Chara.CalculateMaxStamina(), CheckLevelBonus(), TraitCrafter.Craft(), RecipeCard.Craft(), Dice.Create(), Player.CreateEquip(), ActEffect.DamageEle(), Card.DamageHP(), Player.DreamSpell(), ZonePreEnterEncounter.Execute(), CoreDebug.Fix_EtherDisease(), DamageTextRenderer.Flush(), Chara.GainAbility(), DNA.Generate(), GetCost(), AIAct.GetCurrentActionText(), Check.GetDC(), GetDetail(), Chara.GetFavWeaponSkill(), Check.GetFinalDC(), FactionBranch.GetHearthIncome(), GetIcon(), DNA.GetInvalidAction(), DNA.GetInvalidFeat(), CardRow.GetName(), Chara.GetName(), GetParent(), ElementContainer.GetSortVal(), GetSortVal(), GetSourceValue(), ElementContainer.GetSpellExp(), FactionBranch.GetTechUpgradeCost(), Card.GetValue(), HasTag(), TraitFoodEggFertilized.Incubate(), CalcPlat.Learn(), Chara.ListAvailabeFeats(), ElementContainer.ListBestSkills(), ElementContainer.ListGeneFeats(), ElementContainer.ListRune(), Card.MakeFoodFrom(), Thing.MatchEncSearch(), Chara.ModCorruption(), ElementContainer.ModExp(), Chara.MutateRandom(), TraitDrinkMilkMother.OnDrink(), ElementContainerCard.OnLevelDown(), ElementContainerCard.OnLevelUp(), Act.Perform(), AttackProcess.Perform(), AttackProcess.PlayRangedAnime(), FoodEffect.Proc(), ActEffect.ProcAt(), ButtonElement.Refresh(), CharaAbility.Refresh(), UICharaMaker.Refresh(), WindowCharaMini.Refresh(), Card.RefreshColor(), LayerHome.RefreshFeat(), WindowChara.RefreshSkill(), WindowChara.RefreshStatic(), AI_Eat.Run(), AI_Idle.Run(), LayerAbility.SelectGroup(), ButtonAbility.SetAct(), Chara.SetFeat(), Chara.SetMainElement(), UIFactionInfo.SetZone(), SortVal(), ButtonAbility.SpecialHoldAction(), CalcPlat.Train(), HotItemAct.TrySetAct(), TraitCatalyst.TrySetHeldAct(), ButtonAbility.TryUse(), GoalCombat.TryUseAbility(), FactionBranch.Upgrade(), Chara.UseAbility(), ElementContainerCard.ValueBonus(), Element.BonusInfo.WriteNote(), DNA.WriteNote(), and Thing.WriteNote().

◆ UseExpMod

virtual bool Element.UseExpMod
get

Definition at line 308 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp().

◆ UsePotential

virtual bool Element.UsePotential
get

Definition at line 332 of file ELEMENT.cs.

◆ Value

int Element.Value
get

Definition at line 290 of file ELEMENT.cs.

Referenced by TraitAltar._OnOffer(), BaseCondition._WriteNote(), Chara.AddCondition(), AddEncNote(), ElementContainer.AddNote(), Feat.Apply(), GrowSystem.ApplySeed(), Chara.CalcCastingChance(), GetCost(), Check.GetDC(), Chara.GetFavWeaponSkill(), Check.GetFinalDC(), Recipe.GetSortVal(), ElementContainer.GetSortVal(), RecipeSource.GetSPCost(), IsActive(), IsFactionElement(), ElementContainer.ListElements(), ElementContainer.ListGeneFeats(), Thing.ListLimitedValidTraits(), Thing.ListValidTraits(), Card.MakeFoodFrom(), TraitSeed.MakeSeed(), Thing.MatchEncSearch(), CraftUtil.MixIngredients(), Chara.ModCorruption(), CraftUtil.ModRandomFoodEnc(), Chara.MutateRandom(), TraitPotionAlchemy.OnCrafted(), ElementContainerFaction.OnEquip(), ElementContainerFaction.OnUnequip(), ResearchPlan.ParseReward(), AttackProcess.Perform(), AttackProcess.Prepare(), FoodEffect.Proc(), ActEffect.ProcAt(), FoodEffect.ProcTrait(), ButtonElement.Refresh(), WidgetTracker.Refresh(), WindowCharaMini.Refresh(), LayerHome.RefreshFeat(), UIRecipeInfo.RefreshList(), WindowChara.RefreshSkill(), ElementContainer.Remove(), LayerAbility.SelectGroup(), ItemGachaResult.SetChara(), Chara.SetFeat(), ButtonElement.SetGrid(), Chara.SetMutation(), Recipe.SetTextDifficulty(), Card.SetTier(), Recipe.TryGetFirstTimeBonus(), GoalCombat.TryUseAbility(), Chara.UseAbility(), ElementContainer.Value(), ElementContainerCard.ValueBonus(), Element.BonusInfo.WriteNote(), DNA.WriteNote(), Thing.WriteNote(), WriteNoteWithRef(), Feat.WritePurchaseReq(), and Recipe.WriteReqSkill().

◆ ValueWithoutLink


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