Elin Decompiled Documentation EA 23.271 Nightly
Loading...
Searching...
No Matches
Zone Class Reference
Inheritance diagram for Zone:
Spatial ICardParent IInspect EClass Region Zone_Arena Zone_CaveElona Zone_Civilized Zone_Dungeon Zone_Field Zone_Hospital Zone_LumiestRuin Zone_Shelter Zone_SnowGrave Zone_StartCave Zone_StartSite Zone_Tent Zone_TestMap Zone_TestRoom Zone_TruceGround Zone_Underground Zone_User Zone_Wilds Zone_WindRest

Classes

class  PortalReturnData
 

Public Member Functions

int Evalue (int ele)
 
int Evalue (string alias)
 
virtual string GetDungenID ()
 
virtual bool ShouldScaleImportedChara (Chara c)
 
virtual string GetNewZoneID (int level)
 
override string ToString ()
 
string TextLevel (int _lv)
 
override void OnCreate ()
 
override void OnAfterCreate ()
 
void Activate ()
 
void RefreshHat ()
 
void OnVisit ()
 
void RefreshDeathSentense ()
 
void Revive ()
 
virtual void OnRegenerate ()
 
virtual void OnActivate ()
 
virtual void OnBeforeDeactivate ()
 
virtual void OnDeactivate ()
 
virtual void OnBeforeSimulate ()
 
virtual void OnVisitNewMapOrRegenerate ()
 
virtual void OnAfterSimulate ()
 
virtual void OnAdvanceHour ()
 
void Simulate ()
 
Point GetSpawnPos (Chara c, ZoneTransition.EnterState destState=ZoneTransition.EnterState.Auto)
 
Point GetRandomVisitPos (Chara c)
 
void AddGlobalCharasOnActivate ()
 
void Deactivate ()
 
void OnKillGame ()
 
void UnloadMap ()
 
void ClaimZone (bool debug=false, Point pos=null)
 
void AbandonZone ()
 
bool CanDestroy ()
 
override void _OnBeforeSave ()
 
override void OnLoad ()
 
override void Destroy ()
 
void ClearZones (Zone current=null)
 
void OnChildNumChange (Card c)
 
ICardParent GetRoot ()
 
Zone GetTopZone ()
 
Card AddCardSplinkle (Card t, Point center, int radius=4)
 
Chara AddChara (string id, int x, int z)
 
Chara AddChara (string id, Point p)
 
Card AddThing (string id, int x, int z)
 
Card AddThing (string id, Point p)
 
Card AddCard (Card t, Point point)
 
Card AddCard (Card t)
 
Card AddCard (Card t, int x, int z)
 
void RemoveCard (Card t)
 
GetRandomSpot< T > ()
 
bool TryAddThingInSpot< T > (Thing t, bool useContainer=true)
 
List< ThingTryListThingsInSpot< T > (Func< Thing, bool > func=null)
 
bool TryAddThingInSharedContainer (Thing t, List< Thing > containers=null, bool add=true, bool msg=false, Chara chara=null, bool sharedOnly=true)
 
bool TryAddThing (Thing target, Point p, bool destroyIfFail=false)
 
Thing TryGetThingFromSharedContainer (Func< Thing, bool > func)
 
Thing TryGetRestock< T > (string idCat)
 
ZoneProfile GetProfile ()
 
void CreateBP ()
 
virtual void OnCreateBP ()
 
void Generate ()
 
void TrySpawnFollower ()
 
void SpawnAltar ()
 
virtual void OnGenerateMap ()
 
void TryGenerateOre ()
 
Chara TryGenerateEvolved (bool force=false, Point p=null)
 
void TryGenerateBigDaddy ()
 
void TryGenerateShrine ()
 
void ResetHostility ()
 
virtual void OnGenerateRooms (BaseMapGen gen)
 
Point GetSpawnPos (SpawnPosition type, int tries=100)
 
Chara SpawnMob (string id, Point pos=null)
 
Chara SpawnMob (Point pos=null, SpawnSetting setting=null)
 
bool HasField (int idEle)
 
void SetFieldEffect (int idEle, int a)
 
void RefreshElectricity ()
 
int GetElectricity (bool cost=false)
 
void SetBGM (List< int > ids, bool refresh=true, float fadeDuration=0f)
 
void SetBGM (int id=-1, bool refresh=true, float fadeDuration=0f)
 
void RefreshPlaylist ()
 
void ResetPlaylist ()
 
void RefreshBGM ()
 
Playlist CreatePlaylist (ref List< int > list, Playlist mold=null)
 
Chara FindChara (string id)
 
Chara FindChara (int uid)
 
int GetDeepestLv ()
 
int GetDeepestLv (ref int max)
 
List< ElementListLandFeats ()
 
ZoneExportData Import (string path)
 
void Export (string path, PartialMap partial=null, bool usermap=false)
 
void ExportDialog (string dir=null)
 
void ImportDialog (string dir=null)
 
void Export ()
 
void WriteNote (UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
 
void OnInspect ()
 
int GetSortVal ()
 
Chara AddRandomVisitor (bool guest=false)
 
void OnSimulateHour (VirtualDate date)
 
void OnSimulateDay (VirtualDate date)
 
void OnSimulateMonth (VirtualDate date)
 
void RainWater ()
 
void GrowPlants (VirtualDate date)
 
Zone GetZoneAt (int _x, int _y)
 
bool IsCrime (Chara c, Act act)
 
void RefreshCriminal ()
 
void RefreshListCitizen ()
 
virtual void SetAlarm (bool enable)
 
void ModInfluence (int a)
 
void ModDevelopment (int a)
 
void UpdateQuests (bool force=false)
 
List< CharaListMinions (Chara c)
 
int CountMinions (Chara c)
 
int GetSoilCost ()
 
void SpawnLostItems ()
 
void ApplyBackerPet (bool draw)
 
FortuneRollData GetOrCreateFortuneRollData (bool refresh=true)
 
- Public Member Functions inherited from Spatial
int GetInt (int id, int? defaultInt=null)
 
void AddInt (int id, int value)
 
void SetInt (int id, int value=0)
 
override string ToString ()
 
void Create (string _id, int _x, int _y, int _icon)
 
void Register ()
 
virtual void OnCreate ()
 
virtual void OnAfterCreate ()
 
virtual void SetMainFaction (Faction f)
 
Zone GetFirstZone ()
 
void OnBeforeSave ()
 
virtual void _OnBeforeSave ()
 
void _OnLoad ()
 
virtual void OnLoad ()
 
virtual void Destroy ()
 
void DeleteMapRecursive ()
 
virtual void AddChild (Spatial child)
 
void RemoveChild (Spatial child)
 
Zone FindDeepestZone ()
 
Zone FindZone (int lv)
 
Zone FindZone (string _id)
 
virtual bool CanKill ()
 
int Dist (Point p)
 
int Dist (Spatial s)
 
void MakeGameObject (GameObject parentGo)
 
ICardParent GetRoot ()
 
void RemoveCard (Card c)
 
void OnChildNumChange (Card c)
 
void WriteNote (UINote n, Action< UINote > onWriteNote=null, NoteMode mode=NoteMode.Default, Recipe recipe=null)
 
void OnInspect ()
 

Static Public Member Functions

static bool IsImportValid (string path)
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Public Attributes

FactionBranch branch
 
HashSet< int > completedQuests = new HashSet<int>()
 
ZoneEventManager events = new ZoneEventManager()
 
ElementContainerZone elements = new ElementContainerZone()
 
ElementContainerField fieldElements = new ElementContainerField()
 
MapBounds bounds
 
Dictionary< int, string > dictCitizen = new Dictionary<int, string>()
 
ZoneInstance instance
 
List< int > landFeats
 
Map map
 
MapSubset subset
 
ZoneBlueprint bp
 
int fileVariation
 
bool dirtyElectricity
 
bool isStarted
 
bool isSimulating
 
int tempDist
 
BiomeProfile _biome
 
- Public Attributes inherited from Spatial
Spatial parent
 
string id
 
string idUser
 
string name
 
string idMainFaction
 
string idProfile
 
string idCurrentSubset
 
string idHat
 
int[] _ints = new int[30]
 
List< Spatialchildren = new List<Spatial>()
 
List< Spatialconnections = new List<Spatial>()
 
Dictionary< int, int > mapInt = new Dictionary<int, int>()
 
bool destryoed
 
bool isImported
 
BitArray32 bits
 

Static Public Attributes

static bool forceRegenerate
 
static string forceSubset
 
static CardRow sourceHat
 
static int okaerinko = 0
 
static bool ignoreSpawnAnime
 
static List< ThingSuckers = new List<Thing>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Properties

Chara Boss [get, set]
 
override int ContentLv [get]
 
override int DangerLv [get]
 
virtual bool DisableRooms [get]
 
int HourSinceLastActive [get]
 
int MinsSinceLastActive [get]
 
virtual string pathExport [get]
 
BiomeProfile biome [get]
 
virtual string IdBiome [get]
 
virtual string IDGenerator [get]
 
virtual string TextWidgetDate [get]
 
MapGenerator Generator [get]
 
virtual string IdProfile [get]
 
virtual string IDPlayList [get]
 
virtual string IDPlaylistOverwrite [get]
 
virtual string IDHat [get]
 
virtual string IDBaseLandFeat [get]
 
virtual string idExport [get]
 
string pathTemp [get]
 
Region Region [get]
 
Zone ParentZone [get]
 
virtual ActionMode DefaultActionMode [get]
 
virtual bool BlockBorderExit [get]
 
virtual int ExpireDays [get]
 
virtual ZoneTransition.EnterState RegionEnterState [get]
 
virtual ZoneFeatureType FeatureType [get]
 
virtual string IDAmbience [get]
 
virtual string IDSceneTemplate [get]
 
virtual bool IsFestival [get]
 
virtual string IDSubset [get]
 
virtual bool IsTown [get]
 
virtual bool CanBeDeliverDestination [get]
 
virtual bool CountDeepestLevel [get]
 
virtual bool HasLaw [get]
 
virtual bool SetAlarmOnBreakLaw [get]
 
virtual bool MakeEnemiesNeutral [get]
 
virtual bool MakeTownProperties [get]
 
virtual bool AllowCriminal [get]
 
virtual bool AllowInvest [get]
 
virtual bool AllowNewZone [get]
 
virtual bool WillAutoSave [get]
 
virtual bool RegenerateOnEnter [get]
 
virtual bool IsSkyLevel [get]
 
virtual bool IsUnderwater [get]
 
virtual bool IsUserZone [get]
 
virtual bool CanDigUnderground [get]
 
virtual bool LockExit [get]
 
virtual bool CanUnlockExit [get]
 
virtual int MaxLv [get]
 
virtual int MinLv [get]
 
virtual bool AddPrefix [get]
 
virtual bool IsNefia [get]
 
virtual bool PetFollow [get]
 
virtual bool RestrictBuild [get]
 
virtual bool KeepAllyDistance [get]
 
virtual int MaxSpawn [get]
 
int MaxRespawn [get]
 
virtual float RuinChance [get]
 
virtual float OreChance [get]
 
virtual float BigDaddyChance [get]
 
virtual float EvolvedChance [get]
 
virtual float ShrineChance [get]
 
virtual float PrespawnRate [get]
 
virtual float RespawnRate [get]
 
bool ShowEnemyOnMinimap [get]
 
virtual int RespawnPerHour [get]
 
virtual float ChanceSpawnNeutral [get]
 
virtual bool GrowPlant [get]
 
virtual bool GrowWeed [get]
 
virtual bool IsExplorable [get]
 
virtual bool IsReturnLocation [get]
 
virtual bool ShouldMakeExit [get]
 
virtual bool ShouldRegenerate [get]
 
virtual bool ShouldAutoRevive [get]
 
virtual bool UseFog [get]
 
virtual bool RevealRoom [get]
 
virtual bool AlwaysLowblock [get]
 
virtual bool UseLight [get]
 
virtual int StartLV [get]
 
virtual ZoneScaleType ScaleType [get]
 
virtual bool HiddenInRegionMap [get]
 
virtual FlockController.SpawnType FlockType [get]
 
override string NameSuffix [get]
 
string NameWithLevel [get]
 
string TextDangerLv [get]
 
string TextDeepestLv [get]
 
bool CanEnterBuildMode [get]
 
bool CanEnterBuildModeAnywhere [get]
 
bool IsPCFaction [get]
 
bool IsPCFactionOrTent [get]
 
bool IsStartZone [get]
 
bool IsInstance [get]
 
bool IsLoaded [get]
 
virtual int BaseElectricity [get]
 
bool IsActiveZone [get]
 
bool CanInspect [get]
 
string InspectName [get]
 
Point InspectPoint [get]
 
Vector3 InspectPosition [get]
 
virtual int MaxSoil [get]
 
- Properties inherited from Spatial
int _bits [get, set]
 
int uid [get, set]
 
int icon [get, set]
 
int x [get, set]
 
int y [get, set]
 
int lastActive [get, set]
 
int idPrefix [get, set]
 
int lv [get, set]
 
int visitCount [get, set]
 
int dateExpire [get, set]
 
int dateRevive [get, set]
 
int _dangerLv [get, set]
 
int dateRegenerate [get, set]
 
int influence [get, set]
 
int investment [get, set]
 
int development [get, set]
 
int electricity [get, set]
 
int dateHat [get, set]
 
int uidBoss [get, set]
 
int dateQuest [get, set]
 
int version [get, set]
 
bool isGenerated [get, set]
 
bool isShore [get, set]
 
bool isRandomSite [get, set]
 
bool isKnown [get, set]
 
bool isMapSaved [get, set]
 
bool isExternalZone [get, set]
 
bool isConquered [get, set]
 
bool isBeach [get, set]
 
bool isPeace [get, set]
 
bool isDeathLocation [get, set]
 
bool isAlarmSet [get, set]
 
Faction mainFaction [get, set]
 
SourceZone.Row source [get]
 
bool IsPlayerFaction [get]
 
bool IsClosed [get]
 
int mapX [get]
 
int mapY [get]
 
virtual int ContentLv [get]
 
virtual int DangerLv [get]
 
virtual int DangerLvFix [get]
 
virtual int DangerLvBoost [get]
 
virtual float VolumeSea [get]
 
virtual bool ShowDangerLv [get]
 
virtual bool CanSpawnAdv [get]
 
string pathSave [get]
 
virtual string Name [get]
 
string NameWithDangerLevel [get]
 
virtual string NameSuffix [get]
 
virtual bool IsRegion [get]
 
virtual bool CanFastTravel [get]
 
EloMap.TileInfo Tile [get]
 
virtual bool IsSnowZone [get]
 
virtual bool IsSnowCovered [get]
 
virtual Point RegionPos [get]
 
virtual bool isClaimable [get]
 
int Seed [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 
- Properties inherited from IInspect
bool CanInspect [get]
 
string InspectName [get]
 
Point InspectPoint [get]
 
Vector3 InspectPosition [get]
 

Private Attributes

FortuneRollData fortuneRoll
 

Additional Inherited Members

- Public Types inherited from IInspect
enum  NoteMode { Default , Recipe , Product , Info }
 
- Protected Member Functions inherited from Spatial
Zone _FindZone (string _id)
 
- Protected Attributes inherited from Spatial
Point _regionPos = new Point()
 

Detailed Description

Definition at line 11 of file Zone.cs.

Member Function Documentation

◆ _OnBeforeSave()

override void Zone._OnBeforeSave ( )
inlinevirtual

Reimplemented from Spatial.

Definition at line 1862 of file Zone.cs.

1863 {
1864 if (CanDestroy())
1865 {
1866 Debug.Log("Deleting Zone:" + this);
1867 if (!destryoed)
1868 {
1869 Destroy();
1870 }
1871 }
1872 else if (map != null)
1873 {
1874 Debug.Log("Saving Zone:" + this);
1875 map.Save(base.pathSave);
1876 if (!base.isMapSaved)
1877 {
1878 base.isMapSaved = true;
1879 IO.DeleteDirectory(base.pathSave + "Texture Replace");
1880 IO.CopyDir(pathTemp + "Texture Replace", base.pathSave + "/Texture Replace");
1881 }
1882 if (!IsActiveZone)
1883 {
1884 UnloadMap();
1885 }
1886 }
1887 }
Definition: IO.cs:11
static void DeleteDirectory(string path)
Definition: IO.cs:353
static void CopyDir(string sourceDirectory, string targetDirectory, Func< string, bool > funcExclude=null)
Definition: IO.cs:245
void Save(string path, ZoneExportData export=null, PartialMap partial=null)
Definition: Map.cs:376
bool destryoed
Definition: Spatial.cs:45
bool CanDestroy()
Definition: Zone.cs:1797
override void Destroy()
Definition: Zone.cs:1898
bool IsActiveZone
Definition: Zone.cs:495
void UnloadMap()
Definition: Zone.cs:1713
string pathTemp
Definition: Zone.cs:161
Map map
Definition: Zone.cs:63

References Debug, and Map.Save().

◆ AbandonZone()

void Zone.AbandonZone ( )
inline

Definition at line 1781 of file Zone.cs.

1782 {
1783 FactionBranch destBranch = ((EClass.pc.homeBranch == branch) ? EClass.game.StartZone.branch : EClass.pc.homeBranch);
1784 branch.members.ForeachReverse(delegate(Chara m)
1785 {
1786 destBranch.AddMemeber(m);
1787 if (!m.IsPCParty)
1788 {
1789 m.MoveZone(destBranch.owner);
1790 }
1791 });
1793 SetMainFaction(null);
1794 base.dateExpire = EClass.world.date.GetRaw() + 10080;
1795 }
Definition: Chara.cs:10
override bool IsPCParty
Definition: Chara.cs:617
FactionBranch homeBranch
Definition: Chara.cs:1068
void MoveZone(string alias)
Definition: Chara.cs:3331
int GetRaw(int offsetHours=0)
Definition: Date.cs:326
Definition: EClass.cs:6
static Game game
Definition: EClass.cs:9
static World world
Definition: EClass.cs:41
static FactionBranch Branch
Definition: EClass.cs:23
static Chara pc
Definition: EClass.cs:15
void OnUnclaimZone()
List< Chara > members
void AddMemeber(Chara c)
Zone StartZone
Definition: Game.cs:278
virtual void SetMainFaction(Faction f)
Definition: Spatial.cs:646
GameDate date
Definition: World.cs:6
FactionBranch branch
Definition: Zone.cs:34

References FactionBranch.AddMemeber(), EClass.Branch, branch, World.date, EClass.game, Date.GetRaw(), Chara.homeBranch, Chara.IsPCParty, FactionBranch.members, Chara.MoveZone(), FactionBranch.OnUnclaimZone(), FactionBranch.owner, EClass.pc, Game.StartZone, and EClass.world.

◆ Activate()

void Zone.Activate ( )
inline

Definition at line 591 of file Zone.cs.

592 {
593 if (IsRegion)
594 {
596 }
597 isStarted = (isSimulating = false);
598 base.isKnown = true;
599 EClass.game.config.reverseSnow = false;
601 {
602 Msg.Say("regenerateZone", Name);
603 ClearZones();
604 if (EClass.pc.global.transition != null)
605 {
606 EClass.pc.global.transition.uidLastZone = 0;
607 }
608 }
610 if (EClass.game.activeZone != null)
611 {
613 }
614 EClass.game.activeZone = this;
615 ZoneExportData zoneExportData = null;
616 Debug.Log(NameWithLevel + "/" + id + "/" + base.uid + "/" + base.isGenerated + "/" + IsLoaded + "/" + File.Exists(base.pathSave + "map"));
617 if (base.isGenerated && !IsLoaded && !File.Exists(base.pathSave + "map"))
618 {
619 Debug.Log("(Bug) File does not exist:" + destryoed + "/" + base.pathSave);
620 base.isGenerated = false;
621 }
622 bool flag = false;
623 Debug.Log(idCurrentSubset + "/" + IDSubset);
624 bool flag2 = idCurrentSubset != IDSubset || forceSubset != null;
625 if (flag2 && map != null)
626 {
627 UnloadMap();
628 }
629 Debug.Log(idExport + "/" + File.Exists(pathExport) + "/" + pathExport);
630 if (!base.isGenerated && (idExport.IsEmpty() || !File.Exists(pathExport)))
631 {
632 Debug.Log("generating random map");
633 flag = true;
634 base.dateExpire = EClass.world.date.GetRaw() + 1440 * ExpireDays;
635 Generate();
637 if (instance != null)
638 {
640 }
641 if (!UseFog)
642 {
643 map.ForeachCell(delegate(Cell c)
644 {
645 c.isSeen = true;
646 });
647 }
648 if (!(bp is GameBlueprint))
649 {
651 }
652 }
653 else if (IsLoaded)
654 {
655 Debug.Log("zone is already loaded");
656 map.SetZone(this);
657 EClass.core.textures.ApplyLocalReplace(base.isMapSaved ? base.pathSave : pathTemp);
659 }
660 else
661 {
662 subset = null;
663 bool flag3 = (base.isGenerated && flag2) || (base.isGenerated && !IsInstance && !IsPCFaction && ShouldRegenerate && EClass.world.date.IsExpired(base.dateRegenerate)) || forceRegenerate;
664 if (pathExport.IsEmpty() || !File.Exists(pathExport) || EClass.game.isLoading || EClass.player.simulatingZone)
665 {
666 flag3 = false;
667 flag2 = false;
668 }
669 Debug.Log(base.isGenerated + "/" + flag3 + "/" + flag2 + "/" + IDSubset);
670 if (!base.isGenerated || flag3 || flag2)
671 {
672 Debug.Log("importing map:" + pathExport);
673 flag = true;
674 base.dateRegenerate = EClass.world.date.GetRaw() + 1440 * EClass.setting.balance.dateRegenerateZone;
675 if (!flag3)
676 {
677 IO.DeleteDirectory(pathTemp + "Texture Replace");
678 Debug.Log(pathTemp);
679 }
680 try
681 {
682 zoneExportData = Import(pathExport);
683 base.isGenerated = true;
684 isImported = true;
685 if (flag3)
686 {
687 zoneExportData.orgMap = GameIO.LoadFile<Map>(base.pathSave + "map");
688 }
689 }
690 catch (Exception message)
691 {
692 Debug.Log(message);
693 zoneExportData = Import(CorePath.ZoneSave + "fail.z");
694 base.isGenerated = true;
695 isImported = true;
696 }
697 }
699 Debug.Log("loading map: imported? " + isImported + " regenerate? " + flag3);
700 map = GameIO.LoadFile<Map>((isImported ? pathTemp : base.pathSave) + "map");
701 if (map == null)
702 {
703 EClass.ui.Say("System.IO.EndOfStreamException: Unexpected end of stream:" + Environment.NewLine + "File may be corrupted. Try replacing the following file if you have a backup:" + Environment.NewLine + (isImported ? pathTemp : base.pathSave) + "map");
704 return;
705 }
706 map.SetZone(this);
707 map.Load(isImported ? pathTemp : base.pathSave, isImported);
709 EClass.core.textures.ApplyLocalReplace(base.isMapSaved ? base.pathSave : pathTemp);
710 if (isImported)
711 {
712 map.deadCharas.Clear();
713 map.OnImport(zoneExportData);
714 if (UseFog && !flag3)
715 {
716 map.ForeachCell(delegate(Cell c)
717 {
718 c.isSeen = false;
719 });
720 }
721 if (zoneExportData.orgMap != null)
722 {
723 Map orgMap = zoneExportData.orgMap;
724 List<Chara> serializedCharas = map.serializedCharas;
725 map.charas = orgMap.charas;
726 map.serializedCharas = orgMap.serializedCharas;
727 map.deadCharas = orgMap.deadCharas;
728 byte[] array = orgMap.TryLoadFile(base.pathSave, "flags", EClass._map.Size * EClass._map.Size);
729 if (array != null && array.Length == EClass._map.Size * EClass._map.Size)
730 {
731 for (int i = 0; i < EClass._map.Size; i++)
732 {
733 for (int j = 0; j < EClass._map.Size; j++)
734 {
735 map.cells[i, j].isSeen = array[i * EClass._map.Size + j].GetBit(1);
736 }
737 }
738 }
739 foreach (Chara item in serializedCharas)
740 {
741 Debug.Log("Importing New Chara:" + item.id + "/" + item.Name + "/" + item.orgPos);
743 }
744 map.things.ForeachReverse(delegate(Thing t)
745 {
746 if (t.trait is TraitNewZone || t.trait is TraitPowerStatue)
747 {
748 foreach (Thing thing in orgMap.things)
749 {
750 if (t.id == thing.id && t.pos.Equals(thing.pos))
751 {
752 if (t.trait is TraitNewZone)
753 {
754 RemoveCard(t);
755 map.things.Insert(0, thing);
756 thing.stackOrder = 0;
757 }
758 else
759 {
760 t.ChangeMaterial(thing.material);
761 t.isOn = thing.isOn;
762 }
763 break;
764 }
765 }
766 return;
767 }
768 if (t.trait is TraitStairsLocked)
769 {
770 foreach (Thing thing2 in orgMap.things)
771 {
772 if (thing2.trait is TraitNewZone && t.pos.Equals(thing2.pos))
773 {
774 RemoveCard(t);
775 map.things.Add(thing2);
776 break;
777 }
778 }
779 return;
780 }
781 if (t.id == "medal" || t.id == "856")
782 {
783 foreach (Thing thing3 in orgMap.things)
784 {
785 if (t.id == thing3.id && t.pos.Equals(thing3.pos))
786 {
787 return;
788 }
789 }
790 RemoveCard(t);
791 }
792 });
793 foreach (KeyValuePair<int, int> item2 in EClass._map.backerObjs.ToList())
794 {
795 EClass._map.GetCell(item2.Key);
796 SourceBacker.Row row = EClass.sources.backers.map[item2.Value];
798 {
799 map.backerObjs.Remove(item2.Key);
800 }
801 }
802 foreach (Chara serializedChara in map.serializedCharas)
803 {
804 if (serializedChara.orgPos != null && serializedChara.orgPos.IsValid)
805 {
806 serializedChara.pos.Set(serializedChara.orgPos);
807 }
808 }
809 foreach (Thing thing4 in orgMap.things)
810 {
811 if (thing4.trait is TraitTent && !thing4.isNPCProperty)
812 {
813 thing4.AddEditorTag(EditorTag.NoNpcProperty);
814 thing4.isSubsetCard = false;
815 map.things.Add(thing4);
816 Debug.Log(thing4);
817 }
818 }
819 }
820 }
821 foreach (Thing thing5 in map.things)
822 {
823 map.AddCardOnActivate(thing5);
824 }
825 foreach (Chara c3 in map.serializedCharas)
826 {
827 if (c3.c_uidMaster == 0 || EClass.player.listCarryoverMap.Find((Chara c2) => c2.uid == c3.uid) == null)
828 {
829 map.charas.Add(c3);
831 }
832 }
833 map.serializedCharas.Clear();
834 if (isImported && IsTown)
835 {
837 }
840 map.OnLoad();
841 if (flag3)
842 {
843 foreach (Card item3 in map.Cards.ToList())
844 {
845 if (item3.isSubsetCard)
846 {
847 item3.Destroy();
848 }
849 }
850 }
851 if (isImported)
852 {
854 if (idCurrentSubset != null)
855 {
857 subset.Apply();
858 }
859 }
860 if (isImported)
861 {
863 {
864 foreach (Thing thing6 in map.things)
865 {
866 thing6.isNPCProperty = !thing6.isHidden && !thing6.HasEditorTag(EditorTag.NoNpcProperty);
867 }
868 }
869 else
870 {
871 foreach (Thing thing7 in map.things)
872 {
873 thing7.isNPCProperty = false;
874 }
875 }
877 if (instance != null)
878 {
880 }
881 }
882 if (isImported && !flag3 && !RevealRoom)
883 {
884 foreach (Room item4 in map.rooms.listRoom)
885 {
886 if (!item4.HasRoof || item4.data.atrium)
887 {
888 continue;
889 }
890 foreach (Point point2 in item4.points)
891 {
892 point2.cell.isSeen = false;
893 }
894 }
895 }
896 if (flag3)
897 {
898 OnRegenerate();
899 }
900 }
901 PathManager.Instance._pathfinder.PunishChangeDirection = false;
902 isImported = false;
903 if (this is Zone_Tent && IsUnderwater)
904 {
905 EClass._map.config.idSceneProfile = "indoor_water";
906 EClass.scene.profile = SceneProfile.Load(EClass._map.config.idSceneProfile);
907 }
908 if (flag && IsTown && base.lv == 0)
909 {
911 }
912 if (base.visitCount == 0)
913 {
914 base.dateRevive = EClass.world.date.GetRaw() + 1440 * EClass.setting.balance.dateRevive;
915 }
916 map.ForeachCell(delegate(Cell c)
917 {
918 if (c.HasFire)
919 {
920 map.effectManager.GetOrCreate(c.GetSharedPoint());
921 }
922 if (IsRegion)
923 {
924 c.decal = 0;
925 }
926 });
928 {
929 RainWater();
930 }
932 {
933 map.ForeachCell(delegate(Cell c)
934 {
935 c.isSeen = true;
936 });
937 }
938 isStarted = true;
939 Map.isDirtySunMap = true;
941 if (events.listPreEnter.Count > 0)
942 {
943 foreach (ZonePreEnterEvent item5 in events.listPreEnter)
944 {
945 item5.Execute();
946 }
947 events.listPreEnter.Clear();
948 }
949 foreach (Card card in map.Cards)
950 {
951 card.CalculateFOV();
952 if (card.isChara)
953 {
954 Chara chara = card.Chara;
955 chara.dirtySpeed = true;
956 if (!card.isDyed && card.HasTag(CTAG.random_color))
957 {
958 card.DyeRandom();
959 }
960 if (card.IsUnique && !card.IsPCFaction && !card.IsPCParty)
961 {
962 Point point = chara.orgPos ?? card.pos;
963 card.c_uniqueData = new UniqueData
964 {
965 x = point.x,
966 y = point.z,
967 uidZone = base.uid
968 };
969 }
970 int @int = card.GetInt(55);
971 if (@int != 0)
972 {
973 foreach (Chara chara2 in map.charas)
974 {
975 if (chara2.uid == @int)
976 {
977 if (chara.IsHostile(chara2))
978 {
979 chara.enemy = chara2;
980 chara.SetAI(new GoalCombat());
981 chara.calmCheckTurn = 20 + EClass.rnd(30);
982 }
983 break;
984 }
985 }
986 card.SetInt(55);
987 }
988 chara.SyncRide();
989 if (card.c_uidMaster != 0 && chara.master == null)
990 {
991 chara.FindMaster();
992 }
993 if (!EClass.game.isLoading)
994 {
995 chara.enemy = null;
996 if (chara.IsInCombat)
997 {
998 chara.SetNoGoal();
999 }
1000 }
1001 }
1002 else if (card.IsInstalled && card.trait is TraitDoor traitDoor && card.pos.HasChara && !traitDoor.IsOpen())
1003 {
1004 traitDoor.ToggleDoor(sound: false, refresh: false);
1005 }
1006 }
1007 RefreshHat();
1008 forceRegenerate = false;
1009 forceSubset = null;
1010 EClass.ui.OnActivateZone();
1012 EClass.Sound.LoadAmbience(IDAmbience);
1013 if (EClass.Branch != null)
1014 {
1016 }
1017 OnVisit();
1018 if (flag)
1019 {
1021 }
1023 if (IsPCFaction)
1024 {
1025 EClass.player.uidLastTown = 0;
1026 }
1027 else if (IsTown && base.lv == 0)
1028 {
1029 EClass.player.uidLastTown = base.uid;
1030 }
1031 RefreshBGM();
1032 Rand.InitBytes(map.seed + 1);
1034 okaerinko = 0;
1035 if (EClass.debug.enable)
1036 {
1037 ModInfluence(2000);
1038 }
1039 if (this is Zone_TinkerCamp)
1040 {
1041 Tutorial.Reserve("tinker");
1042 }
1043 else if (this is Zone_Town && !(this is Zone_SubTown))
1044 {
1045 Tutorial.Reserve("town");
1046 }
1047 }
CTAG
Definition: CTAG.cs:2
EditorTag
Definition: EditorTag.cs:2
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
void Add(Act a, string s="")
Definition: ActPlan.cs:11
bool atrium
Definition: AreaData.cs:66
AreaData data
Definition: BaseArea.cs:29
PointList points
Definition: BaseArea.cs:26
Definition: Card.cs:11
string id
Definition: Card.cs:36
bool isNPCProperty
Definition: Card.cs:555
bool isSubsetCard
Definition: Card.cs:747
int c_uidMaster
Definition: Card.cs:1450
void AddEditorTag(EditorTag tag)
Definition: Card.cs:2608
Point pos
Definition: Card.cs:60
int uid
Definition: Card.cs:123
Trait trait
Definition: Card.cs:54
void Destroy()
Definition: Card.cs:5107
bool HasEditorTag(EditorTag tag)
Definition: Card.cs:2603
Definition: Cell.cs:7
bool isSeen
Definition: Cell.cs:282
bool HasFire
Definition: Cell.cs:676
AIAct SetNoGoal()
Definition: Chara.cs:8894
bool IsInCombat
Definition: Chara.cs:866
AIAct SetAI(AIAct g)
Definition: Chara.cs:8899
Point orgPos
Definition: Chara.cs:21
GlobalData global
Definition: Chara.cs:76
Chara master
Definition: Chara.cs:88
Chara FindMaster()
Definition: Chara.cs:2419
void SyncRide()
Definition: Chara.cs:3948
bool IsHostile()
Definition: Chara.cs:6533
bool ignoreBackerDestoryFlag
Definition: CoreConfig.cs:562
bool revealMap
Definition: CoreDebug.cs:154
bool enable
Definition: CoreDebug.cs:286
static string ZoneSave
Definition: CorePath.cs:200
TextureManager textures
Definition: Core.cs:45
CoreConfig config
Definition: Core.cs:70
bool IsExpired(int time)
Definition: Date.cs:336
static Scene scene
Definition: EClass.cs:31
static Core core
Definition: EClass.cs:7
static Map _map
Definition: EClass.cs:19
static int rnd(long a)
Definition: EClass.cs:59
static SourceManager sources
Definition: EClass.cs:43
static Player player
Definition: EClass.cs:13
static CoreDebug debug
Definition: EClass.cs:49
static SoundManager Sound
Definition: EClass.cs:47
static UI ui
Definition: EClass.cs:17
static GameSetting setting
Definition: EClass.cs:35
void Initialize(EloMap _elomap)
Definition: EloMapActor.cs:28
void OnActivateZone()
Definition: GameIO.cs:11
BalanceSetting balance
Definition: GameSetting.cs:309
bool isLoading
Definition: Game.cs:242
int countLoadedMaps
Definition: Game.cs:236
Zone activeZone
Definition: Game.cs:252
ZoneTransition transition
Definition: GlobalData.cs:6
Definition: Guild.cs:2
void RefreshDevelopment()
Definition: Guild.cs:95
static Guild GetCurrentGuild()
Definition: Guild.cs:74
int Size
Definition: MapBounds.cs:20
string idSceneProfile
Definition: MapConfig.cs:8
void Apply()
Definition: MapSubset.cs:60
static MapSubset Load(string id)
Definition: MapSubset.cs:33
Definition: Map.cs:13
new void ForeachCell(Action< Cell > action)
Definition: Map.cs:2346
Cell GetCell(int index)
Definition: Map.cs:887
IEnumerable< Card > Cards
Definition: Map.cs:135
void AddCardOnActivate(Card c)
Definition: Map.cs:783
void SetZone(Zone _zone)
Definition: Map.cs:181
List< Thing > things
Definition: Map.cs:49
byte[] TryLoadFile(string path, string s, int size)
Definition: Map.cs:535
Dictionary< int, int > backerObjs
Definition: Map.cs:67
List< Chara > deadCharas
Definition: Map.cs:46
int seed
Definition: Map.cs:19
RoomManager rooms
Definition: Map.cs:31
void SetReference()
Definition: Map.cs:195
void OnLoad()
Definition: Map.cs:708
void OnImport(ZoneExportData data)
Definition: Map.cs:714
List< Chara > serializedCharas
Definition: Map.cs:43
Cell[,] cells
Definition: Map.cs:85
MapConfig config
Definition: Map.cs:37
void Load(string path, bool import=false, PartialMap partial=null)
Definition: Map.cs:546
List< Chara > charas
Definition: Map.cs:81
void RefreshAllTiles()
Definition: Map.cs:2108
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
List< Chara > listCarryoverMap
Definition: Player.cs:1223
HashSet< int > doneBackers
Definition: Player.cs:1073
bool simulatingZone
Definition: Player.cs:1179
Definition: Point.cs:9
Point Set(int _x, int _z)
Definition: Point.cs:503
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
bool IsValid
Definition: Point.cs:88
Definition: Rand.cs:4
static void InitBytes(int a)
Definition: Rand.cs:11
Definition: Region.cs:7
EloMap elomap
Definition: Region.cs:8
List< Room > listRoom
Definition: RoomManager.cs:13
Definition: Room.cs:4
bool HasRoof
Definition: Room.cs:29
static SceneProfile Load(string id)
Definition: SceneProfile.cs:18
void RebuildActorEx()
Definition: Scene.cs:990
EloMapActor elomapActor
Definition: Scene.cs:101
SourceBacker backers
string idCurrentSubset
Definition: Spatial.cs:28
virtual bool IsRegion
Definition: Spatial.cs:515
virtual string Name
Definition: Spatial.cs:509
bool isImported
Definition: Spatial.cs:47
int y
Definition: Spatial.cs:106
int x
Definition: Spatial.cs:94
void ApplyLocalReplace(string path)
Definition: Thing.cs:8
static void Reserve(string idStep, Action onBeforePlay=null)
Definition: Tutorial.cs:55
bool IsRaining
Definition: Weather.cs:117
Weather weather
Definition: World.cs:12
List< ZonePreEnterEvent > listPreEnter
virtual void OnGenerateMap()
Definition: ZoneInstance.cs:32
virtual void Execute()
bool isSimulating
Definition: Zone.cs:75
void RefreshElectricity()
Definition: Zone.cs:2922
ZoneExportData Import(string path)
Definition: Zone.cs:3197
void Generate()
Definition: Zone.cs:2373
ZoneEventManager events
Definition: Zone.cs:40
static string forceSubset
Definition: Zone.cs:27
virtual bool RegenerateOnEnter
Definition: Zone.cs:265
static int okaerinko
Definition: Zone.cs:31
virtual string idExport
Definition: Zone.cs:150
virtual bool MakeTownProperties
Definition: Zone.cs:245
virtual void OnRegenerate()
Definition: Zone.cs:1158
bool isStarted
Definition: Zone.cs:73
virtual string pathExport
Definition: Zone.cs:127
MapSubset subset
Definition: Zone.cs:65
Zone GetTopZone()
Definition: Zone.cs:1948
virtual string IDSubset
Definition: Zone.cs:212
ZoneBlueprint bp
Definition: Zone.cs:67
void RefreshBGM()
Definition: Zone.cs:3050
void Deactivate()
Definition: Zone.cs:1634
void SpawnLostItems()
Definition: Zone.cs:3789
void AddGlobalCharasOnActivate()
Definition: Zone.cs:1553
bool IsInstance
Definition: Zone.cs:489
void ClearZones(Zone current=null)
Definition: Zone.cs:1917
void OnVisit()
Definition: Zone.cs:1059
virtual bool IsTown
Definition: Zone.cs:223
void RainWater()
Definition: Zone.cs:3435
virtual bool UseFog
Definition: Zone.cs:391
virtual string IDAmbience
Definition: Zone.cs:178
void RemoveCard(Card t)
Definition: Zone.cs:2032
void RefreshHat()
Definition: Zone.cs:1049
void ModInfluence(int a)
Definition: Zone.cs:3647
virtual void OnGenerateMap()
Definition: Zone.cs:2575
static bool forceRegenerate
Definition: Zone.cs:25
bool IsPCFaction
Definition: Zone.cs:473
virtual bool IsUnderwater
Definition: Zone.cs:269
virtual bool ShouldRegenerate
Definition: Zone.cs:377
string NameWithLevel
Definition: Zone.cs:429
ZoneInstance instance
Definition: Zone.cs:55
virtual bool RevealRoom
Definition: Zone.cs:393
bool IsLoaded
Definition: Zone.cs:491
void RefreshListCitizen()
Definition: Zone.cs:3605
virtual int ExpireDays
Definition: Zone.cs:171
virtual void OnVisitNewMapOrRegenerate()
Definition: Zone.cs:1178

References EClass._map, Game.activeZone, ActPlan.List.Add(), Card.AddEditorTag(), AddGlobalCharasOnActivate(), TextureManager.ApplyLocalReplace(), Map.backerObjs, SourceManager.backers, GameSetting.balance, bp, Map.cells, Map.charas, ClearZones(), Core.config, EClass.core, Game.countLoadedMaps, World.date, GameSetting.BalanceSetting.dateRegenerateZone, Deactivate(), Map.deadCharas, Debug, Spatial.destryoed, Player.doneBackers, Region.elomap, Scene.elomapActor, ExpireDays, forceRegenerate, forceSubset, Map.ForeachCell(), EClass.game, Generate(), Map.GetCell(), Date.GetRaw(), GetTopZone(), Chara.global, SourceBacker.Row.id, Spatial.idCurrentSubset, idExport, IDSubset, CoreConfig.Test.ignoreBackerDestoryFlag, Import(), EloMapActor.Initialize(), instance, Date.IsExpired(), Spatial.isImported, IsInstance, IsLoaded, Card.isNPCProperty, IsPCFaction, Spatial.IsRegion, Cell.isSeen, isSimulating, isStarted, Point.IsValid, item, Map.Load(), map, Spatial.Name, NameWithLevel, OnGenerateMap(), ZoneInstance.OnGenerateMap(), Map.OnImport(), ZoneExportData.orgMap, Chara.orgPos, pathExport, pathTemp, EClass.pc, EClass.player, Card.pos, RegenerateOnEnter, RemoveCard(), Msg.Say(), EClass.scene, Map.serializedCharas, Point.Set(), Map.SetReference(), EClass.setting, Map.SetZone(), ShouldRegenerate, Player.simulatingZone, MapBounds.Size, EClass.sources, subset, CoreConfig.test, Core.textures, Card.things, Map.things, Card.trait, GlobalData.transition, Map.TryLoadFile(), EClass.ui, UnloadMap(), UseFog, EClass.world, and CorePath.ZoneSave.

Referenced by Scene.Init(), and HotItemContext.Show().

◆ AddCard() [1/3]

Card Zone.AddCard ( Card  t)
inline

Definition at line 1997 of file Zone.cs.

1998 {
1999 return AddCard(t, 0, 0);
2000 }
Card AddCard(Card t, Point point)
Definition: Zone.cs:1992

◆ AddCard() [2/3]

Card Zone.AddCard ( Card  t,
int  x,
int  z 
)
inline

Definition at line 2002 of file Zone.cs.

2003 {
2004 if (t.parent != null)
2005 {
2006 t.parent.RemoveCard(t);
2007 }
2008 t.parent = this;
2009 Chara chara = t.Chara;
2010 if (chara != null)
2011 {
2012 chara.currentZone = this;
2013 chara.SetAI(new NoGoal());
2014 }
2015 if (IsActiveZone)
2016 {
2017 map.OnCardAddedToZone(t, x, z);
2018 if (isStarted && t.isThing && t.placeState == PlaceState.roaming && !ignoreSpawnAnime)
2019 {
2020 t.PlayAnimeLoot();
2021 }
2022 ignoreSpawnAnime = false;
2023 }
2024 if (chara != null && EClass.player != null && !chara.hasSpawned)
2025 {
2026 EClass.player.codex.AddSpawn(chara.id);
2027 chara.hasSpawned = true;
2028 }
2029 return t;
2030 }
PlaceState
Definition: PlaceState.cs:2
virtual bool isThing
Definition: Card.cs:2082
virtual Chara Chara
Definition: Card.cs:2071
ICardParent parent
Definition: Card.cs:56
bool hasSpawned
Definition: Card.cs:903
PlaceState placeState
Definition: Card.cs:84
void PlayAnimeLoot()
Definition: Card.cs:6347
void AddSpawn(string id)
Definition: CodexManager.cs:65
void OnCardAddedToZone(Card t, int x, int z)
Definition: Map.cs:806
Definition: NoGoal.cs:4
CodexManager codex
Definition: Player.cs:1115
static bool ignoreSpawnAnime
Definition: Zone.cs:81
void RemoveCard(Card c)

References CodexManager.AddSpawn(), Card.Chara, Player.codex, Card.hasSpawned, Card.id, Card.isThing, Map.OnCardAddedToZone(), Card.parent, Card.placeState, Card.PlayAnimeLoot(), EClass.player, ICardParent.RemoveCard(), and Chara.SetAI().

◆ AddCard() [3/3]

Card Zone.AddCard ( Card  t,
Point  point 
)
inline

Definition at line 1992 of file Zone.cs.

1993 {
1994 return AddCard(t, point.x, point.z);
1995 }

References Point.x, and Point.z.

Referenced by InvOwnerChaosOffering._OnProcess(), TraitShrine._OnUse(), Game.AddAdventurers(), ZoneUtil.AddMerchant(), Quest.AddResident(), Chara.ApplyDeathPenalty(), RecipeCard.Build(), Map.Burn(), AI_Shopping.Buy(), ClaimZone(), TraitCrafter.Craft(), Card.Die(), Chara.Die(), Chara.DropHeld(), Player.DropReward(), Chara.DropThing(), ZonePreEnterBout.Execute(), ZonePreEnterDigStairs.Execute(), ZonePreEnterEncounter.Execute(), DramaOutcome.fiama_pet(), CoreDebug.Fix_LostCore(), Generate(), Zone_SnowGrave.GenerateGrave(), FortuneRollData.GetPrize(), GrowSystem.Grow(), TraitFoodEggFertilized.Incubate(), Chara.MakeGrave(), SurvivalManager.MeteorThing(), Map.MineBlock(), Chara.MoveHome(), Chara.MoveZone(), Zone_Void.OnActivate(), Region.OnAdvanceHour(), Zone_WindRest.OnAfterSimulate(), Zone_Nymelle.OnBeforeSimulate(), TaskHarvest.OnCreateProgress(), TaskBuild.OnDestroy(), SurvivalManager.OnExpandFloor(), Zone_DungeonFairy.OnGenerateMap(), Zone_DungeonMino.OnGenerateMap(), Zone_DungeonPuppy.OnGenerateMap(), Zone_TestRoom.OnGenerateMap(), MapGenDungen.OnGenerateTerrain(), GrowSystemTree.OnHitFail(), ZoneEventSiege.OnKill(), SurvivalManager.OnMineWreck(), AI_Fish.ProgressFish.OnProgressComplete(), QuestCraft.OnProgressComplete(), TaskMoveInstalled.OnProgressComplete(), TraitDiary.OnRead(), QuestEscort.OnStart(), TraitFarmChest.OnUse(), TraitGiftNewYear.OnUse(), TraitStairsLocked.OnUse(), ZoneEventDefenseGame.OnVisit(), DramaManager.ParseLine(), ActRestrain.Perform(), HotItemActionSleep.Perform(), GrowSystem.Perish(), Chara.Pick(), Chara.PickOrDrop(), Zone_Dungeon.PlaceRail(), GenRoom.Populate(), ActEffect.Proc(), ActEffect.ProcAt(), FactionBranch.PutInMailBox(), DramaOutcome.PutOutFire(), TaskCraft.PutOutResources(), DramaOutcome.QuestExploration_AfterCrystal(), CoreDebug.QuickStart(), TraitBaseSpellbook.ReadFailEffect(), FactionBranch.Recruit(), Religion.Reforge(), Map.ReloadRoom(), SerializedCards.Restore(), Revive(), Chara.Revive(), AI_Craft_Snowman.Run(), AI_Idle.Run(), AI_Slaughter.Run(), AI_UseCrafter.Run(), Meeting.SetChara(), Chara.SetGlobal(), ZoneEventMusic.Spawn(), CoreDebug.Spawn(), SpawnAltar(), Card.SpawnLoot(), SpawnLostItems(), SurvivalManager.StartRaid(), ActThrow.Throw(), TryAddThing(), BiomeProfile.ClusterThing.TryCreate(), Chara.TryDropBossLoot(), TryGenerateBigDaddy(), TryGenerateShrine(), Religion.TryGetGift(), Chara.TryHoldCard(), Chara.TryPutShared(), AI_Shopping.TryRestock(), Map.TryShatter(), Map.TrySmoothPick(), TrySpawnFollower(), DramaOutcome.Tutorial1(), TraitFoodEgg.Update(), TraitSpotBiome.Update(), CoreDebug.UpdateInput(), Chara.Vomit(), and ActEffect.Wish().

◆ AddCardSplinkle()

Card Zone.AddCardSplinkle ( Card  t,
Point  center,
int  radius = 4 
)
inline

Definition at line 1957 of file Zone.cs.

1958 {
1959 Point point = new Point(center);
1960 for (int i = 0; i < 1000; i++)
1961 {
1962 point.x = center.x + EClass.rnd(radius) - EClass.rnd(radius);
1963 point.z = center.z + EClass.rnd(radius) - EClass.rnd(radius);
1964 if (point.IsValid && !point.IsBlocked && !point.HasChara)
1965 {
1966 return AddCard(t, point);
1967 }
1968 }
1969 return AddCard(t, center);
1970 }
bool IsBlocked
Definition: Point.cs:363
bool HasChara
Definition: Point.cs:238

References Point.HasChara, Point.IsBlocked, Point.IsValid, and EClass.rnd().

Referenced by ZoneUtil.AddBandits().

◆ AddChara() [1/2]

Chara Zone.AddChara ( string  id,
int  x,
int  z 
)
inline

Definition at line 1972 of file Zone.cs.

1973 {
1974 return AddCard(CharaGen.Create(id), x, z) as Chara;
1975 }
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17

References CharaGen.Create().

Referenced by DramaOutcome.event_az(), DramaOutcome.event_swordkeeper(), Zone_Specwing.OnActivate(), Zone_Nymelle.OnBeforeSimulate(), DramaOutcome.QuestDefense_0(), and DramaOutcome.QuestDefense_1().

◆ AddChara() [2/2]

Chara Zone.AddChara ( string  id,
Point  p 
)
inline

Definition at line 1977 of file Zone.cs.

1978 {
1979 return AddChara(id, p.x, p.z);
1980 }
Chara AddChara(string id, int x, int z)
Definition: Zone.cs:1972

References Point.x, and Point.z.

◆ AddGlobalCharasOnActivate()

void Zone.AddGlobalCharasOnActivate ( )
inline

Definition at line 1553 of file Zone.cs.

1554 {
1555 Point spawnPosPC = null;
1556 if (EClass.pc.currentZone == this)
1557 {
1558 spawnPosPC = GetSpawnPos(EClass.pc);
1559 }
1560 if (spawnPosPC == null)
1561 {
1562 spawnPosPC = map.GetCenterPos();
1563 }
1564 if (spawnPosPC.IsValid && EClass.pc.global.transition != null && spawnPosPC.HasBlock)
1565 {
1566 spawnPosPC = spawnPosPC.GetNearestPoint();
1567 }
1568 spawnPosPC = spawnPosPC.Clamp(useBounds: true).GetNearestPoint();
1569 foreach (Chara c in EClass.game.cards.globalCharas.Values)
1570 {
1571 if (c.currentZone != this)
1572 {
1573 continue;
1574 }
1575 if (c.parent is Chara)
1576 {
1577 Chara chara = c.parent as Chara;
1578 c.currentZone = chara.currentZone;
1579 }
1580 else
1581 {
1582 if (c.isDead)
1583 {
1584 continue;
1585 }
1586 if (c.isRestrained && c.currentZone == EClass.pc.currentZone && (!c.pos.IsValid || c.pos.FindThing<TraitShackle>() == null))
1587 {
1588 c.isRestrained = false;
1589 }
1590 if (c.global.transition != null)
1591 {
1592 Point pos = (c.IsPC ? spawnPosPC : (c.IsPCParty ? spawnPosPC.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: true, ignoreCenter: true) : GetSpawnPos(c)));
1593 if (c.IsPCParty && !c.IsPC)
1594 {
1595 if (c.host == EClass.pc)
1596 {
1597 pos.Set(spawnPosPC);
1598 }
1599 else if (pos.Equals(spawnPosPC) || !PathManager.Instance.IsPathClear(spawnPosPC, pos, c, 5))
1600 {
1601 c.pos.Set(spawnPosPC);
1602 if (!spawnPosPC.ForeachNearestPoint(delegate(Point p)
1603 {
1604 if (PathManager.Instance.IsPathClear(spawnPosPC, p, c, 10) && !p.Equals(spawnPosPC))
1605 {
1606 pos.Set(p);
1607 return true;
1608 }
1609 return false;
1610 }, allowBlock: false, EClass.pc.party.members.Count >= 12, allowInstalled: true, ignoreCenter: true, EClass._zone.IsRegion ? 2 : 6))
1611 {
1612 pos.Set(spawnPosPC);
1613 }
1614 }
1615 }
1616 c.pos.Set(pos);
1617 c.global.transition = null;
1618 }
1619 map.charas.Add(c);
1621 }
1622 }
1624 {
1625 Point nearestPoint = spawnPosPC.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: true, ignoreCenter: true);
1626 item.enemy = null;
1627 item.pos.Set(nearestPoint);
1628 map.charas.Add(item);
1630 }
1632 }
GlobalCharaList globalCharas
Definition: CardManager.cs:46
bool isRestrained
Definition: Card.cs:567
override bool IsPC
Definition: Chara.cs:614
Chara host
Definition: Chara.cs:33
Zone currentZone
Definition: Chara.cs:257
bool isDead
Definition: Chara.cs:391
CardManager cards
Definition: Game.cs:156
Point GetCenterPos()
Definition: MapBounds.cs:52
static PathManager Instance
Definition: PathManager.cs:16
bool IsPathClear(Point origin, Point dest, IPathfindWalker walker, int radius)
Definition: PathManager.cs:47
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false, int minRadius=0)
Definition: Point.cs:619
bool Equals(int _x, int _z)
Definition: Point.cs:960
bool ForeachNearestPoint(Func< Point, bool > endFunc, bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false, int maxRange=30)
Definition: Point.cs:691
Point Clamp(bool useBounds=false)
Definition: Point.cs:1008
bool HasBlock
Definition: Point.cs:141
Thing FindThing(Func< Thing, bool > func)
Definition: Point.cs:1140
Point GetSpawnPos(Chara c, ZoneTransition.EnterState destState=ZoneTransition.EnterState.Auto)
Definition: Zone.cs:1350

References Map.AddCardOnActivate(), Game.cards, Map.charas, Point.Clamp(), Chara.currentZone, Point.Equals(), Point.FindThing(), EClass.game, MapBounds.GetCenterPos(), Point.GetNearestPoint(), Chara.global, CardManager.globalCharas, Point.HasBlock, Chara.host, PathManager.Instance, Chara.isDead, PathManager.IsPathClear(), Chara.IsPC, Chara.IsPCParty, Card.isRestrained, Point.IsValid, item, Player.listCarryoverMap, Card.parent, EClass.pc, EClass.player, Card.pos, Point.Set(), and GlobalData.transition.

Referenced by Activate().

◆ AddRandomVisitor()

Chara Zone.AddRandomVisitor ( bool  guest = false)
inline

Definition at line 3331 of file Zone.cs.

3332 {
3333 Trait random = map.Installed.traits.GetTraitSet<TraitSpotExit>().GetRandom();
3334 if (random == null)
3335 {
3336 return null;
3337 }
3338 Point point = random.GetPoint();
3339 Chara chara = null;
3340 if (guest)
3341 {
3342 Zone z = EClass.world.FindZone("wilds");
3343 chara = EClass.game.cards.ListGlobalChara(z).RandomItem();
3344 if (chara != null)
3345 {
3346 AddCard(chara, point);
3347 Msg.Say("guestArrive", chara);
3348 chara.visitorState = VisitorState.Arrived;
3349 }
3350 }
3351 else
3352 {
3353 chara = CharaGen.CreateFromFilter("c_wilds");
3354 AddCard(chara, point);
3355 chara.goalListType = GoalListType.Enemy;
3356 }
3357 return chara;
3358 }
GoalListType
Definition: GoalListType.cs:2
VisitorState
Definition: VisitorState.cs:2
List< Chara > ListGlobalChara(Zone z)
Definition: CardManager.cs:103
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
Definition: CharaGen.cs:22
PropsInstalled Installed
Definition: Map.cs:123
TraitManager traits
Definition: Props.cs:18
Zone FindZone(int lv)
Definition: Spatial.cs:728
TraitSet GetTraitSet(Type t)
Definition: TraitManager.cs:94
Definition: Trait.cs:7
Point GetPoint()
Definition: Trait.cs:756
Definition: Zone.cs:12

References Game.cards, CharaGen.CreateFromFilter(), Spatial.FindZone(), EClass.game, Trait.GetPoint(), TraitManager.GetTraitSet(), guest, Map.Installed, CardManager.ListGlobalChara(), Msg.Say(), Props.traits, and EClass.world.

◆ AddThing() [1/2]

Card Zone.AddThing ( string  id,
int  x,
int  z 
)
inline

◆ AddThing() [2/2]

Card Zone.AddThing ( string  id,
Point  p 
)
inline

Definition at line 1987 of file Zone.cs.

1988 {
1989 return AddThing(id, p.x, p.z);
1990 }
Card AddThing(string id, int x, int z)
Definition: Zone.cs:1982

References Point.x, and Point.z.

◆ ApplyBackerPet()

void Zone.ApplyBackerPet ( bool  draw)
inline

Definition at line 3834 of file Zone.cs.

3835 {
3836 bool flag = this is Zone_Yowyn && base.lv == -1;
3837 IList<SourceBacker.Row> list = EClass.sources.backers.listPet.Copy();
3838 list.Shuffle();
3840 {
3841 list.ForeachReverse(delegate(SourceBacker.Row a)
3842 {
3843 if (EClass.player.doneBackers.Contains(a.id))
3844 {
3845 list.Remove(a);
3846 }
3847 });
3848 }
3849 foreach (Chara chara in EClass._map.charas)
3850 {
3851 if (chara.IsGlobal || chara.IsMinion)
3852 {
3853 continue;
3854 }
3855 if (chara.isBackerContent)
3856 {
3857 if (chara.sourceBacker.isStatic != 0)
3858 {
3859 continue;
3860 }
3861 if (chara.id != "follower")
3862 {
3863 chara.RemoveBacker();
3864 }
3865 }
3866 if ((flag && chara.race.id != "cat") || (!EClass.debug.enable && EClass.rnd((!flag) ? (draw ? 3 : 10) : (draw ? 1 : 2)) != 0))
3867 {
3868 continue;
3869 }
3870 foreach (SourceBacker.Row item in list)
3871 {
3872 if (item.chara == chara.id)
3873 {
3874 chara.ApplyBacker(item.id);
3875 list.Remove(item);
3876 break;
3877 }
3878 }
3879 }
3880 }
SourceBacker.Row sourceBacker
Definition: Card.cs:929
void RemoveBacker()
Definition: Card.cs:7207
void ApplyBacker(int bid)
Definition: Card.cs:7171
bool isBackerContent
Definition: Card.cs:926
override bool IsGlobal
Definition: Chara.cs:612
override bool IsMinion
Definition: Chara.cs:629
SourceRace.Row race
Definition: Chara.cs:466
List< Row > listPet
Definition: SourceBacker.cs:76

References SourceManager.backers, Core.config, EClass.core, CoreConfig.Test.ignoreBackerDestoryFlag, SourceBacker.listPet, EClass.sources, and CoreConfig.test.

Referenced by Zone_Field.OnGenerateMap(), and Zone_Yowyn.OnVisitNewMapOrRegenerate().

◆ CanDestroy()

bool Zone.CanDestroy ( )
inline

Definition at line 1797 of file Zone.cs.

1798 {
1800 {
1801 return false;
1802 }
1803 if (IsInstance)
1804 {
1805 return true;
1806 }
1807 bool flag = false;
1808 switch (id)
1809 {
1810 case "cave_dragon":
1811 if (!(this is Zone_DungeonDragon))
1812 {
1813 flag = true;
1814 }
1815 break;
1816 case "cave_yeek":
1817 if (!(this is Zone_DungeonYeek))
1818 {
1819 flag = true;
1820 }
1821 break;
1822 case "cave_mino":
1823 if (!(this is Zone_DungeonMino))
1824 {
1825 flag = true;
1826 }
1827 break;
1828 case "cave_dead":
1829 if (!(this is Zone_DungeonDead))
1830 {
1831 flag = true;
1832 }
1833 break;
1834 }
1835 Zone topZone = GetTopZone();
1836 if (!flag)
1837 {
1838 if (base.dateExpire == 0 || !EClass.world.date.IsExpired(base.dateExpire))
1839 {
1840 return false;
1841 }
1842 if (!base.isRandomSite && !(this is Zone_Field) && (topZone == null || topZone == this || topZone.FindDeepestZone() == this))
1843 {
1844 return false;
1845 }
1846 }
1847 if (EClass.pc.currentZone == null || EClass.pc.currentZone is Zone_Tent || topZone == EClass.pc.currentZone.GetTopZone() || (EClass.player.nextZone != null && topZone == EClass.player.nextZone.GetTopZone()))
1848 {
1849 return false;
1850 }
1852 {
1854 if (zone != null && zone.GetTopZone() == this)
1855 {
1856 return false;
1857 }
1858 }
1859 return true;
1860 }
SpatialManager spatials
Definition: Game.cs:153
Zone nextZone
Definition: Player.cs:1227
Zone Find(string id)
Zone FindDeepestZone()
Definition: Spatial.cs:715

References Chara.currentZone, World.date, SpatialManager.Find(), Spatial.FindDeepestZone(), EClass.game, GetTopZone(), instance, Date.IsExpired(), IsInstance, Player.nextZone, EClass.pc, EClass.player, Player.simulatingZone, Game.spatials, ZoneInstance.uidZone, and EClass.world.

Referenced by Region.OnActivate().

◆ ClaimZone()

void Zone.ClaimZone ( bool  debug = false,
Point  pos = null 
)
inline

Definition at line 1727 of file Zone.cs.

1728 {
1731 branch = new FactionBranch();
1732 branch.OnCreate(this);
1733 if (base.icon == 0)
1734 {
1735 base.icon = 332;
1736 }
1737 instance = null;
1738 base.dateExpire = 0;
1740 Register();
1741 foreach (Thing thing in map.things)
1742 {
1743 thing.isNPCProperty = false;
1744 }
1747 if (debug)
1748 {
1749 for (int i = 0; i < 7; i++)
1750 {
1751 Chara chara = CharaGen.CreateFromFilter("c_neutral");
1752 EClass._zone.AddCard(chara, EClass._map.bounds.GetRandomPoint().GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: false));
1753 branch.AddMemeber(chara);
1754 }
1755 }
1756 else
1757 {
1758 Msg.Say("claimedZone");
1759 EClass.Branch.Log("claimedZone");
1760 EClass.Sound.Play("jingle_embark");
1761 EClass.pc.PlaySound("build");
1762 if (pos == null)
1763 {
1764 pos = EClass.pc.pos.GetNearestPoint(allowBlock: false, allowChara: true, allowInstalled: false);
1765 }
1766 Effect.Get("aura_heaven").Play(pos);
1767 EClass._zone.AddCard(ThingGen.Create("core_zone"), pos).SetPlaceState(PlaceState.installed);
1768 }
1769 base.idPrefix = 0;
1771 {
1772 EClass.player.spawnZone = EClass._zone;
1773 }
1775 {
1776 EClass._zone.SetBGM(new List<int> { 41, 90, 44, 43 });
1778 }
1779 }
void SetPlaceState(PlaceState newState, bool byPlayer=false)
Definition: Card.cs:3776
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6318
Faction faction
Definition: Chara.cs:429
static Zone _zone
Definition: EClass.cs:21
Definition: Effect.cs:7
static Effect Get(Effect original)
Definition: Effect.cs:85
void Play(float delay, Point from, float fixY=0f, Point to=null, Sprite sprite=null)
Definition: Effect.cs:100
void SetZone(int gx, int gy, Zone z, bool updateMesh=false)
Definition: EloMap.cs:234
void OnCreate(Zone zone)
string Log(string idLang, string ref1=null, string ref2=null, string ref3=null, string ref4=null)
Point GetRandomPoint()
Definition: MapBounds.cs:97
void RevealAll(bool reveal=true)
Definition: Map.cs:905
MapBounds bounds
Definition: Map.cs:52
EloMap elomap
Definition: Scene.cs:149
void SetInt(int id, int value=0)
Definition: Spatial.cs:580
void Register()
Definition: Spatial.cs:630
void RefreshPlaylist()
Definition: Zone.cs:3034
void SetBGM(List< int > ids, bool refresh=true, float fadeDuration=0f)
Definition: Zone.cs:2992

References EClass._map, EClass._zone, AddCard(), FactionBranch.AddMemeber(), Map.bounds, EClass.Branch, ThingGen.Create(), CharaGen.CreateFromFilter(), World.date, Scene.elomap, Chara.faction, EClass.game, Effect.Get(), Point.GetNearestPoint(), MapBounds.GetRandomPoint(), Date.GetRaw(), FactionBranch.Log(), FactionBranch.OnClaimZone(), FactionBranch.OnCreate(), EClass.pc, Effect.Play(), Card.PlaySound(), Card.pos, RefreshPlaylist(), Map.RevealAll(), Msg.Say(), EClass.scene, SetBGM(), Card.SetPlaceState(), EloMap.SetZone(), EClass.Sound, Game.StartZone, Map.things, EClass.world, Spatial.x, and Spatial.y.

Referenced by SurvivalManager.OnExpandFloor(), TraitDeed.OnRead(), DramaOutcome.QuestExploration_MeetFarris2(), and CoreDebug.QuickStart().

◆ ClearZones()

void Zone.ClearZones ( Zone  current = null)
inline

Definition at line 1917 of file Zone.cs.

1918 {
1919 if (map != null)
1920 {
1921 UnloadMap();
1922 }
1923 base.isGenerated = false;
1924 Zone topZone = GetTopZone();
1925 if (topZone != this)
1926 {
1927 topZone.ClearZones(this);
1928 return;
1929 }
1930 children.ForeachReverse(delegate(Spatial c)
1931 {
1932 if (c != current)
1933 {
1934 c.Destroy();
1935 }
1936 });
1937 }
virtual void Destroy()
Definition: Spatial.cs:690
List< Spatial > children
Definition: Spatial.cs:37

References ClearZones(), and Spatial.Destroy().

Referenced by Activate(), and ClearZones().

◆ CountMinions()

int Zone.CountMinions ( Chara  c)
inline

Definition at line 3766 of file Zone.cs.

3767 {
3768 int num = 0;
3769 foreach (Chara chara in EClass._map.charas)
3770 {
3771 if (chara.c_uidMaster == c.uid && chara.c_minionType == MinionType.Default)
3772 {
3773 num++;
3774 }
3775 }
3776 return num;
3777 }
MinionType
Definition: MinionType.cs:2
MinionType c_minionType
Definition: Card.cs:989

References EClass._map, Card.c_minionType, Card.c_uidMaster, and Map.charas.

Referenced by WidgetStatsBar.Build(), Chara.CanBeTempAlly(), ActEffect.ProcAt(), and GoalCombat.TryUseAbility().

◆ CreateBP()

void Zone.CreateBP ( )
inline

Definition at line 2361 of file Zone.cs.

2362 {
2363 bp = new ZoneBlueprint();
2364 bp.Create();
2365 bp.genSetting.seed = base.Seed;
2366 OnCreateBP();
2367 }
virtual void OnCreateBP()
Definition: Zone.cs:2369

References ZoneBlueprint.Create().

◆ CreatePlaylist()

Playlist Zone.CreatePlaylist ( ref List< int >  list,
Playlist  mold = null 
)
inline

Definition at line 3090 of file Zone.cs.

3091 {
3092 Playlist playlist = EClass.Sound.plBlank.Instantiate();
3093 if (list.Count == 0 && (bool)mold)
3094 {
3095 list = mold.ToInts();
3096 playlist.shuffle = mold.shuffle;
3097 playlist.minSwitchTime = mold.minSwitchTime;
3098 playlist.nextBGMOnSwitch = mold.nextBGMOnSwitch;
3099 playlist.ignoreLoop = mold.ignoreLoop;
3100 playlist.keepBGMifSamePlaylist = mold.keepBGMifSamePlaylist;
3101 playlist.name = mold.name;
3102 }
3103 foreach (int item in list)
3104 {
3105 playlist.list.Add(new Playlist.Item
3106 {
3107 data = EClass.core.refs.dictBGM.TryGetValue(item, 1)
3108 });
3109 }
3110 return playlist;
3111 }

References item, and EClass.Sound.

◆ Deactivate()

void Zone.Deactivate ( )
inline

Definition at line 1634 of file Zone.cs.

1635 {
1636 if (!IsUserZone && !IsPCFaction && map != null)
1637 {
1638 List<Thing> list = new List<Thing>();
1639 foreach (Thing thing in map.things)
1640 {
1641 if (thing.rarity >= Rarity.Artifact && thing.HasTag(CTAG.godArtifact))
1642 {
1643 list.Add(thing);
1644 }
1645 }
1646 if (this is Zone_Tent)
1647 {
1648 foreach (Thing item in map.props.stocked.Things.Concat(map.props.roaming.Things))
1649 {
1650 if (item.IsContainer)
1651 {
1652 foreach (Thing thing2 in item.things)
1653 {
1654 if (thing2.trait is TraitTent)
1655 {
1656 list.Add(thing2);
1657 }
1658 }
1659 }
1660 if (item.trait is TraitTent)
1661 {
1662 list.Add(item);
1663 }
1664 }
1665 }
1666 if (list.Count > 0)
1667 {
1668 Msg.Say("pick_valuable");
1669 foreach (Thing item2 in list)
1670 {
1671 Msg.Say("pick_valuable2", item2);
1672 EClass.pc.AddCard(item2);
1673 }
1674 }
1675 }
1676 base.isPeace = false;
1678 if (IsPCFaction)
1679 {
1680 foreach (Chara member in branch.members)
1681 {
1682 member.ValidateWorks();
1683 }
1684 }
1685 EClass.game.lastActiveZone = EClass.game.activeZone;
1686 base.lastActive = EClass.world.date.GetRaw();
1687 map.OnDeactivate();
1688 EClass.scene.Clear();
1689 EClass.game.activeZone = null;
1690 if (IsInstance)
1691 {
1692 UnloadMap();
1693 base.isGenerated = false;
1694 }
1695 if (forceRegenerate)
1696 {
1697 UnloadMap();
1698 }
1699 OnDeactivate();
1700 }
Rarity
Definition: Rarity.cs:2
Card AddCard(Card c)
Definition: Card.cs:3113
Rarity rarity
Definition: Card.cs:315
bool HasTag(CTAG tag)
Definition: Card.cs:2598
void ValidateWorks()
Definition: Chara.cs:9240
void OnDeactivate()
Definition: Map.cs:205
PropsManager props
Definition: Map.cs:91
PropsRoaming roaming
Definition: PropsManager.cs:10
PropsStocked stocked
Definition: PropsManager.cs:6
List< Thing > Things
Definition: Props.cs:37
void Clear()
Definition: Scene.cs:353
virtual void OnBeforeDeactivate()
Definition: Zone.cs:1166
virtual bool IsUserZone
Definition: Zone.cs:271
virtual void OnDeactivate()
Definition: Zone.cs:1170

References Game.activeZone, Card.AddCard(), Scene.Clear(), World.date, EClass.game, Date.GetRaw(), Card.HasTag(), item, FactionBranch.members, Map.OnDeactivate(), EClass.pc, Map.props, Card.rarity, PropsManager.roaming, Msg.Say(), EClass.scene, PropsManager.stocked, Map.things, Props.Things, Card.trait, Chara.ValidateWorks(), and EClass.world.

Referenced by Activate().

◆ Destroy()

override void Zone.Destroy ( )
inlinevirtual

Reimplemented from Spatial.

Definition at line 1898 of file Zone.cs.

1899 {
1900 children.ForeachReverse(delegate(Spatial z)
1901 {
1902 z.Destroy();
1903 });
1904 if (map != null)
1905 {
1906 UnloadMap();
1907 }
1908 if (parent != null && parent.IsRegion && instance == null)
1909 {
1910 EClass.scene.elomap.SetZone(base.x, base.y, null, updateMesh: true);
1911 }
1912 EClass.game.spatials.Remove(this);
1913 destryoed = true;
1914 base.isGenerated = false;
1915 }
void Remove(Spatial s)
Spatial parent
Definition: Spatial.cs:10

References Spatial.Destroy(), Scene.elomap, EClass.game, SpatialManager.Remove(), EClass.scene, EloMap.SetZone(), and Game.spatials.

◆ Evalue() [1/2]

int Zone.Evalue ( int  ele)
inline

Definition at line 527 of file Zone.cs.

528 {
529 return elements.Value(ele);
530 }
int Value(int ele)
ElementContainerZone elements
Definition: Zone.cs:43

References elements, and ElementContainer.Value().

Referenced by TraitWrench.IsValidTarget().

◆ Evalue() [2/2]

int Zone.Evalue ( string  alias)
inline

Definition at line 532 of file Zone.cs.

533 {
534 return elements.Value(EClass.sources.elements.alias[alias].id);
535 }
SourceElement elements

References SourceManager.elements, elements, EClass.sources, and ElementContainer.Value().

◆ Export() [1/2]

void Zone.Export ( )
inline

Definition at line 3289 of file Zone.cs.

3290 {
3292 string text = pathExport;
3293 IO.Copy(text, CorePath.ZoneSave + "Backup/");
3294 Export(text);
3295 Msg.Say("Exported Map:" + text);
3296 }
static void Copy(string fromPath, string toPath)
Definition: IO.cs:278
void ResetEditorPos()
Definition: Map.cs:357
void Export()
Definition: Zone.cs:3289

References EClass._map, Map.ResetEditorPos(), Msg.Say(), and CorePath.ZoneSave.

◆ Export() [2/2]

void Zone.Export ( string  path,
PartialMap  partial = null,
bool  usermap = false 
)
inline

Definition at line 3206 of file Zone.cs.

3207 {
3208 if (subset != null)
3209 {
3210 SE.Beep();
3211 return;
3212 }
3213 try
3214 {
3215 ZoneExportData zoneExportData = new ZoneExportData
3216 {
3217 name = name,
3218 usermap = usermap
3219 };
3221 if (!map.config.retainDecal)
3222 {
3224 }
3225 map.Save(IO.TempPath + "/", zoneExportData, partial);
3226 map.ExportMetaData(IO.TempPath + "/", Path.GetFileNameWithoutExtension(path), partial);
3227 if (partial == null)
3228 {
3229 IO.CopyDir(base.pathSave + "Texture Replace", IO.TempPath + "/Texture Replace");
3230 }
3231 IO.SaveFile(IO.TempPath + "/export", zoneExportData, compress: true);
3232 using (ZipFile zipFile = new ZipFile())
3233 {
3234 zipFile.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently;
3235 zipFile.AddDirectory(IO.TempPath);
3236 zipFile.Save(path);
3237 zipFile.Dispose();
3238 }
3240 }
3241 catch (Exception ex)
3242 {
3243 EClass.ui.Say(ex.Message + ":" + path);
3244 }
3245 }
static void CreateTempDirectory(string path=null)
Definition: IO.cs:379
static string TempPath
Definition: IO.cs:64
static void SaveFile(string path, object obj, bool compress=false, JsonSerializerSettings setting=null)
Definition: IO.cs:89
static void DeleteTempDirectory(string path=null)
Definition: IO.cs:384
bool retainDecal
Definition: MapConfig.cs:44
void ExportMetaData(string _path, string id, PartialMap partial=null)
Definition: Map.cs:720
void ClearRainAndDecal()
Definition: Map.cs:1526
string name
Definition: Spatial.cs:19

References Map.ClearRainAndDecal(), Map.config, Map.ExportMetaData(), MapConfig.retainDecal, Map.Save(), and EClass.ui.

Referenced by ZoneInspector.Export(), LayerUploader.ExportMap(), CoreDebug.InitDebugCommands(), and PartialMap.Save().

◆ ExportDialog()

void Zone.ExportDialog ( string  dir = null)
inline

Definition at line 3247 of file Zone.cs.

3248 {
3250 {
3251 string text = StandaloneFileBrowser.SaveFilePanel("Export Zone", dir ?? CorePath.ZoneSave, "new zone", "z");
3252 if (!string.IsNullOrEmpty(text))
3253 {
3254 Export(text);
3255 Msg.SayRaw("Exported Zone");
3256 }
3257 });
3258 }
void WaitForEndOfFrame(Action action)
Definition: BaseCore.cs:61
static string SayRaw(string text)
Definition: Msg.cs:113
static string SaveFilePanel(string title, string directory, string defaultName, string extension)

References EClass.core, if(), SFB.StandaloneFileBrowser.SaveFilePanel(), Msg.SayRaw(), BaseCore.WaitForEndOfFrame(), and CorePath.ZoneSave.

Referenced by CoreDebug.InitDebugCommands().

◆ FindChara() [1/2]

Chara Zone.FindChara ( int  uid)
inline

Definition at line 3118 of file Zone.cs.

3119 {
3120 return map.charas.Find((Chara c) => c.uid == uid);
3121 }
int uid
Definition: Spatial.cs:70

References Map.charas, and Card.uid.

◆ FindChara() [2/2]

Chara Zone.FindChara ( string  id)
inline

Definition at line 3113 of file Zone.cs.

3114 {
3115 return map.charas.Find((Chara c) => c.id == id);
3116 }

References Map.charas, and Card.id.

Referenced by DramaCustomSequence.Build(), and Zone_CurryRuinDungeon.OnGenerateMap().

◆ Generate()

void Zone.Generate ( )
inline

Definition at line 2373 of file Zone.cs.

2374 {
2375 base.isGenerated = true;
2376 if (bp == null)
2377 {
2378 CreateBP();
2379 }
2380 if (bp.map == null)
2381 {
2382 bp.GenerateMap(this);
2383 }
2384 map.SetZone(this);
2385 Zone_Field zone_Field = this as Zone_Field;
2386 if (IdBiome == "Sand" || IdBiome == "Water" || IsUnderwater)
2387 {
2388 int num = 1 + EClass.rnd((IdBiome == "Water") ? 3 : 2);
2389 for (int i = 0; i < num; i++)
2390 {
2391 Point randomSurface = EClass._map.bounds.GetRandomSurface(centered: false, walkable: true, allowWater: true);
2392 if (!randomSurface.HasObj && !randomSurface.HasThing)
2393 {
2394 Thing t = ThingGen.Create("pearl_oyster", new string[3] { "wood_birch", "poplar", "coralwood" }.RandomItem(), ContentLv);
2395 EClass._zone.AddCard(t, randomSurface).Install();
2396 }
2397 }
2398 num = 4 + EClass.rnd(5);
2399 for (int j = 0; j < num; j++)
2400 {
2401 Point randomSurface2 = EClass._map.bounds.GetRandomSurface(centered: false, walkable: true, allowWater: true);
2402 if (!randomSurface2.HasObj && !randomSurface2.HasThing && (IsUnderwater || randomSurface2.cell.IsTopWaterAndNoSnow || EClass.rnd(6) == 0))
2403 {
2404 EClass._zone.AddCard(ThingGen.Create("70", -1, ContentLv), randomSurface2);
2405 }
2406 }
2407 for (int k = 0; k < EClass.rnd(EClass.rnd(base.isBeach ? 5 : 3) + 1); k++)
2408 {
2409 Point randomSurface3 = EClass._map.bounds.GetRandomSurface(centered: false, walkable: true, allowWater: true);
2410 if (!randomSurface3.HasObj)
2411 {
2412 EClass._zone.AddCard(ThingGen.Create("bottle_message"), randomSurface3);
2413 }
2414 }
2415 }
2416 if (IsUnderwater)
2417 {
2418 for (int l = 0; l < 30 + EClass.rnd(30); l++)
2419 {
2420 SpawnMob(null, SpawnSetting.Fish());
2421 }
2422 Crawler crawler = Crawler.Create("pasture");
2423 int num2 = (EClass.debug.enable ? 3 : EClass.rnd(EClass.rnd(EClass.rnd(EClass.rnd(5) + 1) + 1) + 1));
2424 bool flag = this is Zone_Field;
2425 Thing seed = null;
2426 if (IsNefia)
2427 {
2428 int num3 = Mathf.Min(EClass._zone.DangerLv, EClass.pc.Evalue(286) * 2 / 3);
2429 if (num3 > 0)
2430 {
2432 Rand.SetSeed(EClass._zone.uid * 10 + num3);
2433 TraitSeed.LevelSeed(seed, (seed.trait as TraitSeed).row, num3);
2434 Rand.SetSeed();
2435 seed.elements.SetBase(2, EClass.curve(seed.encLV, 50, 10, 80));
2436 }
2437 }
2438 crawler.CrawlUntil(EClass._map, () => EClass._map.GetRandomPoint(), num2 + (flag ? 4 : 0), delegate(Crawler.Result r)
2439 {
2440 int num6 = 137;
2441 foreach (Point point in r.points)
2442 {
2443 if (!point.cell.isModified && !point.HasThing && !point.HasBlock && !point.HasObj)
2444 {
2445 map.SetObj(point.x, point.z, num6);
2446 int idx = 3 + ((EClass.rnd(3) == 0) ? 1 : 0) + ((EClass.rnd(3) == 0) ? (-1) : 0) + ((EClass.rnd(3) == 0) ? (-1) : 0);
2447 point.growth.SetStage(idx);
2448 if (seed != null)
2449 {
2450 EClass._map.AddPlant(point, seed);
2451 }
2452 }
2453 }
2454 return false;
2455 });
2456 crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(5) + 1) + 1 + (flag ? 20 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r)
2457 {
2458 int num5 = 136;
2459 foreach (Point point2 in r.points)
2460 {
2461 if (!point2.cell.isModified && !point2.HasThing && !point2.HasBlock && !point2.HasObj)
2462 {
2463 map.SetObj(point2.x, point2.z, num5, 1, EClass.rnd(4));
2464 }
2465 }
2466 return false;
2467 });
2468 crawler.CrawlUntil(tries: EClass.rnd(EClass.rnd(10) + 1) + 3 + (flag ? 40 : 0), map: EClass._map, onStart: () => EClass._map.GetRandomPoint(), canComplete: delegate(Crawler.Result r)
2469 {
2470 int idFloor = 121;
2471 foreach (Point point3 in r.points)
2472 {
2473 map.SetFloor(point3.x, point3.z, 97, idFloor, Mathf.Clamp(4 - r.startPos.Distance(point3) + EClass.rnd(3) - EClass.rnd(3), 0, 3));
2474 }
2475 return false;
2476 });
2477 }
2478 if (zone_Field != null)
2479 {
2480 if (EClass.rnd(3) == 0)
2481 {
2482 int num4 = EClass.rnd(2);
2483 for (int m = 0; m < num4; m++)
2484 {
2485 Point randomSurface4 = EClass._map.bounds.GetRandomSurface();
2486 if (!randomSurface4.HasObj && !randomSurface4.HasThing)
2487 {
2489 EClass._zone.AddCard(t2, randomSurface4).Install();
2490 }
2491 }
2492 }
2493 if (EClass.rnd(8) == 0)
2494 {
2495 SpawnAltar();
2496 }
2498 }
2499 map.plDay = CreatePlaylist(ref map._plDay, EClass.Sound.GetPlaylist(IDPlayList) ?? EClass.Sound.GetPlaylist("Day"));
2500 }
@ seed
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3064
int Evalue(int ele)
Definition: Card.cs:2574
Card Install()
Definition: Card.cs:3770
bool IsTopWaterAndNoSnow
Definition: Cell.cs:712
bool isModified
Definition: Cell.cs:438
static Crawler Create(string id)
Definition: Crawler.cs:193
bool CrawlUntil(Map map, Func< Point > onStart, int tries, Func< Result, bool > canComplete, Action onFail=null)
Definition: Crawler.cs:59
static int curve(long _a, int start, int step, int rate=75)
Definition: EClass.cs:69
void SetStage(int idx, bool renewHarvest=false)
Definition: GrowSystem.cs:437
Point GetRandomSurface(int x, int z, int radius, bool walkable=true, bool allowWater=false)
Definition: MapBounds.cs:182
Point GetRandomPoint(Point center, int radius, int tries=100, bool mustBeWalkable=true, bool requireLos=true)
Definition: Map.cs:2215
List< int > _plDay
Definition: Map.cs:55
void SetFloor(int x, int z, int idMat=0, int idFloor=0)
Definition: Map.cs:957
PlantData AddPlant(Point pos, Thing seed)
Definition: Map.cs:1952
void SetObj(int x, int z, int id=0, int value=1, int dir=0)
Definition: Map.cs:1535
bool HasThing
Definition: Point.cs:251
bool HasObj
Definition: Point.cs:137
Cell cell
Definition: Point.cs:51
GrowSystem growth
Definition: Point.cs:77
static void SetSeed(int a=-1)
Definition: Rand.cs:37
SourceObj objs
static SpawnSetting Fish()
static void LevelSeed(Thing t, SourceObj.Row obj, int num)
Definition: TraitSeed.cs:145
static Thing MakeSeed(string id, PlantData plant=null)
Definition: TraitSeed.cs:88
void GenerateMap(Zone zone)
virtual string IDPlayList
Definition: Zone.cs:141
override int ContentLv
Definition: Zone.cs:98
void SpawnAltar()
Definition: Zone.cs:2536
Playlist CreatePlaylist(ref List< int > list, Playlist mold=null)
Definition: Zone.cs:3090
virtual bool IsNefia
Definition: Zone.cs:285
BiomeProfile biome
Definition: Zone.cs:129
Chara SpawnMob(string id, Point pos=null)
Definition: Zone.cs:2764
virtual string IdBiome
Definition: Zone.cs:131
override int DangerLv
Definition: Zone.cs:110
void TrySpawnFollower()
Definition: Zone.cs:2502
void CreateBP()
Definition: Zone.cs:2361

References EClass._map, Map._plDay, EClass._zone, AddCard(), Map.AddPlant(), Map.bounds, Point.cell, Card.ChangeMaterial(), Crawler.CrawlUntil(), Crawler.Create(), ThingGen.Create(), EClass.curve(), DangerLv, Card.Evalue(), SpawnSetting.Fish(), ZoneBlueprint.GenerateMap(), Map.GetRandomPoint(), MapBounds.GetRandomSurface(), Point.growth, Point.HasBlock, Point.HasObj, Point.HasThing, Card.Install(), Cell.isModified, Cell.IsTopWaterAndNoSnow, TraitSeed.LevelSeed(), TraitSeed.MakeSeed(), ZoneBlueprint.map, BiomeProfile.Style.matDoor, SourceManager.objs, EClass.pc, EClass.rnd(), seed, Map.SetFloor(), Map.SetObj(), Rand.SetSeed(), GrowSystem.SetStage(), Map.SetZone(), EClass.Sound, EClass.sources, BiomeProfile.style, Spatial.uid, Point.x, and Point.z.

Referenced by Activate().

◆ GetDeepestLv() [1/2]

int Zone.GetDeepestLv ( )
inline

Definition at line 3123 of file Zone.cs.

3124 {
3125 int max = base.lv;
3126 return GetDeepestLv(ref max);
3127 }
int GetDeepestLv()
Definition: Zone.cs:3123

◆ GetDeepestLv() [2/2]

int Zone.GetDeepestLv ( ref int  max)
inline

Definition at line 3129 of file Zone.cs.

3130 {
3131 if (Mathf.Abs(base.lv) > Mathf.Abs(max))
3132 {
3133 max = base.lv;
3134 }
3135 foreach (Spatial child in children)
3136 {
3137 (child as Zone).GetDeepestLv(ref max);
3138 }
3139 return max;
3140 }

◆ GetDungenID()

virtual string Zone.GetDungenID ( )
inlinevirtual

◆ GetElectricity()

int Zone.GetElectricity ( bool  cost = false)
inline

Definition at line 2953 of file Zone.cs.

2954 {
2955 bool flag = GetSoilCost() > MaxSoil;
2956 int sum = 0;
2957 foreach (Thing thing in EClass._map.things)
2958 {
2959 if (!thing.IsInstalled || thing.trait.Electricity == 0)
2960 {
2961 continue;
2962 }
2963 if (cost)
2964 {
2965 if (thing.trait.Electricity < 0)
2966 {
2967 sum += -thing.trait.Electricity;
2968 }
2969 }
2970 else if (thing.trait.Electricity > 0)
2971 {
2972 sum += thing.trait.Electricity;
2973 }
2974 }
2975 if (!cost)
2976 {
2977 sum += elements.Value(2201) * 10 + BaseElectricity;
2978 if (!flag)
2979 {
2980 EClass._map.bounds.ForeachCell(delegate(Cell c)
2981 {
2982 if (c.sourceObj.id == 118 && c.growth.IsMature)
2983 {
2984 sum += 20;
2985 }
2986 });
2987 }
2988 }
2989 return sum;
2990 }
bool IsInstalled
Definition: Card.cs:2384
GrowSystem growth
Definition: Cell.cs:225
SourceObj.Row sourceObj
Definition: Cell.cs:1072
virtual bool IsMature
Definition: GrowSystem.cs:103
void ForeachCell(Action< Cell > action)
Definition: MapBounds.cs:279
virtual int Electricity
Definition: Trait.cs:119
virtual int BaseElectricity
Definition: Zone.cs:493
virtual int MaxSoil
Definition: Zone.cs:516
int GetSoilCost()
Definition: Zone.cs:3779

References EClass._map, Map.bounds, Trait.Electricity, MapBounds.ForeachCell(), Cell.growth, Card.IsInstalled, GrowSystem.IsMature, Cell.sourceObj, Map.things, Card.trait, and ElementContainer.Value().

Referenced by UIHomeInfo.RefreshInfo().

◆ GetNewZoneID()

virtual string Zone.GetNewZoneID ( int  level)
inlinevirtual

Reimplemented in Zone_CurryRuin, Zone_CursedManor, Zone_Nymelle, and Zone_Vernis.

Definition at line 547 of file Zone.cs.

548 {
549 return base.source.id;
550 }

Referenced by TraitNewZone.CreateZone(), and ActEffect.Proc().

◆ GetOrCreateFortuneRollData()

FortuneRollData Zone.GetOrCreateFortuneRollData ( bool  refresh = true)
inline

Definition at line 3882 of file Zone.cs.

3883 {
3884 if (fortuneRoll == null)
3885 {
3887 fortuneRoll.seed = EClass._zone.uid * 100 + EClass.game.seed;
3888 }
3889 if (refresh || fortuneRoll.count == 0)
3890 {
3892 }
3893 return fortuneRoll;
3894 }
int seed
Definition: Game.cs:201
FortuneRollData fortuneRoll
Definition: Zone.cs:61

References FortuneRollData.count, EClass.game, FortuneRollData.Refresh(), and Game.seed.

Referenced by TraitCrafter.Craft(), and UIDragGridInfo.Init().

◆ GetProfile()

ZoneProfile Zone.GetProfile ( )
inline

Definition at line 2321 of file Zone.cs.

2322 {
2323 string text = IdProfile;
2324 if (text.IsEmpty())
2325 {
2326 Region region = parent as Region;
2327 if (base.lv != 0)
2328 {
2329 text = ((base.lv < 0) ? "Underground" : "Sky");
2330 }
2331 else if (region != null)
2332 {
2334 text = EClass.scene.elomapActor.elomap.GetTileInfo(base.x, base.y).idZoneProfile;
2335 if (bp != null)
2336 {
2337 name = Lang.GetList("zone_" + text.Split('/')[1]).RandomItem();
2338 bp.surrounding = new EloMap.TileInfo[3, 3];
2339 for (int i = 0; i < 3; i++)
2340 {
2341 for (int j = 0; j < 3; j++)
2342 {
2343 bp.surrounding[j, i] = EClass.scene.elomapActor.elomap.GetTileInfo(base.x - 1 + j, base.y - 1 + i);
2344 }
2345 }
2346 if (text == "Random/R_Shore")
2347 {
2348 base.isBeach = true;
2349 }
2350 }
2351 }
2352 else
2353 {
2354 text = "Random";
2355 }
2356 idProfile = text;
2357 }
2358 return ZoneProfile.Load(text);
2359 }
EloMap elomap
Definition: EloMapActor.cs:7
string idZoneProfile
Definition: EloMap.cs:68
Definition: EloMap.cs:8
TileInfo GetTileInfo(int gx, int gy)
Definition: EloMap.cs:286
Definition: Lang.cs:6
static string[] GetList(string id)
Definition: Lang.cs:114
string idProfile
Definition: Spatial.cs:25
EloMap.TileInfo[,] surrounding
static ZoneProfile Load(string id)
Definition: ZoneProfile.cs:73
virtual string IdProfile
Definition: Zone.cs:139
Region Region
Definition: Zone.cs:163

References EloMapActor.elomap, Region.elomap, Scene.elomapActor, Lang.GetList(), EloMap.GetTileInfo(), EloMap.TileInfo.idZoneProfile, EloMapActor.Initialize(), ZoneProfile.Load(), EClass.scene, and ZoneBlueprint.surrounding.

Referenced by ZoneBlueprint.GenerateMap().

◆ GetRandomSpot< T >()

T Zone.GetRandomSpot< T > ( )
inline
Type Constraints
T :Trait 

Definition at line 2053 of file Zone.cs.

2053 : Trait
2054 {
2055 return EClass._map.props.installed.traits.GetRandomThing<T>() as T;
2056 }
PropsInstalled installed
Definition: PropsManager.cs:8

References EClass._map, PropsManager.installed, Map.props, and Props.traits.

◆ GetRandomVisitPos()

Point Zone.GetRandomVisitPos ( Chara  c)
inline

Definition at line 1531 of file Zone.cs.

1532 {
1533 Point point = null;
1534 if (EClass.rnd(3) == 0 && map.rooms.listRoom.Count > 0)
1535 {
1536 point = map.rooms.listRoom.RandomItem().points.RandomItem();
1537 }
1538 if (point == null && EClass.rnd(4) != 0)
1539 {
1540 IEnumerable<Chara> ie = map.charas.Where((Chara t) => t.trait.ShopType != 0 && t.pos != null && t.pos.IsValid);
1541 if (ie.Count() > 0)
1542 {
1543 point = ie.RandomItem().pos.GetRandomPoint(3);
1544 }
1545 }
1546 if (point == null)
1547 {
1548 point = map.bounds.GetRandomSurface(centered: false, walkable: true, !IsPCFaction && !(this is Zone_Civilized)) ?? map.bounds.GetRandomPoint();
1549 }
1550 return point.GetNearestPoint(allowBlock: false, allowChara: false, allowInstalled: false) ?? EClass._map.GetCenterPos().GetNearestPoint();
1551 }
new TraitChara trait
Definition: Chara.cs:505
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
Definition: Point.cs:769
virtual ShopType ShopType
Definition: Trait.cs:531

References EClass._map, Map.bounds, Map.charas, MapBounds.GetCenterPos(), Point.GetNearestPoint(), MapBounds.GetRandomPoint(), Point.GetRandomPoint(), MapBounds.GetRandomSurface(), Point.IsValid, RoomManager.listRoom, Card.pos, EClass.rnd(), Map.rooms, Trait.ShopType, and Chara.trait.

◆ GetRoot()

ICardParent Zone.GetRoot ( )
inline

Implements ICardParent.

Definition at line 1943 of file Zone.cs.

1944 {
1945 return this;
1946 }

◆ GetSoilCost()

int Zone.GetSoilCost ( )
inline

Definition at line 3779 of file Zone.cs.

3780 {
3781 int i = 0;
3782 EClass._map.bounds.ForeachCell(delegate(Cell c)
3783 {
3784 i += c.sourceObj.costSoil;
3785 });
3786 return i / 10;
3787 }

References EClass._map, Map.bounds, MapBounds.ForeachCell(), and Cell.sourceObj.

Referenced by WidgetStatsBar.Build(), FactionBranch.DailyOutcome(), Map.MineObj(), GrowSystem.PopHarvest(), UIHomeInfo.RefreshInfo(), and GrowSystem.TryPopSeed().

◆ GetSortVal()

int Zone.GetSortVal ( )
inline

Definition at line 3306 of file Zone.cs.

3307 {
3308 if (IsPCFaction)
3309 {
3310 return -10000000 + base.uid;
3311 }
3312 if (this is Zone_SubTown)
3313 {
3314 return -8000000 + base.uid;
3315 }
3316 if (this is Zone_Town)
3317 {
3318 return -9000000 + base.uid;
3319 }
3320 if (this is Zone_Civilized)
3321 {
3322 return -7000000 + base.uid;
3323 }
3324 if (this is Zone_RandomDungeon)
3325 {
3326 return 1000000 + base.uid;
3327 }
3328 return base.uid;
3329 }

Referenced by SpatialManager.ListReturnLocations().

◆ GetSpawnPos() [1/2]

Point Zone.GetSpawnPos ( Chara  c,
ZoneTransition::EnterState  destState = ZoneTransition::EnterState::Auto 
)
inline

Definition at line 1350 of file Zone.cs.

1351 {
1352 ZoneTransition zoneTransition = c.global?.transition;
1353 Zone zone = zoneTransition?.lastZone;
1354 ZoneTransition.EnterState enterState = zoneTransition?.state ?? destState;
1355 bool flag = zone == null || zone.lv > base.lv;
1356 if (IsRegion)
1357 {
1358 if (zone != null && !EClass.player.simulatingZone)
1359 {
1360 Zone topZone = zone.GetTopZone();
1361 if (GetZoneAt(topZone.x, topZone.y) != null)
1362 {
1363 return new Point(topZone.mapX, topZone.mapY);
1364 }
1365 }
1366 }
1367 else if (c.IsPC && EClass.player.lastZonePos != null && zone != null && zone.IsRegion && (enterState == ZoneTransition.EnterState.Left || enterState == ZoneTransition.EnterState.Right || enterState == ZoneTransition.EnterState.Top || enterState == ZoneTransition.EnterState.Bottom))
1368 {
1369 return EClass.player.lastZonePos;
1370 }
1371 if (enterState == ZoneTransition.EnterState.Region)
1372 {
1373 enterState = RegionEnterState;
1374 }
1375 if (this is Zone_Kapul && enterState == ZoneTransition.EnterState.Left)
1376 {
1377 enterState = ZoneTransition.EnterState.Right;
1378 }
1379 float rate = zoneTransition?.ratePos ?? (-1f);
1380 if (IsPCFaction)
1381 {
1382 if ((uint)(enterState - 3) <= 4u || enterState == ZoneTransition.EnterState.Return)
1383 {
1385 if (spot != null)
1386 {
1387 Point nearestPoint = (spot.trait as TraitSpotGuidePC).GetRandomPoint((Point p) => !p.IsBlocked && !p.Equals(spot.pos)).GetNearestPoint();
1388 if (nearestPoint != null && nearestPoint.IsValid)
1389 {
1390 return nearestPoint;
1391 }
1392 }
1393 }
1394 }
1395 while (true)
1396 {
1397 switch (enterState)
1398 {
1399 case ZoneTransition.EnterState.UndergroundOrSky:
1400 return new Point(zoneTransition.x, zoneTransition.z);
1401 case ZoneTransition.EnterState.Teleport:
1402 {
1403 foreach (Thing thing2 in map.things)
1404 {
1405 if (thing2.IsInstalled)
1406 {
1407 TraitTeleporter traitTeleporter = thing2.trait as TraitTeleporter;
1408 if (traitTeleporter != null)
1409 {
1410 Debug.Log(zoneTransition.idTele + "/" + traitTeleporter.id.IsEmpty(traitTeleporter.GetParam(3)) + "/" + traitTeleporter.GetParam(3));
1411 }
1412 if (traitTeleporter != null && !zoneTransition.idTele.IsEmpty() && zoneTransition.idTele == traitTeleporter.id.IsEmpty(traitTeleporter.GetParam(3)))
1413 {
1414 return thing2.pos.GetNearestPoint();
1415 }
1416 }
1417 }
1418 foreach (Thing thing3 in map.things)
1419 {
1420 if (thing3.IsInstalled && thing3.trait is TraitTeleporter traitTeleporter2 && traitTeleporter2.IsFor(zoneTransition.lastZone))
1421 {
1422 return thing3.pos.GetNearestPoint();
1423 }
1424 }
1425 Thing randomThing2 = EClass._map.props.installed.traits.GetRandomThing<TraitTeleporter>();
1426 if (randomThing2 != null)
1427 {
1428 return randomThing2.pos.GetNearestPoint();
1429 }
1430 goto case ZoneTransition.EnterState.Return;
1431 }
1432 case ZoneTransition.EnterState.Return:
1433 case ZoneTransition.EnterState.Elevator:
1434 case ZoneTransition.EnterState.Moongate:
1435 {
1436 if (enterState == ZoneTransition.EnterState.Elevator)
1437 {
1438 foreach (Thing thing4 in map.things)
1439 {
1440 if (thing4.IsInstalled && thing4.trait is TraitElevator traitElevator && traitElevator.IsFor(zoneTransition.lastZone))
1441 {
1442 return thing4.pos.GetNearestPoint();
1443 }
1444 }
1445 Thing randomThing = EClass._map.props.installed.traits.GetRandomThing<TraitElevator>();
1446 if (randomThing != null)
1447 {
1448 return randomThing.pos.GetNearestPoint();
1449 }
1450 }
1451 Thing thing = null;
1452 thing = map.props.installed.traits.GetRandomThing<TraitWaystone>();
1453 if (thing != null)
1454 {
1455 return thing.pos.GetNearestPoint();
1456 }
1457 thing = map.props.installed.traits.GetRandomThing<TraitCoreZone>();
1458 if (thing != null)
1459 {
1460 return thing.pos.GetNearestPoint();
1461 }
1462 if (base.lv == 0)
1463 {
1464 goto IL_04a1;
1465 }
1466 flag = base.lv <= 0;
1467 break;
1468 }
1469 case ZoneTransition.EnterState.Center:
1470 case ZoneTransition.EnterState.Encounter:
1471 if (map.config.embarkX != 0)
1472 {
1473 return new Point(map.config.embarkX, map.config.embarkY);
1474 }
1475 return map.GetCenterPos().GetNearestPoint(allowBlock: false, allowChara: false);
1476 case ZoneTransition.EnterState.Top:
1477 return map.bounds.GetTopPos(rate).GetNearestPoint(allowBlock: false, allowChara: false);
1478 case ZoneTransition.EnterState.Right:
1479 return map.bounds.GetRightPos(rate).GetNearestPoint(allowBlock: false, allowChara: false);
1480 case ZoneTransition.EnterState.Bottom:
1481 return map.bounds.GetBottomPos(rate).GetNearestPoint(allowBlock: false, allowChara: false);
1482 case ZoneTransition.EnterState.Left:
1483 return map.bounds.GetLeftPos(rate).GetNearestPoint(allowBlock: false, allowChara: false);
1484 case ZoneTransition.EnterState.Dead:
1485 case ZoneTransition.EnterState.Exact:
1486 case ZoneTransition.EnterState.PortalReturn:
1487 case ZoneTransition.EnterState.Fall:
1488 if (zoneTransition.x == 0 && EClass._map.bounds.x != 0)
1489 {
1490 return new Point(map.config.embarkX, map.config.embarkY);
1491 }
1492 return new Point(zoneTransition.x, zoneTransition.z);
1493 case ZoneTransition.EnterState.RandomVisit:
1494 return GetRandomVisitPos(c);
1495 case ZoneTransition.EnterState.Down:
1496 flag = true;
1497 break;
1498 case ZoneTransition.EnterState.Up:
1499 flag = false;
1500 break;
1501 }
1502 break;
1503 IL_04a1:
1504 enterState = ZoneTransition.EnterState.Center;
1505 }
1506 foreach (Thing thing5 in map.things)
1507 {
1508 if (thing5.trait is TraitNewZone { zone: not null } traitNewZone && zone != null && traitNewZone.zone.uid == zone.uid)
1509 {
1510 if (c != null && enterState != 0)
1511 {
1512 c.SetDir(traitNewZone.owner.dir);
1513 }
1514 return traitNewZone.GetExitPos();
1515 }
1516 }
1517 foreach (Thing thing6 in map.things)
1518 {
1519 if (thing6.trait is TraitNewZone traitNewZone2 && ((flag && traitNewZone2.IsUpstairs) || (!flag && traitNewZone2.IsDownstairs)))
1520 {
1521 if (c != null && enterState != 0)
1522 {
1523 c.SetDir(traitNewZone2.owner.dir);
1524 }
1525 return traitNewZone2.GetExitPos();
1526 }
1527 }
1528 return GetRandomVisitPos(c);
1529 }
override void SetDir(int d)
Definition: Chara.cs:3529
Point GetLeftPos(float rate=-1f)
Definition: MapBounds.cs:92
Point GetBottomPos(float rate=-1f)
Definition: MapBounds.cs:87
int x
Definition: MapBounds.cs:8
Point GetTopPos(float rate=-1f)
Definition: MapBounds.cs:77
Point GetRightPos(float rate=-1f)
Definition: MapBounds.cs:82
int embarkY
Definition: MapConfig.cs:86
int embarkX
Definition: MapConfig.cs:83
Point lastZonePos
Definition: Player.cs:1103
Thing Find(int uid)
Definition: Props.cs:389
int mapX
Definition: Spatial.cs:460
int lv
Definition: Spatial.cs:142
int mapY
Definition: Spatial.cs:472
virtual bool IsFor(Zone z)
string GetParam(int i, string def=null)
Definition: Trait.cs:577
EnterState state
virtual ZoneTransition.EnterState RegionEnterState
Definition: Zone.cs:173
Point GetRandomVisitPos(Chara c)
Definition: Zone.cs:1531
Zone GetZoneAt(int _x, int _y)
Definition: Zone.cs:3557

References EClass._map, Map.bounds, Map.config, Debug, MapConfig.embarkX, MapConfig.embarkY, Point.Equals(), Props.Find(), MapBounds.GetBottomPos(), MapBounds.GetCenterPos(), MapBounds.GetLeftPos(), Point.GetNearestPoint(), Trait.GetParam(), MapBounds.GetRightPos(), MapBounds.GetTopPos(), GetTopZone(), Chara.global, TraitTeleporter.id, ZoneTransition.idTele, PropsManager.installed, TraitNewZone.IsFor(), Card.IsInstalled, Chara.IsPC, Spatial.IsRegion, Point.IsValid, ZoneTransition.lastZone, Player.lastZonePos, Spatial.lv, Spatial.mapX, Spatial.mapY, EClass.player, Card.pos, Map.props, ZoneTransition.ratePos, Player.simulatingZone, ZoneTransition.state, Map.things, Card.trait, Props.traits, GlobalData.transition, Spatial.uid, MapBounds.x, Spatial.x, ZoneTransition.x, Spatial.y, ZoneTransition.z, and TraitNewZone.zone.

Referenced by Chara.MoveZone().

◆ GetSpawnPos() [2/2]

Point Zone.GetSpawnPos ( SpawnPosition  type,
int  tries = 100 
)
inline

Definition at line 2731 of file Zone.cs.

2732 {
2733 Point point = new Point();
2734 for (int i = 0; i < tries; i++)
2735 {
2736 point = EClass._map.bounds.GetRandomSurface(centered: false, walkable: true, allowWater: true);
2737 if (!point.IsValid || point.cell.hasDoor || point.IsSync)
2738 {
2739 continue;
2740 }
2741 switch (type)
2742 {
2743 case SpawnPosition.Guest:
2744 {
2745 Room room = point.cell.room;
2746 if (room != null && room.data.accessType != 0)
2747 {
2748 continue;
2749 }
2750 break;
2751 }
2752 case SpawnPosition.Outside:
2753 if (point.cell.HasRoof || point.cell.light > 0)
2754 {
2755 continue;
2756 }
2757 break;
2758 }
2759 return point;
2760 }
2761 return null;
2762 }
SpawnPosition
Definition: SpawnPosition.cs:2
BaseArea.AccessType accessType
Definition: AreaData.cs:42
Room room
Definition: Cell.cs:102
byte light
Definition: Cell.cs:60
bool HasRoof
Definition: Cell.cs:648
bool hasDoor
Definition: Cell.cs:258
bool IsSync
Definition: Point.cs:344

References EClass._map, AreaData.accessType, Map.bounds, Point.cell, BaseArea.data, MapBounds.GetRandomSurface(), Cell.hasDoor, Cell.HasRoof, Point.IsSync, Point.IsValid, Cell.light, and Cell.room.

◆ GetTopZone()

◆ GetZoneAt()

Zone Zone.GetZoneAt ( int  _x,
int  _y 
)
inline

Definition at line 3557 of file Zone.cs.

3558 {
3559 if (IsRegion)
3560 {
3561 foreach (Spatial child in children)
3562 {
3563 if (!(child is Zone_Field) && _x == child.x && _y == child.y)
3564 {
3565 return child as Zone;
3566 }
3567 }
3568 }
3569 foreach (Spatial child2 in children)
3570 {
3571 if (_x == child2.x && _y == child2.y)
3572 {
3573 return child2 as Zone;
3574 }
3575 }
3576 return null;
3577 }

References Spatial.x, and Spatial.y.

Referenced by Player.EnterLocalZone(), and RegionPoint.SetRegionPoint().

◆ GrowPlants()

void Zone.GrowPlants ( VirtualDate  date)
inline

Definition at line 3450 of file Zone.cs.

3451 {
3452 bool num = (EClass.player.isAutoFarming = IsPCFaction && EClass.Branch.policies.IsActive(2707));
3453 int weedChance = 1;
3455 {
3456 weedChance += (EClass.debug.enable ? 100000 : 20) + EClass.Branch.Evalue(2703) * 10;
3457 }
3458 if (date.sunMap == null)
3459 {
3460 date.BuildSunMap();
3461 }
3462 if (num)
3463 {
3464 HashSet<int> hashSet = new HashSet<int>();
3465 foreach (Thing thing in EClass._map.things)
3466 {
3467 if (!thing.IsInstalled || !(thing.trait is TraitSpotFarm traitSpotFarm))
3468 {
3469 continue;
3470 }
3471 foreach (Point item in traitSpotFarm.ListPoints(null, onlyPassable: false))
3472 {
3473 hashSet.Add(item.index);
3474 }
3475 }
3476 Perform(hashSet);
3477 EClass.player.isAutoFarming = false;
3478 Perform(hashSet);
3479 }
3480 else
3481 {
3482 Perform(null);
3483 }
3484 void Perform(HashSet<int> farmMap)
3485 {
3486 bool isWinter = date.IsWinter;
3487 EClass._map.bounds.ForeachCell(delegate(Cell c)
3488 {
3489 if (farmMap != null)
3490 {
3492 {
3493 if (!farmMap.Contains(c.index))
3494 {
3495 return;
3496 }
3497 }
3498 else if (farmMap.Contains(c.index))
3499 {
3500 return;
3501 }
3502 }
3503 if (c.decal != 0 && EClass.rnd(3) == 0)
3504 {
3505 c.decal = 0;
3506 }
3507 if (GrowPlant)
3508 {
3509 if (c.growth != null)
3510 {
3511 bool flag = false;
3512 if (!EClass.player.isAutoFarming && c.growth.HaltGrowth() && (c.IsFarmField || c.IsTopWater) && (!isWinter || !date.IsRealTime))
3513 {
3514 flag = true;
3515 }
3516 PlantData plantData = map.TryGetPlant(c);
3517 if (!flag && (plantData == null || plantData.fert >= 0))
3518 {
3519 c.TryGrow(date);
3520 }
3521 if (isWinter && plantData != null && c.growth != null && c.growth.NeedSunlight && plantData.fert >= 0 && (EClass.rnd(4) == 0 || c.growth.stage.idx == 0))
3522 {
3523 if (date.sunMap == null)
3524 {
3525 date.BuildSunMap();
3526 }
3527 if (!date.sunMap.Contains(c.index) && !c.growth.CanGrow(date))
3528 {
3529 c.growth.Perish();
3530 }
3531 }
3532 }
3533 else if (c.detail != null)
3534 {
3535 c.Things.ForeachReverse(delegate(Thing t)
3536 {
3537 if (t.IsInstalled && t.trait is TraitSeed && !t.isSale)
3538 {
3539 (t.trait as TraitSeed).TrySprout(force: false, sucker: false, date);
3540 }
3541 });
3542 }
3543 else if (EClass.rnd(20) == 0 && GrowWeed && c.CanGrowWeed && EClass.rnd(weedChance) == 0)
3544 {
3545 biome.Populate(c.GetPoint());
3546 if (c.growth != null)
3547 {
3548 c.growth.SetStage(0);
3549 }
3550 }
3551 }
3552 c.isWatered = false;
3553 });
3554 }
3555 }
void Populate(Point point, bool interior=false, float mtpDensity=1f)
byte decal
Definition: Cell.cs:44
CellDetail detail
Definition: Cell.cs:92
Point GetPoint()
Definition: Cell.cs:1101
bool CanGrowWeed
Definition: Cell.cs:742
int index
Definition: Cell.cs:114
bool IsWinter
Definition: Date.cs:190
int Evalue(int ele)
PolicyManager policies
Stage stage
Definition: GrowSystem.cs:101
virtual bool NeedSunlight
Definition: GrowSystem.cs:93
bool CanGrow(VirtualDate date)
Definition: GrowSystem.cs:273
PlantData TryGetPlant(Point p)
Definition: Map.cs:1942
bool isAutoFarming
Definition: Player.cs:1181
bool IsActive(int id, int days=-1)
void BuildSunMap()
Definition: VirtualDate.cs:54
HashSet< int > sunMap
Definition: VirtualDate.cs:9
virtual bool GrowWeed
Definition: Zone.cs:349
virtual bool GrowPlant
Definition: Zone.cs:347

References EClass._map, Map.bounds, EClass.Branch, VirtualDate.BuildSunMap(), GrowSystem.CanGrow(), Cell.decal, Cell.detail, FactionBranch.Evalue(), MapBounds.ForeachCell(), Cell.growth, GrowSystem.Stage.idx, if(), Cell.index, PolicyManager.IsActive(), Player.isAutoFarming, Card.IsInstalled, Date.IsWinter, item, GrowSystem.NeedSunlight, EClass.player, FactionBranch.policies, EClass.rnd(), GrowSystem.stage, VirtualDate.sunMap, Map.things, Card.trait, and Map.TryGetPlant().

◆ HasField()

bool Zone.HasField ( int  idEle)
inline

Definition at line 2912 of file Zone.cs.

2913 {
2914 return fieldElements.Has(idEle);
2915 }
bool Has(int ele)
ElementContainerField fieldElements
Definition: Zone.cs:46

References ElementContainer.Has().

Referenced by ActEffect.ProcAt(), Card.SpawnLoot(), and GoalCombat.TryUseAbility().

◆ Import()

ZoneExportData Zone.Import ( string  path)
inline

Definition at line 3197 of file Zone.cs.

3198 {
3199 ZipFile zipFile = ZipFile.Read(path);
3200 zipFile.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently;
3201 zipFile.ExtractAll(pathTemp);
3202 zipFile.Dispose();
3203 return IO.LoadFile<ZoneExportData>(pathTemp + "export") ?? new ZoneExportData();
3204 }

Referenced by Activate(), and PartialMap.Load().

◆ ImportDialog()

void Zone.ImportDialog ( string  dir = null)
inline

Definition at line 3260 of file Zone.cs.

3261 {
3263 {
3264 string[] array = StandaloneFileBrowser.OpenFilePanel("Import Zone", dir ?? CorePath.ZoneSave, "z", multiselect: false);
3265 if (array.Length != 0)
3266 {
3267 Zone_User zone_User = SpatialGen.Create("user", EClass.world.region, register: true) as Zone_User;
3268 zone_User.path = array[0];
3269 Thing thing = ThingGen.Create("teleporter");
3270 thing.c_uidZone = zone_User.uid;
3271 EClass._zone.AddCard(thing, EClass.pc.pos);
3272 }
3273 });
3274 }
static string[] OpenFilePanel(string title, string directory, string extension, bool multiselect)

References EClass.core, if(), SFB.StandaloneFileBrowser.OpenFilePanel(), BaseCore.WaitForEndOfFrame(), and CorePath.ZoneSave.

Referenced by CoreDebug.InitDebugCommands().

◆ IsCrime()

bool Zone.IsCrime ( Chara  c,
Act  act 
)
inline

Definition at line 3579 of file Zone.cs.

3580 {
3581 if (act.IsHostileAct && HasLaw && !IsPCFaction && c.IsPC)
3582 {
3583 return true;
3584 }
3585 return false;
3586 }
virtual bool IsHostileAct
Definition: ACT.cs:129
virtual bool HasLaw
Definition: Zone.cs:229

References Act.IsHostileAct, and Chara.IsPC.

Referenced by Act.GetActPlanColor(), TaskDig.OnCreateProgress(), TaskHarvest.OnCreateProgress(), TaskMine.OnCreateProgress(), TaskDig.OnProgressComplete(), TaskMine.OnProgressComplete(), ActTelekinesis.Perform(), and ActPlan.Item.Perform().

◆ IsImportValid()

static bool Zone.IsImportValid ( string  path)
inlinestatic

Definition at line 3276 of file Zone.cs.

3277 {
3278 try
3279 {
3280 return Map.GetMetaData(path)?.IsValidVersion() ?? false;
3281 }
3282 catch (Exception ex)
3283 {
3284 EClass.ui.Say(ex.Message);
3285 return false;
3286 }
3287 }
bool IsValidVersion()
Definition: MapMetaData.cs:31
static MapMetaData GetMetaData(string pathZip)
Definition: Map.cs:738

References Map.GetMetaData(), MapMetaData.IsValidVersion(), and EClass.ui.

Referenced by TraitMoongate.UseMoongate().

◆ ListLandFeats()

List< Element > Zone.ListLandFeats ( )
inline

Definition at line 3142 of file Zone.cs.

3143 {
3144 if (landFeats == null)
3145 {
3146 landFeats = new List<int>();
3148 string[] listBase = IDBaseLandFeat.Split(',');
3149 string[] array = listBase;
3150 foreach (string text in array)
3151 {
3152 if (!text.IsEmpty())
3153 {
3154 landFeats.Add(EClass.sources.elements.alias[text].id);
3155 }
3156 }
3157 if (listBase.Length == 1)
3158 {
3159 List<SourceElement.Row> list = EClass.sources.elements.rows.Where(delegate(SourceElement.Row e)
3160 {
3161 if (e.category != "landfeat" || e.chance == 0)
3162 {
3163 return false;
3164 }
3165 bool flag = true;
3166 string[] tag = e.tag;
3167 foreach (string text2 in tag)
3168 {
3169 if (text2.StartsWith("bf"))
3170 {
3171 flag = false;
3172 if (listBase[0] == text2)
3173 {
3174 flag = true;
3175 break;
3176 }
3177 }
3178 }
3179 return flag ? true : false;
3180 }).ToList();
3181 SourceElement.Row row = list.RandomItemWeighted((SourceElement.Row e) => e.chance);
3182 landFeats.Add(row.id);
3183 list.Remove(row);
3184 row = list.RandomItemWeighted((SourceElement.Row e) => e.chance);
3185 landFeats.Add(row.id);
3186 }
3187 Rand.SetSeed();
3188 }
3189 List<Element> list2 = new List<Element>();
3190 foreach (int landFeat in landFeats)
3191 {
3192 list2.Add(Element.Create(landFeat, 1));
3193 }
3194 return list2;
3195 }
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1111
virtual string IDBaseLandFeat
Definition: Zone.cs:147
List< int > landFeats
Definition: Zone.cs:58

References EClass._zone, SourceManager.elements, SourceElement.Row.id, Rand.SetSeed(), EClass.sources, and Spatial.uid.

Referenced by WidgetDate._Refresh(), FactionBranch.OnClaimZone(), FactionBranch.OnUnclaimZone(), UIFactionInfo.SetZone(), and FactionBranch.Upgrade().

◆ ListMinions()

List< Chara > Zone.ListMinions ( Chara  c)
inline

Definition at line 3753 of file Zone.cs.

3754 {
3755 List<Chara> list = new List<Chara>();
3756 foreach (Chara chara in EClass._map.charas)
3757 {
3758 if (chara.c_uidMaster == c.uid && chara.c_minionType == MinionType.Default)
3759 {
3760 list.Add(chara);
3761 }
3762 }
3763 return list;
3764 }

References EClass._map, Card.c_minionType, Card.c_uidMaster, and Map.charas.

◆ ModDevelopment()

void Zone.ModDevelopment ( int  a)
inline

Definition at line 3657 of file Zone.cs.

3658 {
3659 base.development += a;
3660 if (a > 0)
3661 {
3662 Msg.Say("gainDevelopment", Name, a.ToString() ?? "");
3663 }
3664 }

References Msg.Say().

◆ ModInfluence()

void Zone.ModInfluence ( int  a)
inline

Definition at line 3647 of file Zone.cs.

3648 {
3649 base.influence += a;
3650 if (a > 0)
3651 {
3652 Msg.Say("gainInfluence", Name, a.ToString() ?? "");
3653 }
3654 Tutorial.Reserve("influence");
3655 }

References Tutorial.Reserve(), and Msg.Say().

Referenced by Card.ModCurrency(), QuestRandom.OnDropReward(), ActEffect.Proc(), and ActThrow.Throw().

◆ OnActivate()

virtual void Zone.OnActivate ( )
inlinevirtual

◆ OnAdvanceHour()

virtual void Zone.OnAdvanceHour ( )
inlinevirtual

Reimplemented in Region.

Definition at line 1186 of file Zone.cs.

1187 {
1188 }

Referenced by GameDate.AdvanceHour().

◆ OnAfterCreate()

override void Zone.OnAfterCreate ( )
inlinevirtual

Reimplemented from Spatial.

Definition at line 576 of file Zone.cs.

577 {
578 if (AddPrefix)
579 {
580 if (GetTopZone() == this)
581 {
582 base.idPrefix = EClass.sources.zoneAffixes.rows.RandomItem().id;
583 }
584 else
585 {
586 base.idPrefix = GetTopZone().idPrefix;
587 }
588 }
589 }
SourceZoneAffix zoneAffixes
int idPrefix
Definition: Spatial.cs:130
virtual bool AddPrefix
Definition: Zone.cs:283

References AddPrefix, GetTopZone(), Spatial.idPrefix, EClass.sources, and SourceManager.zoneAffixes.

◆ OnAfterSimulate()

virtual void Zone.OnAfterSimulate ( )
inlinevirtual

Reimplemented in Zone_WindRest.

Definition at line 1182 of file Zone.cs.

1183 {
1184 }

◆ OnBeforeDeactivate()

virtual void Zone.OnBeforeDeactivate ( )
inlinevirtual

Reimplemented in Zone_Tent.

Definition at line 1166 of file Zone.cs.

1167 {
1168 }

◆ OnBeforeSimulate()

virtual void Zone.OnBeforeSimulate ( )
inlinevirtual

Reimplemented in Zone_DungeonPuppy, and Zone_Nymelle.

Definition at line 1174 of file Zone.cs.

1175 {
1176 }

◆ OnChildNumChange()

void Zone.OnChildNumChange ( Card  c)
inline

Implements ICardParent.

Definition at line 1939 of file Zone.cs.

1940 {
1941 }

◆ OnCreate()

override void Zone.OnCreate ( )
inlinevirtual

Reimplemented from Spatial.

Definition at line 570 of file Zone.cs.

571 {
572 events.zone = this;
573 base.lv = StartLV;
574 }
virtual int StartLV
Definition: Zone.cs:409

References StartLV.

◆ OnCreateBP()

virtual void Zone.OnCreateBP ( )
inlinevirtual

Reimplemented in Zone_Arena2, and Zone_Harvest.

Definition at line 2369 of file Zone.cs.

2370 {
2371 }

◆ OnDeactivate()

virtual void Zone.OnDeactivate ( )
inlinevirtual

Definition at line 1170 of file Zone.cs.

1171 {
1172 }

◆ OnGenerateMap()

virtual void Zone.OnGenerateMap ( )
inlinevirtual

Reimplemented in Zone_Arena2, Zone_CurryRuinDungeon, Zone_CursedManor, Zone_CursedManorDungeon, Zone_Dungeon, Zone_DungeonDead, Zone_DungeonFairy, Zone_DungeonMino, Zone_DungeonPuppy, Zone_Field, Zone_Harvest, Zone_RandomDungeon, Zone_RandomDungeonFactory, Zone_SnowGrave, Zone_StartSite, Zone_TestRoom, Zone_UnderseaTemple, Zone_VernisMine, Zone_Void, and Zone_WindRest.

Definition at line 2575 of file Zone.cs.

2576 {
2578 {
2579 foreach (Chara chara in EClass._map.charas)
2580 {
2581 if (!chara.IsGlobal && chara.hostility < Hostility.Neutral && chara.OriginalHostility < Hostility.Friend)
2582 {
2583 Hostility hostility2 = (chara.c_originalHostility = Hostility.Neutral);
2584 chara.hostility = hostility2;
2585 }
2586 }
2587 }
2588 if (PrespawnRate != 0f && !IsSkyLevel)
2589 {
2590 for (int i = 0; i < (int)((float)MaxSpawn * PrespawnRate); i++)
2591 {
2592 SpawnMob();
2593 }
2594 }
2599 }
Hostility
Definition: Hostility.cs:2
Hostility OriginalHostility
Definition: Chara.cs:473
Hostility hostility
Definition: Chara.cs:293
virtual float PrespawnRate
Definition: Zone.cs:327
virtual int MaxSpawn
Definition: Zone.cs:313
virtual bool IsSkyLevel
Definition: Zone.cs:267
Chara TryGenerateEvolved(bool force=false, Point p=null)
Definition: Zone.cs:2628
void TryGenerateShrine()
Definition: Zone.cs:2674
void TryGenerateOre()
Definition: Zone.cs:2601
virtual bool MakeEnemiesNeutral
Definition: Zone.cs:234
void TryGenerateBigDaddy()
Definition: Zone.cs:2648

References EClass._map, Map.charas, Chara.hostility, Chara.IsGlobal, and Chara.OriginalHostility.

Referenced by Activate().

◆ OnGenerateRooms()

virtual void Zone.OnGenerateRooms ( BaseMapGen  gen)
inlinevirtual

Reimplemented in Zone_CaveMonster, and Zone_SubTown.

Definition at line 2727 of file Zone.cs.

2728 {
2729 }

Referenced by MapGenDungen.OnGenerateTerrain().

◆ OnInspect()

void Zone.OnInspect ( )
inline

Implements IInspect.

Definition at line 3302 of file Zone.cs.

3303 {
3304 }

◆ OnKillGame()

void Zone.OnKillGame ( )
inline

Definition at line 1702 of file Zone.cs.

1703 {
1704 foreach (Thing thing in map.things)
1705 {
1706 if (thing.renderer.hasActor)
1707 {
1708 thing.renderer.KillActor();
1709 }
1710 }
1711 }
void KillActor()
CardRenderer renderer
Definition: Card.cs:62

References CardRenderer.hasActor, CardRenderer.KillActor(), Card.renderer, and Map.things.

Referenced by Game.Kill().

◆ OnLoad()

override void Zone.OnLoad ( )
inlinevirtual

Reimplemented from Spatial.

Definition at line 1889 of file Zone.cs.

1890 {
1891 if (branch != null)
1892 {
1893 branch.SetOwner(this);
1894 }
1895 events.OnLoad(this);
1896 }
void SetOwner(Zone zone)
void OnLoad(Zone _zone)

References ZoneEventManager.OnLoad(), and FactionBranch.SetOwner().

◆ OnRegenerate()

virtual void Zone.OnRegenerate ( )
inlinevirtual

Reimplemented in Zone_LittleGarden.

Definition at line 1158 of file Zone.cs.

1159 {
1160 }

◆ OnSimulateDay()

void Zone.OnSimulateDay ( VirtualDate  date)
inline

Definition at line 3415 of file Zone.cs.

3416 {
3417 if (base.IsPlayerFaction)
3418 {
3419 branch.OnSimulateDay(date);
3420 }
3421 }
void OnSimulateDay(VirtualDate date)

References FactionBranch.OnSimulateDay().

Referenced by VirtualDate.SimulateDay().

◆ OnSimulateHour()

void Zone.OnSimulateHour ( VirtualDate  date)
inline

Definition at line 3360 of file Zone.cs.

3361 {
3362 if (base.IsPlayerFaction)
3363 {
3364 branch.OnSimulateHour(date);
3365 }
3367 if (date.IsRealTime)
3368 {
3369 foreach (Thing thing in EClass._map.things)
3370 {
3371 if (thing.IsInstalled)
3372 {
3373 thing.trait.TryToggle();
3374 }
3375 }
3377 }
3378 EClass._map.things.ForeachReverse(delegate(Thing t)
3379 {
3380 t.OnSimulateHour(date);
3381 });
3382 foreach (Thing sucker in Suckers)
3383 {
3384 sucker.Destroy();
3385 }
3386 Suckers.Clear();
3387 if (RespawnRate != 0f)
3388 {
3389 int num = 0;
3390 foreach (Chara chara in map.charas)
3391 {
3392 if (!chara.IsGlobal)
3393 {
3394 num++;
3395 }
3396 }
3397 if (num < MaxRespawn)
3398 {
3399 for (int i = 0; i < RespawnPerHour; i++)
3400 {
3401 SpawnMob();
3402 }
3403 }
3404 }
3405 if (!date.IsRealTime && EClass.rnd(24) == 0)
3406 {
3407 RainWater();
3408 }
3409 if (date.hour == 6)
3410 {
3411 GrowPlants(date);
3412 }
3413 }
virtual void OnSimulateHour(VirtualDate date)
Definition: Card.cs:6749
void DecayNatural(int hour=1)
Definition: Card.cs:6758
int hour
Definition: Date.cs:74
void OnSimulateHour(VirtualDate date)
virtual void TryToggle()
Definition: Trait.cs:1156
bool IsRealTime
Definition: VirtualDate.cs:7
virtual int RespawnPerHour
Definition: Zone.cs:343
virtual float RespawnRate
Definition: Zone.cs:329
static List< Thing > Suckers
Definition: Zone.cs:83
void GrowPlants(VirtualDate date)
Definition: Zone.cs:3450
int MaxRespawn
Definition: Zone.cs:315

References EClass._map, Map.charas, Card.DecayNatural(), Card.Destroy(), Chara.IsGlobal, Card.IsInstalled, VirtualDate.IsRealTime, ZoneEventManager.OnSimulateHour(), Card.OnSimulateHour(), FactionBranch.OnSimulateHour(), EClass.pc, EClass.rnd(), Map.things, Card.trait, and Trait.TryToggle().

Referenced by VirtualDate.SimulateHour().

◆ OnSimulateMonth()

void Zone.OnSimulateMonth ( VirtualDate  date)
inline

Definition at line 3423 of file Zone.cs.

3424 {
3425 if (base.IsPlayerFaction)
3426 {
3427 branch.OnSimulateMonth(date);
3428 }
3429 if (date.IsRealTime)
3430 {
3432 }
3433 }
void OnSimulateMonth(VirtualDate date)

References EClass._map, VirtualDate.IsRealTime, FactionBranch.OnSimulateMonth(), and Map.RefreshAllTiles().

Referenced by VirtualDate.SimulateMonth().

◆ OnVisit()

void Zone.OnVisit ( )
inline

Definition at line 1059 of file Zone.cs.

1060 {
1061 if (EClass.world.date.IsExpired(base.dateRevive))
1062 {
1064 Revive();
1065 List<Chara> list = new List<Chara>();
1066 foreach (Chara chara in EClass._map.charas)
1067 {
1068 chara.TryRestock(onCreate: false);
1069 if (!chara.IsPCFaction)
1070 {
1071 chara.c_fur = 0;
1072 }
1073 if (chara.IsMinion && chara.master != null && !chara.master.IsPCParty)
1074 {
1075 list.Add(chara);
1076 }
1077 }
1078 foreach (Chara item in list)
1079 {
1080 item.Destroy();
1081 }
1082 }
1083 if (!EClass.game.isLoading)
1084 {
1086 }
1089 events.OnVisit();
1090 OnActivate();
1091 UpdateQuests();
1093 isSimulating = true;
1094 Simulate();
1095 isSimulating = false;
1097 if (EClass.Branch != null)
1098 {
1100 }
1101 base.lastActive = EClass.world.date.GetRaw();
1102 if (!EClass.game.isLoading)
1103 {
1104 base.visitCount++;
1105 }
1106 base.version = EClass.core.version.GetInt();
1107 if (fieldElements.dict.Count() > 0)
1108 {
1109 Tutorial.Reserve("field");
1110 }
1111 }
Version version
Definition: BaseCore.cs:17
override bool IsPCFaction
Definition: Chara.cs:673
void TryRestock(bool onCreate)
Definition: Chara.cs:4703
Dictionary< int, Element > dict
void OnAfterSimulate()
void AssignCharas()
Definition: RoomManager.cs:39
void Revive()
Definition: Zone.cs:1124
void RefreshDeathSentense()
Definition: Zone.cs:1113
void Simulate()
Definition: Zone.cs:1190
virtual void OnAfterSimulate()
Definition: Zone.cs:1182
void RefreshCriminal()
Definition: Zone.cs:3588
virtual void OnBeforeSimulate()
Definition: Zone.cs:1174
virtual void OnActivate()
Definition: Zone.cs:1162
void ResetHostility()
Definition: Zone.cs:2711
void UpdateQuests(bool force=false)
Definition: Zone.cs:3666
int GetInt()
Definition: Version.cs:21

References EClass._map, RoomManager.AssignCharas(), EClass.Branch, Map.charas, EClass.core, World.date, ElementContainer.dict, EClass.game, Version.GetInt(), Date.GetRaw(), Date.IsExpired(), Game.isLoading, Chara.IsMinion, Chara.IsPCFaction, Chara.IsPCParty, item, Chara.master, FactionBranch.OnAfterSimulate(), ZoneEventManager.OnVisit(), Tutorial.Reserve(), Revive, Map.rooms, Chara.TryRestock(), BaseCore.version, and EClass.world.

◆ OnVisitNewMapOrRegenerate()

virtual void Zone.OnVisitNewMapOrRegenerate ( )
inlinevirtual

Reimplemented in Zone_Yowyn.

Definition at line 1178 of file Zone.cs.

1179 {
1180 }

◆ RainWater()

void Zone.RainWater ( )
inline

Definition at line 3435 of file Zone.cs.

3436 {
3438 {
3439 return;
3440 }
3441 EClass._map.bounds.ForeachCell(delegate(Cell c)
3442 {
3443 if (c.IsFarmField && !c.HasRoof)
3444 {
3445 c.isWatered = true;
3446 }
3447 });
3448 }
bool IsFarmField
Definition: Cell.cs:730
bool IsIndoor
Definition: Map.cs:131

References EClass._map, Map.bounds, MapBounds.ForeachCell(), Cell.HasRoof, Cell.IsFarmField, and Map.IsIndoor.

Referenced by Weather.SetCondition().

◆ RefreshBGM()

void Zone.RefreshBGM ( )
inline

Definition at line 3050 of file Zone.cs.

3051 {
3053 {
3054 return;
3055 }
3057 Playlist playlist = map.plDay;
3058 foreach (ZoneEvent item in events.list)
3059 {
3060 if (item.playlist != null)
3061 {
3062 playlist = item.playlist;
3063 }
3064 }
3065 if (IDPlaylistOverwrite != null)
3066 {
3067 playlist = EClass.Sound.GetPlaylist(IDPlaylistOverwrite);
3068 }
3070 {
3071 Room room = EClass.pc.pos.cell.room;
3072 if (room != null && room.lot != null && room.lot.idBGM != 0)
3073 {
3074 playlist = EClass.Sound.plLot;
3075 if (playlist.list[0].data?.id != room.lot.idBGM)
3076 {
3077 playlist.list[0].data = EClass.core.refs.dictBGM.TryGetValue(room.lot.idBGM);
3078 playlist.Reset();
3079 if (!LayerDrama.keepBGM)
3080 {
3081 EClass.Sound.StopBGM(1f);
3082 }
3083 }
3084 }
3085 }
3087 EClass.Sound.SwitchPlaylist(playlist, !LayerDrama.keepBGM);
3088 }
bool IsInActiveZone
Definition: Chara.cs:840
void SetBGMInterval()
Definition: CoreConfig.cs:1006
Dictionary< int, BGMData > dictBGM
Definition: CoreRef.cs:385
CoreRef refs
Definition: Core.cs:51
static bool keepBGM
Definition: LayerDrama.cs:10
int idBGM
Definition: Lot.cs:16
Playlist plDay
Definition: Map.cs:77
Lot lot
Definition: Room.cs:21
List< ZoneEvent > list
virtual string IDPlaylistOverwrite
Definition: Zone.cs:143

References Point.cell, Core.config, EClass.core, CoreRef.dictBGM, Lot.idBGM, Chara.IsInActiveZone, item, LayerDrama.keepBGM, ZoneEventManager.list, Room.lot, EClass.pc, EClass.player, Map.plDay, Card.pos, Core.refs, Cell.room, CoreConfig.SetBGMInterval(), Player.simulatingZone, and EClass.Sound.

Referenced by BuildMenu.Deactivate(), BaseTileMap.Draw(), TileMapElona.Draw(), LayerNewZone.Embark(), ELayer.Kill(), ZoneEventSiege.OnInit(), LayerEditPlaylist.OnKill(), ZoneEventSiege.OnKill(), and ZoneEventSiege.OnVisit().

◆ RefreshCriminal()

void Zone.RefreshCriminal ( )
inline

Definition at line 3588 of file Zone.cs.

3589 {
3590 bool flag = EClass.player.IsCriminal && HasLaw && !AllowCriminal && !IsPCFaction;
3591 Hostility hostility = (flag ? Hostility.Neutral : Hostility.Friend);
3592 foreach (Chara chara in EClass._map.charas)
3593 {
3594 if (chara.trait is TraitGuard)
3595 {
3596 chara.hostility = hostility;
3597 if (!flag && chara.enemy != null && chara.enemy.IsPCParty)
3598 {
3599 chara.SetEnemy();
3600 }
3601 }
3602 }
3603 }
Chara enemy
Definition: Chara.cs:86
Chara SetEnemy(Chara c=null)
Definition: Chara.cs:6303
virtual bool AllowCriminal
Definition: Zone.cs:247

References EClass._map, Map.charas, Chara.enemy, Chara.IsPCParty, Chara.SetEnemy(), and Chara.trait.

Referenced by Player.ModKarma(), ConIncognito.OnRemoved(), and ConIncognito.OnStart().

◆ RefreshDeathSentense()

void Zone.RefreshDeathSentense ( )
inline

Definition at line 1113 of file Zone.cs.

1114 {
1115 foreach (Chara chara in EClass._map.charas)
1116 {
1117 if (chara.HasCondition<ConDeathSentense>())
1118 {
1119 chara.GetCondition<ConDeathSentense>().TryRemove();
1120 }
1121 }
1122 }
bool HasCondition(string alias)
Definition: Chara.cs:9430

References EClass._map, Map.charas, and Chara.HasCondition().

Referenced by Chara.Die().

◆ RefreshElectricity()

void Zone.RefreshElectricity ( )
inline

Definition at line 2922 of file Zone.cs.

2923 {
2924 dirtyElectricity = false;
2925 bool flag = GetSoilCost() > MaxSoil;
2926 base.electricity = elements.Value(2201) * 10 + BaseElectricity;
2927 foreach (Thing thing in EClass._map.things)
2928 {
2929 if (thing.IsInstalled && thing.trait.Electricity != 0 && (thing.isOn || thing.trait.Electricity > 0))
2930 {
2931 base.electricity += thing.trait.Electricity;
2932 }
2933 }
2934 if (!flag)
2935 {
2936 EClass._map.bounds.ForeachCell(delegate(Cell c)
2937 {
2938 if (c.sourceObj.id == 118 && c.growth.IsMature)
2939 {
2940 base.electricity += 20;
2941 }
2942 });
2943 }
2944 foreach (Thing thing2 in EClass._map.things)
2945 {
2946 if (thing2.IsInstalled)
2947 {
2948 thing2.trait.TryToggle();
2949 }
2950 }
2951 }
bool isOn
Definition: Card.cs:543
bool dirtyElectricity
Definition: Zone.cs:71

References EClass._map, Map.bounds, Trait.Electricity, MapBounds.ForeachCell(), Cell.growth, Card.IsInstalled, GrowSystem.IsMature, Card.isOn, Cell.sourceObj, Map.things, Card.trait, Trait.TryToggle(), and ElementContainer.Value().

Referenced by TraitLeverBreaker.OnToggle(), Scene.OnUpdate(), TraitGenerator.Recover(), UIHomeInfo.Refresh(), and TraitGenerator.ShortOut().

◆ RefreshHat()

void Zone.RefreshHat ( )
inline

Definition at line 1049 of file Zone.cs.

1050 {
1051 if (idHat != null && EClass.world.date.IsExpired(base.dateHat))
1052 {
1053 idHat = null;
1054 base.dateHat = 0;
1055 }
1056 sourceHat = ((idHat != null) ? EClass.sources.cards.map[idHat] : ((IDHat != null) ? EClass.sources.cards.map[IDHat] : null));
1057 }
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
string idHat
Definition: Spatial.cs:31
virtual string IDHat
Definition: Zone.cs:145
static CardRow sourceHat
Definition: Zone.cs:29

References SourceManager.cards, World.date, Date.IsExpired(), SourceCard.map, EClass.sources, and EClass.world.

Referenced by TraitHat.OnUse().

◆ RefreshListCitizen()

void Zone.RefreshListCitizen ( )
inline

Definition at line 3605 of file Zone.cs.

3606 {
3607 if (base.lv != 0)
3608 {
3609 return;
3610 }
3611 dictCitizen.Clear();
3612 foreach (Chara item in map.charas.Concat(map.deadCharas))
3613 {
3614 if (item.trait.IsCitizen && !item.IsGlobal && !item.isSubsetCard)
3615 {
3616 dictCitizen[item.uid] = item.Name;
3617 }
3618 }
3619 }
Dictionary< int, string > dictCitizen
Definition: Zone.cs:52

References Map.charas, Map.deadCharas, and item.

Referenced by Chara.MakeAlly().

◆ RefreshPlaylist()

void Zone.RefreshPlaylist ( )
inline

Definition at line 3034 of file Zone.cs.

3035 {
3036 if (map.plDay == null)
3037 {
3038 map.plDay = CreatePlaylist(ref map._plDay, EClass.Sound.GetPlaylist(IDPlayList));
3039 }
3040 }

References Map._plDay, Map.plDay, and EClass.Sound.

Referenced by ClaimZone(), and LayerEditPlaylist.OnKill().

◆ RemoveCard()

void Zone.RemoveCard ( Card  t)
inline

Implements ICardParent.

Definition at line 2032 of file Zone.cs.

2033 {
2034 if (IsActiveZone)
2035 {
2037 }
2038 t.parent = null;
2039 if (t.isChara)
2040 {
2041 t.Chara.currentZone = null;
2042 }
2043 if (t.isThing && !t.trait.IDActorEx.IsEmpty())
2044 {
2046 }
2047 if (t.renderer.hasActor)
2048 {
2050 }
2051 }
override void OnLeaveScreen()
virtual bool isChara
Definition: Card.cs:2084
void OnCardRemovedFromZone(Card t)
Definition: Map.cs:825
void RemoveActorEx(Card c)
Definition: Scene.cs:1031
virtual string IDActorEx
Definition: Trait.cs:187

References CardRenderer.hasActor, Trait.IDActorEx, Card.isChara, Card.isThing, Map.OnCardRemovedFromZone(), CardRenderer.OnLeaveScreen(), Scene.RemoveActorEx(), Card.renderer, EClass.scene, and Card.trait.

Referenced by Activate(), Faction.AddReserve(), Chara.MoveZone(), Map.OnDeactivate(), TaskMoveInstalled.OnProgressComplete(), Map.ReloadRoom(), Simulate(), ActThrow.Throw(), Chara.Tick(), and CoreDebug.UpdateInput().

◆ ResetHostility()

void Zone.ResetHostility ( )
inline

Definition at line 2711 of file Zone.cs.

2712 {
2713 foreach (Chara chara in EClass._map.charas)
2714 {
2715 if (!chara.source.hostility.IsEmpty() && chara.source.hostility.ToEnum<Hostility>() >= Hostility.Friend && !chara.IsPCFactionOrMinion)
2716 {
2717 chara.c_originalHostility = (Hostility)0;
2718 }
2719 chara.hostility = chara.OriginalHostility;
2720 if (chara.enemy != null && (chara.enemy.IsPCFaction || chara.IsPCFaction))
2721 {
2722 chara.SetEnemy();
2723 }
2724 }
2725 }
bool IsPCFactionOrMinion
Definition: Card.cs:2275
SourceChara.Row source
Definition: Chara.cs:160

References EClass._map, Map.charas, Chara.enemy, Chara.IsPCFaction, Card.IsPCFactionOrMinion, Chara.OriginalHostility, Chara.SetEnemy(), and Chara.source.

Referenced by Chara.Die(), and ConIncognito.OnStart().

◆ ResetPlaylist()

void Zone.ResetPlaylist ( )
inline

Definition at line 3042 of file Zone.cs.

3043 {
3044 map._plDay.Clear();
3045 UnityEngine.Object.DestroyImmediate(map.plDay);
3046 map.plDay = null;
3048 }

References Map._plDay, and Map.plDay.

◆ Revive()

void Zone.Revive ( )
inline

Definition at line 1124 of file Zone.cs.

1125 {
1126 base.dateRevive = EClass.world.date.GetRaw() + 1440 * EClass.setting.balance.dateRevive;
1127 if (ShouldAutoRevive)
1128 {
1129 foreach (Chara deadChara in map.deadCharas)
1130 {
1131 if (deadChara.trait.CanAutoRevive && deadChara.CanRevive())
1132 {
1133 deadChara.Revive();
1135 {
1136 deadChara.RemoveBacker();
1137 }
1138 EClass._zone.AddCard(deadChara, (deadChara.orgPos != null && deadChara.orgPos.IsInBounds) ? deadChara.orgPos : deadChara.pos);
1139 }
1140 }
1141 }
1142 foreach (Chara value in EClass.game.cards.globalCharas.Values)
1143 {
1144 if (value.isDead && value.CanRevive() && value.homeZone == this)
1145 {
1146 value.Revive();
1147 Point point = GetSpawnPos(value);
1148 if (value.orgPos != null && value.orgPos.IsInBounds)
1149 {
1150 point = value.orgPos.GetNearestPoint() ?? point;
1151 }
1152 EClass._zone.AddCard(value, point);
1153 }
1154 }
1155 map.deadCharas.Clear();
1156 }
int c_idBacker
Definition: Card.cs:1438
bool CanRevive()
Definition: Chara.cs:5153
void Revive(Point p=null, bool msg=false)
Definition: Chara.cs:5179
Zone homeZone
Definition: Chara.cs:269
bool IsInBounds
Definition: Point.cs:104
virtual bool CanAutoRevive
Definition: TraitChara.cs:20
virtual bool ShouldAutoRevive
Definition: Zone.cs:380

References EClass._zone, AddCard(), GameSetting.balance, Card.c_idBacker, TraitChara.CanAutoRevive, Chara.CanRevive(), Game.cards, Core.config, EClass.core, World.date, GameSetting.BalanceSetting.dateRevive, Map.deadCharas, Player.doneBackers, EClass.game, Point.GetNearestPoint(), Date.GetRaw(), CardManager.globalCharas, Chara.homeZone, CoreConfig.Test.ignoreBackerDestoryFlag, Card.isBackerContent, Chara.isDead, Point.IsInBounds, Chara.orgPos, EClass.player, Card.pos, Card.RemoveBacker(), Chara.Revive(), EClass.setting, CoreConfig.test, Chara.trait, and EClass.world.

Referenced by Map.ResetEditorPos().

◆ SetAlarm()

virtual void Zone.SetAlarm ( bool  enable)
inlinevirtual

Reimplemented in Zone_CurryRuinDungeon.

Definition at line 3621 of file Zone.cs.

3622 {
3623 base.isAlarmSet = enable;
3624 if (enable)
3625 {
3626 foreach (Chara chara in EClass._map.charas)
3627 {
3628 if (!chara.IsPCFactionOrMinion)
3629 {
3630 chara.SetHostility(Hostility.Enemy);
3631 }
3632 }
3633 Msg.Say("alarm");
3634 Msg.Say("alarm2");
3635 SE.Play("alarm");
3636 return;
3637 }
3638 foreach (Chara chara2 in EClass._map.charas)
3639 {
3640 if (!chara2.IsPCFactionOrMinion)
3641 {
3642 chara2.SetHostility(Hostility.Neutral);
3643 }
3644 }
3645 }
Chara SetHostility(Hostility h)
Definition: Chara.cs:1456

References EClass._map, Map.charas, Card.IsPCFactionOrMinion, Msg.Say(), and Chara.SetHostility().

Referenced by Point.CallGuard(), and GoalCombat.Run().

◆ SetBGM() [1/2]

void Zone.SetBGM ( int  id = -1,
bool  refresh = true,
float  fadeDuration = 0f 
)
inline

Definition at line 3029 of file Zone.cs.

3030 {
3031 SetBGM(new List<int> { id }, refresh, fadeDuration);
3032 }

◆ SetBGM() [2/2]

void Zone.SetBGM ( List< int >  ids,
bool  refresh = true,
float  fadeDuration = 0f 
)
inline

Definition at line 2992 of file Zone.cs.

2993 {
2994 map._plDay.Clear();
2995 if (ids.Count > 0)
2996 {
2997 foreach (int id in ids)
2998 {
2999 if (id != -1)
3000 {
3001 map._plDay.Add(id);
3002 }
3003 }
3004 }
3005 UnityEngine.Object.DestroyImmediate(map.plDay);
3006 map.plDay = null;
3008 if (!refresh)
3009 {
3010 return;
3011 }
3012 if (fadeDuration > 0f)
3013 {
3014 EClass.Sound.StopBGM(fadeDuration, playLastBGM: false, delegate
3015 {
3017 {
3018 RefreshBGM();
3019 }
3020 });
3021 }
3022 else
3023 {
3024 EClass.Sound.StopBGM();
3025 RefreshBGM();
3026 }
3027 }
bool IsGameStarted
Definition: Core.cs:84

References Map._plDay, Game.activeZone, EClass.core, EClass.game, Core.IsGameStarted, Map.plDay, and EClass.Sound.

Referenced by ZoneEventSubdue.CheckClear(), ClaimZone(), ZonePreEnterBout.Execute(), Zone_DungeonDead.OnActivate(), Zone_EternalGarden.OnActivate(), Zone_Nefu.OnActivate(), ZoneEventDefenseGame.OnVisit(), ZoneEventHarvest.OnVisit(), ZoneEventSubdue.OnVisit(), DramaManager.ParseLine(), GoalCombat.Run(), Zone_CurryRuinDungeon.SetAlarm(), CardRenderer.ShowBossText(), ActThrow.Throw(), and Chara.TryDropBossLoot().

◆ SetFieldEffect()

void Zone.SetFieldEffect ( int  idEle,
int  a 
)
inline

Definition at line 2917 of file Zone.cs.

2918 {
2919 fieldElements.SetBase(idEle, a);
2920 }
Element SetBase(string alias, int v, int potential=0)

References ElementContainer.SetBase().

Referenced by Zone_DungeonDead.OnActivate().

◆ ShouldScaleImportedChara()

virtual bool Zone.ShouldScaleImportedChara ( Chara  c)
inlinevirtual

Reimplemented in Zone_QuestDungeon.

Definition at line 542 of file Zone.cs.

543 {
544 return false;
545 }

Referenced by SerializedCards.Restore().

◆ Simulate()

void Zone.Simulate ( )
inline

Definition at line 1190 of file Zone.cs.

1191 {
1192 if (!EClass.game.isLoading && base.visitCount > 0)
1193 {
1194 if (Boss != null && IsNefia)
1195 {
1196 Msg.Say("bossLeave", Boss.Name.ToTitleCase(), EClass._zone.Name);
1199 }
1200 int num = Mathf.Clamp(MinsSinceLastActive, 1, 10000);
1201 foreach (Chara chara2 in EClass._map.charas)
1202 {
1203 if (chara2.hp < 0)
1204 {
1205 chara2.hp = 0;
1206 }
1207 if (!chara2.IsPCParty)
1208 {
1209 if (chara2.mana.value < 0)
1210 {
1211 chara2.mana.value = 0;
1212 }
1213 if (chara2.stamina.value < 0)
1214 {
1215 chara2.stamina.value = 0;
1216 }
1217 }
1218 if (num > 60)
1219 {
1220 chara2.resistCon = null;
1221 }
1222 if (chara2.rarity >= Rarity.Legendary && !chara2.IsPCFaction && num > 0)
1223 {
1224 Msg.ignoreAll = true;
1225 chara2.Cure(CureType.Boss, 20 + num * 10);
1226 chara2.HealHP((int)((long)Mathf.Max(1, chara2.MaxHP) * (long)Mathf.Min(num, 20) / 20));
1227 chara2.mana.Mod(Mathf.Max(1, chara2.mana.max) * Mathf.Min(num, 20) / 20);
1228 chara2.stamina.Mod(Mathf.Max(1, chara2.stamina.max) * Mathf.Min(num, 20) / 20);
1229 Msg.ignoreAll = false;
1230 }
1231 }
1232 }
1233 Debug.Log("Last Active:" + base.lastActive);
1234 if (base.lastActive == 0 || HourSinceLastActive <= 1 || IsRegion)
1235 {
1236 return;
1237 }
1238 Debug.Log(Name + " Simulate:" + HourSinceLastActive + " hours");
1239 VirtualDate virtualDate = new VirtualDate(HourSinceLastActive);
1240 List<Chara> list = EClass._map.charas.ToList();
1241 int num2 = HourSinceLastActive / 24;
1242 int num3 = 0;
1243 if (num2 > 0)
1244 {
1245 foreach (Chara item in list)
1246 {
1247 if (!item.IsPCParty)
1248 {
1249 item.OnSleep(200, num2);
1250 if (item.conSleep != null)
1251 {
1252 item.conSleep.Kill();
1253 }
1254 if (EClass.rnd(EClass.world.date.IsNight ? 20 : 200) == 0 && !item.IsPCFaction)
1255 {
1256 item.AddCondition<ConSleep>(1000 + EClass.rnd(1000), force: true);
1257 }
1258 if (item.things.Count > 20)
1259 {
1260 item.ClearInventory(ClearInventoryType.Purge);
1261 }
1262 }
1263 }
1264 }
1265 VirtualDate.current = virtualDate;
1266 for (int i = 0; i < HourSinceLastActive; i++)
1267 {
1268 virtualDate.SimulateHour();
1269 if (!virtualDate.IsWinter)
1270 {
1271 num3++;
1272 }
1273 }
1274 EClass._map.things.ForeachReverse(delegate(Thing t)
1275 {
1277 });
1278 VirtualDate.current = null;
1279 if (!IsPCFaction)
1280 {
1281 return;
1282 }
1283 int num4 = 0;
1284 foreach (Chara item2 in list)
1285 {
1286 if (item2.IsPCParty)
1287 {
1288 continue;
1289 }
1290 if (!item2.IsHomeMember())
1291 {
1292 if (item2.id == "bee")
1293 {
1294 num4++;
1295 }
1296 if (num2 > 0 && item2.IsGuest())
1297 {
1298 item2.ChooseNewGoal();
1299 item2.ai.SimulateZone(num2);
1300 }
1301 continue;
1302 }
1303 if (num2 > 0)
1304 {
1305 Goal goalWork = item2.GetGoalWork();
1306 item2.SetAI(goalWork);
1307 if (goalWork is GoalWork)
1308 {
1309 (goalWork as GoalWork).FindWork(item2);
1310 }
1311 item2.ai.SimulateZone(num2);
1312 goalWork = item2.GetGoalHobby();
1313 item2.SetAI(goalWork);
1314 if (goalWork is GoalWork)
1315 {
1316 (goalWork as GoalWork).FindWork(item2);
1317 }
1318 item2.ai.SimulateZone(num2);
1319 }
1320 item2.ChooseNewGoal();
1321 if (item2.conSuspend == null)
1322 {
1323 item2.ai.OnSimulatePosition();
1324 }
1325 }
1326 List<Thing> list2 = new List<Thing>();
1327 foreach (Thing thing in map.things)
1328 {
1329 if (thing.IsInstalled && thing.trait is TraitBeekeep)
1330 {
1331 list2.Add(thing);
1332 }
1333 }
1334 if (num4 >= list2.Count)
1335 {
1336 return;
1337 }
1338 for (int j = num4; j < list2.Count; j++)
1339 {
1340 if (EClass.rnd(200) <= HourSinceLastActive)
1341 {
1342 Chara chara = CharaGen.Create("bee");
1343 AddCard(chara, list2.RandomItem().pos);
1344 Hostility c_originalHostility = (chara.hostility = Hostility.Neutral);
1345 chara.c_originalHostility = c_originalHostility;
1346 }
1347 }
1348 }
ClearInventoryType
CureType
Definition: CureType.cs:2
virtual void OnSimulatePosition()
Definition: AIAct.cs:594
void SimulateZone(int days)
Definition: AIAct.cs:582
virtual void HealHP(int a, HealSource origin=HealSource.None)
Definition: Card.cs:4032
int hp
Definition: Card.cs:243
string Name
Definition: Card.cs:2140
AIAct ai
Definition: Chara.cs:204
ConSuspend conSuspend
Definition: Chara.cs:104
Goal GetGoalWork()
Definition: Chara.cs:8834
override int MaxHP
Definition: Chara.cs:710
Goal GetGoalHobby()
Definition: Chara.cs:8847
Stats mana
Definition: Chara.cs:1168
Stats stamina
Definition: Chara.cs:1160
bool IsHomeMember()
Definition: Chara.cs:6599
bool IsGuest()
Definition: Chara.cs:6624
void ChooseNewGoal()
Definition: Chara.cs:8770
void Cure(CureType type, int p=100, BlessedState state=BlessedState.Normal)
Definition: Chara.cs:9522
bool IsNight
Definition: Date.cs:112
Definition: Goal.cs:4
bool isConquered
Definition: Spatial.cs:382
virtual void Mod(int a)
Definition: Stats.cs:135
virtual int value
Definition: Stats.cs:56
virtual int max
Definition: Stats.cs:68
void SimulateHour()
Definition: VirtualDate.cs:66
int MinsSinceLastActive
Definition: Zone.cs:125
Chara Boss
Definition: Zone.cs:86
int HourSinceLastActive
Definition: Zone.cs:123

References EClass._map, EClass._zone, Chara.ai, Boss, Map.charas, Chara.ChooseNewGoal(), Chara.conSuspend, CharaGen.Create(), Chara.Cure(), World.date, Debug, Card.DecayNatural(), EClass.game, Chara.GetGoalHobby(), Chara.GetGoalWork(), GetTopZone(), Card.HealHP(), Card.hp, Card.id, Spatial.isConquered, Chara.IsGuest(), Chara.IsHomeMember(), Card.IsInstalled, Game.isLoading, Date.IsNight, Chara.IsPCFaction, Chara.IsPCParty, Date.IsWinter, item, Chara.mana, Stats.max, Chara.MaxHP, Stats.Mod(), Spatial.Name, AIAct.OnSimulatePosition(), Card.pos, Card.rarity, RemoveCard(), EClass.rnd(), Msg.Say(), Chara.SetAI(), VirtualDate.SimulateHour(), AIAct.SimulateZone(), Chara.stamina, Map.things, Card.trait, Stats.value, and EClass.world.

◆ SpawnAltar()

void Zone.SpawnAltar ( )
inline

Definition at line 2536 of file Zone.cs.

2537 {
2539 {
2540 if (r.points.Count <= 4)
2541 {
2542 return false;
2543 }
2544 map.poiMap.OccyupyPOI(r.points[0]);
2545 List<Point> points = r.points;
2546 Religion randomReligion = EClass.game.religions.GetRandomReligion();
2547 "altarPoint".lang(randomReligion.NameDomain.lang());
2548 Thing thing = ThingGen.Create("altar");
2549 (thing.trait as TraitAltar).SetDeity(randomReligion.id);
2550 Chara t = CharaGen.Create("twintail");
2551 EClass._zone.AddCard(t, points.RandomItem());
2552 for (int i = 0; i < 2 + EClass.rnd(2); i++)
2553 {
2554 Chara t2 = CharaGen.Create("twintail");
2555 EClass._zone.AddCard(t2, points.RandomItem());
2556 }
2557 if (points[0].Installed == null)
2558 {
2559 EClass._zone.AddCard(thing, points[0]).Install();
2560 }
2561 foreach (Point item in points)
2562 {
2563 if (item.x % 3 == 0 && item.z % 2 == 0 && item != points[0] && !item.Equals(points[0].Front) && item.Installed == null)
2564 {
2565 thing = ThingGen.Create("pillar1");
2566 EClass._zone.AddCard(thing, item).Install();
2567 }
2568 item.SetObj();
2569 item.SetFloor(3, 6);
2570 }
2571 return true;
2572 });
2573 }
Crawler start
Definition: CoreRef.cs:214
Crawlers crawlers
Definition: CoreRef.cs:343
ReligionManager religions
Definition: Game.cs:159
POIMap poiMap
Definition: Map.cs:97
Point GetCenter()
Definition: POIMap.cs:13
Cell GetCenterCell(int radius=1)
Definition: POIMap.cs:65
void OccyupyPOI(Point p, int radius=0)
Definition: POIMap.cs:99
Religion GetRandomReligion(bool onlyJoinable=true, bool includeMinor=false)

References EClass._zone, AddCard(), EClass.core, CoreRef.crawlers, Crawler.CrawlUntil(), ThingGen.Create(), CharaGen.Create(), EClass.game, POIMap.Cell.GetCenter(), POIMap.GetCenterCell(), ReligionManager.GetRandomReligion(), item, POIMap.OccyupyPOI(), Map.poiMap, Core.refs, Game.religions, EClass.rnd(), CoreRef.Crawlers.start, and Card.trait.

◆ SpawnLostItems()

void Zone.SpawnLostItems ( )
inline

Definition at line 3789 of file Zone.cs.

3790 {
3791 for (int i = 0; i < 2 + EClass.rnd(4); i++)
3792 {
3793 Point point = GetPos();
3794 if (point == null)
3795 {
3796 continue;
3797 }
3798 if (EClass.rnd(30) == 0)
3799 {
3800 Thing thing = ThingGen.Create("purse");
3801 thing.isLostProperty = true;
3802 thing.things.DestroyAll();
3803 int num2 = (thing.c_lockLv = EClass.rndHalf(Mathf.Min(base.development / 10 + 10, 50)));
3804 thing.Add("money", EClass.rndHalf(num2 * 60 + 1000));
3805 if (EClass.rnd(2) == 0)
3806 {
3807 thing.Add("plat", EClass.rnd(4));
3808 }
3809 else
3810 {
3811 thing.Add("medal", EClass.rnd(2));
3812 }
3813 EClass._zone.AddCard(thing, point);
3814 }
3815 else
3816 {
3818 }
3819 }
3820 static Point GetPos()
3821 {
3822 for (int j = 0; j < 10; j++)
3823 {
3824 Point randomPoint = EClass._zone.bounds.GetRandomPoint();
3825 if (!randomPoint.IsBlocked && !randomPoint.HasThing && !randomPoint.HasObj && !randomPoint.HasBlock)
3826 {
3827 return randomPoint;
3828 }
3829 }
3830 return null;
3831 }
3832 }
ThingContainer things
Definition: Card.cs:39
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3104
static int rndHalf(int a)
Definition: EClass.cs:97
void DestroyAll(Func< Thing, bool > funcExclude=null)
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
MapBounds bounds
Definition: Zone.cs:49

References EClass._zone, Card.Add(), AddCard(), bounds, ThingGen.Create(), ThingGen.CreateFromCategory(), ThingContainer.DestroyAll(), MapBounds.GetRandomPoint(), Point.HasBlock, Point.HasObj, Point.HasThing, Point.IsBlocked, EClass.rnd(), EClass.rndHalf(), and Card.things.

◆ SpawnMob() [1/2]

Chara Zone.SpawnMob ( Point  pos = null,
SpawnSetting  setting = null 
)
inline

Definition at line 2772 of file Zone.cs.

2773 {
2774 if (setting == null)
2775 {
2777 }
2778 if (pos == null)
2779 {
2780 pos = GetSpawnPos(setting.position, setting.tries);
2781 if (pos == null)
2782 {
2783 pos = GetSpawnPos(SpawnPosition.Random, setting.tries);
2784 if (pos == null)
2785 {
2786 return null;
2787 }
2788 }
2789 }
2791 if (IsUnderwater && EClass.rnd(15) != 0)
2792 {
2794 }
2795 SpawnList spawnList = null;
2796 spawnList = ((setting.idSpawnList != null) ? SpawnList.Get(setting.idSpawnList) : ((EClass._zone is Zone_DungeonYeek && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_yeek", (SourceChara.Row r) => r.race == "yeek" && r.quality == 0) : ((EClass._zone is Zone_DungeonDragon && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_dragon", (SourceChara.Row r) => (r.race == "dragon" || r.race == "drake" || r.race == "wyvern" || r.race == "lizardman" || r.race == "dinosaur") && r.quality == 0) : ((EClass._zone is Zone_DungeonMino && EClass.rnd(5) != 0) ? SpawnListChara.Get("dungeon_mino", (SourceChara.Row r) => r.race == "minotaur" && r.quality == 0) : ((setting.hostility == SpawnHostility.Neutral || (setting.hostility != SpawnHostility.Enemy && Rand.Range(0f, 1f) < ChanceSpawnNeutral)) ? SpawnList.Get("c_neutral") : ((biome.spawn.chara.Count <= 0) ? SpawnList.Get(biome.name, "chara", new CharaFilter
2797 {
2798 ShouldPass = delegate(SourceChara.Row s)
2799 {
2800 if (s.hostility != "")
2801 {
2802 return false;
2803 }
2804 return s.biome == biome.name || s.biome.IsEmpty();
2805 }
2807 int num = ((setting.dangerLv == -1) ? DangerLv : setting.dangerLv);
2808 CardBlueprint cardBlueprint = new CardBlueprint
2809 {
2810 rarity = Rarity.Normal,
2811 idEle = setting.idEle
2812 };
2813 int num2 = ((setting.filterLv == -1) ? num : setting.filterLv);
2814 if (ScaleType == ZoneScaleType.Void)
2815 {
2816 num2 = ((num - 1) % 50 + 5) * 150 / 100;
2817 if (num2 >= 20 && EClass.rnd(100) < num2)
2818 {
2819 num2 = num;
2820 }
2821 }
2822 CardRow cardRow = (setting.id.IsEmpty() ? spawnList.Select(num2, setting.levelRange) : EClass.sources.cards.map[setting.id]);
2823 if (EClass.world.date.month == 12 && setting.rarity == Rarity.Random && EClass._zone.IsNefia && EClass._zone.isRandomSite && EClass.world.date.day >= 24 && EClass.world.date.day <= 26 && EClass.rnd(50 * (1 + EClass.player.flags.santa) * (1 + EClass.player.flags.santa)) == 0)
2824 {
2825 cardRow = EClass.sources.cards.map["santa"];
2827 }
2828 long num3 = ((setting.fixedLv == -1) ? cardRow.LV : setting.fixedLv);
2829 bool flag = setting.fixedLv != -1 || DangerLvBoost > 0;
2830 if (ScaleType == ZoneScaleType.Void)
2831 {
2832 num3 = (50L + (long)cardRow.LV) * Mathf.Max(1, (num - 1) / 50);
2833 flag = true;
2834 }
2835 num3 += DangerLvBoost;
2836 if (setting.rarity == Rarity.Random && cardRow.quality == 0)
2837 {
2838 if (EClass.rnd(EClass.pc.HasElement(1271) ? 80 : 100) == 0)
2839 {
2840 cardBlueprint.rarity = Rarity.Legendary;
2841 num3 = num3 * 125 / 100;
2842 }
2843 }
2844 else
2845 {
2846 cardBlueprint.rarity = setting.rarity;
2847 }
2848 if (setting.isBoss)
2849 {
2850 num3 = num3 * 150 / 100;
2851 }
2852 if (setting.isEvolved)
2853 {
2854 num3 = num3 * 2 + 20;
2855 }
2856 if (num3 != cardRow.LV)
2857 {
2858 cardBlueprint.lv = (int)Mathf.Min(num3, 100000000f);
2859 }
2860 CardBlueprint.Set(cardBlueprint);
2861 Chara chara = CharaGen.Create(cardRow.id, num2);
2862 if (!flag)
2863 {
2864 chara.isScaled = false;
2865 }
2866 AddCard(chara, pos);
2867 if (setting.forcedHostility.HasValue)
2868 {
2869 Hostility c_originalHostility = (chara.hostility = setting.forcedHostility.Value);
2870 chara.c_originalHostility = c_originalHostility;
2871 }
2872 else
2873 {
2874 switch (chara.id)
2875 {
2876 case "unicorn":
2877 if (EClass.pc.HasElement(1216) && EClass.pc.Evalue(418) < 1)
2878 {
2879 chara.SetHostility(Hostility.Enemy);
2880 }
2881 break;
2882 case "santa":
2883 case "silverwolf":
2884 case "twintail":
2885 case "test17":
2886 if (EClass.pc.HasElement(1270))
2887 {
2888 chara.SetHostility(Hostility.Friend);
2889 }
2890 else if (EClass.pc.HasElement(1271))
2891 {
2892 chara.SetHostility(Hostility.Enemy);
2893 }
2894 break;
2895 }
2896 }
2897 if (setting.isBoss)
2898 {
2899 chara.c_bossType = BossType.Boss;
2900 }
2901 if (setting.isEvolved)
2902 {
2903 chara.c_bossType = BossType.Evolved;
2904 }
2905 if (DangerLv >= 20 && !IsPCFaction && !IsTown && EClass.rnd(200) == 0)
2906 {
2908 }
2909 return chara;
2910 }
BossType
Definition: BossType.cs:2
SpawnHostility
ZoneScaleType
Definition: ZoneScaleType.cs:2
string GetRandomCharaId()
static void Set(CardBlueprint _bp=null)
int quality
Definition: CardRow.cs:19
string id
Definition: CardRow.cs:7
bool HasElement(int ele, bool includeNagative=false)
Definition: Card.cs:6065
BiomeProfile biome
Definition: Cell.cs:1075
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9269
BiomeProfile Water
Definition: CoreRef.cs:152
BiomeProfile Sand
Definition: CoreRef.cs:150
Biomes biomes
Definition: CoreRef.cs:341
int month
Definition: Date.cs:50
int day
Definition: Date.cs:62
int santa
Definition: Player.cs:575
Flags flags
Definition: Player.cs:1094
static int Range(int min, int max)
Definition: Rand.cs:42
int LV
Definition: RenderRow.cs:22
bool isRandomSite
Definition: Spatial.cs:334
virtual int DangerLvBoost
Definition: Spatial.cs:489
static SpawnList Get(string id, Func< SourceChara.Row, bool > func)
static SpawnList Get(string id, string parent=null, CardFilter filter=null)
Definition: SpawnList.cs:18
CardRow Select(int lv=-1, int levelRange=-1)
Definition: SpawnList.cs:139
static SpawnSetting Default
Definition: SpawnSetting.cs:31
virtual ZoneScaleType ScaleType
Definition: Zone.cs:411
virtual float ChanceSpawnNeutral
Definition: Zone.cs:345

References EClass._zone, CoreRef.biomes, EClass.core, SpawnSetting.Default, SpawnListChara.Get(), SpawnList.Get(), Rand.Range(), Core.refs, EClass.rnd(), CoreRef.Biomes.Sand, and CoreRef.Biomes.Water.

◆ SpawnMob() [2/2]

◆ TextLevel()

string Zone.TextLevel ( int  _lv)
inline

Definition at line 557 of file Zone.cs.

558 {
559 if (_lv != 0)
560 {
561 if (base.lv <= 0)
562 {
563 return " " + "zoneLevelB".lang((_lv * -1).ToString() ?? "");
564 }
565 return " " + "zoneLevel".lang((_lv + 1).ToString() ?? "");
566 }
567 return "";
568 }
override string ToString()
Definition: Zone.cs:552

References ToString().

◆ ToString()

override string Zone.ToString ( )
inline

Definition at line 552 of file Zone.cs.

553 {
554 return Name + "(" + base.uid + ")(" + _regionPos?.ToString() + ") instance?" + IsInstance + "/" + EClass.world.date.GetRemainingHours(base.dateExpire) + "h";
555 }
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:341
override string ToString()
Definition: Point.cs:524
Point _regionPos
Definition: Spatial.cs:55

References Spatial._regionPos, World.date, Date.GetRemainingHours(), IsInstance, Spatial.Name, Point.ToString(), and EClass.world.

Referenced by Game.OnLoad(), and TextLevel().

◆ TryAddThing()

bool Zone.TryAddThing ( Thing  target,
Point  p,
bool  destroyIfFail = false 
)
inline

Definition at line 2232 of file Zone.cs.

2233 {
2234 int num = 0;
2235 if (p.cell.detail != null)
2236 {
2237 foreach (Thing thing in p.cell.detail.things)
2238 {
2239 if (thing.placeState == PlaceState.roaming)
2240 {
2241 if (target.TryStackTo(thing))
2242 {
2243 return true;
2244 }
2245 num++;
2246 }
2247 }
2248 }
2249 if (num == 0 || !destroyIfFail)
2250 {
2251 EClass._zone.AddCard(target, p);
2252 return true;
2253 }
2254 target.Destroy();
2255 return false;
2256 }
bool TryStackTo(Thing to)
Definition: Card.cs:3426
List< Thing > things
Definition: CellDetail.cs:11

References EClass._zone, AddCard(), Point.cell, Card.Destroy(), Cell.detail, Card.placeState, CellDetail.things, and Card.TryStackTo().

Referenced by FactionBranch.GenerateGarbage(), and Card.GiveBirth().

◆ TryAddThingInSharedContainer()

bool Zone.TryAddThingInSharedContainer ( Thing  t,
List< Thing containers = null,
bool  add = true,
bool  msg = false,
Chara  chara = null,
bool  sharedOnly = true 
)
inline

Definition at line 2135 of file Zone.cs.

2136 {
2137 Thing dest = null;
2138 int priority = -1;
2139 ContainerFlag flag = t.category.GetRoot().id.ToEnum<ContainerFlag>();
2140 if (flag == ContainerFlag.none)
2141 {
2142 flag = ContainerFlag.other;
2143 }
2144 if (containers == null)
2145 {
2146 containers = EClass._map.props.installed.containers;
2147 }
2148 if (SearchDest() != null)
2149 {
2150 return true;
2151 }
2152 if (dest == null)
2153 {
2154 return false;
2155 }
2156 if (add)
2157 {
2158 if (msg)
2159 {
2160 chara.Say("putSharedItem", chara, t, dest.GetName(NameStyle.Full));
2161 }
2162 dest.AddThing(t);
2163 }
2164 return true;
2165 Thing SearchDest()
2166 {
2167 foreach (Thing container in containers)
2168 {
2169 Thing thing = container;
2170 if (thing.trait is TraitShippingChest)
2171 {
2173 }
2174 if ((!sharedOnly || thing.IsSharedContainer) && thing.c_lockLv <= 0 && (thing.things.Count < thing.things.MaxCapacity || thing.things.CanStack(t) != t))
2175 {
2176 Window.SaveData windowSaveData = thing.GetWindowSaveData();
2177 if (windowSaveData != null)
2178 {
2179 if (windowSaveData.priority <= priority || (windowSaveData.noRotten && t.IsDecayed) || (windowSaveData.onlyRottable && t.trait.Decay == 0))
2180 {
2181 continue;
2182 }
2184 if (windowSaveData.userFilter)
2185 {
2186 filterResult = windowSaveData.IsFilterPass(t.GetName(NameStyle.Full, 1));
2187 if (filterResult == Window.SaveData.FilterResult.Block)
2188 {
2189 continue;
2190 }
2191 }
2192 if (filterResult != Window.SaveData.FilterResult.PassWithoutFurtherTest)
2193 {
2194 if (windowSaveData.advDistribution)
2195 {
2196 bool flag2 = false;
2197 foreach (int cat in windowSaveData.cats)
2198 {
2199 if (t.category.uid == cat)
2200 {
2201 flag2 = true;
2202 break;
2203 }
2204 }
2205 if (!flag2)
2206 {
2207 continue;
2208 }
2209 }
2210 else if (windowSaveData.flag.HasFlag(flag))
2211 {
2212 continue;
2213 }
2214 }
2215 priority = windowSaveData.priority;
2216 }
2217 else
2218 {
2219 if (priority != -1)
2220 {
2221 continue;
2222 }
2223 priority = 0;
2224 }
2225 dest = thing;
2226 }
2227 }
2228 return null;
2229 }
2230 }
ContainerFlag
Definition: ContainerFlag.cs:5
NameStyle
Definition: NameStyle.cs:2
Thing container_shipping
Definition: CardManager.cs:52
bool IsDecayed
Definition: Card.cs:2290
int c_lockLv
Definition: Card.cs:965
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3127
Window.SaveData GetWindowSaveData()
Definition: Card.cs:2519
SourceCategory.Row category
Definition: Card.cs:2050
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6995
List< Thing > containers
Definition: Props.cs:22
Thing CanStack(Thing target, int destInvX=-1, int destInvY=-1)
override string GetName(NameStyle style, int _num=-1)
Definition: Thing.cs:535
bool IsSharedContainer
Definition: Thing.cs:113
virtual int Decay
Definition: Trait.cs:123
FilterResult IsFilterPass(string text)
Definition: Window.cs:498
ContainerFlag flag
Definition: Window.cs:267
HashSet< int > cats
Definition: Window.cs:119
bool userFilter
Definition: Window.cs:132
bool noRotten
Definition: Window.cs:439
bool onlyRottable
Definition: Window.cs:451
bool advDistribution
Definition: Window.cs:427
Definition: Window.cs:13

References EClass._map, Card.AddThing(), Window.SaveData.advDistribution, Card.c_lockLv, ThingContainer.CanStack(), Game.cards, Card.category, Window.SaveData.cats, CardManager.container_shipping, Props.containers, Trait.Decay, Window.SaveData.flag, EClass.game, Thing.GetName(), Card.GetWindowSaveData(), PropsManager.installed, Card.IsDecayed, Window.SaveData.IsFilterPass(), Thing.IsSharedContainer, ThingContainer.MaxCapacity, Window.SaveData.noRotten, Window.SaveData.onlyRottable, Window.SaveData.priority, Map.props, Card.Say(), Card.things, Card.trait, and Window.SaveData.userFilter.

Referenced by FactionBranch.AutoClean(), AI_Haul.GetThingToClean(), AI_Haul.Run(), GrowSystem.TryPick(), Chara.TryPutShared(), and Chara.TryPutSharedItems().

◆ TryAddThingInSpot< T >()

bool Zone.TryAddThingInSpot< T > ( Thing  t,
bool  useContainer = true 
)
inline
Type Constraints
T :Trait 

Definition at line 2058 of file Zone.cs.

2058 : Trait
2059 {
2060 Thing randomThing = EClass._map.props.installed.traits.GetRandomThing<T>();
2061 if (randomThing == null)
2062 {
2064 return false;
2065 }
2066 if (useContainer && (!t.IsContainer || t.things.Count == 0))
2067 {
2068 List<Thing> list = new List<Thing>();
2069 foreach (Point item in randomThing.trait.ListPoints(null, onlyPassable: false))
2070 {
2071 foreach (Card item2 in item.ListCards())
2072 {
2073 if (item2.IsContainer && !(item2.trait is TraitDeliveryChest))
2074 {
2075 list.Add(item2.Thing);
2076 }
2077 }
2078 }
2079 if (TryAddThingInSharedContainer(t, list, add: true, msg: false, null, sharedOnly: false))
2080 {
2081 return true;
2082 }
2083 }
2084 AddCard(t, randomThing.trait.GetRandomPoint());
2085 return true;
2086 }
virtual Thing Thing
Definition: Card.cs:2059
bool IsContainer
Definition: Card.cs:2090
virtual List< Point > ListPoints(Point center=null, bool onlyPassable=true)
Definition: Trait.cs:779
Point GetRandomPoint(Func< Point, bool > func=null, Chara accessChara=null)
Definition: Trait.cs:761
bool TryAddThingInSharedContainer(Thing t, List< Thing > containers=null, bool add=true, bool msg=false, Chara chara=null, bool sharedOnly=true)
Definition: Zone.cs:2135

References EClass._map, Map.bounds, Trait.GetRandomPoint(), MapBounds.GetRandomSurface(), PropsManager.installed, Card.IsContainer, item, Trait.ListPoints(), Map.props, Card.Thing, Card.things, Card.trait, and Props.traits.

◆ TryGenerateBigDaddy()

void Zone.TryGenerateBigDaddy ( )
inline

Definition at line 2648 of file Zone.cs.

2649 {
2650 if (!(BigDaddyChance * (EClass.pc.HasElement(1270) ? 1.1f : 1f) <= EClass.rndf(1f)))
2651 {
2652 int num = (int)((long)DangerLv * 125L / 100);
2653 if (num >= 30)
2654 {
2656 {
2657 lv = num
2658 });
2659 }
2660 Chara chara = CharaGen.Create("big_daddy");
2661 if (EClass.pc.HasElement(1270))
2662 {
2663 chara.SetHostility(Hostility.Friend);
2664 }
2665 else if (EClass.pc.HasElement(1271))
2666 {
2667 chara.SetHostility(Hostility.Enemy);
2668 }
2669 EClass._zone.AddCard(chara, GetSpawnPos(SpawnPosition.Random, 10000));
2670 Msg.Say("sign_bigdaddy");
2671 }
2672 }
static float rndf(float a)
Definition: EClass.cs:102
virtual float BigDaddyChance
Definition: Zone.cs:321

References EClass._zone, AddCard(), CharaGen.Create(), Card.HasElement(), EClass.pc, EClass.rndf(), Msg.Say(), CardBlueprint.Set(), and Chara.SetHostility().

Referenced by Zone_Dungeon.OnGenerateMap().

◆ TryGenerateEvolved()

Chara Zone.TryGenerateEvolved ( bool  force = false,
Point  p = null 
)
inline

Definition at line 2628 of file Zone.cs.

2629 {
2630 float num = EvolvedChance * (EClass.pc.HasElement(1270) ? 1.1f : 1f);
2631 if (!force && num <= EClass.rndf(1f))
2632 {
2633 return null;
2634 }
2635 Chara chara = SpawnMob(p, SpawnSetting.Evolved());
2636 for (int i = 0; i < 2 + EClass.rnd(2); i++)
2637 {
2638 chara.ability.AddRandom();
2639 }
2640 chara.AddThing(chara.MakeGene(DNA.Type.Default));
2641 if (EClass.rnd(2) == 0)
2642 {
2643 chara.AddThing(chara.MakeGene(DNA.Type.Superior));
2644 }
2645 return chara;
2646 }
void AddRandom()
Thing MakeGene(DNA.Type? type=null)
Definition: Chara.cs:8174
CharaAbility ability
Definition: Chara.cs:426
Definition: DNA.cs:8
Type
Definition: DNA.cs:10
static SpawnSetting Evolved(int fixedLv=-1)
Definition: SpawnSetting.cs:35
virtual float EvolvedChance
Definition: Zone.cs:323

References Chara.ability, CharaAbility.AddRandom(), Card.AddThing(), SpawnSetting.Evolved(), Card.HasElement(), Chara.MakeGene(), EClass.pc, EClass.rnd(), and EClass.rndf().

Referenced by ZoneEventSiege.CreateChara(), Zone_Dungeon.OnGenerateMap(), and ZoneEventQuest.SpawnBoss().

◆ TryGenerateOre()

void Zone.TryGenerateOre ( )
inline

Definition at line 2601 of file Zone.cs.

2602 {
2603 if (OreChance <= 0f)
2604 {
2605 return;
2606 }
2607 Crawler.Create("ore").CrawlUntil(tries: EClass.rnd((int)((float)(map.bounds.Width * map.bounds.Height / 200 + 1) * OreChance + 2f)), map: EClass._map, onStart: () => EClass._map.bounds.GetRandomPoint(), canComplete: delegate(Crawler.Result r)
2608 {
2609 byte b = 18;
2610 string group = "ore";
2611 if (EClass.rnd(5) == 0)
2612 {
2613 b++;
2614 group = "gem";
2615 }
2616 SourceMaterial.Row randomMaterial = MATERIAL.GetRandomMaterial(DangerLv, group);
2617 foreach (Point point in r.points)
2618 {
2619 if (point.sourceBlock.ContainsTag("ore"))
2620 {
2621 map.SetObj(point.x, point.z, randomMaterial.id, b, 1, 0);
2622 }
2623 }
2624 return false;
2625 });
2626 }
static SourceMaterial.Row GetRandomMaterial(int lv, string group=null, bool tryLevelMatTier=false)
Definition: MATERIAL.cs:56
int Width
Definition: MapBounds.cs:26
int Height
Definition: MapBounds.cs:28
virtual float OreChance
Definition: Zone.cs:319

References EClass._map, Map.bounds, Crawler.CrawlUntil(), Crawler.Create(), MATERIAL.GetRandomMaterial(), MapBounds.GetRandomPoint(), MapBounds.Height, EClass.rnd(), and MapBounds.Width.

Referenced by Zone_Dungeon.OnGenerateMap().

◆ TryGenerateShrine()

void Zone.TryGenerateShrine ( )
inline

Definition at line 2674 of file Zone.cs.

2675 {
2676 float num = ShrineChance * (EClass.pc.HasElement(1270) ? 1.1f : 1f);
2677 for (int i = 0; i < 3; i++)
2678 {
2679 Rand.SetSeed(base.uid + i);
2680 if (num <= EClass.rndf(1f))
2681 {
2682 continue;
2683 }
2684 Point randomSpace = EClass._map.GetRandomSpace(3, 3);
2685 if (randomSpace == null)
2686 {
2687 continue;
2688 }
2689 randomSpace.x++;
2690 randomSpace.z++;
2691 if (randomSpace.HasThing || randomSpace.HasChara)
2692 {
2693 continue;
2694 }
2695 randomSpace.SetObj();
2698 if (EClass.rnd(EClass.debug.test ? 2 : 15) == 0)
2699 {
2700 EClass._zone.AddCard(ThingGen.Create("pedestal_power"), randomSpace).Install();
2701 EClass._zone.AddCard(ThingGen.Create(EClass.gamedata.godStatues.RandomItemWeighted((GodStatueData a) => a.chance).idThing, -1, DangerLv), randomSpace).Install();
2702 }
2703 else
2704 {
2705 EClass._zone.AddCard(ThingGen.Create("statue_power", -1, DangerLv), randomSpace).Install().SetRandomDir();
2706 }
2707 }
2708 Rand.SetSeed();
2709 }
void SetRandomDir()
Definition: Card.cs:6380
bool test
Definition: CoreDebug.cs:170
static GameData gamedata
Definition: EClass.cs:37
List< GodStatueData > godStatues
Definition: GameData.cs:9
Point GetRandomSpace(int width, int height, int tries=100)
Definition: MapBounds.cs:246
int seedShrine
Definition: Player.cs:941
void SetObj(int id=0, int value=1, int dir=0)
Definition: Point.cs:928
virtual float ShrineChance
Definition: Zone.cs:325

References EClass._map, EClass._zone, AddCard(), GodStatueData.chance, ThingGen.Create(), EClass.debug, EClass.gamedata, MapBounds.GetRandomSpace(), GameData.godStatues, Point.HasChara, Card.HasElement(), Point.HasThing, EClass.pc, EClass.player, EClass.rnd(), EClass.rndf(), Player.seedShrine, Point.SetObj(), Card.SetRandomDir(), Rand.SetSeed(), CoreDebug.test, Point.x, and Point.z.

Referenced by Zone_Dungeon.OnGenerateMap().

◆ TryGetRestock< T >()

Thing Zone.TryGetRestock< T > ( string  idCat)
inline
Type Constraints
T :TraitSpot 

Definition at line 2274 of file Zone.cs.

2274 : TraitSpot
2275 {
2276 List<T> list = new List<T>();
2277 foreach (Thing thing2 in EClass._map.things)
2278 {
2279 if (thing2.IsInstalled && thing2.trait is T)
2280 {
2281 list.Add(thing2.trait as T);
2282 }
2283 }
2284 foreach (T item in list)
2285 {
2286 foreach (Point item2 in item.ListPoints(null, onlyPassable: false))
2287 {
2288 foreach (Thing thing3 in item2.Things)
2289 {
2290 if (!thing3.IsInstalled || thing3.isSale)
2291 {
2292 continue;
2293 }
2294 if (thing3.things.Count == 0)
2295 {
2296 if (IsValid(thing3, insideContainer: false))
2297 {
2298 return thing3;
2299 }
2300 continue;
2301 }
2302 Thing thing = thing3.things.Find((Thing _t) => IsValid(_t, insideContainer: true));
2303 if (thing != null)
2304 {
2305 return thing;
2306 }
2307 }
2308 }
2309 }
2310 return null;
2311 bool IsValid(Thing t, bool insideContainer)
2312 {
2313 if (t.category.id != idCat || !TraitSalesTag.CanTagSale(t, insideContainer))
2314 {
2315 return false;
2316 }
2317 return true;
2318 }
2319 }
bool isSale
Definition: Card.cs:867
List< Thing > Things
Definition: Point.cs:338
Thing Find(int uid)
static bool CanTagSale(Card t, bool insideContainer=false)
Definition: TraitSalesTag.cs:9

References EClass._map, TraitSalesTag.CanTagSale(), Card.category, ThingContainer.Find(), Card.IsInstalled, Card.isSale, item, Card.things, Map.things, Point.Things, and Card.trait.

◆ TryGetThingFromSharedContainer()

Thing Zone.TryGetThingFromSharedContainer ( Func< Thing, bool >  func)
inline

Definition at line 2258 of file Zone.cs.

2259 {
2260 foreach (Thing container in EClass._map.props.installed.containers)
2261 {
2262 if (container.IsSharedContainer)
2263 {
2264 Thing thing = container.things.Find(func);
2265 if (thing != null)
2266 {
2267 return thing;
2268 }
2269 }
2270 }
2271 return null;
2272 }

References EClass._map, Props.containers, ThingContainer.Find(), PropsManager.installed, Thing.IsSharedContainer, Map.props, and Card.things.

Referenced by FactionBranch.DailyOutcome(), and FactionBranch.GetMeal().

◆ TryListThingsInSpot< T >()

List< Thing > Zone.TryListThingsInSpot< T > ( Func< Thing, bool >  func = null)
inline
Type Constraints
T :TraitSpot 

Definition at line 2088 of file Zone.cs.

2088 : TraitSpot
2089 {
2090 List<T> list = new List<T>();
2091 List<Thing> list2 = new List<Thing>();
2092 foreach (Thing thing in EClass._map.things)
2093 {
2094 if (thing.IsInstalled && thing.trait is T)
2095 {
2096 list.Add(thing.trait as T);
2097 }
2098 }
2099 foreach (T item in list)
2100 {
2101 foreach (Point item2 in item.ListPoints(null, onlyPassable: false))
2102 {
2103 foreach (Thing thing2 in item2.Things)
2104 {
2105 if (!thing2.IsInstalled)
2106 {
2107 continue;
2108 }
2109 if (thing2.things.Count == 0)
2110 {
2111 if (IsValid(thing2))
2112 {
2113 list2.Add(thing2);
2114 }
2115 continue;
2116 }
2117 foreach (Thing item3 in thing2.things.List((Thing _t) => IsValid(_t)))
2118 {
2119 list2.Add(item3);
2120 }
2121 }
2122 }
2123 }
2124 return list2;
2125 bool IsValid(Thing t)
2126 {
2127 if (func != null && !func(t))
2128 {
2129 return false;
2130 }
2131 return true;
2132 }
2133 }
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)

References EClass._map, Card.IsInstalled, item, ThingContainer.List(), Card.things, Map.things, Point.Things, and Card.trait.

◆ TrySpawnFollower()

void Zone.TrySpawnFollower ( )
inline

Definition at line 2502 of file Zone.cs.

2503 {
2504 bool flag = EClass.pc.HasCondition<ConDrawBacker>();
2505 if (!EClass.debug.enable && EClass.rnd(flag ? 3 : 20) != 0)
2506 {
2507 return;
2508 }
2509 Point randomSurface = EClass._map.bounds.GetRandomSurface();
2510 if (!randomSurface.IsValid)
2511 {
2512 return;
2513 }
2514 Chara c = CharaGen.Create("follower");
2515 EClass._zone.AddCard(c, randomSurface);
2516 (EClass._zone.AddThing("gallows", randomSurface).Install().trait as TraitShackle).Restrain(c);
2517 c.c_rescueState = RescueState.WaitingForRescue;
2518 if (EClass.rnd(flag ? 1 : 2) == 0 || EClass.debug.enable)
2519 {
2521 if (row != null)
2522 {
2523 c.ApplyBacker(row.id);
2524 }
2525 }
2526 Religion faith = EClass.game.religions.dictAll.Values.Where((Religion a) => a != c.faith).RandomItem();
2527 for (int i = 0; i < 3 + EClass.rnd(4); i++)
2528 {
2529 Chara chara = CharaGen.Create("fanatic");
2530 chara.SetFaith(faith);
2531 Point point = randomSurface.GetRandomPoint(4) ?? randomSurface.GetNearestPoint();
2532 EClass._zone.AddCard(chara, point);
2533 }
2534 }
RescueState
Definition: RescueState.cs:2
static int indexFollower
Religion faith
Definition: Chara.cs:441
void SetFaith(string id)
Definition: Chara.cs:1727
Dictionary< string, Religion > dictAll
List< Row > listFollower
Definition: SourceBacker.cs:82

References EClass._map, EClass._zone, AddCard(), AddThing(), Card.ApplyBacker(), SourceManager.backers, Map.bounds, CharaGen.Create(), EClass.debug, ReligionManager.dictAll, CoreDebug.enable, Chara.faith, faith, EClass.game, Point.GetNearestPoint(), Point.GetRandomPoint(), MapBounds.GetRandomSurface(), Chara.HasCondition(), SourceBacker.Row.id, BackerContent.indexFollower, Card.Install(), Point.IsValid, SourceBacker.listFollower, EClass.pc, Game.religions, EClass.rnd(), Chara.SetFaith(), EClass.sources, and Card.trait.

◆ UnloadMap()

void Zone.UnloadMap ( )
inline

Definition at line 1713 of file Zone.cs.

1714 {
1715 map = null;
1716 if (bp != null)
1717 {
1718 bp.map = null;
1719 }
1720 if (branch != null)
1721 {
1723 }
1724 Debug.Log("Unloaded Map:" + this);
1725 }
void OnUnloadMap()

References Debug, and FactionBranch.OnUnloadMap().

Referenced by Activate().

◆ UpdateQuests()

void Zone.UpdateQuests ( bool  force = false)
inline

Definition at line 3666 of file Zone.cs.

3667 {
3668 if (!IsPCFaction && (!(this is Zone_Town) || base.lv != 0))
3669 {
3670 return;
3671 }
3672 Debug.Log("Updating Quest:" + force);
3673 List<SourceQuest.Row> list = EClass.sources.quests.rows.Where((SourceQuest.Row a) => a.group == "random").ToList();
3674 int num = 0;
3675 foreach (Chara item in map.charas.Concat(map.deadCharas))
3676 {
3677 if (item.quest != null && !EClass.game.quests.list.Contains(item.quest))
3678 {
3679 if (item.quest.IsExpired || completedQuests.Contains(item.quest.uid) || force)
3680 {
3681 item.quest = null;
3682 }
3683 else
3684 {
3685 num++;
3686 }
3687 }
3688 }
3689 if (EClass._zone.dateQuest > EClass.world.date.GetRaw() && !force)
3690 {
3691 return;
3692 }
3693 EClass._zone.dateQuest = EClass.world.date.GetRaw() + 1440;
3694 int maxQuest = 3;
3695 Rand.UseSeed(base.uid + EClass.player.stats.days / 7 % 100, delegate
3696 {
3697 maxQuest = 4 + EClass.rnd(4);
3698 });
3699 completedQuests.Clear();
3700 List<Zone> list2 = Quest.ListDeliver();
3701 List<Tuple<string, int>> listTag = new List<Tuple<string, int>>();
3702 string[] array = EClass._zone.source.questTag;
3704 {
3705 array = new string[9] { "supply/8", "deliver/7", "food/8", "escort/4", "deliver/4", "monster/0", "war/0", "farm/0", "music/0" };
3706 }
3707 string[] array2 = array;
3708 for (int i = 0; i < array2.Length; i++)
3709 {
3710 string[] array3 = array2[i].Split('/');
3711 listTag.Add(new Tuple<string, int>(array3[0], array3[1].ToInt()));
3712 }
3713 for (int j = 0; j < map.charas.Count * 2; j++)
3714 {
3715 if (num > maxQuest)
3716 {
3717 break;
3718 }
3719 if (num > 15)
3720 {
3721 break;
3722 }
3723 Chara chara = map.charas.RandomItem();
3724 if (!chara.trait.CanGiveRandomQuest || chara.isSubsetCard || chara.homeZone != EClass._zone || chara.IsGuest() || chara.memberType == FactionMemberType.Livestock || (chara.quest != null && !force))
3725 {
3726 continue;
3727 }
3728 SourceQuest.Row row = list.RandomItemWeighted(delegate(SourceQuest.Row a)
3729 {
3730 int num2 = 1;
3731 foreach (Tuple<string, int> item2 in listTag)
3732 {
3733 if (a.tags.Contains(item2.Item1))
3734 {
3735 num2 = item2.Item2;
3736 break;
3737 }
3738 }
3739 if (!EClass._zone.IsPCFaction && a.tags.Contains("bulk"))
3740 {
3741 num2 = 0;
3742 }
3743 return a.chance * num2;
3744 });
3745 if ((!row.tags.Contains("needDestZone") || list2.Count >= 2) && (row.minFame <= 0 || row.minFame < EClass.player.fame || EClass.debug.enable))
3746 {
3747 Quest.Create(row.id, null, chara);
3748 num++;
3749 }
3750 }
3751 }
QuestManager quests
Definition: Game.cs:183
int days
Definition: Player.cs:75
Stats stats
Definition: Player.cs:1016
int fame
Definition: Player.cs:881
List< Quest > list
Definition: QuestManager.cs:11
Definition: Quest.cs:7
static List< Zone > ListDeliver()
Definition: Quest.cs:259
static Quest Create(string _id, string _idPerson=null, Chara c=null)
Definition: Quest.cs:241
static void UseSeed(int seed, Action action)
Definition: Rand.cs:22
SourceQuest quests
string[] tags
Definition: SourceQuest.cs:22
int dateQuest
Definition: Spatial.cs:286
SourceZone.Row source
Definition: Spatial.cs:453
virtual bool CanGiveRandomQuest
Definition: TraitChara.cs:116
HashSet< int > completedQuests
Definition: Zone.cs:37

References EClass._zone, TraitChara.CanGiveRandomQuest, Map.charas, Quest.Create(), World.date, Spatial.dateQuest, Player.Stats.days, Map.deadCharas, EClass.debug, Debug, CoreDebug.enable, Player.fame, EClass.game, Date.GetRaw(), Chara.homeZone, SourceQuest.Row.id, Chara.IsGuest(), IsPCFaction, Card.isSubsetCard, item, QuestManager.list, Quest.ListDeliver(), SourceQuest.Row.minFame, EClass.player, Game.quests, SourceManager.quests, Spatial.source, EClass.sources, Player.stats, SourceQuest.Row.tags, Chara.trait, Rand.UseSeed(), and EClass.world.

Referenced by LayerQuestBoard.OnSwitchContent(), and LayerQuestBoard.RefreshQuest().

◆ WriteNote()

void Zone.WriteNote ( UINote  n,
Action< UINote onWriteNote = null,
IInspect::NoteMode  mode = IInspect::NoteMode::Default,
Recipe  recipe = null 
)
inline

Implements IInspect.

Definition at line 3298 of file Zone.cs.

3299 {
3300 }

Member Data Documentation

◆ _biome

BiomeProfile Zone._biome

Definition at line 79 of file Zone.cs.

◆ bounds

◆ bp

ZoneBlueprint Zone.bp

Definition at line 67 of file Zone.cs.

Referenced by Activate().

◆ branch

◆ completedQuests

HashSet<int> Zone.completedQuests = new HashSet<int>()

Definition at line 37 of file Zone.cs.

Referenced by Quest.Complete(), and Quest.Fail().

◆ dictCitizen

Dictionary<int, string> Zone.dictCitizen = new Dictionary<int, string>()

Definition at line 52 of file Zone.cs.

Referenced by DramaCustomSequence.Build(), Quest.Create(), and Quest.ListDeliver().

◆ dirtyElectricity

bool Zone.dirtyElectricity

Definition at line 71 of file Zone.cs.

Referenced by Scene.OnUpdate().

◆ elements

◆ events

◆ fieldElements

ElementContainerField Zone.fieldElements = new ElementContainerField()

Definition at line 46 of file Zone.cs.

Referenced by WidgetDate._Refresh().

◆ fileVariation

int Zone.fileVariation

Definition at line 69 of file Zone.cs.

◆ forceRegenerate

bool Zone.forceRegenerate
static

Definition at line 25 of file Zone.cs.

Referenced by Activate().

◆ forceSubset

string Zone.forceSubset
static

Definition at line 27 of file Zone.cs.

Referenced by Activate().

◆ fortuneRoll

FortuneRollData Zone.fortuneRoll
private

Definition at line 61 of file Zone.cs.

◆ ignoreSpawnAnime

bool Zone.ignoreSpawnAnime
static

Definition at line 81 of file Zone.cs.

◆ instance

◆ isSimulating

bool Zone.isSimulating

Definition at line 75 of file Zone.cs.

Referenced by Activate(), and Chara.GetGoalFromTimeTable().

◆ isStarted

◆ landFeats

List<int> Zone.landFeats

Definition at line 58 of file Zone.cs.

◆ map

◆ okaerinko

int Zone.okaerinko = 0
static

Definition at line 31 of file Zone.cs.

Referenced by AI_Idle.Run().

◆ sourceHat

CardRow Zone.sourceHat
static

Definition at line 29 of file Zone.cs.

Referenced by CharaRenderer.Draw().

◆ subset

MapSubset Zone.subset

Definition at line 65 of file Zone.cs.

Referenced by Activate(), and MapSubset.Save().

◆ Suckers

List<Thing> Zone.Suckers = new List<Thing>()
static

Definition at line 83 of file Zone.cs.

Referenced by TraitSeed.TrySprout().

◆ tempDist

int Zone.tempDist

Definition at line 77 of file Zone.cs.

Referenced by LayerTravel.GetTravelFood(), and LayerTravel.Refresh().

Property Documentation

◆ AddPrefix

virtual bool Zone.AddPrefix
get

Definition at line 283 of file Zone.cs.

Referenced by OnAfterCreate().

◆ AllowCriminal

virtual bool Zone.AllowCriminal
get

Definition at line 247 of file Zone.cs.

◆ AllowInvest

virtual bool Zone.AllowInvest
get

Definition at line 249 of file Zone.cs.

250 {
251 get
252 {
253 if (!IsTown && !IsPCFaction)
254 {
255 return Guild.GetCurrentGuild() != null;
256 }
257 return true;
258 }
259 }

Referenced by DramaCustomSequence.Build().

◆ AllowNewZone

virtual bool Zone.AllowNewZone
get

Definition at line 261 of file Zone.cs.

Referenced by TraitNewZone.CanAutoEnter(), and TraitNewZone.TrySetAct().

◆ AlwaysLowblock

virtual bool Zone.AlwaysLowblock
get

Definition at line 395 of file Zone.cs.

Referenced by BaseTileMap.Draw().

◆ BaseElectricity

virtual int Zone.BaseElectricity
get

Definition at line 493 of file Zone.cs.

◆ BigDaddyChance

virtual float Zone.BigDaddyChance
get

Definition at line 321 of file Zone.cs.

◆ biome

◆ BlockBorderExit

virtual bool Zone.BlockBorderExit
get

Definition at line 169 of file Zone.cs.

Referenced by Player.CanExitBorder().

◆ Boss

Chara Zone.Boss
getset

Definition at line 85 of file Zone.cs.

86 {
87 get
88 {
89 return EClass._map.FindChara(base.uidBoss);
90 }
91 set
92 {
93 base.uidBoss = value?.uid ?? 0;
94 }
95 }
Chara FindChara(string id)
Definition: Map.cs:2568

Referenced by Scene.Init(), TraitNewZone.MoveZone(), ActEffect.Proc(), AI_Idle.Run(), ActThrow.Throw(), and Chara.TryDropBossLoot().

◆ CanBeDeliverDestination

virtual bool Zone.CanBeDeliverDestination
get

Definition at line 225 of file Zone.cs.

Referenced by Quest.ListDeliver().

◆ CanDigUnderground

virtual bool Zone.CanDigUnderground
get

Definition at line 273 of file Zone.cs.

Referenced by TaskMine.GetHitResult().

◆ CanEnterBuildMode

bool Zone.CanEnterBuildMode
get

Definition at line 445 of file Zone.cs.

446 {
447 get
448 {
450 {
451 return base.mainFaction == EClass.pc.faction;
452 }
453 return true;
454 }
455 }
bool godBuild
Definition: CoreDebug.cs:304
bool ignoreBuildRule
Definition: CoreDebug.cs:185

◆ CanEnterBuildModeAnywhere

bool Zone.CanEnterBuildModeAnywhere
get

Definition at line 457 of file Zone.cs.

458 {
459 get
460 {
462 {
463 if (base.mainFaction == EClass.pc.faction)
464 {
465 return EClass.Branch.elements.Has(4003);
466 }
467 return false;
468 }
469 return true;
470 }
471 }
ElementContainerZone elements

Referenced by WidgetMenuPanel._OnChangeMode(), ActionMode.DoFunc(), and HotbarManager.ResetHotbar().

◆ CanInspect

bool Zone.CanInspect
get

Implements IInspect.

Definition at line 497 of file Zone.cs.

498 {
499 get
500 {
501 if (!IsInstance)
502 {
503 return !HiddenInRegionMap;
504 }
505 return false;
506 }
507 }
virtual bool HiddenInRegionMap
Definition: Zone.cs:413

◆ CanUnlockExit

virtual bool Zone.CanUnlockExit
get

Definition at line 277 of file Zone.cs.

Referenced by TraitStairsLocked.OnUse(), and CoreDebug.UpdateInput().

◆ ChanceSpawnNeutral

virtual float Zone.ChanceSpawnNeutral
get

Definition at line 345 of file Zone.cs.

◆ ContentLv

override int Zone.ContentLv
get

Definition at line 97 of file Zone.cs.

98 {
99 get
100 {
101 if (branch == null)
102 {
103 return DangerLv;
104 }
105 return branch.ContentLV;
106 }
107 }

Referenced by DNA.GenerateRandomGene(), AI_Fish.Makefish(), and ConTransmuteMimic.OnBeforeStart().

◆ CountDeepestLevel

virtual bool Zone.CountDeepestLevel
get

Definition at line 227 of file Zone.cs.

◆ DangerLv

◆ DefaultActionMode

virtual ActionMode Zone.DefaultActionMode
get

Definition at line 167 of file Zone.cs.

◆ DisableRooms

virtual bool Zone.DisableRooms
get

Definition at line 121 of file Zone.cs.

Referenced by Map.TryAddRoom().

◆ EvolvedChance

virtual float Zone.EvolvedChance
get

Definition at line 323 of file Zone.cs.

◆ ExpireDays

virtual int Zone.ExpireDays
get

Definition at line 171 of file Zone.cs.

Referenced by Activate().

◆ FeatureType

virtual ZoneFeatureType Zone.FeatureType
get

Definition at line 175 of file Zone.cs.

◆ FlockType

virtual FlockController.SpawnType Zone.FlockType
get

Definition at line 415 of file Zone.cs.

Referenced by Scene.Init().

◆ Generator

MapGenerator Zone.Generator
get

Definition at line 137 of file Zone.cs.

Referenced by MapGenDungen.OnGenerateTerrain().

◆ GrowPlant

virtual bool Zone.GrowPlant
get

Definition at line 347 of file Zone.cs.

◆ GrowWeed

virtual bool Zone.GrowWeed
get

Definition at line 349 of file Zone.cs.

◆ HasLaw

virtual bool Zone.HasLaw
get

◆ HiddenInRegionMap

virtual bool Zone.HiddenInRegionMap
get

Definition at line 413 of file Zone.cs.

Referenced by Chara._Move().

◆ HourSinceLastActive

int Zone.HourSinceLastActive
get

Definition at line 123 of file Zone.cs.

◆ IDAmbience

virtual string Zone.IDAmbience
get

Definition at line 177 of file Zone.cs.

178 {
179 get
180 {
181 if (!IsRegion && !map.IsIndoor)
182 {
183 if (!IsTown)
184 {
185 return "forest";
186 }
187 return "town";
188 }
189 return null;
190 }
191 }

◆ IDBaseLandFeat

virtual string Zone.IDBaseLandFeat
get

Definition at line 147 of file Zone.cs.

◆ IdBiome

virtual string Zone.IdBiome
get

Definition at line 131 of file Zone.cs.

◆ idExport

virtual string Zone.idExport
get

Definition at line 149 of file Zone.cs.

150 {
151 get
152 {
153 if (base.source.idFile.Length != 0)
154 {
155 return base.source.idFile[fileVariation] + ((base.lv == 0) ? "" : ("_F" + base.lv));
156 }
157 return "";
158 }
159 }
int fileVariation
Definition: Zone.cs:69

Referenced by Activate(), MapSubset.Exist(), Zone_Dungeon.OnGenerateMap(), and MapSubset.Save().

◆ IDGenerator

virtual string Zone.IDGenerator
get

Definition at line 133 of file Zone.cs.

Referenced by ZoneBlueprint.GenerateMap(), and TraitNewZone.MoveZone().

◆ IDHat

virtual string Zone.IDHat
get

Definition at line 145 of file Zone.cs.

◆ IDPlayList

virtual string Zone.IDPlayList
get

Definition at line 141 of file Zone.cs.

◆ IDPlaylistOverwrite

virtual string Zone.IDPlaylistOverwrite
get

Definition at line 143 of file Zone.cs.

◆ IdProfile

virtual string Zone.IdProfile
get

Definition at line 139 of file Zone.cs.

◆ IDSceneTemplate

virtual string Zone.IDSceneTemplate
get

Definition at line 193 of file Zone.cs.

194 {
195 get
196 {
197 if (!EClass._map.IsIndoor)
198 {
199 if (!IsSnowZone)
200 {
201 return "Default";
202 }
203 return "Snow";
204 }
205 return "Indoor";
206 }
207 }
virtual bool IsSnowZone
Definition: Spatial.cs:542

Referenced by BaseGameScreen.RefreshGrading().

◆ IDSubset

virtual string Zone.IDSubset
get

Definition at line 211 of file Zone.cs.

212 {
213 get
214 {
215 if (!IsFestival)
216 {
217 return null;
218 }
219 return "festival";
220 }
221 }
virtual bool IsFestival
Definition: Zone.cs:209

Referenced by Activate().

◆ InspectName

string Zone.InspectName
get

Implements IInspect.

Definition at line 509 of file Zone.cs.

◆ InspectPoint

Point Zone.InspectPoint
get

Implements IInspect.

Definition at line 511 of file Zone.cs.

◆ InspectPosition

Vector3 Zone.InspectPosition
get

Implements IInspect.

Definition at line 513 of file Zone.cs.

◆ IsActiveZone

◆ IsExplorable

virtual bool Zone.IsExplorable
get

Definition at line 351 of file Zone.cs.

◆ IsFestival

virtual bool Zone.IsFestival
get

◆ IsInstance

◆ IsLoaded

bool Zone.IsLoaded
get

Definition at line 491 of file Zone.cs.

Referenced by Activate().

◆ IsNefia

virtual bool Zone.IsNefia
get

Definition at line 285 of file Zone.cs.

Referenced by TraitNewZone.MoveZone(), AI_Idle.Run(), and Chara.TryDropBossLoot().

◆ IsPCFaction

bool Zone.IsPCFaction
get

Definition at line 473 of file Zone.cs.

Referenced by Chara._Move(), WidgetDate._Refresh(), Map._ValidateInstalled(), Activate(), LayerSleep.Advance(), WidgetStatsBar.Build(), DramaCustomSequence.Build(), Chara.CanDestroyPath(), ActRestrain.CanPerform(), QuestIntoDarkness.CanUpdateOnTalk(), QuestVernis.CanUpdateOnTalk(), TraitGeneratorWheel.CanUse(), TraitLoytelMart.CanUse(), TraitMannequin.CanUse(), TraitShackle.CanUse(), GameLang.ConvertDrama(), Faction.CountWealth(), Card.Create(), ActEffect.DamageEle(), Chara.DoHostileAction(), CoreDebug.Fix_LostCore(), RankedZone.GetFactionName(), TaskBuild.GetHitResult(), TaskDig.GetHitResult(), Card.GetPrice(), Chara.GetRevived(), Chara.HasAccess(), QuestManager.HasFarAwayEscort(), TraitFoodEggFertilized.Incubate(), Quest.IsVisibleOnQuestBoard(), Quest.ListDeliver(), QuestDeliver.ListDestThing(), Props.ListThingStack(), Chara.MoveZone(), Region.OnActivate(), TraitHitchingPost.OnActivateTrap(), QuestRandom.OnDropReward(), Player.Flags.OnEnterZone(), LayerQuestBoard.OnInit(), ElementContainerZone.OnLevelUp(), TraitBlueprint.OnRead(), TraitBookSkill.OnRead(), TraitDeedRelocate.OnRead(), AM_Adv.OnRenderTile(), GoalSleep.OnSimulatePosition(), TraitFloorSwitch.OnStepped(), TraitBookResident.OnUse(), TraitFarmChest.OnUse(), TraitPolicyBoard.OnUse(), ActRestrain.Perform(), ActEffect.Proc(), Map.PutAway(), TraitBaseSpellbook.ReadFailEffect(), ContentHomeRanking.Refresh(), TCOrbitChara.RefreshAll(), UIInventory.RefreshMenu(), ContentFaction.RefreshZones(), AI_Eat.Run(), AI_Idle.Run(), WidgetSearch.Search(), Card.SetPlaceState(), UIFactionInfo.SetZone(), TraitTicketFurniture.SetZone(), TraitGeneratorWheel.ShouldWork(), Card.SpawnLoot(), Chara.Tick(), TaskDump.TryPerform(), TraitBed.TrySetAct(), TraitBuildBoard.TrySetAct(), TraitCoreZone.TrySetAct(), TraitCrafter.TrySetAct(), TraitFactionBoard.TrySetAct(), TraitHomeBoard.TrySetAct(), TraitMapBoard.TrySetAct(), TraitPaintBoard.TrySetAct(), TraitResearchBoard.TrySetAct(), TraitResidentBoard.TrySetAct(), TraitSwitch.TrySetAct(), TraitWaystone.TrySetAct(), TraitSalesTag.TrySetHeldAct(), Trait.TrySetToggleAct(), Map.TryShatter(), AI_Shopping.TryShop(), TraitTeleporter.TryTeleport(), Card.TryUnrestrain(), GoalCombat.TryUseAbility(), TraitGeneratorWheel.Update(), GameUpdater.Update100ms(), UpdateQuests(), and Chara.Vomit().

◆ IsPCFactionOrTent

bool Zone.IsPCFactionOrTent
get

◆ IsReturnLocation

virtual bool Zone.IsReturnLocation
get

Definition at line 353 of file Zone.cs.

354 {
355 get
356 {
357 if (EClass.pc.homeZone != this)
358 {
359 return base.source.tag.Contains("return");
360 }
361 return true;
362 }
363 }

◆ IsSkyLevel

◆ IsStartZone

bool Zone.IsStartZone
get

Definition at line 487 of file Zone.cs.

◆ IsTown

◆ IsUnderwater

◆ IsUserZone

◆ KeepAllyDistance

virtual bool Zone.KeepAllyDistance
get

Definition at line 301 of file Zone.cs.

302 {
303 get
304 {
305 if (!HasLaw)
306 {
307 return IsPCFaction;
308 }
309 return true;
310 }
311 }

Referenced by Chara._Move(), and ConfigTactics.AllyDistance().

◆ LockExit

virtual bool Zone.LockExit
get

Definition at line 275 of file Zone.cs.

Referenced by MapGenDungen.OnGenerateTerrain().

◆ MakeEnemiesNeutral

virtual bool Zone.MakeEnemiesNeutral
get

Definition at line 233 of file Zone.cs.

234 {
235 get
236 {
237 if (!IsTown)
238 {
239 return HasLaw;
240 }
241 return true;
242 }
243 }

◆ MakeTownProperties

virtual bool Zone.MakeTownProperties
get

Definition at line 245 of file Zone.cs.

◆ MaxLv

virtual int Zone.MaxLv
get

Definition at line 279 of file Zone.cs.

◆ MaxRespawn

int Zone.MaxRespawn
get

Definition at line 315 of file Zone.cs.

◆ MaxSoil

virtual int Zone.MaxSoil
get

Definition at line 515 of file Zone.cs.

516 {
517 get
518 {
519 if (branch == null)
520 {
521 return 99999;
522 }
523 return branch.MaxSoil;
524 }
525 }

Referenced by WidgetStatsBar.Build(), Map.MineObj(), GrowSystem.PopHarvest(), and GrowSystem.TryPopSeed().

◆ MaxSpawn

virtual int Zone.MaxSpawn
get

Definition at line 313 of file Zone.cs.

◆ MinLv

virtual int Zone.MinLv
get

Definition at line 281 of file Zone.cs.

Referenced by Zone_Void.OnActivate(), and ActEffect.Proc().

◆ MinsSinceLastActive

int Zone.MinsSinceLastActive
get

Definition at line 125 of file Zone.cs.

◆ NameSuffix

override string Zone.NameSuffix
get

Definition at line 417 of file Zone.cs.

418 {
419 get
420 {
421 if (!IsNefia || !GetTopZone().isConquered)
422 {
423 return "";
424 }
425 return "conquered".lang();
426 }
427 }

◆ NameWithLevel

string Zone.NameWithLevel
get

◆ OreChance

virtual float Zone.OreChance
get

Definition at line 319 of file Zone.cs.

◆ ParentZone

◆ pathExport

virtual string Zone.pathExport
get

Definition at line 127 of file Zone.cs.

Referenced by Activate().

◆ pathTemp

string Zone.pathTemp
get

Definition at line 161 of file Zone.cs.

Referenced by PartialMap._Load(), and Activate().

◆ PetFollow

virtual bool Zone.PetFollow
get

Definition at line 287 of file Zone.cs.

Referenced by Chara._Move(), and AI_Idle.Run().

◆ PrespawnRate

virtual float Zone.PrespawnRate
get

Definition at line 327 of file Zone.cs.

◆ RegenerateOnEnter

virtual bool Zone.RegenerateOnEnter
get

Definition at line 265 of file Zone.cs.

Referenced by Activate(), and TraitNewZone.TrySetAct().

◆ Region

◆ RegionEnterState

virtual ZoneTransition.EnterState Zone.RegionEnterState
get

Definition at line 173 of file Zone.cs.

Referenced by Player.EnterLocalZone(), and LayerTravel.Refresh().

◆ RespawnPerHour

virtual int Zone.RespawnPerHour
get

Definition at line 343 of file Zone.cs.

◆ RespawnRate

virtual float Zone.RespawnRate
get

Definition at line 329 of file Zone.cs.

◆ RestrictBuild

virtual bool Zone.RestrictBuild
get

Definition at line 289 of file Zone.cs.

290 {
291 get
292 {
293 if (this is Zone_Civilized)
294 {
295 return !IsPCFaction;
296 }
297 return false;
298 }
299 }

Referenced by HotItemHeld.CanRotate(), TaskBuild.CanRotateBlock(), and TaskBuild.GetHitResult().

◆ RevealRoom

virtual bool Zone.RevealRoom
get

Definition at line 393 of file Zone.cs.

◆ RuinChance

virtual float Zone.RuinChance
get

Definition at line 317 of file Zone.cs.

Referenced by GenBounds.TryAddMapPiece().

◆ ScaleType

virtual ZoneScaleType Zone.ScaleType
get

Definition at line 411 of file Zone.cs.

◆ SetAlarmOnBreakLaw

virtual bool Zone.SetAlarmOnBreakLaw
get

Definition at line 231 of file Zone.cs.

Referenced by Point.CallGuard(), and GoalCombat.Run().

◆ ShouldAutoRevive

virtual bool Zone.ShouldAutoRevive
get

Definition at line 379 of file Zone.cs.

380 {
381 get
382 {
383 if (!ShouldRegenerate)
384 {
385 return IsPCFaction;
386 }
387 return true;
388 }
389 }

◆ ShouldMakeExit

virtual bool Zone.ShouldMakeExit
get

Definition at line 365 of file Zone.cs.

366 {
367 get
368 {
369 if (base.lv > MinLv)
370 {
371 return base.lv < MaxLv;
372 }
373 return false;
374 }
375 }
virtual int MaxLv
Definition: Zone.cs:279
virtual int MinLv
Definition: Zone.cs:281

Referenced by MapGenDungen.OnGenerateTerrain().

◆ ShouldRegenerate

virtual bool Zone.ShouldRegenerate
get

Definition at line 377 of file Zone.cs.

Referenced by Activate().

◆ ShowEnemyOnMinimap

bool Zone.ShowEnemyOnMinimap
get

Definition at line 331 of file Zone.cs.

332 {
333 get
334 {
335 if (instance != null)
336 {
338 }
339 return false;
340 }
341 }
virtual bool ShowEnemyOnMinimap
Definition: ZoneInstance.cs:30

Referenced by WidgetMinimap.RefreshMarkers().

◆ ShrineChance

virtual float Zone.ShrineChance
get

Definition at line 325 of file Zone.cs.

◆ StartLV

virtual int Zone.StartLV
get

Definition at line 409 of file Zone.cs.

Referenced by OnCreate().

◆ TextDangerLv

string Zone.TextDangerLv
get

Definition at line 431 of file Zone.cs.

Referenced by WidgetDate._Refresh().

◆ TextDeepestLv

string Zone.TextDeepestLv
get

Definition at line 433 of file Zone.cs.

434 {
435 get
436 {
437 if (GetDeepestLv() != 0)
438 {
439 return "zoneLevelMax".lang(TextLevel(GetDeepestLv()));
440 }
441 return "";
442 }
443 }
string TextLevel(int _lv)
Definition: Zone.cs:557

Referenced by AM_Adv._OnUpdateInput().

◆ TextWidgetDate

virtual string Zone.TextWidgetDate
get

Definition at line 135 of file Zone.cs.

Referenced by WidgetDate._Refresh().

◆ UseFog

virtual bool Zone.UseFog
get

Definition at line 391 of file Zone.cs.

Referenced by Activate(), BaseTileMap.DrawTile(), and Fov.Perform().

◆ UseLight

virtual bool Zone.UseLight
get

Definition at line 397 of file Zone.cs.

398 {
399 get
400 {
401 if (base.mainFaction != EClass.pc.faction)
402 {
403 return base.source.tag.Contains("light");
404 }
405 return true;
406 }
407 }

Referenced by EloMap.Init(), and EloMap.SetZone().

◆ WillAutoSave

virtual bool Zone.WillAutoSave
get

Definition at line 263 of file Zone.cs.

Referenced by Chara.MoveZone().


The documentation for this class was generated from the following file: