Elin Decompiled Documentation EA 23.200 Stable
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, bool useWeight=true)
 
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 (long a)
 
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 88 of file ELEMENT.cs.

Member Function Documentation

◆ _WriteNote() [1/2]

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

Definition at line 606 of file ELEMENT.cs.

607 {
609 Act.Cost cost = e.GetCost(c);
610 int p = e.GetPower(c);
611 n.Space(6);
612 string text = source.GetText("textExtra");
613 if (!text.IsEmpty())
614 {
615 string[] array = text.Split(',');
616 foreach (string text2 in array)
617 {
618 if (text2.StartsWith("@"))
619 {
620 Condition condition = Condition.Create(text2.Replace("@", ""), p);
621 condition.owner = c;
622 if (!source.aliasRef.IsEmpty())
623 {
624 condition.SetElement(EClass.sources.elements.alias[source.aliasRef].id);
625 }
626 switch (act.id)
627 {
628 case 6902:
629 condition.SetRefVal(79, 268);
630 break;
631 case 8510:
632 case 8710:
633 condition.SetRefVal(79, (act.id == 8710) ? 222 : 221);
634 break;
635 }
636 n.AddText("_bullet".lang() + (condition.HasDuration ? "hintCon" : "hintCon2").lang(condition.Name, condition.EvaluateTurn(p).ToString() ?? ""));
637 condition._WriteNote(n, asChild: true);
638 }
639 else
640 {
641 string text3 = text2.Replace("#calc", Calc());
642 if (!source.aliasRef.IsEmpty())
643 {
644 text3 = text3.Replace("#ele", EClass.sources.elements.alias[source.aliasRef].GetName().ToLower());
645 }
646 n.AddText("_bullet".lang() + text3);
647 }
648 }
649 }
650 if (source.tag.Contains("syncRide"))
651 {
652 n.AddText("_bullet".lang() + "hintSyncRide".lang());
653 }
655 {
656 int i = id;
657 if (i != 8230 && i != 8232)
658 {
659 n.AddText("_bullet".lang() + "hintPartyAbility".lang());
660 }
661 }
662 if (!act.LocalAct)
663 {
664 n.Space();
665 n.AddText("isGlobalAct".lang());
666 }
667 if (cost.type == Act.CostType.None || cost.cost == 0)
668 {
669 return;
670 }
671 n.Space(4);
672 UIItem uIItem = n.AddExtra<UIItem>("costPrice");
673 int num = cost.cost;
674 if (cost.type == Act.CostType.MP)
675 {
676 if (c.Evalue(483) > 0)
677 {
678 num = cost.cost * 100 / (100 + (int)Mathf.Sqrt(c.Evalue(483) * 10) * 3);
679 }
680 if (c.IsPC && c.HasCondition<StanceManaCost>())
681 {
682 int num2 = c.Evalue(1657);
683 if (num2 > 0 && vPotential >= 2)
684 {
685 num = num * (100 - num2 * 20) / 100;
686 }
687 }
688 }
689 string text4 = cost.cost.ToString() ?? "";
690 if (num != cost.cost)
691 {
692 text4 = num + " (" + text4 + ")";
693 }
694 uIItem.text1.SetText(text4, (((cost.type == Act.CostType.MP) ? c.mana.value : c.stamina.value) >= num) ? FontColor.Good : FontColor.Bad);
695 uIItem.image1.sprite = ((cost.type == Act.CostType.MP) ? EClass.core.refs.icons.mana : EClass.core.refs.icons.stamina);
696 uIItem.image1.SetNativeSize();
697 string Calc()
698 {
699 Dice dice = Dice.Create(e, c);
700 if (dice == null)
701 {
702 return p.ToString() ?? "";
703 }
704 return dice.ToString();
705 }
706 }
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:39
int Evalue(int ele)
Definition: Card.cs:2533
override bool IsPC
Definition: Chara.cs:610
bool HasCondition(string alias)
Definition: Chara.cs:9054
Stats stamina
Definition: Chara.cs:1128
static Condition Create(string alias, int power=100, Action< Condition > onCreate=null)
Definition: Condition.cs:46
Sprite mana
Definition: CoreRef.cs:124
Sprite stamina
Definition: CoreRef.cs:126
Icons icons
Definition: CoreRef.cs:355
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:250
SourceElement.Row source
Definition: ELEMENT.cs:273
int vPotential
Definition: ELEMENT.cs:256
virtual int GetPower(Card c)
Definition: ELEMENT.cs:1071
virtual Act.Cost GetCost(Chara c)
Definition: ELEMENT.cs:1024
Act act
Definition: ELEMENT.cs:394
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 715 of file ELEMENT.cs.

716 {
717 if (addHeader)
718 {
719 if (isRef)
720 {
721 UIText.globalSizeMod = -2;
722 n.AddHeader("prevElement".lang(FullName));
723 }
724 else if (this is Act)
725 {
727 n.Space(8);
728 }
729 else
730 {
731 n.AddHeader(FullName.ToTitleCase(wholeText: true));
732 }
733 }
734 string detail = GetDetail();
735 if (!detail.IsEmpty())
736 {
737 n.AddText("NoteText_flavor_element", detail);
738 n.Space(6);
739 }
740 int num = vLink;
741 if (owner.Chara != null && owner.Chara.IsPCFaction)
742 {
744 }
745 bool flag = ShowValue;
746 bool flag2 = ShowRelativeAttribute;
747 if (source.category == "landfeat")
748 {
749 flag = false;
750 flag2 = false;
751 }
752 if (this is Act)
753 {
754 Act act = ACT.Create(source.id);
755 UIItem uIItem = n.AddItem("ItemAbility");
756 uIItem.text1.text = "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))));
757 uIItem.text2.text = act.TargetType.ToString().lang();
758 uIItem.text3.text = ((this is Spell) ? (owner.Chara.CalcCastingChance(owner.GetOrCreateElement(act.source.id)) + "%") : "-") ?? "";
759 }
760 else if (flag)
761 {
762 n.AddTopic("TopicLeft", "vCurrent".lang(), "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
763 if (ShowPotential)
764 {
765 num = vTempPotential;
766 n.AddTopic("TopicLeft", "vPotential".lang(), "vValue".lang(Potential.ToString() ?? "", vPotential + vSourcePotential + MinPotential + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
767 }
769 }
770 if (flag2 && !source.aliasParent.IsEmpty())
771 {
772 Element element = Create(source.aliasParent);
773 UIItem uIItem2 = n.AddItem("ItemRelativeAttribute");
774 uIItem2.text1.SetText(element.Name);
775 element.SetImage(uIItem2.image1);
776 bool flag3 = source.lvFactor > 0 && this is Act;
777 uIItem2.text2.SetActive(flag3);
778 uIItem2.text3.SetActive(flag3);
779 if (flag3)
780 {
781 uIItem2.text2.SetText(GetPower(EClass.pc).ToString() ?? "");
782 }
783 }
784 OnWriteNote(n, owner);
786 {
787 n.AddTopic("TopicLeft", "Class:", GetType()?.ToString() ?? "");
788 n.AddTopic("TopicLeft", "vExp".lang(), vExp.ToString() ?? "");
789 n.AddTopic("TopicLeft", "vSource", vSource.ToString() ?? "");
790 n.AddTopic("TopicLeft", "vSourcePotential", vSourcePotential.ToString() ?? "");
791 n.AddTopic("TopicLeft", "vPotential", vPotential.ToString() ?? "");
792 n.AddTopic("TopicLeft", "Potential", Potential.ToString() ?? "");
793 }
795 onWriteNote?.Invoke(n);
796 if (ShowBonuses && owner.Chara != null)
797 {
798 BonusInfo bonusInfo = new BonusInfo();
799 bonusInfo.ele = this;
800 bonusInfo.n = n;
801 bonusInfo.c = owner.Chara;
802 bonusInfo.WriteNote();
803 }
804 UIText.globalSizeMod = 0;
805 }
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:425
override void WriteNote(UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
Definition: Chara.cs:7028
int CalcCastingChance(Element e, int num=1)
Definition: Chara.cs:5941
override bool IsPCFaction
Definition: Chara.cs:669
bool showExtra
Definition: CoreDebug.cs:168
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:332
virtual int DisplayValue
Definition: ELEMENT.cs:288
int ValueWithoutLink
Definition: ELEMENT.cs:294
int Potential
Definition: ELEMENT.cs:298
int vExp
Definition: ELEMENT.cs:254
ElementContainer owner
Definition: ELEMENT.cs:266
int vTempPotential
Definition: ELEMENT.cs:258
virtual string FullName
Definition: ELEMENT.cs:306
void AddHeaderAbility(UINote n)
Definition: ELEMENT.cs:708
void SetImage(Image i)
Definition: ELEMENT.cs:478
void CheckLevelBonus(ElementContainer owner, UINote n=null)
Definition: ELEMENT.cs:964
virtual bool ShowRelativeAttribute
Definition: ELEMENT.cs:338
virtual string Name
Definition: ELEMENT.cs:304
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1100
int vLink
Definition: ELEMENT.cs:260
virtual bool ShowBonuses
Definition: ELEMENT.cs:340
virtual bool PotentialAsStock
Definition: ELEMENT.cs:336
int vSource
Definition: ELEMENT.cs:262
int vSourcePotential
Definition: ELEMENT.cs:264
virtual void OnWriteNote(UINote n, ElementContainer owner)
Definition: ELEMENT.cs:956
virtual string GetDetail()
Definition: ELEMENT.cs:488
virtual int MinPotential
Definition: ELEMENT.cs:296
virtual bool ShowValue
Definition: ELEMENT.cs:330
ElementContainerFaction charaElements
Definition: FACTION.cs:146
Definition: SPELL.cs:529
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 807 of file ELEMENT.cs.

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

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

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 964 of file ELEMENT.cs.

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

1115 {
1116 return Create(EClass.sources.elements.alias[id].id, v);
1117 }

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 1024 of file ELEMENT.cs.

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

489 {
490 return source.GetDetail();
491 }

References source.

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

◆ GetElementMap() [1/2]

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

Definition at line 531 of file ELEMENT.cs.

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

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 544 of file ELEMENT.cs.

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

◆ GetIcon()

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

Reimplemented in Feat, LandFeat, RaceBonus, and Resistance.

Definition at line 448 of file ELEMENT.cs.

449 {
450 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);
451 }
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 1119 of file ELEMENT.cs.

1120 {
1121 return EClass.sources.elements.alias[alias].id;
1122 }

References SourceManager.elements, and EClass.sources.

◆ GetMaterialSourceValue()

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

Definition at line 421 of file ELEMENT.cs.

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

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

Referenced by ElementContainer.ApplyMaterialElementMap().

◆ GetName()

static string Element.GetName ( string  alias)
inlinestatic

Definition at line 396 of file ELEMENT.cs.

397 {
398 return EClass.sources.elements.alias[alias].GetName();
399 }

References SourceManager.elements, and EClass.sources.

Referenced by TaskChopWood.OnCreateProgress().

◆ GetParent()

Element Element.GetParent ( Card  c)
inline

Definition at line 522 of file ELEMENT.cs.

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

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 1071 of file ELEMENT.cs.

1072 {
1073 return 100;
1074 }

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

◆ GetRandomElement()

static SourceElement.Row Element.GetRandomElement ( int  lv = 1,
bool  useWeight = true 
)
inlinestatic

Definition at line 556 of file ELEMENT.cs.

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

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

Referenced by Thing.OnCreate(), and TraitToolRangeCane.OnCreate().

◆ GetResistDamage()

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

Definition at line 1138 of file ELEMENT.cs.

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

References GetResistLv().

Referenced by Card.DamageHP().

◆ GetResistLv()

static int Element.GetResistLv ( int  v)
inlinestatic

Definition at line 1124 of file ELEMENT.cs.

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

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

◆ GetSortVal()

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

Definition at line 1005 of file ELEMENT.cs.

1006 {
1007 switch (m)
1008 {
1009 case UIList.SortMode.ByCategory:
1010 return source.id + ((!source.aliasParent.IsEmpty()) ? (EClass.sources.elements.alias[source.aliasParent].id * 10000) : 0);
1011 case UIList.SortMode.ByNumber:
1012 return -vPotential * 10000 + source.id;
1013 case UIList.SortMode.ByElementParent:
1014 if (!source.aliasParent.IsEmpty())
1015 {
1016 return EClass.sources.elements.alias[source.aliasParent].sort;
1017 }
1018 return id;
1019 default:
1020 return source.id;
1021 }
1022 }
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 406 of file ELEMENT.cs.

407 {
408 return EClass.sources.elements.alias.TryGetValue(GetType().ToString());
409 }

References SourceManager.elements, and EClass.sources.

◆ GetSourcePotential()

virtual int Element.GetSourcePotential ( int  v)
inlinevirtual

Reimplemented in Skill.

Definition at line 411 of file ELEMENT.cs.

412 {
413 return 0;
414 }

Referenced by ElementContainer.ApplyElementMap().

◆ GetSourceValue()

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

Reimplemented in Ability.

Definition at line 438 of file ELEMENT.cs.

439 {
440 return type switch
441 {
442 SourceValueType.Chara => v * (100 + (lv - 1 + EClass.rnd(lv / 2 + 1)) * source.lvFactor / 10) / 100 + EClass.rnd(lv / 3) * source.lvFactor / 100,
443 SourceValueType.Fixed => v,
444 _ => v * ((source.encFactor == 0) ? 100 : (50 + EClass.rnd(100) + EClass.rnd((int)Mathf.Sqrt(lv * 100)) * source.encFactor / 100)) / 100,
445 };
446 }
static int rnd(long 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 416 of file ELEMENT.cs.

417 {
418 return null;
419 }

Referenced by AddHeaderAbility().

◆ HasTag()

◆ IsActive()

bool Element.IsActive ( Card  c)
inline

Definition at line 453 of file ELEMENT.cs.

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

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

Referenced by AddEncNote().

◆ IsFactionElement()

bool Element.IsFactionElement ( Chara  c)
inline

Definition at line 493 of file ELEMENT.cs.

494 {
495 if (c == null)
496 {
497 return false;
498 }
499 if (c.IsPCFaction)
500 {
501 foreach (Element value in EClass.pc.faction.charaElements.dict.Values)
502 {
503 if (value.id == id && value.Value > 0)
504 {
505 return true;
506 }
507 }
508 }
509 if (c.faithElements != null)
510 {
511 foreach (Element value2 in c.faithElements.dict.Values)
512 {
513 if (value2.id == id && value2.Value > 0)
514 {
515 return true;
516 }
517 }
518 }
519 return false;
520 }
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 1091 of file ELEMENT.cs.

1092 {
1093 return false;
1094 }

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

◆ OnChangeValue()

virtual void Element.OnChangeValue ( )
inlinevirtual

Reimplemented in Ability, AttbMain, and Skill.

Definition at line 960 of file ELEMENT.cs.

961 {
962 }

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 956 of file ELEMENT.cs.

957 {
958 }

Referenced by _WriteNote().

◆ SetImage()

void Element.SetImage ( Image  i)
inline

Definition at line 478 of file ELEMENT.cs.

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

References GetIcon().

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

◆ SetTextValue()

virtual void Element.SetTextValue ( UIText  text)
inlinevirtual

Reimplemented in Resistance.

Definition at line 1076 of file ELEMENT.cs.

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

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 462 of file ELEMENT.cs.

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

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 584 of file ELEMENT.cs.

585 {
586 n.Clear();
587 _WriteNote(n, owner, onWriteNote, isRef: false);
588 n.Build();
589 }
void _WriteNote(UINote n, Chara c, Act act)
Definition: ELEMENT.cs:606
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 591 of file ELEMENT.cs.

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

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 1096 of file ELEMENT.cs.

1097 {
1098 }

Referenced by WriteNoteWithRef().

Member Data Documentation

◆ _source

SourceElement.Row Element._source

Definition at line 248 of file ELEMENT.cs.

◆ Div

const int Element.Div = 5
static

Definition at line 236 of file ELEMENT.cs.

◆ id

int Element.id

Definition at line 250 of file ELEMENT.cs.

Referenced by TraitAltar._OnOffer(), BaseCondition._WriteNote(), _WriteNote(), DamageTextRenderer.Add(), Feat.Apply(), Chara.ApplyDeathPenalty(), Card.ApplyElementEffect(), 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(), AttackProcess.ProcAbility(), ActEffect.ProcAt(), FoodEffect.ProcTrait(), Religion.Reforge(), ButtonElement.Refresh(), UICharaMaker.Refresh(), WidgetStatsBar.Refresh(), WindowCharaMini.Refresh(), WindowChara.RefreshSkill(), AI_Idle.Run(), AI_PlayMusic.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(), CraftUtil.WrapIngredient(), Element.BonusInfo.WriteNote(), and Thing.WriteNote().

◆ List_Body

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

Definition at line 244 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 240 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 242 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 270 of file ELEMENT.cs.

Referenced by SourceManager.Init().

◆ ListElements

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

Definition at line 268 of file ELEMENT.cs.

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

◆ owner

◆ vBase

◆ vExp

◆ vLink

◆ Void

◆ vPotential

◆ vSource

◆ vSourcePotential

int Element.vSourcePotential

Definition at line 264 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ vTempPotential

Property Documentation

◆ act

◆ CanGainExp

virtual bool Element.CanGainExp
get

Definition at line 300 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp().

◆ CostLearn

virtual int Element.CostLearn
get

◆ CostTrain

virtual int Element.CostTrain
get

Definition at line 312 of file ELEMENT.cs.

Referenced by CalcPlat.Train().

◆ DisplayValue

virtual int Element.DisplayValue
get

◆ ExpToNext

virtual int Element.ExpToNext
get

Definition at line 308 of file ELEMENT.cs.

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

◆ FullName

virtual string Element.FullName
get

Definition at line 306 of file ELEMENT.cs.

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

◆ IsFactionWideElement

bool Element.IsFactionWideElement
get

Definition at line 356 of file ELEMENT.cs.

Referenced by AddEncNote().

◆ IsFlag

bool Element.IsFlag
get

Definition at line 302 of file ELEMENT.cs.

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

◆ IsFoodTrait

◆ IsFoodTraitMain

bool Element.IsFoodTraitMain
get

Definition at line 366 of file ELEMENT.cs.

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

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

◆ IsGlobalElement

bool Element.IsGlobalElement
get

Definition at line 344 of file ELEMENT.cs.

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

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 382 of file ELEMENT.cs.

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

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

◆ IsPartyWideElement

bool Element.IsPartyWideElement
get

Definition at line 358 of file ELEMENT.cs.

◆ IsTrait

◆ MinPotential

virtual int Element.MinPotential
get

Definition at line 296 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ MinValue

virtual int Element.MinValue
get

Definition at line 290 of file ELEMENT.cs.

◆ Name

◆ Potential

int Element.Potential
get

Definition at line 298 of file ELEMENT.cs.

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

◆ PotentialAsStock

virtual bool Element.PotentialAsStock
get

Definition at line 336 of file ELEMENT.cs.

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

◆ ShortName

virtual string Element.ShortName
get

Definition at line 342 of file ELEMENT.cs.

Referenced by ButtonElement.SetGrid().

◆ ShowBonuses

virtual bool Element.ShowBonuses
get

Definition at line 340 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowEncNumber

virtual bool Element.ShowEncNumber
get

Definition at line 360 of file ELEMENT.cs.

◆ ShowMsgOnValueChanged

virtual bool Element.ShowMsgOnValueChanged
get

Definition at line 328 of file ELEMENT.cs.

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

◆ ShowPotential

virtual bool Element.ShowPotential
get

Definition at line 332 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowRelativeAttribute

virtual bool Element.ShowRelativeAttribute
get

Definition at line 338 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowValue

virtual bool Element.ShowValue
get

Definition at line 330 of file ELEMENT.cs.

Referenced by _WriteNote().

◆ ShowXP

virtual bool Element.ShowXP
get

Definition at line 316 of file ELEMENT.cs.

317 {
318 get
319 {
321 {
322 return source.category != "attribute";
323 }
324 return true;
325 }
326 }

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

◆ source

SourceElement.Row Element.source
get

Definition at line 272 of file ELEMENT.cs.

273 {
274 get
275 {
277 if (row == null)
278 {
279 SourceElement.Row obj = ((id == 0) ? GetSource() : Get(id)) ?? EClass.sources.elements.rows[0];
280 SourceElement.Row row2 = obj;
281 _source = obj;
282 row = row2;
283 }
284 return row;
285 }
286 }
virtual SourceElement.Row GetSource()
Definition: ELEMENT.cs:406
static SourceElement.Row Get(int id)
Definition: ELEMENT.cs:401
SourceElement.Row _source
Definition: ELEMENT.cs:248

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(), AttackProcess.ProcAbility(), ActEffect.ProcAt(), ButtonElement.Refresh(), CharaAbility.Refresh(), UICharaMaker.Refresh(), WindowCharaMini.Refresh(), Card.RefreshColor(), LayerHome.RefreshFeat(), WindowChara.RefreshSkill(), WindowChara.RefreshStatic(), AI_Eat.Run(), AI_Idle.Run(), AI_PlayMusic.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 310 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp().

◆ UsePotential

virtual bool Element.UsePotential
get

Definition at line 334 of file ELEMENT.cs.

Referenced by ElementContainer.ModExp().

◆ Value

int Element.Value
get

Definition at line 292 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(), 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(), AttackProcess.ProcAbility(), ActEffect.ProcAt(), FoodEffect.ProcTrait(), ButtonElement.Refresh(), WidgetTracker.Refresh(), WindowCharaMini.Refresh(), LayerHome.RefreshFeat(), UIRecipeInfo.RefreshList(), WindowChara.RefreshSkill(), ElementContainer.Remove(), AI_PlayMusic.Run(), LayerAbility.SelectGroup(), ItemGachaResult.SetChara(), Chara.SetFeat(), ButtonElement.SetGrid(), Chara.SetMutation(), Recipe.SetTextDifficulty(), Card.SetTier(), Recipe.TryGetFirstTimeBonus(), GoalCombat.TryUseAbility(), Chara.UseAbility(), ElementContainer.Value(), ElementContainerCard.ValueBonus(), CraftUtil.WrapIngredient(), Element.BonusInfo.WriteNote(), Thing.WriteNote(), WriteNoteWithRef(), Feat.WritePurchaseReq(), and Recipe.WriteReqSkill().

◆ ValueWithoutLink


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