public override void Init() { PositionKey found = PlanetSave.PNJs.Find(p => new Vector3(p.x, p.y, p.z) == transform.position); IDname = found.key; NPCWrap npcText = ResourcesManager.Instance.NPCs.objects.Find(npc => npc.ID == IDname); if (npcText != null) { _txtInfo = npcText; } budgetComponent = new BudgetComponent(IDname); if (GameManager.PARTY_TYPE == EPartyType.SAVE) { List <BudgetsSave> saves; ArrayExtensions.ToList(PlanetSave.GameStateSave.Budgets, out saves); BudgetsSave save = saves.Find(s => s.npcName == IDname); if (save != null) { budgetComponent.budget = save.budget; budgetComponent.Investment = save.investment; } } if (InventoryPlayer.Instance) { CatchGivedObject(); } }
public void Init(string pnjKey) { NPCWrap info = null; int l = ResourcesManager.Instance.NPCs.objects.Count; for (int i = 0; i < l; i++) { NPCWrap wrap = ResourcesManager.Instance.NPCs.objects[i]; if (wrap.ID == pnjKey) { info = wrap; break; } } if (info != null) { EWorldImpactType baseImpact = PropertyUtils.CastEnum <EWorldImpactType>(info.impactType); impacts.Add(baseImpact); type = ResourcesManager.GetBuildingType(baseImpact); BudgetValues values; if (ResourcesManager.Instance.BudgetValues.ContainsKey(baseImpact)) { values = ResourcesManager.Instance.BudgetValues[baseImpact]; } else { values = ResourcesManager.Instance.BudgetValues[EWorldImpactType.None]; } initialBudget = values.initialBudget; workingLimitBudget = values.workingLimitBudget; budget = values.initialBudget; productBenefit = values.productBenefit; } SetWorking(); ResourcesManager.Instance.AddBudgetComponent(this); }
public virtual void ShowThanks(EItemType targetType, bool haveBudget, bool haveItem) { NPCWrap dialKey = ResourcesManager.Instance.NPCs.objects.Find(e => e.ID == IDname); if (dialKey != null) { ThanksText txts = DialoguesDatabase[dialKey.NPCText].thanks.Find(t => t.itemType == targetType.ToString()); if (txts != null) { if (haveBudget && haveItem) { PointingBubble.instance.PNJThanks(this, txts.fullThanks); } else if (haveBudget) { PointingBubble.instance.PNJThanks(this, txts.haveBudgetText); } else if (haveItem) { PointingBubble.instance.PNJThanks(this, txts.haveItemText); } } } }