投资公司发展物语 V0.3 实现规划文档
版本目标:在v0.2基础上,分阶段实现游戏阶段系统、多维能力、早期业务 文档状态:✅ 已完成(2026-04-24) 实施方式:v0.3.0 + v0.3.1已实现,v0.3.2长周期业务待后续版本
实现策略概述
为避免一次性实现过多功能导致开发周期过长,v0.3拆分为3个小版本:
| 版本 | 目标 | 预计工时 | 验收标准 |
|---|---|---|---|
| v0.3.0 | 基础框架 | 1-2天 | 阶段系统可正常运行,晋升弹窗显示 |
| v0.3.1 | 多维能力 + 初创期新业务 | 3-4天 | 员工有新能力属性,可开展咨询服务 |
| v0.3.2 | 扩张期长周期业务 | 4-5天 | 可开展房地产投资、初创投资 |
v0.3.0 - 游戏阶段系统(基础框架)
目标
建立游戏阶段系统,作为所有后续功能的前置依赖。
实现内容
1. 阶段定义与数据模型
// 阶段定义(建议添加到 gameState)
gameState.phase = {
current: 'startup', // 'startup' | 'expansion' | 'mature'
lastCheckedMonth: 0, // 上次检查月份,避免重复触发
unlockedFeatures: [], // 已解锁功能列表(用于UI显示)
history: [] // 阶段历史记录 [{phase, month, year}]
};
// 阶段触发条件配置
const PHASE_CONDITIONS = {
startup: { // 默认开局
next: 'expansion',
check: () => true // 总是满足
},
expansion: {
next: 'mature',
check: (state) => {
const totalAsset = state.cash + calculateTotalBusinessValue(state);
const year = 1990 + Math.floor(state.month / 12);
return totalAsset >= 10000 || // 1亿
(year >= 2000 && totalAsset >= 5000) || // 2000年且5000万
state.reputation >= 80;
}
},
mature: {
next: null, // 最终阶段
check: (state) => {
const totalAsset = state.cash + calculateTotalBusinessValue(state);
const year = 1990 + Math.floor(state.month / 12);
return state.ipoSuccess === true || // IPO成功标志
totalAsset >= 50000 || // 50亿
year >= 2010;
}
}
};
// 各阶段解锁功能配置
const PHASE_UNLOCKS = {
startup: {
businesses: ['stock', 'futures', 'consulting', 'fundraising'],
employeeTiers: ['junior'],
officeTypes: ['small'],
features: ['basic_hr', 'basic_training']
},
expansion: {
businesses: ['stock', 'futures', 'consulting', 'fundraising', 'realestate', 'startup_invest', 'ma_local', 'rnd', 'business_group'],
employeeTiers: ['junior', 'mid'],
officeTypes: ['small', 'standard', 'business'],
features: ['advanced_hr', 'advanced_training', 'loans']
},
mature: {
businesses: ['stock', 'futures', 'consulting', 'fundraising', 'realestate', 'startup_invest', 'ma_local', 'rnd', 'business_group', 'overseas', 'ma_global', 'ipo'],
employeeTiers: ['junior', 'mid', 'senior'],
officeTypes: ['small', 'standard', 'business', 'headquarters'],
features: ['advanced_hr', 'advanced_training', 'loans', 'global_operations', 'challenge_mode']
}
};
2. 阶段晋升检测流程
触发时机:每月初,在”查看行情”之前
function checkPhaseTransition(state) {
const currentPhase = state.phase.current;
const condition = PHASE_CONDITIONS[currentPhase];
if (!condition.next) return; // 已到达最终阶段
// 避免同月重复检查
if (state.phase.lastCheckedMonth === state.month) return;
state.phase.lastCheckedMonth = state.month;
if (condition.check(state)) {
const prevPhase = currentPhase;
const nextPhase = condition.next;
// 触发晋升
state.phase.current = nextPhase;
state.phase.unlockedFeatures = PHASE_UNLOCKS[nextPhase];
// 记录历史
state.phase.history.push({
phase: nextPhase,
month: state.month,
year: 1990 + Math.floor(state.month / 12),
triggeredBy: detectTriggerCondition(state, nextPhase) // 记录触发条件
});
// 显示强制弹窗
showPhaseUpModal({
from: prevPhase,
to: nextPhase,
unlocked: state.phase.unlockedFeatures,
history: state.phase.history,
isForced: true // ✅ 强制显示,必须点击关闭
});
}
}
3. UI - 阶段晋升弹窗(强制显示)
弹窗属性:✅ 强制显示(必须点击”我知道了”才能继续游戏)
弹窗内容:
- 标题:”🎉 公司进入[扩张期/成熟期]!”
- 说明文字:”恭喜,您的公司已满足以下条件之一…”
- 触发条件显示:显示具体哪个条件触发(资产达标/年份达标/声望达标)
- 解锁内容列表(带图标分类):
- 📊 新业务:[列表]
- 👥 新员工层级:[列表]
- 🏢 新写字楼类型:[列表]
- 按钮:”我知道了”(主按钮,必须点击)
历史记录:在”公司情况”页面增加阶段历史时间线
4. 阶段对系统的控制
UI过滤逻辑:
// 在业务列表渲染时
function getAvailableBusinesses(state) {
const currentPhase = state.phase.current;
const unlockedBusinesses = PHASE_UNLOCKS[currentPhase].businesses;
return ALL_BUSINESSES.filter(b =>
unlockedBusinesses.includes(b.id) ||
state.businesses.some(active => active.type === b.id) // 已开展的业务始终显示
);
}
// 在招聘界面渲染时
function getAvailableTiers(state) {
const currentPhase = state.phase.current;
return PHASE_UNLOCKS[currentPhase].employeeTiers;
}
// 在写字楼界面渲染时
function getAvailableOfficeTypes(state) {
const currentPhase = state.phase.current;
return PHASE_UNLOCKS[currentPhase].officeTypes;
}
v0.3.1 - 多维能力系统 + 初创期新业务
目标
完成员工能力系统升级(8行业技术完整实现),添加初创期新业务。
实现内容
1. 员工属性重设计(完整版)
✅ 确认:8个完整行业技术
// 行业定义
const INDUSTRIES = {
finance: { name: '金融', icon: '💰' },
realestate: { name: '地产', icon: '🏘️' },
tech: { name: '科技/互联网', icon: '💻' },
semiconductor: { name: '半导体', icon: '🔌' },
consumer: { name: '消费电子', icon: '📱' },
medical: { name: '医疗', icon: '🏥' },
energy: { name: '能源', icon: '⚡' },
aerospace: { name: '航天/汽车', icon: '🚀' }
};
// 新员工属性结构
interface Employee {
id: string;
name: string;
tier: 'junior' | 'mid' | 'senior';
// v0.2兼容属性(迁移后只读)
ability?: number; // 旧属性,迁移后用于显示"历史能力值"
aiStyle?: 'momentum' | 'trend' | 'dividend';
// v0.3新属性
leadership: number; // 1-10 领导力
innovation: number; // 1-10 创新力
execution: number; // 1-10 执行力
// 8行业技术(完整版)
industryTech: {
finance: number; // 0-100
realestate: number;
tech: number;
semiconductor: number;
consumer: number;
medical: number;
energy: number;
aerospace: number;
};
loyalty: number; // 1-10
exp: number; // 累计月数
salary: number; // 当前月薪
// UI显示用(计算属性)
abilityAverage?: number; // (leadership + innovation + execution) / 3
}
存档迁移逻辑:
function migrateEmployeeFromV02(oldEmployee) {
const oldAbility = oldEmployee.ability || 5;
return {
...oldEmployee,
// 三维均分原能力值(向上取整)
leadership: Math.ceil(oldAbility / 3 * (0.8 + Math.random() * 0.4)), // ±20%随机
innovation: Math.ceil(oldAbility / 3 * (0.8 + Math.random() * 0.4)),
execution: Math.ceil(oldAbility / 3 * (0.8 + Math.random() * 0.4)),
// 8行业技术初始化为0(或随机5-15表示基础了解)
industryTech: {
finance: Math.floor(Math.random() * 10) + 5,
realestate: Math.floor(Math.random() * 10) + 5,
tech: Math.floor(Math.random() * 10) + 5,
semiconductor: Math.floor(Math.random() * 10) + 5,
consumer: Math.floor(Math.random() * 10) + 5,
medical: Math.floor(Math.random() * 10) + 5,
energy: Math.floor(Math.random() * 10) + 5,
aerospace: Math.floor(Math.random() * 10) + 5
}
};
}
新员工生成:
function generateNewEmployeeV03(tier, availableIndustries) {
// 三维随机 3-7
const leadership = Math.floor(Math.random() * 5) + 3;
const innovation = Math.floor(Math.random() * 5) + 3;
const execution = Math.floor(Math.random() * 5) + 3;
// 随机选择1-2个主行业,赋予较高初始技术
const primaryIndustries = pickRandom(availableIndustries, Math.floor(Math.random() * 2) + 1);
const industryTech = {};
Object.keys(INDUSTRIES).forEach(ind => {
if (primaryIndustries.includes(ind)) {
industryTech[ind] = Math.floor(Math.random() * 20) + 10; // 主行业 10-30
} else {
industryTech[ind] = Math.floor(Math.random() * 10); // 其他 0-10
}
});
return { leadership, innovation, execution, industryTech };
}
2. 结算公式更新(方案B:不同业务用不同维度组合)
✅ 确认:方案B - 不同业务用不同维度组合
// 能力维度权重配置
const BUSINESS_ABILITY_WEIGHTS = {
stock: { leadership: 0.5, execution: 0.5, innovation: 0 },
futures: { leadership: 0.3, execution: 0.7, innovation: 0 },
consulting: { leadership: 0.8, execution: 0.2, innovation: 0 },
fundraising: { leadership: 1.0, execution: 0, innovation: 0 },
realestate: { leadership: 0.4, execution: 0.6, innovation: 0 },
startup_invest: { leadership: 0.2, execution: 0.2, innovation: 0.6 },
rnd: { leadership: 0.2, execution: 0.3, innovation: 0.5 },
ma: { leadership: 0.9, execution: 0.1, innovation: 0 }
};
// 行业技术加成配置
const BUSINESS_INDUSTRY_BOOST = {
stock: 0.3, // 每点行业技术+0.03%
futures: 0.2,
consulting: 0.5, // 咨询服务受行业技术影响大
fundraising: 0,
realestate: 0.4,
startup_invest: 0.4,
rnd: 0.6, // 研发受行业技术影响最大
ma: 0.3
};
// 统一结算公式
function calculateBusinessReturn(employee, businessType, marketCondition, industry, industryTechLevel) {
const weights = BUSINESS_ABILITY_WEIGHTS[businessType];
// 计算加权能力值
const weightedAbility =
employee.leadership * weights.leadership +
employee.execution * weights.execution +
employee.innovation * weights.innovation;
// 查能力修正表(使用加权后的能力值)
const abilityIndex = Math.min(Math.floor(weightedAbility), 10);
const A_table = [-200, -150, -100, -50, 0, 50, 100, 150, 200, 250, 300];
const abilityBonus = A_table[abilityIndex] || 0;
// 行业技术加成
const techBoost = BUSINESS_INDUSTRY_BOOST[businessType] || 0;
const industryBonus = industryTechLevel * techBoost;
// 市场基准
const marketBase = getMarketBaseRate(businessType, marketCondition);
// 合成收益率(万分比)
return marketBase + abilityBonus + industryBonus;
}
3. 晋升条件更新
const PROMOTION_RULES = {
junior_to_mid: {
exp: 24,
abilitySum: 12, // 领导力+创新力+执行力 >= 12
// 旧员工过渡期:v0.3前创建的员工,3个月内可用原"能力"值兼容计算
compatUntil: 'v0.3_migration_month_3'
},
mid_to_senior: {
exp: 60,
abilitySum: 20,
techRequirement: {
minValue: 50,
count: 1 // 至少1个行业技术>=50
}
}
};
4. 培训系统扩展
每月培训选项:
| 培训类型 | 费用 | 效果 |
|---|---|---|
| 通用能力提升 | (目标值)×1万 | 领导力/创新力/执行力中选一个+1 |
| 行业技术提升 | (目标值)×0.2万 | 8行业技术中选择一个+5 |
UI改动:
- 培训界面第一级选择:【提升通用能力】/【提升行业技术】
- 选择通用能力后:显示三个维度按钮
- 选择行业技术后:显示8个行业选项(带当前值)
5. 咨询服务 - 分行业市场分析报告
✅ 确认:分行业报告(需要选择行业)
业务参数:
| 属性 | 值 |
|---|---|
| 解锁阶段 | 初创期 |
| 所需层级 | 初级+ |
| 占用时间 | 当月完成(月末结算) |
| 投入资金 | 0(无需调拨资金) |
| 结算周期 | 立即 |
操作流程:
- 选择空闲员工
- 选择”市场分析报告”类型
- 选择目标行业(8选1)
- 确认开展(检查员工该行业技术)
- 月末结算收益
收益公式:
function calculateConsultingRevenue(employee, targetIndustry) {
const techLevel = employee.industryTech[targetIndustry];
// 基础3万
const base = 30;
// 领导力加成:每点0.3万
const leadershipBonus = employee.leadership * 3;
// 行业技术加成:每点0.1万
const techBonus = techLevel * 0.1;
// 总收益(单位:千元)
const total = base + leadershipBonus + techBonus;
// ✅ 确认:上限23万(不按文档6万限制)
return Math.min(total, 230); // 最大值230(23万)
}
能力增长:
- 完成后该行业技术+1
- 领导力有10%概率+1(小概率成长)
6. 拉取投资
业务参数:
| 属性 | 值 |
|---|---|
| 解锁阶段 | 初创期 |
| 所需层级 | 初级+ |
| 占用时间 | 随机1-6个月 |
| 投入资金 | 0 |
| 成功获得 | 10-100万 |
✅ 确认:无惩罚(失败后无任何负面效果)
周期计算:
function calculateFundraisingDuration(employee) {
// 领导力越高,周期越短
// 领导力1 -> 5-6个月,领导力10 -> 1-2个月
const minMonths = Math.max(1, 6 - Math.floor(employee.leadership / 2));
const maxMonths = Math.min(6, 7 - Math.floor(employee.leadership / 2));
return randomInt(minMonths, maxMonths);
}
成功判定:
function checkFundraisingSuccess(employee, companyReputation) {
// ✅ 确认:基础成功率30%-80%
let successRate = 0.3;
// 领导力加成:每点+5%
successRate += employee.leadership * 0.05;
// 声望加成:每点声望超过50,+0.5%
successRate += Math.max(0, (companyReputation - 50)) * 0.005;
// 范围限制
return Math.random() < Math.min(Math.max(successRate, 0.3), 0.8);
}
收益计算:
function calculateFundraisingAmount(employee, reputation) {
// 基础10-50万
const base = randomInt(100, 500); // 单位:千元
// 领导力加成
const leadershipBonus = employee.leadership * 30; // 每点+3万
// 声望加成
const repBonus = Math.max(0, reputation - 50) * 5; // 每点声望+0.5万
// 总额(最高100万 = 1000千元)
return Math.min(base + leadershipBonus + repBonus, 1000);
}
完成后效果:
- 员工领导力+1
- 公司声望+2
- 获得投资金额加入公司现金
v0.3.2 - 扩张期长周期业务(移至v0.4实现)
目标
实现扩张期解锁的36个月长周期业务。
状态说明:v0.3.2的长周期业务(房地产投资、初创投资)实现复杂度较高,需要更完善的业务状态管理和UI支持。为保证v0.3核心功能稳定,本部分移至v0.4版本专门实现。
实现内容
1. 长周期业务基础框架
✅ 确认:放在现有”在营业务”列表,加标签区分
interface LongTermBusiness {
id: string;
type: 'realestate' | 'startup_invest' | 'ma_local' | 'rnd';
employeeId: string; // 负责人
startMonth: number; // 开始月份(游戏总月数)
totalMonths: number; // 总周期
initialInvestment: number; // 初始投入(万元)
// 6个月操作窗口
minOperateMonth: number; // 第6个月后可操作
// 状态
status: 'running' | 'sold' | 'completed' | 'failed';
progress: number; // 当前进度月数
// 月度数据
monthlyData: Array<{
month: number;
revenue: number; // 收入
cost: number; // 成本
net: number; // 净收益
condition: number; // 当月市场景气
}>;
// 累计数据
totalRevenue: number;
totalCost: number;
currentValue: number; // 当前估值
}
// UI标签区分
const BUSINESS_TYPE_LABELS = {
stock: { name: '股票投资', tag: '月结', color: 'green' },
futures: { name: '期货', tag: '月结', color: 'orange' },
consulting: { name: '咨询', tag: '当月', color: 'blue' },
fundraising: { name: '拉投资', tag: '长期', color: 'purple' },
realestate: { name: '房地产', tag: '36月', color: 'brown' },
startup_invest: { name: '初创投资', tag: '36月', color: 'pink' }
};
UI显示规则:
- 月结业务:显示本月收益/收益率
- 长期业务:显示”第X月/共Y月”进度条
- 长期业务第6个月前:显示锁定图标,提示”6个月后可操作”
负责人更换:
function changeBusinessEmployee(business, newEmployeeId, state) {
// 只能在月初更换
if (state.dayOfMonth !== 1) {
throw new Error('只能在月初更换负责人');
}
// 检查是否已过6个月锁定
const currentProgress = state.month - business.startMonth;
if (currentProgress < 6) {
throw new Error(`还需等待${6 - currentProgress}个月才能更换负责人`);
}
// 原负责人经验结算
const oldEmployee = state.employees.find(e => e.id === business.employeeId);
if (oldEmployee) {
// 原负责人保留已获得的经验
// 不扣除,因为已经完成工作
}
// 更换负责人
business.employeeId = newEmployeeId;
// 新负责人从当前月开始计算
const newEmployee = state.employees.find(e => e.id === newEmployeeId);
return { success: true, message: `已更换负责人为${newEmployee.name}` };
}
2. 房地产投资
业务参数:
| 属性 | 值 |
|---|---|
| 解锁阶段 | 扩张期 |
| 所需层级 | 中级+ |
| 周期 | 36个月 |
| 初始投入 | 30-500万(玩家自选,需是10万整数倍) |
| 操作窗口 | 6个月后可出售/换人 |
月结收益(租金):
function calculateRealEstateMonthlyRevenue(investment, realEstateCondition) {
// 基础年化3-8%,分摊到月
// realEstateCondition: 0=繁荣(8%), 1=向好(6.5%), 2=平稳(5%), 3=低迷(4%), 4=冰点(3%)
const annualRate = [0.08, 0.065, 0.05, 0.04, 0.03][realEstateCondition];
const monthlyRate = annualRate / 12;
// 月租金收益(直接进入公司现金,不进业务账户)
return Math.floor(investment * monthlyRate);
}
到期增值:
function calculateRealEstateFinalValue(investment, monthlyConditions) {
// 根据36个月的地产景气累积决定
const avgCondition = average(monthlyConditions);
// 平均景气对应增值率
// 冰点(-20%) -> 低迷(-5%) -> 平稳(+10%) -> 向好(+25%) -> 繁荣(+40%)
const appreciationRate = [-0.2, -0.05, 0.1, 0.25, 0.4][Math.round(avgCondition)];
// 最终价值 = 初始投入 + 36个月租金累积 + 增值
const totalRent = monthlyConditions.reduce((sum, c) =>
sum + calculateRealEstateMonthlyRevenue(investment, c), 0
);
const finalValue = investment * (1 + appreciationRate) + totalRent;
return Math.floor(finalValue);
}
提前出售(6个月后):
function calculateRealEstateSaleValue(business, currentMonth, currentCondition) {
const elapsedMonths = currentMonth - business.startMonth;
const remainingMonths = 36 - elapsedMonths;
// 已获租金收益
const earnedRent = business.monthlyData.reduce((sum, m) => sum + m.revenue, 0);
// 剩余价值按当前市场行情折算
// 当前市场好则溢价出售,市场差则折价
const marketMultiplier = [1.3, 1.15, 1.0, 0.85, 0.7][currentCondition];
// 剩余预期租金的折现(简化:直接按比例)
const remainingValue = business.initialInvestment * (remainingMonths / 36) * marketMultiplier;
// 总出售价值
return Math.floor(business.initialInvestment * 0.9 + earnedRent + remainingValue * 0.5);
}
3. 初创投资
业务参数:
| 属性 | 值 |
|---|---|
| 解锁阶段 | 扩张期 |
| 所需层级 | 中级+ |
| 周期 | 36个月 |
| 初始投入 | 10-50万 |
| 结算 | 到期一次性判定 |
成功判定(到期时):
function checkStartupInvestmentSuccess(employee, targetIndustry, monthlyConditions) {
// ✅ 确认:基础成功率40%
let successRate = 0.4;
// 创新力加成:每点+3%
successRate += employee.innovation * 0.03;
// 行业技术加成:匹配行业时,每点+0.2%
const techLevel = employee.industryTech[targetIndustry] || 0;
successRate += techLevel * 0.002;
// 行业景气加成(36个月平均)
const avgCondition = average(monthlyConditions);
// 平均景气影响:繁荣+20%, 向好+10%, 平稳0, 低迷-10%, 冰点-20%
successRate += (2 - avgCondition) * 0.1;
// 限制范围并判定
return Math.random() < Math.min(Math.max(successRate, 0.1), 0.9);
}
收益倍数:
function calculateStartupReturn(investment, isSuccess, employee) {
if (!isSuccess) {
// ✅ 确认:失败完全损失,无残值回收
return 0;
}
// 成功时2-10倍
const baseMultiplier = 2;
// 创新力加成:每点+0.8倍
const innovationBonus = employee.innovation * 0.8;
// 随机波动 ±20%
const randomFactor = 0.8 + Math.random() * 0.4;
const multiplier = (baseMultiplier + innovationBonus) * randomFactor;
// 限制上限10倍
return Math.floor(investment * Math.min(multiplier, 10));
}
目标行业选择:
- 开展业务时需要选择投资哪个行业(8选1)
- 不同行业成功率独立计算(基于员工该行业技术)
- 行业景气使用对应宏观线
验收标准
v0.3.0 验收清单
- 新开游戏默认是初创期
- 修改存档总资产到1亿,次月触发扩张期弹窗
- 弹窗强制显示,必须点击”我知道了”才能继续
- 弹窗正确显示解锁内容列表和触发条件
- 扩张期业务列表显示新业务入口(房地产、初创投资等)
- 招聘界面显示中级员工可选项
- 公司情况页面显示阶段历史时间线
v0.3.1 验收清单
- 旧存档员工平滑迁移到新能力系统(三维+8行业技术)
- 员工详情页显示领导力/创新力/执行力和8行业技术
- 新员工生成带有随机三维和8行业技术
- 可开展咨询服务,选择行业后当月完成并获得收益
- 咨询服务收益公式正确(基础3万+领导力+行业技术)
- 可开展拉取投资,显示剩余月数和进度
- 拉投资成功后获得10-100万,领导力+1,声望+2
- 拉投资失败后无任何惩罚
- 培训界面可选择提升通用能力或8行业技术之一
- 股票/期货结算使用新能力公式(不同维度权重)
v0.3.2 验收清单(移至v0.4实现)
- 扩张期可开展房地产投资,选择投入金额30-500万
- 房地产投资每月产生租金收益(进入公司现金)
- 房地产投资显示”第X月/36月”进度
- 第6个月前显示锁定图标,不可出售/换人
- 第6个月后可出售房地产,按当前市场行情计算价值
- 可开展初创投资,选择目标行业
- 初创投资36个月后判定成功/失败
- 成功后获得2-10倍回报,失败完全损失
- 长周期业务可在月初更换负责人
- 业务列表正确区分月结业务和长期业务标签
数值参考表
能力修正表 A(万分比)
| 加权能力值 | 修正值 | 说明 |
|---|---|---|
| 1 | -200 | 极低 |
| 2 | -150 | 很低 |
| 3 | -100 | 较低 |
| 4 | -50 | 稍低 |
| 5 | 0 | 平均 |
| 6 | +50 | 稍高 |
| 7 | +100 | 较高 |
| 8 | +150 | 很高 |
| 9 | +200 | 极高 |
| 10 | +250 | 超强 |
行业景气对应收益影响
| 景气 | 编码 | 股票基线 | 期货基线 | 地产年化 | 初创成功率 |
|---|---|---|---|---|---|
| 繁荣 | 0 | +12% | +15% | 8% | +20% |
| 向好 | 1 | +5% | +6% | 6.5% | +10% |
| 平稳 | 2 | +1% | 0% | 5% | 0% |
| 低迷 | 3 | -3% | -4% | 4% | -10% |
| 冰点 | 4 | -8% | -10% | 3% | -20% |
文档完成日期:2026-04-24 版本:v0.3 已实现 作者:AI Assistant + User
实际实现摘要
v0.3.0 已实现
- ✅ 游戏阶段系统完整实现(phase.js)
- ✅ 阶段晋升检测与弹窗(checkPhaseTransition)
- ✅ 阶段解锁表(PHASE_UNLOCKS)
- ✅ 存档迁移支持(旧存档自动适配)
v0.3.1 已实现
- ✅ 多维能力系统(领导力/创新力/执行力 + 8行业技术)
- ✅ 员工迁移逻辑(migrateEmployeeFromV02)
- ✅ 新员工生成带多维能力(talentPool.js)
- ✅ 业务结算使用能力权重(BUSINESS_ABILITY_WEIGHTS)
- ✅ 咨询服务(当月完成,行业选择)
- ✅ 拉投资(多月周期,领导力影响周期和成功率)
v0.3.2 待实现(v0.4)
- ⏳ 房地产投资(36月周期)
- ⏳ 初创投资(36月周期)
- ⏳ 长周期业务状态管理
- ⏳ 业务操作窗口(6月后出售/换人)
附录:数值表更新
股票/期货基线收益率
实际代码值(tables.js)与设计文档不同,已调整为更保守的范围:
股票 B_STOCK_BP_BY_C: [500, 250, 0, -250, -500] → 对应 ±5%
期货 B_FUT_BP_BY_C: [600, 300, 0, -300, -600] → 对应 ±6%
调整原因:避免月度波动过大,更符合长线投资特征。