Elin Decompiled Documentation EA 23.193 Nightly
Loading...
Searching...
No Matches
ThingGen Class Reference
Inheritance diagram for ThingGen:
CardGen EClass

Static Public Member Functions

static Thing _Create (string id, int idMat=-1, int lv=-1)
 
static Thing TestCreate ()
 
static Thing CreateCurrency (int a, string id="money")
 
static Thing CreateParcel (string idLang=null, params Thing[] things)
 
static Thing Create (string id, int idMat=-1, int lv=-1)
 
static Thing Create (string id, string idMat, int lv=-1)
 
static Thing CreateFromFilter (string id, int lv=-1)
 
static Thing CreateRawMaterial (SourceMaterial.Row m)
 
static Thing CreateFromCategory (string idCat, int lv=-1)
 
static Thing CreateFromTag (string idTag, int lv=-1)
 
static Thing CreateBill (int pay, bool tax)
 
static Thing CreateBlock (int id, int idMat)
 
static Thing CreateFloor (int id, int idMat, bool platform=false)
 
static Thing CreateObj (int id, int idMat)
 
static Thing CreateMap (string idSource=null, int lv=-1)
 
static Thing CreatePlan (int ele)
 
static Thing CreateRecipe (string id)
 
static Thing CreateSpellbook (string alias, int num=1)
 
static Thing CreateSpellbook (int ele, int num=1, int charge=-1)
 
static Thing CreateRedBook (string id, int num=1)
 
static Thing CreateSkillbook (int ele, int num=1)
 
static Thing CreateScroll (int ele, int num=1)
 
static Thing CreateRune (int ele, int v, bool free=false)
 
static Thing CreateRod (int ele, int charge=-1)
 
static Thing CreatePotion (int ele, int num=1)
 
static Thing CreatePerfume (int ele, int num=1)
 
static Thing CreateLetter (string idLetter)
 
static Thing CreateCardboardBox (int uidZone=-1)
 
static Thing CreateTreasure (string id, int lv, TreasureType type=TreasureType.Map)
 
static void CreateTreasureContent (Thing t, int lv, TreasureType type, bool clearContent)
 
static void TryLickChest (Thing chest)
 
- 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 (int a, int start, int step, int rate=75)
 
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)
 

Additional Inherited Members

- Static Public Attributes inherited from EClass
static Core core
 
- 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]
 

Detailed Description

Definition at line 4 of file ThingGen.cs.

Member Function Documentation

◆ _Create()

static Thing ThingGen._Create ( string  id,
int  idMat = -1,
int  lv = -1 
)
inlinestatic

Definition at line 6 of file ThingGen.cs.

7 {
8 Thing thing = new Thing();
9 CardRow s = EClass.sources.cards.map.TryGetValue(id);
10 if (s == null)
11 {
12 Debug.LogError("exception: Item not found:" + id);
13 id = "869";
14 s = EClass.sources.cards.map.TryGetValue(id);
15 }
16 if (s.isOrigin)
17 {
18 id = SpawnListThing.Get("origin_" + id, (SourceThing.Row a) => a.origin == s).Select(lv)?.id ?? EClass.sources.cards.rows.Where((CardRow a) => a.origin == s).First().id;
19 }
20 if (lv < 1)
21 {
22 lv = 1;
23 }
24 thing.Create(id, idMat, lv);
25 if (thing.trait is TraitAmmo)
26 {
27 thing.SetNum(EClass.rnd(20) + 10);
28 }
29 return thing;
30 }
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
bool isOrigin
Definition: CardRow.cs:52
Thing SetNum(int a)
Definition: Card.cs:3393
Trait trait
Definition: Card.cs:51
void Create(string _id, int _idMat=-1, int genLv=-1)
Definition: Card.cs:2697
Definition: EClass.cs:5
static int rnd(long a)
Definition: EClass.cs:58
static SourceManager sources
Definition: EClass.cs:42
List< CardRow > rows
Definition: SourceCard.cs:6
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
static SpawnList Get(string id, Func< SourceThing.Row, bool > func)
CardRow Select(int lv=-1, int levelRange=-1)
Definition: SpawnList.cs:139
Definition: Thing.cs:8

References SourceManager.cards, Card.Create(), Debug, SpawnListThing.Get(), CardRow.id, CardRow.isOrigin, SourceCard.map, CardRow.origin, EClass.rnd(), SourceCard.rows, SpawnList.Select(), Card.SetNum(), EClass.sources, and Card.trait.

Referenced by Create(), CreateFromCategory(), CreateFromFilter(), CreateFromTag(), and TestCreate().

◆ Create() [1/2]

static Thing ThingGen.Create ( string  id,
int  idMat = -1,
int  lv = -1 
)
inlinestatic

Definition at line 53 of file ThingGen.cs.

54 {
55 return _Create(id, idMat, lv);
56 }
static Thing _Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:6

References _Create().

Referenced by Game._Create(), InvOwnerRecycle._OnProcess(), TraitGodStatue._OnUse(), TraitShrine._OnUse(), Card.Add(), ThingContainer.AddCurrency(), Card.AddThing(), Zone.AddThing(), GameDate.AdvanceDay(), GameDate.AdvanceYear(), RecipeCard.Build(), DropdownGrid.BuildIngredients(), Map.Burn(), AI_Shopping.Buy(), Zone.ClaimZone(), DramaOutcome.convert_Jure(), TraitCrafter.Craft(), RecipeCard.Craft(), Create(), CreateBill(), CreateBlock(), SourceMaterial.Row.CreateByProduct(), CreateCardboardBox(), CreateCurrency(), InvOwner.CreateDefaultContainer(), InvOwnerChangeMaterial.CreateDefaultContainer(), Player.CreateEquip(), CreateFloor(), CreateLetter(), CreateMap(), RecipeCard.CreateMold(), CreateObj(), CreateParcel(), CreatePerfume(), CreatePlan(), CreatePotion(), CreateRawMaterial(), CreateRecipe(), CreateRedBook(), CreateRod(), CreateRune(), CreateScroll(), CreateSkillbook(), CreateSpellbook(), Trait.CreateStock(), CreateTreasure(), CreateTreasureContent(), FactionBranch.DailyOutcome(), QuestDeliver.Deliver(), Card.Die(), Chara.DoHostileAction(), Map.DropBlockComponent(), Recipe.DropIngredients(), Quest.DropReward(), Card.Duplicate(), Card.EjectSockets(), Chara.EQ_ID(), Chara.EQ_Item(), ZonePreEnterBoutWin.Execute(), ZonePreEnterDigStairs.Execute(), DramaOutcome.fiama_gold(), DramaOutcome.fiama_starter_gift(), AI_Fuck.Finish(), CoreDebug.Fix_LostCore(), Zone.Generate(), FactionBranch.GenerateGarbage(), DNA.GenerateGene(), Zone_SnowGrave.GenerateGrave(), DramaOutcome.get_scratch(), FactionBranch.GetDailyIncome(), AI_Shear.GetFur(), FortuneRollData.GetPrize(), CraftUtil.GetRandomLoveLunchIngredient(), MiniGame.GetSlotReward(), DramaOutcome.give_sketch_reward(), QuestDebt.GiveBill(), QuestDebt.GiveReward(), TaskHarvest.HarvestThing(), DramaOutcome.ListFelmeraBarter(), CraftUtil.MakeDarkSoup(), CraftUtil.MakeDish(), Card.MakeEgg(), AI_Fish.Makefish(), Chara.MakeGrave(), CraftUtil.MakeLoveLunch(), Card.MakeMilk(), TraitSeed.MakeRandomSeed(), AI_OpenGambleChest.MakeReward(), TraitSeed.MakeSeed(), SurvivalManager.MeteorThing(), Map.MineBlock(), Map.MineObj(), CraftUtil.MixIngredients(), Chara.MutateRandom(), DramaOutcome.nerun_gift(), DramaOutcome.nerun_gift2(), DramaOutcome.nerun_gift3(), Faction.OnAdvanceMonth(), Trait.OnBarter(), QuestVernis.OnChangePhase(), TraitBrewery.OnChildDecay(), ContentCodex.OnClickGetCard(), QuestNasu.OnComplete(), FactionBranch.OnCreate(), TaskChopWood.OnCreateProgress(), TaskHarvest.OnCreateProgress(), QuestCraft.OnDropReward(), QuestDefense.OnDropReward(), QuestRandom.OnDropReward(), SurvivalManager.OnExpandFloor(), Zone_TestRoom.OnGenerateMap(), MapGenDungen.OnGenerateTerrain(), GrowSystem.OnMineObj(), GrowSystemFlower.OnMineObj(), GrowSystemHerb.OnMineObj(), GrowSystemWeed.OnMineObj(), GrowSystemWheat.OnMineObj(), SurvivalManager.OnMineWreck(), QuestCraft.OnProgressComplete(), TaskDig.OnProgressComplete(), TaskMine.OnProgressComplete(), FactionBranch.OnSimulateDay(), QuestDebt.OnStart(), QuestDeliver.OnStart(), QuestFiamaLock.OnStart(), TraitGiftJure.OnUse(), TraitGiftNewYear.OnUse(), TraitGiftPack.OnUse(), TraitPlamoBox.OnUse(), TraitStairsLocked.OnUse(), TraitPotionEmpty.OnUse(), ZoneEventDefenseGame.OnVisit(), DramaManager.ParseLine(), InvOwnerDeliver.PayBill(), ActDreamBug.Perform(), Chara.PickOrDrop(), Zone_Dungeon.PlaceRail(), TraitGacha.PlayGacha(), GrowSystem.PopHarvest(), GenRoom.Populate(), TraitBaseContainer.Prespawn(), TraitContainerCurrency.Prespawn(), TraitToolBelt.Prespawn(), FoodEffect.Proc(), ActEffect.Proc(), Religion.Punish(), Religion.PunishTakeOver(), TraitBaseContainer.PutChara(), DramaOutcome.PutOutFire(), DramaOutcome.QuestDefense_1(), DramaOutcome.QuestSharedContainer_Drop1(), CoreDebug.QuickStart(), FactionBranch.ReceivePackages(), Religion.Reforge(), CoreDebug.Reset_LoytelDebt(), Chara.RestockEquip(), Chara.RestockInventory(), SerializedCards.Restore(), AI_Craft_Snowman.Run(), AI_Idle.Run(), AI_OpenGambleChest.Run(), AI_PlayMusic.Run(), AI_Steal.Run(), TaskCullLife.Run(), CoreDebug.SetStartStockpile(), GameDate.ShipGoods(), GameDate.ShipLetter(), GameDate.ShipRandomPackages(), Chara.ShowDialog(), CoreDebug.Spawn(), Zone.SpawnAltar(), Card.SpawnLoot(), Zone.SpawnLostItems(), SurvivalManager.StartRaid(), AI_PlayMusic.ThrowReward(), BiomeProfile.ClusterThing.TryCreate(), TraitSwitch.TryDisarmTrap(), Chara.TryDropBossLoot(), Zone.TryGenerateShrine(), Recipe.TryGetFirstTimeBonus(), GrowSystem.TryPick(), Chara.TryPoisonPotion(), Map.TryShatter(), DramaOutcome.Tutorial1(), TraitFoodEgg.Update(), TraitSpotBiome.Update(), ActionMode.UpdateInput(), CoreDebug.UpdateInput(), Chara.Vomit(), and ActEffect.Wish().

◆ Create() [2/2]

static Thing ThingGen.Create ( string  id,
string  idMat,
int  lv = -1 
)
inlinestatic

Definition at line 58 of file ThingGen.cs.

59 {
60 return Create(id, idMat.IsEmpty() ? (-1) : EClass.sources.materials.alias[idMat].id, lv);
61 }
SourceMaterial materials
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53

References Create(), SourceManager.materials, and EClass.sources.

◆ CreateBill()

static Thing ThingGen.CreateBill ( int  pay,
bool  tax 
)
inlinestatic

Definition at line 85 of file ThingGen.cs.

86 {
87 Thing thing = Create(tax ? "bill_tax" : "bill");
88 thing.c_bill = pay;
89 if (tax)
90 {
91 EClass.player.stats.taxBills += thing.c_bill;
93 }
94 else
95 {
96 EClass.player.unpaidBill += thing.c_bill;
97 }
98 return thing;
99 }
int c_bill
Definition: Card.cs:1255
static Player player
Definition: EClass.cs:12
int taxBills
Definition: Player.cs:831

References Card.c_bill, Create(), EClass.player, and Player.taxBills.

Referenced by Faction.OnAdvanceMonth(), and GameDate.ShipPackages().

◆ CreateBlock()

static Thing ThingGen.CreateBlock ( int  id,
int  idMat 
)
inlinestatic

Definition at line 101 of file ThingGen.cs.

102 {
103 Thing thing = Create(EClass.sources.blocks.rows[id].idThing, idMat);
104 thing.refVal = id;
105 return thing;
106 }
SourceBlock blocks

References SourceManager.blocks, Create(), and EClass.sources.

Referenced by Recipe.Craft(), Map.DropBlockComponent(), and CoreDebug.QuickStart().

◆ CreateCardboardBox()

static Thing ThingGen.CreateCardboardBox ( int  uidZone = -1)
inlinestatic

Definition at line 225 of file ThingGen.cs.

226 {
227 Thing thing = Create("cardboard_box", new string[5] { "pine", "wood_birch", "wood_acacia", "oak", "cedar" }.RandomItem());
228 thing.things.DestroyAll();
229 Spatial spatial = ((uidZone == -1) ? null : EClass.game.spatials.map.TryGetValue(uidZone));
230 if (spatial != null)
231 {
232 thing.c_idRefName = "sender_header".lang("sender_post".lang(spatial.Name));
233 }
234 return thing;
235 }
ThingContainer things
Definition: Card.cs:36
static Game game
Definition: EClass.cs:8
SpatialManager spatials
Definition: Game.cs:152
GlobalSpatialList map
virtual string Name
Definition: Spatial.cs:497
void DestroyAll(Func< Thing, bool > funcExclude=null)

References Create(), ThingContainer.DestroyAll(), EClass.game, SpatialManager.map, Spatial.Name, Game.spatials, and Card.things.

Referenced by GameDate.ShipPackages(), and GameDate.ShipRandomPackages().

◆ CreateCurrency()

static Thing ThingGen.CreateCurrency ( int  a,
string  id = "money" 
)
inlinestatic

Definition at line 37 of file ThingGen.cs.

38 {
39 return Create(id).SetNum(a);
40 }

References Create(), and Card.SetNum().

Referenced by Chara.ApplyDeathPenalty(), Player.CreateEquip(), QuestRandom.OnDropReward(), and TraitFarmChest.OnUse().

◆ CreateFloor()

static Thing ThingGen.CreateFloor ( int  id,
int  idMat,
bool  platform = false 
)
inlinestatic

Definition at line 108 of file ThingGen.cs.

109 {
110 _ = EClass.sources.floors.rows[id];
111 Thing thing = Create(platform ? "platform" : "floor", idMat);
112 thing.refVal = id;
113 return thing;
114 }
SourceFloor floors

References Create(), SourceManager.floors, and EClass.sources.

Referenced by Recipe.Craft(), Map.DropBlockComponent(), SurvivalManager.OnMineWreck(), and CoreDebug.QuickStart().

◆ CreateFromCategory()

◆ CreateFromFilter()

static Thing ThingGen.CreateFromFilter ( string  id,
int  lv = -1 
)
inlinestatic

◆ CreateFromTag()

static Thing ThingGen.CreateFromTag ( string  idTag,
int  lv = -1 
)
inlinestatic

Definition at line 80 of file ThingGen.cs.

81 {
82 return _Create(SpawnListThing.Get("tag_" + idTag, (SourceThing.Row s) => s.tag.Contains(idTag)).Select(lv).id, -1, lv);
83 }

References _Create(), SpawnListThing.Get(), CardRow.id, and SpawnList.Select().

Referenced by FactionBranch.GenerateGarbage(), and GameDate.ShipRandomPackages().

◆ CreateLetter()

static Thing ThingGen.CreateLetter ( string  idLetter)
inlinestatic

Definition at line 218 of file ThingGen.cs.

219 {
220 Thing thing = Create("letter");
221 thing.SetStr(53, idLetter);
222 return thing;
223 }
void SetStr(int id, string value=null)
Definition: BaseCard.cs:63

References Create(), and BaseCard.SetStr().

Referenced by TraitGiftJure.OnUse().

◆ CreateMap()

static Thing ThingGen.CreateMap ( string  idSource = null,
int  lv = -1 
)
inlinestatic

Definition at line 124 of file ThingGen.cs.

125 {
126 if (idSource.IsEmpty())
127 {
129 }
130 if (lv == -1)
131 {
132 lv = 1 + EClass.rnd(EClass.rnd(50) + 1);
133 }
134 return Create("map");
135 }
new World world
Definition: Game.cs:173
SourceZone.Row GetRandomSiteSource()
Definition: Region.cs:195
Region region
Definition: World.cs:23

References Create(), EClass.game, Region.GetRandomSiteSource(), World.region, EClass.rnd(), and Game.world.

Referenced by Trait.CreateStock().

◆ CreateObj()

static Thing ThingGen.CreateObj ( int  id,
int  idMat 
)
inlinestatic

Definition at line 116 of file ThingGen.cs.

117 {
118 _ = EClass.sources.objs.rows[id];
119 Thing thing = Create("obj", idMat);
120 thing.refVal = id;
121 return thing;
122 }
SourceObj objs

References Create(), SourceManager.objs, and EClass.sources.

Referenced by Recipe.Craft().

◆ CreateParcel()

static Thing ThingGen.CreateParcel ( string  idLang = null,
params Thing[]  things 
)
inlinestatic

Definition at line 42 of file ThingGen.cs.

43 {
44 Thing thing = Create("parcel");
45 foreach (Thing c in things)
46 {
47 thing.AddCard(c);
48 }
49 thing.c_idRefName = idLang.lang();
50 return thing;
51 }
Card AddCard(Card c)
Definition: Card.cs:3043

References Create().

Referenced by GameDate.AdvanceDay(), Chara.MutateRandom(), Faction.OnAdvanceMonth(), SurvivalManager.OnMineWreck(), and InvOwnerDeliver.PayBill().

◆ CreatePerfume()

static Thing ThingGen.CreatePerfume ( int  ele,
int  num = 1 
)
inlinestatic

Definition at line 211 of file ThingGen.cs.

212 {
213 Thing thing = Create("perfume").SetNum(num);
214 TraitPotion.Create(thing, ele);
215 return thing;
216 }
static void Create(Card owner, int ele)
Definition: TraitPotion.cs:15

References TraitPotion.Create(), Create(), and Card.SetNum().

Referenced by Trait.OnBarter().

◆ CreatePlan()

static Thing ThingGen.CreatePlan ( int  ele)
inlinestatic

Definition at line 137 of file ThingGen.cs.

138 {
139 Thing thing = Create("book_plan");
140 thing.refVal = ele;
141 return thing;
142 }

References Create().

Referenced by Trait.OnBarter().

◆ CreatePotion()

static Thing ThingGen.CreatePotion ( int  ele,
int  num = 1 
)
inlinestatic

Definition at line 204 of file ThingGen.cs.

205 {
206 Thing thing = Create("1163").SetNum(num);
207 TraitPotion.Create(thing, ele);
208 return thing;
209 }

References TraitPotion.Create(), Create(), and Card.SetNum().

Referenced by Trait.CreateStock(), Trait.OnBarter(), and QuestVernis.OnChangePhase().

◆ CreateRawMaterial()

static Thing ThingGen.CreateRawMaterial ( SourceMaterial::Row  m)
inlinestatic

Definition at line 68 of file ThingGen.cs.

69 {
70 Thing thing = Create(m.thing);
71 thing.ChangeMaterial(m.id);
72 return thing;
73 }
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2994

References Card.ChangeMaterial(), and Create().

Referenced by SourceMaterial.Row.CreateByProduct(), Map.MineFloor(), and DramaOutcome.QuestCraft_Drop1().

◆ CreateRecipe()

static Thing ThingGen.CreateRecipe ( string  id)
inlinestatic

Definition at line 144 of file ThingGen.cs.

145 {
146 Thing thing = Create("rp_random");
147 thing.SetStr(53, id);
148 return thing;
149 }

References Create(), and BaseCard.SetStr().

Referenced by Trait.OnBarter(), QuestCrafter.OnDropReward(), QuestDialog.OnDropReward(), SurvivalManager.OnMineWreck(), TraitGiftJure.OnUse(), and DramaOutcome.QuestVernis_DropRecipe().

◆ CreateRedBook()

static Thing ThingGen.CreateRedBook ( string  id,
int  num = 1 
)
inlinestatic

Definition at line 167 of file ThingGen.cs.

168 {
169 Thing thing = Create("book").SetNum(num);
170 thing.SetStr(53, id);
171 thing.idSkin = (thing.trait as TraitBook).Item.skin;
172 return thing;
173 }

References Create(), Item, Card.SetNum(), and BaseCard.SetStr().

Referenced by Player.CreateEquip(), and Trait.OnBarter().

◆ CreateRod()

static Thing ThingGen.CreateRod ( int  ele,
int  charge = -1 
)
inlinestatic

Definition at line 197 of file ThingGen.cs.

198 {
199 Thing thing = Create("rod");
200 TraitRod.Create(thing, ele, charge);
201 return thing;
202 }
static void Create(Card owner, int ele, int charge=-1)
Definition: TraitRod.cs:76

References TraitRod.Create(), and Create().

Referenced by Trait.CreateStock(), and SurvivalManager.OnMineWreck().

◆ CreateRune()

static Thing ThingGen.CreateRune ( int  ele,
int  v,
bool  free = false 
)
inlinestatic

Definition at line 189 of file ThingGen.cs.

190 {
191 Thing thing = Create(free ? "rune_free" : "rune");
192 thing.refVal = ele;
193 thing.encLV = v;
194 return thing;
195 }

References Create().

Referenced by Trait.OnBarter().

◆ CreateScroll()

◆ CreateSkillbook()

static Thing ThingGen.CreateSkillbook ( int  ele,
int  num = 1 
)
inlinestatic

Definition at line 175 of file ThingGen.cs.

176 {
177 Thing thing = Create("book_skill").SetNum(num);
178 thing.refVal = ele;
179 return thing;
180 }

References Create(), and Card.SetNum().

Referenced by Trait.OnBarter().

◆ CreateSpellbook() [1/2]

static Thing ThingGen.CreateSpellbook ( int  ele,
int  num = 1,
int  charge = -1 
)
inlinestatic

Definition at line 156 of file ThingGen.cs.

157 {
158 Thing thing = Create("spellbook").SetNum(num);
159 TraitSpellbook.Create(thing, ele);
160 if (charge != -1)
161 {
162 thing.SetCharge(charge);
163 }
164 return thing;
165 }
void SetCharge(int a)
Definition: Card.cs:3842

References TraitSpellbook.Create(), Create(), Card.SetCharge(), and Card.SetNum().

◆ CreateSpellbook() [2/2]

static Thing ThingGen.CreateSpellbook ( string  alias,
int  num = 1 
)
inlinestatic

Definition at line 151 of file ThingGen.cs.

152 {
153 return CreateSpellbook(EClass.sources.elements.alias[alias].id, num);
154 }
SourceElement elements
static Thing CreateSpellbook(string alias, int num=1)
Definition: ThingGen.cs:151

References CreateSpellbook(), SourceManager.elements, and EClass.sources.

Referenced by Player.CreateEquip(), CreateSpellbook(), Trait.CreateStock(), Trait.OnBarter(), and Chara.RestockEquip().

◆ CreateTreasure()

static Thing ThingGen.CreateTreasure ( string  id,
int  lv,
TreasureType  type = TreasureType::Map 
)
inlinestatic

Definition at line 237 of file ThingGen.cs.

238 {
239 Thing thing = Create(id, -1, lv);
240 CreateTreasureContent(thing, lv, type, clearContent: true);
241 return thing;
242 }
static void CreateTreasureContent(Thing t, int lv, TreasureType type, bool clearContent)
Definition: ThingGen.cs:244

References Create(), and CreateTreasureContent().

Referenced by FactionBranch.DailyOutcome(), ZoneEventSiege.OnKill(), and Chara.TryDropBossLoot().

◆ CreateTreasureContent()

static void ThingGen.CreateTreasureContent ( Thing  t,
int  lv,
TreasureType  type,
bool  clearContent 
)
inlinestatic

Definition at line 244 of file ThingGen.cs.

245 {
246 int miracleChance = lv;
247 int num = EClass.curve(lv, 20, 15);
248 bool flag = true;
249 bool flag2 = true;
250 int guaranteedMythical = ((type == TreasureType.BossQuest) ? 1 : 0);
251 ChangeSeed();
252 t.AddEditorTag(EditorTag.PreciousContainer);
253 if (clearContent)
254 {
255 t.things.DestroyAll();
256 }
257 switch (type)
258 {
259 case TreasureType.Map:
260 miracleChance += 50;
261 t.Add("money", EClass.rndHalf(1000 + num * 100));
262 t.Add("money2", EClass.rndHalf(Mathf.Min(3 + num / 10, 10)));
263 t.Add("medal", EClass.rnd(3));
264 break;
265 case TreasureType.BossNefia:
266 case TreasureType.BossQuest:
267 t.Add("money", EClass.rndHalf(500 + num * 50));
268 t.Add("plat", EClass.rndHalf(Mathf.Min(3 + num / 10, 15)));
269 t.Add("rp_random", 1, lv);
270 if (EClass.rnd(5) == 0)
271 {
272 t.Add("medal", EClass.rnd(3));
273 }
274 else if (EClass.rnd(3) == 0)
275 {
276 t.Add("map_treasure", 1, EClass.rndHalf(lv + 10));
277 }
278 else
279 {
280 t.Add("book_skill", 1, lv);
281 }
282 t.c_lockLv /= 2;
283 break;
284 case TreasureType.SurvivalRaid:
285 t.Add("plat", EClass.rndHalf(Mathf.Min(3 + num / 10, 15)));
286 t.Add("money2", EClass.rndHalf(Mathf.Min(3 + num / 10, 10)));
287 t.Add("medal", EClass.rndHalf(8));
288 t.Add("book_skill", 1, lv);
289 t.Add("book_skill", 1, lv);
290 t.c_lockLv /= 3;
291 break;
292 case TreasureType.RandomChest:
293 flag2 = false;
294 miracleChance /= 2;
295 if (miracleChance > 50)
296 {
297 miracleChance = 50;
298 }
299 if (EClass.rnd(2) == 0)
300 {
301 t.Add("money", EClass.rndHalf(10 + num * 25));
302 }
303 else if (EClass.rnd(2) == 0)
304 {
305 t.Add("money2", 1 + EClass.rnd(Mathf.Min(2 + num / 25, 5)));
306 }
307 else
308 {
309 t.Add("plat", 1 + EClass.rnd(Mathf.Min(2 + num / 25, 5)));
310 }
312 {
313 flag = false;
314 break;
315 }
316 if (EClass.rnd(10) == 0)
317 {
318 t.Add("map_treasure", 1, EClass.rndHalf(lv + 10));
319 }
320 if (EClass.rnd(3) == 0)
321 {
322 t.AddCard(Create("rp_random", -1, lv));
323 }
324 if (t.c_lockLv > 0 && EClass.rnd(3) == 0)
325 {
326 t.Add("medal");
327 }
328 break;
329 }
330 if (type == TreasureType.RandomChest && EClass.rnd(2) == 0)
331 {
332 t.AddCard(CreateFromCategory("junk", lv));
333 }
334 else if (EClass.rnd(3) == 0)
335 {
336 t.Add("rp_random", 1, lv);
337 }
338 else if (type != TreasureType.Map && EClass.rnd(2) == 0)
339 {
340 Thing thing = CreateFromCategory("furniture", lv);
341 if (!thing.IsContainer && (t.c_lockLv == 0 || thing.SelfWeight < 10000))
342 {
343 t.AddCard(thing);
344 }
345 }
346 else
347 {
348 t.AddCard(CreateFromCategory("junk", lv));
349 }
350 if (EClass.rnd(3) == 0)
351 {
352 t.Add("book_ancient", 1, lv);
353 }
354 if (t.c_lockLv > 0)
355 {
356 miracleChance += 20 + (int)Mathf.Sqrt(t.c_lockLv * 5);
357 }
358 if (flag)
359 {
360 SetRarity(100);
361 t.AddCard(CreateFromFilter("eq", lv));
362 if (flag2)
363 {
364 SetRarity(20);
365 t.AddCard(CreateFromFilter("eq", lv));
366 }
367 }
368 Rand.SetSeed();
369 static void ChangeSeed()
370 {
373 }
374 void SetRarity(int mtp)
375 {
376 ChangeSeed();
377 Rarity rarity = ((miracleChance * mtp / 100 < EClass.rnd(100)) ? Rarity.Superior : ((EClass.rnd(20) == 0) ? Rarity.Mythical : Rarity.Legendary));
378 if (guaranteedMythical > 0)
379 {
380 guaranteedMythical--;
381 rarity = Rarity.Mythical;
382 }
384 {
385 rarity = rarity
386 });
387 }
388 }
EditorTag
Definition: EditorTag.cs:2
Rarity
Definition: Rarity.cs:2
TreasureType
Definition: TreasureType.cs:2
static void Set(CardBlueprint _bp)
int c_lockLv
Definition: Card.cs:938
void AddEditorTag(EditorTag tag)
Definition: Card.cs:2567
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3034
bool IsContainer
Definition: Card.cs:2051
static int curve(int a, int start, int step, int rate=75)
Definition: EClass.cs:68
static Zone _zone
Definition: EClass.cs:20
static int rndHalf(int a)
Definition: EClass.cs:87
int seed
Definition: Game.cs:197
int seedChest
Definition: Player.cs:867
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
static Thing CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
override int SelfWeight
Definition: Thing.cs:82

References EClass._zone, Card.Add(), Card.AddCard(), Card.AddEditorTag(), Card.c_lockLv, Create(), CreateFromCategory(), CreateFromFilter(), EClass.curve(), ThingContainer.DestroyAll(), EClass.game, Card.IsContainer, EClass.player, EClass.rnd(), EClass.rndHalf(), Game.seed, Player.seedChest, Thing.SelfWeight, CardBlueprint.Set(), Rand.SetSeed(), and Card.things.

Referenced by CreateTreasure(), Trait.OnBarter(), SurvivalManager.OnMineWreck(), TraitChest.Prespawn(), and TraitChestOyster.Prespawn().

◆ TestCreate()

static Thing ThingGen.TestCreate ( )
inlinestatic

Definition at line 32 of file ThingGen.cs.

33 {
34 return _Create(SpawnList.Get("thing").Select().id);
35 }

References _Create(), SpawnList.Get(), CardRow.id, and SpawnList.Select().

Referenced by CoreDebug.UpdateInput().

◆ TryLickChest()

static void ThingGen.TryLickChest ( Thing  chest)
inlinestatic

Definition at line 390 of file ThingGen.cs.

391 {
392 foreach (Chara chara in EClass._map.charas)
393 {
394 if (!chara.HasElement(1412) || chara.Dist(chest) >= 5)
395 {
396 continue;
397 }
398 chara.Say("lick", chara, chest);
399 chest.PlaySound("offering");
400 chest.PlayEffect("mutation");
401 {
402 foreach (Thing thing in chest.things)
403 {
404 thing.TryLickEnchant(chara, msg: false);
405 }
406 break;
407 }
408 }
409 }
bool HasElement(int ele, int req=1)
Definition: Card.cs:5683
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5897
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
Definition: Card.cs:5931
int Dist(Card c)
Definition: Card.cs:7362
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6544
Definition: Chara.cs:10
static Map _map
Definition: EClass.cs:18
List< Chara > charas
Definition: Map.cs:81
void TryLickEnchant(Chara c, bool msg=true, Chara tg=null, BodySlot slot=null)
Definition: Thing.cs:1979

References EClass._map, Map.charas, Card.Dist(), Card.HasElement(), Card.Say(), Card.things, and Thing.TryLickEnchant().

Referenced by Chara.TryDropBossLoot().


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