安装 Steam
登录
|
语言
繁體中文(繁体中文)
日本語(日语)
한국어(韩语)
ไทย(泰语)
български(保加利亚语)
Čeština(捷克语)
Dansk(丹麦语)
Deutsch(德语)
English(英语)
Español-España(西班牙语 - 西班牙)
Español - Latinoamérica(西班牙语 - 拉丁美洲)
Ελληνικά(希腊语)
Français(法语)
Italiano(意大利语)
Bahasa Indonesia(印度尼西亚语)
Magyar(匈牙利语)
Nederlands(荷兰语)
Norsk(挪威语)
Polski(波兰语)
Português(葡萄牙语 - 葡萄牙)
Português-Brasil(葡萄牙语 - 巴西)
Română(罗马尼亚语)
Русский(俄语)
Suomi(芬兰语)
Svenska(瑞典语)
Türkçe(土耳其语)
Tiếng Việt(越南语)
Українська(乌克兰语)
报告翻译问题
between the curly brackets of the OnEnable() method of the
private AbstractPhysicalObject.AbstractObjectType CustomCraftingResults(On.Player.orig_CraftingResults orig, Player self)
{
if (self.SlugCatClass.value == "YOUR SLUGCAT'S ID" && self.FoodInStomach > 0)
{
Creature.Grasp[] grasps = self.grasps;
for (int i = 0; i < self.grasps.Length; i++)
{
if (grasps != null && grasps is IPlayerEdible && (grasps as IPlayerEdible).Edible)
{
return null;
}
}
if (grasps[0] != null && grasps[0].grabbed is Spear && !(grasps[0].grabbed as Spear).abstractSpear.explosive && !(grasps[0].grabbed as Spear).abstractSpear.electric)
{
return AbstractPhysicalObject.AbstractObjectType.Spear;
}
if (grasps[0] == null && grasps[1] != null && grasps[1].grabbed is Spear && !(grasps[1].grabbed as Spear).abstractSpear.explosive && !(grasps[1].grabbed as Spear).abstractSpear.electric)
{
return AbstractPhysicalObject.AbstractObjectType.Spear;
}
}
return orig(self);
}
private bool CraftCheck(On.Player.orig_GraspsCanBeCrafted orig, Player self)
{
if (self.SlugCatClass.value == "YOUR SLUGCAT'S ID")
{
return self.CraftingResults() != null;
}
return orig(self);
}
private void MakeElectricSpear(On.Player.orig_SpitUpCraftedObject orig, Player self)
{
orig(self);
if (self.SlugCatClass.value == "YOUR SLUGCAT'S ID")
{
for (int j = 0; j < self.grasps.Length; j++)
{
AbstractPhysicalObject obj = self.grasps[j].grabbed.abstractPhysicalObject;
if (self.grasps[j] != null && obj.type == AbstractPhysicalObject.AbstractObjectType.Spear && !(obj as AbstractSpear).electric && !(obj as AbstractSpear).explosive)
{
self.room.PlaySound(SoundID.Zapper_Zap, self.firstChunk.pos, 0.8f, 1.5f + UnityEngine.Random.value * 1.5f);
self.ReleaseGrasp(j);
self.SubtractFood(1);
obj.realizedObject.RemoveFromRoom();
self.room.abstractRoom.RemoveEntity(obj);
AbstractSpear eSpear = new AbstractSpear(self.room.world, null, self.abstractCreature.pos, self.room.game.GetNewID(), false, true);
self.room.abstractRoom.AddEntity(eSpear);
eSpear.RealizeInRoom();
if (self.FreeHand() != -1)
{
self.SlugcatGrab(eSpear.realizedObject, self.FreeHand());
}
return;
}
}
}
}
Then, you can replace "YOUR SLUGCAT'S ID" with whatever your slugcat's ID is. I probably didn't need to hook into all three methods, to be honest, but this is how the game does it, and it keeps it from getting too clunky with long if() statements. This is almost exactly copying Artificer's ability code to make sure that it functions the way you want it to.