-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLvConfig.cs
More file actions
192 lines (142 loc) · 5.82 KB
/
Copy pathLvConfig.cs
File metadata and controls
192 lines (142 loc) · 5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
using LabApi.Features;
using System.Collections.Generic;
using System.ComponentModel;
using PlayerRoles;
namespace LevelUp.ConfigFiles;
/// <summary>
/// Phase 5.2: 升级曲线类型
/// </summary>
public enum LevelCurveType
{
Linear, // 线性:basic + level * overflow
Exponential, // 指数:basic * (1 + rate)^level
Custom // 自定义:未来扩展
}
public sealed class GotExpAmount
{
[Description("启动发电机")]
public int ActivatingGenerator { get; set; } = 20;
[Description("击杀玩家")]
public int KillingPlayer { get; set; } = 10;
[Description("击杀SCP(不含049-2), 百分比经验倍率(即造成x%伤害给予x*times经验)")]
public float times { get; set; } = 1;
[Description("对SCP伤害造成小于5%时给予的经验(基础经验)")]
public int damageless5 { get; set; } = 5;
[Description("逃离设施时给予的经验")]
public int EscapedFacility { get; set; } = 20;
// === Phase 3.1: 基础战斗事件 ===
[Description("辅助击杀(对目标造成伤害但非最后一击)")]
public int AssistKill { get; set; } = 5;
[Description("爆头击杀额外奖励")]
public int HeadshotBonus { get; set; } = 5;
[Description("连杀时间窗口(秒)")]
public int MultiKillWindow { get; set; } = 10;
[Description("双杀额外奖励")]
public int DoubleKill { get; set; } = 5;
[Description("三杀额外奖励")]
public int TripleKill { get; set; } = 10;
[Description("四杀额外奖励")]
public int QuadKill { get; set; } = 20;
[Description("五杀及以上额外奖励")]
public int PentaKill { get; set; } = 30;
// === Phase 3.2: 团队协作事件 ===
[Description("治疗队友")]
public int HealAlly { get; set; } = 3;
[Description("闪光弹命中敌人(每个敌人)")]
public int FlashbangHit { get; set; } = 2;
[Description("手榴弹命中敌人(每个敌人)")]
public int GrenadeHit { get; set; } = 5;
[Description("拘留D级人员(设施警卫)")]
public int CuffDClass { get; set; } = 8;
[Description("解除手铐(互助)")]
public int FreeCuffed { get; set; } = 5;
// === Phase 3.3: SCP专属事件 ===
[Description("SCP击杀人类")]
public int ScpKillHuman { get; set; } = 15;
[Description("SCP-079开门操作")]
public int Scp079OpenDoor { get; set; } = 1;
[Description("SCP-079锁门操作")]
public int Scp079LockDoor { get; set; } = 2;
[Description("SCP-079特斯拉门击杀")]
public int Scp079TeslaKill { get; set; } = 10;
[Description("SCP-106口袋维度击杀")]
public int Scp106PocketKill { get; set; } = 12;
// === Phase 3.4: 特殊目标事件 ===
[Description("首次启动Alpha弹头")]
public int FirstWarheadStart { get; set; } = 25;
[Description("击杀特定角色类型首杀额外奖励")]
public int FirstKillBonus { get; set; } = 3;
[Description("存活时间奖励间隔(秒)")]
public int SurvivalInterval { get; set; } = 120;
[Description("存活时间奖励经验")]
public int SurvivalReward { get; set; } = 2;
}
public sealed class ShowTime
{
[Description("获得经验时的显示时间")]
public float gotexp { get; set; } = 3f;
[Description("升级提示的显示时间")]
public float lvlUpTip { get; set; } = 3f;
[Description("击杀提示的显示时间")]
public float killmessage { get; set; } = 3f;
}
public sealed class LevelUpNums
{
[Description("升级曲线类型:Linear(线性) / Exponential(指数) / Custom(自定义)")]
public LevelCurveType CurveType { get; set; } = LevelCurveType.Linear;
[Description("线性公式基础值")]
public int basic { get; set; } = 100;
[Description("线性公式每级增长")]
public int overflow { get; set; } = 5;
[Description("线性公式额外值")]
public int extra { get; set; } = 50;
[Description("指数公式增长率 (例如: 0.1 表示每级增长10%)")]
public float ExponentialRate { get; set; } = 0.1f;
[Description("等级上限 (0 表示无限制)")]
public int MaxLevel { get; set; } = 0;
}
public sealed class HintSettings
{
[Description("是否启用显示")]
public bool IsEnabled { get; set; }
[Description("显示内容字体大小")]
public int FontSize { get; set; }
[Description("显示内容顶端消息(起始)Y轴坐标")]
public int YCoordinate { get; set; }
[Description("显示内容顶端消息(起始)X轴坐标")]
public int XCoordinate { get; set; }
[Description("击杀提示最大显示条数(仅对击杀提示有效)")]
public int MaxDisplayMessages { get; set; } = 5;
}
public class LvConfig
{
[Description("是否启用插件")]
public bool IsEnabled { get; set; } = true;
[Description("是否启用Debug模式")]
public bool Debug { get; set; } = false;
[Description("升级公式: 下一级所需经验 = basic + (当前等级 - 1) * overflow + extra")]
public LevelUpNums formulaNums { get; set; } = new();
[Description("各类显示时间")]
public ShowTime showTime { get; set; } = new();
[Description("事件对应经验值获取量")]
public GotExpAmount expAmount { get; set; } = new();
[Description("等级显示设置")]
public HintSettings statesettings { get; set; } = new()
{
IsEnabled = true,
FontSize = 20,
YCoordinate= 1000,
XCoordinate = 0
};
[Description("击杀提示显示(全局)")]
public HintSettings killsettings { get; set; } = new()
{
IsEnabled= true,
FontSize = 20,
YCoordinate = 300,
XCoordinate = 700,
MaxDisplayMessages = 5
};
[Description("是否在玩家名称前显示等级前缀")]
public bool EnableNamePrefix { get; set; } = true;
}