Jump to content

Elin:解析/食事効果: Difference between revisions

(Elin:Code Analysis/Food Effectを翻訳)
 
Line 8: Line 8:


===人肉か否か===
===人肉か否か===
<syntaxhighlight lang="c#" line="1">
 
    public static bool IsHumanFlesh(Thing food)
public static bool IsHumanFlesh(CardRow r)
{
{
if (food.HasTag(CTAG.notHumanMeat))
if (r == null)
{
{
return false;
return false;
}
}
if (food.id == "deadbody")
if (r.id == "chara")
{
{
return true;
return EClass.pc.race.tag.Contains("human");
}
}
if (food.source._origin != "meat" && food.source._origin != "dish")
if (r.isChara)
{
{
return false;
return EClass.sources.races.map[EClass.sources.charas.map[r.id].race].tag.Contains("human");
}
}
string[] components = food.source.components;
return false;
for (int i = 0; i < components.Length; i++)
{
if (components[i].Contains("egg"))
{
return false;
}
}
if (!IsHumanFlesh(food.refCard))
{
return IsHumanFlesh(food.refCard2);
}
return true;
}
}
</syntaxhighlight>この部分のコードは、死体が人間の肉とみなされるかどうかを制御します。


* 食べ物に「Humanflesh」というidがある場合、自動的に「true」(=人肉)とみなされます。
 
* 食べ物が肉または料理でない場合、自動的に「false」(=人肉ではない)となります。
この部分のコードは、死体が人間の肉とみなされるかどうかを制御します。
** おそらく、牛乳や卵などを除外したいのでしょう。
 
* 食べ物の成分に卵が含まれている場合、人肉とはみなされません。
人間種族であればその死体は肉になります。
** '''このため、人肉と卵を一緒に使用して、人肉でない肉料理を作成することが可能になります。'''
 
** ただ、肉と卵を一緒に使用するレシピは多くありません。
以前は人肉の判定は複雑で、条件を満たさないと料理に引き継がれなかったりしました。
* refCardの影響は'''要確認'''。


===不浄な食べ物か否か===
===不浄な食べ物か否か===