using System;
using System.IO;
using ColdMint.scripts.dataPack;
using Godot;
using Environment = System.Environment;
namespace ColdMint.scripts;
public static class Config
{
public class BehaviorTreeId
{
///
/// 巡逻
/// Patrol
///
public const string Patrol = "Patrol";
}
///
/// BehaviorTreeResult
/// 行为树的结果
///
public class BehaviorTreeResult
{
///
/// Running
/// 运行中
///
public const int Running = 0;
///
/// Success
/// 成功
///
public const int Success = 1;
///
/// Failure
/// 失败
///
public const int Failure = 2;
}
///
/// Camp ID
/// 阵营ID
///
public static class CampId
{
///
/// Default camp
/// 表示默认阵营
///
public const string Default = "Default";
///
/// Demon camp
/// 魔族阵营
///
public const string Mazoku = "Mazoku";
///
/// Aborigines
/// 原住民
///
public const string Aborigines = "Aborigines";
}
///
/// How much blood does a heart represent
/// 一颗心代表多少血量
///
public const int HeartRepresentsHealthValue = 4;
///
/// The maximum number of stacked items in a single inventory
/// 单个物品栏最大堆叠的物品数量
///
public const int MaxStackQuantity = 99;
///
/// Company/Creator name
/// 公司/创作者名字
///
public const string CompanyName = "ColdMint";
///
/// An empty namespace
/// 空的命名空间
///
public const string EmptyNamespace = "Empty";
///
/// The default namespace of the packet
/// 数据包的默认命名空间
///
public const string DefaultNamespace = "traveler";
///
/// UserID
/// 用户ID
///
public const string UserId = "DefaultUser";
///
/// Whether version isolation is enabled
/// 是否启用版本隔离
///
public const bool EnableVersionIsolation = true;
///
/// Default version name
/// 默认的版本名称
///
///
///Used when version isolation is disabled
///在禁用版本隔离时用的
///
public const string DefaultVersionName = "Default";
public const string DataPackDirectoryName = "DataPacks";
public const string CacheDirectoryName = "Caches";
public const string DataBaseDirectoryName = "DataBases";
///
/// The starting path of the item data
/// 物品数据的起始路径
///
public const string ItemStartPathName = "items";
public const string SpriteStartPathName = "sprites";
///
/// The format of the source file inside the packet
/// 数据包内的源文件格式
///
public const string DataPackSourceFileFomat = ".json";
///
/// The path symbol inside the compressed package
/// 压缩包内部的路径符号
///
public const char ZipPathCharacter = '/';
///
/// Gets the packet directory
/// 获取数据包目录
///
///
public static string GetDataPackDirectory()
{
return Path.Join(GetGameDataDirectory(), DataPackDirectoryName);
}
///
/// Gets the packet cache directory
/// 获取数据包缓存目录
///
///
///
public static string GetDataPackCacheDirectory(string namespaceStr)
{
var path = Path.Join(GetGameDataDirectory(), CacheDirectoryName, DataPackDirectoryName, namespaceStr);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
return path;
}
///
/// Get database directory
/// 获取数据库目录
///
///
public static string GetDataBaseDirectory()
{
return Path.Join(GetGameDataDirectory(), DataBaseDirectoryName);
}
///
/// GetGameDataDirectory
/// 获取游戏数据目录
///
///
public static string GetGameDataDirectory()
{
if (EnableVersionIsolation)
{
return Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), CompanyName,
ProjectSettings.GetSetting("application/config/name").AsString(), UserId,
ProjectSettings.GetSetting("application/config/version").AsString());
}
else
{
return Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), CompanyName,
ProjectSettings.GetSetting("application/config/name").AsString(), UserId,
DefaultVersionName);
}
}
///
/// The initial year of creating this game
/// 创建此游戏的初始年份
///
public const int CreationYear = 2024;
///
/// Tile map, dimensions of individual tiles
/// 瓦片地图,单个瓦片的尺寸
///
public const int CellSize = 32;
///
/// The maximum health of the default creature
/// 默认生物的最大血量
///
public const int DefaultMaxHp = 100;
///
/// When a creature takes damage, how long to hide the bloodline again
/// 生物受到伤害时,要在多长时间后再次隐藏血条
///
public static TimeSpan HealthBarDisplaysTime = TimeSpan.FromSeconds(2);
///
/// Text size of critical hit damage
/// 暴击伤害的文本大小
///
public const int CritDamageTextSize = 33;
///
/// Crit damage multiplier
/// 暴击伤害乘数
///
///
///How much damage to increase after a critical strike
///造成暴击后要将伤害提升到原有的多少倍
///
public const float CriticalHitMultiplier = 2f;
///
/// Text size of normal damage
/// 普通伤害的文本大小
///
public const int NormalDamageTextSize = 22;
///
/// Horizontal speed of damage numbers
/// 伤害数字的水平速度
///
public const int HorizontalSpeedOfDamageNumbers = 3;
///
/// The file name of the packet's manifest
/// 数据包的清单文件名
///
public const string DataPackManifestName = "DataPackManifest.json";
///
/// VerticalVelocityOfDamageNumbers
/// 伤害数字的垂直速度
///
public const int VerticalVelocityOfDamageNumbers = 5;
///
/// Physical collision layer number
/// 物理碰撞层 序号
///
public class LayerNumber
{
public const int RoomArea = 1;
public const int Ground = 2;
public const int Player = 3;
public const int Weapon = 4;
public const int Projectile = 5;
public const int Platform = 6;
public const int Mob = 7;
}
///
/// Specify the type of damage used in the game
/// 指定游戏内使用的伤害类型
///
public class DamageType
{
///
/// physical injury
/// 物理伤害
///
public const int Physical = 1;
///
/// Magic damage
/// 魔法伤害
///
public const int Magic = 2;
}
}