Initial commit, doesn't do a whole lot yet
This commit is contained in:
commit
1fb4231684
|
@ -0,0 +1,63 @@
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior to automatically normalize line endings.
|
||||||
|
###############################################################################
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior for command prompt diff.
|
||||||
|
#
|
||||||
|
# This is need for earlier builds of msysgit that does not have it on by
|
||||||
|
# default for csharp files.
|
||||||
|
# Note: This is only used by command line
|
||||||
|
###############################################################################
|
||||||
|
#*.cs diff=csharp
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set the merge driver for project and solution files
|
||||||
|
#
|
||||||
|
# Merging from the command prompt will add diff markers to the files if there
|
||||||
|
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||||
|
# the diff markers are never inserted). Diff markers may cause the following
|
||||||
|
# file extensions to fail to load in VS. An alternative would be to treat
|
||||||
|
# these files as binary and thus will always conflict and require user
|
||||||
|
# intervention with every merge. To do so, just uncomment the entries below
|
||||||
|
###############################################################################
|
||||||
|
#*.sln merge=binary
|
||||||
|
#*.csproj merge=binary
|
||||||
|
#*.vbproj merge=binary
|
||||||
|
#*.vcxproj merge=binary
|
||||||
|
#*.vcproj merge=binary
|
||||||
|
#*.dbproj merge=binary
|
||||||
|
#*.fsproj merge=binary
|
||||||
|
#*.lsproj merge=binary
|
||||||
|
#*.wixproj merge=binary
|
||||||
|
#*.modelproj merge=binary
|
||||||
|
#*.sqlproj merge=binary
|
||||||
|
#*.wwaproj merge=binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# behavior for image files
|
||||||
|
#
|
||||||
|
# image files are treated as binary by default.
|
||||||
|
###############################################################################
|
||||||
|
#*.jpg binary
|
||||||
|
#*.png binary
|
||||||
|
#*.gif binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# diff behavior for common document formats
|
||||||
|
#
|
||||||
|
# Convert binary document formats to text before diffing them. This feature
|
||||||
|
# is only available from the command line. Turn it on by uncommenting the
|
||||||
|
# entries below.
|
||||||
|
###############################################################################
|
||||||
|
#*.doc diff=astextplain
|
||||||
|
#*.DOC diff=astextplain
|
||||||
|
#*.docx diff=astextplain
|
||||||
|
#*.DOCX diff=astextplain
|
||||||
|
#*.dot diff=astextplain
|
||||||
|
#*.DOT diff=astextplain
|
||||||
|
#*.pdf diff=astextplain
|
||||||
|
#*.PDF diff=astextplain
|
||||||
|
#*.rtf diff=astextplain
|
||||||
|
#*.RTF diff=astextplain
|
|
@ -0,0 +1,366 @@
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Oo]ut/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# EF migration
|
||||||
|
efbundle.exe
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.8.34316.72
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elisa", "Elisa\Elisa.csproj", "{AE240F77-1DA8-42B0-9D81-E42B8E7B7D77}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{AE240F77-1DA8-42B0-9D81-E42B8E7B7D77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AE240F77-1DA8-42B0-9D81-E42B8E7B7D77}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AE240F77-1DA8-42B0-9D81-E42B8E7B7D77}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AE240F77-1DA8-42B0-9D81-E42B8E7B7D77}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {CE4FB4A4-9B1E-49D6-B57F-118A0EAB2EF8}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,167 @@
|
||||||
|
using Serilog;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Elisa.Commands;
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
||||||
|
public class CommandHandler(string name, string description, string example) : Attribute
|
||||||
|
{
|
||||||
|
public string Name = name;
|
||||||
|
public string Description = description;
|
||||||
|
public string Example = example;
|
||||||
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Property)]
|
||||||
|
public class ArgumentAttribute(string key) : Attribute
|
||||||
|
{
|
||||||
|
public string Key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
public enum CommandUsage
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Console = 1,
|
||||||
|
User = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class Command
|
||||||
|
{
|
||||||
|
public virtual CommandUsage Usage
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var usage = CommandUsage.None;
|
||||||
|
if (GetType().GetMethod(nameof(Execute), [typeof(Dictionary<string, string>), typeof(Connection)])?.DeclaringType == GetType())
|
||||||
|
usage |= CommandUsage.User;
|
||||||
|
if (GetType().GetMethod(nameof(Execute), [typeof(Dictionary<string, string>)])?.DeclaringType == GetType())
|
||||||
|
usage |= CommandUsage.Console;
|
||||||
|
|
||||||
|
return usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly Dictionary<string, PropertyInfo> argsProperties;
|
||||||
|
|
||||||
|
public Command()
|
||||||
|
{
|
||||||
|
argsProperties = GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
|
||||||
|
.Where(x => Attribute.IsDefined(x, typeof(ArgumentAttribute)))
|
||||||
|
.ToDictionary(x => ((ArgumentAttribute)Attribute.GetCustomAttribute(x, typeof(ArgumentAttribute))!).Key, StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Execute(Dictionary<string, string> args)
|
||||||
|
{
|
||||||
|
foreach (var arg in args)
|
||||||
|
{
|
||||||
|
if (argsProperties.TryGetValue(arg.Key, out var prop))
|
||||||
|
prop.SetValue(this, arg.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Execute(Dictionary<string, string> args, Connection connection)
|
||||||
|
{
|
||||||
|
Execute(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void NotifySuccess(Connection connection)
|
||||||
|
{
|
||||||
|
// connection.SendSystemMsg($"{GetType().Name} success!");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected T Parse<T>(string? value, T fallback = default!)
|
||||||
|
{
|
||||||
|
var tryParseMethod = typeof(T).GetMethod("TryParse", [typeof(string), typeof(T).MakeByRefType()]);
|
||||||
|
|
||||||
|
if (tryParseMethod != null)
|
||||||
|
{
|
||||||
|
var parameters = new object[] { value!, null! };
|
||||||
|
bool success = (bool)tryParseMethod.Invoke(null, parameters)!;
|
||||||
|
|
||||||
|
if (success)
|
||||||
|
return (T)parameters[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class CommandHandlerFactory
|
||||||
|
{
|
||||||
|
public static readonly List<Command> Commands = new List<Command>();
|
||||||
|
|
||||||
|
static readonly Dictionary<string, Action<Dictionary<string, string>>> commandFunctions;
|
||||||
|
static readonly Dictionary<string, Action<Dictionary<string, string>, Connection>> commandFunctionsUser;
|
||||||
|
private static readonly char[] separator = new[] { ' ' };
|
||||||
|
|
||||||
|
static CommandHandlerFactory()
|
||||||
|
{
|
||||||
|
commandFunctions = new Dictionary<string, Action<Dictionary<string, string>>>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
commandFunctionsUser = new Dictionary<string, Action<Dictionary<string, string>, Connection>>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RegisterCommands(Assembly assembly)
|
||||||
|
{
|
||||||
|
var commandTypes = assembly.GetTypes()
|
||||||
|
.Where(t => Attribute.IsDefined(t, typeof(CommandHandler)) && typeof(Command).IsAssignableFrom(t));
|
||||||
|
|
||||||
|
foreach (var commandType in commandTypes)
|
||||||
|
{
|
||||||
|
var commandAttribute = (CommandHandler?)Attribute.GetCustomAttribute(commandType, typeof(CommandHandler));
|
||||||
|
if (commandAttribute != null)
|
||||||
|
{
|
||||||
|
var commandInstance = (Command)Activator.CreateInstance(commandType)!;
|
||||||
|
|
||||||
|
if (commandInstance.Usage.HasFlag(CommandUsage.Console))
|
||||||
|
commandFunctions[commandAttribute.Name] = commandInstance.Execute;
|
||||||
|
if (commandInstance.Usage.HasFlag(CommandUsage.User))
|
||||||
|
commandFunctionsUser[commandAttribute.Name] = commandInstance.Execute;
|
||||||
|
|
||||||
|
Commands.Add(commandInstance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.Information($"Registered {Commands.Count} commands");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void HandleCommand(string commandLine, Connection? connection = null)
|
||||||
|
{
|
||||||
|
var parts = commandLine.Split(separator, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
if (parts.Length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var arguments = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
for (var i = 1; i < parts.Length; i++)
|
||||||
|
{
|
||||||
|
var argParts = parts[i].Split('=', 2);
|
||||||
|
if (argParts.Length == 2)
|
||||||
|
arguments[argParts[0]] = argParts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (connection is not null)
|
||||||
|
{
|
||||||
|
if (!(commandFunctionsUser).TryGetValue(parts[0], out var command))
|
||||||
|
{
|
||||||
|
Log.Warning($"Unknown command: {parts[0]}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
command(arguments, connection);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!(commandFunctions).TryGetValue(parts[0], out var command))
|
||||||
|
{
|
||||||
|
Log.Warning($"Unknown command: {parts[0]}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
command(arguments);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is just a stub for now, probably won't even get used
|
||||||
|
public class Connection
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Elisa.Commands;
|
||||||
|
|
||||||
|
[CommandHandler("help", "Print out all commands with their description and example", "help")]
|
||||||
|
public class HelpCommand : Command
|
||||||
|
{
|
||||||
|
static readonly Dictionary<Type, CommandHandler?> commandAttributes = [];
|
||||||
|
|
||||||
|
public override void Execute(Dictionary<string, string> args)
|
||||||
|
{
|
||||||
|
base.Execute(args);
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb.AppendLine("Available Commands: ");
|
||||||
|
foreach (var command in CommandHandlerFactory.Commands.Where(x => x.Usage.HasFlag(CommandUsage.Console)))
|
||||||
|
{
|
||||||
|
if (!commandAttributes.TryGetValue(command.GetType(), out var attr))
|
||||||
|
{
|
||||||
|
attr = command.GetType().GetCustomAttribute(typeof(CommandHandler)) as CommandHandler;
|
||||||
|
commandAttributes[command.GetType()] = attr;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (attr != null)
|
||||||
|
sb.AppendLine($" {attr.Name} - {attr.Description} (Example: {attr.Example})");
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.Write(sb.ToString());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using Elisa.Utils;
|
||||||
|
using Serilog;
|
||||||
|
|
||||||
|
namespace Elisa.Commands;
|
||||||
|
|
||||||
|
[CommandHandler("test", "Command to test various functions", "test type=encrypt value=asdf")]
|
||||||
|
public class tESTcOMMAND : Command
|
||||||
|
{
|
||||||
|
[Argument("type")]
|
||||||
|
public string? Type { get; set; }
|
||||||
|
|
||||||
|
[Argument("value")]
|
||||||
|
public string? Value { get; set; }
|
||||||
|
|
||||||
|
public override void Execute(Dictionary<string, string> args)
|
||||||
|
{
|
||||||
|
base.Execute(args);
|
||||||
|
|
||||||
|
string output = string.Empty;
|
||||||
|
|
||||||
|
switch (Type.ToLower())
|
||||||
|
{
|
||||||
|
case "encrypt":
|
||||||
|
output = Crypto.Encrypt(Value, "test");
|
||||||
|
Console.WriteLine(output);
|
||||||
|
break;
|
||||||
|
case "decrypt":
|
||||||
|
output = Crypto.Decrypt(Value, "test");
|
||||||
|
Console.WriteLine(output);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Log.Error("Invalid test type");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
using Elisa.Commands;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace Elisa.Controllers;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("/")]
|
||||||
|
public class CommandController : ControllerBase
|
||||||
|
{
|
||||||
|
[HttpGet("command")]
|
||||||
|
public IResult Command([FromQuery] string command)
|
||||||
|
{
|
||||||
|
CommandHandlerFactory.HandleCommand(command);
|
||||||
|
|
||||||
|
return Results.Text("Command executed");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace Elisa.Controllers;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("/Index")]
|
||||||
|
public class IndexController : ControllerBase
|
||||||
|
{
|
||||||
|
[HttpGet("version")]
|
||||||
|
public IResult Version([FromQuery] string req_id)
|
||||||
|
{
|
||||||
|
return Results.Json(new
|
||||||
|
{
|
||||||
|
now = "1716182820",
|
||||||
|
tomorrow_zero = "1716192000",
|
||||||
|
month_zero = 1714550400,
|
||||||
|
next_month_zero = 1717228800,
|
||||||
|
timezone = "PST8PDT",
|
||||||
|
data_version = "d630eea53a1b869fa4d7d1479a3d09e7",
|
||||||
|
client_version = "30400",
|
||||||
|
ab_version = "2024051417",
|
||||||
|
is_kick = "0",
|
||||||
|
weekday = 1,
|
||||||
|
authentication_url = $"http://realauth.ucenter.ppgame.com/authoriz.html?appid={0}&openid={1}&accounttype=1&language=zh"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
|
namespace Elisa.Data;
|
||||||
|
|
||||||
|
public static class JSON
|
||||||
|
{
|
||||||
|
public static JsonSerializerOptions serializerOptions = new() { IncludeFields = true, WriteIndented = true };
|
||||||
|
|
||||||
|
public static T Load<T>(string path, bool create = true) where T : new()
|
||||||
|
{
|
||||||
|
if (!File.Exists(path) && create)
|
||||||
|
{
|
||||||
|
T obj = new T();
|
||||||
|
Save(path, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
string text = File.ReadAllText(path);
|
||||||
|
|
||||||
|
return JsonSerializer.Deserialize<T>(text, serializerOptions) ?? new T();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Save<T>(string path, T obj)
|
||||||
|
{
|
||||||
|
File.WriteAllText(path, JsonSerializer.Serialize(obj, serializerOptions));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Stringify<T>(T obj)
|
||||||
|
{
|
||||||
|
return JsonSerializer.Serialize(obj, serializerOptions);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
using Elisa.Data.Tables;
|
||||||
|
using Serilog;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
|
namespace Elisa.Data;
|
||||||
|
|
||||||
|
public enum LoadDataType
|
||||||
|
{
|
||||||
|
CatchData,
|
||||||
|
STC,
|
||||||
|
Text
|
||||||
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Property)]
|
||||||
|
public class LoadDataAttribute(string fileName, LoadDataType dataType) : Attribute
|
||||||
|
{
|
||||||
|
public LoadDataType DataType = dataType;
|
||||||
|
public string FileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Table
|
||||||
|
{
|
||||||
|
[LoadData("gun_exp_info.json", LoadDataType.CatchData)]
|
||||||
|
public static List<gun_exp_info> gun_exp_info { get; private set; } = null!;
|
||||||
|
|
||||||
|
[LoadData("spot.json", LoadDataType.STC)]
|
||||||
|
public static List<spot> spot { get; private set; } = null!;
|
||||||
|
|
||||||
|
public static void Load()
|
||||||
|
{
|
||||||
|
foreach (PropertyInfo? prop in typeof(Table).GetProperties().Where(x => x.GetCustomAttribute<LoadDataAttribute>() is not null))
|
||||||
|
{
|
||||||
|
LoadDataAttribute attr = prop.GetCustomAttribute<LoadDataAttribute>()!;
|
||||||
|
|
||||||
|
switch (attr.DataType)
|
||||||
|
{
|
||||||
|
case LoadDataType.CatchData:
|
||||||
|
object? obj = typeof(JSON).GetMethod(nameof(JSON.Load))!.MakeGenericMethod(typeof(object)).Invoke(null, [Path.Combine(GetPath(attr.DataType), attr.FileName), false]);
|
||||||
|
JsonProperty entry = ((JsonElement)obj).EnumerateObject().First();
|
||||||
|
object? value = JsonSerializer.Deserialize(entry.Value.GetRawText(), prop.PropertyType, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||||
|
prop.SetValue(null, value);
|
||||||
|
Log.Information($"Loaded {(prop.GetValue(null) as IList)?.Count} entries from {prop.Name} catchdata table");
|
||||||
|
break;
|
||||||
|
case LoadDataType.STC:
|
||||||
|
prop.SetValue(null, typeof(JSON).GetMethod(nameof(JSON.Load))!.MakeGenericMethod(prop.PropertyType).Invoke(null, [Path.Combine(GetPath(attr.DataType), attr.FileName), false]));
|
||||||
|
Log.Information($"Loaded {(prop.GetValue(null) as IList)?.Count} entries from {prop.Name} stc table");
|
||||||
|
break;
|
||||||
|
case LoadDataType.Text:
|
||||||
|
// TODO: textdata is just a flat list of key-value pairs that are looked up from stc
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.Information("All data tables loaded");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetPath(LoadDataType type)
|
||||||
|
=> type switch
|
||||||
|
{
|
||||||
|
LoadDataType.CatchData => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/catchdata/"),
|
||||||
|
LoadDataType.STC => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/stc/"),
|
||||||
|
LoadDataType.Text => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/text/table")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class Model
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
namespace Elisa.Data.Tables;
|
||||||
|
|
||||||
|
public class gun_exp_info : Model
|
||||||
|
{
|
||||||
|
public string lv;
|
||||||
|
public string exp;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
namespace Elisa.Data.Tables;
|
||||||
|
|
||||||
|
public class spot : Model
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int mission_id;
|
||||||
|
public int type;
|
||||||
|
public int special_eft;
|
||||||
|
public string route;
|
||||||
|
public int coordinator_x;
|
||||||
|
public int coordinator_y;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public int ally_team_id;
|
||||||
|
public int belong;
|
||||||
|
public string random_get;
|
||||||
|
public int map_type;
|
||||||
|
public string curve_control;
|
||||||
|
public string active_cycle;
|
||||||
|
public string durability;
|
||||||
|
public string map_route;
|
||||||
|
public string map_code;
|
||||||
|
public string hostage_info;
|
||||||
|
public int building_id;
|
||||||
|
public string forbid_specialspot;
|
||||||
|
public int map_num;
|
||||||
|
public int package;
|
||||||
|
public string auto_teleport;
|
||||||
|
public string spot_effect;
|
||||||
|
public string access_type;
|
||||||
|
public string code;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Data.Tables;
|
|
@ -0,0 +1,38 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<Version>0.1.0</Version>
|
||||||
|
<Company>Sangvis Ferri</Company>
|
||||||
|
<Authors></Authors>
|
||||||
|
<Title>Elisa</Title>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="appsettings.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Resources\catchdata\*.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Resources\stc\*.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Resources\text\table\*.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Serilog" Version="3.1.1" />
|
||||||
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
|
||||||
|
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
|
||||||
|
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||||
|
<PackageReference Include="SharpZipLib" Version="1.4.2" />
|
||||||
|
<PackageReference Include="System.Text.Json" Version="8.0.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,23 @@
|
||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Serilog;
|
||||||
|
|
||||||
|
namespace Elisa;
|
||||||
|
|
||||||
|
public class GameServer
|
||||||
|
{
|
||||||
|
public static async Task Start()
|
||||||
|
{
|
||||||
|
WebApplicationBuilder builder = WebApplication.CreateBuilder(Environment.GetCommandLineArgs());
|
||||||
|
builder.Host.UseSerilog();
|
||||||
|
builder.Services.Configure<KestrelServerOptions>(op => op.AllowSynchronousIO = true);
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
|
||||||
|
WebApplication app = builder.Build();
|
||||||
|
app.UseAuthorization();
|
||||||
|
app.UseSerilogRequestLogging();
|
||||||
|
app.MapControllers();
|
||||||
|
app.Run();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GetAllBonusRequest
|
||||||
|
{
|
||||||
|
public int battlepass_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetAllBonusResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, IndexPrize> extra_bonus;
|
||||||
|
public Dictionary<int, IndexPrize> free_bonus;
|
||||||
|
public Dictionary<int, IndexPrize> paid_bonus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetBonusRequest
|
||||||
|
{
|
||||||
|
public int battlepass_id;
|
||||||
|
public int param;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetBonusResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, IndexPrize> bonus;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class ChessGashaDrawRequest
|
||||||
|
{
|
||||||
|
public int draw_param;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChessGashaDrawResponse
|
||||||
|
{
|
||||||
|
public int[] result;
|
||||||
|
public int ticket_cost;
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class ChipEnhanceRequest
|
||||||
|
{
|
||||||
|
public long chip_with_user_id;
|
||||||
|
public long[] foods;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChipEnhanceResponse
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int chip_add_exp;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChipRetireRequest
|
||||||
|
{
|
||||||
|
public long[] chips;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChipRetireResponse
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishDataAnalysisResponse
|
||||||
|
{
|
||||||
|
public int cost_item16_num;
|
||||||
|
public Dictionary<int, DataAnalysisData> data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartDataAnalysisRequest
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
public int input_level;
|
||||||
|
public int number;
|
||||||
|
public int quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartDataAnalysisResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, long> data;
|
||||||
|
}
|
|
@ -0,0 +1,180 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class EquipDevelopMultiRequest
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_heavy;
|
||||||
|
public int build_multi;
|
||||||
|
public int build_quick;
|
||||||
|
public int input_level;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipDevelopMultiResponse
|
||||||
|
{
|
||||||
|
public List<EquipIds> equip_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipDevelopRequest
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int input_level;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipDevelopResponse
|
||||||
|
{
|
||||||
|
public int equip_id;
|
||||||
|
public int fairy_id;
|
||||||
|
public int passive_skill;
|
||||||
|
public int quality_lv;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipFinishAllDevelopRequest
|
||||||
|
{
|
||||||
|
public int is_cost_item3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipFinishAllDevelopResponse
|
||||||
|
{
|
||||||
|
public int cost_item3_num;
|
||||||
|
public List<EquipAdd> equip_with_user_add_list;
|
||||||
|
public List<FairyAdd> fairy_with_user_add_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipFinishDevelopRequest
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipFinishDevelopResponse
|
||||||
|
{
|
||||||
|
public Equip equip_with_user;
|
||||||
|
public long fairy_with_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipProduceDevelopRequest
|
||||||
|
{
|
||||||
|
public int[] build_slots;
|
||||||
|
public int if_quick;
|
||||||
|
public int recommended_formula_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipProduceDevelopResponse
|
||||||
|
{
|
||||||
|
public int equip_id;
|
||||||
|
public Equip equip_with_user;
|
||||||
|
public int slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyDevelopRequest
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_heavy;
|
||||||
|
public int build_multi;
|
||||||
|
public int build_quick;
|
||||||
|
public int build_slot;
|
||||||
|
public int input_level;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyDevelopResponse
|
||||||
|
{
|
||||||
|
public List<FairyDevdata> equip_ids;
|
||||||
|
public Fairy fairy_with_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyFinishAllDevelopRequest
|
||||||
|
{
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyFinishAllDevelopResponse
|
||||||
|
{
|
||||||
|
public int cost_item3_num;
|
||||||
|
public List<Equip> equip_with_user_add_list;
|
||||||
|
public List<FairyAdd> fairy_with_user_add_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyFinishDevelopRequest
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunDevelopMultiRequest
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_heavy;
|
||||||
|
public int build_multi;
|
||||||
|
public int build_quick;
|
||||||
|
public int build_slot;
|
||||||
|
public int input_level;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunDevelopMultiResponse
|
||||||
|
{
|
||||||
|
public List<GunIds> gun_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunDevelopRequest
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int input_level;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunDevelopResponse
|
||||||
|
{
|
||||||
|
public int gun_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunFinishAllDevelopResponse
|
||||||
|
{
|
||||||
|
public int cost_item3_num;
|
||||||
|
public List<Gun> gun_with_user_add_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunFinishDevelopRequest
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunFinishDevelopResponse
|
||||||
|
{
|
||||||
|
public Gun gun_with_user_add;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunWishDevelopRequest
|
||||||
|
{
|
||||||
|
public int[] build_slots;
|
||||||
|
public int event_id;
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunWishDevelopResponse
|
||||||
|
{
|
||||||
|
public List<GunDevelopResult> develop_result;
|
||||||
|
public GunWish wish_gun_with_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyFinishDevelopResponse
|
||||||
|
{
|
||||||
|
public long fairy_with_user;
|
||||||
|
}
|
|
@ -0,0 +1,135 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class ChangeSkinRequest
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int skin_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DecomposeRequest
|
||||||
|
{
|
||||||
|
public long[] ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DecomposeResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> gift_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetBuildCoinRequest
|
||||||
|
{
|
||||||
|
public int dorm_id;
|
||||||
|
public long v_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetBuildCoinResponse
|
||||||
|
{
|
||||||
|
public int build_coin;
|
||||||
|
public int remain_coin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GiftToGunRequest
|
||||||
|
{
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int item_id;
|
||||||
|
public int num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GiftToGunResponse
|
||||||
|
{
|
||||||
|
public List<AllFavorupGun> all_favorup_gun;
|
||||||
|
public int gun_exp;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int last_favor_recover_time;
|
||||||
|
public int skin_add_favor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GiftToSangvisRequest
|
||||||
|
{
|
||||||
|
public int item_id;
|
||||||
|
public int num;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GiftToSangvisResponse
|
||||||
|
{
|
||||||
|
public int add_favor;
|
||||||
|
public List<AllFavorupGun> all_favorup_gun;
|
||||||
|
public List<AllFavorupSangvis> all_favorup_sangvis;
|
||||||
|
public int last_favor_recover_time;
|
||||||
|
public int sangvis_exp;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OpenRedRequest
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OpenRedResponse
|
||||||
|
{
|
||||||
|
public List<RedPrize> list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveFavorRequest
|
||||||
|
{
|
||||||
|
public int dorm_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveFavorResponse
|
||||||
|
{
|
||||||
|
public int favor_click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveSangvisFavorRequest
|
||||||
|
{
|
||||||
|
public int dorm_id;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveSangvisFavorResponse
|
||||||
|
{
|
||||||
|
public int favor_click;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShareResponse
|
||||||
|
{
|
||||||
|
public int prize_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SkinGashaDrawRequest
|
||||||
|
{
|
||||||
|
public int draw_type;
|
||||||
|
public int gasha_id;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SkinGashaDrawResponse
|
||||||
|
{
|
||||||
|
public int exchange_tickets;
|
||||||
|
public List<DorFurniture> furniture;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SkinToGunRequest
|
||||||
|
{
|
||||||
|
public int gun_with_user_id;
|
||||||
|
public int item_id;
|
||||||
|
public int num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SkinToGunResponse
|
||||||
|
{
|
||||||
|
public List<AllFavorupGun> all_favorup_gun;
|
||||||
|
public List<AllFavorupSangvis> all_favorup_sangvis;
|
||||||
|
public long dorm_with_user_id;
|
||||||
|
public int furniture_id;
|
||||||
|
public int last_favor_recover_time;
|
||||||
|
public int skin_add_favor;
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class AdjustRequest
|
||||||
|
{
|
||||||
|
public long equip_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AdjustResponse
|
||||||
|
{
|
||||||
|
public int armor;
|
||||||
|
public int armor_piercing;
|
||||||
|
public int bullet_number_up;
|
||||||
|
public int critical_harm_rate;
|
||||||
|
public int critical_percent;
|
||||||
|
public int damage_amplify;
|
||||||
|
public int damage_reduction;
|
||||||
|
public int dodge;
|
||||||
|
public int hit;
|
||||||
|
public int night_view_percent;
|
||||||
|
public int pow;
|
||||||
|
public int rate;
|
||||||
|
public int shield;
|
||||||
|
public int speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EatEquipRequest
|
||||||
|
{
|
||||||
|
public int cost_item50_num;
|
||||||
|
public long equip_with_user_id;
|
||||||
|
public long[] food;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EatEquipResponse
|
||||||
|
{
|
||||||
|
public int cost_item50_num;
|
||||||
|
public int equip_add_exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UnequipRequest
|
||||||
|
{
|
||||||
|
public long[] equip_with_user_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipRetireRequest
|
||||||
|
{
|
||||||
|
public long[] equips;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class BikiniVoteResultResponse
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GetAdaptiveTeamResponse
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public int[] guns;
|
||||||
|
public int id;
|
||||||
|
public int[] pets;
|
||||||
|
public int start_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetEventResponse
|
||||||
|
{
|
||||||
|
public List<ExploreAffair> event_list;
|
||||||
|
public int is_prize;
|
||||||
|
public int next_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetExploreMailResponse
|
||||||
|
{
|
||||||
|
public GetResourceInMailQuickResponse @out;
|
||||||
|
public long[] get_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SetTeamRequest
|
||||||
|
{
|
||||||
|
public long[] guns;
|
||||||
|
public int is_auto;
|
||||||
|
public long[] pets;
|
||||||
|
public int time_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartExploreResponse
|
||||||
|
{
|
||||||
|
public int area_id;
|
||||||
|
public int cancel_time;
|
||||||
|
public int draw_event_prize;
|
||||||
|
public int end_time;
|
||||||
|
public string[] gun_ids;
|
||||||
|
public int item_id;
|
||||||
|
public int next_time;
|
||||||
|
public int[] pet_ids;
|
||||||
|
public int start_time;
|
||||||
|
public int target_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class FairySkillUpgradeRequest
|
||||||
|
{
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public bool if_quick;
|
||||||
|
public int to_level;
|
||||||
|
public int upgrade_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyRetireRequest
|
||||||
|
{
|
||||||
|
public long[] fairies;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Messages;
|
|
@ -0,0 +1,41 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class ReadStoryRequest
|
||||||
|
{
|
||||||
|
public int fetter_id;
|
||||||
|
public int fetter_story_id;
|
||||||
|
public int milestone;
|
||||||
|
public int org_bounty_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReadStoryResponse
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveAllOrgBountyRequest
|
||||||
|
{
|
||||||
|
public int department_id;
|
||||||
|
public int level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveAllOrgBountyResponse
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int bp_pay;
|
||||||
|
public string coins;
|
||||||
|
public int core;
|
||||||
|
public string equip_ids;
|
||||||
|
public string fairy_ids;
|
||||||
|
public string furniture;
|
||||||
|
public int gem;
|
||||||
|
public int[] get_org_bounty_ids;
|
||||||
|
public string gift;
|
||||||
|
public string gun_id;
|
||||||
|
public string item_ids;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public string sangvis;
|
||||||
|
public string skin;
|
||||||
|
public int user_exp;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class TeamGunsResponse
|
||||||
|
{
|
||||||
|
public int borrow_team_today;
|
||||||
|
public Dictionary<long, List<Fairy>> fairy_with_friend_info;
|
||||||
|
public Dictionary<long, string> friend_team_effect_arr;
|
||||||
|
public FriendGuns gun_with_friend;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Messages;
|
|
@ -0,0 +1,58 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GunCombineGunRequest
|
||||||
|
{
|
||||||
|
public long[] combine;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunEatGunRequest
|
||||||
|
{
|
||||||
|
public long[] food;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int item9_num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunEquipRequest
|
||||||
|
{
|
||||||
|
public int equip_slot;
|
||||||
|
public long equip_with_user_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int if_outfit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunFixFinishRequest
|
||||||
|
{
|
||||||
|
public int fix_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunFixGunsRequest
|
||||||
|
{
|
||||||
|
public Dictionary<long, int> fix_guns;
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
public class GunSkillUpgradeRequest
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int if_quick;
|
||||||
|
public int skill;
|
||||||
|
public int to_level;
|
||||||
|
public int upgrade_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunTeamGunRequest
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public Dictionary<long, int> guns;
|
||||||
|
public int location;
|
||||||
|
public int team_id;
|
||||||
|
public Dictionary<int, long> team_set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunEatGunResponse
|
||||||
|
{
|
||||||
|
public int dodge;
|
||||||
|
public int hit;
|
||||||
|
public int pow;
|
||||||
|
public int rate;
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class ChangeAdjutantRequest
|
||||||
|
{
|
||||||
|
public int fairy_id;
|
||||||
|
public int gun_id;
|
||||||
|
public int is_sexy;
|
||||||
|
public int mod;
|
||||||
|
public int skin_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class HomeRequest
|
||||||
|
{
|
||||||
|
public int ab_version;
|
||||||
|
public string data_version;
|
||||||
|
public int ignore_time;
|
||||||
|
public int start_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class HomeResponse
|
||||||
|
{
|
||||||
|
public List<AllFavorupGun> all_favorup_gun;
|
||||||
|
public List<AllFavorupSangvis> all_favorup_sangvis;
|
||||||
|
public Dictionary<int, int> battlepass_pt_item;
|
||||||
|
public int build_coin_flag;
|
||||||
|
public Dictionary<int, int> career_quest_grade;
|
||||||
|
public Daily daily;
|
||||||
|
public List<FetterBounty> fetter_bounty_with_user;
|
||||||
|
public int gem;
|
||||||
|
public List<IndexMail> index_getmaillist;
|
||||||
|
public int is_bind;
|
||||||
|
public int kick;
|
||||||
|
public int last_favor_recover_time;
|
||||||
|
public int last_ssoc_change_time;
|
||||||
|
public int recover_ammo;
|
||||||
|
public int recover_mp;
|
||||||
|
public int recover_mre;
|
||||||
|
public int recover_part;
|
||||||
|
public int recover_ssoc;
|
||||||
|
public List<SquadDataDaily> squad_data_daily;
|
||||||
|
public Weekly weekly;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class IndexRequest
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public class IndexResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> battlepass_pt_item;
|
||||||
|
public List<Battlepass> battlepass_with_user;
|
||||||
|
public ChessInfo chess_info;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Messages;
|
|
@ -0,0 +1,38 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GetResourceInMailQuickRequest
|
||||||
|
{
|
||||||
|
public bool furniture_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetResourceInMailQuickResponse
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public string coins;
|
||||||
|
public int core;
|
||||||
|
public List<Equip> equips;
|
||||||
|
public List<Fairy> fairys;
|
||||||
|
public int gem;
|
||||||
|
public List<Gun> guns;
|
||||||
|
public string item_ids;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public int user_exp;
|
||||||
|
public List<VehicleComponent> vehicle_component_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetResourceInMailRequest
|
||||||
|
{
|
||||||
|
public long mail_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetResourceInMailResponse
|
||||||
|
{
|
||||||
|
public List<CommanderUniform> commander_uniform;
|
||||||
|
public List<Equip> equips;
|
||||||
|
public List<Fairy> fairys;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public List<Gun> guns;
|
||||||
|
}
|
|
@ -0,0 +1,334 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class AbortMissionResponse
|
||||||
|
{
|
||||||
|
public MissionLoseResult mission_lose_result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyTeamAiRequest
|
||||||
|
{
|
||||||
|
public int ai_type;
|
||||||
|
public int ally_instance_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BattleFinishRequest
|
||||||
|
{
|
||||||
|
public int boss_hp;
|
||||||
|
public int current_time;
|
||||||
|
public List<GunLife> guns;
|
||||||
|
public bool if_enemy_die;
|
||||||
|
public long mvp;
|
||||||
|
public Dictionary<int, Dictionary<int, int[]>> sangvis_chip_skills;
|
||||||
|
public List<SangvisLife> sangvises;
|
||||||
|
public int spot_id;
|
||||||
|
public bool use_fairy_skill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BattleFinishResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, AllyInstanceBetray> ally_instance_betray;
|
||||||
|
public Dictionary<int, AllyInstanceTransform> ally_instance_transform;
|
||||||
|
public List<Equip> battle_get_equip;
|
||||||
|
public List<Gun> battle_get_gun;
|
||||||
|
public List<BattleGetPrize> battle_get_prize;
|
||||||
|
public int battle_rank;
|
||||||
|
public Dictionary<int, BuildingInfo> building_info;
|
||||||
|
public Dictionary<int, int> change_belong;
|
||||||
|
public int fairy_exp;
|
||||||
|
public Dictionary<long, int> favor_change;
|
||||||
|
public int free_exp;
|
||||||
|
public List<GunExp2> gun_exp;
|
||||||
|
public List<GunLife2> gun_life;
|
||||||
|
public Dictionary<int, int> mission_control;
|
||||||
|
public MissionLoseResult mission_lose_result;
|
||||||
|
public MissionWinResult mission_win_result;
|
||||||
|
public List<SangvisBattleExp> sangvis_battle_exp;
|
||||||
|
public List<SangvisLife2> sangvis_life;
|
||||||
|
public SangvisTeamResource sangvis_team_resource;
|
||||||
|
public int seed;
|
||||||
|
public List<SpotActInfo> spot_act_info;
|
||||||
|
public Dictionary<int, SpotTransInfo> spot_trans;
|
||||||
|
public List<SquadExp> squad_exp;
|
||||||
|
public int user_exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BuildingSkillPerformRequest
|
||||||
|
{
|
||||||
|
public int building_spot_id;
|
||||||
|
public int trigger_person_spot;
|
||||||
|
public int trigger_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CombinationInfoRequest
|
||||||
|
{
|
||||||
|
public int mission_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CombinationInfoResponse
|
||||||
|
{
|
||||||
|
public string mission_combination_info;
|
||||||
|
public int mission_id;
|
||||||
|
public int user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EventDrawRequest
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EventDrawResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, ItemLimit> item_limit_with_user;
|
||||||
|
public MissionEvent mission_event;
|
||||||
|
public int tomorrow_unix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillPerformRequest
|
||||||
|
{
|
||||||
|
public int fairy_spot;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int[] spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishAutomissionRequest
|
||||||
|
{
|
||||||
|
public int auto_mission_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishAutomissionResponse
|
||||||
|
{
|
||||||
|
public List<AddEquip> add_equip;
|
||||||
|
public List<AddFairyExp> add_fairy_exp;
|
||||||
|
public List<AddGun> add_gun;
|
||||||
|
public List<AddGunExp> add_gun_exp;
|
||||||
|
public int add_user_exp;
|
||||||
|
public Dictionary<long, int> favor_change;
|
||||||
|
public int free_exp;
|
||||||
|
public int success_number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FriendTeamAiRequest
|
||||||
|
{
|
||||||
|
public int ai_type;
|
||||||
|
public int friend_team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionResponse
|
||||||
|
{
|
||||||
|
public int all_friend_team_moved;
|
||||||
|
public List<AllyBattle> ally_battle;
|
||||||
|
public Dictionary<int, AllyInstanceBetray> ally_instance_betray;
|
||||||
|
public Dictionary<int, AllyInstanceInfo> ally_instance_info;
|
||||||
|
public Dictionary<int, AllyInstanceTransform> ally_instance_transform;
|
||||||
|
public List<AllyMove> ally_move;
|
||||||
|
public int ammo;
|
||||||
|
public int ap;
|
||||||
|
public List<Equip> battle_get_equip;
|
||||||
|
public List<Gun> battle_get_gun;
|
||||||
|
public List<BattleGetPrize> battle_get_prize;
|
||||||
|
public Dictionary<int, BuildingInfo> building_info;
|
||||||
|
public List<int> can_see_spots;
|
||||||
|
public Dictionary<int, int> change_belong;
|
||||||
|
public Dictionary<int, int> change_belong1;
|
||||||
|
public Dictionary<int, int> change_belong2;
|
||||||
|
public int coin1;
|
||||||
|
public int coin2;
|
||||||
|
public int coin3;
|
||||||
|
public DailyInfo daily_info;
|
||||||
|
public Dictionary<int, int> died_ally;
|
||||||
|
public Dictionary<int, int> died_ally_type;
|
||||||
|
public Dictionary<int, int> died_enemy;
|
||||||
|
public DiedThisSection died_this_section;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public Dictionary<int, EnemyInstanceInfo> enemy_instance_info;
|
||||||
|
public List<EnemyMove> enemy_move;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public Dictionary<long, Equip> equips;
|
||||||
|
public Dictionary<int, Dictionary<int, FairySkillOnAlly>> fairy_skill_on_ally;
|
||||||
|
public Dictionary<int, Dictionary<int, FairySkillOnEnemy>> fairy_skill_on_enemy;
|
||||||
|
public Dictionary<int, Dictionary<int, FairySkillOnSpot>> fairy_skill_on_spot;
|
||||||
|
public Dictionary<int, Dictionary<int, FairySkillOnTeam>> fairy_skill_on_team;
|
||||||
|
public List<FairySkillPerform> fairy_skill_perform;
|
||||||
|
public FairySkillReturn fairy_skill_return;
|
||||||
|
public int friend_team_end_time;
|
||||||
|
public Fairy friend_team_fairy;
|
||||||
|
public int friend_team_id;
|
||||||
|
public int from_spot_id;
|
||||||
|
public List<GrowEnemy> grow_enemy;
|
||||||
|
public Dictionary<long, int> gun_life_after_rec;
|
||||||
|
public Dictionary<long, Gun> guns;
|
||||||
|
public string item;
|
||||||
|
public Dictionary<int, LifeChange> life_change;
|
||||||
|
public int loseammo;
|
||||||
|
public int losemre;
|
||||||
|
public Dictionary<int, int> mission_control;
|
||||||
|
public MissionLoseResult mission_lose_result;
|
||||||
|
public MissionWinResult mission_win_result;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public Dictionary<int, NewSpotChange> new_spot_change;
|
||||||
|
public List<NightAlly> night_ally;
|
||||||
|
public List<NightEnemy> night_enemy;
|
||||||
|
public List<NightSpot> night_spots;
|
||||||
|
public int part;
|
||||||
|
public List<SpotActInfo> spot_act_info;
|
||||||
|
public List<SpotTeleportResult> spot_teleport_result;
|
||||||
|
public Dictionary<int, SpotTransInfo> spot_trans;
|
||||||
|
public Dictionary<int, SquadInstanceInfo> squad_info;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public Dictionary<int, AllyInstanceInfo> summon_ally;
|
||||||
|
public int to_spot_id;
|
||||||
|
public Dictionary<int, VehicleInfo> vehicle_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MyforceSkillPerformRequest
|
||||||
|
{
|
||||||
|
public int missino_buff_instnace_id;
|
||||||
|
public int person_spot;
|
||||||
|
public int source_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NoBattleAllyMeetRequest
|
||||||
|
{
|
||||||
|
public int[] appoint_spots;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class QuickFixRequest
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public long[] gun_with_user_ids;
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public long[] sangvis_with_user_ids;
|
||||||
|
public int spot_id;
|
||||||
|
public int team_id;
|
||||||
|
public int vehicle_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class QuickFixResponse
|
||||||
|
{
|
||||||
|
public int cost_item4;
|
||||||
|
public Dictionary<string, int> cost_rs;
|
||||||
|
public int fix_count;
|
||||||
|
public int type5_score;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReinforceFriendTeamRequest
|
||||||
|
{
|
||||||
|
public long[] friend_gunids;
|
||||||
|
public long[] friend_sangvisids;
|
||||||
|
public int friend_team_id;
|
||||||
|
public int group_id;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReinforceSangvisTeamRequest
|
||||||
|
{
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReinforceSquadRequest
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
public int squad_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReinforceTeamRequest
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReinforceVehicleRequest
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
public int vehicle_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisSkillPerformRequest
|
||||||
|
{
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int sangvis_spot;
|
||||||
|
public int[] spot_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SaveHostageRequest
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
public class SimulationRequest
|
||||||
|
{
|
||||||
|
public int count;
|
||||||
|
public int m_id;
|
||||||
|
public int m_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SimulationResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> item;
|
||||||
|
public int recover_bp_and_item603;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadMoveRequest
|
||||||
|
{
|
||||||
|
public int from_spot_id;
|
||||||
|
public int move_type;
|
||||||
|
public int squad_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartAutomissionRequest
|
||||||
|
{
|
||||||
|
public int auto_mission_id;
|
||||||
|
public int is_quick;
|
||||||
|
public int number;
|
||||||
|
public int[] team_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartMissionRequest
|
||||||
|
{
|
||||||
|
public long ally_id;
|
||||||
|
public int mission_id;
|
||||||
|
public List<SangvisSpot> sangvis_spots;
|
||||||
|
public List<Spot> spots;
|
||||||
|
public List<SquadSpot> squad_spots;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SupplyTeamRequest
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> item_cost;
|
||||||
|
public int mission_id;
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public int spot_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int target_id;
|
||||||
|
public int target_type;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SupplyTeamResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> cost_item;
|
||||||
|
public int max_ammo;
|
||||||
|
public int max_mre;
|
||||||
|
public int supply_count;
|
||||||
|
public int type5_score;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TeamMoveRequest
|
||||||
|
{
|
||||||
|
public int from_spot_id;
|
||||||
|
public int move_type;
|
||||||
|
public int person_id;
|
||||||
|
public int person_type;
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public int team_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WithdrawTeamRequest
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class AbortOperationRequest
|
||||||
|
{
|
||||||
|
public int operation_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishOperationRequest
|
||||||
|
{
|
||||||
|
public int operation_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishOperationResponse
|
||||||
|
{
|
||||||
|
public int big_success;
|
||||||
|
public string item_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartOperationRequest
|
||||||
|
{
|
||||||
|
public int exec_num;
|
||||||
|
public int max_level;
|
||||||
|
public int operation_id;
|
||||||
|
public int team_id;
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class EstablishBuildFinishRequest
|
||||||
|
{
|
||||||
|
public int establish_type;
|
||||||
|
public string payway;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EstablishBuildRequest
|
||||||
|
{
|
||||||
|
public int establish_type;
|
||||||
|
public bool is_quick;
|
||||||
|
public int num;
|
||||||
|
public string payway;
|
||||||
|
public int special_report;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EstablishBuildResponse
|
||||||
|
{
|
||||||
|
public int build_coin;
|
||||||
|
public int build_num;
|
||||||
|
public object[] build_tmp_data;
|
||||||
|
public int exp;
|
||||||
|
public int gift_item_id;
|
||||||
|
public int is_spreport;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EstablishBuildFinishResponse
|
||||||
|
{
|
||||||
|
public List<OuthouseFurniture> furniture;
|
||||||
|
public string gift;
|
||||||
|
public string item_ids;
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GetEventPrizeRequest
|
||||||
|
{
|
||||||
|
public int event_id;
|
||||||
|
public int prize_index;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetEventPrizeResponse
|
||||||
|
{
|
||||||
|
public GetResourceInMailQuickResponse package;
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class AccomplishAllQuestsResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> battlepass_pt_item;
|
||||||
|
public AccomplishQuestList daily;
|
||||||
|
public List<IndexMail> mail_list;
|
||||||
|
public AccomplishQuestList weekly;
|
||||||
|
public int weekly_accumulation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AccomplishDailyQuestRequest
|
||||||
|
{
|
||||||
|
public int daily_quest_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AccomplishDailyQuestResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> battlepass_pt_item;
|
||||||
|
public List<IndexMail> mail_list;
|
||||||
|
public int weekly_accumulation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AccomplishWeeklyQuestRequest
|
||||||
|
{
|
||||||
|
public int weekly_quest_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AccomplishWeeklyQuestResponse
|
||||||
|
{
|
||||||
|
public Dictionary<int, int> battlepass_pt_item;
|
||||||
|
public List<IndexMail> mail_list;
|
||||||
|
public int weekly_accumulation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DailyEventOptionRequest
|
||||||
|
{
|
||||||
|
public int option_id;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DailyIndexResponse
|
||||||
|
{
|
||||||
|
public List<DailyMapWithUserInfo> daily_map_with_user_info;
|
||||||
|
public Dictionary<int, int> daily_pt_item;
|
||||||
|
public DailyStatusWithUserInfo daily_status_with_user_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RefreshDailyQuestRequest
|
||||||
|
{
|
||||||
|
public int daily_quest_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RefreshDailyQuestResponse
|
||||||
|
{
|
||||||
|
public int[] daily_quest_list;
|
||||||
|
public int[] refresh_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RefreshWeeklyQuestRequest
|
||||||
|
{
|
||||||
|
public int weekly_quest_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RefreshWeeklyQuestResponse
|
||||||
|
{
|
||||||
|
public int locked_quest_list;
|
||||||
|
public int[] refresh_count;
|
||||||
|
public int[] weekly_quest_list;
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GetRankRequest
|
||||||
|
{
|
||||||
|
public int condition;
|
||||||
|
public int index;
|
||||||
|
public int length;
|
||||||
|
public int rank_id;
|
||||||
|
public string sub_type;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetRankResponse
|
||||||
|
{
|
||||||
|
public int count;
|
||||||
|
public int rank_count;
|
||||||
|
public List<RankUserInfo> rank_list;
|
||||||
|
public int refresh_time;
|
||||||
|
public RankUserInfo user_info;
|
||||||
|
}
|
|
@ -0,0 +1,135 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class SangvisAdvanceRequest
|
||||||
|
{
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisDuplicateBattleFinishRequest
|
||||||
|
{
|
||||||
|
public int challenge_type;
|
||||||
|
public decimal duration;
|
||||||
|
public int if_win;
|
||||||
|
public int sangvis_duplicate_info_id;
|
||||||
|
public Dictionary<int, int> team;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisDuplicateBattleFinishResponse
|
||||||
|
{
|
||||||
|
public int get_reward_id;
|
||||||
|
public int get_reward_num;
|
||||||
|
public int get_reward_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisDuplicateIndexResponse
|
||||||
|
{
|
||||||
|
public SangvisItemRecover item_recover;
|
||||||
|
public Dictionary<int, SangvisDuplicateInfo> sangvis_duplicate_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisFinishSkillRequest
|
||||||
|
{
|
||||||
|
public int if_quick;
|
||||||
|
public int upgrade_slot;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisFixFinishRequest
|
||||||
|
{
|
||||||
|
public int fix_slot;
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisFixRequest
|
||||||
|
{
|
||||||
|
public Dictionary<int, long> fix_sangvis_list;
|
||||||
|
public int if_quick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisGashaDrawRequest
|
||||||
|
{
|
||||||
|
public int draw_param;
|
||||||
|
public int draw_type;
|
||||||
|
public int gasha_id;
|
||||||
|
public int if_event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisGashaDrawResponse
|
||||||
|
{
|
||||||
|
public List<int> prize_info;
|
||||||
|
public SangvisGashaInfo sangvis_gasha_info;
|
||||||
|
public List<Sangvis> sangvis_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisGashaRefreshRequest
|
||||||
|
{
|
||||||
|
public int gasha_id;
|
||||||
|
public int refresh_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisGashaResponse
|
||||||
|
{
|
||||||
|
public List<ItemInfo> item_info;
|
||||||
|
public List<SangvisGashaInfo> sangvis_gasha_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisPresetToTeamRequest
|
||||||
|
{
|
||||||
|
public int team_id;
|
||||||
|
public Dictionary<int, SangvisTeamSet> team_set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisResolutionRequest
|
||||||
|
{
|
||||||
|
public long[] sangvis_list;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisRetireRequest
|
||||||
|
{
|
||||||
|
public long[] sangvises;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisSetPositionRequest
|
||||||
|
{
|
||||||
|
public int[] positions;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisSetSignRequest
|
||||||
|
{
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisSkillUpgradeRequest
|
||||||
|
{
|
||||||
|
public int if_quick;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int skill;
|
||||||
|
public int to_level;
|
||||||
|
public int upgrade_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTeamSangvisRequest
|
||||||
|
{
|
||||||
|
public int team_id;
|
||||||
|
public Dictionary<int, SangvisTeamSet> team_set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTransRequest
|
||||||
|
{
|
||||||
|
public bool if_trans_special;
|
||||||
|
public long sangvis_with_user_id_from;
|
||||||
|
public long sangvis_with_user_id_to;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisEquipChipRequest
|
||||||
|
{
|
||||||
|
public int chip_id;
|
||||||
|
public int chip_slot;
|
||||||
|
public int if_outfit;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class GameSettingRequest
|
||||||
|
{
|
||||||
|
public Settings settings;
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class AddSquadProgressRequest
|
||||||
|
{
|
||||||
|
public int data_num;
|
||||||
|
public int piece_num;
|
||||||
|
public int squad_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishExpTrainRequest
|
||||||
|
{
|
||||||
|
public int if_quick;
|
||||||
|
public int train_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishSkillTrainRequest
|
||||||
|
{
|
||||||
|
public int skill_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadAbortExpTrainRequest
|
||||||
|
{
|
||||||
|
public int train_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadAbortExpTrainResponse
|
||||||
|
{
|
||||||
|
public int item_46;
|
||||||
|
public int item_506;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadUpSkillRequest
|
||||||
|
{
|
||||||
|
public bool if_quick;
|
||||||
|
public int skill;
|
||||||
|
public int skill_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public int to_level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadUpSkillResponse
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public int skill;
|
||||||
|
public int squad_skill_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartExpTrainRequest
|
||||||
|
{
|
||||||
|
public int if_quick;
|
||||||
|
public int num;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public int train_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StartExpTrainResponse
|
||||||
|
{
|
||||||
|
public int add_exp;
|
||||||
|
public string cost_item_info;
|
||||||
|
public int end_time;
|
||||||
|
public int num;
|
||||||
|
public int squad_train_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddSquadProgressResponse
|
||||||
|
{
|
||||||
|
public int current_progress;
|
||||||
|
public SquadInfo squad_info;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class TheaterDataRequest
|
||||||
|
{
|
||||||
|
public int theater_event_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterDataResponse
|
||||||
|
{
|
||||||
|
public List<TheaterAreaType2Log> theater_area_type2_log;
|
||||||
|
public List<TheaterConstructionInfo> theater_construction_info;
|
||||||
|
public TheaterEventLog theater_event_log;
|
||||||
|
public List<TheaterIncidentInfo> theater_incident_info;
|
||||||
|
public List<TheaterInfo> theater_info;
|
||||||
|
public int theater_progress_lowest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterVoteRequest
|
||||||
|
{
|
||||||
|
public int incident_id;
|
||||||
|
public int num;
|
||||||
|
public int selection_id;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Messages;
|
|
@ -0,0 +1,8 @@
|
||||||
|
using Elisa.Models;
|
||||||
|
|
||||||
|
namespace Elisa.Messages;
|
||||||
|
|
||||||
|
public class VehicleUnlockResponse
|
||||||
|
{
|
||||||
|
public Vehicle vehicle_info;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Models;
|
|
@ -0,0 +1,14 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class ChessInfo
|
||||||
|
{
|
||||||
|
public string acquired_bonus;
|
||||||
|
public int chess_score;
|
||||||
|
public int max_chess_score;
|
||||||
|
public int season_id;
|
||||||
|
public int ticket_cost;
|
||||||
|
public int ticket_daily_num;
|
||||||
|
public int ticket_daily_refresh_time;
|
||||||
|
public int tutorial;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class Chip
|
||||||
|
{
|
||||||
|
public int assist_damage;
|
||||||
|
public int assist_def_break;
|
||||||
|
public int assist_hit;
|
||||||
|
public int assist_reload;
|
||||||
|
public int atk_speed;
|
||||||
|
public int chip_exp;
|
||||||
|
public int chip_id;
|
||||||
|
public int chip_level;
|
||||||
|
public int color_id;
|
||||||
|
public int damage;
|
||||||
|
public int def;
|
||||||
|
public int grid_id;
|
||||||
|
public int hit;
|
||||||
|
public long id;
|
||||||
|
public int is_locked;
|
||||||
|
public string position;
|
||||||
|
public string shape_info;
|
||||||
|
public int squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,140 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class DataAnalysisAct
|
||||||
|
{
|
||||||
|
public int assist_damage;
|
||||||
|
public int assist_def_break;
|
||||||
|
public int assist_hit;
|
||||||
|
public int assist_reload;
|
||||||
|
public int atk_speed;
|
||||||
|
public int build_slot;
|
||||||
|
public int chip_id;
|
||||||
|
public int color_id;
|
||||||
|
public int damage;
|
||||||
|
public int def;
|
||||||
|
public int end_time;
|
||||||
|
public int grid_id;
|
||||||
|
public int hit;
|
||||||
|
public long id;
|
||||||
|
public int input_level;
|
||||||
|
public int piece;
|
||||||
|
public int piece_item_id;
|
||||||
|
public string shape_info;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DataAnalysisData
|
||||||
|
{
|
||||||
|
public int change;
|
||||||
|
public Chip chip;
|
||||||
|
public int id;
|
||||||
|
public int piece;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DevelopAct
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int core;
|
||||||
|
public int equip_id;
|
||||||
|
public int gun_id;
|
||||||
|
public long id;
|
||||||
|
public int input_level;
|
||||||
|
public int item1_num;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public int start_time;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DevelopEquipAct
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int core;
|
||||||
|
public int equip_id;
|
||||||
|
public int fairy_id;
|
||||||
|
public int input_level;
|
||||||
|
public int item_num;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public int passive_skill;
|
||||||
|
public int quality_lv;
|
||||||
|
public int start_time;
|
||||||
|
public int type;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DevelopFairyAct
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int core;
|
||||||
|
public int fairy_id;
|
||||||
|
public int input_level;
|
||||||
|
public int item_num;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public int passive_skill;
|
||||||
|
public int quality_lv;
|
||||||
|
public int start_time;
|
||||||
|
public int type;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyDevdata
|
||||||
|
{
|
||||||
|
public FairyDevDataInfo info;
|
||||||
|
public int slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyDevDataInfo
|
||||||
|
{
|
||||||
|
public int fairy_id;
|
||||||
|
public int passive_skill;
|
||||||
|
public int quality_lv;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunDevelopResult
|
||||||
|
{
|
||||||
|
public int gun_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int slot;
|
||||||
|
public int wish_gun;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunIds
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunWish
|
||||||
|
{
|
||||||
|
public int wish_gun;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UpgradeAct
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int skill;
|
||||||
|
public int upgrade_slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UpgradeActInfo
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int skill;
|
||||||
|
public int upgrade_slot;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class DorFurniture
|
||||||
|
{
|
||||||
|
public long dorm_with_user_id;
|
||||||
|
public int id;
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class Equip
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public long equip_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
public int group_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int equip_id;
|
||||||
|
public int equip_level;
|
||||||
|
public int equip_exp;
|
||||||
|
public int adjust_count;
|
||||||
|
public string last_adjust;
|
||||||
|
public int is_locked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipAdd
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
public int equip_id;
|
||||||
|
public Equip equip_with_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipIds
|
||||||
|
{
|
||||||
|
public EquipInfo info;
|
||||||
|
public int slot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EquipInfo
|
||||||
|
{
|
||||||
|
public int type;
|
||||||
|
public int equip_id;
|
||||||
|
public int fairy_id;
|
||||||
|
public int passive_skill;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class EventInfo
|
||||||
|
{
|
||||||
|
public string code;
|
||||||
|
public string condition;
|
||||||
|
public int end_time;
|
||||||
|
public int id;
|
||||||
|
public int start_time;
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
using Elisa.Messages;
|
||||||
|
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class ExploreAct
|
||||||
|
{
|
||||||
|
public int area_id;
|
||||||
|
public int cancel_time;
|
||||||
|
public int end_time;
|
||||||
|
public string[] gun_ids;
|
||||||
|
public int item_id;
|
||||||
|
public int[] pet_ids;
|
||||||
|
public int start_time;
|
||||||
|
public int target_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ExploreInfo
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int end_time;
|
||||||
|
public GetResourceInMailQuickResponse ex_prize;
|
||||||
|
public int explore_time_type;
|
||||||
|
public int is_auto;
|
||||||
|
public int[] items_taken;
|
||||||
|
public List<ExploreAct> list;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int next_explore_time;
|
||||||
|
public int next_time;
|
||||||
|
public int part;
|
||||||
|
public long[] pets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ExploreAffair
|
||||||
|
{
|
||||||
|
public int affair_id;
|
||||||
|
public int affair_time;
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class Fairy
|
||||||
|
{
|
||||||
|
public int equip_id;
|
||||||
|
public int fairy_exp;
|
||||||
|
public int fairy_id;
|
||||||
|
public int fairy_lv;
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public int group_id;
|
||||||
|
public long id;
|
||||||
|
public int mod;
|
||||||
|
public int passive_skill;
|
||||||
|
public int quality_exp;
|
||||||
|
public int quality_lv;
|
||||||
|
public int skill_lv;
|
||||||
|
public int skin;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyAdd
|
||||||
|
{
|
||||||
|
public int build_slot;
|
||||||
|
public int fairy_id;
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyCollectInfo
|
||||||
|
{
|
||||||
|
public int fairy_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyInTheaterInfo
|
||||||
|
{
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
public int team_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkin
|
||||||
|
{
|
||||||
|
public int skin_id;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class AllFavorupGun
|
||||||
|
{
|
||||||
|
public int favor_afteradd;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllFavorupSangvis
|
||||||
|
{
|
||||||
|
public int favor_afteradd;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Gift
|
||||||
|
{
|
||||||
|
public int item_id;
|
||||||
|
public int number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class KalinaFavor
|
||||||
|
{
|
||||||
|
public int click_num;
|
||||||
|
public int click_time;
|
||||||
|
public int favor;
|
||||||
|
public int last_favor;
|
||||||
|
public int level;
|
||||||
|
public int send_mail_time;
|
||||||
|
public int skin;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class FetterBounty
|
||||||
|
{
|
||||||
|
public int fetter_bounty_id;
|
||||||
|
public int id;
|
||||||
|
public int is_received;
|
||||||
|
public int user_id;
|
||||||
|
public int value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OrgBounty
|
||||||
|
{
|
||||||
|
public int get_time;
|
||||||
|
public int id;
|
||||||
|
public int org_bounty_id;
|
||||||
|
public int user_id;
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class FriendAct
|
||||||
|
{
|
||||||
|
public List<Equip> friend_equips;
|
||||||
|
public List<Gun> friend_guns;
|
||||||
|
public Dictionary<string, FriendUnitLife> friend_sangvises_life;
|
||||||
|
public List<FriendTeamAi> friend_team_ai;
|
||||||
|
public List<Fairy> friend_team_fairy;
|
||||||
|
public Dictionary<long, Dictionary<long, Sangvis>> friend_team_sangvises;
|
||||||
|
public Dictionary<long, FriendTeamSangvisTeams> friend_team_sangvisteams;
|
||||||
|
public long[] friend_teams;
|
||||||
|
public Dictionary<string, FriendUnitLife> guns_life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FriendGuns
|
||||||
|
{
|
||||||
|
public List<Gun> guns_with_friend_available;
|
||||||
|
public List<Sangvis> sangvis_with_friend_available;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FriendTeamAi
|
||||||
|
{
|
||||||
|
public int ai;
|
||||||
|
public long friend_team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FriendTeamSangvisTeams
|
||||||
|
{
|
||||||
|
public int group_id;
|
||||||
|
public Dictionary<int, SangvisTeamSet> sangvis;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FriendUnitLife
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int life;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShareWithUser
|
||||||
|
{
|
||||||
|
public int last_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserFriend
|
||||||
|
{
|
||||||
|
public int borrow_team_today;
|
||||||
|
public long f_userid;
|
||||||
|
public int headpic_id;
|
||||||
|
public int homebg_id;
|
||||||
|
public string intro;
|
||||||
|
public int lv;
|
||||||
|
public string name;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class Guide
|
||||||
|
{
|
||||||
|
public int[] course;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GuideInfo
|
||||||
|
{
|
||||||
|
public Guide guide;
|
||||||
|
public long id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class FixAct
|
||||||
|
{
|
||||||
|
public int fix_slot;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public long id;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int start_time;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class Gun
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int build_slot;
|
||||||
|
public int can_click;
|
||||||
|
public int dodge;
|
||||||
|
public long equip1;
|
||||||
|
public long equip2;
|
||||||
|
public long equip3;
|
||||||
|
public long equip4;
|
||||||
|
public int favor;
|
||||||
|
public int favor_toplimit;
|
||||||
|
public int fix_end_time;
|
||||||
|
public int group_id;
|
||||||
|
public int gun_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int hit;
|
||||||
|
public long id;
|
||||||
|
public int is_locked;
|
||||||
|
public int life;
|
||||||
|
public int mre;
|
||||||
|
public int pow;
|
||||||
|
public int rate;
|
||||||
|
public int skill1;
|
||||||
|
public int skill2;
|
||||||
|
public int skin;
|
||||||
|
public int soul_bond;
|
||||||
|
public int soul_bond_time;
|
||||||
|
public int special_effect;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
namespace Elisa.Models;
|
|
@ -0,0 +1,53 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class Index
|
||||||
|
{
|
||||||
|
public List<AutoMissionAct> auto_mission_act_info;
|
||||||
|
public Dictionary<long, Chip> chip_with_user_info;
|
||||||
|
public List<DataAnalysisAct> data_analysis_act_info;
|
||||||
|
public List<DevelopAct> develop_act_info;
|
||||||
|
public Dictionary<int, DevelopEquipAct> develop_equip_act_info;
|
||||||
|
public Dictionary<int, DevelopFairyAct> develop_fairy_act_info;
|
||||||
|
public int dorm_rest_friend_build_coin_count;
|
||||||
|
public Dictionary<long, Equip> equip_with_user_info;
|
||||||
|
public Dictionary<int, EventInfo> event_info;
|
||||||
|
public ExploreInfo explore_info;
|
||||||
|
public List<FairyCollectInfo> fairy_collect_info;
|
||||||
|
public List<FairyInTheaterInfo> fairy_in_theater_info;
|
||||||
|
public List<FairySkin> fairy_skin_with_user_info;
|
||||||
|
public Dictionary<long, Fairy> fairy_with_user_info;
|
||||||
|
public List<FixAct> fix_act_info;
|
||||||
|
public FriendAct friend_act_info;
|
||||||
|
public GameConfigInfo game_config_info;
|
||||||
|
public List<Gift> gift_with_user_info;
|
||||||
|
public List<GunInTheaterInfo> gun_in_theater_info;
|
||||||
|
public List<Gun> gun_with_user_info;
|
||||||
|
public List<Item> item_with_user_info;
|
||||||
|
public KalinaFavor kalina_with_user_info;
|
||||||
|
public MissionAct mission_act_info;
|
||||||
|
public MissionEvent mission_event_info;
|
||||||
|
public List<MissionWithUser> mission_with_user_info;
|
||||||
|
public List<OperationAct> operation_act_info;
|
||||||
|
public List<OrgBounty> org_bounty_with_user;
|
||||||
|
public List<OuthouseEstablish> outhouse_establish_info;
|
||||||
|
public List<SangvisChip> sangvis_chip_with_user_info;
|
||||||
|
public List<SangvisTeam> sangvis_team_with_user_info;
|
||||||
|
public List<Sangvis> sangvis_with_user_info;
|
||||||
|
public ShareWithUser share_with_user_info;
|
||||||
|
public Dictionary<int, Skin> skin_with_user_info;
|
||||||
|
public List<SpotActInfo> spot_act_info;
|
||||||
|
public List<SquadDataDaily> squad_data_daily;
|
||||||
|
public List<SquadInTheaterInfo> squad_in_theater_info;
|
||||||
|
public Dictionary<int, SquadSkillActInfo> squad_skill_act_info;
|
||||||
|
public Dictionary<int, SquadTrainActInfo> squad_train_act_info;
|
||||||
|
public Dictionary<long, Squad> squad_with_user_info;
|
||||||
|
public TheaterExerciseInfo theater_exercise_info;
|
||||||
|
public Dictionary<int, TheaterWithUser> theater_with_user_info;
|
||||||
|
public List<UpgradeActInfo> upgrade_act_info;
|
||||||
|
public UserFriend user_friend_info;
|
||||||
|
public UserGameSetting user_game_setting;
|
||||||
|
public UserInfo user_info;
|
||||||
|
public UserRecord user_record;
|
||||||
|
public Dictionary<long, VehicleComponent> vehicle_component_with_user_info;
|
||||||
|
public Dictionary<int, Vehicle> vehicle_with_user_info;
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class CommanderUniform
|
||||||
|
{
|
||||||
|
public int[] color_get;
|
||||||
|
public int commander_uniform_id;
|
||||||
|
public int create_time;
|
||||||
|
public int get_color_num;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Item
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int item_id;
|
||||||
|
public int last_recover_time;
|
||||||
|
public int number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ItemInfo
|
||||||
|
{
|
||||||
|
public int item_id;
|
||||||
|
public int item_num;
|
||||||
|
public int last_recover_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ItemLimit
|
||||||
|
{
|
||||||
|
public int daily_clear_time;
|
||||||
|
public int daily_get;
|
||||||
|
public int end_time;
|
||||||
|
public int event_get;
|
||||||
|
public int item_id;
|
||||||
|
public int user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Resource
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Skin
|
||||||
|
{
|
||||||
|
public int is_read;
|
||||||
|
public int skin_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class IndexMail
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int bp_pay;
|
||||||
|
public string chip;
|
||||||
|
public string code;
|
||||||
|
public string coins;
|
||||||
|
public string commander_uniform;
|
||||||
|
public string content;
|
||||||
|
public int core;
|
||||||
|
public int end_time;
|
||||||
|
public string equip_ids;
|
||||||
|
public string fairy_ids;
|
||||||
|
public string furniture;
|
||||||
|
public int gem;
|
||||||
|
public string gift;
|
||||||
|
public int gun_id;
|
||||||
|
public long id;
|
||||||
|
public int if_read;
|
||||||
|
public string item_ids;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public string sangvis;
|
||||||
|
public int skin;
|
||||||
|
public int start_time;
|
||||||
|
public int sub_id;
|
||||||
|
public string title;
|
||||||
|
public int type;
|
||||||
|
public int user_exp;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,647 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class Airbone
|
||||||
|
{
|
||||||
|
public int from_spot_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AirborneParent
|
||||||
|
{
|
||||||
|
public Airbone airbone;
|
||||||
|
public List<SpotTeleportResult> spot_teleport_result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyBattle
|
||||||
|
{
|
||||||
|
public List<AllyInstanceInfo> ally_before_battle;
|
||||||
|
public int ally_boss_hp;
|
||||||
|
public decimal ally_enemy_hp_percent;
|
||||||
|
public int boss_hp;
|
||||||
|
public decimal enemy_hp_percent;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public int spot_id;
|
||||||
|
public int survive_force;
|
||||||
|
public int win_ally_instance_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyInstanceBetray
|
||||||
|
{
|
||||||
|
public int ai;
|
||||||
|
public int ai_para;
|
||||||
|
public int ally_boss_hp;
|
||||||
|
public int ally_enemy;
|
||||||
|
public double ally_enemy_hp_percent;
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int ally_type;
|
||||||
|
public int condition_type;
|
||||||
|
public int old_ally_type;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyInstanceInfo
|
||||||
|
{
|
||||||
|
public int ai;
|
||||||
|
public string ai_para;
|
||||||
|
public int ally_boss_hp;
|
||||||
|
public int ally_enemy;
|
||||||
|
public decimal ally_enemy_hp_percent;
|
||||||
|
public Dictionary<int, Gun> ally_guns;
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int ally_team_id;
|
||||||
|
public int ally_type;
|
||||||
|
public int battleskill_switch;
|
||||||
|
public string betray_condition;
|
||||||
|
public int duration_end_turn;
|
||||||
|
public int move_turn;
|
||||||
|
public int no_battle_damage;
|
||||||
|
public MissionResource supply_resource;
|
||||||
|
public int target_type;
|
||||||
|
public Dictionary<int, TeamGunsLife> team_guns_life;
|
||||||
|
public MissionResource team_resource;
|
||||||
|
public Dictionary<int, TeamSangvisLife> team_sangvis_life;
|
||||||
|
public string transform_condition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyInstanceTransform
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int condition_type;
|
||||||
|
public string hostage_info;
|
||||||
|
public int spot_id;
|
||||||
|
public int transform_result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyMove
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int from_spot_id;
|
||||||
|
public int to_hostage_hp;
|
||||||
|
public int to_hostage_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AllyteamSummoner
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public AllyInstanceInfo ally_instance_info;
|
||||||
|
public int spot_id;
|
||||||
|
public List<SpotTeleportResult> spot_teleport_result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AutoMissionAct
|
||||||
|
{
|
||||||
|
public int auto_mission_id;
|
||||||
|
public int end_time;
|
||||||
|
public long id;
|
||||||
|
public int number;
|
||||||
|
public string team_ids;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BattleGetPrize
|
||||||
|
{
|
||||||
|
public long[] equips;
|
||||||
|
public long[] fairys;
|
||||||
|
public long[] furniture;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int prize_id;
|
||||||
|
public RealPrizeInfo real_prize_info;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BuildingInfo
|
||||||
|
{
|
||||||
|
public int belong;
|
||||||
|
public int building_id;
|
||||||
|
public int defender;
|
||||||
|
public int spot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DiedThisSection
|
||||||
|
{
|
||||||
|
public List<int> ally;
|
||||||
|
public List<int> enemy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EnemyInstanceInfo
|
||||||
|
{
|
||||||
|
public int boss_hp;
|
||||||
|
public int enemy_ai;
|
||||||
|
public string enemy_ai_para;
|
||||||
|
public int enemy_birth_turn;
|
||||||
|
public decimal enemy_hp_percent;
|
||||||
|
public int enemy_team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EnemyMove
|
||||||
|
{
|
||||||
|
public int enemy_ai;
|
||||||
|
public string enemy_ai_para;
|
||||||
|
public int from_spot_id;
|
||||||
|
public int hostage_hp;
|
||||||
|
public int hostage_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairyEffect
|
||||||
|
{
|
||||||
|
public int aim_spot;
|
||||||
|
public int aim_stc_id;
|
||||||
|
public int aim_type;
|
||||||
|
public int origin_key;
|
||||||
|
public int origin_spot;
|
||||||
|
public int origin_stc_id;
|
||||||
|
public int origin_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillOnAlly
|
||||||
|
{
|
||||||
|
public int ally;
|
||||||
|
public int battle_count;
|
||||||
|
public int buff_id;
|
||||||
|
public int building_spot_id;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int start_turn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillOnEnemy
|
||||||
|
{
|
||||||
|
public int battle_count;
|
||||||
|
public int battle_finish_count;
|
||||||
|
public int buff_id;
|
||||||
|
public int building_spot_id;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int person_move_count;
|
||||||
|
public int person_shift_count;
|
||||||
|
public int source_type;
|
||||||
|
public int source_value;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int start_turn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillOnSpot
|
||||||
|
{
|
||||||
|
public int battle_count;
|
||||||
|
public int building_spot_id;
|
||||||
|
public int conflict_type;
|
||||||
|
public int[] detect_spots;
|
||||||
|
public int[] effect_spots;
|
||||||
|
public int engine_spot_id;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int move_count;
|
||||||
|
public int priority;
|
||||||
|
public int source_type;
|
||||||
|
public int source_value;
|
||||||
|
public int special_spot_config_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int start_turn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillOnTeam
|
||||||
|
{
|
||||||
|
public int battle_count;
|
||||||
|
public int battle_finish_count;
|
||||||
|
public int buff_id;
|
||||||
|
public int building_spot_id;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int person_move_count;
|
||||||
|
public int person_shift_count;
|
||||||
|
public int source_type;
|
||||||
|
public int source_value;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int start_turn;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillPerform
|
||||||
|
{
|
||||||
|
public int building_spot_id;
|
||||||
|
public int fairy_team_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int next_skill_cd_turn;
|
||||||
|
public int perform_spot_id;
|
||||||
|
public int source_type;
|
||||||
|
public int source_value;
|
||||||
|
public int squad_instance_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FairySkillReturn
|
||||||
|
{
|
||||||
|
public List<AirborneParent> airborne_2;
|
||||||
|
public List<AllyteamSummoner> allyteam_summoner;
|
||||||
|
public Dictionary<int, FairyEffect> fairy_effect;
|
||||||
|
public List<MissionHurt> mission_hurt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FightEnvironmentSkillInfo
|
||||||
|
{
|
||||||
|
public int duration;
|
||||||
|
public long fight_environment_skill_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GrowEnemy
|
||||||
|
{
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunExp
|
||||||
|
{
|
||||||
|
public int exp;
|
||||||
|
public long id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunExp2
|
||||||
|
{
|
||||||
|
public int exp;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunLife
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunLife2
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunsLife
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class LifeChange
|
||||||
|
{
|
||||||
|
public double enemy_hp_percent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionAct
|
||||||
|
{
|
||||||
|
public string accomplish_win_steps;
|
||||||
|
public string ally_instance_info;
|
||||||
|
public string allydie_this_turn;
|
||||||
|
public int ap;
|
||||||
|
public int battle_count;
|
||||||
|
public string building_info;
|
||||||
|
public int defend_line_start_turn;
|
||||||
|
public string died_ally;
|
||||||
|
public string died_ally_type;
|
||||||
|
public string died_enemy;
|
||||||
|
public string died_enemy_b;
|
||||||
|
public string died_this_section;
|
||||||
|
public int end_ally_instance_id;
|
||||||
|
public int end_enemy_instance_id;
|
||||||
|
public int end_mission_skill_perform_id;
|
||||||
|
public int end_skill_id;
|
||||||
|
public int end_squad_instance_id;
|
||||||
|
public string enemy_instance_info;
|
||||||
|
public int enemydie_num;
|
||||||
|
public int enemydie_num_killbyfriend;
|
||||||
|
public int enemydie_num_killbyhostage;
|
||||||
|
public string enemydie_this_turn;
|
||||||
|
public string enemydie_tigger_team_colour;
|
||||||
|
public string enter_assisttype_squads;
|
||||||
|
public string fairy_skill_on_ally;
|
||||||
|
public string fairy_skill_on_enemy;
|
||||||
|
public string fairy_skill_on_friend_sangvis;
|
||||||
|
public string fairy_skill_on_friend_team;
|
||||||
|
public string fairy_skill_on_sangvis;
|
||||||
|
public string fairy_skill_on_spot;
|
||||||
|
public string fairy_skill_on_squad;
|
||||||
|
public string fairy_skill_on_team;
|
||||||
|
public string fairy_skill_perform;
|
||||||
|
public string fight_environment_count;
|
||||||
|
public string fight_environment_group;
|
||||||
|
public int force1_battle_count;
|
||||||
|
public string friend_sangvises_life;
|
||||||
|
public string friend_team_fairy;
|
||||||
|
public string friend_team_sangvis_chips;
|
||||||
|
public string friend_team_sangvises;
|
||||||
|
public string friend_team_sangvisteams;
|
||||||
|
public string get_guns;
|
||||||
|
public int growenemy_with_enemydie;
|
||||||
|
public int growotherside_with_enemydie;
|
||||||
|
public string gun_average_level;
|
||||||
|
public int gundie_num;
|
||||||
|
public string gunid_gunlv;
|
||||||
|
public string hidden_spots;
|
||||||
|
public string join_editable_allys;
|
||||||
|
public string join_sangvis_teams;
|
||||||
|
public string join_teams;
|
||||||
|
public int last_battle_finish_time;
|
||||||
|
public string last_battle_info;
|
||||||
|
public string mica_log;
|
||||||
|
public string mission_control;
|
||||||
|
public string mission_control_trigger_spot_id;
|
||||||
|
public int mission_id;
|
||||||
|
public string mission_trigger_count;
|
||||||
|
public string mission_win_step_control_ids;
|
||||||
|
public int mysquad_die_num;
|
||||||
|
public int pass_missionevent;
|
||||||
|
public int reinforce_friend_team_num;
|
||||||
|
public string reinforce_sangvis_teams;
|
||||||
|
public string reinforce_squads;
|
||||||
|
public string reinforce_targets;
|
||||||
|
public string reinforce_teams;
|
||||||
|
public string reinforce_uneditable_allys;
|
||||||
|
public string sangvis_teams_info;
|
||||||
|
public int sangvisdie_num;
|
||||||
|
public int save_hostage;
|
||||||
|
public string special_skill_102_enemy;
|
||||||
|
public string special_skill_203_info;
|
||||||
|
public string spot;
|
||||||
|
public int spot_belong_remain_reset_count;
|
||||||
|
public string spot_trans_info;
|
||||||
|
public string spots_change;
|
||||||
|
public string squad_info;
|
||||||
|
public string target_moved_step;
|
||||||
|
public string team_effect;
|
||||||
|
public int turn;
|
||||||
|
public int turn_belong;
|
||||||
|
public int type5_score;
|
||||||
|
public long user_id;
|
||||||
|
public string vehicle_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionEvent
|
||||||
|
{
|
||||||
|
public int after_days;
|
||||||
|
public string draw_event_id;
|
||||||
|
public int end_time;
|
||||||
|
public int id;
|
||||||
|
public Dictionary<int, ItemLimit> item_limit_with_user;
|
||||||
|
public int mission_campaign;
|
||||||
|
public int start_time;
|
||||||
|
public int tomorrow_unix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionHurt
|
||||||
|
{
|
||||||
|
public double ally_enemy_hp_percent;
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int building_defender;
|
||||||
|
public int building_spot_id;
|
||||||
|
public double enemy_hp_percent;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public List<GunsLife> guns_life;
|
||||||
|
public int hostage_hp;
|
||||||
|
public int hostage_id;
|
||||||
|
public int hurt_id;
|
||||||
|
public int mission_skill_config_id;
|
||||||
|
public int spot_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int squad_life;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionInfo
|
||||||
|
{
|
||||||
|
public int enemydie_num;
|
||||||
|
public int enemydie_num_killbyfriend;
|
||||||
|
public int gundie_num;
|
||||||
|
public int turn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionLoseResult
|
||||||
|
{
|
||||||
|
public int enemydie_num;
|
||||||
|
public int enemydie_num_killbyfriend;
|
||||||
|
public int gundie_num;
|
||||||
|
public int mysquad_die_num;
|
||||||
|
public int sangvisdie_num;
|
||||||
|
public int turn;
|
||||||
|
public int type5_score;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionResource
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int mre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionWinResult
|
||||||
|
{
|
||||||
|
public List<GunExp> after_duplicate1_gun_exp;
|
||||||
|
public int free_exp;
|
||||||
|
public int gift_item200001_add;
|
||||||
|
public int medal4;
|
||||||
|
public MissionInfo mission_info;
|
||||||
|
public Dictionary<int, string> open;
|
||||||
|
public int rank;
|
||||||
|
public int recover_bp_and_item603;
|
||||||
|
public List<VehicleComponent> reward_component;
|
||||||
|
public List<Equip> reward_equip;
|
||||||
|
public List<Gun> reward_gun;
|
||||||
|
public List<Prize> reward_prize;
|
||||||
|
public int user_exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MissionWithUser
|
||||||
|
{
|
||||||
|
public int bestrank;
|
||||||
|
public int counter;
|
||||||
|
public int cycle_win_count;
|
||||||
|
public string drop_item_count;
|
||||||
|
public long id;
|
||||||
|
public int is_close;
|
||||||
|
public int is_drop_draw_event;
|
||||||
|
public int is_open;
|
||||||
|
public int mapped_win_counter;
|
||||||
|
public int medal1;
|
||||||
|
public int medal2;
|
||||||
|
public int medal4;
|
||||||
|
public int mission_id;
|
||||||
|
public double shortest_in_coinmission;
|
||||||
|
public int type5_score;
|
||||||
|
public long user_id;
|
||||||
|
public int win_counter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NewSpotChange
|
||||||
|
{
|
||||||
|
public int can_use_count;
|
||||||
|
public int end_turn;
|
||||||
|
public int spot_id;
|
||||||
|
public int start_turn;
|
||||||
|
public int type;
|
||||||
|
public int use_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NightAlly
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int ally_team_id;
|
||||||
|
public int from_spot_id;
|
||||||
|
public int hostage_hp;
|
||||||
|
public int hostage_id;
|
||||||
|
public int to_hostage_hp;
|
||||||
|
public int to_hostage_id;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NightEnemy
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int[] ally_instance_ids;
|
||||||
|
public int boss_hp;
|
||||||
|
public int enemy_ai;
|
||||||
|
public string enemy_ai_para;
|
||||||
|
public int enemy_birth_turn;
|
||||||
|
public double enemy_hp_percent;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public int from_spot_id;
|
||||||
|
public int hostage_hp;
|
||||||
|
public int hostage_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
public int[] squad_instance_ids;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NightSpot
|
||||||
|
{
|
||||||
|
public int belong;
|
||||||
|
public int seed;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisBattleExp
|
||||||
|
{
|
||||||
|
public int exp;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisLife
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisLife2
|
||||||
|
{
|
||||||
|
public int life;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisSpot
|
||||||
|
{
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public int spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTeamResource
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int mre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTeamsInfo
|
||||||
|
{
|
||||||
|
public int ally_instance_id;
|
||||||
|
public int battleskill_switch;
|
||||||
|
public int sangvis_team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Spot
|
||||||
|
{
|
||||||
|
public int spot_id;
|
||||||
|
public int team_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpotActInfo
|
||||||
|
{
|
||||||
|
public object ally_instance_ids;
|
||||||
|
public int belong;
|
||||||
|
public int boss_hp;
|
||||||
|
public int enemy_ai;
|
||||||
|
public string enemy_ai_para;
|
||||||
|
public int enemy_birth_turn;
|
||||||
|
public decimal enemy_hp_percent;
|
||||||
|
public int enemy_instance_id;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public int fix_count;
|
||||||
|
public int hostage_hp;
|
||||||
|
public int hostage_id;
|
||||||
|
public int hostage_max_hp;
|
||||||
|
public int if_random;
|
||||||
|
public int reinforce_count;
|
||||||
|
public int sangvis_team_id;
|
||||||
|
public int seed;
|
||||||
|
public int spot_id;
|
||||||
|
public int[] squad_instance_ids;
|
||||||
|
public int supply_count;
|
||||||
|
public int team_id;
|
||||||
|
public int vehicle_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpotTeleportResult
|
||||||
|
{
|
||||||
|
public int from_spot_id;
|
||||||
|
public int target_id;
|
||||||
|
public int target_type;
|
||||||
|
public int to_spot_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpotTransInfo
|
||||||
|
{
|
||||||
|
public int belong;
|
||||||
|
public int[] route;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadExp
|
||||||
|
{
|
||||||
|
public int exp;
|
||||||
|
public int life;
|
||||||
|
public int squad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadInstanceInfo
|
||||||
|
{
|
||||||
|
public int against_force_life;
|
||||||
|
public int attack_next_turn;
|
||||||
|
public int battleskill_switch;
|
||||||
|
public int belong;
|
||||||
|
public int squad_id;
|
||||||
|
public int squad_instance_id;
|
||||||
|
}
|
||||||
|
public class SquadSpot
|
||||||
|
{
|
||||||
|
public int battleskill_switch;
|
||||||
|
public int spot_id;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TeamGunsLife
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TeamSangvisLife
|
||||||
|
{
|
||||||
|
public long id;
|
||||||
|
public int life;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class VehicleInfo
|
||||||
|
{
|
||||||
|
public int atk_building_next_turn;
|
||||||
|
public int battleskill_switch;
|
||||||
|
public int id;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class OperationAct
|
||||||
|
{
|
||||||
|
public int exec_num;
|
||||||
|
public long id;
|
||||||
|
public int operation_id;
|
||||||
|
public int start_time;
|
||||||
|
public int team_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class OuthouseFurniture
|
||||||
|
{
|
||||||
|
public long dorm_with_user_id;
|
||||||
|
public int furniture_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OuthouseEstablish
|
||||||
|
{
|
||||||
|
public int build_get_time;
|
||||||
|
public int build_num;
|
||||||
|
public int build_starttime;
|
||||||
|
public int establish_id;
|
||||||
|
public int establish_lv;
|
||||||
|
public int establish_type;
|
||||||
|
public int furniture_id;
|
||||||
|
public string furniture_postion;
|
||||||
|
public string parameter_1;
|
||||||
|
public string parameter_2;
|
||||||
|
public string parameter_3;
|
||||||
|
public int room_id;
|
||||||
|
public int update_furniture_id;
|
||||||
|
public int upgrade_coin;
|
||||||
|
public string upgrade_condition;
|
||||||
|
public int upgrade_establish_id;
|
||||||
|
public int upgrade_starttime;
|
||||||
|
public int upgrade_time;
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class AddEquip
|
||||||
|
{
|
||||||
|
public int equip_id;
|
||||||
|
public long id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddFairyExp
|
||||||
|
{
|
||||||
|
public int fairy_exp;
|
||||||
|
public long fairy_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddGun
|
||||||
|
{
|
||||||
|
public int gun_id;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddGunExp
|
||||||
|
{
|
||||||
|
public int gun_exp;
|
||||||
|
public int gun_life;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class IndexPrize
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public string coins;
|
||||||
|
public int core;
|
||||||
|
public List<Equip> equips;
|
||||||
|
public List<Fairy> fairys;
|
||||||
|
public int gem;
|
||||||
|
public List<Gun> guns;
|
||||||
|
public string item_ids;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public int part;
|
||||||
|
public int user_exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Prize
|
||||||
|
{
|
||||||
|
public long[] equips;
|
||||||
|
public long[] fairys;
|
||||||
|
public long[] furniture;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int prize_id;
|
||||||
|
public RealPrizeInfo real_prize_info;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RealPrizeInfo
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int bp_pay;
|
||||||
|
public string chip;
|
||||||
|
public string coins;
|
||||||
|
public string commander_uniform;
|
||||||
|
public string content;
|
||||||
|
public int core;
|
||||||
|
public string equip_ids;
|
||||||
|
public string fairy_ids;
|
||||||
|
public string furniture;
|
||||||
|
public int gem;
|
||||||
|
public string gift;
|
||||||
|
public int gun_id;
|
||||||
|
public string icon;
|
||||||
|
public int id;
|
||||||
|
public string item_ids;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public string name;
|
||||||
|
public int part;
|
||||||
|
public string sangvis;
|
||||||
|
public int send_limit;
|
||||||
|
public int skin;
|
||||||
|
public int user_exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RedPrize
|
||||||
|
{
|
||||||
|
public long[] equips;
|
||||||
|
public long[] fairys;
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int prize_id;
|
||||||
|
public RealPrizeInfo real_prize_info;
|
||||||
|
}
|
|
@ -0,0 +1,169 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class AccomplishQuestList
|
||||||
|
{
|
||||||
|
public int[] accomplish_quest_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Battlepass
|
||||||
|
{
|
||||||
|
public int battlepass_id;
|
||||||
|
public int extra_bonus;
|
||||||
|
public string free_bonus;
|
||||||
|
public int id;
|
||||||
|
public int is_expired;
|
||||||
|
public string paid_bonus;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Daily
|
||||||
|
{
|
||||||
|
public string accomplish_quest_list;
|
||||||
|
public string daily_quest_list;
|
||||||
|
public int end_time;
|
||||||
|
public int id;
|
||||||
|
public Progress progress;
|
||||||
|
public string refresh_count;
|
||||||
|
public int user_id;
|
||||||
|
|
||||||
|
public class Progress
|
||||||
|
{
|
||||||
|
public int adjust_equip;
|
||||||
|
public int auto_battle;
|
||||||
|
public int battery_collect;
|
||||||
|
public int borrow_friend_team;
|
||||||
|
public int coin_mission;
|
||||||
|
public int complete_squad_daily;
|
||||||
|
public int develop_equip;
|
||||||
|
public int develop_gun;
|
||||||
|
public int eat;
|
||||||
|
public int eat_equip;
|
||||||
|
public int explore;
|
||||||
|
public int fix;
|
||||||
|
public int from_friend_build_coin;
|
||||||
|
public int gift;
|
||||||
|
public int heart_collect;
|
||||||
|
public int like;
|
||||||
|
public int mission;
|
||||||
|
public int operation;
|
||||||
|
public int recycle;
|
||||||
|
public int rescue;
|
||||||
|
public int s_win;
|
||||||
|
public int sangvis_daily_retrieval;
|
||||||
|
public int sangvis_exercise;
|
||||||
|
public int squad_data_analyse;
|
||||||
|
public int upgrade;
|
||||||
|
public int upgrade_dummy;
|
||||||
|
public int upgrade_equip;
|
||||||
|
public int upgrade_skill;
|
||||||
|
public int upgrade_value;
|
||||||
|
public int win_armor;
|
||||||
|
public int win_armorperson;
|
||||||
|
public int win_armorrobot;
|
||||||
|
public int win_boss;
|
||||||
|
public int win_normal;
|
||||||
|
public int win_person;
|
||||||
|
public int win_robot;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DailyInfo
|
||||||
|
{
|
||||||
|
public List<FightEnvironmentSkillInfo> fight_environment_skill_info;
|
||||||
|
public TicketInfo ticket_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DailyMapWithUserInfo
|
||||||
|
{
|
||||||
|
public string event_options;
|
||||||
|
public int id;
|
||||||
|
public string mission;
|
||||||
|
public int spot_id;
|
||||||
|
public int spot_num;
|
||||||
|
public int spot_type;
|
||||||
|
public int user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DailyStatusWithUserInfo
|
||||||
|
{
|
||||||
|
public int difficulty;
|
||||||
|
public int ex_ticket;
|
||||||
|
public string fight_environment_skill;
|
||||||
|
public int id;
|
||||||
|
public int map_id;
|
||||||
|
public int prev_spot_id;
|
||||||
|
public int skill_incr_id;
|
||||||
|
public int spot_id;
|
||||||
|
public int total_boss_num;
|
||||||
|
public int total_complete_num;
|
||||||
|
public int total_spot_num;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadDataDaily
|
||||||
|
{
|
||||||
|
public int count;
|
||||||
|
public string last_finish_time;
|
||||||
|
public int receive;
|
||||||
|
public int squad_id;
|
||||||
|
public string type;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TicketInfo
|
||||||
|
{
|
||||||
|
public Resource rs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Weekly
|
||||||
|
{
|
||||||
|
public string accomplish_quest_list;
|
||||||
|
public int end_time;
|
||||||
|
public int id;
|
||||||
|
public string locked_quest_list;
|
||||||
|
public Progress progress;
|
||||||
|
public string refresh_count;
|
||||||
|
public int user_id;
|
||||||
|
public int weekly_accumulation;
|
||||||
|
public string weekly_quest_list;
|
||||||
|
|
||||||
|
public class Progress
|
||||||
|
{
|
||||||
|
public int adjust_equip;
|
||||||
|
public int adjust_fairy;
|
||||||
|
public int auto_battle;
|
||||||
|
public int battery_collect;
|
||||||
|
public int chess;
|
||||||
|
public int coin_mission;
|
||||||
|
public int complete_squad_daily;
|
||||||
|
public int consume_aid;
|
||||||
|
public int develop_equip;
|
||||||
|
public int develop_gun;
|
||||||
|
public int eat;
|
||||||
|
public int eat_equip;
|
||||||
|
public int eat_fairy;
|
||||||
|
public int explore;
|
||||||
|
public int fix;
|
||||||
|
public int operation;
|
||||||
|
public int procurement;
|
||||||
|
public int retire_gun;
|
||||||
|
public int s_win;
|
||||||
|
public int sangvis_daily_retrieval;
|
||||||
|
public int sangvis_exercise;
|
||||||
|
public int sp_develop;
|
||||||
|
public int special_develop_equip;
|
||||||
|
public int special_develop_gun;
|
||||||
|
public int squad_data_analyse;
|
||||||
|
public int squad_eat_chip;
|
||||||
|
public int upgrade;
|
||||||
|
public int upgrade_skill;
|
||||||
|
public int win_armor;
|
||||||
|
public int win_armorperson;
|
||||||
|
public int win_armorrobot;
|
||||||
|
public int win_boss;
|
||||||
|
public int win_enemy;
|
||||||
|
public int win_normal;
|
||||||
|
public int win_person;
|
||||||
|
public int win_robot;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class RankUserInfo
|
||||||
|
{
|
||||||
|
public string commander_info;
|
||||||
|
public string headpic_id;
|
||||||
|
public int id;
|
||||||
|
public int last_time;
|
||||||
|
public string num;
|
||||||
|
public int rank;
|
||||||
|
public int rank_id;
|
||||||
|
public int score;
|
||||||
|
public int server_id;
|
||||||
|
public string server_name;
|
||||||
|
public int sum_pt;
|
||||||
|
public int user_id;
|
||||||
|
public int user_level;
|
||||||
|
public string user_name;
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// tODO: check
|
||||||
|
public class Sangvis
|
||||||
|
{
|
||||||
|
public int ammo_count;
|
||||||
|
public int can_click;
|
||||||
|
public int chip1;
|
||||||
|
public int chip2;
|
||||||
|
public int exp;
|
||||||
|
public int favor;
|
||||||
|
public int favor_toplimit;
|
||||||
|
public int is_locked;
|
||||||
|
public int level;
|
||||||
|
public int life;
|
||||||
|
public int location;
|
||||||
|
public int mre_count;
|
||||||
|
public int position;
|
||||||
|
public int sangvis_advance;
|
||||||
|
public int sangvis_id;
|
||||||
|
public int sangvis_is_special;
|
||||||
|
public int sangvis_resolution;
|
||||||
|
public int sangvis_resolution_level;
|
||||||
|
public int sangvis_shape_n;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int sign;
|
||||||
|
public int skill_advance;
|
||||||
|
public int skill1;
|
||||||
|
public int skill2;
|
||||||
|
public int skill3;
|
||||||
|
public int skin;
|
||||||
|
public int soul_bond;
|
||||||
|
public int soul_bond_time;
|
||||||
|
public int special_effect;
|
||||||
|
public int team_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisChip
|
||||||
|
{
|
||||||
|
public int chip_id;
|
||||||
|
public int chip_slot;
|
||||||
|
public int dev_time;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisDuplicateInfo
|
||||||
|
{
|
||||||
|
public string award_item;
|
||||||
|
public int challenge_type;
|
||||||
|
public string default_team;
|
||||||
|
public int end_time;
|
||||||
|
public int enemy_team_id;
|
||||||
|
public string gun_in_allys;
|
||||||
|
public int id;
|
||||||
|
public int is_night;
|
||||||
|
public string item_cost;
|
||||||
|
public string map_code;
|
||||||
|
public int map_type;
|
||||||
|
public decimal pass_time;
|
||||||
|
public int sangvis_hiringteam_id;
|
||||||
|
public int start_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisItemRecover
|
||||||
|
{
|
||||||
|
public int item_last_recover_time;
|
||||||
|
public int item_num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTeam
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int group_id;
|
||||||
|
public long id;
|
||||||
|
public Dictionary<int, SangvisTeamSet> info;
|
||||||
|
public int mre;
|
||||||
|
public int team_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisTeamSet
|
||||||
|
{
|
||||||
|
public int position;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SangvisGashaInfo
|
||||||
|
{
|
||||||
|
public int can_reset;
|
||||||
|
public string draw_type_count;
|
||||||
|
public string gasha_area;
|
||||||
|
public string gasha_content;
|
||||||
|
public int gasha_id;
|
||||||
|
public string gasha_reward;
|
||||||
|
public int id;
|
||||||
|
public int last_refresh_time;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class GameConfigInfo
|
||||||
|
{
|
||||||
|
public string client_version;
|
||||||
|
public int equip_enhance_switch;
|
||||||
|
public int equip_rectify_switch;
|
||||||
|
public int res_table_switch;
|
||||||
|
public int share_global_switch;
|
||||||
|
public int soulbind_global_switch;
|
||||||
|
public int special_develop_switch;
|
||||||
|
public int trail_switch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Settings
|
||||||
|
{
|
||||||
|
public bool autoFairySkill;
|
||||||
|
public bool autoLock;
|
||||||
|
public bool autoSupply;
|
||||||
|
public bool bulletTime;
|
||||||
|
public bool characterLive2dAlwaysLogin;
|
||||||
|
public int characterSkillPerformance;
|
||||||
|
public bool dormShowComment;
|
||||||
|
public bool endTurnConfirmation;
|
||||||
|
public bool gunBreakProtect;
|
||||||
|
public bool illusLike;
|
||||||
|
public bool playReplay;
|
||||||
|
public int sangvisSkillPerformance;
|
||||||
|
public bool showBackgroundLive2D;
|
||||||
|
public bool showBattleMessage;
|
||||||
|
public bool showCharacterLive2D;
|
||||||
|
public bool simplifyBattle;
|
||||||
|
public bool skillPerformance;
|
||||||
|
public bool vibrate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserGameSetting
|
||||||
|
{
|
||||||
|
public string settings;
|
||||||
|
public long uid;
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
// TODO: check
|
||||||
|
public class Squad
|
||||||
|
{
|
||||||
|
public int advanced_level;
|
||||||
|
public int assist_damage;
|
||||||
|
public int assist_def_break;
|
||||||
|
public int assist_hit;
|
||||||
|
public int assist_reload;
|
||||||
|
public int atk_speed;
|
||||||
|
public int cur_def;
|
||||||
|
public int damage;
|
||||||
|
public int def;
|
||||||
|
public int hit;
|
||||||
|
public int id;
|
||||||
|
public int life;
|
||||||
|
public int rank;
|
||||||
|
public int skill1;
|
||||||
|
public int skill2;
|
||||||
|
public int skill3;
|
||||||
|
public int squad_exp;
|
||||||
|
public int squad_id;
|
||||||
|
public int squad_level;
|
||||||
|
public int user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadSkillAct
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public int skill;
|
||||||
|
public int squad_skill_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadSkillActInfo
|
||||||
|
{
|
||||||
|
public int end_time;
|
||||||
|
public int skill;
|
||||||
|
public int squad_skill_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadTrainAct
|
||||||
|
{
|
||||||
|
public int add_exp;
|
||||||
|
public string cost_item_info;
|
||||||
|
public int end_time;
|
||||||
|
public int num;
|
||||||
|
public int squad_train_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadTrainActInfo
|
||||||
|
{
|
||||||
|
public int add_exp;
|
||||||
|
public string cost_item_info;
|
||||||
|
public int end_time;
|
||||||
|
public int num;
|
||||||
|
public int squad_train_slot;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SquadInfo : Squad
|
||||||
|
{
|
||||||
|
public int current_adv_progress;
|
||||||
|
public int current_rank_progress;
|
||||||
|
public int rank_end_time;
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class SquadInTheaterInfo
|
||||||
|
{
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int squad_no;
|
||||||
|
public long squad_with_user_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterAreaType2Log
|
||||||
|
{
|
||||||
|
public int best_pt;
|
||||||
|
public int theater_area_id;
|
||||||
|
public long user_id;
|
||||||
|
public int user_level;
|
||||||
|
public string user_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterConstructionInfo
|
||||||
|
{
|
||||||
|
public int area_id;
|
||||||
|
public int construction_group_id;
|
||||||
|
public int init_pt;
|
||||||
|
public int lv;
|
||||||
|
public int pt;
|
||||||
|
public int theater_id;
|
||||||
|
public int user_pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterEventLog
|
||||||
|
{
|
||||||
|
public int ap;
|
||||||
|
public int battle_pt;
|
||||||
|
public int construction_pt;
|
||||||
|
public int incident_pt;
|
||||||
|
public int last_withdraw_time;
|
||||||
|
public int sum_pt;
|
||||||
|
public int theater_event_id;
|
||||||
|
public long user_id;
|
||||||
|
public int user_level;
|
||||||
|
public string user_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterExerciseInfo
|
||||||
|
{
|
||||||
|
public int battle_enemy_no;
|
||||||
|
public int battle_fairy;
|
||||||
|
public string battle_squads;
|
||||||
|
public int battle_team;
|
||||||
|
public string enemy_teams;
|
||||||
|
public int last_battle_finish_time;
|
||||||
|
public int theater_area_id;
|
||||||
|
public int theater_fairy_use_count;
|
||||||
|
public string theater_squads;
|
||||||
|
public string theater_squads_use_count;
|
||||||
|
public string theater_teams;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterIncidentInfo
|
||||||
|
{
|
||||||
|
public int incident_end_day;
|
||||||
|
public int incident_id;
|
||||||
|
public int incident_start_day;
|
||||||
|
public int num;
|
||||||
|
public List<TheaterResult> result;
|
||||||
|
public int selection_id;
|
||||||
|
public int status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterInfo
|
||||||
|
{
|
||||||
|
public string advantage_gun;
|
||||||
|
public int battle_pt;
|
||||||
|
public int is_open;
|
||||||
|
public int minus_pt;
|
||||||
|
public int theater_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterResult
|
||||||
|
{
|
||||||
|
public int num;
|
||||||
|
public int selection_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterTeamMember
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterTeamMemberWithPos : TheaterTeamMember
|
||||||
|
{
|
||||||
|
public int position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterTeams
|
||||||
|
{
|
||||||
|
public List<long> backup;
|
||||||
|
public List<long> backup_fairy;
|
||||||
|
public Dictionary<int, TheaterTeamMember> fairy;
|
||||||
|
public Dictionary<int, TheaterTeamMemberWithPos> guns;
|
||||||
|
public Dictionary<int, TheaterTeamMemberWithPos> sangvises;
|
||||||
|
public Dictionary<int, TheaterTeamMember> squads;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterTeamsInfo
|
||||||
|
{
|
||||||
|
public int theater_area_id;
|
||||||
|
public string theater_teams;
|
||||||
|
public int user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TheaterWithUser
|
||||||
|
{
|
||||||
|
public string battle_pt;
|
||||||
|
public int last_exercise_finish_time;
|
||||||
|
public int theater_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GunInTheaterInfo
|
||||||
|
{
|
||||||
|
public long gun_with_user_id;
|
||||||
|
public int life;
|
||||||
|
public int location;
|
||||||
|
public int position;
|
||||||
|
public long sangvis_with_user_id;
|
||||||
|
public int team_id;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class UserInfo
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int bp;
|
||||||
|
public int coin1;
|
||||||
|
public int coin2;
|
||||||
|
public int coin3;
|
||||||
|
public int core;
|
||||||
|
public string equip_collect;
|
||||||
|
public int experience;
|
||||||
|
public int gem;
|
||||||
|
public int gender;
|
||||||
|
public string gun_collect;
|
||||||
|
public int last_bp_recover_time;
|
||||||
|
public int last_favor_recover_time;
|
||||||
|
public int last_login_time;
|
||||||
|
public int last_monthlycard1_recover_time;
|
||||||
|
public int last_monthlycard2_recover_time;
|
||||||
|
public int last_recover_time;
|
||||||
|
public int last_ssoc_change_time;
|
||||||
|
public int lv;
|
||||||
|
public int max_build_slot;
|
||||||
|
public int max_equip_build_slot;
|
||||||
|
public int max_fairy;
|
||||||
|
public int max_fix_slot;
|
||||||
|
public int max_gun_preset;
|
||||||
|
public int max_sangvis;
|
||||||
|
public int max_upgrade_slot;
|
||||||
|
public int maxdorm;
|
||||||
|
public int maxequip;
|
||||||
|
public int maxgun;
|
||||||
|
public int maxteam;
|
||||||
|
public int mp;
|
||||||
|
public int mre;
|
||||||
|
public string name;
|
||||||
|
public int part;
|
||||||
|
public int reg_time;
|
||||||
|
public long user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserRecord
|
||||||
|
{
|
||||||
|
public string adjutant;
|
||||||
|
public string adjutant_fairy;
|
||||||
|
public string adjutant_multi;
|
||||||
|
public int attendance_type1_day;
|
||||||
|
public int attendance_type1_time;
|
||||||
|
public int attendance_type2_day;
|
||||||
|
public int attendance_type2_time;
|
||||||
|
public int buyammo_num;
|
||||||
|
public int buymp_num;
|
||||||
|
public int buymre_num;
|
||||||
|
public int buypart_num;
|
||||||
|
public int first_sangvis;
|
||||||
|
public int mission_campaign;
|
||||||
|
public string seven_attendance_days;
|
||||||
|
public int seven_spend_point;
|
||||||
|
public int seven_start_time;
|
||||||
|
public int seven_type;
|
||||||
|
public int special_mission_campaign;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
namespace Elisa.Models;
|
||||||
|
|
||||||
|
public class Vehicle
|
||||||
|
{
|
||||||
|
public int ammo;
|
||||||
|
public int armor;
|
||||||
|
public int atk_speed;
|
||||||
|
public int basic_effect;
|
||||||
|
public string common_component;
|
||||||
|
public string component;
|
||||||
|
public string crew;
|
||||||
|
public int crit;
|
||||||
|
public int crit_dmg;
|
||||||
|
public int def_break;
|
||||||
|
public int dodge;
|
||||||
|
public int energy;
|
||||||
|
public int energy_bak;
|
||||||
|
public int exp;
|
||||||
|
public int H_armor_piercing;
|
||||||
|
public int heavy_damage;
|
||||||
|
public int hit;
|
||||||
|
public int hp;
|
||||||
|
public int id;
|
||||||
|
public int L_armor_piercing;
|
||||||
|
public int life;
|
||||||
|
public int light_damage;
|
||||||
|
public string locked_slots;
|
||||||
|
public int mre;
|
||||||
|
public int precision;
|
||||||
|
public int reload;
|
||||||
|
public int skin;
|
||||||
|
public string unlocked_nodes;
|
||||||
|
public long user_id;
|
||||||
|
public int vehicle_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class VehicleComponent
|
||||||
|
{
|
||||||
|
public int armor;
|
||||||
|
public int atk_speed;
|
||||||
|
public int component_id;
|
||||||
|
public int crit_damage;
|
||||||
|
public int crit_rate;
|
||||||
|
public int def_break;
|
||||||
|
public int dodge;
|
||||||
|
public int energy;
|
||||||
|
public int energy_bak;
|
||||||
|
public int exp;
|
||||||
|
public int H_armor_piercing;
|
||||||
|
public int heavy_damage;
|
||||||
|
public int hit;
|
||||||
|
public long id;
|
||||||
|
public int is_locked;
|
||||||
|
public int L_armor_piercing;
|
||||||
|
public int level;
|
||||||
|
public int light_damage;
|
||||||
|
public int precision;
|
||||||
|
public int reload;
|
||||||
|
public string roll_1;
|
||||||
|
public string roll_2;
|
||||||
|
public string roll_3;
|
||||||
|
public string roll_4;
|
||||||
|
public string roll_5;
|
||||||
|
public string skill;
|
||||||
|
public int skin;
|
||||||
|
public string unlocked_att;
|
||||||
|
public long user_id;
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
using Elisa.Commands;
|
||||||
|
using Elisa.Data;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Serilog;
|
||||||
|
using Serilog.Events;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Elisa;
|
||||||
|
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
static IConfiguration config = null!;
|
||||||
|
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
SetupConfig();
|
||||||
|
SetupSerilog();
|
||||||
|
|
||||||
|
Log.Information($"Version {Assembly.GetEntryAssembly()?.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion}");
|
||||||
|
Log.Information($"Starting {Assembly.GetEntryAssembly()?.GetName().Name}...");
|
||||||
|
|
||||||
|
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||||
|
{
|
||||||
|
CommandHandlerFactory.RegisterCommands(Assembly.GetExecutingAssembly());
|
||||||
|
Table.Load();
|
||||||
|
}
|
||||||
|
stopwatch.Stop();
|
||||||
|
Log.Information($"Done! loaded in {stopwatch.ElapsedMilliseconds}ms");
|
||||||
|
|
||||||
|
Task.Run(GameServer.Start).Wait();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetupConfig()
|
||||||
|
{
|
||||||
|
config = new ConfigurationBuilder()
|
||||||
|
.SetBasePath(Path.GetDirectoryName(AppContext.BaseDirectory)!)
|
||||||
|
.AddJsonFile("appsettings.json")
|
||||||
|
.Build();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetupSerilog()
|
||||||
|
{
|
||||||
|
var logFilePath = Path.Combine(Path.GetDirectoryName(AppContext.BaseDirectory)!, "Logs", "log.txt");
|
||||||
|
|
||||||
|
if (File.Exists(logFilePath))
|
||||||
|
{
|
||||||
|
string prevLogFilePath = Path.Combine(Path.GetDirectoryName(logFilePath)!, "log-prev.txt");
|
||||||
|
|
||||||
|
if (File.Exists(prevLogFilePath))
|
||||||
|
File.Delete(prevLogFilePath);
|
||||||
|
|
||||||
|
File.Move(logFilePath, prevLogFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.Logger = new LoggerConfiguration()
|
||||||
|
.WriteTo.Console()
|
||||||
|
.WriteTo.File(logFilePath, restrictedToMinimumLevel: LogEventLevel.Verbose, shared: true)
|
||||||
|
.ReadFrom.Configuration(config)
|
||||||
|
.CreateBootstrapLogger();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,484 @@
|
||||||
|
{
|
||||||
|
"gun_exp_info": [
|
||||||
|
{
|
||||||
|
"lv": "1",
|
||||||
|
"exp": "100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "2",
|
||||||
|
"exp": "200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "3",
|
||||||
|
"exp": "300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "4",
|
||||||
|
"exp": "400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "5",
|
||||||
|
"exp": "500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "6",
|
||||||
|
"exp": "600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "7",
|
||||||
|
"exp": "700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "8",
|
||||||
|
"exp": "800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "9",
|
||||||
|
"exp": "900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "10",
|
||||||
|
"exp": "1000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "11",
|
||||||
|
"exp": "1100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "12",
|
||||||
|
"exp": "1200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "13",
|
||||||
|
"exp": "1300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "14",
|
||||||
|
"exp": "1400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "15",
|
||||||
|
"exp": "1500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "16",
|
||||||
|
"exp": "1600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "17",
|
||||||
|
"exp": "1700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "18",
|
||||||
|
"exp": "1800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "19",
|
||||||
|
"exp": "1900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "20",
|
||||||
|
"exp": "2000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "21",
|
||||||
|
"exp": "2100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "22",
|
||||||
|
"exp": "2200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "23",
|
||||||
|
"exp": "2300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "24",
|
||||||
|
"exp": "2400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "25",
|
||||||
|
"exp": "2500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "26",
|
||||||
|
"exp": "2600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "27",
|
||||||
|
"exp": "2800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "28",
|
||||||
|
"exp": "3100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "29",
|
||||||
|
"exp": "3400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "30",
|
||||||
|
"exp": "4200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "31",
|
||||||
|
"exp": "4600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "32",
|
||||||
|
"exp": "5000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "33",
|
||||||
|
"exp": "5400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "34",
|
||||||
|
"exp": "5800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "35",
|
||||||
|
"exp": "6300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "36",
|
||||||
|
"exp": "6700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "37",
|
||||||
|
"exp": "7200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "38",
|
||||||
|
"exp": "7700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "39",
|
||||||
|
"exp": "8200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "40",
|
||||||
|
"exp": "8800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "41",
|
||||||
|
"exp": "9300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "42",
|
||||||
|
"exp": "9900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "43",
|
||||||
|
"exp": "10500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "44",
|
||||||
|
"exp": "11100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "45",
|
||||||
|
"exp": "11800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "46",
|
||||||
|
"exp": "12500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "47",
|
||||||
|
"exp": "13100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "48",
|
||||||
|
"exp": "13900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "49",
|
||||||
|
"exp": "14600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "50",
|
||||||
|
"exp": "15400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "51",
|
||||||
|
"exp": "16100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "52",
|
||||||
|
"exp": "16900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "53",
|
||||||
|
"exp": "17800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "54",
|
||||||
|
"exp": "18600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "55",
|
||||||
|
"exp": "19500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "56",
|
||||||
|
"exp": "20400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "57",
|
||||||
|
"exp": "21300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "58",
|
||||||
|
"exp": "22300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "59",
|
||||||
|
"exp": "23300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "60",
|
||||||
|
"exp": "24300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "61",
|
||||||
|
"exp": "25300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "62",
|
||||||
|
"exp": "26300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "63",
|
||||||
|
"exp": "27400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "64",
|
||||||
|
"exp": "28500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "65",
|
||||||
|
"exp": "29600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "66",
|
||||||
|
"exp": "30800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "67",
|
||||||
|
"exp": "32000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "68",
|
||||||
|
"exp": "33200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "69",
|
||||||
|
"exp": "34400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "70",
|
||||||
|
"exp": "45100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "71",
|
||||||
|
"exp": "46800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "72",
|
||||||
|
"exp": "48600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "73",
|
||||||
|
"exp": "50400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "74",
|
||||||
|
"exp": "52200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "75",
|
||||||
|
"exp": "54000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "76",
|
||||||
|
"exp": "55900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "77",
|
||||||
|
"exp": "57900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "78",
|
||||||
|
"exp": "59800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "79",
|
||||||
|
"exp": "61800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "80",
|
||||||
|
"exp": "63900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "81",
|
||||||
|
"exp": "66000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "82",
|
||||||
|
"exp": "68100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "83",
|
||||||
|
"exp": "70300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "84",
|
||||||
|
"exp": "72600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "85",
|
||||||
|
"exp": "74800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "86",
|
||||||
|
"exp": "77100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "87",
|
||||||
|
"exp": "79500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "88",
|
||||||
|
"exp": "81900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "89",
|
||||||
|
"exp": "84300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "90",
|
||||||
|
"exp": "112600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "91",
|
||||||
|
"exp": "116100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "92",
|
||||||
|
"exp": "119500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "93",
|
||||||
|
"exp": "123100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "94",
|
||||||
|
"exp": "126700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "95",
|
||||||
|
"exp": "130400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "96",
|
||||||
|
"exp": "134100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "97",
|
||||||
|
"exp": "137900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "98",
|
||||||
|
"exp": "141800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "99",
|
||||||
|
"exp": "145700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "100",
|
||||||
|
"exp": "100000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "101",
|
||||||
|
"exp": "120000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "102",
|
||||||
|
"exp": "140000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "103",
|
||||||
|
"exp": "160000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "104",
|
||||||
|
"exp": "180000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "105",
|
||||||
|
"exp": "200000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "106",
|
||||||
|
"exp": "220000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "107",
|
||||||
|
"exp": "240000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "108",
|
||||||
|
"exp": "280000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "109",
|
||||||
|
"exp": "360000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "110",
|
||||||
|
"exp": "480000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "111",
|
||||||
|
"exp": "640000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "112",
|
||||||
|
"exp": "900000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "113",
|
||||||
|
"exp": "1200000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "114",
|
||||||
|
"exp": "1600000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "115",
|
||||||
|
"exp": "2200000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "116",
|
||||||
|
"exp": "3000000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "117",
|
||||||
|
"exp": "4000000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "118",
|
||||||
|
"exp": "5000000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "119",
|
||||||
|
"exp": "6000000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lv": "120",
|
||||||
|
"exp": "0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,253 @@
|
||||||
|
using ICSharpCode.SharpZipLib.GZip;
|
||||||
|
using System.IO.Compression;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Elisa.Utils;
|
||||||
|
|
||||||
|
public static class Crypto
|
||||||
|
{
|
||||||
|
static DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||||
|
static MD5 md5 = System.Security.Cryptography.MD5.Create();
|
||||||
|
|
||||||
|
public static string Decrypt(string body, string key)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(body) || string.IsNullOrEmpty(key))
|
||||||
|
return string.Empty;
|
||||||
|
|
||||||
|
if (body.Length == 1 || body.StartsWith("error:") || (body.StartsWith("{") && body.EndsWith("}")))
|
||||||
|
return body;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string text = MD5(MD5(key).Substring(16));
|
||||||
|
string pwd = text + MD5(text);
|
||||||
|
|
||||||
|
if (body.StartsWith("#"))
|
||||||
|
{
|
||||||
|
body = body.Substring(1);
|
||||||
|
|
||||||
|
return GZipDecompress(RC4(ConvertFromBase64String(body), pwd).Skip(26).ToArray<byte>());
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] bytes = RC4(ConvertFromBase64String(body), pwd);
|
||||||
|
string @string = Encoding.UTF8.GetString(bytes);
|
||||||
|
|
||||||
|
return (@string.Length > 26) ? @string.Substring(26) : string.Empty;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Encrypt(string body, string key)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
byte[] array = GZipCompress(Encoding.UTF8.GetBytes(body));
|
||||||
|
string text = MD5(key);
|
||||||
|
string s = MD5(text.Substring(0, 16));
|
||||||
|
string text2 = MD5(text.Substring(16, 16));
|
||||||
|
string pwd = text2 + MD5(text2);
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(string.Format("{0}", Math.Round(GetCurrentSec()) + 3600.0));
|
||||||
|
string s2 = MD5(array.Concat(Encoding.UTF8.GetBytes(s)).ToArray<byte>()).Substring(0, 16);
|
||||||
|
byte[] array2 = new byte[array.Length + 26];
|
||||||
|
|
||||||
|
Array.Copy(bytes, 0, array2, 0, bytes.Length);
|
||||||
|
Array.Copy(Encoding.UTF8.GetBytes(s2), 0, array2, 10, 16);
|
||||||
|
Array.Copy(array, 0, array2, 26, array.Length);
|
||||||
|
|
||||||
|
return "#" + Convert.ToBase64String(RC4(array2, pwd));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] ConvertFromBase64String(string input)
|
||||||
|
{
|
||||||
|
byte[] result = [];
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = Convert.FromBase64String(input);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = Convert.FromBase64String(input + "=");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = Convert.FromBase64String(input + "==");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double GetCurrentSec()
|
||||||
|
{
|
||||||
|
return (DateTime.UtcNow - epoch).TotalSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string MD5(string input)
|
||||||
|
{
|
||||||
|
return MD5(Encoding.UTF8.GetBytes(input));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string MD5(byte[] input)
|
||||||
|
{
|
||||||
|
byte[] array = md5.ComputeHash(input);
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < array.Length; i++)
|
||||||
|
stringBuilder.Append(array[i].ToString("x2"));
|
||||||
|
|
||||||
|
return stringBuilder.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] RC4(byte[] data, string pwd)
|
||||||
|
{
|
||||||
|
return RC4(data, Encoding.UTF8.GetBytes(pwd));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] RC4(byte[] data, byte[] pwd)
|
||||||
|
{
|
||||||
|
int[] array = new int[256];
|
||||||
|
int[] array2 = new int[256];
|
||||||
|
byte[] array3 = new byte[data.Length];
|
||||||
|
int i;
|
||||||
|
int num;
|
||||||
|
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
array[i] = (int)pwd[i % pwd.Length];
|
||||||
|
array2[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = (num = 0); i < 256; i++)
|
||||||
|
{
|
||||||
|
int num2 = array2[i];
|
||||||
|
|
||||||
|
num = (num + array2[i] + array[i]) % 256;
|
||||||
|
array2[i] = array2[num];
|
||||||
|
array2[num] = num2;
|
||||||
|
}
|
||||||
|
|
||||||
|
int num3;
|
||||||
|
num = (num3 = (i = 0));
|
||||||
|
|
||||||
|
while (i < data.Length)
|
||||||
|
{
|
||||||
|
num3++;
|
||||||
|
num3 %= 256;
|
||||||
|
num += array2[num3];
|
||||||
|
num %= 256;
|
||||||
|
|
||||||
|
int num2 = array2[num3];
|
||||||
|
array2[num3] = array2[num];
|
||||||
|
array2[num] = num2;
|
||||||
|
|
||||||
|
int num4 = array2[(array2[num3] + array2[num]) % 256];
|
||||||
|
array3[i] = (byte)((int)data[i] ^ num4);
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return array3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] GZipCompress(byte[] raw)
|
||||||
|
{
|
||||||
|
byte[] result;
|
||||||
|
|
||||||
|
using (MemoryStream memoryStream = new MemoryStream())
|
||||||
|
{
|
||||||
|
using GZipOutputStream gzipOutputStream = new GZipOutputStream(memoryStream);
|
||||||
|
|
||||||
|
gzipOutputStream.IsStreamOwner = false;
|
||||||
|
gzipOutputStream.Write(raw, 0, raw.Length);
|
||||||
|
gzipOutputStream.Flush();
|
||||||
|
gzipOutputStream.Finish();
|
||||||
|
|
||||||
|
result = memoryStream.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GZipDecompress(byte[] raw)
|
||||||
|
{
|
||||||
|
string result;
|
||||||
|
|
||||||
|
using (MemoryStream memoryStream = new MemoryStream(raw))
|
||||||
|
{
|
||||||
|
using Stream stream = new GZipInputStream(memoryStream);
|
||||||
|
using StreamReader streamReader = new StreamReader(stream, Encoding.UTF8);
|
||||||
|
|
||||||
|
result = streamReader.ReadToEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CompressText(string text)
|
||||||
|
{
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(text);
|
||||||
|
byte[]? inArray = null;
|
||||||
|
|
||||||
|
using (MemoryStream memoryStream = new MemoryStream())
|
||||||
|
{
|
||||||
|
using (GZipStream gzipStream = new GZipStream(memoryStream, CompressionMode.Compress))
|
||||||
|
{
|
||||||
|
gzipStream.Write(bytes, 0, bytes.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
inArray = memoryStream.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Convert.ToBase64String(inArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DecompressText(string text)
|
||||||
|
{
|
||||||
|
string result = string.Empty;
|
||||||
|
|
||||||
|
using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(text)))
|
||||||
|
{
|
||||||
|
using (GZipStream gzipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
|
||||||
|
{
|
||||||
|
using (StreamReader streamReader = new StreamReader(gzipStream))
|
||||||
|
{
|
||||||
|
result = streamReader.ReadToEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ConvertMD5(string input)
|
||||||
|
{
|
||||||
|
byte[] array = md5.ComputeHash(Encoding.UTF8.GetBytes(input));
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < array.Length; i++)
|
||||||
|
stringBuilder.Append(array[i].ToString("x2"));
|
||||||
|
|
||||||
|
return stringBuilder.ToString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
namespace Elisa.Utils;
|
||||||
|
|
||||||
|
public static class RNG
|
||||||
|
{
|
||||||
|
static readonly Random random = new Random((int)DateTime.Now.Ticks);
|
||||||
|
|
||||||
|
public static int Next(int min, int max)
|
||||||
|
=> random.Next(min, max);
|
||||||
|
|
||||||
|
public static int Next(int max)
|
||||||
|
=> random.Next(max);
|
||||||
|
|
||||||
|
public static float NextFloat(float min, float max)
|
||||||
|
{
|
||||||
|
double range = (double)max - min;
|
||||||
|
double sample = random.NextDouble();
|
||||||
|
double scaled = (sample * range) + min;
|
||||||
|
|
||||||
|
return (float)scaled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float NextFloat(float max)
|
||||||
|
=> NextFloat(0f, max);
|
||||||
|
|
||||||
|
public static bool NextBool()
|
||||||
|
=> random.Next(2) == 0;
|
||||||
|
|
||||||
|
public static float NextRoll()
|
||||||
|
=> NextFloat(100f);
|
||||||
|
|
||||||
|
public static T NextFromList<T>(IList<T> list)
|
||||||
|
=> list[random.Next(list.Count)];
|
||||||
|
|
||||||
|
public static U NextFromDict<T, U>(IDictionary<T, U> dict)
|
||||||
|
=> dict.ElementAt(random.Next(dict.Count)).Value;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
namespace Elisa.Utils;
|
||||||
|
|
||||||
|
public abstract class Singleton<T> where T : new()
|
||||||
|
{
|
||||||
|
static T instance;
|
||||||
|
public static T Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
instance = new T();
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
set => instance = value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"Kestrel": {
|
||||||
|
"EndPoints": {
|
||||||
|
"Http": {
|
||||||
|
"Url": "http://0.0.0.0:80"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Serilog": {
|
||||||
|
"MinimumLevel": {
|
||||||
|
"Default": "Debug",
|
||||||
|
"Override": {
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
Loading…
Reference in New Issue