EA 23.51 Nightly
December 7, 2024
23 files modified. 1 new file created.
Important Changes
None.
AM_Adv
@@ -873,19 +873,24 @@ public override void _OnUpdateInput()
}
break;
case EAction.QuickLoad:
{
if (!EClass.debug.enable && !EClass.game.Difficulty.allowManualSave)
{
SE.Beep();
break;
}
EClass.core.WaitForEndOfFrame(delegate
string slot = Game.id;
bool isCloud = EClass.game.isCloud;
Game.TryLoad(slot, isCloud, delegate
{
string text = Game.id;
bool isCloud = EClass.game.isCloud;
EClass.scene.Init(Scene.Mode.None);
Game.Load(text, isCloud);
EClass.core.WaitForEndOfFrame(delegate
{
EClass.scene.Init(Scene.Mode.None);
Game.Load(slot, isCloud);
});
});
break;
}
case EAction.Report:
if (!EClass.debug.enable)
{
ActPlan
@@ -677,40 +677,37 @@ public void _Update(PointTarget target)
Thing t = _c.Thing;
if (input == ActInput.AllAction)
{
if (EClass.debug.enable || EClass.player.HasKeyItem("license_illumination"))
if ((EClass.debug.enable || EClass.player.HasKeyItem("license_illumination")) && t.LightData != null)
{
if (t.LightData != null)
if (t.c_lightColor != 0)
{
if (t.c_lightColor != 0)
TrySetAct("actClearLight", delegate
{
TrySetAct("actClearLight", delegate
{
t.c_lightColor = 0;
t.RecalculateFOV();
t.renderer.GetTC<TCExtra>()?.RefreshColor();
return false;
}, t);
}
TrySetAct("actSetLight", delegate
{
Color lightColor = t.LightColor;
EClass.ui.AddLayer<LayerColorPicker>().SetColor(lightColor, lightColor, delegate(PickerState state, Color _c)
{
t.c_lightColor = (byte)Mathf.Clamp(_c.r * 32f, 1f, 31f) * 1024 + (byte)Mathf.Clamp(_c.g * 32f, 1f, 31f) * 32 + (byte)Mathf.Clamp(_c.b * 32f, 1f, 31f);
t.RecalculateFOV();
t.renderer.GetTC<TCExtra>()?.RefreshColor();
});
t.c_lightColor = 0;
t.RecalculateFOV();
t.renderer.GetTC<TCExtra>()?.RefreshColor();
return false;
}, t);
}
if (pos.cell.IsTopWater)
TrySetAct("actSetLight", delegate
{
TrySetAct("(debug) Toggle Float", delegate
Color lightColor = t.LightColor;
EClass.ui.AddLayer<LayerColorPicker>().SetColor(lightColor, lightColor, delegate(PickerState state, Color _c)
{
t.isFloating = !t.isFloating;
return false;
}, t);
}
t.c_lightColor = (byte)Mathf.Clamp(_c.r * 32f, 1f, 31f) * 1024 + (byte)Mathf.Clamp(_c.g * 32f, 1f, 31f) * 32 + (byte)Mathf.Clamp(_c.b * 32f, 1f, 31f);
t.RecalculateFOV();
t.renderer.GetTC<TCExtra>()?.RefreshColor();
});
return false;
}, t);
}
if (EClass.debug.enable && pos.cell.IsTopWater)
{
TrySetAct("(debug) Toggle Float", delegate
{
t.isFloating = !t.isFloating;
return false;
}, t);
}
if (!EClass._zone.IsUserZone || !t.isNPCProperty)
{
ActionMode
@@ -1047,7 +1047,7 @@ public void DoFunc(CoreConfig.GameFuncBuild func)
EClass.scene.ToggleShowWall();
break;
case CoreConfig.GameFuncBuild.TogglePicker:
if (!Picker.CanActivate)
if (Picker.CanActivate)
{
Picker.Activate();
}
@@ -1153,7 +1153,7 @@ public void DoFunc(CoreConfig.GameFunc func)
Msg.Say("invalidAction");
return;
}
Inspect.Activate();
BuildMenu.Toggle();
break;
case CoreConfig.GameFunc.ShowJournal:
{
BuildMenu
@@ -96,13 +96,13 @@ public static void Toggle()
EMono.player.hotbars.bars[3].dirty = true;
EMono.player.hotbars.ResetHotbar(4);
EMono.player.hotbars.bars[4].dirty = true;
if (EMono.debug.godBuild || (EMono.Branch != null && EMono.Branch.elements.Has(4006)))
if (ActionMode.LastBuildMode != null)
{
ActionMode.Inspect.Activate();
ActionMode.LastBuildMode.Activate();
}
else if (ActionMode.LastBuildMode != null)
else if (EMono.debug.godBuild || (EMono.Branch != null && EMono.Branch.elements.Has(4006)))
{
ActionMode.LastBuildMode.Activate();
ActionMode.Inspect.Activate();
}
else
{
Card
}
if (IsPCParty && EClass.pc.ai is GoalAutoCombat)
{
dmg = dmg - EClass.pc.Evalue(13) - 1;
}
else if (origin != null && origin.IsPCParty && EClass.pc.ai is GoalAutoCombat)
{
dmg = dmg * 100 / Mathf.Max(110 - EClass.pc.Evalue(13), 105);
dmg = dmg * 100 / Mathf.Min(105 + EClass.pc.Evalue(135) / 10, 110);
}
if (HasElement(1218))
{
if (EClass.player.invlunerable)
{
EvadeDeath();
goto IL_099c;
goto IL_095f;
}
}
if (IsPC && Evalue(1220) > 0 && Chara.stamina.value >= Chara.stamina.max / 2)
}
}
}
goto IL_099c;
IL_099c:
goto IL_095f;
IL_095f:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);
Chara
@@ -4108,6 +4108,10 @@ public void RestockEquip(bool onCreate)
{
equip = job.equip;
}
if (equip == "none")
{
return;
}
switch (id)
{
case "kettle":
@@ -4441,7 +4445,10 @@ public void Revive(Point p = null, bool msg = false)
base.hp = MaxHP / 3;
mana.value = 0;
stamina.value = 0;
hunger.value = 30;
if (hunger.value > 30)
{
hunger.value = 30;
}
sleepiness.value = 0;
hostility = OriginalHostility;
if (IsPC)
Core
@@ -91,6 +91,8 @@ public bool IsGameStarted
protected override void Awake()
{
base.Awake();
Debug.Log("Core Awake");
Debug.Log("Version:" + version.GetText());
QualitySettings.vSyncCount = 0;
Application.targetFrameRate = 60;
IO.CreateDirectory(CorePath.Temp);
@@ -183,7 +185,6 @@ protected override void Awake()
Portrait.dictList = new Dictionary<string, List<ModItem<Sprite>>>();
TileType.Init();
screen.tileMap.rendererObjDummy.Init();
Debug.Log("Core Awake");
Debug.Log(steam.steamworks.settings.applicationId);
}
CoreDebug
@@ -930,16 +930,38 @@ public void UpdateInput()
}
if (Input.GetKeyDown(KeyCode.F3))
{
EClass.pc.pos.ForeachNearestPoint(delegate(Point p)
for (int i = 0; i < 10; i++)
{
if (PathManager.Instance.IsPathClear(EClass.pc.pos, p, EClass.pc, 10) && !p.Equals(EClass.pc.pos))
{
Chara t = CharaGen.Create("putty");
EClass._zone.AddCard(t, p);
return true;
}
return false;
}, allowBlock: false, allowChara: false, allowInstalled: false, ignoreCenter: true);
Thing thing = ThingGen.Create("egg_fertilized");
thing.TryMakeRandomItem(40);
thing.SetEncLv(200);
EClass.pc.Pick(thing);
}
foreach (Chara deadChara in EClass._map.deadCharas)
{
Debug.Log(deadChara);
}
EClass.core.steam.CheckUpdate();
EClass.player.flags.loytelMartLv++;
Msg.Say("loytelmart:" + EClass.player.flags.loytelMartLv);
Guild.Fighter.relation.rank = 20;
Guild.Mage.relation.rank = 20;
Guild.Thief.relation.rank = 20;
Guild.Merchant.relation.rank = 20;
if (EClass.Branch != null)
{
EClass.Branch.ModExp(EClass.Branch.GetNextExp());
}
foreach (Chara member in EClass.pc.party.members)
{
member.AddExp(member.ExpToNext);
}
EClass.pc.PlayEffect("boost");
EClass.pc.PlaySound("boost");
EClass.pc.elements.SetBase(306, 100);
EClass.pc.elements.SetBase(85, 100);
EClass.pc.feat += 10;
EClass.player.totalFeat += 10;
return;
}
if (Input.GetKeyDown(KeyCode.F4))
@@ -1010,7 +1032,7 @@ public void UpdateInput()
if (Input.GetKey(KeyCode.F9))
{
EClass.scene.paused = false;
for (int i = 0; i < advanceMin; i++)
for (int j = 0; j < advanceMin; j++)
{
EClass.game.updater.FixedUpdate();
}
@@ -1150,8 +1172,8 @@ public void UpdateInput()
{
for (int num4 = hitPoint.detail.things.Count - 1; num4 >= 0; num4--)
{
Thing thing = hitPoint.detail.things[num4];
Debug.Log(thing.id + "/" + thing.Pref.height + "/" + thing.trait?.ToString() + "/" + thing.source.tileType.CanStack + "/" + thing.source.tileType?.ToString() + "/" + thing.isSynced + "/" + RenderObject.syncList.Contains(thing.renderer));
Thing thing2 = hitPoint.detail.things[num4];
Debug.Log(thing2.id + "/" + thing2.Pref.height + "/" + thing2.trait?.ToString() + "/" + thing2.source.tileType.CanStack + "/" + thing2.source.tileType?.ToString() + "/" + thing2.isSynced + "/" + RenderObject.syncList.Contains(thing2.renderer));
}
}
if (!Application.isEditor)
@@ -1227,64 +1249,64 @@ public void UpdateInput()
case DebugHotkey.Item:
if (Input.GetKeyDown(KeyCode.Alpha1))
{
Thing thing2 = ThingGen.Create("stairsDown_cave");
EClass._zone.AddCard(thing2, EClass.pc.pos);
thing2.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha2))
{
Thing thing3 = ThingGen.Create("stairs");
Thing thing3 = ThingGen.Create("stairsDown_cave");
EClass._zone.AddCard(thing3, EClass.pc.pos);
thing3.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha3))
if (Input.GetKeyDown(KeyCode.Alpha2))
{
Thing thing4 = ThingGen.Create("sign");
EClass._zone.AddCard(thing4, hitPoint);
Thing thing4 = ThingGen.Create("stairs");
EClass._zone.AddCard(thing4, EClass.pc.pos);
thing4.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha4))
if (Input.GetKeyDown(KeyCode.Alpha3))
{
Thing thing5 = ThingGen.Create("sign2");
Thing thing5 = ThingGen.Create("sign");
EClass._zone.AddCard(thing5, hitPoint);
thing5.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha5))
if (Input.GetKeyDown(KeyCode.Alpha4))
{
Thing thing6 = ThingGen.Create("well");
Thing thing6 = ThingGen.Create("sign2");
EClass._zone.AddCard(thing6, hitPoint);
thing6.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha6))
if (Input.GetKeyDown(KeyCode.Alpha5))
{
Thing thing7 = ThingGen.Create("altar");
Thing thing7 = ThingGen.Create("well");
EClass._zone.AddCard(thing7, hitPoint);
thing7.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha6))
{
Thing thing8 = ThingGen.Create("altar");
EClass._zone.AddCard(thing8, hitPoint);
thing8.SetPlaceState(PlaceState.installed);
}
if (Input.GetKeyDown(KeyCode.Alpha7))
{
Thing t2 = ThingGen.Create("torch");
EClass._zone.AddCard(t2, hitPoint);
Thing t = ThingGen.Create("torch");
EClass._zone.AddCard(t, hitPoint);
}
if (Input.GetKeyDown(KeyCode.Alpha8))
{
Thing t3 = ThingGen.Create("street_lamp");
EClass._zone.AddCard(t3, hitPoint);
Thing t2 = ThingGen.Create("street_lamp");
EClass._zone.AddCard(t2, hitPoint);
}
if (Input.GetKeyDown(KeyCode.Alpha9))
{
Thing t4 = ThingGen.Create("statue_elin");
EClass._zone.AddCard(t4, hitPoint);
Thing t3 = ThingGen.Create("statue_elin");
EClass._zone.AddCard(t3, hitPoint);
}
if (Input.GetKeyDown(KeyCode.Alpha0))
{
Thing t5 = ThingGen.TestCreate();
EClass._zone.AddCard(t5, hitPoint);
Thing t4 = ThingGen.TestCreate();
EClass._zone.AddCard(t4, hitPoint);
}
if (key && Input.GetKeyDown(KeyCode.Alpha1))
{
Chara t6 = CharaGen.Create("korgon");
EClass._zone.AddCard(t6, hitPoint);
Chara t5 = CharaGen.Create("korgon");
EClass._zone.AddCard(t5, hitPoint);
}
break;
case DebugHotkey.Decal:
DNA
@@ -201,7 +201,7 @@ public bool CanRemove()
for (int i = 0; i < vals.Count; i += 2)
{
int num = vals[i];
if (num == 1202 || num == 1237 || num == 1415)
if (num == 1237 || num == 1415)
{
return false;
}
FactionBranch
@@ -283,6 +283,13 @@ public void OnAfterSimulate()
{
GetDailyIncome();
}
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>())
{
chara.MoveImmediate(chara.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? chara.pos);
}
}
}
public void OnUnloadMap()
Game
@@ -295,6 +295,17 @@ public void OnUpdate()
updater.FixedUpdate();
}
public static bool TryLoad(string id, bool cloud, Action onLoad)
{
if (GameIO.CanLoad((cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id))
{
onLoad();
return true;
}
EClass.ui.Say("incompatible");
return false;
}
public static void Load(string id, bool cloud)
{
string text = (cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id;
@@ -426,6 +437,16 @@ public void OnLoad()
}
}
});
if (version.IsBelow(0, 23, 51))
{
foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
{
if (!(value2.id != "adv") && value2.IsPCFaction)
{
value2.idSkin = value2.uid % (value2.source._tiles.Length - 4) / 2 * 2 + ((!value2.IsMale) ? 1 : 0);
}
}
}
if (version.IsBelow(0, 22, 91))
{
TryAddQuestIfActive("demitas_spellwriter", "into_darkness");
@@ -488,9 +509,9 @@ public void OnLoad()
});
if (version.IsBelow(0, 22, 20))
{
foreach (Chara value2 in cards.globalCharas.Values)
foreach (Chara value3 in cards.globalCharas.Values)
{
value2.SetBool(18, enable: false);
value3.SetBool(18, enable: false);
}
}
if (version.IsBelow(0, 22, 22))
GameIO
@@ -140,6 +140,12 @@ public static void MakeBackup(GameIndex index, string suffix = "")
IO.CopyDir((cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id + "/", text + "/" + newId, (string s) => s == "Temp");
}
public static bool CanLoad(string root)
{
GameIndex gameIndex = IO.LoadFile<GameIndex>(root + "/index.txt");
return EClass.core.version.IsSaveCompatible(gameIndex.version);
}
public static Game LoadGame(string id, string root, bool cloud)
{
Game.id = id;
LayerLoadGame
@@ -249,11 +249,14 @@ public void RefreshInfo(GameIndex i)
{
Dialog.YesNo("dialog_restoreWarning", delegate
{
GameIO.DeleteGame(idDest, cloud, deleteBackup: false);
IO.CopyDir(pathRoot + "/" + i.id, (cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + "/" + idDest);
SE.WriteJournal();
Close();
Game.Load(idDest, cloud);
Game.TryLoad(idDest, cloud, delegate
{
GameIO.DeleteGame(idDest, cloud, deleteBackup: false);
IO.CopyDir(pathRoot + "/" + i.id, (cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + "/" + idDest);
SE.WriteJournal();
Close();
Game.Load(idDest, cloud);
});
});
}
else
@@ -265,7 +268,10 @@ public void RefreshInfo(GameIndex i)
i.madeBackup = true;
GameIO.UpdateGameIndex(i);
}
Game.Load(i.id, cloud);
Game.TryLoad(i.id, cloud, delegate
{
Game.Load(i.id, cloud);
});
}
});
buttonDelete.SetOnClick(delegate
LayerMod
@@ -35,7 +35,7 @@ public override void OnInit()
{
a.UpdateMeta(updateOnly: true);
b.package = a;
string s = ELayer.core.mods.packages.IndexOf(a) + 1 + ". " + (a.isInPackages ? "[Private] " : "") + a.title;
string s = ELayer.core.mods.packages.IndexOf(a) + 1 + ". " + (a.isInPackages ? "[Local] " : "") + a.title;
b.buttonActivate.mainText.SetText(s, (!a.IsValidVersion()) ? FontColor.Bad : (a.activated ? FontColor.ButtonGeneral : FontColor.Passive));
b.buttonActivate.subText.text = a.version;
b.buttonLock.mainText.text = a.author;
LayerSkinDeco
@@ -142,6 +142,7 @@ public void Activate(SkinDecoActor actor)
public override void OnKill()
{
widget.transform.SetParent(ELayer.ui.widgets.transform, worldPositionStays: false);
widget.RefreshOrder();
foreach (SkinDeco deco in decos)
{
SkinDecoActor actor = deco.actor;
Point
@@ -407,7 +407,7 @@ public bool IsInSpot<T>() where T : Trait
{
foreach (Thing thing in EClass._map.things)
{
if (!(thing.trait is T))
if (!(thing.trait is T) || thing.trait.radius == 0)
{
continue;
}
Scene
@@ -284,6 +284,7 @@ public void Init(Mode newMode)
EMono.player.onStartZone();
EMono.player.onStartZone = null;
}
ActionMode.LastBuildMode = null;
if (ActionMode.Adv.IsActive && (EInput.leftMouse.pressing || EInput.axis != Vector2.zero))
{
ActionMode.Adv.SetPressedAction(EInput.leftMouse);
+TraitGriffin
File Created
public class TraitGriffin : TraitUniqueChara
{
public override bool CanInvite => false;
}
TraitPillowStrange
@@ -33,7 +33,7 @@ public override void TrySetAct(ActPlan p)
owner.SetDir((owner.dir == 0) ? 1 : ((owner.dir != 1) ? ((owner.dir == 2) ? 3 : 2) : 0));
SE.Rotate();
return false;
});
}, owner);
}
}
}
Widget
@@ -266,6 +266,33 @@ public void Activate()
{
InstantiateDeco(deco);
}
RefreshOrder();
}
public void RefreshOrder()
{
if (!AlwaysBottom)
{
return;
}
Type setSiblingAfter = SetSiblingAfter;
bool flag = false;
if (setSiblingAfter != null)
{
foreach (Widget item in EMono.ui.widgets.list)
{
if (item.GetType() == setSiblingAfter)
{
base.transform.SetSiblingIndex(item.transform.GetSiblingIndex() + 1);
flag = true;
break;
}
}
}
if (!flag)
{
base.transform.SetAsFirstSibling();
}
}
public virtual void OnActivate()
WidgetManager
@@ -199,27 +199,6 @@ public Widget ActivateWidget(string id)
{
widget.OnManagerActivate();
}
if (widget.AlwaysBottom)
{
Type setSiblingAfter = widget.SetSiblingAfter;
bool flag = false;
if (setSiblingAfter != null)
{
foreach (Widget item in list)
{
if (item.GetType() == setSiblingAfter)
{
widget.transform.SetSiblingIndex(item.transform.GetSiblingIndex() + 1);
flag = true;
break;
}
}
}
if (!flag)
{
widget.transform.SetAsFirstSibling();
}
}
return widget;
}
Zone
@@ -890,10 +890,6 @@ public void Activate()
}
card.SetInt(55);
}
if (card.pos.cell.IsBlocked && !card.isRestrained && !card.HasCondition<ConSuspend>())
{
card.MoveImmediate(card.pos.GetNearestPoint(allowBlock: false, allowChara: false) ?? card.pos);
}
chara.SyncRide();
if (card.c_uidMaster != 0 && chara.master == null)
{
Zone_Field
@@ -28,7 +28,17 @@ public override float ChanceSpawnNeutral
}
}
public override bool UseFog => base.lv <= 0;
public override bool UseFog
{
get
{
if (!base.IsPCFaction || base.lv != 0)
{
return base.lv <= 0;
}
return false;
}
}
public override ZoneFeatureType FeatureType => ZoneFeatureType.RandomField;