2using System.Collections.Generic;
5using System.Runtime.Serialization;
223 SetBonus(1000000000, 50000);
224 SetBonus(100000000, 20000);
225 SetBonus(10000000, 10000);
226 SetBonus(500000, 5000);
227 SetBonus(250000, 3000);
228 SetBonus(100000, 2000);
229 SetBonus(20000, 1000);
234 void SetBonus(
int threshold,
int div)
238 p += (_a - threshold) / div;
256 public int[]
ints =
new int[50];
272 public Dictionary<string, ExcelData>
storyExcel =
new Dictionary<string, ExcelData>();
715 bits.Bits = (uint)
ints[0];
728 if (
build == 0 && r.
id ==
"workbench")
743 if (
item[
"step"] == idStep)
745 return item[
"id"].ToInt();
751 public Dictionary<string, string>
GetStoryRow(
string idBook,
int id)
755 if (
item[
"id"].ToInt() ==
id)
766 if (excelData ==
null)
769 excelData.path = CorePath.DramaData + idBook +
".xlsx";
776 public bool PlayStory(
string idBook,
int id,
bool fromBook =
false)
782 Dictionary<string, string> storyRow =
GetStoryRow(idBook,
id);
783 SoundManager.ForceBGM();
784 LayerDrama.fromBook = fromBook;
1040 public Dictionary<string, int>
dialogFlags =
new Dictionary<string, int>();
1043 public Dictionary<string, string>
hangIcons =
new Dictionary<string, string>();
1046 public Dictionary<string, KnownSong>
knownSongs =
new Dictionary<string, KnownSong>();
1049 public Dictionary<string, string>
lastRecipes =
new Dictionary<string, string>();
1052 public Dictionary<string, List<string>>
priorityActions =
new Dictionary<string, List<string>>();
1118 public Dictionary<int, int>
keyItems =
new Dictionary<int, int>();
1127 public Dictionary<string, HashSet<string>>
noRestocks =
new Dictionary<string, HashSet<string>>();
1293 return quest.phase >= 10;
1306 return quest.phase >= 10;
1319 return quest.phase >= 10;
1332 return quest.phase >= 10;
1355 chara.c_idTone =
"default";
1361 Fav fav = IO.LoadFile<Fav>(CorePath.user +
"PCC/fav" +
EClass.
rnd(3));
1362 chara.pccData = IO.Duplicate(fav.data);
1366 _agent.c_altName =
"stash".lang();
1367 EClass.player.title =
"master".lang();
1373 pref.sort_ascending_shop =
true;
1374 EClass.game.config.preference.autoEat =
true;
1375 flags.toggleHotbarHighlightDisabled =
true;
1376 layerAbilityConfig.hideDepletedSpell =
true;
1377 layerAbilityConfig.bgAlpha = 70;
1387 EClass.player.questTracker =
true;
1399 List<Element> list =
new List<Element>();
1406 if (
item.Value == 0)
1410 else if (
item.HasTag(
"primary"))
1412 item.vTempPotential = Mathf.Max(30, (
item.ValueWithoutLink - 8) * 7);
1425 EClass.pc.hunger.value = 30;
1450 t.c_windowSaveData =
null;
1451 }, onlyAccessible:
false);
1460 foreach (
Window componentsInDirectChild
in layer.GetComponentsInDirectChildren<
Window>())
1478 p.ForeachReverse(delegate(
string i)
1500 if (!
id.IsEmpty() && t !=
null)
1503 if (list !=
null && list.Contains(t.
id))
1515 string text =
"time_warn_" +
realHour;
1525 for (
int i = 0; i <
EClass.
pc.
job.domain.Length; i += 2)
1534 foreach (
int domain
in domains)
1536 elementContainer.GetOrCreateElement(domain).vSource = 1;
1538 return elementContainer;
1546 if (row2.categorySub ==
"eleAttack" && !row2.tag.Contains(
"hidden") && ((
EClass.
pc.
HasElement(1402) && Guild.Mage.relation.rank >= 6 && row2.id != 925 && row2.id != 926) || !row2.tag.Contains(
"high") ||
EClass.
pc.
job.domain.Contains(row2.id)))
1569 }, delegate(List<UIList.ButtonPair> list)
1580 if (row.id == domain2)
1585 button.SetCheck(flag3);
1586 for (
int i = 0; i < ((EClass.pc.job.id ==
"swordsage") ? 5 : 3); i++)
1593 button.interactable = !flag2 && (!flag || flag3);
1594 button.GetComponent<CanvasGroup>().enabled = !button.interactable;
1596 }).SetOnKill(delegate
1604 int num =
MaxAlly - EClass.pc.party.members.Count + 1;
1624 StringBuilder stringBuilder =
new StringBuilder(IO.LoadText(
GameIO.
pathCurrentSave +
"background.txt"));
1631 stringBuilder.Replace(
"#job",
EClass.
pc.
job.GetName().AddArticle());
1635 stringBuilder.Replace(
"#he", (
EClass.
pc.
IsMale ?
"he" :
"she").lang());
1636 stringBuilder.Replace(
"#his", (
EClass.
pc.
IsMale ?
"his" :
"her").lang());
1637 stringBuilder.Replace(
"#him", (
EClass.
pc.
IsMale ?
"him" :
"her").lang());
1638 string separator =
"_period".lang();
1639 stringBuilder.ToString().Split(separator);
1640 return stringBuilder.ToString().TrimEnd(Environment.NewLine.ToCharArray());
1664 bool firstSpellbook =
true;
1695 string[] tag = element.
source.tag;
1696 foreach (
string text2
in tag)
1735 if (c.
race.id ==
"vampire")
1744 thing.
SetStr(53,
"letter_vampire");
1753 firstSpellbook =
false;
1756 t.c_charges = charge;
1774 string[] tag = element.
source.tag;
1775 foreach (
string text2
in tag)
1809 if (list.Count != 0)
1813 int mtp = ((num == 0) ? 100 : (75 + num * 25));
1814 if (num > 0 || element2 ==
null || element2.
vPotential == 0)
1829 if (child.
owner != currentZone)
1850 string textDialog = (flag ?
"ExitZoneEscort" :
"ExitZone").lang(
EClass.
_zone.
Name);
1851 bool flag2 = EClass.pc.pos.x == EClass._map.bounds.x || EClass.pc.pos.x == EClass._map.bounds.x + EClass._map.bounds.Width - 1 || EClass.pc.pos.z == EClass._map.bounds.z || EClass.pc.pos.z == EClass._map.bounds.z + EClass._map.bounds.Height - 1;
1865 p.TrySetAct(
"actNewZone", delegate
1881 p.TrySetAct(
"actNewZone", delegate
1917 else if (p.
x <= bounds.
maxX)
1919 num2 = ((p.z >= bounds.
z) ? 1 : (-1));
1931 float ratePos = ((num == 1 || num == -1) ? ((
float)(p.z - bounds.
z) / (
float)bounds.
Height) : ((
float)(p.x - bounds.
x) / (
float)bounds.
Width));
1968 int num2 = Mathf.Clamp(roadDist - 4, 0, 200) + Mathf.Clamp(num / 4, 0, 10);
1971 num2 += roadDist - 20;
1977 Debug.Log(
"encounter roadiDist:" + roadDist +
" homeDist:" + num +
" lv:" + num2);
1979 zone._dangerLv = num2;
1980 enemies = 2 + Mathf.Min(num2 / 10, 4) +
EClass.
rnd(3 + Mathf.Min(num2 / 10, 4));
2005 Msg.
Say(
"zoneNoEntrance");
2023 roadDist = roadDist,
2031 CursorSystem.ignoreCount = 15;
2032 EClass.
ui.hud.transRight.SetActive(enable:
false);
2056 int num = elapsedHour / 24;
2106 Msg.
Say(
"gainFameLimit");
2110 if (
fame > 0 && a > 0 &&
fame + a < 0)
2112 fame =
int.MaxValue;
2124 Msg.
Say(
"gainFame", a.ToString() ??
"");
2128 Msg.
Say(
"looseFame", (-a).ToString() ??
"");
2136 public void ModKeyItem(
string alias,
int num = 1,
bool msg =
true)
2157 SE.Play(
"keyitem_lose");
2246 WidgetHotbar.dirtyCurrentItem =
false;
2254 item.invs[0].RefreshHighlight();
2306 int num = 999999999;
2309 List<Chara> list =
new List<Chara>();
2356 Msg.
Say(
"noTargetFound");
2428 lastMarkedHighlight.highlight = 0;
2464 bool canSee =
false;
2495 Msg.
Say(
"DingKnowledge");
2512 Msg.
Say(
"DingInfluence");
2524 bool flag =
karma < 0;
2526 Msg.
Say((a > 0) ?
"karmaUp" :
"karmaDown", a.ToString() ??
"");
2527 if (
karma < 0 && !flag)
2529 Msg.
Say(
"becomeCriminal");
2534 if (
karma >= 0 && flag)
2536 Msg.
Say(
"becomeNonCriminal");
2562 Msg.
Say(
"tooHeavyToMove");
void SetStr(int id, string value=null)
void SetInt(int id, int value=0)
List< Action > actionsNextFrame
ElementContainerCard elements
Thing AddThing(string id, int lv=-1)
void AddEditorTag(EditorTag tag)
void ForeachPoint(Action< Point, bool > action)
virtual void SetBlessedState(BlessedState s)
void ModExp(string alias, int a)
Thing Add(string id, int num=1, int lv=1)
void AddExp(int a, bool applyMod=true)
bool HasElement(int ele, bool includeNagative=false)
void AddBodyPart(int ele, Thing thing=null)
void Unequip(Thing thing, bool refresh=true)
static Chara Create(string id, int lv=-1)
void Refresh(bool calledRecursive=false)
override bool IsAliveInCurrentZone
bool CanSeeLos(Card c, int dist=-1)
void HoldCard(Card t, int num=-1)
void PickHeld(bool msg=false)
bool HasCondition(string alias)
Chara SetFaction(Faction f)
override CardRenderer _CreateRenderer()
void CalculateMaxStamina()
override bool IsDeadOrSleeping
void GainAbility(int ele, int mtp=100, Thing origin=null)
bool visibleWithTelepathy
void RefreshFaithElement()
void RefreshSpeed(Element.BonusInfo info=null)
override bool IsMultisize
Thing EQ_ID(string s, int mat=-1, Rarity r=Rarity.Random)
bool TryIdentify(Thing t, int count=1, bool show=true)
void MoveZone(string alias)
static CursorInfo MoveZone
int GetElapsedHour(int rawDate)
int GetRaw(int offsetHours=0)
string GetText(TextFormat format)
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
static SourceManager sources
static GameSetting setting
void ModExp(int ele, float a, bool chain=false)
Dictionary< int, Element > dict
int GetFeatRef(int ele, int idx=0)
Element SetBase(string alias, int v, int potential=0)
Element GetElement(string alias)
static Element Create(int id, int v=0)
int GetRoadDist(int gx, int gy)
List< Dictionary< string, string > > BuildList(string sheetName="_default")
List< FactionBranch > GetChildren()
static string pathCurrentSave
ReligionManager religions
virtual void OnUnsetCurrentItem()
virtual void OnMarkMapHighlights()
virtual void OnSetCurrentItem()
static bool Has(string id)
static LayerDrama Activate(string book, string idSheet, string idStep, Chara target=null, Card ref1=null, string tag="")
static LayerDrama Instance
static List< LayerInventory > listInv
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
bool IsStoryPlayed(int flag)
void _OnSerializing(StreamingContext context)
bool canComupWithFoodRecipe
int GetStoryRowID(string idBook, string idStep)
bool toggleHotbarHighlightDisabled
bool PlayStory(int id, bool fromBook=false)
void _OnDeserialized(StreamingContext context)
Dictionary< string, string > GetStoryRow(string idBook, int id)
ExcelData GetStoryExcelData(string idBook)
bool abilityHighlightDisabled
bool PlayStory(string idBook, int id, bool fromBook=false)
List< int > availableStories
bool helpHighlightDisabled
Dictionary< string, ExcelData > storyExcel
bool toggleHotbarHighlightActivated
List< string > reservedTutorial
List< int > playedStories
HashSet< int > pleaseDontTouch
int daysAfterQuestExploration
bool backpackHighlightDisabled
bool pickedMelilithTreasure
UIList.SortMode sortResearch
LayerPeople.ShowMode modePoeple
UIList.SortMode sortInvShop
UIList.SortMode sortAbility
UIList.SortMode sortResources
UIList.SortMode sortPeople
UIInventory.InteractMode interactMode
int GetShippingBonus(long _a)
ZoneTransition lastTransition
Dictionary< string, string > lastRecipes
Layer SelectDomain(Action onKill=null)
List< int > uidPickOnLoad
bool IsFighterGuildMember
bool IsPriorityAction(string id, Thing t)
Dictionary< string, KnownSong > knownSongs
void SetPriorityAction(string id, Thing t)
WidgetManager.SaveData widgets
Window.SaveData windowAllyInv
CinemaConfig cinemaConfig
bool CanExitBorder(Point p)
void ResetCurrentHotItem()
void ToggleFavMoongate(string id)
void OnExitBorder(Point p)
void EquipTool(Thing a, bool setHotItem=true)
List< Cell > lastMarkedHighlights
bool HasKeyItem(string alias)
bool HasValidRangedTarget()
void AddInventory(Card c)
Dictionary< string, int > dialogFlags
void EndTurn(bool consume=true)
ElementContainer GetDomains()
void EnterLocalZone(bool encounter=false, Chara mob=null)
HashSet< int > doneBackers
int ContainerSearchDistance
void AddExpKnowledge(int a)
HashSet< string > trackedCategories
int CountKeyItem(string alias)
HashSet< int > knownCraft
WidgetManager.SaveData subWidgets
Dictionary< string, HashSet< string > > noRestocks
Dictionary< string, Window.SaveData > dataWindow
HashSet< int > favAbility
void GenerateBackgroundText()
void ModKeyItem(string alias, int num=1, bool msg=true)
List< ShippingResult > shippingResults
void ModKeyItem(int id, int num=1, bool msg=true)
void ExitBorder(ActPlan p=null)
Dictionary< string, string > hangIcons
Dictionary< string, List< string > > priorityActions
KnowledgeManager knowledges
Thing DropReward(Thing t, bool silent=false)
HashSet< string > trackedCards
WidgetManager.SaveData mainWidgets
Window.SaveData windowDataCopy
static int seedHallucination
void EnterLocalZone(Point p, ZoneTransition trans=null, bool encounter=false, Chara mob=null)
HotItemNoItem hotItemNoItem
void AddExpInfluence(int a)
bool TryAbortAutoCombat(bool immediate=true)
void ClearMapHighlights()
LayerAbility.Config layerAbilityConfig
List< string > favMoongate
HashSet< int > trackedElements
string GetBackgroundText()
void RefreshCurrentHotItem()
void EditBackgroundText()
Dictionary< int, int > keyItems
bool IsMerchantGuildMember
void SetCurrentHotItem(HotItem item)
Point Set(int _x, int _z)
bool Equals(int _x, int _z)
bool TryWitnessCrime(Chara criminal, Chara target=null, int radius=4, Func< Chara, bool > funcWitness=null)
Quest Start(string id, string idGlobalChara)
bool HasFarAwayEscort(bool execute=false)
virtual void OnModKarma(int a)
static int Set(Zone zone)
bool CanCreateZone(Point pos)
Zone CreateZone(Point pos)
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
void DestroyAll(Func< Thing, bool > funcExclude=null)
void SetSize(int w, int h)
void Foreach(Action< Thing > action, bool onlyAccessible=true)
static Thing CreateRedBook(string id, int num=1)
static Thing CreateSpellbook(string alias, int num=1)
static Thing CreateRecipe(string id)
static Thing CreateCurrency(int a, string id="money")
static Thing Create(string id, int idMat=-1, int lv=-1)
override bool OnUse(Chara c)
virtual HotItem GetHotItem()
virtual bool CanOnlyCarry
static void Reserve(string idStep, Action onBeforePlay=null)
static UIResourceTrack Instance
static Dictionary< string, SaveData > dictData
void AddPreEnter(ZonePreEnterEvent e, bool executeIfActiveZone=true)
static EnterState DirToState(int dir)
virtual bool BlockBorderExit
virtual ZoneTransition.EnterState RegionEnterState
Zone GetZoneAt(int _x, int _y)
Card AddCard(Card t, Point point)