Skip to content

EA 23.61 hotfix 1

December 19, 2024

27 files modified. 1 new file created.

Important Changes

Possible breaking changes. Click the filename to view the chunk.

AI_Fuck (2)

cs
public override void OnCancel() 
cs
public override void OnSuccess() 

SpawnSetting (1)

cs
public static SpawnSetting Mob(string id, int fixedLv = -1) 
public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1) 

AI_Fuck

@@ -279,14 +279,4 @@ static void SuccubusExp(Chara c, Chara tg)

cs
			}
		}
	}

	public override void OnCancel() 
	{ 
		Debug.Log("Cancel"); 
	} 

	public override void OnSuccess() 
	{ 
		Debug.Log("SUCCESS"); 
	} 
}

AI_Sleep

@@ -7,10 +7,12 @@ public override void OnProgressComplete()

cs
		if (!owner.CanSleep())
		{
			Msg.Say((EClass._zone.events.GetEvent<ZoneEventQuest>() != null) ? "badidea" : "notSleepy");
			return; 
		}
		else
		if (base.target != null && !owner.pos.Equals(base.target.pos)) 
		{
			owner.Sleep(base.target); 
			owner._Move(base.target.pos); 
		}
		owner.Sleep(base.target); 
	}
}

AI_UseCrafter

@@ -69,6 +69,7 @@ public void OnEnd()

cs
		{
			layer.OnEndCraft();
		}
		crafter.OnEndAI(this); 
	}

	public override IEnumerable<Status> Run()

ActEffect

@@ -998,6 +998,7 @@ public static bool DamageEle(Card CC, EffectId id, int power, Element e, List<Po

cs
			if (num4 < 0 || num4 > 10000000)
			{
				num4 = 10000000;
				flag3 = false; 
			}
			if (flag3)
			{

AttackProcess

@@ -405,7 +405,7 @@ public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =

cs
		num = Dice.RollMax(dNum, dDim, dBonus);
		if (ammo != null && !flag)
		{
			num += Dice.RollMax(dNumAmmo, dDimAmmo); 
			num += Dice.RollMax(dNumAmmo, dDimAmmo, dBonusAmmo); 
		}
		if (crit && (IsMartial || IsMartialWeapon))
		{

@@ -458,6 +458,10 @@ public bool Perform(int count, bool hasHit, float dmgMulti = 1f, bool maxRoll =

cs
	{
		SourceRace.Row race = TC.Chara.race;
		bane = CC.Evalue(468);
		if (IsRanged) 
		{ 
			bane += toolRange.owner.Evalue(468); 
		} 
		AddBane(race.IsUndead, 461);
		AddBane(race.IsAnimal, 463);
		AddBane(race.IsHuman, 464);

@@ -683,6 +687,10 @@ void AddBane(bool valid, int idEle)

cs
	{
		if (valid)
		{
			if (IsRanged) 
			{ 
				bane += toolRange.owner.Evalue(idEle); 
			} 
			bane += CC.Evalue(idEle);
		}
	}

BaseTileMap

@@ -2591,7 +2591,7 @@ public virtual void DrawTile()

cs
							liquidLv = 0;
						}
					}
					else if (!flag11 && t.trait.IsChangeFloorHeight) 
					else if (!flag11 && t.trait.IsChangeFloorHeight && !t.ignoreStackHeight) 
					{
						orgY += num25 + (float)t.altitude * altitudeFix.y;
						orgZ += (float)t.altitude * altitudeFix.z;

Card

@@ -3647,13 +3647,16 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
	int num5 = Mathf.Clamp(dmg * 6 / MaxHP, 0, 4) + ((dmg > 0) ? 1 : 0);
	if (Evalue(1421) > 0)
	{
		int num6 = dmg; 
		int num6 = 0; 
		int num7 = dmg; 
		if (hp > 0)
		{
			num6 = dmg - hp; 
			num7 = dmg - hp; 
			hp -= dmg;
			num6 += dmg; 
			if (hp < 0 && Chara.mana.value >= 0)
			{
				num6 += hp; 
				hp = 0;
			}
		}

@@ -3661,19 +3664,22 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
		{
			if (Evalue(1421) >= 2)
			{
				num6 /= 2; 
				num7 /= 2; 
			}
			dmg = num6; 
			dmg = num7; 
			if (Chara.mana.value > 0)
			{
				num6 -= Chara.mana.value; 
				num7 -= Chara.mana.value; 
				Chara.mana.value -= dmg;
				num6 += dmg; 
			}
			if (Chara.mana.value <= 0)
			{
				hp -= num6; 
				hp -= num7; 
				num6 += num7; 
			}
		}
		dmg = num6; 
	}
	else
	{

@@ -3693,9 +3699,9 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
				if (e != Element.Void)
				{
					c2 = EClass.Colors.elementColors.TryGetValue(e.source.alias);
					float num7 = (c2.r + c2.g + c2.b) / 3f; 
					num7 = ((num7 > 0.5f) ? 0f : (0.6f - num7)); 
					c2 = new Color(c2.r + num7, c2.g + num7, c2.b + num7, 1f); 
					float num8 = (c2.r + c2.g + c2.b) / 3f; 
					num8 = ((num8 > 0.5f) ? 0f : (0.6f - num8)); 
					c2 = new Color(c2.r + num8, c2.g + num8, c2.b + num8, 1f); 
				}
				popper.SetText(dmg.ToString() ?? "", c2);
			}

@@ -3763,7 +3769,7 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
					if (EClass.player.invlunerable)
					{
						EvadeDeath();
						goto IL_095f; 
						goto IL_0992; 
					}
				}
				if (IsPC && Evalue(1220) > 0 && Chara.stamina.value >= Chara.stamina.max / 2)

@@ -3775,8 +3781,8 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
			}
		}
	}
	goto IL_095f; 
	IL_095f: 
	goto IL_0992; 
	IL_0992: 
	if (trait.CanBeAttacked)
	{
		renderer.PlayAnime(AnimeID.HitObj);

@@ -3906,8 +3912,8 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
	}
	else if (isChara)
	{
		int num8 = ((attackSource != AttackSource.Condition && attackSource != AttackSource.WeaponEnchant) ? 1 : 2); 
		if (num5 >= num8) 
		int num9 = ((attackSource != AttackSource.Condition && attackSource != AttackSource.WeaponEnchant) ? 1 : 2); 
		if (num5 >= num9) 
		{
			if (e != Element.Void)
			{

@@ -3946,29 +3952,29 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
		}
		if (origin.HasElement(662) && attackSource == AttackSource.Melee && origin.isChara && Chara.IsHostile(origin as Chara))
		{
			int num9 = EClass.rnd(3 + Mathf.Clamp(dmg / 100, 0, origin.Evalue(662) / 10)); 
			origin.Chara.stamina.Mod(num9); 
			int num10 = EClass.rnd(3 + Mathf.Clamp(dmg / 100, 0, origin.Evalue(662) / 10)); 
			origin.Chara.stamina.Mod(num10); 
			if (IsAliveInCurrentZone)
			{
				Chara.stamina.Mod(-num9); 
				Chara.stamina.Mod(-num10); 
			}
		}
		if (origin.HasElement(1350) && attackSource == AttackSource.Melee)
		{
			int num10 = EClass.rndHalf(2 + Mathf.Clamp(dmg / 10, 0, origin.Chara.GetPietyValue() + 10)); 
			origin.Chara.mana.Mod(num10); 
			int num11 = EClass.rndHalf(2 + Mathf.Clamp(dmg / 10, 0, origin.Chara.GetPietyValue() + 10)); 
			origin.Chara.mana.Mod(num11); 
			if (IsAliveInCurrentZone)
			{
				Chara.mana.Mod(-num10); 
				Chara.mana.Mod(-num11); 
			}
		}
		if (origin.HasElement(661) && attackSource == AttackSource.Melee)
		{
			int num11 = EClass.rnd(2 + Mathf.Clamp(dmg / 10, 0, origin.Evalue(661) + 10)); 
			origin.Chara.mana.Mod(num11); 
			int num12 = EClass.rnd(2 + Mathf.Clamp(dmg / 10, 0, origin.Evalue(661) + 10)); 
			origin.Chara.mana.Mod(num12); 
			if (IsAliveInCurrentZone)
			{
				Chara.mana.Mod(-num11); 
				Chara.mana.Mod(-num12); 
			}
		}
	}

@@ -3986,15 +3992,15 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
			elements.ModExp(123, a3);
		}
	}
	int num12 = ((EClass.rnd(2) == 0) ? 1 : 0); 
	int num13 = ((EClass.rnd(2) == 0) ? 1 : 0); 
	if (attackSource == AttackSource.Condition)
	{
		num12 = 1 + EClass.rnd(2); 
		num13 = 1 + EClass.rnd(2); 
	}
	if (num12 > 0) 
	if (num13 > 0) 
	{
		bool flag = Chara.HasCondition<ConPoison>() || ((e.id == 915 || e.id == 923) && ResistLv(Evalue(955)) < 4);
		AddBlood(num12, flag ? 6 : (-1)); 
		AddBlood(num13, flag ? 6 : (-1)); 
	}
	bool flag2 = true;
	switch (e.id)

@@ -4150,14 +4156,14 @@ public void DamageHP(int dmg, int ele, int eleP = 100, AttackSource attackSource

cs
	}
	if (IsPC)
	{
		float num13 = (float)hp / (float)MaxHP; 
		float num14 = (float)hp / (float)MaxHP; 
		if (Evalue(1421) > 0)
		{
			num13 = (float)Chara.mana.value / (float)Chara.mana.max; 
			num14 = (float)Chara.mana.value / (float)Chara.mana.max; 
		}
		if (num13 < 0.3f) 
		if (num14 < 0.3f) 
		{
			PlaySound("heartbeat", 1f - num13 * 2f); 
			PlaySound("heartbeat", 1f - num14 * 2f); 
		}
	}
	if (!IsPC && hp < MaxHP / 5 && Evalue(423) <= 0 && dmg * 100 / MaxHP + 10 > EClass.rnd(IsPowerful ? 400 : 150) && !HasCondition<ConFear>())

Chara

@@ -1338,7 +1338,7 @@ public override void OnCreate(int genLv)

cs
			string[] array = mainElement[i].Split('/');
			SourceElement.Row row = EClass.sources.elements.alias["ele" + array[0]];
			int num2 = source.LV * row.eleP / 100 + base.LV - source.LV;
			if (list.Count == 0 || num2 < genLv) 
			if (list.Count == 0 || num2 < genLv || array[0] == bp.idEle) 
			{
				list.Add(new Tuple<string, int, int>(array[0], (array.Length > 1) ? int.Parse(array[1]) : 0, num2));
			}

@@ -1346,7 +1346,7 @@ public override void OnCreate(int genLv)

cs
		Tuple<string, int, int> tuple = list.RandomItemWeighted((Tuple<string, int, int> a) => 10000 / (100 + (genLv - a.Item3) * 25));
		if (!bp.idEle.IsEmpty())
		{
			tuple = list.Where((Tuple<string, int, int> a) => a.Item1 == bp.idEle).First(); 
			tuple = list.Where((Tuple<string, int, int> a) => a.Item1 == bp.idEle).FirstOrDefault() ?? tuple; 
		}
		SetMainElement(tuple.Item1, (tuple.Item2 == 0) ? 10 : tuple.Item2, elemental: true);
		if (list.Count >= 2)

@@ -5852,7 +5852,7 @@ public override void SetRenderParam(RenderParam p)

cs
	else if (sourceCard._tiles.Length > 1)
	{
		int num2 = ((base.idSkin != 0 || source.staticSkin) ? base.idSkin : (base.uid % sourceCard._tiles.Length / 2 * 2 + ((!base.IsMale) ? 1 : 0)));
		p.tile = sourceCard._tiles[(num2 < sourceCard._tiles.Length) ? num2 : 0] * ((!flipX) ? 1 : (-1)); 
		p.tile = sourceCard._tiles[(num2 >= 0 && num2 < sourceCard._tiles.Length) ? num2 : 0] * ((!flipX) ? 1 : (-1)); 
	}
	else
	{

@@ -6347,7 +6347,7 @@ public TraitBed FindBed()

cs

	public TraitBed TryAssignBed()
	{
		if (memberType == FactionMemberType.Livestock || (!IsPCFaction && !IsGuest())) 
		if (!IsPCFaction && !IsGuest()) 
		{
			return null;
		}

@@ -8385,10 +8385,6 @@ public void Cure(CureType type, int p = 100, BlessedState state = BlessedState.N

cs
		}
		CureCondition<ConWait>();
		CureCondition<ConSleep>();
		if (type == CureType.Death && hunger.value > 30) 
		{ 
			hunger.value = 30; 
		} 
		if (type == CureType.Jure)
		{
			SAN.Mod(-999);

DNA

@@ -244,6 +244,7 @@ public void Generate(Type _type, Chara model = null)

cs
	int body = 0;
	int action = 0;
	int feat = 0;
	int maxSlot = 1; 
	List<Element> listAttb = model.elements.ListBestAttributes();
	List<Element> listSkill = model.elements.ListBestSkills();
	List<Element> listFeat = model.elements.ListGeneFeats();

@@ -336,7 +337,14 @@ void AddFeat()

cs
		{
			feat++;
			Element e = listFeat.RandomItem();
			AddVal(e.id, 1, allowStack: false, (int v) => e.source.cost[0] * 5); 
			if (maxSlot <= 1 || e.source.geneSlot <= 1) 
			{ 
				if (e.source.geneSlot > maxSlot) 
				{ 
					maxSlot = e.source.geneSlot; 
				} 
				AddVal(e.id, 1, allowStack: false, (int v) => e.source.cost[0] * 5); 
			} 
		}
	}
	void AddRandom(int n)

FactionBranch

@@ -287,7 +287,7 @@ public void OnAfterSimulate()

cs
	}
	foreach (Chara chara in EClass._map.charas)
	{
		if (!chara.IsPCParty && !chara.noMove && (chara.pos.cell.IsBlocked || chara.pos.cell.hasDoor) && !chara.isRestrained && !chara.HasCondition<ConSuspend>()) 
		if (!chara.IsPCParty && !chara.noMove && (chara.pos.cell.HasBlock || chara.pos.cell.hasDoor) && !chara.isRestrained && !chara.HasCondition<ConSuspend>()) 
		{
			chara.MoveImmediate(chara.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? chara.pos);
		}

GoalGraze

@@ -14,7 +14,6 @@ public override IEnumerable<Status> Run()

cs

	public Point GetPos()
	{
		owner.ClearBed(); 
		Thing thing = null;
		Rand.SetSeed(owner.uid);
		if (thing == null)

GoalSleep

@@ -54,7 +54,7 @@ public override void OnSimulatePosition()

cs
	{
		owner.TryAssignBed();
	}
	if (bed != null && !bed.pos.HasChara) 
	if (bed != null) 
	{
		owner.MoveImmediate(bed.pos);
		return;

Hobby

@@ -44,10 +44,13 @@ public int GetEfficiency(Chara c)

cs
		{
			return 0;
		}
		TraitBed traitBed = c.FindBed(); 
		if (traitBed != null) 
		if (c.memberType != FactionMemberType.Livestock) 
		{
			num += 30 + traitBed.owner.GetTotalQuality() + traitBed.owner.Evalue(750); 
			TraitBed traitBed = c.FindBed(); 
			if (traitBed != null) 
			{ 
				num += 30 + traitBed.owner.GetTotalQuality() + traitBed.owner.Evalue(750); 
			} 
		}
	}
	if (source.alias == "Breeding")

ListPeopleBed

@@ -2,6 +2,8 @@ public class ListPeopleBed : ListPeople

cs
{
	public TraitBed bed;

	public BedType bedType => bed.owner.c_bedType; 

	public override void OnInstantiate(Chara c, ItemGeneral i)
	{
		UIButton uIButton = i.AddSubButton(EClass.core.refs.icons.bed, delegate

@@ -37,12 +39,23 @@ public override void OnList()

cs
{
	foreach (Chara chara in EClass._map.charas)
	{
		if (!chara.IsPCFaction || chara.memberType != 0) 
		if (!chara.IsPCFaction || (chara.memberType != 0 && chara.memberType != FactionMemberType.Livestock)) 
		{
			continue;
		}
		if (main)
		{
			if (bedType == BedType.livestock) 
			{ 
				if (chara.memberType != FactionMemberType.Livestock) 
				{ 
					continue; 
				} 
			} 
			else if (chara.memberType == FactionMemberType.Livestock) 
			{ 
				continue; 
			} 
			if (!bed.IsHolder(chara))
			{
				list.Add(chara);

Region

@@ -308,7 +308,7 @@ public override void OnAdvanceHour()

cs
			}
		}
	}
	if (ListMobs().Count >= 6 || EClass.rnd(3) != 0) 
	if (ListMobs().Count >= (EClass.debug.enable ? 100 : 6) || EClass.rnd(3) != 0) 
	{
		return;
	}

SpawnSetting

@@ -16,6 +16,8 @@ public class SpawnSetting

cs

	public string id;

	public string idEle; 

	public Rarity rarity = Rarity.Random;

	public SpawnHostility hostility = SpawnHostility.Enemy;

@@ -63,11 +65,12 @@ public static SpawnSetting Encounter(int lv)

cs
		};
	}

	public static SpawnSetting Mob(string id, int fixedLv = -1) 
	public static SpawnSetting Mob(string id, string idEle = null, int fixedLv = -1) 
	{
		return new SpawnSetting
		{
			id = id,
			idEle = idEle, 
			fixedLv = fixedLv
		};
	}

ThingContainer

@@ -790,17 +790,18 @@ public List<Thing> List(Func<Thing, bool> func, bool onlyAccessible = false)

cs

	public void _List(Func<Thing, bool> func, bool onlyAccessible = false)
	{
		if (onlyAccessible && !owner.trait.CanSearchContents) 
		{ 
			return; 
		} 
		using Enumerator enumerator = GetEnumerator();
		while (enumerator.MoveNext())
		{
			Thing current = enumerator.Current;
			if (!onlyAccessible || !(current.parent is Card) || (current.parent as Card).c_lockLv <= 0) 
			current.things._List(func, onlyAccessible); 
			if (func(current)) 
			{
				current.things._List(func, onlyAccessible); 
				if (func(current)) 
				{ 
					tempList.Add(current); 
				} 
				tempList.Add(current); 
			}
		}
	}

TraitBed

@@ -54,7 +54,7 @@ public override void TrySetAct(ActPlan p)

cs
				SE.Play("jingle_embark");
			});
		}
		if (owner.c_bedType == BedType.resident || owner.c_bedType == BedType.residentOne) 
		if (owner.c_bedType == BedType.resident || owner.c_bedType == BedType.residentOne || owner.c_bedType == BedType.livestock) 
		{
			uIContextMenu.AddButton("assignBed", delegate
			{

@@ -65,17 +65,15 @@ public override void TrySetAct(ActPlan p)

cs
		{
			BedType.resident,
			BedType.residentOne,
			BedType.livestock, 
			BedType.guest
		})
		{
			if (t != BedType.livestock && t != BedType.patient) 
			uIContextMenu.AddButton(((t == owner.c_bedType) ? "context_checker".lang() : "") + ("bed_" + t).lang(), delegate
			{
				uIContextMenu.AddButton(((t == owner.c_bedType) ? "context_checker".lang() : "") + ("bed_" + t).lang(), delegate
				{ 
					SetBedType(t); 
					SE.ClickOk(); 
				}); 
			} 
				SetBedType(t); 
				SE.ClickOk(); 
			}); 
		}
		CursorSystem.ignoreCount = 5;
		uIContextMenu.Show();

TraitCrafter

@@ -461,4 +461,8 @@ public override bool OnUse(Chara c)

cs
		LayerDragGrid.CreateCraft(this);
		return false;
	}

	public virtual void OnEndAI(AI_UseCrafter ai) 
	{ 
	} 
}

+TraitFortuneBall

File Created
cs
public class TraitFortuneBall : Trait
{
}

TraitMoongateEx

@@ -19,6 +19,7 @@ public override bool OnUse(Chara c)

cs
			MapMetaData metaData = Map.GetMetaData(item.FullName);
			if (metaData != null && metaData.IsValidVersion())
			{
				metaData.path = item.FullName; 
				list.Add(metaData);
			}
		}

@@ -28,13 +29,45 @@ public override bool OnUse(Chara c)

cs
			EClass.pc.SayNothingHappans();
			return false;
		}
		EClass.ui.AddLayer<LayerList>().SetList2(list, (MapMetaData a) => a.name, delegate(MapMetaData a, ItemGeneral b) 
		LayerList layer = null; 
		bool skipDialog = false; 
		layer = EClass.ui.AddLayer<LayerList>().SetList2(list, (MapMetaData a) => a.name, delegate(MapMetaData a, ItemGeneral b) 
		{
			LoadMap(a);
		}, delegate
		}, delegate(MapMetaData a, ItemGeneral b) 
		{
			b.AddSubButton(EClass.core.refs.icons.trash, delegate
			{ 
				if (skipDialog) 
				{ 
					func(); 
				} 
				else
				{ 
					Dialog.Choice("dialogDeleteGame", delegate(Dialog d) 
					{ 
						d.AddButton("yes".lang(), delegate
						{ 
							func(); 
						}); 
						d.AddButton("yesAndSkip".lang(), delegate
						{ 
							func(); 
							skipDialog = true; 
						}); 
						d.AddButton("no".lang()); 
					}); 
				} 
			}); 
			void func() 
			{ 
				IO.DeleteFile(a.path); 
				list.Remove(a); 
				layer.list.List(); 
				SE.Trash(); 
			} 
		}).SetSize(500f)
			.SetTitles("wMoongate"); 
			.SetTitles("wMoongate") as LayerList; 
		return false;
	}
}

TraitObj

@@ -1,6 +1,4 @@

cs
public class TraitObj : TraitTile
{
	public override TileRow source => EClass.sources.objs.rows[owner.refVal];

	public override bool CanBeOnlyBuiltInHome => true; 
}

TraitRollingFortune

@@ -14,4 +14,16 @@ public override int GetDuration(AI_UseCrafter ai, int costSp)

cs
	{
		return GetSource(ai).time;
	}

	public override void OnEndAI(AI_UseCrafter ai) 
	{ 
		if (EClass.pc.isDead || !owner.ExistsOnMap) 
		{ 
			return; 
		} 
		foreach (Card item in owner.pos.ListThings<TraitFortuneBall>(onlyInstalled: false)) 
		{ 
			EClass.pc.Pick(item.Thing, msg: false); 
		} 
	} 
}

Widget

@@ -332,11 +332,14 @@ public virtual void OnManagerActivate()

cs
	goCover = Util.Instantiate("UI/Widget/CoverWidget", base.transform).gameObject;
	RectTransform rectTransform = goCover.transform.Rect();
	RectTransform rectTransform2 = dragPanel.Rect();
	rectTransform.pivot = rectTransform2.pivot; 
	rectTransform.anchorMin = rectTransform2.anchorMin; 
	rectTransform.anchorMax = rectTransform2.anchorMax; 
	rectTransform.anchoredPosition = rectTransform2.anchoredPosition; 
	rectTransform.sizeDelta = rectTransform2.sizeDelta; 
	if ((bool)rectTransform && (bool)rectTransform2) 
	{ 
		rectTransform.pivot = rectTransform2.pivot; 
		rectTransform.anchorMin = rectTransform2.anchorMin; 
		rectTransform.anchorMax = rectTransform2.anchorMax; 
		rectTransform.anchoredPosition = rectTransform2.anchoredPosition; 
		rectTransform.sizeDelta = rectTransform2.sizeDelta; 
	} 
	UIDragPanel componentInChildren = goCover.GetComponentInChildren<UIDragPanel>();
	componentInChildren.autoAnchor = config.userAnchor == RectPosition.Auto;
	componentInChildren.onDrag = OnChangePosition;

WidgetDate

@@ -117,6 +117,10 @@ public void _Refresh()

cs
	{
		text += item2.TextWidgetDate;
	}
	if (EMono.debug.enable) 
	{ 
		text += " *DEBUG MODE*"; 
	} 
	textTime.text = text;
	rectClock.SetActive(extra.clock);
	if (extra.clock)

Zone

@@ -2511,7 +2511,8 @@ public Chara SpawnMob(Point pos = null, SpawnSetting setting = null)

cs
	int dangerLv = DangerLv;
	CardBlueprint cardBlueprint = new CardBlueprint
	{
		rarity = Rarity.Normal 
		rarity = Rarity.Normal, 
		idEle = setting.idEle 
	};
	int num = ((setting.filterLv == -1) ? dangerLv : setting.filterLv);
	if (ScaleMonsterLevel)

ZonePreEnterEncounter

@@ -24,7 +24,7 @@ public override void Execute()

cs
			Point randomPointInRadius = EClass.pc.pos.GetRandomPointInRadius(2, 5, requireLos: false, allowChara: false);
			if (randomPointInRadius != null)
			{
				Chara chara = EClass._zone.SpawnMob(randomPointInRadius, SpawnSetting.Mob(mob.id)); 
				Chara chara = EClass._zone.SpawnMob(randomPointInRadius, SpawnSetting.Mob(mob.id, (mob.MainElement == Element.Void) ? null : mob.MainElement.source.alias.Substring(3))); 
				Hostility hostility2 = (chara.c_originalHostility = Hostility.Enemy);
				chara.hostility = hostility2;
				chara.enemy = EClass.pc.party.members.RandomItem();