battle, ship boom boom

This commit is contained in:
rfi
2024-02-26 11:03:56 +07:00
parent 3046a7d20e
commit a6f4897c29
8 changed files with 424 additions and 4 deletions

View File

@@ -16,6 +16,9 @@ public static class Data
[LoadData("ship_skin_template.json", LoadDataType.ShareCfg)]
public static Dictionary<int, ShipSkinTemplate> ShipSkinTemplate { get; private set; } = null!;
[LoadData("battle_cost_template.json", LoadDataType.ShareCfg)]
public static Dictionary<uint, BattleCostTemplate> BattleCostTemplate { get; private set; } = null!;
[LoadData("chapter_template.json", LoadDataType.ShareCfgData)]
public static Dictionary<int, ChapterTemplate> ChapterTemplate { get; private set; } = null!;

View File

@@ -1,4 +1,5 @@
using System.Text.Json;
using BLHX.Server.Common.Utils;
using System.Text.Json;
using System.Text.RegularExpressions;
namespace BLHX.Server.Common.Data;
@@ -19,7 +20,7 @@ public static partial class JSON
}
string text = File.ReadAllText(path);
if (typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Dictionary<,>) && typeof(T).GetGenericArguments()[0] == typeof(int))
if (typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Dictionary<,>) && typeof(T).GetGenericArguments()[0].IsTypeNumeric())
{
text = DictKeyAll().Replace(text, "");
}

View File

@@ -0,0 +1,34 @@
using System.Text.Json.Serialization;
namespace BLHX.Server.Common.Data
{
public class BattleCostTemplate
{
[JsonPropertyName("attack_count")]
public uint AttackCount { get; set; }
[JsonPropertyName("cat_exp_award")]
public uint CatExpAward { get; set; }
[JsonPropertyName("end_sink_cost")]
public uint EndSinkCost { get; set; }
[JsonPropertyName("enter_energy_cost")]
public uint EnterEnergyCost { get; set; }
[JsonPropertyName("global_buff_effected")]
public uint GlobalBuffEffected { get; set; }
[JsonPropertyName("id")]
public uint Id { get; set; }
[JsonPropertyName("oil_cost")]
public uint OilCost { get; set; }
[JsonPropertyName("ship_exp_award")]
public uint ShipExpAward { get; set; }
[JsonPropertyName("user_exp_award")]
public uint UserExpAward { get; set; }
}
}

View File

@@ -205,7 +205,7 @@ namespace BLHX.Server.Common.Database
}
if (num < 0)
res.Num = (uint)Math.Max(res.Num - num, 0);
res.Num = (uint)Math.Max(res.Num + num, 0);
else
res.Num = Math.Min(res.Num + (uint)num, uint.MaxValue);
}

View File

@@ -0,0 +1,316 @@
{
"0": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 0,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"1": {
"attack_count": 1,
"cat_exp_award": 1,
"end_sink_cost": 1,
"enter_energy_cost": 1,
"global_buff_effected": 1,
"id": 1,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"2": {
"attack_count": 1,
"cat_exp_award": 1,
"end_sink_cost": 1,
"enter_energy_cost": 1,
"global_buff_effected": 0,
"id": 2,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"3": {
"attack_count": 2,
"cat_exp_award": 1,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 3,
"oil_cost": 0,
"ship_exp_award": 1,
"user_exp_award": 1
},
"4": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 4,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"5": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 5,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"6": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 6,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"7": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 7,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"8": {
"attack_count": 1,
"cat_exp_award": 1,
"end_sink_cost": 0,
"enter_energy_cost": 1,
"global_buff_effected": 0,
"id": 8,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"9": {
"attack_count": 1,
"cat_exp_award": 1,
"end_sink_cost": 0,
"enter_energy_cost": 1,
"global_buff_effected": 0,
"id": 9,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"10": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 10,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"11": {
"attack_count": 1,
"cat_exp_award": 1,
"end_sink_cost": 1,
"enter_energy_cost": 1,
"global_buff_effected": 0,
"id": 11,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"12": {
"attack_count": 0,
"cat_exp_award": 1,
"end_sink_cost": 1,
"enter_energy_cost": 1,
"global_buff_effected": 0,
"id": 12,
"oil_cost": 1,
"ship_exp_award": 1,
"user_exp_award": 1
},
"13": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 13,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"14": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 14,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"15": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 15,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"30": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 30,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"50": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 50,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"51": {
"attack_count": 0,
"cat_exp_award": 1,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 51,
"oil_cost": 0,
"ship_exp_award": 1,
"user_exp_award": 1
},
"93": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 93,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"94": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 94,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"95": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 95,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"96": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 96,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"97": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 97,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"98": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 98,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"99": {
"attack_count": 0,
"cat_exp_award": 0,
"end_sink_cost": 0,
"enter_energy_cost": 0,
"global_buff_effected": 0,
"id": 99,
"oil_cost": 0,
"ship_exp_award": 0,
"user_exp_award": 0
},
"all": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
50,
51,
93,
94,
95,
96,
97,
98,
99,
30
]
}

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLHX.Server.Common.Utils
{
public static class TypeExtensions
{
static readonly HashSet<Type> numericTypes =
[
typeof(byte),
typeof(sbyte),
typeof(short),
typeof(ushort),
typeof(int),
typeof(uint),
typeof(float),
typeof(long),
typeof(ulong),
typeof(decimal)
];
public static bool IsTypeNumeric(this Type type)
{
return numericTypes.Contains(type);
}
}
}