# CIVITAS2-standalone **Repository Path**: sg-first/civitas2-standalone ## Basic Information - **Project Name**: CIVITAS2-standalone - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CIVITAS2 - 古典社会模拟 ## 项目简介 CIVITAS2是一个古典社会模拟游戏,玩家可以在游戏中体验各种生产活动、技能发展、社交互动等模拟内容 ## 游戏系统 ### 1. 技能系统 技能系统是游戏的核心机制之一,包含7个大类技能,每个大类下有多个小类技能专精: #### 技能分类 - **耕作**:种植、畜牧、农艺 - **采伐**:采集、伐木、开采、勘探 - **建设**:建筑、修缮 - **加工**:冶炼、金属锻造、纺织、食品加工、木石加工 - **社交**:雄辩、交际、文书、管理 - **舟车**:陆上运输、水上运输 - **畜牧**:饲养、繁殖、兽医 #### 技能属性 - 每个技能大类包含:技能点、等级、悟性三个主要属性 - 技能等级影响产能和成功率 - 悟性影响技能学习速度 #### 技能增长机制 - 通过参与相关的副业活动获得技能点增长 - 技能增长受到类型修正、快乐值、悟性等参数影响 - 实现了技能衰减机制,长期不使用技能会导致熟练度下降 ### 2. 种植系统 种植系统是游戏中实现最完整的生产活动之一,主要在`crop.py`中实现,包含三个核心类: #### 作物类(crop) - 定义了10个关键参数:作物名、所需产能、灌溉范围、肥力需求、温度范围等 - 实现了复杂的buff/debuff计算系统,包括: - 灌溉值计算:基于0-300的灌溉值,在最适区间内提供最大25%加成 - 肥力值计算:基于0-100的肥力值,达到最适肥力时提供最大25%加成 - 温度值计算:基于实际温度与作物最适温度的差异,提供不同程度的加成或惩罚 - 最终产能通过三者的乘积计算,形成综合性的生产修正 #### 城市/气候类(city) - 实现了天气系统,包括晴、多云、阴、小雨、大雨、小雪、大雪等天气类型 - 支持6种气候类型(温带季风、亚热带季风、热带季风、地中海、温带大陆、温带海洋),每种气候有不同的降水概率和季节变化 - 实现了季节交替和温度变化逻辑,季节影响灌溉默认值和肥力值 - 包含特殊事件如河流泛滥(夏季),可大幅提升肥力 #### 农田类(farm) - 管理农田的灌溉值和肥力值变化 - 实现了灌溉消耗和恢复机制,与天气、季节密切相关 - 每天耕作消耗固定的灌溉值和肥力值 - 提供farm_simulation方法计算最终产能加成 ### 3. 建筑系统 建筑系统在`city.py`中有部分实现,主要功能包括: #### 建筑模型(Building) - 定义了基本字段:建筑ID、占用土地、已获取土地、状态等 - 状态分为建造中和建造完成两种 #### 建筑种类 - 目前实现了两种建筑:仓库(占地1单位)和住宅(占地0.5单位) #### 垦荒机制 - 玩家需要消耗四维属性(特别是饥饿值)来获取土地 - 使用Redis进行原子化操作,避免并发问题 - 每垦荒一次增加一定比例的已获取土地,达到所需土地后建筑完成 ### 4. 其他生产活动 #### 开采系统 - 属于"采伐"大类下的小类技能 - 在SkillModel中有对应的技能点字段(kaicai) - 目前主要作为技能分类的一部分存在 #### 冶炼系统 - 属于"加工"大类下的小类技能 - 在SkillModel中有对应的技能点字段(yelian) - 目前主要作为技能分类的一部分存在 #### 食品加工系统 - 属于"加工"大类下的小类技能 - 在SkillModel中有对应的技能点字段(shiping) - 目前主要作为技能分类的一部分存在 #### 文书系统 - 属于"社交"大类下的小类技能 - 目前主要作为技能分类的一部分存在 ### 5. 副业系统 副业系统是玩家获取资源和提升技能的主要途径: #### 核心功能 - 在`work.py`中实现了副业产能计算(sideline_capacity)和技能增长(sideline_skill_increase)逻辑 - 综合考虑主技能、小技能、类型修正、快乐值等参数计算产能 - 实现了四维属性(快乐、能量、健康、饥饿)的消耗机制 #### 产能计算 - 产能计算公式:基础产能 × (1 + 主技能加成) × (1 + 小技能加成) × 类型修正 × 快乐值修正 - 技能等级越高,产能加成越大 ### 6. 运输系统 运输系统目前处于初步设计阶段: #### 技能定义 - 属于"舟车"大类下的小类技能 - 包括陆上运输和水上运输两种专精 - 在SkillModel中有相关字段定义(目前为注释状态) #### 实现状态 - 已定义技能属性,但缺少具体的运输任务和物品搬运逻辑 - 在副业系统中有舟车技能分类字典定义 ## 项目结构 ### 后端(api目录) - **api/function/**:核心游戏逻辑实现 - crop.py:种植系统 - work.py:工作和副业系统 - assist.py:辅助功能和技能增长 - city.py:城市和建筑系统 - **models/**:数据模型定义 - SkillModel:技能相关模型 - WorkModel:工作相关模型 - UserModel:用户相关模型 - cities:城市和建筑模型 ### 前端(civitas web目录) - **civitas/js/**:前端JavaScript代码 - people/sideline.js:副业系统前端 - recipe/estate.js:不动产建造前端 ## 核心机制 ### 1. 产能计算机制 产能是游戏中衡量生产效率的关键指标,由多个因素综合决定: ```python # 产能计算核心逻辑 def capacity_calculation(uid, big_type, mini_type): # 获取用户技能数据 # 计算主技能加成 # 计算小技能加成 # 应用类型修正和快乐值修正 # 返回最终产能 ``` ### 2. 技能增长机制 技能增长受到多种因素影响,包括当前技能等级、悟性、快乐值等: ```python # 大类技能增长 def skill_increase(uid, skill_type, add_num): # 获取用户技能数据 # 应用悟性修正 # 应用快乐值修正 # 计算最终增长值 # 更新技能数据 # 小类技能增长 def skill_mini_increase(uid, skill_type, add_num): # 类似的逻辑,但针对小类技能 ``` ### 3. 天气与环境系统 天气系统对农业生产有重要影响,实现了完整的气候模拟: ```python # 天气变化 def weather_simulation2(self): # 日期变化 # 温度变化 # 降水变化 # 天气类型更新 # 灌溉和肥力值变化 ``` ## 开发状态 - 种植系统:已完整实现 - 建筑系统:基础功能已实现 - 技能系统:框架已完成 - 副业系统:核心功能已实现 - 开采、冶炼、食品加工、文书等:仅完成技能框架,缺少具体玩法 - 运输系统:初步设计阶段 ## 技术栈 ### 后端 - Python - Django - Redis ### 前端 - JavaScript - Vue.js - Bootstrap ## 运行环境 - Python 3.x - Django 3.x - Redis ## 安装与运行 1. 克隆代码库 2. 安装依赖:`pip install -r requirements.txt` 3. 配置数据库和Redis 4. 运行迁移:`python manage.py migrate` 5. 启动服务器:`python manage.py runserver`