Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitShrine.cs
Go to the documentation of this file.
2{
4
6
7 public override bool RenderExtra
8 {
9 get
10 {
11 if (owner.isOn)
12 {
13 if (!owner.IsInstalled)
14 {
15 return owner.isRoofItem;
16 }
17 return true;
18 }
19 return false;
20 }
21 }
22
23 public override void OnCreate(int lv)
24 {
25 base.OnCreate(lv);
26 owner.refVal = EClass.gamedata.shrines.IndexOf(EClass.gamedata.shrines.RandomItemWeighted((ShrineData a) => a.chance));
27 owner.idSkin = Shrine.skin;
28 }
29
30 public override void _OnUse(Chara c)
31 {
32 Point point = (owner.ExistsOnMap ? owner.pos : EClass.pc.pos);
33 switch (Shrine.id)
34 {
35 case "material":
36 ActEffect.Proc(EffectId.ChangeMaterial, EClass.pc, null, 100, new ActRef
37 {
38 n1 = GetMaterial().alias
39 });
40 break;
41 case "armor":
42 {
43 bool flag = mat.alias == "gold";
44 ActEffect.Proc(flag ? EffectId.EnchantArmorGreat : EffectId.EnchantArmor, 100, flag ? BlessedState.Blessed : BlessedState.Normal, EClass.pc);
45 break;
46 }
47 case "replenish":
48 {
49 foreach (Chara member in EClass.pc.party.members)
50 {
51 member.hp = member.MaxHP;
52 member.mana.value = member.mana.max;
53 member.stamina.Mod(member.stamina.max / 3);
54 if (!member.IsPC)
55 {
56 member.stamina.value = member.stamina.max;
57 }
58 member.PlayEffect("revive");
59 member.Say("heal_light", member);
60 foreach (Condition item in member.conditions.Copy())
61 {
62 if (item.Type == ConditionType.Debuff && !item.IsKilled)
63 {
64 member.Say("removeHex", member, item.Name.ToLower());
65 item.Kill();
66 }
67 }
68 }
69 break;
70 }
71 case "strife":
72 {
73 for (int i = 0; i < 3 + EClass.rnd(2); i++)
74 {
75 EClass._zone.SpawnMob(point.GetNearestPoint(allowBlock: false, allowChara: false), (i == 0) ? SpawnSetting.Boss(owner.LV) : SpawnSetting.DefenseEnemy(owner.LV))?.PlayEffect("teleport");
76 }
77 break;
78 }
79 case "knowledge":
80 {
81 Thing t2 = ThingGen.Create((EClass.rnd(3) == 0) ? "book_skill" : "book_ancient", -1, owner.LV);
82 EClass._zone.AddCard(t2, point);
83 break;
84 }
85 case "invention":
87 break;
88 case "item":
89 {
90 Thing t = ThingGen.Create("water");
91 EClass._zone.AddCard(t, point);
92 break;
93 }
94 }
95 }
96
97 public override void OnRenderExtra(RenderParam p)
98 {
99 PaintPosition paintPosition = EClass.setting.render.paintPos.TryGetValue("shrine");
100 int num = 1;
101 p.x += paintPosition.pos.x * (float)num;
102 p.y += paintPosition.pos.y;
103 p.z += paintPosition.pos.z;
104 p.tile = EClass.core.refs.renderers.objs_shrine.ConvertTile(Shrine.tile) * num;
105 p.matColor = BaseTileMap.GetColorInt(ref GetMaterial().matColor, 100);
107 }
108
110 {
111 if (mat != null)
112 {
113 return mat;
114 }
115 Rand.SetSeed(owner.c_seed);
116 if (Shrine.id == "armor")
117 {
118 mat = EClass.sources.materials.alias[(EClass.rnd(5) == 0) ? "gold" : "granite"];
119 }
120 else
121 {
122 mat = MATERIAL.GetRandomMaterial(owner.LV / 3, (EClass.rnd(2) == 0) ? "metal" : "leather");
123 }
124 Rand.SetSeed();
125 return mat;
126 }
127
128 public override string GetName()
129 {
130 string @ref = "";
131 if (Shrine.id == "material")
132 {
133 @ref = GetMaterial().GetName().ToTitleCase();
134 }
135 return ("shrine_" + Shrine.id).lang(@ref);
136 }
137}
BlessedState
Definition: BlessedState.cs:2
ConditionType
Definition: ConditionType.cs:2
EffectId
Definition: EffectId.cs:2
static void Proc(EffectId id, Card cc, Card tc=null, int power=100, ActRef actRef=default(ActRef))
Definition: ActEffect.cs:788
static int GetColorInt(ref Color matColor, int p)
bool isRoofItem
Definition: Card.cs:550
Point pos
Definition: Card.cs:55
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
Definition: Card.cs:5438
int refVal
Definition: Card.cs:190
bool IsInstalled
Definition: Card.cs:2241
bool isOn
Definition: Card.cs:514
int LV
Definition: Card.cs:370
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Definition: Chara.cs:10
override bool IsPC
Definition: Chara.cs:597
Party party
Definition: Chara.cs:43
List< Condition > conditions
Definition: Chara.cs:196
override int MaxHP
Definition: Chara.cs:693
Stats mana
Definition: Chara.cs:963
Stats stamina
Definition: Chara.cs:955
RenderData objs_shrine
Definition: CoreRef.cs:304
Renderers renderers
Definition: CoreRef.cs:341
CoreRef refs
Definition: Core.cs:51
Definition: EClass.cs:5
static int rnd(int a)
Definition: EClass.cs:50
static GameData gamedata
Definition: EClass.cs:36
static Core core
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:20
static SourceManager sources
Definition: EClass.cs:42
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static GameSetting setting
Definition: EClass.cs:34
List< ShrineData > shrines
Definition: GameData.cs:7
UD_String_PaintPosition paintPos
Definition: GameSetting.cs:218
RenderSetting render
Definition: GameSetting.cs:301
static SourceMaterial.Row GetRandomMaterial(int lv, string group=null, bool tryLevelMatTier=false)
Definition: MATERIAL.cs:43
List< Chara > members
Definition: Party.cs:18
RecipeManager recipes
Definition: Player.cs:898
Definition: Point.cs:9
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false)
Definition: Point.cs:595
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
void ComeUpWithRandomRecipe(string idCat=null, int lvBonus=0)
void Draw(RenderParam p, int tile)
Definition: RenderData.cs:128
int ConvertTile(int tile)
Definition: RenderData.cs:110
string id
Definition: ShrineData.cs:8
float chance
Definition: ShrineData.cs:11
SourceMaterial materials
static SpawnSetting Boss(int filterLv, int fixedLv=-1)
Definition: SpawnSetting.cs:45
static SpawnSetting DefenseEnemy(int lv)
virtual void Mod(int a)
Definition: Stats.cs:135
virtual int max
Definition: Stats.cs:68
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
ShrineData Shrine
Definition: TraitShrine.cs:5
override string GetName()
Definition: TraitShrine.cs:128
override void OnRenderExtra(RenderParam p)
Definition: TraitShrine.cs:97
override void OnCreate(int lv)
Definition: TraitShrine.cs:23
SourceMaterial.Row mat
Definition: TraitShrine.cs:3
SourceMaterial.Row GetMaterial()
Definition: TraitShrine.cs:109
override bool RenderExtra
Definition: TraitShrine.cs:8
override void _OnUse(Chara c)
Definition: TraitShrine.cs:30
Card owner
Definition: Trait.cs:26
bool TryGetValue(TKey key, out TValue value)
Definition: UDictionary.cs:178
Chara SpawnMob(Point pos=null, SpawnSetting setting=null)
Definition: Zone.cs:2543
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893
Definition: ActRef.cs:2