投资公司发展物语 V2.0 设计文档 v0.4

投资公司发展物语 V2.0 设计文档 v0.4

版本说明

  • 本文档为 v0.4唯一版本说明,合并了「实现规划」与「规则速查」:既包含子版本划分与验收,也包含玩家/设计向速查表
  • 继承 v0.2 全部 UI/结算/人事基线,在 v0.3 阶段与多维能力/咨询/拉投之上叠加本版(股份、上市、NPC、年报、股价、增发、自交易)。
  • 全篇与仓库 investment-sim/ 对齐(SCHEMA_VERSION = 6);与代码冲突时以代码为准。
  • 全局大设定仍以 投资公司发展物语 V2.0 设计文档.md 为纲。
  • 子文档见 docs/roadmap.mdsettlement-system.mdhr-system.mdguidance-system.md

0. v0.4 实现约定与变更摘要

主题 v0.4 约定
公司股权 state.companyEquity:总股本 100 万股、玩家股数、未上市前参考股价 0.0001 万/股 等。
公司改名 2~10 字,中文/英文/数字;上市中或已上市不可改。
拉投资 + 股份 预计算目标 ≥ 50 万 时,需先确认预计出让比例;仅在成功募资到账时equityOnSuccess 稀释,失败不稀释。
上市后筹资 不再开展「拉投资」;使用 增发(次月生效、冷却 6 月、价格 ≤ 当时股价 110%)。
NPC 投资 未上市出现机构意向;接受后加现金、减玩家股、写入投资者;有每年/每机构次数限制。
上市流程 申请(交申请费)→ 审核一月 → 准备期 3 月(月准备费)→ 上市;准备/申请中不可开拉投。
财务滚动 _monthStartTotalAssetWan月结后总资产差计入 financials.monthlyProfits
股价(上市后) 月结末更新 sharePriceWan(基本面/情绪/随机等,以代码为限幅)。
年报 每年 1 月可生成上一自然年摘要(pendingAnnualReport)。
玩家上市证券 代码 STK0021仅上市后合并进行情;主界面动态更新名称、挂牌等。
自交易 回购/卖出于 系统资金池(v0.4 简化);大额减持可压价companyEquity.js)。
存档 SCHEMA_VERSION = 6;读档为缺 companyEquity 的旧档补默认可玩

1. 实现策略与子版本

子版本 目标 核心交付 验收要点
v0.4.0 股份 + 拉投股份化 + NPC companyEquity、≥50 万拉投确认、成功稀释、NPC 年上限 大金额拉投弹窗、上市后无 NPC 拉股
v0.4.1 上市申请 + 准备期 条件、申请费、审核月、准备月费、完成上市 流程可走通,ipoSuccess 可联动阶段
v0.4.2 年报 + 上市股价 1 月年报、月结后股价、滚动 12 月利润 弹窗与更新逻辑存在
v0.4.3 增发 + 自交易 次月生效、冷却、STK0021、回购/卖股 公司页与「新开业务」增发磁贴

代码主路径js/core/companyEquity.jsjs/core/npcInvestors.jsjs/core/monthEngine.jsjs/main.js;数据 data/investment-sim/stocks-futures.jsonSTK0021 占位。


2. 分版实现说明(v0.4.0 ~ v0.4.3)

2.1 v0.4.0 - 股份系统 + 拉投资股份化 + NPC

  • 数据companyNametotalShares(100 万)、playerSharessharePriceWanisListedlistingProgressnone / applying / preparing / listed)、equityFinancinginvestors[]financialscreateDefaultCompanyEquity / ensureCompanyEquity、旧档迁移。
  • 改名renameCompany,上市或申请/准备中不可改。
  • 拉投:<50 万无 equityOnSuccess;≥50 万 pendingFundraisingConfirmation + confirmFundraisingWithEquity成功applyDilutionOnFundraisingSuccess;上市后不可开拉投。
  • NPCnpcInvestors.js 配置;tryNpcInvestment / acceptNpcInvestment / expireNpcIfNeeded_npcYearCounts
  • 存档SCHEMA_VERSION = 6persistence.js 补全字段。

2.2 v0.4.1 - 上市申请 + 准备期

  • checkListingEligibilityapplyForListing10 万申请费)、cancelListingApplication(已付费不退)。
  • processListingOnMonthStartapplying 过审进 preparing(3 月);preparing 每月 5 万completeListingipoSuccessisListed、弹窗等)。
  • 申请/准备期拦截新拉投。

2.3 v0.4.2 - 年报 + 上市股价

  • 月结末 appendMonthlyNetProfitChangerunSettlement 内调用。
  • 每年 1 月 maybeGenerateAnnualReportpendingAnnualReport
  • 已上市月结末 updateListedSharePriceAfterSettlement + 历史价记录。

2.4 v0.4.3 - 增发 + 自交易

  • applyForEquityIssuance / processEquityIssuanceOnMonthStart110% 价上限、冷却不低于 6 月等)。
  • buyOwnCompanyShares / sellOwnCompanySharesSTK0021getPlayerCompanyStockDefensurePlayerStockInConfig
  • UI:公司页与上市后「增发」磁贴、隐藏拉投。

3. 验收标准

要点
v0.4.0 companyEquity、拉投 ≥50 万须确认、成功稀释、上市无拉投、NPC 可接拒
v0.4.1 上市与取消、准备期扣费与完成;申请/准备中不可开拉投
v0.4.2 滚动月利润、1 月年报、上市后月结末股价
v0.4.3 增发/冷却/入口、自交易、STK0021 合并
UI 拉投/NPC/上市/年报/增发等阻塞弹窗存在时,禁止「下一个月」(以 main.js 为准)

4. 数值与常量速查(与代码一致)

值/说明
总股本初值 1 000 000 股
初始参考股价(万/股) 0.0001(约 1 元/股)
拉投股份化门槛 50 万(预计算目标金额)
上市申请费 10 万
上市准备费 5 万/月
增发冷却 6 个自然月(monthIndex 差)
增发价上限 当前股价 × 110%
玩家公司代码 STK0021

5. 规则与界面速查

5.1 与 v0.2 / v0.3

  • v0.2:股票/期货/指导/月报/月分红/人才库等仍适用。
  • v0.3:阶段、多维能力、咨询、拉投(多月) 仍适用;v0.4 增加拉投大额股份化、上市、NPC、增发线。

5.2 股权与证券

说明
总股本 默认 100 万;增发增加。
玩家股 可因稀释 < 总股本;0 股可继续玩。
投资者 investors 汇总拉投/NPC/增发等。
证券行 STK0021 随公司与年月动态。

5.3 拉投资

说明
小目标 <50 万,直接开展。
大目标 ≥50 万,确认后带 equityOnSuccess成功才稀释。
上市/准备/上市后 准备与申请拉投;上市后用增发。

5.4 NPC、上市、年报、增发、自交易、UI

  • NPC:月初尝试;未上市、无在途等;上市后不再走本逻辑。
  • 上市:申请费 → 审核月 → 准备 3 月(月费)→ 设 ipoSuccess、挂牌。
  • 年报/股价:1 月年报;isListed 月结末更新股价。
  • 增发:次月批,冷却与价上限见 §4。
  • 自交易:回购加持股、卖股得现金、大额可压价。
  • UI:上述弹窗阻塞「下一个月」;公司页股权/上市/增发/买卖;新开业里上市后为增发磁贴、无拉投。

5.5 表驱动与数据

路径 内容
data/investment-sim/stocks-futures.json、内嵌 EMBEDDED STK0021 占位,上市后由运行时合并
js/core/companyEquity.js 费用、冷却、价帽等单一来源
js/core/tables.js 与 v0.3 共用阶段表;equity_issuance 由 UI 侧注入磁贴

6. 功能边界

本版已含:股权、改名、拉投大额确认、NPC、上市全链路、滚动利润、年报、股价、增发、自交易、STK0021、schema 6。

本版未含(见主设计 / roadmap.md:长周期 36 月房地产/初创、完整二级撮合、多玩家等。


7. 实际实现文件摘要

模块 文件
股权/上市/增发/自交易/年报/股价 js/core/companyEquity.js
NPC js/core/npcInvestors.js
月初/月结/拉投确认 js/core/monthEngine.js
初态与版本 js/core/state.js
读档 js/core/persistence.js
UI js/main.jsindex.html

后续(与 v0.3 实现规划对位):长周期房地产/初创等仍属更后版本,与 v0.4 股份线并行规划。


8. 调试与复现

  • 种子与月索引见 rng.js;验稀释:确认拉投 → 推进至成功月 → 看 investorsplayerShares

附录:相关文档

文档 内容
投资公司发展物语 V2.0 设计文档.md 主设计
投资公司发展物语 V2.0 实现规划 v0.3.md v0.3 实现分版
投资公司发展物语 V2.0 设计文档 v0.2.md v0.2 基线速查
docs/roadmap.md 路线图

文档完成日期:2026-04-24


版本历史

v0.4 (当前,本文档)

  • 合并原「设计文档 v0.4」与「实现规划 v0.4」为单文件;内容:子版本+验收+规则速查+实现路径。

v0.3

  • 投资公司发展物语 V2.0 实现规划 v0.3.md

v0.2

  • 投资公司发展物语 V2.0 设计文档 v0.2.md

v0.1

  • 投资公司发展物语 V2.0 设计文档 v0.1.md

Latest Posts

Introducing some new layouts to Bulma Clean Theme
Introducing some new layouts to Bulma Clean Theme

I’ve been meaning to write about some of the new features I have been rolling out to my Jekyll theme, Bulma Clean Theme, for a while but I have only just managed to push the update for the landing page layout last weekend. This article provides some of the thinking behind the updates, as well as a brief introduction to how to get started.

Getting started with Bulma Clean Theme for Jekyll
Getting started with Bulma Clean Theme for Jekyll

I have made a theme for Jekyll which is based on the Bulma frontend framework. It might look familiar, because I am also using it for this site. If you like the look of this theme then I thought I would write a little blog post about how to use it for your own site and how you can use it with GitHub Pages.

Why use a static site generator
Why use a static site generator

There are many ways to make a website and many different CMS platforms you can use, such as WordPress and Joomla, as well as site builder tools that offer you drag and drop interfaces, but what about static site generators?