2using System.Collections.Generic;
5using System.Runtime.Serialization;
240 SetBonus(1000000000, 50000);
241 SetBonus(100000000, 20000);
242 SetBonus(10000000, 10000);
243 SetBonus(500000, 5000);
244 SetBonus(250000, 3000);
245 SetBonus(100000, 2000);
246 SetBonus(20000, 1000);
251 void SetBonus(
int threshold,
int div)
255 p += (_a - threshold) / div;
273 public int[]
ints =
new int[50];
289 public Dictionary<string, ExcelData>
storyExcel =
new Dictionary<string, ExcelData>();
756 bits.Bits = (uint)
ints[0];
769 if (
build == 0 && r.
id ==
"workbench")
784 if (
item[
"step"] == idStep)
786 return item[
"id"].ToInt();
792 public Dictionary<string, string>
GetStoryRow(
string idBook,
int id)
796 if (
item[
"id"].ToInt() ==
id)
807 if (excelData ==
null)
810 excelData.path = CorePath.DramaData + idBook +
".xlsx";
817 public bool PlayStory(
string idBook,
int id,
bool fromBook =
false)
823 Dictionary<string, string> storyRow =
GetStoryRow(idBook,
id);
824 SoundManager.ForceBGM();
825 LayerDrama.fromBook = fromBook;
909 public List<int>
uids =
new List<int>();
1095 public Dictionary<string, int>
dialogFlags =
new Dictionary<string, int>();
1098 public Dictionary<string, string>
hangIcons =
new Dictionary<string, string>();
1101 public Dictionary<string, KnownSong>
knownSongs =
new Dictionary<string, KnownSong>();
1104 public Dictionary<string, string>
lastRecipes =
new Dictionary<string, string>();
1107 public Dictionary<string, List<string>>
priorityActions =
new Dictionary<string, List<string>>();
1173 public Dictionary<int, int>
keyItems =
new Dictionary<int, int>();
1182 public Dictionary<string, HashSet<string>>
noRestocks =
new Dictionary<string, HashSet<string>>();
1353 return quest.phase >= 10;
1366 return quest.phase >= 10;
1379 return quest.phase >= 10;
1392 return quest.phase >= 10;
1415 chara.c_idTone =
"default";
1421 Fav fav = IO.LoadFile<Fav>(CorePath.user +
"PCC/fav" +
EClass.
rnd(3));
1422 chara.pccData = IO.Duplicate(fav.data);
1426 _agent.c_altName =
"stash".lang();
1427 EClass.player.title =
"master".lang();
1433 pref.sort_ascending_shop =
true;
1434 EClass.game.config.preference.autoEat =
true;
1435 flags.toggleHotbarHighlightDisabled =
true;
1436 layerAbilityConfig.hideDepletedSpell =
true;
1437 layerAbilityConfig.bgAlpha = 70;
1447 EClass.player.questTracker =
true;
1459 List<Element> list =
new List<Element>();
1466 if (
item.Value == 0)
1470 else if (
item.HasTag(
"primary"))
1472 item.vTempPotential = Mathf.Max(30, (
item.ValueWithoutLink - 8) * 7);
1485 EClass.pc.hunger.value = 30;
1510 t.c_windowSaveData =
null;
1511 }, onlyAccessible:
false);
1520 foreach (
Window componentsInDirectChild
in layer.GetComponentsInDirectChildren<
Window>())
1538 p.ForeachReverse(delegate(
string i)
1560 if (!
id.IsEmpty() && t !=
null)
1563 if (list !=
null && list.Contains(t.
id))
1575 string text =
"time_warn_" +
realHour;
1585 for (
int i = 0; i <
EClass.
pc.
job.domain.Length; i += 2)
1594 foreach (
int domain
in domains)
1596 elementContainer.GetOrCreateElement(domain).vSource = 1;
1598 return elementContainer;
1606 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)))
1629 }, delegate(List<UIList.ButtonPair> list)
1640 if (row.id == domain2)
1645 button.SetCheck(flag3);
1646 for (
int i = 0; i < ((EClass.pc.job.id ==
"swordsage") ? 5 : 3); i++)
1653 button.interactable = !flag2 && (!flag || flag3);
1654 button.GetComponent<CanvasGroup>().enabled = !button.interactable;
1656 }).SetOnKill(delegate
1664 int num =
MaxAlly - EClass.pc.party.members.Count + 1;
1684 StringBuilder stringBuilder =
new StringBuilder(IO.LoadText(
GameIO.
pathCurrentSave +
"background.txt"));
1691 stringBuilder.Replace(
"#job",
EClass.
pc.
job.GetName().AddArticle());
1695 stringBuilder.Replace(
"#he", (
EClass.
pc.
IsMale ?
"he" :
"she").lang());
1696 stringBuilder.Replace(
"#his", (
EClass.
pc.
IsMale ?
"his" :
"her").lang());
1697 stringBuilder.Replace(
"#him", (
EClass.
pc.
IsMale ?
"him" :
"her").lang());
1698 string separator =
"_period".lang();
1699 stringBuilder.ToString().Split(separator);
1700 return stringBuilder.ToString().TrimEnd(Environment.NewLine.ToCharArray());
1724 bool firstSpellbook =
true;
1755 string[] tag = element.
source.tag;
1756 foreach (
string text2
in tag)
1795 if (c.
race.id ==
"vampire")
1804 thing.
SetStr(53,
"letter_vampire");
1813 firstSpellbook =
false;
1816 t.c_charges = charge;
1834 string[] tag = element.
source.tag;
1835 foreach (
string text2
in tag)
1869 if (list.Count != 0)
1873 int mtp = ((num == 0) ? 100 : (75 + num * 25));
1874 if (num > 0 || element2 ==
null || element2.
vPotential == 0)
1889 if (child.
owner != currentZone)
1910 string textDialog = (flag ?
"ExitZoneEscort" :
"ExitZone").lang(
EClass.
_zone.
Name);
1911 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;
1925 p.TrySetAct(
"actNewZone", delegate
1941 p.TrySetAct(
"actNewZone", delegate
1977 else if (p.
x <= bounds.
maxX)
1979 num2 = ((p.z >= bounds.
z) ? 1 : (-1));
1991 float ratePos = ((num == 1 || num == -1) ? ((
float)(p.z - bounds.
z) / (
float)bounds.
Height) : ((
float)(p.x - bounds.
x) / (
float)bounds.
Width));
2028 int num2 = Mathf.Clamp(roadDist - 4, 0, 200) + Mathf.Clamp(num / 4, 0, 10);
2031 num2 += roadDist - 20;
2037 Debug.Log(
"encounter roadiDist:" + roadDist +
" homeDist:" + num +
" lv:" + num2);
2039 zone._dangerLv = num2;
2040 enemies = 2 + Mathf.Min(num2 / 10, 4) +
EClass.
rnd(3 + Mathf.Min(num2 / 10, 4));
2065 Msg.
Say(
"zoneNoEntrance");
2083 roadDist = roadDist,
2091 CursorSystem.ignoreCount = 15;
2092 EClass.
ui.hud.transRight.SetActive(enable:
false);
2116 int num = elapsedHour / 24;
2166 Msg.
Say(
"gainFameLimit");
2170 if (
fame > 0 && a > 0 &&
fame + a < 0)
2172 fame =
int.MaxValue;
2184 Msg.
Say(
"gainFame", a.ToString() ??
"");
2188 Msg.
Say(
"looseFame", (-a).ToString() ??
"");
2196 public void ModKeyItem(
string alias,
int num = 1,
bool msg =
true)
2217 SE.Play(
"keyitem_lose");
2306 WidgetHotbar.dirtyCurrentItem =
false;
2314 item.invs[0].RefreshHighlight();
2366 int num = 999999999;
2369 List<Chara> list =
new List<Chara>();
2416 Msg.
Say(
"noTargetFound");
2481 EClass.player.stats.lastChuryu = num;
2510 lastMarkedHighlight.highlight = 0;
2546 bool canSee =
false;
2577 Msg.
Say(
"DingKnowledge");
2594 Msg.
Say(
"DingInfluence");
2606 bool flag =
karma < 0;
2608 Msg.
Say((a > 0) ?
"karmaUp" :
"karmaDown", a.ToString() ??
"");
2609 if (
karma < 0 && !flag)
2611 Msg.
Say(
"becomeCriminal");
2617 if (
karma >= 0 && flag)
2619 Msg.
Say(
"becomeNonCriminal");
2645 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)
List< Chara > listCarryoverMap
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)
static void GetAchievement(ID_Achievement id)
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)