public void SetEntity(InvestmentProposal invProposal) { shareholder = Companies.GetInvestorById(Q, invProposal.ShareholderId); proposal = invProposal; Render(); }
bool InvestorIsNotRelatedToPlayer(InvestmentProposal proposal) { var investor = Investments.GetInvestorById(gameContext, proposal.ShareholderId); var isRelatedToPlayer = investor.hasCompany && Companies.IsRelatedToPlayer(gameContext, investor); return(!isRelatedToPlayer); }
bool IsTargetInvestsInInvestorItself(InvestmentProposal proposal, GameEntity targetCompany) { var investor = Companies.GetInvestorById(gameContext, proposal.ShareholderId); if (!investor.hasCompany || !targetCompany.hasShareholder) { return(false); } return(Companies.IsInvestsInCompany(investor, targetCompany.shareholder.Id)); }
void SendMoney(GameEntity product, GameEntity managingCompany, long sum) { var proposal = new InvestmentProposal { Offer = sum, ShareholderId = managingCompany.shareholder.Id, InvestorBonus = InvestorBonus.None, Valuation = 0, WasAccepted = false }; Companies.AddInvestmentProposal(gameContext, product.company.Id, proposal); Companies.AcceptInvestmentProposal(gameContext, product.company.Id, managingCompany.shareholder.Id); }
void SendMoney(GameEntity product, GameEntity managingCompany, long sum) { var date = ScheduleUtils.GetCurrentDate(gameContext); var goal = new InvestmentGoalUnknown(InvestorGoalType.GrowCompanyCost); var proposal = new InvestmentProposal { Investment = new Investment(sum, 1, goal, date), AdditionalShares = 0, ShareholderId = managingCompany.shareholder.Id, WasAccepted = false, }; Companies.AddInvestmentProposal(product, proposal); Companies.AcceptInvestmentProposal(gameContext, product, managingCompany); }
public static void SpawnProposals(GameContext context, GameEntity company) { long cost = Economy.CostOf(company, context); var date = ScheduleUtils.GetCurrentDate(context); var potentialInvestors = GetPotentialInvestors(context, company); foreach (var potentialInvestor in potentialInvestors) { var modifier = 50 + UnityEngine.Random.Range(0, 100); long valuation = cost * modifier / 100; var max = GetMaxInvestingAmountForInvestorType(potentialInvestor); var ShareholderId = potentialInvestor.shareholder.Id; var Duration = 10; // UnityEngine.Random.Range(5, 10); // TODO increase offer on early stages // or increase company valuation instead! var offer = Math.Min(valuation / 20, max); //var goal = new InvestmentGoalUnknown(InvestorGoalType.GrowCompanyCost); var goal = company.companyGoal.Goals[0]; var p = new InvestmentProposal { Investment = new Investment(offer, Duration, goal, date), AdditionalShares = (int)GetNewSharesSize(context, company, offer), ShareholderId = ShareholderId, WasAccepted = false }; // you cannot invest in yourself! if (company.hasShareholder && company.shareholder.Id == ShareholderId) { continue; } AddInvestmentProposal(company, p); } }
public static void AddInvestmentProposal(GameEntity company, InvestmentProposal proposal) { var proposals = company.investmentProposals.Proposals; // TODO REFACTOR var curr = GetInvestmentProposal(company, proposal.ShareholderId); if (curr == null) { proposals.Add(proposal); } else { var index = GetInvestmentProposalIndex(company, proposal.ShareholderId); proposals[index] = proposal; } company.ReplaceInvestmentProposals(proposals); }
public static void SpawnProposals(GameContext context, int companyId) { long cost = Economy.GetCompanyCost(context, companyId); var c = Get(context, companyId); var potentialInvestors = GetPotentialInvestors(context, companyId); var investorsCount = potentialInvestors.Length; foreach (var potentialInvestor in potentialInvestors) { var modifier = (50 + UnityEngine.Random.Range(0, 100)); long valuation = cost * modifier / 100; var ShareholderId = potentialInvestor.shareholder.Id; long offer = valuation / 10; var max = GetMaxInvestingAmountForInvestorType(potentialInvestor); if (offer > max) { offer = max; } var p = new InvestmentProposal { Valuation = valuation, Offer = valuation / 10, ShareholderId = ShareholderId, InvestorBonus = InvestorBonus.None, WasAccepted = false }; // you cannot invest in yourself! if (c.hasShareholder && c.shareholder.Id == ShareholderId) { continue; } AddInvestmentProposal(context, companyId, p); } }
internal static void AddInvestmentProposal(GameContext gameContext, int companyId, InvestmentProposal proposal) { var c = Get(gameContext, companyId); var proposals = c.investmentProposals.Proposals; // TODO REFACTOR var curr = GetInvestmentProposal(gameContext, companyId, proposal.ShareholderId); if (curr == null) { proposals.Add(proposal); } else { var index = GetInvestmentProposalIndex(gameContext, companyId, proposal.ShareholderId); proposals[index] = proposal; } c.ReplaceInvestmentProposals(proposals); }