#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 更新视觉配置工作表,添加缺失的trailEffect字段 """ import pandas as pd import os from pathlib import Path def update_visual_config_sheet(): """更新视觉配置工作表,添加trailEffect字段""" # 获取Excel文件路径 excel_file = Path(__file__).parent / '方块武器配置' / '方块武器配置表.xlsx' print(f"正在更新Excel文件: {excel_file}") try: # 读取现有的视觉配置工作表 visual_config = pd.read_excel(excel_file, sheet_name='视觉配置') print(f"当前视觉配置表列名: {list(visual_config.columns)}") # 检查是否已有trailEffect字段 if 'trailEffect' not in visual_config.columns and '拖尾特效' not in visual_config.columns: # 在开火音效列之前插入trailEffect列 insert_pos = visual_config.columns.get_loc('开火音效') # 创建trailEffect数据 - 根据weapons.json中的配置 trail_effects = { 'pea_shooter': None, 'sharp_carrot': 'Animation/WeaponTx/tx0001/tx0001', 'saw_grass': 'Animation/WeaponTx/tx0001/tx0001', 'watermelon_bomb': None, 'boomerang_plant': 'Animation/WeaponTx/tx0001/tx0001', 'hot_pepper': 'Animation/WeaponTx/tx0001/tx0001', 'cactus_shotgun': None, 'okra_missile': None, 'mace_club': None } # 为每个武器添加trailEffect值 trail_effect_values = [] for _, row in visual_config.iterrows(): weapon_id = row['武器ID'] trail_effect = trail_effects.get(weapon_id, None) trail_effect_values.append(trail_effect) # 插入新列 visual_config.insert(insert_pos, '拖尾特效', trail_effect_values) print(f"添加了拖尾特效列,新的列名: {list(visual_config.columns)}") # 读取所有现有工作表 all_sheets = pd.read_excel(excel_file, sheet_name=None) # 更新视觉配置工作表 all_sheets['视觉配置'] = visual_config # 重新写入Excel文件 with pd.ExcelWriter(excel_file, engine='openpyxl') as writer: for sheet_name, sheet_data in all_sheets.items(): sheet_data.to_excel(writer, sheet_name=sheet_name, index=False) print("✓ 成功更新视觉配置工作表,添加了拖尾特效字段") return True else: print("视觉配置表已包含拖尾特效字段,无需更新") return True except Exception as e: print(f"更新视觉配置表失败: {e}") return False if __name__ == '__main__': success = update_visual_config_sheet() if success: print("\n视觉配置工作表更新完成!") else: print("\n视觉配置工作表更新失败!")