Terraria Mod開発の話

暇なときのメモ書き

1.4でのNPCの話

Mod開発の話ではない

1.4が来て、いろいろ変わったけどそのうちの目玉の一つが町とNPCの幸福度 幸福度によって売るものの値段が変わる、ワープ装置が利用可能になるなど幸福度が高ければ様々な恩恵を受けられる

ついでにコードベースにも大きく変更が加わっているがそれはまた別の機会に

NPCの種類

まずはNPCの種類だが、大きく分けて2種類に分けられる。居住可能NPC、居住不可能NPCの2種類。 居住可能NPCはガイド、商人などで、居住不可能NPCは旅商人、骨商人

また、取りうる値段の範囲は75%から150%となっている

居住可能NPCと判定

居住可能NPCNPC同士の距離と同じ町にいるのが好みのNPCかどうか、好きなバイオームかどうかが大きな要因になっている

まず"同じ部屋"であると判定される距離は他のNPCが住んでいる家から(家がない場合はそのNPCがいる位置から)25タイル以内、"同じ町"と判定される距離は120タイルとなっている。

"同じ部屋"に4人以上(本人を除いて3人)のNPCがいると販売価格があがる。(4人目から一人につき4%、積算)

また、値段を下げる条件として、"同じ部屋"には2人以下(本人以外に1人)のNPCであること、"同じ町"に4人以下(本人以外に3人)のNPCしかいなければ、90%の値段になる(他の条件と積算)

従って、家判定をコントロールして、NPCが実際にいる場所とNPCの家の場所を変えてしまえば安く買える、今までのような監獄ハウスが作れる。

好き/嫌いなNPCの判定は、"同じ町"に住んでいるかどうか そのため、配置次第では好きなNPCを共有可能になる。 また、好き/嫌いなバイオームの判定はプレイヤーに依存する。1.3.5.3の釣り掘のようなことをすれば一応バイオームの調整が可能になる。その場合Pylon側に制限が入る可能性がある 好き/嫌いには段階がある。上から順に 大好き/好き/嫌い/大嫌い 90%/95%/150%/110%

嫌い、のほうが金額の上昇幅が大きいことに留意したい

Pylonの販売条件は85%以下であること。好きなバイオームで2人だけの場合、90%x90%=81%で販売する。

これらを踏まえた上で、次が好きなバイオーム/NPCの表である 表を見ればわかるようにバイオームは好き/大嫌いが基本で、大好き/嫌いなのはサンタクロースだけ redditの表のほうがわかりやすいが、嫌いなバイオームの表記がないのと、テラリアのバグでテキストと実際の値に差があるため注意

https://i.redd.it/davabn4chpz41.png

NPC 好きなバイオーム 嫌いなバイオーム 大好きなNPC 好き 嫌い 大嫌い
Merchant 森林/好き 砂漠/大嫌い Golfer, Nurse Tax Collector Angler
Guide 森林/好き 海/大嫌い Clothier, Zoologist Steam Punker Painter
Golfer 森林/好き 地下/大嫌い Angler Painter, Zoologist Pirate Merchant
Zoologist 森林/好き 砂漠/大嫌い Witch Doctor Golfer Angler Arms Dealer
Mechanic 雪原/好き 地下/大嫌い Goblin Cyborg Arms Dealer Clothier
Cyborg 雪原/好き ジャングル/大嫌い Stylist, Pirate, Steam Punker Zoologist Wizard
Tax Collector 雪原/好き 聖域/嫌い Merchant Party Girl Demolitionist, Mechanic Santa Claus
Santa Claus 雪原/大好き 砂漠/嫌い Tax Collector
Arms Dealer 砂漠/好き 雪原/大嫌い Nurse Steam punker Golfer Demolitionist
Steam Punker 砂漠/好き ジャングル/大嫌い Cyborg Painter Party Girl, Wizard, Dryad
Dye Trader 砂漠/好き 森林/大嫌い Arms dealer, Painter Steam Punker Pirate
Dryad ジャングル/好き 砂漠/大嫌い Witch Doctor, Truffle Angler Golfer
Painter ジャングル/好き 森林/大嫌い Dryad Party Girl Cyborg, Truffle
Witch Doctor ジャングル/好き 聖域/嫌い Dryad, Guide Nurse Truffle
Pirate 海/好き 地下/大嫌い Angler Bartender Stylist Guide
Stylist 海/好き 雪原/大嫌い Dye Trader Pirate Bartender Goblin
Angler 海/好き 砂漠/大嫌い Party Girl, Demolitionist, Tax Collector Bartender
Demolitionist 地下/好き 海/大嫌い Bartender Mechanic Goblin, Arms dealer
Clothier 地下/好き 聖域/嫌い Truffle Tax Collector Nurse Mechanic
Goblin Tinker 地下/好き ジャングル/大嫌い Mechanic Dye Trader Clothier Stylist
Nurse 聖域/好き 雪原/大嫌い Arms Dealer Wizard Party Girl, Dryad Zoologist
Wizard 聖域/好き 海/大嫌い Golfer Merchant Witch Doctor Cyborg
Party Girl 聖域/好き 地下/大嫌い Wizard, Zoologist Stylist Merchant Tax Collector
Bartender 聖域/好き 雪原/大嫌い Demolitionist Goblin Guide Dye Trader
Truffle Guide Dryad Clothier Witch Doctor

家がない、家から遠いなら強制的に最大の値段(150%)になる また、プレイヤーが不浄、クリムゾン、ダンジョン環境にいる場合も最大になる

居住不可能NPC

旅商人はワールドのスポーン地点から遠ければ遠いほど値段が下がる。スポーン地点がワールド中心(マップの中心)から右寄りなら左の海、左寄りなら右の海に呼べれば安く買える。

骨商人は月齢によって変わり、新月が最も安く、満月が最も高い(1段階につき10%変化)。また日中はさらに10%値上がりし、満月の昼は新月の夜に比べて150%の値段になる。

情報は間違っている可能性があるので注意、自分で検証に勝る情報ソースはない