NHSE/NHSE.Core/Structures/Records/EventFlagVillagerMemoryPlayer.cs
Kurt a8f111a8f1 Add villager memory (per player) editor
Change friendship here.

Can also cheat all friendships (of all villagers, for all saved players) to 255 by shift clicking the drop-down button instead.
2020-05-14 16:10:33 -07:00

170 lines
21 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
namespace NHSE.Core
{
public class EventFlagVillagerMemoryPlayer : INamedValue
{
public readonly byte Initial;
public readonly byte Maximum;
public ushort Index { get; }
public string Name { get; }
public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string name)
{
Name = name;
Index = index;
Initial = init;
Maximum = max;
}
public static readonly IReadOnlyDictionary<ushort, EventFlagVillagerMemoryPlayer> List = new Dictionary<ushort, EventFlagVillagerMemoryPlayer>
{
{0x00, new EventFlagVillagerMemoryPlayer(0 , 1 , 000, "TalkFreeMultiDayEventNow" )}, // ボツ今、期間型イベント用のFreeFを聞いたか
{0x01, new EventFlagVillagerMemoryPlayer(0 , 7 , 001, "ContinuousTalkDays" )}, // 何日連続で話しかけられたか
{0x02, new EventFlagVillagerMemoryPlayer(0 , 1 , 002, "SameLand" )}, // 同じ村に住んでいたことがあるか
{0x03, new EventFlagVillagerMemoryPlayer(0 , 1 , 003, "SetGreeting" )}, // 挨拶を設定したことがある
{0x04, new EventFlagVillagerMemoryPlayer(0 , 1 , 004, "EasterGetRecipeFlag" )}, // イースター|このNPCからリアクション会話でレシピを受け取った
{0x05, new EventFlagVillagerMemoryPlayer(0 , 1 , 005, "TalkProgressMuseumBuilt2" )}, // 博物館2への拡張に関するFreeH_Progressを聞いたか
{0x06, new EventFlagVillagerMemoryPlayer(0 , 1 , 006, "NextMoveOutTalk" )}, // 引越ししたい会話したか
{0x07, new EventFlagVillagerMemoryPlayer(0 , 1 , 007, "TalkMoveOut" )}, // 引越していく状態で会話したか
{0x08, new EventFlagVillagerMemoryPlayer(0 , 7 , 008, "VisitCount" )}, // そのプレイヤーの家に行った回数
{0x09, new EventFlagVillagerMemoryPlayer(0 , 7 , 009, "VisitedCount" )}, // そのプレイヤーが家に来た回数
{0x0A, new EventFlagVillagerMemoryPlayer(25, 255, 010, "Friendship" )}, // 親密度
{0x0B, new EventFlagVillagerMemoryPlayer(0 , 7 , 011, "TalkCountToday" )}, // 今日の会話回数(通算)
{0x0C, new EventFlagVillagerMemoryPlayer(0 , 7 , 012, "TalkCountInNpcHouseToday" )}, // 今日NPCの家での会話回数
{0x0D, new EventFlagVillagerMemoryPlayer(0 , 1 , 013, "HasAcquaintanceship" )}, // 面識ありか
{0x0E, new EventFlagVillagerMemoryPlayer(0 , 1 , 014, "SitBenchFlag" )}, // NPCをベンチに座らせる
{0x12, new EventFlagVillagerMemoryPlayer(0 , 1 , 018, "TalkedAsSameVillageResident" )}, // 同じ村の住人として会話した
{0x13, new EventFlagVillagerMemoryPlayer(0 , 1 , 019, "InputGreeting" )}, // 挨拶を設定した
{0x14, new EventFlagVillagerMemoryPlayer(0 , 1 , 020, "InputPhraseMemory" )}, // 口癖を設定した
{0x15, new EventFlagVillagerMemoryPlayer(0 , 1 , 021, "InputNickname" )}, // ニックネームを設定した
{0x16, new EventFlagVillagerMemoryPlayer(0 , 1 , 022, "GEventTalkBeforeFlag" )}, // イベント共通|イベント前に会話した?
{0x17, new EventFlagVillagerMemoryPlayer(0 , 1 , 023, "GEventTalkProgressFlag" )}, // イベント共通|イベント中に会話した?
{0x18, new EventFlagVillagerMemoryPlayer(0 , 1 , 024, "GEventTalkAfterFlag" )}, // イベント共通|イベント後に会話した?
{0x19, new EventFlagVillagerMemoryPlayer(0 , 1 , 025, "InduceFailFlag" )}, // 勧誘失敗フラグ
{0x1A, new EventFlagVillagerMemoryPlayer(0 , 1 , 026, "InduceFailAlreadyInduced" )}, // 勧誘失敗理由|既に転入枠に勧誘されたNPCがいる
{0x1B, new EventFlagVillagerMemoryPlayer(0 , 1 , 027, "InduceFailSameNpcLiving" )}, // 勧誘失敗理由|同名NPCが村に住んでいる
{0x1C, new EventFlagVillagerMemoryPlayer(0 , 1 , 028, "InduceFailSameNpcMoveIn" )}, // 勧誘失敗理由|同名NPCが転入確定状態
{0x1D, new EventFlagVillagerMemoryPlayer(0 , 1 , 029, "IsReceiptWrappingItem" )}, // プレゼントできるアイテムを受け取った
{0x1E, new EventFlagVillagerMemoryPlayer(0 , 1 , 030, "BirhdayNPresentFlag" )}, // NPC誕生日|プレゼント渡した?
{0x1F, new EventFlagVillagerMemoryPlayer(0 , 1 , 031, "NicknameOriginal" )}, // ニックネーム設定本人
{0x20, new EventFlagVillagerMemoryPlayer(0 , 1 , 032, "BirhdayNTalkInFlag" )}, // NPC誕生日|家に入ったときの会話した?
{0x21, new EventFlagVillagerMemoryPlayer(0 , 1 , 033, "BirhdayNTalkFlag" )}, // NPC誕生日|誕生会で会話した?
{0x22, new EventFlagVillagerMemoryPlayer(0 , 1 , 034, "BirhdayNTalkOutFlag" )}, // NPC誕生日|家から出たときの会話した?
{0x23, new EventFlagVillagerMemoryPlayer(0 , 1 , 035, "BirhdayPTalkFlag" )}, // プレイヤ誕生日|おめでとう会話した?
{0x24, new EventFlagVillagerMemoryPlayer(0 , 1 , 036, "BirhdayPCupcakeFlag" )}, // プレイヤ誕生日|カップケーキ渡した?
{0x25, new EventFlagVillagerMemoryPlayer(0 , 1 , 037, "FriendOfHostPC" )}, // ホストPCのフレンドとして訪問した
{0x26, new EventFlagVillagerMemoryPlayer(0 , 1 , 038, "TalkClothesPToday" )}, // 今日ClothesPを見たか
{0x27, new EventFlagVillagerMemoryPlayer(0 , 1 , 039, "TalkedDuringSick" )}, // 病気中に会話した
{0x28, new EventFlagVillagerMemoryPlayer(0 , 1 , 040, "InduceFailVillagerMax" )}, // 勧誘失敗理由|住人数が既に上限
{0x29, new EventFlagVillagerMemoryPlayer(0 , 1 , 041, "FirstMeetGreetAtThisVillage" )}, // この村で初対面の挨拶をした
{0x2A, new EventFlagVillagerMemoryPlayer(0 , 1 , 042, "MoveCancelTalk" )}, // 引越し中止の報告したか
{0x2B, new EventFlagVillagerMemoryPlayer(0 , 1 , 043, "BirthdayPAttendance" )}, // プレイヤ誕生日|出席していた
{0x2C, new EventFlagVillagerMemoryPlayer(0 , 255, 044, "TalkCountInHouseToday" )}, // 室内で会話した回数 (訪問クエスト中)
{0x2D, new EventFlagVillagerMemoryPlayer(0 , 1 , 045, "TalkClothesNToday" )}, // 今日ClothesNを見たか
{0x2E, new EventFlagVillagerMemoryPlayer(0 , 1 , 046, "TalkWantToday" )}, // 今日Wantを聞いたか
{0x2F, new EventFlagVillagerMemoryPlayer(0 , 1 , 047, "InduceFailSellPlaceNothing" )}, // 勧誘失敗理由|売り土地が無い
{0x30, new EventFlagVillagerMemoryPlayer(0 , 1 , 048, "IsPlayedQuestVisitN" )}, // 訪問Nをクリアした事ある
{0x31, new EventFlagVillagerMemoryPlayer(0 , 1 , 049, "AcquaintanceshipFlagOff" )}, // 面識フラグを立てない
{0x32, new EventFlagVillagerMemoryPlayer(0 , 1 , 050, "InducementAtMovingDay" )}, // 転出当日に勧誘された
{0x33, new EventFlagVillagerMemoryPlayer(0 , 1 , 051, "ChokeOffMoveOut" )}, // 引越を引き止められた
{0x34, new EventFlagVillagerMemoryPlayer(0 , 1 , 052, "InducementFlag" )}, // 勧誘されて来たか
{0x35, new EventFlagVillagerMemoryPlayer(0 , 1 , 053, "ApproachQuestOrdered" )}, // アプローチ経由でのクエスト発注か?
{0x37, new EventFlagVillagerMemoryPlayer(0 , 255, 055, "ContinuousTalkCount" )}, // 連続会話回数
{0x38, new EventFlagVillagerMemoryPlayer(0 , 255, 056, "Again2Count" )}, // XX_Again2を聞いた回数
{0x39, new EventFlagVillagerMemoryPlayer(0 , 1 , 057, "TalkDIY" )}, // DIY会話をした
{0x3B, new EventFlagVillagerMemoryPlayer(0 , 1 , 059, "NewYearGreetingFlag" )}, // 新年1月1日のあいさつをした
{0x3C, new EventFlagVillagerMemoryPlayer(0 , 1 , 060, "GotRecipeorMaterial" )}, // DIYレシピか素材をもらった
{0x3D, new EventFlagVillagerMemoryPlayer(0 , 1 , 061, "GotMaterialItemFull" )}, // 素材をもらうときもちものがいっぱいだった
{0x3E, new EventFlagVillagerMemoryPlayer(0 , 1 , 062, "MailedVisitPLayout" )}, // 訪問Pで手紙を投函した
{0x3F, new EventFlagVillagerMemoryPlayer(0 , 1 , 063, "FirstMeetGreetAtThisVillageToday" )}, // この村で初対面の挨拶をした当日
{0x40, new EventFlagVillagerMemoryPlayer(0 , 1 , 064, "ReceivedFirstPresent" )}, // NPCから初めてPresentを貰った
{0x41, new EventFlagVillagerMemoryPlayer(0 , 1 , 065, "BanClothesN1Today" )}, // ClothesN1:今日は禁止
{0x42, new EventFlagVillagerMemoryPlayer(0 , 1 , 066, "BanClothesN2Now" )}, // ClothesN2:今は禁止
{0x43, new EventFlagVillagerMemoryPlayer(0 , 1 , 067, "BanClothesN1Now" )}, // ClothesN1:今は禁止
{0x44, new EventFlagVillagerMemoryPlayer(0 , 1 , 068, "TalkWeekNow" )}, // 今、Weekを聞いたか
{0x45, new EventFlagVillagerMemoryPlayer(0 , 1 , 069, "TalkQuestionsNow" )}, // 今、Questionsを聞いたか
{0x46, new EventFlagVillagerMemoryPlayer(0 , 1 , 070, "TalkAlwaysNow" )}, // 今、Alwaysを聞いたか
{0x47, new EventFlagVillagerMemoryPlayer(0 , 1 , 071, "TalkAlwaysABNow" )}, // 今、AlwaysABを聞いたか
{0x48, new EventFlagVillagerMemoryPlayer(0 , 1 , 072, "TalkWeatherSPNow" )}, // 今、WeatherSPを聞いたか
{0x49, new EventFlagVillagerMemoryPlayer(0 , 1 , 073, "TalkWeatherNow" )}, // 今、Weatherを聞いたか
{0x4A, new EventFlagVillagerMemoryPlayer(0 , 1 , 074, "TalkSeasonsNow" )}, // 今、Seasonsを聞いたか
{0x4B, new EventFlagVillagerMemoryPlayer(0 , 1 , 075, "TalkSpotSPNow" )}, // 今、SpotSPを聞いたか
{0x4C, new EventFlagVillagerMemoryPlayer(0 , 1 , 076, "TalkSpotNow" )}, // 今、Spotを聞いたか
{0x4E, new EventFlagVillagerMemoryPlayer(0 , 1 , 078, "TalkItemNNow" )}, // 今、ItemNを聞いたか
{0x4F, new EventFlagVillagerMemoryPlayer(0 , 1 , 079, "TalkItemPNow" )}, // 今、ItemPを聞いたか
{0x50, new EventFlagVillagerMemoryPlayer(0 , 1 , 080, "TalkRumorOActionToday" )}, // 今日RumorOP_Action同じ島の住人Pを聞いたか
{0x51, new EventFlagVillagerMemoryPlayer(0 , 1 , 081, "TalkRumorVActionToday" )}, // 今日RumorOP_Actionビジターを聞いたか
{0x52, new EventFlagVillagerMemoryPlayer(0 , 1 , 082, "TalkRumorOFavoriteToday" )}, // 今日RumorO_Favoriteを聞いたか
{0x53, new EventFlagVillagerMemoryPlayer(0 , 1 , 083, "TalkRumorNToday" )}, // 今日このNPCからRumorN1を聞いたか
{0x54, new EventFlagVillagerMemoryPlayer(0 , 1 , 084, "TalkFreeMovingNow" )}, // 今、FreeD_Movingを聞いたか
{0x55, new EventFlagVillagerMemoryPlayer(0 , 1 , 085, "TalkFreeEventNow" )}, // 今日FreeE_Eventを聞いたか
{0x56, new EventFlagVillagerMemoryPlayer(0 , 1 , 086, "TalkSnpcNow" )}, // 今日Snpcを聞いたか
{0x57, new EventFlagVillagerMemoryPlayer(0 , 1 , 087, "TalkFreeFNow" )}, // 今、FreeFを聞いたか
{0x58, new EventFlagVillagerMemoryPlayer(0 , 1 , 088, "TalkFreeGNow" )}, // 今、FreeGを聞いたか
{0x5A, new EventFlagVillagerMemoryPlayer(0 , 1 , 090, "TalkHHAToday" )}, // 今日FreeE_HHAを聞いたか
{0x5B, new EventFlagVillagerMemoryPlayer(0 , 5 , 091, "TalkReSelectLast" )}, // 再抽選前に聞いたファイル識別番号
{0x5C, new EventFlagVillagerMemoryPlayer(0 , 1 , 092, "HHABuildCelebraition" )}, // 増築祝いの手紙を出した
{0x5D, new EventFlagVillagerMemoryPlayer(0 , 1 , 093, "ChineseNewYearGreetingFlag" )}, // 旧正月のあいさつをした
{0x5E, new EventFlagVillagerMemoryPlayer(0 , 1 , 094, "TalkFreeZodiacNow" )}, // 今、FreeF_NewYear_Zodiacを聞いたか
{0x5F, new EventFlagVillagerMemoryPlayer(0 , 1 , 095, "TalkProgressNpcHouseBuilt" )}, // 初期NPCの家に関するFreeH_Progressを聞いたか
{0x60, new EventFlagVillagerMemoryPlayer(0 , 1 , 096, "TalkProgressMyHouseBuilt" )}, // 現在プレイヤーの家に関するFreeH_Progressを聞いたか
{0x61, new EventFlagVillagerMemoryPlayer(0 , 1 , 097, "TalkProgressMyHouseBuilt2" )}, // 現在プレイヤーの家地下室完成に関するFreeH_Progressを聞いたか
{0x62, new EventFlagVillagerMemoryPlayer(0 , 1 , 098, "TalkProgressMigrantsQuest" )}, // 移住クエストに関するFreeH_Progressを聞いたか
{0x63, new EventFlagVillagerMemoryPlayer(0 , 1 , 099, "TalkProgressHelpBuildShop" )}, // 商店の木材集めに関するFreeH_Progressを聞いたか
{0x64, new EventFlagVillagerMemoryPlayer(0 , 1 , 100, "TalkProgressOfficeBuilt" )}, // 案内所の完成に関するFreeH_Progressを聞いたか
{0x65, new EventFlagVillagerMemoryPlayer(0 , 1 , 101, "TalkProgressShopBuilt" )}, // 商店の完成に関するFreeH_Progressを聞いたか
{0x66, new EventFlagVillagerMemoryPlayer(0 , 1 , 102, "TalkProgressShopBuilt2" )}, // 商店の拡張に関するFreeH_Progressを聞いたか
{0x67, new EventFlagVillagerMemoryPlayer(0 , 1 , 103, "TalkProgressMuseumTent" )}, // フータのテントに関するFreeH_Progressを聞いたか
{0x68, new EventFlagVillagerMemoryPlayer(0 , 1 , 104, "TalkProgressMuseumBuilt" )}, // 博物館の完成に関するFreeH_Progressを聞いたか
{0x69, new EventFlagVillagerMemoryPlayer(0 , 1 , 105, "TalkProgressTailorBuilt" )}, // 仕立て屋の完成に関するFreeH_Progressを聞いたか
{0x6A, new EventFlagVillagerMemoryPlayer(0 , 1 , 106, "TalkProgressBridgeBuilt" )}, // 初めての橋の完成に関するFreeH_Progressを聞いたか
{0x6B, new EventFlagVillagerMemoryPlayer(0 , 1 , 107, "TalkProgressSlopeBuilt" )}, // 初めての坂の完成に関するFreeH_Progressを聞いたか
{0x6C, new EventFlagVillagerMemoryPlayer(0 , 1 , 108, "TalkProgressOtherPlayerMoveIn" )}, // 他プレイヤーの移住に関するFreeH_Progressを聞いたか
{0x6D, new EventFlagVillagerMemoryPlayer(0 , 1 , 109, "TalkRumorPActionToday" )}, // 今日RumorP_Action現在プレイヤーを聞いたか
{0x6E, new EventFlagVillagerMemoryPlayer(0 , 1 , 110, "FirstNpcEarlyAcquaintanceFlag" )}, // NPC宅がテントだった頃からの知り合い
{0x6F, new EventFlagVillagerMemoryPlayer(0 , 1 , 111, "TalkSickCured" )}, // Curedを聞いたか
{0x70, new EventFlagVillagerMemoryPlayer(0 , 1 , 112, "StandingUpFlag" )}, // NPCを立たせる
{0x71, new EventFlagVillagerMemoryPlayer(0 , 1 , 113, "StoodUpFlag" )}, // NPCが立った
{0x72, new EventFlagVillagerMemoryPlayer(0 , 1 , 114, "TalkBeefaceToday" )}, // 今日BeeFaceを聞いたか
{0x73, new EventFlagVillagerMemoryPlayer(0 , 1 , 115, "TalkItchingToday" )}, // 今日Itchingを聞いたか
{0x74, new EventFlagVillagerMemoryPlayer(0 , 1 , 116, "TalkEarlyLateToday" )}, // 今日EarlyLateを聞いたか
{0x75, new EventFlagVillagerMemoryPlayer(0 , 1 , 117, "FinishVisitPToday" )}, // 今日訪問Pクエストをしたか
{0x76, new EventFlagVillagerMemoryPlayer(0 , 1 , 118, "FinishVisitNToday" )}, // 今日訪問Nクエストをしたか
{0x77, new EventFlagVillagerMemoryPlayer(0 , 1 , 119, "OrderQuest" )}, // クエストを発注or達成した
{0x78, new EventFlagVillagerMemoryPlayer(0 , 1 , 120, "FirstGreetingAtNpcHome" )}, // 引越し当日のダンボール自宅でNPCと初対面会話をした(自分の村)
{0x79, new EventFlagVillagerMemoryPlayer(0 , 1 , 121, "AppF_MoveinGiftOccured" )}, // 引越し挨拶アプローチ会話発生済か?
{0x7A, new EventFlagVillagerMemoryPlayer(0 , 1 , 122, "UncollectedFishishTreasureHunt" )}, // 宝未回収でクエスト終了した
{0x7B, new EventFlagVillagerMemoryPlayer(0 , 7 , 123, "TalkCountInFacilityToday" )}, // 今日の会話回数(施設用)
{0x7C, new EventFlagVillagerMemoryPlayer(0 , 1 , 124, "FriendshipBecomeAcqHToday" )}, // 今日親密度が知人(高)に到達した
{0x7D, new EventFlagVillagerMemoryPlayer(0 , 1 , 125, "FriendshipBecomeAcqH" )}, // 親密度が知人(高)に到達済み
{0x7E, new EventFlagVillagerMemoryPlayer(0 , 3 , 126, "DC_NPCBirthdayFlag" )}, // NPC誕生日|おでかけ先の村でもらうお返しの種類
{0x7F, new EventFlagVillagerMemoryPlayer(0 , 1 , 127, "EasterCannotGetNnpcRecipeFlag" )}, // イースター|このNPCから受け取り損ねたレシピがある
};
private const string Unknown = "???";
public static string GetName(ushort index, uint count, IReadOnlyDictionary<string, string> str)
{
var dict = List;
if (dict.TryGetValue(index, out var val))
{
string name = val.Name;
if (str.TryGetValue(name, out var translated))
name = translated;
return $"{index:00} - {name} = {count}";
}
return $"{index:00} - {Unknown} = {count}";
}
public static string GetName(ushort index, uint count)
{
var dict = List;
if (dict.TryGetValue(index, out var val))
return $"{index:00} - {val.Name} = {count}";
return $"{index:00} - {Unknown} = {count}";
}
}
}