Kaynağa Gözat

New Sonar Scanner

Axel Nordh 4 yıl önce
ebeveyn
işleme
d8c5817919

+ 0 - 618
.sonarqube/bin/targets/SonarQube.Integration.targets

@@ -1,618 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
-  <!--
-    This file contains targets to integrate SonarQube and MSBuild.
-
-    The targets will produce an output folder structure containing information required by the sonar-scanner.
-
-    A subdirectory will be created for each MSBuild project. Information about the project
-    will be written to a file called "ProjectInfo.xml". Additional files may also be written
-    containing information required by different analyzers. In particular, a file will be written
-    containing the list of files in the project that should be analyzed by the sonar-scanner.
-
-    The output will only be produced if the property $(SonarQubeTempPath) and is specified.
-    $(SonarQubeTempPath) is the root folder under which per-analysis output should be written.
-
-    Excluding projects and files from SonarQube analysis
-    ****************************************************
-    Individual projects can excluded from SonarQube analysis by setting the property $(SonarQubeExclude) e.g.
-
-      <SonarQubeExclude>true</SonarQubeExclude>
-
-    Individual files can be excluded from analysis by setting the <SonarQubeExclude> metadata item e.g.
-
-      <Compile Include="Logger.cs">
-        <SonarQubeExclude>true</SonarQubeExclude>
-      </Compile>
-
-    Project is also excluded if it's recognized as a Fakes or a Temp project. These projects are auto-generated.
-
-    Test projects
-    *************
-    The analysis performed by SonarQube varies depending on whether a project is a test project or not.
-
-    A project can be explicitly marked as being a test or product project by setting the property $(SonarQubeTestProject) e.g.
-
-      <SonarQubeTestProject>true</SonarQubeTestProject>
-
-    If $(SonarQubeTestProject) is not set explicitly then the project is categorized as a Test project if:
-    * Is a Fakes or a Temp project explicitly marked as SonarQubeExclude=false
-    * Has one of the expected test project GUIDs ("3AC096D0-A1C2-E12C-1390-A8335801FDAB" or legacy "82A7F48D-3B50-4B1E-B82E-3ADA8210C358").
-    * Has a TestContainer project capability.
-    * References a known unit test related assembly.
-    * Deprecated: Project name matches "sonar.msbuild.testProjectPattern" parameter. Use SonarQubeTestProject=true instead.
-
-    Otherwise it is a Product project.
-
-    Supplying analysis setting in a project file
-    ********************************************
-    Project-level analysis settings can be specified in a project file using following
-    syntax:
-
-    <ItemGroup>
-      <SonarQubeSetting Include="sonar.my.analysis.setting">
-        <Value>42</Value>
-      </SonarQubeSetting>
-    </ItemGroup>
-
-    Settings specified in the project file will override those specified on the SonarQube server.
-
-    Specifying additional types of file to be analysed
-    **************************************************
-
-    The Scanner for MSBuild will automatically collect all of the common
-    file types that can be analysed by the various Sonar language plugins
-    (e.g. C# files, TypeScript, TSQL, C++ include and source files etc).
-    The full list of item types that will be included for analysis is
-    specified in $(SQAnalysisFileItemTypes) property below.
-
-    If you have any additional item types that you want to have analyzed,
-    you can specify them setting the property $(SQAdditionalAnalysisFileItemTypes)
-    in the project being analysed e.g.
-
-    <SQAdditionalAnalysisFileItemTypes>MyCustomFileType1;MyCustomFileType</SQAdditionalAnalysisFileItemTypes>
-
-    Specific handling of Razor builds
-    **************************************************
-    During the compilation of an SDK-style MSBuild project with Razor, MSBuild executes 2 build targets:
-    CoreCompile to compile the main code and RazorCoreCompile to compile ".cshtml" view files.
-    Since it is not possible to execute one target more than once, there's a logic that prevents RazorCoreCompile
-    from overriding output files from CoreCompile step:
-      * CoreCompile produces output files in directory "X", where X represents project specific unique number.
-      * Directory "X" with CoreCompile results is renamed to "X.tmp" before RazorCoreCompile and new empty directory "X" is prepared.
-      * RazorCoreCompile produces its output to the current directory "X".
-      * Directory "X" with Razor output is renamed to "X.Razor".
-      * Directory "X.tmp" with original output is renamed back to "X".
--->
-
-  <!-- **************************************************************************** -->
-  <!-- SonarQube MSBuild Integration implementation logic -->
-  <!-- **************************************************************************** -->
-  <!-- Note: where possible, these targets avoid taking dependencies on specific
-        managed or C++- targets e.g. they use
-           "AfterTargets='Build'" which is general rather than
-           "AfterTargets='CoreCompile'" which is specific to managed projects.
-  -->
-
-  <!-- Safeguard against importing this .targets file multiple times -->
-  <PropertyGroup>
-    <SonarQubeTargetsImported>true</SonarQubeTargetsImported>
-  </PropertyGroup>
-
-  <!-- Set defaults if explicit values have not been provided -->
-  <PropertyGroup Condition=" $(SonarQubeTempPath) != '' ">
-    <SonarQubeConfigPath Condition=" $(SonarQubeConfigPath) == '' ">$(SonarQubeTempPath)\conf</SonarQubeConfigPath>
-    <SonarQubeOutputPath Condition=" $(SonarQubeOutputPath) == '' ">$(SonarQubeTempPath)\out</SonarQubeOutputPath>
-
-    <!-- Specify the ItemGroups to be analyzed -->
-    <SQAnalysisFileItemTypes Condition=" $(SQAnalysisFileItemTypes) == '' ">AndroidEnvironment;AndroidJavaSource;AndroidResource;ApplicationDefinition;Build;ClCompile;ClInclude;Compile;Content;DeploymentExtensionConfiguration;EmbeddedResource;EntityDeploy;None;Page;PostDeploy;PRIResource;PreDeploy;RefactorLog;Resource;Script;ScriptCode;TypeScriptCompile;$(SQAdditionalAnalysisFileItemTypes)</SQAnalysisFileItemTypes>
-  </PropertyGroup>
-
-  <!-- **************************************************************************** -->
-  <!-- Using tasks -->
-  <!-- **************************************************************************** -->
-  <PropertyGroup Condition=" $(SonarQubeTempPath) != '' AND $(SonarQubeBuildTasksAssemblyFile) == '' ">
-    <!-- Assume that the tasks assembly is in the same location as this targets file
-         or in a parent directory unless another location has already been specified. -->
-    <SonarQubeBuildTasksAssemblyFile>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), SonarScanner.MSBuild.Tasks.dll))\SonarScanner.MSBuild.Tasks.dll</SonarQubeBuildTasksAssemblyFile>
-  </PropertyGroup>
-
-  <!-- Unescape the paths to work around the issue "MSBuild 4.0 UsingTask cannot have a path with parentheses".
-       See https://connect.microsoft.com/VisualStudio/feedback/details/713690/msbuild-4-0-usingtask-cannot-have-a-path-with-parentheses -->
-  <UsingTask TaskName="WriteProjectConfigFile" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="WriteProjectInfoFile" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="IsTestFileByName" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="IsTestByReference" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="GetAnalyzerSettings" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="MakeUniqueDir" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-  <UsingTask TaskName="WriteZeroLengthFiles" AssemblyFile="$([MSBUILD]::Unescape($(SonarQubeBuildTasksAssemblyFile)))" />
-
-  <!-- **************************************************************************** -->
-  <!-- **************************************************************************** -->
-  <!-- Targets -->
-  <!-- **************************************************************************** -->
-  <!-- **************************************************************************** -->
-
-  <Target Name="SkippingSonarQubeAnalysis" BeforeTargets="Build"
-          Condition=" $(SonarQubeTempPath) == '' ">
-    <Message Importance="high" Text="Sonar: ($(MSBuildProjectFile)) Skipping dumping compile outputs because SonarQubeTempPath has not been specified" />
-  </Target>
-
-  <Target Name="FailIfLowerThanMSBuild14"
-          Condition=" $(SonarQubeTempPath) != '' AND $(MSBuildToolsVersion) != '14.0' AND $(MSBuildToolsVersion) != '15.0' AND $(MSBuildToolsVersion) != 'Current'"
-          BeforeTargets="Build">
-    <Message Importance="high" Text="Sonar: ($(MSBuildProjectFile)) Current MSBuildToolsVersion: $(MSBuildToolsVersion)" />
-    <Message Importance="high" Text="Sonar: ($(MSBuildProjectFile)) Current MSBuildAssemblyVersion: $(MSBuildAssemblyVersion)" />
-    <Error Text="SonarQube analysis is only supported with MSBuild 14 or later." />
-  </Target>
-
-  <Target Name="SonarResolveReferencesMsBuild14"
-          AfterTargets="ResolveAssemblyReferences"
-          Condition=" $(SonarQubeTempPath) != '' AND $(MSBuildToolsVersion) == '14.0'">
-    <ItemGroup>
-      <SonarResolvedReferences Include="@(%(ReferencePath.FusionName))" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="SonarResolveReferences"
-          AfterTargets="FindReferenceAssembliesForReferences"
-          Condition=" $(SonarQubeTempPath) != '' AND $(MSBuildToolsVersion) != '14.0'">
-    <ItemGroup>
-      <SonarResolvedReferences Include="@(%(ReferencePathWithRefAssemblies.FusionName))" />
-    </ItemGroup>
-  </Target>
-
-  <!-- **************************************************************************** -->
-  <!-- Categorize as a product or test project -->
-  <!-- **************************************************************************** -->
-  <!-- This target is a utility target: it won't be executed unless a target that depends on it is executed. -->
-  <Target Name="SonarCategoriseProject"
-          DependsOnTargets="SonarResolveReferencesMsBuild14;SonarResolveReferences"
-          Condition=" $(SonarQubeTempPath) != '' ">
-
-    <Message Text="Sonar: ($(MSBuildProjectFile)) Categorizing project as test or product code..." />
-    <Message Condition="$(SonarQubeTestProject) != ''" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) SonarQubeTestProject has been set explicitly to $(SonarQubeTestProject)." />
-
-    <!-- Fakes detection -->
-    <PropertyGroup>
-      <IsFakesProject Condition="$(AssemblyName.EndsWith('.fakes', System.StringComparison.OrdinalIgnoreCase))">true</IsFakesProject>
-    </PropertyGroup>
-    <!-- Before deciding to exclude or tag as test such a project, make sure it is not a legitimate project that happens to be called something.fakes
-         In this case, we require from the user to explicitely state whether the project is to be analyzed/considered a test project -->
-    <PropertyGroup Condition="$(IsFakesProject) == 'true' and $(SonarQubeExclude) == ''">
-      <SonarQubeExclude>true</SonarQubeExclude>
-    </PropertyGroup>
-    <PropertyGroup Condition="$(IsFakesProject) == 'true' and $(SonarQubeTestProject) == ''">
-      <SonarQubeTestProject>true</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(IsFakesProject) == 'true' and $(SonarQubeExclude) == 'true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project is a temporary project generated by Microsoft Fakes and will be ignored." />
-
-    <!-- Temporary project detection -->
-    <!-- Some kinds of project have logic to trigger additional special builds based on the same project file
-         e.g. WPF projects build a temporary assembly before the main compilation takes place.
-         We only want to analyze the "normal" build of the project, so we should turn off analysis for the known cases. -->
-    <PropertyGroup>
-      <!-- Special case 1: WPF projects call the task Windows.GenerateTemporaryTargetAssembly in PresentationBuildTasks. -->
-      <IsTempProject Condition="$(MSBuildProjectFile.EndsWith('.tmp_proj', System.StringComparison.OrdinalIgnoreCase))">true</IsTempProject>
-      <IsTempProject Condition="$(MSBuildProjectFile.EndsWith('_wpftmp.csproj', System.StringComparison.OrdinalIgnoreCase))">true</IsTempProject>
-      <IsTempProject Condition="$(MSBuildProjectFile.EndsWith('_wpftmp.vbproj', System.StringComparison.OrdinalIgnoreCase))">true</IsTempProject>
-    </PropertyGroup>
-
-    <PropertyGroup Condition="$(IsTempProject) == 'true' AND $(SonarQubeExclude)==''" >
-      <SonarQubeExclude>true</SonarQubeExclude>
-    </PropertyGroup>
-    <Message Condition="$(IsTempProject) == 'true' AND $(SonarQubeExclude)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project is a temporary project and will be excluded." />
-
-    <PropertyGroup Condition=" $(SonarQubeTestProject) == '' ">
-      <!-- The MS Test project type guid -->
-      <SonarQubeMsTestProjectTypeGuid>3AC096D0-A1C2-E12C-1390-A8335801FDAB</SonarQubeMsTestProjectTypeGuid>
-      <tmpSonarHasMSTestProjectTypeGuid Condition=" $(ProjectTypeGuids.ToUpperInvariant().Contains('$(SonarQubeMsTestProjectTypeGuid)')) ">true</tmpSonarHasMSTestProjectTypeGuid>
-      <SonarQubeTestProject Condition=" $(tmpSonarHasMSTestProjectTypeGuid)=='true' ">true</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(tmpSonarHasMSTestProjectTypeGuid)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project has the MSTest project type guid -> test project." />
-
-    <PropertyGroup Condition=" $(SonarQubeTestProject) == '' ">
-      <!-- The legacy Service tag added by the Test Explorer window -->
-      <tmpSQServiceList>@(Service)</tmpSQServiceList>
-      <tmpSonarHasServiceTag Condition="$(tmpSQServiceList.ToUpperInvariant().Contains('{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}')) ">true</tmpSonarHasServiceTag>
-      <SonarQubeTestProject Condition="$(tmpSonarHasServiceTag)=='true'">true</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(tmpSonarHasServiceTag)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project has the legacy Test Explorer Service tag {82A7F48D-3B50-4B1E-B82E-3ADA8210C358} -> test project." />
-
-    <PropertyGroup Condition=" $(SonarQubeTestProject) == '' ">
-      <!-- The ProjectCapability for test projects -->
-      <tmpSQProjectCapabilities>@(ProjectCapability)</tmpSQProjectCapabilities>
-      <tmpSonarHasTestContainerCapability Condition="$(tmpSQProjectCapabilities.ToUpperInvariant().Contains('TESTCONTAINER')) ">true</tmpSonarHasTestContainerCapability>
-      <SonarQubeTestProject Condition="$(tmpSonarHasTestContainerCapability)=='true'">true</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(tmpSonarHasTestContainerCapability)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project has the ProjectCapability 'TestContainer' -> test project." />
-
-    <IsTestByReference Condition=" $(SonarQubeTestProject) == '' "
-        References="@(SonarResolvedReferences)">
-      <Output TaskParameter="TestReference" PropertyName="tmpSonarTestReferenceResult" />
-    </IsTestByReference>
-    <PropertyGroup Condition=" $(SonarQubeTestProject) == '' ">
-      <SonarQubeTestProject Condition="$(tmpSonarTestReferenceResult)!=''">true</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(tmpSonarTestReferenceResult)!=''" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project is evaluated as a test project based on the '$(tmpSonarTestReferenceResult)' reference." />
-
-    <!-- If we haven't already determined whether the project is a test project then check its path/name against the regular expression in the config file -->
-    <IsTestFileByName Condition=" $(SonarQubeTestProject) == '' "
-        AnalysisConfigDir="$(SonarQubeConfigPath)"
-        FullFilePath="$(MSBuildProjectFullPath)">
-      <Output TaskParameter="IsTest" PropertyName="tmpSonarIsTestFileByNameResult" />
-    </IsTestFileByName>
-
-    <PropertyGroup Condition=" $(SonarQubeTestProject) == '' ">
-      <SonarQubeTestProject>$(tmpSonarIsTestFileByNameResult)</SonarQubeTestProject>
-    </PropertyGroup>
-    <Message Condition="$(tmpSonarIsTestFileByNameResult)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) project is evaluated as a test project based on the project name." />
-
-    <Message Importance="normal" Condition="$(SonarQubeTestProject)=='false'" Text="Sonar: ($(MSBuildProjectFile)) categorized as MAIN project (production code)." />
-    <Message Importance="normal" Condition="$(SonarQubeTestProject)=='true'"  Text="Sonar: ($(MSBuildProjectFile)) categorized as TEST project (test code)." />
-  </Target>
-
-  <!-- **************************************************************************** -->
-  <!-- Calculate the set of files to be analyzed -->
-  <!-- **************************************************************************** -->
-  <!-- This target is a utility target: it won't be executed unless a target that
-       depends on it is executed.
-  -->
-  <Target Name="SonarWriteFilesToAnalyze"
-        Condition=" $(SonarQubeTempPath) != '' ">
-
-    <!-- Include all of contents of the specified item groups, but exclude
-         any that have the metadata 'SonarQubeExclude' set, or that are auto-generated -->
-    <ItemGroup Condition="('$(SQAnalysisFileItemTypes)' != '')">
-      <SonarQubeAnalysisFileItems Include="$(SQAnalysisFileItemTypes)" />
-      <SonarQubeAnalysisFiles Include="@(%(SonarQubeAnalysisFileItems.Identity))" />
-      <SonarQubeAnalysisFiles Remove="@(SonarQubeAnalysisFiles)" Condition=" %(SonarQubeAnalysisFiles.SonarQubeExclude) == 'true' OR %(SonarQubeAnalysisFiles.AutoGen) == 'true' OR %(SonarQubeAnalysisFiles.FullPath) == '$(TargetFrameworkMonikerAssemblyAttributesPath)'" />
-    </ItemGroup>
-
-    <!-- Exclude items under the intermediate output folder e.g. XAML files that are auto-generated on build -->
-    <PropertyGroup>
-      <!-- Calculate the full path to the base intermediate folder -->
-      <SQFullIntermediateOutputPath>$([System.IO.Path]::Combine($(MSBuildProjectDirectory),$(BaseIntermediateOutputPath)))</SQFullIntermediateOutputPath>
-    </PropertyGroup>
-    <ItemGroup>
-      <!-- Remove based on absolute path -->
-      <SQIntermediateFiles Include="$(SQFullIntermediateOutputPath)**\*.*" />
-      <!-- Remove based on relative path -->
-      <SQIntermediateFiles Include="$(BaseIntermediateOutputPath)**\*.*" />
-      <SonarQubeAnalysisFiles Remove="@(SQIntermediateFiles)" />
-    </ItemGroup>
-
-    <PropertyGroup>
-      <!-- Set a property indicating whether there are any files to analyze -->
-      <AnalysisFilesExist Condition=" @(SonarQubeAnalysisFiles) != '' ">true</AnalysisFilesExist>
-    </PropertyGroup>
-
-    <!-- Write the list of files  -->
-    <PropertyGroup>
-      <!-- Set the file name for the list file -->
-      <AnalysisFileList>$(ProjectSpecificConfDir)\FilesToAnalyze.txt</AnalysisFileList>
-    </PropertyGroup>
-
-    <Message Condition="$(AnalysisFilesExist)!='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) No files were found to analyse" />
-    <Message Condition="$(AnalysisFilesExist)=='true'" Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) Number of files to analyse: @(SonarQubeAnalysisFiles->Count()). The list of files to be analyzed is in $(AnalysisFileList)." />
-
-    <!-- Write out a list of files to analyze that will be passed to the sonar-scanner -->
-    <WriteLinesToFile Condition=" $(AnalysisFilesExist) == 'true' "
-            File="$(AnalysisFileList)"
-            Lines="%(SonarQubeAnalysisFiles.FullPath)"
-            Overwrite="false"
-            Encoding="utf-8" />
-  </Target>
-
-  <Target Name="SonarCreateProjectSpecificDirs" BeforeTargets="OverrideRoslynCodeAnalysisProperties;SonarWriteProjectData;SonarWriteFilesToAnalyze"  Condition=" $(SonarQubeTempPath) != '' ">
-    <!-- **************************************************************************** -->
-    <!-- Create the project-specific directories for conf and out -->
-
-    <!-- Create folder with unique name in the .sonarqube/out/ folder -->
-    <MakeUniqueDir Path="$(SonarQubeOutputPath)">
-      <Output TaskParameter="UniquePath" PropertyName="ProjectSpecificOutDir" />
-      <Output TaskParameter="UniqueName" PropertyName="UniqueName" />
-    </MakeUniqueDir>
-    <!-- Create .sonarqube/conf/ sub-folder with the same unique name -->
-    <PropertyGroup>
-      <ProjectSpecificConfDir>$(SonarQubeConfigPath)\$(UniqueName)</ProjectSpecificConfDir>
-    </PropertyGroup>
-    <MakeDir Directories="$(ProjectSpecificConfDir)" />
-  </Target>
-
-  <!-- SonarWriteProjectData has to be invoked after the Build target, so it can pick up the results for C++ projects.  -->
-  <Target Name="InvokeSonarWriteProjectData_NonRazorProject"
-          DependsOnTargets="SonarCategoriseProject;SonarWriteFilesToAnalyze;SonarCreateProjectSpecificDirs"
-          AfterTargets="Build"
-          Condition=" $(SonarQubeTempPath) != '' AND ('@(RazorCompile)'=='' OR ('@(RazorCompile)'!='' AND '$(UseRazorSourceGenerator)'=='true'))  ">
-    <CallTarget Targets="SonarWriteProjectData" />
-  </Target>
-
-  <Target Name="InvokeSonarWriteProjectData_RazorProject"
-          DependsOnTargets="SonarCategoriseProject;SonarWriteFilesToAnalyze;SonarCreateProjectSpecificDirs"
-          BeforeTargets="SonarPrepareRazorProjectCodeAnalysis"
-          AfterTargets="CoreCompile"
-          Condition=" $(SonarQubeTempPath) != '' AND '@(RazorCompile)'!='' AND ('$(UseRazorSourceGenerator)'=='' OR '$(UseRazorSourceGenerator)'=='false') ">
-    <CallTarget Targets="SonarWriteProjectData" />
-  </Target>
-
-  <Target Name="SonarWriteProjectData" >
-    <PropertyGroup>
-      <SonarErrorLogExists Condition=" $(SonarErrorLog) != '' AND  $([System.IO.File]::Exists($(SonarErrorLog))) == 'true' ">true</SonarErrorLogExists>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <SonarReportFilePath Condition= "$(SonarErrorLogExists) == 'true'" Include="$(SonarErrorLog)" />
-    </ItemGroup>
-
-    <ItemGroup>
-      <SonarQubeSetting Include="sonar.$(SQLanguage).roslyn.reportFilePaths" Condition=" @(SonarReportFilePath) != '' ">
-        <!-- Join the paths with |  -->
-        <!-- This delimiter needs to be the same as PropertiesFileGenerator.RoslynReportPathsDelimiter -->
-        <Value>@(SonarReportFilePath->'%(identity)','|')</Value>
-      </SonarQubeSetting>
-      <SonarQubeSetting Include="sonar.$(SQLanguage).analyzer.projectOutPaths" Condition= "$(SonarErrorLogExists) == 'true'">
-        <Value>$(ProjectSpecificOutDir)</Value>
-      </SonarQubeSetting>
-    </ItemGroup>
-
-    <!-- Record the list of files as an analysis result -->
-    <ItemGroup Condition=" $(AnalysisFilesExist) == 'true' ">
-      <AnalysisResults Include="$(AnalysisFileList)">
-        <Id>FilesToAnalyze</Id>
-      </AnalysisResults>
-    </ItemGroup>
-
-    <CallTarget Targets="FixUpTestProjectOutputs" />
-
-    <WriteProjectInfoFile ProjectName="$(MSBuildProjectName)"
-       FullProjectPath="$(MSBuildProjectFullPath)"
-       ProjectLanguage="$(Language)"
-       ProjectGuid="$(ProjectGuid)"
-       SolutionConfigurationContents="$(CurrentSolutionConfigurationContents)"
-       IsTest="$(SonarQubeTestProject)"
-       IsExcluded="$(SonarQubeExclude)"
-       AnalysisResults="@(AnalysisResults)"
-       AnalysisSettings="@(SonarQubeSetting)"
-       OutputFolder="$(ProjectSpecificOutDir)"
-       CodePage="$(CodePage)"
-       Configuration="$(Configuration)"
-       Platform="$(Platform)"
-       TargetFramework="$(TargetFramework)" />
-
-    <Message Importance="high" Text="Sonar: ($(MSBuildProjectFile)) Project processed successfully" />
-  </Target>
-
-  <!--
-    Set the Razor specific error log properties.
-    Move the results of the core compilation to a temporary folder to prevent RazorCoreCompilation from overriding its content.
-    The contents will be moved back in SonarFinishRazorProjectCodeAnalysis target.
-  -->
-  <Target Name="SonarPrepareRazorProjectCodeAnalysis" BeforeTargets="RazorCoreCompile" AfterTargets="CoreCompile" Condition="'@(RazorCompile)'!='' AND ('$(UseRazorSourceGenerator)'=='' OR '$(UseRazorSourceGenerator)'=='false')" >
-    <PropertyGroup Condition=" $(SonarErrorLog) != '' ">
-      <!-- https://github.com/SonarSource/sonar-scanner-msbuild/issues/1015 Respect user-provided value. When set, users should provide unique path for each build (project and target framework). -->
-      <RazorSonarErrorLogName Condition=" $(RazorCompilationErrorLog) == '' ">Issues$(RazorTargetNameSuffix).json</RazorSonarErrorLogName>
-      <RazorCompilationErrorLog Condition=" $(RazorSonarErrorLogName) != '' ">$(ProjectSpecificOutDir)\$(RazorSonarErrorLogName)</RazorCompilationErrorLog>
-      <ErrorLog>$(RazorCompilationErrorLog)</ErrorLog>
-      <!-- Keep the path so that we could set SonarQubeSetting with sonar.language.roslyn.reportFilePaths -->
-      <RazorSonarErrorLog>$(RazorCompilationErrorLog)</RazorSonarErrorLog>
-    </PropertyGroup>
-    <PropertyGroup>
-      <SonarTemporaryProjectSpecificOutDir>$(ProjectSpecificOutDir).tmp</SonarTemporaryProjectSpecificOutDir>
-    </PropertyGroup>
-    <ItemGroup>
-      <CoreCompileOutFiles Include="$(ProjectSpecificOutDir)\**\*.*"/>
-    </ItemGroup>
-    <Move
-      SourceFiles="@(CoreCompileOutFiles)"
-      DestinationFolder="$(SonarTemporaryProjectSpecificOutDir)\%(RecursiveDir)" />
-    <Message Importance="high" Text="Sonar: Preparing for Razor compilation, moved files (@(CoreCompileOutFiles)) to $(SonarTemporaryProjectSpecificOutDir)." />
-  </Target>
-
-  <!-- In case of Razor compilation the output files generated during the core compilation step are already moved into a temporary folder.
-       This target renames output directories to their final state and creates the ProjectInfo.xml for them.
-  -->
-  <Target Name="SonarFinishRazorProjectCodeAnalysis" AfterTargets="RazorCoreCompile;InvokeSonarWriteProjectData_RazorProject" Condition=" $(SonarTemporaryProjectSpecificOutDir) != '' AND '@(RazorCompile)'!='' AND ('$(UseRazorSourceGenerator)'=='' OR '$(UseRazorSourceGenerator)'=='false') ">
-    <PropertyGroup>
-      <RazorSonarProjectSpecificOutDir>$(ProjectSpecificOutDir).Razor</RazorSonarProjectSpecificOutDir>
-      <RazorSonarProjectInfo>$(RazorSonarProjectSpecificOutDir)\ProjectInfo.xml</RazorSonarProjectInfo>
-    </PropertyGroup>
-    <ItemGroup>
-      <RazorCompilationOutFiles Include="$(ProjectSpecificOutDir)\**\*.*"/>
-      <SonarTempFiles Include="$(SonarTemporaryProjectSpecificOutDir)\**\*.*"/>
-    </ItemGroup>
-
-    <!-- Move main and Razor results to their final location. -->
-    <Move
-      SourceFiles="@(RazorCompilationOutFiles)"
-      DestinationFolder="$(RazorSonarProjectSpecificOutDir)\%(RecursiveDir)" />
-    <Message Importance="high" Text="Sonar: After Razor compilation, moved files (@(RazorCompilationOutFiles)) to $(RazorSonarProjectSpecificOutDir)." />
-
-    <Move
-      SourceFiles="@(SonarTempFiles)"
-      DestinationFolder="$(ProjectSpecificOutDir)\%(RecursiveDir)" />
-    <Message Importance="high" Text="Sonar: After Razor compilation, moved files (@(SonarTempFiles)) to $(ProjectSpecificOutDir) and will remove the temporary folder." />
-    <RemoveDir Directories="$(SonarTemporaryProjectSpecificOutDir)" />
-
-    <PropertyGroup>
-      <!-- This overwrites the previously set 'RazorSonarErrorLog' in 'SonarPrepareRazorProjectCodeAnalysis'
-           if 'RazorSonarErrorLogName' is set, which means 'RazorCompilationErrorLog' was null.
-           The condition is a bit difficult to follow, it would be easier to change it or also add "$(RazorSonarErrorLog) != ''" -->
-      <RazorSonarErrorLog Condition=" $(RazorSonarErrorLogName) != '' ">$(RazorSonarProjectSpecificOutDir)\$(RazorSonarErrorLogName)</RazorSonarErrorLog>
-      <RazorSonarErrorLogExists Condition=" $(RazorSonarErrorLog) != '' AND  $([System.IO.File]::Exists($(RazorSonarErrorLog))) == 'true' ">true</RazorSonarErrorLogExists>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <RazorSonarReportFilePath Condition= "$(RazorSonarErrorLogExists) == 'true'" Include="$(RazorSonarErrorLog)" />
-      <RazorSonarQubeSetting Include="sonar.$(SQLanguage).roslyn.reportFilePaths" Condition=" @(RazorSonarReportFilePath) != '' ">
-        <!-- Join the paths with |  -->
-        <!-- This delimiter needs to be the same as PropertiesFileGenerator.RoslynReportPathsDelimiter -->
-        <Value>@(RazorSonarReportFilePath->'%(identity)','|')</Value>
-      </RazorSonarQubeSetting>
-      <RazorSonarQubeSetting Include="sonar.$(SQLanguage).analyzer.projectOutPaths" Condition= "$(RazorSonarErrorLogExists) == 'true'">
-        <Value>$(RazorSonarProjectSpecificOutDir)</Value>
-      </RazorSonarQubeSetting>
-    </ItemGroup>
-
-    <!-- Create the ProjectInfo.xml for the Razor part. -->
-    <WriteProjectInfoFile ProjectName="$(MSBuildProjectName)"
-                          FullProjectPath="$(MSBuildProjectFullPath)"
-                          ProjectLanguage="$(Language)"
-                          ProjectGuid="$(ProjectGuid)"
-                          SolutionConfigurationContents="$(CurrentSolutionConfigurationContents)"
-                          IsTest="$(SonarQubeTestProject)"
-                          IsExcluded="$(SonarQubeExclude)"
-                          AnalysisResults="@(AnalysisResults)"
-                          AnalysisSettings="@(RazorSonarQubeSetting)"
-                          OutputFolder="$(RazorSonarProjectSpecificOutDir)"
-                          CodePage="$(CodePage)"
-                          Configuration="$(Configuration)"
-                          Platform="$(Platform)"
-                          TargetFramework="$(TargetFramework)" />
-  </Target>
-
-  <Target Name="FixUpTestProjectOutputs" Condition="$(SonarQubeTestProject)=='true'" >
-    <Message Importance="low" Text="Sonar: ($(MSBuildProjectFile)) Fixing up test project outputs..." />
-
-    <ItemGroup>
-      <!-- Select specific metrics files that should not be uploaded for test files.
-           Assumption: these files will be in a sub-folder under the project-specific output folder. -->
-      <SQTestMetricFiles Include="$(ProjectSpecificOutDir)\*\metrics.pb" />
-      <SQTestMetricFiles Include="$(ProjectSpecificOutDir)\*\token-cpd.pb" />
-    </ItemGroup>
-
-    <Message Importance="low" Text="Sonar: ($(MSBuildProjectFile)) Selected test metric file: @(SQTestMetricFiles)" />
-    <WriteZeroLengthFiles FullFilePaths="@(SQTestMetricFiles)" />
-  </Target>
-
-  <!-- **************************************************************************** -->
-  <!-- Code analysis -->
-  <!-- **************************************************************************** -->
-  <!--  Implementation notes:
-
-        We want to override any code analysis-related properties that are set in the
-        project file. To do this, we need to execute our targets at the correct
-        point in the build.
-
-        Note that both the FxCop and Roslyn targets use a property called "CodeAnalysisRuleSet".
-        The FxCop targets use this value directly. However, the Roslyn targets use it
-        as input to the "ResolveCodeAnalysisRuleSet" target, which sets the property
-        "ResolvedCodeAnalysisRuleset".
-
-        We override the property "ResolveCodeAnalysisRuleSet" with the path to our Roslyn ruleset.
-  -->
-
-  <PropertyGroup>
-    <SQLanguage Condition="$(Language) == 'C#'">cs</SQLanguage>
-    <SQLanguage Condition="$(Language) == 'VB'">vbnet</SQLanguage>
-  </PropertyGroup>
-
-  <!-- **************************************************************************** -->
-  <!-- Roslyn analysis section -->
-  <!-- **************************************************************************** -->
-  <!-- Override VS2019 properties to make sure analysis runs in the scanner build.
-       We need to run before BeforeCompile that executes _ComputeSkipAnalyzers target.
-       We don't need to override this for excluded projects. -->
-  <Target Name="SonarOverrideRunAnalyzers"
-        Condition=" $(SonarQubeTempPath) != '' AND $(SonarQubeExclude) != 'true' "
-        BeforeTargets="BeforeCompile">
-
-    <PropertyGroup>
-      <RunAnalyzers>true</RunAnalyzers>
-      <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
-    </PropertyGroup>
-  </Target>
-
-  <!-- Set the properties required to run Roslyn analysis as part of the build.
-       Analysis is controlled by the following properties:
-         ResolvedCodeAnalysisRuleSet - the full path to the ruleset to use
-         ErrorLog and RazorCompilationErrorLog - the file path for the error reporting file
-
-       We want to run after the core "ResolveCodeAnalysisRuleSet" target which assigns a value to "ResolvedCodeAnalysisRuleSet".
-
-       Conditions:
-       * project is excluded -> turn off Roslyn analysis
-       * project is a test project and parameter sonar.dotnet.excludeTestProjects=true -> run only metrics rules
-       * otherwise, use the analyzer settings loaded from the config file (removing any existing analyzers)
-   -->
-  <Target Name="OverrideRoslynCodeAnalysisProperties"
-        Condition=" $(SonarQubeTempPath) != '' "
-        DependsOnTargets="SonarCategoriseProject;SonarWriteFilesToAnalyze"
-        AfterTargets="ResolveCodeAnalysisRuleSet"
-        BeforeTargets="CoreCompile">
-
-    <PropertyGroup>
-      <!-- Make sure no warnings are treated as errors -->
-      <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-      <WarningsAsErrors></WarningsAsErrors>
-
-      <!-- The Roslyn analyzers output messages with different warning levels. This is tied to the diagnostic severity and currently
-      is translated as follows - error: 0, warning: 1, info: 4. To avoid issues being missed override the warning level by setting it to max tolerance.-->
-      <WarningLevel>4</WarningLevel>
-    </PropertyGroup>
-
-    <CallTarget Targets="SetRoslynCodeAnalysisProperties" Condition="$(SonarQubeExclude) != 'true'" />
-  </Target>
-
-  <Target Name="SetRoslynCodeAnalysisProperties">
-
-    <!-- Fetch the relevant settings from the config file -->
-    <GetAnalyzerSettings AnalysisConfigDir="$(SonarQubeConfigPath)"
-                         Language="$(SQLanguage)"
-                         CurrentProjectDirectoryPath="$(MSBuildProjectDirectory)"
-                         OriginalAnalyzers="@(Analyzer)"
-                         OriginalAdditionalFiles="@(AdditionalFiles)"
-                         OriginalRulesetFilePath="$(ResolvedCodeAnalysisRuleset)"
-                         ProjectSpecificConfigDirectory="$(ProjectSpecificConfDir)"
-                         IsTestProject="$(SonarQubeTestProject)">
-      <Output TaskParameter="RuleSetFilePath" PropertyName="SQRuleSetFilePath" />
-      <Output TaskParameter="AnalyzerFilePaths" ItemName="SQAnalyzerFilePaths" />
-      <Output TaskParameter="AdditionalFilePaths" ItemName="SQAdditionalFiles" />
-    </GetAnalyzerSettings>
-
-    <PropertyGroup>
-      <!-- https://github.com/SonarSource/sonar-scanner-msbuild/issues/1015 Respect user-provided value. When set, users should provide unique path for each build (project and target framework). -->
-      <!-- https://jira.sonarsource.com/browse/SONARMSBRU-211 - the full path should be unique per project and target framework. -->
-      <ErrorLog Condition=" $(ErrorLog) == '' ">$(ProjectSpecificOutDir)\Issues.json</ErrorLog>
-      <!-- Keep the path so that we could set SonarQubeSetting with sonar.language.roslyn.reportFilePaths -->
-      <SonarErrorLog>$(ErrorLog)</SonarErrorLog>
-    </PropertyGroup>
-
-    <PropertyGroup>
-      <ResolvedCodeAnalysisRuleSet>$(SQRuleSetFilePath)</ResolvedCodeAnalysisRuleSet>
-      <SonarProjectOutFolderFilePath>$(ProjectSpecificConfDir)\ProjectOutFolderPath.txt</SonarProjectOutFolderFilePath>
-    </PropertyGroup>
-
-    <!--SonarProjectOutFolderFilePath is generated only for backward compatibility with CSharp and VBNet analyzers before 8.20 -->
-    <WriteLinesToFile File="$(SonarProjectOutFolderFilePath)" Lines="$(ProjectSpecificOutDir)" Overwrite="true" />
-
-    <WriteProjectConfigFile ConfigDir="$(ProjectSpecificConfDir)"
-                            AnalysisConfigPath="$(SonarQubeConfigPath)\SonarQubeAnalysisConfig.xml"
-                            ProjectPath="$(MSBuildProjectFullPath)"
-                            FilesToAnalyzePath ="$(AnalysisFileList)"
-                            OutPath="$(ProjectSpecificOutDir)"
-                            IsTest="$(SonarQubeTestProject)"
-                            TargetFramework="$(TargetFramework)">
-      <Output TaskParameter="ProjectConfigFilePath" PropertyName="SonarProjectConfigFilePath" />
-    </WriteProjectConfigFile>
-
-    <ItemGroup>
-      <!-- Clear the original set of analyzers and additional files -->
-      <Analyzer Remove="@(Analyzer)" />
-      <AdditionalFiles Remove="@(AdditionalFiles)" />
-
-      <!-- Use the set of analyzers and additional files calculated by the GetAnalyzerSettings task -->
-      <Analyzer Include="@(SQAnalyzerFilePaths)" />
-      <AdditionalFiles Include="@(SQAdditionalFiles)" />
-      <AdditionalFiles Include="$(SonarProjectConfigFilePath)" />
-      <AdditionalFiles Include="$(SonarProjectOutFolderFilePath)" />
-    </ItemGroup>
-
-    <Message Importance="normal" Text="Sonar: ($(MSBuildProjectFile)) Analysis configured successfully with $(SonarProjectConfigFilePath)." />
-  </Target>
-  <!-- **************************************************************************** -->
-  <!-- End of Roslyn analysis section-->
-  <!-- **************************************************************************** -->
-
-</Project>

+ 37 - 0
.sonarqube/conf/0/FilesToAnalyze.txt

@@ -0,0 +1,37 @@
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.cs
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMPro.cginc
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile Overlay.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_Bitmap.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMPro_Mobile.cginc
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF SSD.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Surface-Mobile.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Surface.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Sprites\EmojiOne Attribution.txt
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_Bitmap-Custom-Atlas.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile SSD.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Resources\LineBreaking Leading Characters.txt
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMPro_Properties.cginc
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMPro_Surface.cginc
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Resources\LineBreaking Following Characters.txt
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile Masking.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF Overlay.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_Bitmap-Mobile.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Fonts\LiberationSans - OFL.txt
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile.shader
+F:\Unity\Projects\RPG-Fight-Test\Assets\TextMesh Pro\Shaders\TMP_Sprite.shader

+ 1 - 0
.sonarqube/conf/0/ProjectOutFolderPath.txt

@@ -0,0 +1 @@
+F:\Unity\Projects\RPG-Fight-Test\.sonarqube\out\0

+ 8 - 0
.sonarqube/conf/0/SonarProjectConfig.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SonarProjectConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/analyzer/2021/1">
+  <AnalysisConfigPath>F:\Unity\Projects\RPG-Fight-Test\.sonarqube\conf\SonarQubeAnalysisConfig.xml</AnalysisConfigPath>
+  <ProjectPath>F:\Unity\Projects\RPG-Fight-Test\Assembly-CSharp.csproj</ProjectPath>
+  <FilesToAnalyzePath>F:\Unity\Projects\RPG-Fight-Test\.sonarqube\conf\0\FilesToAnalyze.txt</FilesToAnalyzePath>
+  <OutPath>F:\Unity\Projects\RPG-Fight-Test\.sonarqube\out\0</OutPath>
+  <ProjectType>Product</ProjectType>
+</SonarProjectConfig>

+ 124 - 124
.sonarqube/conf/Sonar-cs-none.ruleset

@@ -3,7 +3,10 @@
   <Rules AnalyzerId="SonarAnalyzer.CSharp" RuleNamespace="SonarAnalyzer.CSharp">
     <Rule Id="S1134" Action="None" />
     <Rule Id="S1135" Action="None" />
+    <Rule Id="S1144" Action="None" />
     <Rule Id="S1147" Action="None" />
+    <Rule Id="S1264" Action="None" />
+    <Rule Id="S2114" Action="None" />
     <Rule Id="S2115" Action="None" />
     <Rule Id="S2221" Action="None" />
     <Rule Id="S2222" Action="None" />
@@ -19,34 +22,22 @@
     <Rule Id="S2479" Action="None" />
     <Rule Id="S2583" Action="None" />
     <Rule Id="S2589" Action="None" />
+    <Rule Id="S3329" Action="None" />
     <Rule Id="S3431" Action="None" />
     <Rule Id="S3433" Action="None" />
-    <Rule Id="S3447" Action="None" />
-    <Rule Id="S4524" Action="None" />
-    <Rule Id="S1110" Action="None" />
-    <Rule Id="S1144" Action="None" />
-    <Rule Id="S1264" Action="None" />
-    <Rule Id="S2114" Action="None" />
-    <Rule Id="S2201" Action="None" />
-    <Rule Id="S2325" Action="None" />
-    <Rule Id="S2328" Action="None" />
-    <Rule Id="S2681" Action="None" />
-    <Rule Id="S2688" Action="None" />
-    <Rule Id="S3329" Action="None" />
     <Rule Id="S3440" Action="None" />
     <Rule Id="S3441" Action="None" />
     <Rule Id="S3442" Action="None" />
     <Rule Id="S3443" Action="None" />
     <Rule Id="S3444" Action="None" />
     <Rule Id="S3445" Action="None" />
+    <Rule Id="S3447" Action="None" />
     <Rule Id="S3449" Action="None" />
-    <Rule Id="S3532" Action="None" />
     <Rule Id="S3655" Action="None" />
-    <Rule Id="S3776" Action="None" />
-    <Rule Id="S3897" Action="None" />
-    <Rule Id="S3898" Action="None" />
-    <Rule Id="S4502" Action="None" />
+    <Rule Id="S4524" Action="None" />
     <Rule Id="S881" Action="None" />
+    <Rule Id="S1006" Action="None" />
+    <Rule Id="S1110" Action="None" />
     <Rule Id="S1116" Action="None" />
     <Rule Id="S1117" Action="None" />
     <Rule Id="S1118" Action="None" />
@@ -56,91 +47,100 @@
     <Rule Id="S1128" Action="None" />
     <Rule Id="S1244" Action="None" />
     <Rule Id="S1479" Action="None" />
+    <Rule Id="S1481" Action="None" />
+    <Rule Id="S2148" Action="None" />
+    <Rule Id="S2201" Action="None" />
     <Rule Id="S2219" Action="None" />
+    <Rule Id="S2325" Action="None" />
     <Rule Id="S2326" Action="None" />
     <Rule Id="S2327" Action="None" />
+    <Rule Id="S2328" Action="None" />
     <Rule Id="S2330" Action="None" />
     <Rule Id="S2333" Action="None" />
     <Rule Id="S2339" Action="None" />
+    <Rule Id="S2681" Action="None" />
+    <Rule Id="S2688" Action="None" />
     <Rule Id="S2692" Action="None" />
     <Rule Id="S2696" Action="None" />
     <Rule Id="S2699" Action="None" />
-    <Rule Id="S3415" Action="None" />
-    <Rule Id="S4507" Action="None" />
-    <Rule Id="S4635" Action="None" />
-    <Rule Id="S1006" Action="None" />
-    <Rule Id="S1172" Action="None" />
-    <Rule Id="S1481" Action="None" />
-    <Rule Id="S2148" Action="None" />
-    <Rule Id="S2386" Action="None" />
-    <Rule Id="S2387" Action="None" />
-    <Rule Id="S3234" Action="None" />
     <Rule Id="S3235" Action="None" />
-    <Rule Id="S3236" Action="None" />
     <Rule Id="S3237" Action="None" />
-    <Rule Id="S3353" Action="None" />
     <Rule Id="S3358" Action="None" />
+    <Rule Id="S3415" Action="None" />
     <Rule Id="S3427" Action="None" />
-    <Rule Id="S3597" Action="None" />
+    <Rule Id="S3532" Action="None" />
     <Rule Id="S3598" Action="None" />
-    <Rule Id="S4200" Action="None" />
-    <Rule Id="S4201" Action="None" />
-    <Rule Id="S4214" Action="None" />
-    <Rule Id="S4457" Action="None" />
-    <Rule Id="S4564" Action="None" />
-    <Rule Id="S5659" Action="None" />
-    <Rule Id="S5773" Action="None" />
+    <Rule Id="S3776" Action="None" />
+    <Rule Id="S3897" Action="None" />
+    <Rule Id="S3898" Action="None" />
+    <Rule Id="S4502" Action="None" />
+    <Rule Id="S4507" Action="None" />
+    <Rule Id="S4635" Action="None" />
     <Rule Id="S1066" Action="None" />
     <Rule Id="S1067" Action="None" />
+    <Rule Id="S1172" Action="None" />
     <Rule Id="S1185" Action="None" />
     <Rule Id="S1186" Action="None" />
     <Rule Id="S2156" Action="None" />
     <Rule Id="S2275" Action="None" />
+    <Rule Id="S2368" Action="None" />
+    <Rule Id="S2386" Action="None" />
+    <Rule Id="S2387" Action="None" />
     <Rule Id="S3005" Action="None" />
+    <Rule Id="S3215" Action="None" />
+    <Rule Id="S3234" Action="None" />
+    <Rule Id="S3236" Action="None" />
     <Rule Id="S3240" Action="None" />
+    <Rule Id="S3241" Action="None" />
     <Rule Id="S3242" Action="None" />
     <Rule Id="S3244" Action="None" />
     <Rule Id="S3246" Action="None" />
     <Rule Id="S3247" Action="None" />
     <Rule Id="S3249" Action="None" />
+    <Rule Id="S3353" Action="None" />
     <Rule Id="S3366" Action="None" />
+    <Rule Id="S3457" Action="None" />
+    <Rule Id="S3597" Action="None" />
+    <Rule Id="S4200" Action="None" />
+    <Rule Id="S4201" Action="None" />
     <Rule Id="S4210" Action="None" />
     <Rule Id="S4211" Action="None" />
     <Rule Id="S4212" Action="None" />
+    <Rule Id="S4214" Action="None" />
     <Rule Id="S4456" Action="None" />
+    <Rule Id="S4457" Action="None" />
+    <Rule Id="S4564" Action="None" />
+    <Rule Id="S4787" Action="None" />
     <Rule Id="S5542" Action="None" />
     <Rule Id="S5547" Action="None" />
+    <Rule Id="S5659" Action="None" />
+    <Rule Id="S5773" Action="None" />
+    <Rule Id="S1048" Action="None" />
+    <Rule Id="S1151" Action="None" />
     <Rule Id="S1155" Action="None" />
+    <Rule Id="S1168" Action="None" />
     <Rule Id="S2123" Action="None" />
     <Rule Id="S2245" Action="None" />
+    <Rule Id="S2259" Action="None" />
+    <Rule Id="S2360" Action="None" />
     <Rule Id="S2365" Action="None" />
-    <Rule Id="S2368" Action="None" />
     <Rule Id="S2486" Action="None" />
-    <Rule Id="S3215" Action="None" />
     <Rule Id="S3216" Action="None" />
-    <Rule Id="S3241" Action="None" />
+    <Rule Id="S3217" Action="None" />
+    <Rule Id="S3218" Action="None" />
     <Rule Id="S3330" Action="None" />
+    <Rule Id="S3450" Action="None" />
     <Rule Id="S3451" Action="None" />
     <Rule Id="S3453" Action="None" />
     <Rule Id="S3456" Action="None" />
-    <Rule Id="S3457" Action="None" />
     <Rule Id="S3458" Action="None" />
+    <Rule Id="S3459" Action="None" />
+    <Rule Id="S3466" Action="None" />
     <Rule Id="S4423" Action="None" />
     <Rule Id="S4426" Action="None" />
+    <Rule Id="S4428" Action="None" />
     <Rule Id="S4784" Action="None" />
-    <Rule Id="S4787" Action="None" />
     <Rule Id="S5753" Action="None" />
-    <Rule Id="S1048" Action="None" />
-    <Rule Id="S1151" Action="None" />
-    <Rule Id="S1168" Action="None" />
-    <Rule Id="S2259" Action="None" />
-    <Rule Id="S2360" Action="None" />
-    <Rule Id="S3217" Action="None" />
-    <Rule Id="S3218" Action="None" />
-    <Rule Id="S3450" Action="None" />
-    <Rule Id="S3459" Action="None" />
-    <Rule Id="S3466" Action="None" />
-    <Rule Id="S4428" Action="None" />
     <Rule Id="S5766" Action="None" />
     <Rule Id="S927" Action="None" />
     <Rule Id="S2257" Action="None" />
@@ -158,6 +158,7 @@
     <Rule Id="S2372" Action="None" />
     <Rule Id="S2376" Action="None" />
     <Rule Id="S2743" Action="None" />
+    <Rule Id="S2757" Action="None" />
     <Rule Id="S2995" Action="None" />
     <Rule Id="S2996" Action="None" />
     <Rule Id="S3220" Action="None" />
@@ -170,9 +171,11 @@
     <Rule Id="S4433" Action="None" />
     <Rule Id="S4790" Action="None" />
     <Rule Id="S4792" Action="None" />
+    <Rule Id="S4818" Action="None" />
     <Rule Id="S818" Action="None" />
     <Rule Id="S907" Action="None" />
     <Rule Id="S1643" Action="None" />
+    <Rule Id="S1696" Action="None" />
     <Rule Id="S1698" Action="None" />
     <Rule Id="S1751" Action="None" />
     <Rule Id="S1764" Action="None" />
@@ -182,12 +185,12 @@
     <Rule Id="S2612" Action="None" />
     <Rule Id="S2737" Action="None" />
     <Rule Id="S2755" Action="None" />
-    <Rule Id="S2757" Action="None" />
     <Rule Id="S2857" Action="None" />
     <Rule Id="S2971" Action="None" />
     <Rule Id="S2997" Action="None" />
     <Rule Id="S3603" Action="None" />
     <Rule Id="S3604" Action="None" />
+    <Rule Id="S3874" Action="None" />
     <Rule Id="S3875" Action="None" />
     <Rule Id="S3876" Action="None" />
     <Rule Id="S3937" Action="None" />
@@ -195,71 +198,80 @@
     <Rule Id="S3966" Action="None" />
     <Rule Id="S3967" Action="None" />
     <Rule Id="S3994" Action="None" />
+    <Rule Id="S3995" Action="None" />
     <Rule Id="S3996" Action="None" />
     <Rule Id="S3997" Action="None" />
-    <Rule Id="S4818" Action="None" />
     <Rule Id="S1104" Action="None" />
+    <Rule Id="S1109" Action="None" />
     <Rule Id="S1210" Action="None" />
     <Rule Id="S1215" Action="None" />
+    <Rule Id="S1227" Action="None" />
     <Rule Id="S1450" Action="None" />
     <Rule Id="S1451" Action="None" />
     <Rule Id="S1694" Action="None" />
-    <Rule Id="S1696" Action="None" />
     <Rule Id="S1699" Action="None" />
     <Rule Id="S2306" Action="None" />
+    <Rule Id="S2436" Action="None" />
     <Rule Id="S2551" Action="None" />
     <Rule Id="S2674" Action="None" />
     <Rule Id="S3400" Action="None" />
     <Rule Id="S3871" Action="None" />
     <Rule Id="S3872" Action="None" />
-    <Rule Id="S3874" Action="None" />
     <Rule Id="S3877" Action="None" />
     <Rule Id="S3880" Action="None" />
+    <Rule Id="S3881" Action="None" />
     <Rule Id="S3884" Action="None" />
     <Rule Id="S3885" Action="None" />
     <Rule Id="S3887" Action="None" />
+    <Rule Id="S3889" Action="None" />
     <Rule Id="S3990" Action="None" />
     <Rule Id="S3992" Action="None" />
     <Rule Id="S3993" Action="None" />
-    <Rule Id="S3995" Action="None" />
     <Rule Id="S3998" Action="None" />
-    <Rule Id="S1109" Action="None" />
     <Rule Id="S1200" Action="None" />
     <Rule Id="S1206" Action="None" />
     <Rule Id="S1226" Action="None" />
-    <Rule Id="S1227" Action="None" />
     <Rule Id="S1313" Action="None" />
     <Rule Id="S1449" Action="None" />
+    <Rule Id="S1821" Action="None" />
+    <Rule Id="S1905" Action="None" />
+    <Rule Id="S1939" Action="None" />
     <Rule Id="S1940" Action="None" />
-    <Rule Id="S2436" Action="None" />
+    <Rule Id="S1944" Action="None" />
     <Rule Id="S2437" Action="None" />
     <Rule Id="S2760" Action="None" />
     <Rule Id="S2761" Action="None" />
     <Rule Id="S3610" Action="None" />
     <Rule Id="S3626" Action="None" />
     <Rule Id="S3869" Action="None" />
-    <Rule Id="S3881" Action="None" />
-    <Rule Id="S3889" Action="None" />
     <Rule Id="S3971" Action="None" />
     <Rule Id="S3972" Action="None" />
     <Rule Id="S3973" Action="None" />
     <Rule Id="S3981" Action="None" />
     <Rule Id="S3984" Action="None" />
+    <Rule Id="S4069" Action="None" />
     <Rule Id="S4823" Action="None" />
     <Rule Id="S4829" Action="None" />
     <Rule Id="S4830" Action="None" />
     <Rule Id="S4834" Action="None" />
-    <Rule Id="S1821" Action="None" />
+    <Rule Id="S5034" Action="None" />
+    <Rule Id="S125" Action="None" />
+    <Rule Id="S126" Action="None" />
+    <Rule Id="S127" Action="None" />
+    <Rule Id="S131" Action="None" />
+    <Rule Id="S134" Action="None" />
+    <Rule Id="S1607" Action="None" />
+    <Rule Id="S1848" Action="None" />
     <Rule Id="S1854" Action="None" />
     <Rule Id="S1858" Action="None" />
     <Rule Id="S1862" Action="None" />
-    <Rule Id="S1905" Action="None" />
-    <Rule Id="S1939" Action="None" />
-    <Rule Id="S1944" Action="None" />
     <Rule Id="S2701" Action="None" />
+    <Rule Id="S2930" Action="None" />
     <Rule Id="S2952" Action="None" />
     <Rule Id="S2953" Action="None" />
     <Rule Id="S2955" Action="None" />
+    <Rule Id="S3903" Action="None" />
+    <Rule Id="S3906" Action="None" />
     <Rule Id="S3908" Action="None" />
     <Rule Id="S3909" Action="None" />
     <Rule Id="S3923" Action="None" />
@@ -269,109 +281,87 @@
     <Rule Id="S3928" Action="None" />
     <Rule Id="S4060" Action="None" />
     <Rule Id="S4061" Action="None" />
-    <Rule Id="S4069" Action="None" />
     <Rule Id="S4070" Action="None" />
-    <Rule Id="S5034" Action="None" />
     <Rule Id="S5042" Action="None" />
+    <Rule Id="S103" Action="None" />
+    <Rule Id="S104" Action="None" />
+    <Rule Id="S105" Action="None" />
+    <Rule Id="S106" Action="None" />
+    <Rule Id="S107" Action="None" />
+    <Rule Id="S108" Action="None" />
+    <Rule Id="S109" Action="None" />
     <Rule Id="S110" Action="None" />
     <Rule Id="S112" Action="None" />
-    <Rule Id="S125" Action="None" />
-    <Rule Id="S126" Action="None" />
-    <Rule Id="S127" Action="None" />
-    <Rule Id="S131" Action="None" />
-    <Rule Id="S134" Action="None" />
     <Rule Id="S138" Action="None" />
-    <Rule Id="S1607" Action="None" />
-    <Rule Id="S1848" Action="None" />
     <Rule Id="S2068" Action="None" />
+    <Rule Id="S2183" Action="None" />
+    <Rule Id="S2184" Action="None" />
     <Rule Id="S2187" Action="None" />
-    <Rule Id="S2930" Action="None" />
     <Rule Id="S2931" Action="None" />
     <Rule Id="S2933" Action="None" />
     <Rule Id="S2934" Action="None" />
+    <Rule Id="S3397" Action="None" />
     <Rule Id="S3900" Action="None" />
     <Rule Id="S3902" Action="None" />
-    <Rule Id="S3903" Action="None" />
     <Rule Id="S3904" Action="None" />
-    <Rule Id="S3906" Action="None" />
+    <Rule Id="S4000" Action="None" />
+    <Rule Id="S4002" Action="None" />
     <Rule Id="S4004" Action="None" />
     <Rule Id="S4005" Action="None" />
     <Rule Id="S4487" Action="None" />
     <Rule Id="S5332" Action="None" />
-    <Rule Id="S103" Action="None" />
-    <Rule Id="S104" Action="None" />
-    <Rule Id="S105" Action="None" />
-    <Rule Id="S106" Action="None" />
-    <Rule Id="S107" Action="None" />
-    <Rule Id="S108" Action="None" />
-    <Rule Id="S109" Action="None" />
+    <Rule Id="S5693" Action="None" />
+    <Rule Id="S1075" Action="None" />
+    <Rule Id="S113" Action="None" />
+    <Rule Id="S1199" Action="None" />
     <Rule Id="S121" Action="None" />
     <Rule Id="S122" Action="None" />
     <Rule Id="S2077" Action="None" />
-    <Rule Id="S2183" Action="None" />
-    <Rule Id="S2184" Action="None" />
+    <Rule Id="S2190" Action="None" />
     <Rule Id="S2197" Action="None" />
+    <Rule Id="S3011" Action="None" />
     <Rule Id="S3168" Action="None" />
     <Rule Id="S3169" Action="None" />
-    <Rule Id="S3397" Action="None" />
-    <Rule Id="S4000" Action="None" />
-    <Rule Id="S4002" Action="None" />
+    <Rule Id="S3253" Action="None" />
+    <Rule Id="S3254" Action="None" />
+    <Rule Id="S3256" Action="None" />
+    <Rule Id="S3257" Action="None" />
+    <Rule Id="S3376" Action="None" />
     <Rule Id="S4015" Action="None" />
     <Rule Id="S4016" Action="None" />
     <Rule Id="S4017" Action="None" />
     <Rule Id="S4018" Action="None" />
     <Rule Id="S4019" Action="None" />
     <Rule Id="S4136" Action="None" />
-    <Rule Id="S5693" Action="None" />
-    <Rule Id="S1075" Action="None" />
-    <Rule Id="S113" Action="None" />
-    <Rule Id="S1192" Action="None" />
-    <Rule Id="S1199" Action="None" />
-    <Rule Id="S2178" Action="None" />
-    <Rule Id="S2190" Action="None" />
-    <Rule Id="S3010" Action="None" />
-    <Rule Id="S3011" Action="None" />
-    <Rule Id="S3251" Action="None" />
-    <Rule Id="S3253" Action="None" />
-    <Rule Id="S3254" Action="None" />
-    <Rule Id="S3256" Action="None" />
-    <Rule Id="S3257" Action="None" />
-    <Rule Id="S3267" Action="None" />
-    <Rule Id="S3376" Action="None" />
-    <Rule Id="S4220" Action="None" />
     <Rule Id="S4225" Action="None" />
     <Rule Id="S4226" Action="None" />
-    <Rule Id="S4462" Action="None" />
-    <Rule Id="S4581" Action="None" />
-    <Rule Id="S4583" Action="None" />
-    <Rule Id="S4586" Action="None" />
-    <Rule Id="S5443" Action="None" />
     <Rule Id="S100" Action="None" />
     <Rule Id="S101" Action="None" />
+    <Rule Id="S1192" Action="None" />
     <Rule Id="S2053" Action="None" />
+    <Rule Id="S2178" Action="None" />
     <Rule Id="S2290" Action="None" />
     <Rule Id="S2291" Action="None" />
     <Rule Id="S2292" Action="None" />
+    <Rule Id="S3010" Action="None" />
+    <Rule Id="S3251" Action="None" />
     <Rule Id="S3260" Action="None" />
     <Rule Id="S3261" Action="None" />
     <Rule Id="S3262" Action="None" />
     <Rule Id="S3263" Action="None" />
     <Rule Id="S3264" Action="None" />
     <Rule Id="S3265" Action="None" />
-    <Rule Id="S4040" Action="None" />
+    <Rule Id="S3267" Action="None" />
     <Rule Id="S4041" Action="None" />
     <Rule Id="S4047" Action="None" />
     <Rule Id="S4049" Action="None" />
-    <Rule Id="S4050" Action="None" />
-    <Rule Id="S4052" Action="None" />
-    <Rule Id="S4055" Action="None" />
-    <Rule Id="S4056" Action="None" />
-    <Rule Id="S4057" Action="None" />
-    <Rule Id="S4058" Action="None" />
-    <Rule Id="S4059" Action="None" />
+    <Rule Id="S4220" Action="None" />
+    <Rule Id="S4462" Action="None" />
+    <Rule Id="S4581" Action="None" />
+    <Rule Id="S4583" Action="None" />
+    <Rule Id="S4586" Action="None" />
+    <Rule Id="S5443" Action="None" />
     <Rule Id="S5445" Action="None" />
-    <Rule Id="S6354" Action="None" />
-    <Rule Id="S2092" Action="None" />
     <Rule Id="S3052" Action="None" />
     <Rule Id="S3059" Action="None" />
     <Rule Id="S3172" Action="None" />
@@ -383,6 +373,14 @@
     <Rule Id="S4035" Action="None" />
     <Rule Id="S4036" Action="None" />
     <Rule Id="S4039" Action="None" />
+    <Rule Id="S4040" Action="None" />
+    <Rule Id="S4050" Action="None" />
+    <Rule Id="S4052" Action="None" />
+    <Rule Id="S4055" Action="None" />
+    <Rule Id="S4056" Action="None" />
+    <Rule Id="S4057" Action="None" />
+    <Rule Id="S4058" Action="None" />
+    <Rule Id="S4059" Action="None" />
     <Rule Id="S4143" Action="None" />
     <Rule Id="S4144" Action="None" />
     <Rule Id="S4158" Action="None" />
@@ -391,7 +389,9 @@
     <Rule Id="S4261" Action="None" />
     <Rule Id="S4275" Action="None" />
     <Rule Id="S4277" Action="None" />
-    <Rule Id="S5122" Action="None" />
+    <Rule Id="S6354" Action="None" />
+    <Rule Id="S2092" Action="None" />
     <Rule Id="S3060" Action="None" />
+    <Rule Id="S5122" Action="None" />
   </Rules>
 </RuleSet>

+ 124 - 124
.sonarqube/conf/Sonar-cs.ruleset

@@ -3,7 +3,10 @@
   <Rules AnalyzerId="SonarAnalyzer.CSharp" RuleNamespace="SonarAnalyzer.CSharp">
     <Rule Id="S1134" Action="Warning" />
     <Rule Id="S1135" Action="Warning" />
+    <Rule Id="S1144" Action="Warning" />
     <Rule Id="S1147" Action="None" />
+    <Rule Id="S1264" Action="Warning" />
+    <Rule Id="S2114" Action="Warning" />
     <Rule Id="S2115" Action="Warning" />
     <Rule Id="S2221" Action="None" />
     <Rule Id="S2222" Action="None" />
@@ -19,34 +22,22 @@
     <Rule Id="S2479" Action="Warning" />
     <Rule Id="S2583" Action="Warning" />
     <Rule Id="S2589" Action="Warning" />
+    <Rule Id="S3329" Action="Warning" />
     <Rule Id="S3431" Action="None" />
     <Rule Id="S3433" Action="Warning" />
-    <Rule Id="S3447" Action="Warning" />
-    <Rule Id="S4524" Action="Warning" />
-    <Rule Id="S1110" Action="Warning" />
-    <Rule Id="S1144" Action="Warning" />
-    <Rule Id="S1264" Action="Warning" />
-    <Rule Id="S2114" Action="Warning" />
-    <Rule Id="S2201" Action="Warning" />
-    <Rule Id="S2325" Action="None" />
-    <Rule Id="S2328" Action="Warning" />
-    <Rule Id="S2681" Action="Warning" />
-    <Rule Id="S2688" Action="Warning" />
-    <Rule Id="S3329" Action="Warning" />
     <Rule Id="S3440" Action="Warning" />
     <Rule Id="S3441" Action="None" />
     <Rule Id="S3442" Action="Warning" />
     <Rule Id="S3443" Action="Warning" />
     <Rule Id="S3444" Action="Warning" />
     <Rule Id="S3445" Action="Warning" />
+    <Rule Id="S3447" Action="Warning" />
     <Rule Id="S3449" Action="Warning" />
-    <Rule Id="S3532" Action="None" />
     <Rule Id="S3655" Action="Warning" />
-    <Rule Id="S3776" Action="Warning" />
-    <Rule Id="S3897" Action="Warning" />
-    <Rule Id="S3898" Action="None" />
-    <Rule Id="S4502" Action="Warning" />
+    <Rule Id="S4524" Action="Warning" />
     <Rule Id="S881" Action="None" />
+    <Rule Id="S1006" Action="Warning" />
+    <Rule Id="S1110" Action="Warning" />
     <Rule Id="S1116" Action="Warning" />
     <Rule Id="S1117" Action="Warning" />
     <Rule Id="S1118" Action="Warning" />
@@ -56,91 +47,100 @@
     <Rule Id="S1128" Action="None" />
     <Rule Id="S1244" Action="None" />
     <Rule Id="S1479" Action="Warning" />
+    <Rule Id="S1481" Action="Warning" />
+    <Rule Id="S2148" Action="None" />
+    <Rule Id="S2201" Action="Warning" />
     <Rule Id="S2219" Action="Warning" />
+    <Rule Id="S2325" Action="None" />
     <Rule Id="S2326" Action="Warning" />
     <Rule Id="S2327" Action="None" />
+    <Rule Id="S2328" Action="Warning" />
     <Rule Id="S2330" Action="None" />
     <Rule Id="S2333" Action="None" />
     <Rule Id="S2339" Action="None" />
+    <Rule Id="S2681" Action="Warning" />
+    <Rule Id="S2688" Action="Warning" />
     <Rule Id="S2692" Action="Warning" />
     <Rule Id="S2696" Action="Warning" />
     <Rule Id="S2699" Action="Warning" />
-    <Rule Id="S3415" Action="Warning" />
-    <Rule Id="S4507" Action="Warning" />
-    <Rule Id="S4635" Action="Warning" />
-    <Rule Id="S1006" Action="Warning" />
-    <Rule Id="S1172" Action="Warning" />
-    <Rule Id="S1481" Action="Warning" />
-    <Rule Id="S2148" Action="None" />
-    <Rule Id="S2386" Action="Warning" />
-    <Rule Id="S2387" Action="None" />
-    <Rule Id="S3234" Action="None" />
     <Rule Id="S3235" Action="None" />
-    <Rule Id="S3236" Action="Warning" />
     <Rule Id="S3237" Action="Warning" />
-    <Rule Id="S3353" Action="None" />
     <Rule Id="S3358" Action="Warning" />
+    <Rule Id="S3415" Action="Warning" />
     <Rule Id="S3427" Action="Warning" />
-    <Rule Id="S3597" Action="Warning" />
+    <Rule Id="S3532" Action="None" />
     <Rule Id="S3598" Action="Warning" />
-    <Rule Id="S4200" Action="Warning" />
-    <Rule Id="S4201" Action="Warning" />
-    <Rule Id="S4214" Action="Warning" />
-    <Rule Id="S4457" Action="Warning" />
-    <Rule Id="S4564" Action="None" />
-    <Rule Id="S5659" Action="Warning" />
-    <Rule Id="S5773" Action="Warning" />
+    <Rule Id="S3776" Action="Warning" />
+    <Rule Id="S3897" Action="Warning" />
+    <Rule Id="S3898" Action="None" />
+    <Rule Id="S4502" Action="Warning" />
+    <Rule Id="S4507" Action="Warning" />
+    <Rule Id="S4635" Action="Warning" />
     <Rule Id="S1066" Action="Warning" />
     <Rule Id="S1067" Action="None" />
+    <Rule Id="S1172" Action="Warning" />
     <Rule Id="S1185" Action="Warning" />
     <Rule Id="S1186" Action="Warning" />
     <Rule Id="S2156" Action="None" />
     <Rule Id="S2275" Action="Warning" />
+    <Rule Id="S2368" Action="Warning" />
+    <Rule Id="S2386" Action="Warning" />
+    <Rule Id="S2387" Action="None" />
     <Rule Id="S3005" Action="Warning" />
+    <Rule Id="S3215" Action="None" />
+    <Rule Id="S3234" Action="None" />
+    <Rule Id="S3236" Action="Warning" />
     <Rule Id="S3240" Action="None" />
+    <Rule Id="S3241" Action="Warning" />
     <Rule Id="S3242" Action="None" />
     <Rule Id="S3244" Action="Warning" />
     <Rule Id="S3246" Action="Warning" />
     <Rule Id="S3247" Action="Warning" />
     <Rule Id="S3249" Action="Warning" />
+    <Rule Id="S3353" Action="None" />
     <Rule Id="S3366" Action="None" />
+    <Rule Id="S3457" Action="Warning" />
+    <Rule Id="S3597" Action="Warning" />
+    <Rule Id="S4200" Action="Warning" />
+    <Rule Id="S4201" Action="Warning" />
     <Rule Id="S4210" Action="Warning" />
     <Rule Id="S4211" Action="Warning" />
     <Rule Id="S4212" Action="None" />
+    <Rule Id="S4214" Action="Warning" />
     <Rule Id="S4456" Action="Warning" />
+    <Rule Id="S4457" Action="Warning" />
+    <Rule Id="S4564" Action="None" />
+    <Rule Id="S4787" Action="None" />
     <Rule Id="S5542" Action="Warning" />
     <Rule Id="S5547" Action="Warning" />
+    <Rule Id="S5659" Action="Warning" />
+    <Rule Id="S5773" Action="Warning" />
+    <Rule Id="S1048" Action="Warning" />
+    <Rule Id="S1151" Action="None" />
     <Rule Id="S1155" Action="Warning" />
+    <Rule Id="S1168" Action="Warning" />
     <Rule Id="S2123" Action="Warning" />
     <Rule Id="S2245" Action="Warning" />
+    <Rule Id="S2259" Action="Warning" />
+    <Rule Id="S2360" Action="None" />
     <Rule Id="S2365" Action="Warning" />
-    <Rule Id="S2368" Action="Warning" />
     <Rule Id="S2486" Action="Warning" />
-    <Rule Id="S3215" Action="None" />
     <Rule Id="S3216" Action="None" />
-    <Rule Id="S3241" Action="Warning" />
+    <Rule Id="S3217" Action="Warning" />
+    <Rule Id="S3218" Action="Warning" />
     <Rule Id="S3330" Action="Warning" />
+    <Rule Id="S3450" Action="Warning" />
     <Rule Id="S3451" Action="Warning" />
     <Rule Id="S3453" Action="Warning" />
     <Rule Id="S3456" Action="Warning" />
-    <Rule Id="S3457" Action="Warning" />
     <Rule Id="S3458" Action="Warning" />
+    <Rule Id="S3459" Action="Warning" />
+    <Rule Id="S3466" Action="Warning" />
     <Rule Id="S4423" Action="Warning" />
     <Rule Id="S4426" Action="Warning" />
+    <Rule Id="S4428" Action="Warning" />
     <Rule Id="S4784" Action="None" />
-    <Rule Id="S4787" Action="None" />
     <Rule Id="S5753" Action="Warning" />
-    <Rule Id="S1048" Action="Warning" />
-    <Rule Id="S1151" Action="None" />
-    <Rule Id="S1168" Action="Warning" />
-    <Rule Id="S2259" Action="Warning" />
-    <Rule Id="S2360" Action="None" />
-    <Rule Id="S3217" Action="Warning" />
-    <Rule Id="S3218" Action="Warning" />
-    <Rule Id="S3450" Action="Warning" />
-    <Rule Id="S3459" Action="Warning" />
-    <Rule Id="S3466" Action="Warning" />
-    <Rule Id="S4428" Action="Warning" />
     <Rule Id="S5766" Action="Warning" />
     <Rule Id="S927" Action="Warning" />
     <Rule Id="S2257" Action="Warning" />
@@ -158,6 +158,7 @@
     <Rule Id="S2372" Action="Warning" />
     <Rule Id="S2376" Action="Warning" />
     <Rule Id="S2743" Action="Warning" />
+    <Rule Id="S2757" Action="Warning" />
     <Rule Id="S2995" Action="Warning" />
     <Rule Id="S2996" Action="Warning" />
     <Rule Id="S3220" Action="Warning" />
@@ -170,9 +171,11 @@
     <Rule Id="S4433" Action="Warning" />
     <Rule Id="S4790" Action="Warning" />
     <Rule Id="S4792" Action="Warning" />
+    <Rule Id="S4818" Action="None" />
     <Rule Id="S818" Action="Warning" />
     <Rule Id="S907" Action="Warning" />
     <Rule Id="S1643" Action="Warning" />
+    <Rule Id="S1696" Action="None" />
     <Rule Id="S1698" Action="None" />
     <Rule Id="S1751" Action="Warning" />
     <Rule Id="S1764" Action="Warning" />
@@ -182,12 +185,12 @@
     <Rule Id="S2612" Action="Warning" />
     <Rule Id="S2737" Action="Warning" />
     <Rule Id="S2755" Action="Warning" />
-    <Rule Id="S2757" Action="Warning" />
     <Rule Id="S2857" Action="Warning" />
     <Rule Id="S2971" Action="Warning" />
     <Rule Id="S2997" Action="Warning" />
     <Rule Id="S3603" Action="Warning" />
     <Rule Id="S3604" Action="Warning" />
+    <Rule Id="S3874" Action="None" />
     <Rule Id="S3875" Action="Warning" />
     <Rule Id="S3876" Action="None" />
     <Rule Id="S3937" Action="None" />
@@ -195,71 +198,80 @@
     <Rule Id="S3966" Action="Warning" />
     <Rule Id="S3967" Action="None" />
     <Rule Id="S3994" Action="None" />
+    <Rule Id="S3995" Action="None" />
     <Rule Id="S3996" Action="None" />
     <Rule Id="S3997" Action="None" />
-    <Rule Id="S4818" Action="None" />
     <Rule Id="S1104" Action="Warning" />
+    <Rule Id="S1109" Action="None" />
     <Rule Id="S1210" Action="Warning" />
     <Rule Id="S1215" Action="Warning" />
+    <Rule Id="S1227" Action="None" />
     <Rule Id="S1450" Action="Warning" />
     <Rule Id="S1451" Action="None" />
     <Rule Id="S1694" Action="None" />
-    <Rule Id="S1696" Action="None" />
     <Rule Id="S1699" Action="Warning" />
     <Rule Id="S2306" Action="Warning" />
+    <Rule Id="S2436" Action="Warning" />
     <Rule Id="S2551" Action="Warning" />
     <Rule Id="S2674" Action="None" />
     <Rule Id="S3400" Action="Warning" />
     <Rule Id="S3871" Action="Warning" />
     <Rule Id="S3872" Action="None" />
-    <Rule Id="S3874" Action="None" />
     <Rule Id="S3877" Action="Warning" />
     <Rule Id="S3880" Action="None" />
+    <Rule Id="S3881" Action="Warning" />
     <Rule Id="S3884" Action="Warning" />
     <Rule Id="S3885" Action="Warning" />
     <Rule Id="S3887" Action="Warning" />
+    <Rule Id="S3889" Action="Warning" />
     <Rule Id="S3990" Action="None" />
     <Rule Id="S3992" Action="None" />
     <Rule Id="S3993" Action="None" />
-    <Rule Id="S3995" Action="None" />
     <Rule Id="S3998" Action="Warning" />
-    <Rule Id="S1109" Action="None" />
     <Rule Id="S1200" Action="None" />
     <Rule Id="S1206" Action="Warning" />
     <Rule Id="S1226" Action="None" />
-    <Rule Id="S1227" Action="None" />
     <Rule Id="S1313" Action="Warning" />
     <Rule Id="S1449" Action="None" />
+    <Rule Id="S1821" Action="None" />
+    <Rule Id="S1905" Action="Warning" />
+    <Rule Id="S1939" Action="Warning" />
     <Rule Id="S1940" Action="Warning" />
-    <Rule Id="S2436" Action="Warning" />
+    <Rule Id="S1944" Action="Warning" />
     <Rule Id="S2437" Action="Warning" />
     <Rule Id="S2760" Action="None" />
     <Rule Id="S2761" Action="Warning" />
     <Rule Id="S3610" Action="Warning" />
     <Rule Id="S3626" Action="Warning" />
     <Rule Id="S3869" Action="Warning" />
-    <Rule Id="S3881" Action="Warning" />
-    <Rule Id="S3889" Action="Warning" />
     <Rule Id="S3971" Action="Warning" />
     <Rule Id="S3972" Action="Warning" />
     <Rule Id="S3973" Action="Warning" />
     <Rule Id="S3981" Action="Warning" />
     <Rule Id="S3984" Action="Warning" />
+    <Rule Id="S4069" Action="None" />
     <Rule Id="S4823" Action="None" />
     <Rule Id="S4829" Action="None" />
     <Rule Id="S4830" Action="Warning" />
     <Rule Id="S4834" Action="None" />
-    <Rule Id="S1821" Action="None" />
+    <Rule Id="S5034" Action="Warning" />
+    <Rule Id="S125" Action="Warning" />
+    <Rule Id="S126" Action="None" />
+    <Rule Id="S127" Action="None" />
+    <Rule Id="S131" Action="None" />
+    <Rule Id="S134" Action="None" />
+    <Rule Id="S1607" Action="Warning" />
+    <Rule Id="S1848" Action="Warning" />
     <Rule Id="S1854" Action="Warning" />
     <Rule Id="S1858" Action="None" />
     <Rule Id="S1862" Action="Warning" />
-    <Rule Id="S1905" Action="Warning" />
-    <Rule Id="S1939" Action="Warning" />
-    <Rule Id="S1944" Action="Warning" />
     <Rule Id="S2701" Action="None" />
+    <Rule Id="S2930" Action="Warning" />
     <Rule Id="S2952" Action="None" />
     <Rule Id="S2953" Action="Warning" />
     <Rule Id="S2955" Action="None" />
+    <Rule Id="S3903" Action="Warning" />
+    <Rule Id="S3906" Action="None" />
     <Rule Id="S3908" Action="None" />
     <Rule Id="S3909" Action="None" />
     <Rule Id="S3923" Action="Warning" />
@@ -269,109 +281,87 @@
     <Rule Id="S3928" Action="Warning" />
     <Rule Id="S4060" Action="None" />
     <Rule Id="S4061" Action="Warning" />
-    <Rule Id="S4069" Action="None" />
     <Rule Id="S4070" Action="Warning" />
-    <Rule Id="S5034" Action="Warning" />
     <Rule Id="S5042" Action="Warning" />
+    <Rule Id="S103" Action="None" />
+    <Rule Id="S104" Action="None" />
+    <Rule Id="S105" Action="None" />
+    <Rule Id="S106" Action="None" />
+    <Rule Id="S107" Action="Warning" />
+    <Rule Id="S108" Action="Warning" />
+    <Rule Id="S109" Action="None" />
     <Rule Id="S110" Action="Warning" />
     <Rule Id="S112" Action="Warning" />
-    <Rule Id="S125" Action="Warning" />
-    <Rule Id="S126" Action="None" />
-    <Rule Id="S127" Action="None" />
-    <Rule Id="S131" Action="None" />
-    <Rule Id="S134" Action="None" />
     <Rule Id="S138" Action="None" />
-    <Rule Id="S1607" Action="Warning" />
-    <Rule Id="S1848" Action="Warning" />
     <Rule Id="S2068" Action="Warning" />
+    <Rule Id="S2183" Action="Warning" />
+    <Rule Id="S2184" Action="Warning" />
     <Rule Id="S2187" Action="Warning" />
-    <Rule Id="S2930" Action="Warning" />
     <Rule Id="S2931" Action="None" />
     <Rule Id="S2933" Action="Warning" />
     <Rule Id="S2934" Action="Warning" />
+    <Rule Id="S3397" Action="Warning" />
     <Rule Id="S3900" Action="None" />
     <Rule Id="S3902" Action="None" />
-    <Rule Id="S3903" Action="Warning" />
     <Rule Id="S3904" Action="Warning" />
-    <Rule Id="S3906" Action="None" />
+    <Rule Id="S4000" Action="None" />
+    <Rule Id="S4002" Action="None" />
     <Rule Id="S4004" Action="None" />
     <Rule Id="S4005" Action="None" />
     <Rule Id="S4487" Action="Warning" />
     <Rule Id="S5332" Action="Warning" />
-    <Rule Id="S103" Action="None" />
-    <Rule Id="S104" Action="None" />
-    <Rule Id="S105" Action="None" />
-    <Rule Id="S106" Action="None" />
-    <Rule Id="S107" Action="Warning" />
-    <Rule Id="S108" Action="Warning" />
-    <Rule Id="S109" Action="None" />
+    <Rule Id="S5693" Action="Warning" />
+    <Rule Id="S1075" Action="Warning" />
+    <Rule Id="S113" Action="None" />
+    <Rule Id="S1199" Action="Warning" />
     <Rule Id="S121" Action="None" />
     <Rule Id="S122" Action="None" />
     <Rule Id="S2077" Action="Warning" />
-    <Rule Id="S2183" Action="Warning" />
-    <Rule Id="S2184" Action="Warning" />
+    <Rule Id="S2190" Action="Warning" />
     <Rule Id="S2197" Action="None" />
+    <Rule Id="S3011" Action="Warning" />
     <Rule Id="S3168" Action="Warning" />
     <Rule Id="S3169" Action="Warning" />
-    <Rule Id="S3397" Action="Warning" />
-    <Rule Id="S4000" Action="None" />
-    <Rule Id="S4002" Action="None" />
+    <Rule Id="S3253" Action="None" />
+    <Rule Id="S3254" Action="None" />
+    <Rule Id="S3256" Action="Warning" />
+    <Rule Id="S3257" Action="None" />
+    <Rule Id="S3376" Action="Warning" />
     <Rule Id="S4015" Action="Warning" />
     <Rule Id="S4016" Action="None" />
     <Rule Id="S4017" Action="None" />
     <Rule Id="S4018" Action="None" />
     <Rule Id="S4019" Action="Warning" />
     <Rule Id="S4136" Action="Warning" />
-    <Rule Id="S5693" Action="Warning" />
-    <Rule Id="S1075" Action="Warning" />
-    <Rule Id="S113" Action="None" />
-    <Rule Id="S1192" Action="None" />
-    <Rule Id="S1199" Action="Warning" />
-    <Rule Id="S2178" Action="Warning" />
-    <Rule Id="S2190" Action="Warning" />
-    <Rule Id="S3010" Action="Warning" />
-    <Rule Id="S3011" Action="Warning" />
-    <Rule Id="S3251" Action="Warning" />
-    <Rule Id="S3253" Action="None" />
-    <Rule Id="S3254" Action="None" />
-    <Rule Id="S3256" Action="Warning" />
-    <Rule Id="S3257" Action="None" />
-    <Rule Id="S3267" Action="Warning" />
-    <Rule Id="S3376" Action="Warning" />
-    <Rule Id="S4220" Action="Warning" />
     <Rule Id="S4225" Action="None" />
     <Rule Id="S4226" Action="None" />
-    <Rule Id="S4462" Action="None" />
-    <Rule Id="S4581" Action="Warning" />
-    <Rule Id="S4583" Action="Warning" />
-    <Rule Id="S4586" Action="Warning" />
-    <Rule Id="S5443" Action="Warning" />
     <Rule Id="S100" Action="None" />
     <Rule Id="S101" Action="Warning" />
+    <Rule Id="S1192" Action="None" />
     <Rule Id="S2053" Action="Warning" />
+    <Rule Id="S2178" Action="Warning" />
     <Rule Id="S2290" Action="Warning" />
     <Rule Id="S2291" Action="Warning" />
     <Rule Id="S2292" Action="Warning" />
+    <Rule Id="S3010" Action="Warning" />
+    <Rule Id="S3251" Action="Warning" />
     <Rule Id="S3260" Action="Warning" />
     <Rule Id="S3261" Action="Warning" />
     <Rule Id="S3262" Action="Warning" />
     <Rule Id="S3263" Action="Warning" />
     <Rule Id="S3264" Action="Warning" />
     <Rule Id="S3265" Action="Warning" />
-    <Rule Id="S4040" Action="None" />
+    <Rule Id="S3267" Action="Warning" />
     <Rule Id="S4041" Action="None" />
     <Rule Id="S4047" Action="None" />
     <Rule Id="S4049" Action="None" />
-    <Rule Id="S4050" Action="None" />
-    <Rule Id="S4052" Action="None" />
-    <Rule Id="S4055" Action="None" />
-    <Rule Id="S4056" Action="None" />
-    <Rule Id="S4057" Action="None" />
-    <Rule Id="S4058" Action="None" />
-    <Rule Id="S4059" Action="None" />
+    <Rule Id="S4220" Action="Warning" />
+    <Rule Id="S4462" Action="None" />
+    <Rule Id="S4581" Action="Warning" />
+    <Rule Id="S4583" Action="Warning" />
+    <Rule Id="S4586" Action="Warning" />
+    <Rule Id="S5443" Action="Warning" />
     <Rule Id="S5445" Action="Warning" />
-    <Rule Id="S6354" Action="None" />
-    <Rule Id="S2092" Action="Warning" />
     <Rule Id="S3052" Action="None" />
     <Rule Id="S3059" Action="None" />
     <Rule Id="S3172" Action="Warning" />
@@ -383,6 +373,14 @@
     <Rule Id="S4035" Action="Warning" />
     <Rule Id="S4036" Action="Warning" />
     <Rule Id="S4039" Action="None" />
+    <Rule Id="S4040" Action="None" />
+    <Rule Id="S4050" Action="None" />
+    <Rule Id="S4052" Action="None" />
+    <Rule Id="S4055" Action="None" />
+    <Rule Id="S4056" Action="None" />
+    <Rule Id="S4057" Action="None" />
+    <Rule Id="S4058" Action="None" />
+    <Rule Id="S4059" Action="None" />
     <Rule Id="S4143" Action="Warning" />
     <Rule Id="S4144" Action="Warning" />
     <Rule Id="S4158" Action="Warning" />
@@ -391,7 +389,9 @@
     <Rule Id="S4261" Action="None" />
     <Rule Id="S4275" Action="Warning" />
     <Rule Id="S4277" Action="Warning" />
-    <Rule Id="S5122" Action="Warning" />
+    <Rule Id="S6354" Action="None" />
+    <Rule Id="S2092" Action="Warning" />
     <Rule Id="S3060" Action="Warning" />
+    <Rule Id="S5122" Action="Warning" />
   </Rules>
 </RuleSet>

+ 44 - 44
.sonarqube/conf/Sonar-vbnet-none.ruleset

@@ -1,16 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
   <Rules AnalyzerId="SonarAnalyzer.VisualBasic" RuleNamespace="SonarAnalyzer.VisualBasic">
+    <Rule Id="S112" Action="None" />
     <Rule Id="S1134" Action="None" />
     <Rule Id="S1135" Action="None" />
     <Rule Id="S1654" Action="None" />
+    <Rule Id="S1656" Action="None" />
+    <Rule Id="S1659" Action="None" />
+    <Rule Id="S2068" Action="None" />
     <Rule Id="S2222" Action="None" />
+    <Rule Id="S2340" Action="None" />
     <Rule Id="S2342" Action="None" />
     <Rule Id="S2343" Action="None" />
     <Rule Id="S2344" Action="None" />
     <Rule Id="S2345" Action="None" />
     <Rule Id="S2346" Action="None" />
     <Rule Id="S2347" Action="None" />
+    <Rule Id="S2348" Action="None" />
     <Rule Id="S3431" Action="None" />
     <Rule Id="S6146" Action="None" />
     <Rule Id="S103" Action="None" />
@@ -18,8 +24,6 @@
     <Rule Id="S105" Action="None" />
     <Rule Id="S107" Action="None" />
     <Rule Id="S108" Action="None" />
-    <Rule Id="S1110" Action="None" />
-    <Rule Id="S112" Action="None" />
     <Rule Id="S114" Action="None" />
     <Rule Id="S1147" Action="None" />
     <Rule Id="S117" Action="None" />
@@ -27,17 +31,10 @@
     <Rule Id="S1301" Action="None" />
     <Rule Id="S1541" Action="None" />
     <Rule Id="S1542" Action="None" />
-    <Rule Id="S1656" Action="None" />
-    <Rule Id="S1659" Action="None" />
-    <Rule Id="S1751" Action="None" />
     <Rule Id="S1821" Action="None" />
-    <Rule Id="S1871" Action="None" />
     <Rule Id="S1940" Action="None" />
-    <Rule Id="S2068" Action="None" />
     <Rule Id="S2077" Action="None" />
     <Rule Id="S2234" Action="None" />
-    <Rule Id="S2340" Action="None" />
-    <Rule Id="S2348" Action="None" />
     <Rule Id="S2349" Action="None" />
     <Rule Id="S2352" Action="None" />
     <Rule Id="S2353" Action="None" />
@@ -57,8 +54,8 @@
     <Rule Id="S907" Action="None" />
     <Rule Id="S101" Action="None" />
     <Rule Id="S1075" Action="None" />
+    <Rule Id="S1110" Action="None" />
     <Rule Id="S1125" Action="None" />
-    <Rule Id="S1172" Action="None" />
     <Rule Id="S1192" Action="None" />
     <Rule Id="S1197" Action="None" />
     <Rule Id="S1451" Action="None" />
@@ -66,26 +63,22 @@
     <Rule Id="S1481" Action="None" />
     <Rule Id="S1643" Action="None" />
     <Rule Id="S1645" Action="None" />
+    <Rule Id="S1751" Action="None" />
     <Rule Id="S1764" Action="None" />
-    <Rule Id="S1862" Action="None" />
+    <Rule Id="S1871" Action="None" />
     <Rule Id="S2178" Action="None" />
     <Rule Id="S2302" Action="None" />
-    <Rule Id="S2304" Action="None" />
     <Rule Id="S2339" Action="None" />
     <Rule Id="S2387" Action="None" />
-    <Rule Id="S2429" Action="None" />
     <Rule Id="S2612" Action="None" />
     <Rule Id="S2692" Action="None" />
     <Rule Id="S2737" Action="None" />
-    <Rule Id="S2951" Action="None" />
     <Rule Id="S3011" Action="None" />
     <Rule Id="S3358" Action="None" />
     <Rule Id="S3385" Action="None" />
     <Rule Id="S3598" Action="None" />
-    <Rule Id="S3884" Action="None" />
     <Rule Id="S3990" Action="None" />
     <Rule Id="S3992" Action="None" />
-    <Rule Id="S3998" Action="None" />
     <Rule Id="S4201" Action="None" />
     <Rule Id="S4507" Action="None" />
     <Rule Id="S4583" Action="None" />
@@ -93,78 +86,85 @@
     <Rule Id="S5042" Action="None" />
     <Rule Id="S5443" Action="None" />
     <Rule Id="S5445" Action="None" />
+    <Rule Id="S1066" Action="None" />
+    <Rule Id="S1067" Action="None" />
+    <Rule Id="S1172" Action="None" />
+    <Rule Id="S1186" Action="None" />
+    <Rule Id="S1226" Action="None" />
+    <Rule Id="S1313" Action="None" />
+    <Rule Id="S1862" Action="None" />
+    <Rule Id="S2304" Action="None" />
+    <Rule Id="S2366" Action="None" />
+    <Rule Id="S2368" Action="None" />
+    <Rule Id="S2369" Action="None" />
+    <Rule Id="S2429" Action="None" />
+    <Rule Id="S2437" Action="None" />
+    <Rule Id="S2551" Action="None" />
+    <Rule Id="S2951" Action="None" />
+    <Rule Id="S3884" Action="None" />
+    <Rule Id="S3889" Action="None" />
+    <Rule Id="S3923" Action="None" />
+    <Rule Id="S3926" Action="None" />
+    <Rule Id="S3927" Action="None" />
+    <Rule Id="S3998" Action="None" />
+    <Rule Id="S4210" Action="None" />
+    <Rule Id="S4423" Action="None" />
+    <Rule Id="S4787" Action="None" />
+    <Rule Id="S5542" Action="None" />
     <Rule Id="S5547" Action="None" />
     <Rule Id="S5659" Action="None" />
     <Rule Id="S5944" Action="None" />
-    <Rule Id="S1066" Action="None" />
-    <Rule Id="S1067" Action="None" />
+    <Rule Id="S6354" Action="None" />
+    <Rule Id="S1048" Action="None" />
     <Rule Id="S1151" Action="None" />
     <Rule Id="S1155" Action="None" />
-    <Rule Id="S1186" Action="None" />
-    <Rule Id="S1226" Action="None" />
+    <Rule Id="S126" Action="None" />
     <Rule Id="S131" Action="None" />
-    <Rule Id="S1313" Action="None" />
     <Rule Id="S134" Action="None" />
+    <Rule Id="S2257" Action="None" />
     <Rule Id="S2360" Action="None" />
     <Rule Id="S2362" Action="None" />
     <Rule Id="S2363" Action="None" />
     <Rule Id="S2364" Action="None" />
     <Rule Id="S2365" Action="None" />
-    <Rule Id="S2366" Action="None" />
     <Rule Id="S2367" Action="None" />
-    <Rule Id="S2368" Action="None" />
-    <Rule Id="S2369" Action="None" />
-    <Rule Id="S2437" Action="None" />
-    <Rule Id="S2551" Action="None" />
+    <Rule Id="S2375" Action="None" />
     <Rule Id="S2761" Action="None" />
     <Rule Id="S3453" Action="None" />
-    <Rule Id="S3889" Action="None" />
-    <Rule Id="S3923" Action="None" />
-    <Rule Id="S3926" Action="None" />
-    <Rule Id="S3927" Action="None" />
+    <Rule Id="S3466" Action="None" />
     <Rule Id="S4025" Action="None" />
+    <Rule Id="S4036" Action="None" />
     <Rule Id="S4143" Action="None" />
     <Rule Id="S4144" Action="None" />
-    <Rule Id="S4210" Action="None" />
-    <Rule Id="S4423" Action="None" />
+    <Rule Id="S4159" Action="None" />
+    <Rule Id="S4260" Action="None" />
     <Rule Id="S4428" Action="None" />
     <Rule Id="S4784" Action="None" />
-    <Rule Id="S4787" Action="None" />
     <Rule Id="S4823" Action="None" />
     <Rule Id="S4829" Action="None" />
-    <Rule Id="S5542" Action="None" />
+    <Rule Id="S4830" Action="None" />
     <Rule Id="S5753" Action="None" />
-    <Rule Id="S6354" Action="None" />
     <Rule Id="S927" Action="None" />
-    <Rule Id="S1048" Action="None" />
     <Rule Id="S1163" Action="None" />
-    <Rule Id="S126" Action="None" />
     <Rule Id="S138" Action="None" />
     <Rule Id="S139" Action="None" />
     <Rule Id="S2255" Action="None" />
-    <Rule Id="S2257" Action="None" />
     <Rule Id="S2370" Action="None" />
     <Rule Id="S2372" Action="None" />
     <Rule Id="S2373" Action="None" />
     <Rule Id="S2374" Action="None" />
-    <Rule Id="S2375" Action="None" />
     <Rule Id="S2376" Action="None" />
     <Rule Id="S3464" Action="None" />
-    <Rule Id="S3466" Action="None" />
     <Rule Id="S3860" Action="None" />
     <Rule Id="S3866" Action="None" />
     <Rule Id="S3869" Action="None" />
     <Rule Id="S3903" Action="None" />
     <Rule Id="S3904" Action="None" />
     <Rule Id="S3981" Action="None" />
-    <Rule Id="S4036" Action="None" />
-    <Rule Id="S4159" Action="None" />
-    <Rule Id="S4260" Action="None" />
     <Rule Id="S4275" Action="None" />
     <Rule Id="S4277" Action="None" />
     <Rule Id="S4790" Action="None" />
     <Rule Id="S4792" Action="None" />
-    <Rule Id="S4830" Action="None" />
     <Rule Id="S4834" Action="None" />
   </Rules>
 </RuleSet>

+ 44 - 44
.sonarqube/conf/Sonar-vbnet.ruleset

@@ -1,16 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
   <Rules AnalyzerId="SonarAnalyzer.VisualBasic" RuleNamespace="SonarAnalyzer.VisualBasic">
+    <Rule Id="S112" Action="Warning" />
     <Rule Id="S1134" Action="Warning" />
     <Rule Id="S1135" Action="Warning" />
     <Rule Id="S1654" Action="Warning" />
+    <Rule Id="S1656" Action="Warning" />
+    <Rule Id="S1659" Action="None" />
+    <Rule Id="S2068" Action="Warning" />
     <Rule Id="S2222" Action="None" />
+    <Rule Id="S2340" Action="Warning" />
     <Rule Id="S2342" Action="Warning" />
     <Rule Id="S2343" Action="None" />
     <Rule Id="S2344" Action="Warning" />
     <Rule Id="S2345" Action="Warning" />
     <Rule Id="S2346" Action="Warning" />
     <Rule Id="S2347" Action="Warning" />
+    <Rule Id="S2348" Action="None" />
     <Rule Id="S3431" Action="None" />
     <Rule Id="S6146" Action="Warning" />
     <Rule Id="S103" Action="None" />
@@ -18,8 +24,6 @@
     <Rule Id="S105" Action="None" />
     <Rule Id="S107" Action="Warning" />
     <Rule Id="S108" Action="Warning" />
-    <Rule Id="S1110" Action="Warning" />
-    <Rule Id="S112" Action="Warning" />
     <Rule Id="S114" Action="Warning" />
     <Rule Id="S1147" Action="None" />
     <Rule Id="S117" Action="Warning" />
@@ -27,17 +31,10 @@
     <Rule Id="S1301" Action="None" />
     <Rule Id="S1541" Action="None" />
     <Rule Id="S1542" Action="Warning" />
-    <Rule Id="S1656" Action="Warning" />
-    <Rule Id="S1659" Action="None" />
-    <Rule Id="S1751" Action="Warning" />
     <Rule Id="S1821" Action="None" />
-    <Rule Id="S1871" Action="Warning" />
     <Rule Id="S1940" Action="Warning" />
-    <Rule Id="S2068" Action="Warning" />
     <Rule Id="S2077" Action="Warning" />
     <Rule Id="S2234" Action="Warning" />
-    <Rule Id="S2340" Action="Warning" />
-    <Rule Id="S2348" Action="None" />
     <Rule Id="S2349" Action="Warning" />
     <Rule Id="S2352" Action="Warning" />
     <Rule Id="S2353" Action="None" />
@@ -57,8 +54,8 @@
     <Rule Id="S907" Action="Warning" />
     <Rule Id="S101" Action="Warning" />
     <Rule Id="S1075" Action="Warning" />
+    <Rule Id="S1110" Action="Warning" />
     <Rule Id="S1125" Action="Warning" />
-    <Rule Id="S1172" Action="Warning" />
     <Rule Id="S1192" Action="None" />
     <Rule Id="S1197" Action="Warning" />
     <Rule Id="S1451" Action="None" />
@@ -66,26 +63,22 @@
     <Rule Id="S1481" Action="Warning" />
     <Rule Id="S1643" Action="Warning" />
     <Rule Id="S1645" Action="Warning" />
+    <Rule Id="S1751" Action="Warning" />
     <Rule Id="S1764" Action="Warning" />
-    <Rule Id="S1862" Action="Warning" />
+    <Rule Id="S1871" Action="Warning" />
     <Rule Id="S2178" Action="Warning" />
     <Rule Id="S2302" Action="None" />
-    <Rule Id="S2304" Action="Warning" />
     <Rule Id="S2339" Action="None" />
     <Rule Id="S2387" Action="Warning" />
-    <Rule Id="S2429" Action="None" />
     <Rule Id="S2612" Action="Warning" />
     <Rule Id="S2692" Action="Warning" />
     <Rule Id="S2737" Action="Warning" />
-    <Rule Id="S2951" Action="Warning" />
     <Rule Id="S3011" Action="Warning" />
     <Rule Id="S3358" Action="Warning" />
     <Rule Id="S3385" Action="Warning" />
     <Rule Id="S3598" Action="Warning" />
-    <Rule Id="S3884" Action="Warning" />
     <Rule Id="S3990" Action="None" />
     <Rule Id="S3992" Action="None" />
-    <Rule Id="S3998" Action="Warning" />
     <Rule Id="S4201" Action="Warning" />
     <Rule Id="S4507" Action="Warning" />
     <Rule Id="S4583" Action="Warning" />
@@ -93,78 +86,85 @@
     <Rule Id="S5042" Action="Warning" />
     <Rule Id="S5443" Action="Warning" />
     <Rule Id="S5445" Action="Warning" />
+    <Rule Id="S1066" Action="Warning" />
+    <Rule Id="S1067" Action="None" />
+    <Rule Id="S1172" Action="Warning" />
+    <Rule Id="S1186" Action="Warning" />
+    <Rule Id="S1226" Action="None" />
+    <Rule Id="S1313" Action="Warning" />
+    <Rule Id="S1862" Action="Warning" />
+    <Rule Id="S2304" Action="Warning" />
+    <Rule Id="S2366" Action="None" />
+    <Rule Id="S2368" Action="Warning" />
+    <Rule Id="S2369" Action="None" />
+    <Rule Id="S2429" Action="None" />
+    <Rule Id="S2437" Action="Warning" />
+    <Rule Id="S2551" Action="Warning" />
+    <Rule Id="S2951" Action="Warning" />
+    <Rule Id="S3884" Action="Warning" />
+    <Rule Id="S3889" Action="Warning" />
+    <Rule Id="S3923" Action="Warning" />
+    <Rule Id="S3926" Action="Warning" />
+    <Rule Id="S3927" Action="Warning" />
+    <Rule Id="S3998" Action="Warning" />
+    <Rule Id="S4210" Action="Warning" />
+    <Rule Id="S4423" Action="Warning" />
+    <Rule Id="S4787" Action="None" />
+    <Rule Id="S5542" Action="Warning" />
     <Rule Id="S5547" Action="Warning" />
     <Rule Id="S5659" Action="Warning" />
     <Rule Id="S5944" Action="Warning" />
-    <Rule Id="S1066" Action="Warning" />
-    <Rule Id="S1067" Action="None" />
+    <Rule Id="S6354" Action="None" />
+    <Rule Id="S1048" Action="Warning" />
     <Rule Id="S1151" Action="None" />
     <Rule Id="S1155" Action="Warning" />
-    <Rule Id="S1186" Action="Warning" />
-    <Rule Id="S1226" Action="None" />
+    <Rule Id="S126" Action="None" />
     <Rule Id="S131" Action="None" />
-    <Rule Id="S1313" Action="Warning" />
     <Rule Id="S134" Action="None" />
+    <Rule Id="S2257" Action="Warning" />
     <Rule Id="S2360" Action="None" />
     <Rule Id="S2362" Action="None" />
     <Rule Id="S2363" Action="None" />
     <Rule Id="S2364" Action="None" />
     <Rule Id="S2365" Action="Warning" />
-    <Rule Id="S2366" Action="None" />
     <Rule Id="S2367" Action="None" />
-    <Rule Id="S2368" Action="Warning" />
-    <Rule Id="S2369" Action="None" />
-    <Rule Id="S2437" Action="Warning" />
-    <Rule Id="S2551" Action="Warning" />
+    <Rule Id="S2375" Action="Warning" />
     <Rule Id="S2761" Action="Warning" />
     <Rule Id="S3453" Action="Warning" />
-    <Rule Id="S3889" Action="Warning" />
-    <Rule Id="S3923" Action="Warning" />
-    <Rule Id="S3926" Action="Warning" />
-    <Rule Id="S3927" Action="Warning" />
+    <Rule Id="S3466" Action="Warning" />
     <Rule Id="S4025" Action="None" />
+    <Rule Id="S4036" Action="Warning" />
     <Rule Id="S4143" Action="Warning" />
     <Rule Id="S4144" Action="Warning" />
-    <Rule Id="S4210" Action="Warning" />
-    <Rule Id="S4423" Action="Warning" />
+    <Rule Id="S4159" Action="Warning" />
+    <Rule Id="S4260" Action="Warning" />
     <Rule Id="S4428" Action="Warning" />
     <Rule Id="S4784" Action="None" />
-    <Rule Id="S4787" Action="None" />
     <Rule Id="S4823" Action="None" />
     <Rule Id="S4829" Action="None" />
-    <Rule Id="S5542" Action="Warning" />
+    <Rule Id="S4830" Action="Warning" />
     <Rule Id="S5753" Action="Warning" />
-    <Rule Id="S6354" Action="None" />
     <Rule Id="S927" Action="Warning" />
-    <Rule Id="S1048" Action="Warning" />
     <Rule Id="S1163" Action="Warning" />
-    <Rule Id="S126" Action="None" />
     <Rule Id="S138" Action="None" />
     <Rule Id="S139" Action="None" />
     <Rule Id="S2255" Action="None" />
-    <Rule Id="S2257" Action="Warning" />
     <Rule Id="S2370" Action="None" />
     <Rule Id="S2372" Action="Warning" />
     <Rule Id="S2373" Action="None" />
     <Rule Id="S2374" Action="None" />
-    <Rule Id="S2375" Action="Warning" />
     <Rule Id="S2376" Action="Warning" />
     <Rule Id="S3464" Action="Warning" />
-    <Rule Id="S3466" Action="Warning" />
     <Rule Id="S3860" Action="None" />
     <Rule Id="S3866" Action="None" />
     <Rule Id="S3869" Action="Warning" />
     <Rule Id="S3903" Action="Warning" />
     <Rule Id="S3904" Action="Warning" />
     <Rule Id="S3981" Action="Warning" />
-    <Rule Id="S4036" Action="Warning" />
-    <Rule Id="S4159" Action="Warning" />
-    <Rule Id="S4260" Action="Warning" />
     <Rule Id="S4275" Action="Warning" />
     <Rule Id="S4277" Action="Warning" />
     <Rule Id="S4790" Action="Warning" />
     <Rule Id="S4792" Action="Warning" />
-    <Rule Id="S4830" Action="Warning" />
     <Rule Id="S4834" Action="None" />
   </Rules>
 </RuleSet>

+ 4 - 4
.sonarqube/conf/SonarQubeAnalysisConfig.xml

@@ -5,7 +5,7 @@
   <SonarBinDir>F:\Unity\Projects\RPG-Fight-Test\.sonarqube\bin</SonarBinDir>
   <SonarScannerWorkingDirectory>F:\Unity\Projects\RPG-Fight-Test</SonarScannerWorkingDirectory>
   <HasBeginStepCommandLineCredentials>true</HasBeginStepCommandLineCredentials>
-  <SonarQubeHostUrl>http://nordh.xyz:12366</SonarQubeHostUrl>
+  <SonarQubeHostUrl>http://nordh.xyz:9088</SonarQubeHostUrl>
   <SonarQubeVersion>9.4.0.54424</SonarQubeVersion>
   <SonarProjectKey>RPG-FIGHT</SonarProjectKey>
   <AdditionalConfig>
@@ -109,11 +109,11 @@
     <Property Name="sonar.auth.gitlab.url">https://gitlab.com</Property>
     <Property Name="sonaranalyzer-vbnet.pluginKey">vbnet</Property>
     <Property Name="sonar.updatecenter.url">https://update.sonarsource.org/update-center.properties</Property>
-    <Property Name="sonar.core.startTime">2022-04-12 10:20:39</Property>
-    <Property Name="sonar.core.id">243B8A4D-AYAc3LYGUpU9d3miZrhR</Property>
+    <Property Name="sonar.core.startTime">2022-05-01 10:05:05</Property>
+    <Property Name="sonar.core.id">243B8A4D-AYB-puEKMQhf_f0rkCOd</Property>
   </ServerSettings>
   <LocalSettings>
-    <Property Name="sonar.host.url">http://nordh.xyz:12366</Property>
+    <Property Name="sonar.host.url">http://nordh.xyz:9088</Property>
   </LocalSettings>
   <AnalyzersSettings>
     <AnalyzerSettings>

+ 200 - 200
.sonarqube/conf/cs/SonarLint.xml

@@ -25,6 +25,15 @@
     <Rule>
       <Key>S1135</Key>
     </Rule>
+    <Rule>
+      <Key>S1144</Key>
+    </Rule>
+    <Rule>
+      <Key>S1264</Key>
+    </Rule>
+    <Rule>
+      <Key>S2114</Key>
+    </Rule>
     <Rule>
       <Key>S2115</Key>
     </Rule>
@@ -40,14 +49,14 @@
     <Rule>
       <Key>S2342</Key>
       <Parameters>
-        <Parameter>
-          <Key>flagsAttributeFormat</Key>
-          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
-        </Parameter>
         <Parameter>
           <Key>format</Key>
           <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
         </Parameter>
+        <Parameter>
+          <Key>flagsAttributeFormat</Key>
+          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
+        </Parameter>
       </Parameters>
     </Rule>
     <Rule>
@@ -69,40 +78,10 @@
       <Key>S2589</Key>
     </Rule>
     <Rule>
-      <Key>S3433</Key>
-    </Rule>
-    <Rule>
-      <Key>S3447</Key>
-    </Rule>
-    <Rule>
-      <Key>S4524</Key>
-    </Rule>
-    <Rule>
-      <Key>S1110</Key>
-    </Rule>
-    <Rule>
-      <Key>S1144</Key>
-    </Rule>
-    <Rule>
-      <Key>S1264</Key>
-    </Rule>
-    <Rule>
-      <Key>S2114</Key>
-    </Rule>
-    <Rule>
-      <Key>S2201</Key>
-    </Rule>
-    <Rule>
-      <Key>S2328</Key>
-    </Rule>
-    <Rule>
-      <Key>S2681</Key>
-    </Rule>
-    <Rule>
-      <Key>S2688</Key>
+      <Key>S3329</Key>
     </Rule>
     <Rule>
-      <Key>S3329</Key>
+      <Key>S3433</Key>
     </Rule>
     <Rule>
       <Key>S3440</Key>
@@ -119,6 +98,9 @@
     <Rule>
       <Key>S3445</Key>
     </Rule>
+    <Rule>
+      <Key>S3447</Key>
+    </Rule>
     <Rule>
       <Key>S3449</Key>
     </Rule>
@@ -126,23 +108,13 @@
       <Key>S3655</Key>
     </Rule>
     <Rule>
-      <Key>S3776</Key>
-      <Parameters>
-        <Parameter>
-          <Key>propertyThreshold</Key>
-          <Value>3</Value>
-        </Parameter>
-        <Parameter>
-          <Key>threshold</Key>
-          <Value>15</Value>
-        </Parameter>
-      </Parameters>
+      <Key>S4524</Key>
     </Rule>
     <Rule>
-      <Key>S3897</Key>
+      <Key>S1006</Key>
     </Rule>
     <Rule>
-      <Key>S4502</Key>
+      <Key>S1110</Key>
     </Rule>
     <Rule>
       <Key>S1116</Key>
@@ -172,43 +144,34 @@
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S2219</Key>
-    </Rule>
-    <Rule>
-      <Key>S2326</Key>
-    </Rule>
-    <Rule>
-      <Key>S2692</Key>
-    </Rule>
-    <Rule>
-      <Key>S2696</Key>
+      <Key>S1481</Key>
     </Rule>
     <Rule>
-      <Key>S2699</Key>
+      <Key>S2201</Key>
     </Rule>
     <Rule>
-      <Key>S3415</Key>
+      <Key>S2219</Key>
     </Rule>
     <Rule>
-      <Key>S4507</Key>
+      <Key>S2326</Key>
     </Rule>
     <Rule>
-      <Key>S4635</Key>
+      <Key>S2328</Key>
     </Rule>
     <Rule>
-      <Key>S1006</Key>
+      <Key>S2681</Key>
     </Rule>
     <Rule>
-      <Key>S1172</Key>
+      <Key>S2688</Key>
     </Rule>
     <Rule>
-      <Key>S1481</Key>
+      <Key>S2692</Key>
     </Rule>
     <Rule>
-      <Key>S2386</Key>
+      <Key>S2696</Key>
     </Rule>
     <Rule>
-      <Key>S3236</Key>
+      <Key>S2699</Key>
     </Rule>
     <Rule>
       <Key>S3237</Key>
@@ -217,34 +180,44 @@
       <Key>S3358</Key>
     </Rule>
     <Rule>
-      <Key>S3427</Key>
+      <Key>S3415</Key>
     </Rule>
     <Rule>
-      <Key>S3597</Key>
+      <Key>S3427</Key>
     </Rule>
     <Rule>
       <Key>S3598</Key>
     </Rule>
     <Rule>
-      <Key>S4200</Key>
+      <Key>S3776</Key>
+      <Parameters>
+        <Parameter>
+          <Key>propertyThreshold</Key>
+          <Value>3</Value>
+        </Parameter>
+        <Parameter>
+          <Key>threshold</Key>
+          <Value>15</Value>
+        </Parameter>
+      </Parameters>
     </Rule>
     <Rule>
-      <Key>S4201</Key>
+      <Key>S3897</Key>
     </Rule>
     <Rule>
-      <Key>S4214</Key>
+      <Key>S4502</Key>
     </Rule>
     <Rule>
-      <Key>S4457</Key>
+      <Key>S4507</Key>
     </Rule>
     <Rule>
-      <Key>S5659</Key>
+      <Key>S4635</Key>
     </Rule>
     <Rule>
-      <Key>S5773</Key>
+      <Key>S1066</Key>
     </Rule>
     <Rule>
-      <Key>S1066</Key>
+      <Key>S1172</Key>
     </Rule>
     <Rule>
       <Key>S1185</Key>
@@ -255,9 +228,21 @@
     <Rule>
       <Key>S2275</Key>
     </Rule>
+    <Rule>
+      <Key>S2368</Key>
+    </Rule>
+    <Rule>
+      <Key>S2386</Key>
+    </Rule>
     <Rule>
       <Key>S3005</Key>
     </Rule>
+    <Rule>
+      <Key>S3236</Key>
+    </Rule>
+    <Rule>
+      <Key>S3241</Key>
+    </Rule>
     <Rule>
       <Key>S3244</Key>
     </Rule>
@@ -271,85 +256,91 @@
       <Key>S3249</Key>
     </Rule>
     <Rule>
-      <Key>S4210</Key>
+      <Key>S3457</Key>
     </Rule>
     <Rule>
-      <Key>S4211</Key>
+      <Key>S3597</Key>
     </Rule>
     <Rule>
-      <Key>S4456</Key>
+      <Key>S4200</Key>
     </Rule>
     <Rule>
-      <Key>S5542</Key>
+      <Key>S4201</Key>
     </Rule>
     <Rule>
-      <Key>S5547</Key>
+      <Key>S4210</Key>
     </Rule>
     <Rule>
-      <Key>S1155</Key>
+      <Key>S4211</Key>
     </Rule>
     <Rule>
-      <Key>S2123</Key>
+      <Key>S4214</Key>
     </Rule>
     <Rule>
-      <Key>S2245</Key>
+      <Key>S4456</Key>
     </Rule>
     <Rule>
-      <Key>S2365</Key>
+      <Key>S4457</Key>
     </Rule>
     <Rule>
-      <Key>S2368</Key>
+      <Key>S5542</Key>
     </Rule>
     <Rule>
-      <Key>S2486</Key>
+      <Key>S5547</Key>
     </Rule>
     <Rule>
-      <Key>S3241</Key>
+      <Key>S5659</Key>
     </Rule>
     <Rule>
-      <Key>S3330</Key>
+      <Key>S5773</Key>
     </Rule>
     <Rule>
-      <Key>S3451</Key>
+      <Key>S1048</Key>
     </Rule>
     <Rule>
-      <Key>S3453</Key>
+      <Key>S1155</Key>
     </Rule>
     <Rule>
-      <Key>S3456</Key>
+      <Key>S1168</Key>
     </Rule>
     <Rule>
-      <Key>S3457</Key>
+      <Key>S2123</Key>
     </Rule>
     <Rule>
-      <Key>S3458</Key>
+      <Key>S2245</Key>
     </Rule>
     <Rule>
-      <Key>S4423</Key>
+      <Key>S2259</Key>
     </Rule>
     <Rule>
-      <Key>S4426</Key>
+      <Key>S2365</Key>
     </Rule>
     <Rule>
-      <Key>S5753</Key>
+      <Key>S2486</Key>
     </Rule>
     <Rule>
-      <Key>S1048</Key>
+      <Key>S3217</Key>
     </Rule>
     <Rule>
-      <Key>S1168</Key>
+      <Key>S3218</Key>
     </Rule>
     <Rule>
-      <Key>S2259</Key>
+      <Key>S3330</Key>
     </Rule>
     <Rule>
-      <Key>S3217</Key>
+      <Key>S3450</Key>
     </Rule>
     <Rule>
-      <Key>S3218</Key>
+      <Key>S3451</Key>
     </Rule>
     <Rule>
-      <Key>S3450</Key>
+      <Key>S3453</Key>
+    </Rule>
+    <Rule>
+      <Key>S3456</Key>
+    </Rule>
+    <Rule>
+      <Key>S3458</Key>
     </Rule>
     <Rule>
       <Key>S3459</Key>
@@ -357,9 +348,18 @@
     <Rule>
       <Key>S3466</Key>
     </Rule>
+    <Rule>
+      <Key>S4423</Key>
+    </Rule>
+    <Rule>
+      <Key>S4426</Key>
+    </Rule>
     <Rule>
       <Key>S4428</Key>
     </Rule>
+    <Rule>
+      <Key>S5753</Key>
+    </Rule>
     <Rule>
       <Key>S5766</Key>
     </Rule>
@@ -396,6 +396,9 @@
     <Rule>
       <Key>S2743</Key>
     </Rule>
+    <Rule>
+      <Key>S2757</Key>
+    </Rule>
     <Rule>
       <Key>S2995</Key>
     </Rule>
@@ -450,9 +453,6 @@
     <Rule>
       <Key>S2755</Key>
     </Rule>
-    <Rule>
-      <Key>S2757</Key>
-    </Rule>
     <Rule>
       <Key>S2857</Key>
     </Rule>
@@ -492,6 +492,19 @@
     <Rule>
       <Key>S2306</Key>
     </Rule>
+    <Rule>
+      <Key>S2436</Key>
+      <Parameters>
+        <Parameter>
+          <Key>max</Key>
+          <Value>2</Value>
+        </Parameter>
+        <Parameter>
+          <Key>maxMethod</Key>
+          <Value>3</Value>
+        </Parameter>
+      </Parameters>
+    </Rule>
     <Rule>
       <Key>S2551</Key>
     </Rule>
@@ -504,6 +517,9 @@
     <Rule>
       <Key>S3877</Key>
     </Rule>
+    <Rule>
+      <Key>S3881</Key>
+    </Rule>
     <Rule>
       <Key>S3884</Key>
     </Rule>
@@ -513,6 +529,9 @@
     <Rule>
       <Key>S3887</Key>
     </Rule>
+    <Rule>
+      <Key>S3889</Key>
+    </Rule>
     <Rule>
       <Key>S3998</Key>
     </Rule>
@@ -522,21 +541,17 @@
     <Rule>
       <Key>S1313</Key>
     </Rule>
+    <Rule>
+      <Key>S1905</Key>
+    </Rule>
+    <Rule>
+      <Key>S1939</Key>
+    </Rule>
     <Rule>
       <Key>S1940</Key>
     </Rule>
     <Rule>
-      <Key>S2436</Key>
-      <Parameters>
-        <Parameter>
-          <Key>maxMethod</Key>
-          <Value>3</Value>
-        </Parameter>
-        <Parameter>
-          <Key>max</Key>
-          <Value>2</Value>
-        </Parameter>
-      </Parameters>
+      <Key>S1944</Key>
     </Rule>
     <Rule>
       <Key>S2437</Key>
@@ -553,12 +568,6 @@
     <Rule>
       <Key>S3869</Key>
     </Rule>
-    <Rule>
-      <Key>S3881</Key>
-    </Rule>
-    <Rule>
-      <Key>S3889</Key>
-    </Rule>
     <Rule>
       <Key>S3971</Key>
     </Rule>
@@ -578,23 +587,32 @@
       <Key>S4830</Key>
     </Rule>
     <Rule>
-      <Key>S1854</Key>
+      <Key>S5034</Key>
     </Rule>
     <Rule>
-      <Key>S1862</Key>
+      <Key>S125</Key>
     </Rule>
     <Rule>
-      <Key>S1905</Key>
+      <Key>S1607</Key>
     </Rule>
     <Rule>
-      <Key>S1939</Key>
+      <Key>S1848</Key>
     </Rule>
     <Rule>
-      <Key>S1944</Key>
+      <Key>S1854</Key>
+    </Rule>
+    <Rule>
+      <Key>S1862</Key>
+    </Rule>
+    <Rule>
+      <Key>S2930</Key>
     </Rule>
     <Rule>
       <Key>S2953</Key>
     </Rule>
+    <Rule>
+      <Key>S3903</Key>
+    </Rule>
     <Rule>
       <Key>S3923</Key>
     </Rule>
@@ -616,32 +634,32 @@
     <Rule>
       <Key>S4070</Key>
     </Rule>
-    <Rule>
-      <Key>S5034</Key>
-    </Rule>
     <Rule>
       <Key>S5042</Key>
     </Rule>
     <Rule>
-      <Key>S110</Key>
+      <Key>S107</Key>
       <Parameters>
         <Parameter>
           <Key>max</Key>
-          <Value>5</Value>
+          <Value>7</Value>
         </Parameter>
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S112</Key>
-    </Rule>
-    <Rule>
-      <Key>S125</Key>
+      <Key>S108</Key>
     </Rule>
     <Rule>
-      <Key>S1607</Key>
+      <Key>S110</Key>
+      <Parameters>
+        <Parameter>
+          <Key>max</Key>
+          <Value>5</Value>
+        </Parameter>
+      </Parameters>
     </Rule>
     <Rule>
-      <Key>S1848</Key>
+      <Key>S112</Key>
     </Rule>
     <Rule>
       <Key>S2068</Key>
@@ -653,10 +671,13 @@
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S2187</Key>
+      <Key>S2183</Key>
     </Rule>
     <Rule>
-      <Key>S2930</Key>
+      <Key>S2184</Key>
+    </Rule>
+    <Rule>
+      <Key>S2187</Key>
     </Rule>
     <Rule>
       <Key>S2933</Key>
@@ -665,7 +686,7 @@
       <Key>S2934</Key>
     </Rule>
     <Rule>
-      <Key>S3903</Key>
+      <Key>S3397</Key>
     </Rule>
     <Rule>
       <Key>S3904</Key>
@@ -677,25 +698,28 @@
       <Key>S5332</Key>
     </Rule>
     <Rule>
-      <Key>S107</Key>
+      <Key>S5693</Key>
       <Parameters>
         <Parameter>
-          <Key>max</Key>
-          <Value>7</Value>
+          <Key>fileUploadSizeLimit</Key>
+          <Value>8000000</Value>
         </Parameter>
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S108</Key>
+      <Key>S1075</Key>
+    </Rule>
+    <Rule>
+      <Key>S1199</Key>
     </Rule>
     <Rule>
       <Key>S2077</Key>
     </Rule>
     <Rule>
-      <Key>S2183</Key>
+      <Key>S2190</Key>
     </Rule>
     <Rule>
-      <Key>S2184</Key>
+      <Key>S3011</Key>
     </Rule>
     <Rule>
       <Key>S3168</Key>
@@ -704,7 +728,10 @@
       <Key>S3169</Key>
     </Rule>
     <Rule>
-      <Key>S3397</Key>
+      <Key>S3256</Key>
+    </Rule>
+    <Rule>
+      <Key>S3376</Key>
     </Rule>
     <Rule>
       <Key>S4015</Key>
@@ -716,98 +743,68 @@
       <Key>S4136</Key>
     </Rule>
     <Rule>
-      <Key>S5693</Key>
-      <Parameters>
-        <Parameter>
-          <Key>fileUploadSizeLimit</Key>
-          <Value>8000000</Value>
-        </Parameter>
-      </Parameters>
-    </Rule>
-    <Rule>
-      <Key>S1075</Key>
+      <Key>S101</Key>
     </Rule>
     <Rule>
-      <Key>S1199</Key>
+      <Key>S2053</Key>
     </Rule>
     <Rule>
       <Key>S2178</Key>
     </Rule>
     <Rule>
-      <Key>S2190</Key>
-    </Rule>
-    <Rule>
-      <Key>S3010</Key>
-    </Rule>
-    <Rule>
-      <Key>S3011</Key>
-    </Rule>
-    <Rule>
-      <Key>S3251</Key>
-    </Rule>
-    <Rule>
-      <Key>S3256</Key>
-    </Rule>
-    <Rule>
-      <Key>S3267</Key>
-    </Rule>
-    <Rule>
-      <Key>S3376</Key>
+      <Key>S2290</Key>
     </Rule>
     <Rule>
-      <Key>S4220</Key>
+      <Key>S2291</Key>
     </Rule>
     <Rule>
-      <Key>S4581</Key>
+      <Key>S2292</Key>
     </Rule>
     <Rule>
-      <Key>S4583</Key>
+      <Key>S3010</Key>
     </Rule>
     <Rule>
-      <Key>S4586</Key>
+      <Key>S3251</Key>
     </Rule>
     <Rule>
-      <Key>S5443</Key>
+      <Key>S3260</Key>
     </Rule>
     <Rule>
-      <Key>S101</Key>
+      <Key>S3261</Key>
     </Rule>
     <Rule>
-      <Key>S2053</Key>
+      <Key>S3262</Key>
     </Rule>
     <Rule>
-      <Key>S2290</Key>
+      <Key>S3263</Key>
     </Rule>
     <Rule>
-      <Key>S2291</Key>
+      <Key>S3264</Key>
     </Rule>
     <Rule>
-      <Key>S2292</Key>
+      <Key>S3265</Key>
     </Rule>
     <Rule>
-      <Key>S3260</Key>
+      <Key>S3267</Key>
     </Rule>
     <Rule>
-      <Key>S3261</Key>
+      <Key>S4220</Key>
     </Rule>
     <Rule>
-      <Key>S3262</Key>
+      <Key>S4581</Key>
     </Rule>
     <Rule>
-      <Key>S3263</Key>
+      <Key>S4583</Key>
     </Rule>
     <Rule>
-      <Key>S3264</Key>
+      <Key>S4586</Key>
     </Rule>
     <Rule>
-      <Key>S3265</Key>
+      <Key>S5443</Key>
     </Rule>
     <Rule>
       <Key>S5445</Key>
     </Rule>
-    <Rule>
-      <Key>S2092</Key>
-    </Rule>
     <Rule>
       <Key>S3172</Key>
     </Rule>
@@ -839,11 +836,14 @@
       <Key>S4277</Key>
     </Rule>
     <Rule>
-      <Key>S5122</Key>
+      <Key>S2092</Key>
     </Rule>
     <Rule>
       <Key>S3060</Key>
     </Rule>
+    <Rule>
+      <Key>S5122</Key>
+    </Rule>
   </Rules>
   <Files>
   </Files>

+ 90 - 90
.sonarqube/conf/vbnet/SonarLint.xml

@@ -19,6 +19,9 @@
     </Setting>
   </Settings>
   <Rules>
+    <Rule>
+      <Key>S112</Key>
+    </Rule>
     <Rule>
       <Key>S1134</Key>
     </Rule>
@@ -35,16 +38,31 @@
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S2342</Key>
+      <Key>S1656</Key>
+    </Rule>
+    <Rule>
+      <Key>S2068</Key>
       <Parameters>
         <Parameter>
-          <Key>flagsAttributeFormat</Key>
-          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
+          <Key>credentialWords</Key>
+          <Value>password, passwd, pwd, passphrase</Value>
         </Parameter>
+      </Parameters>
+    </Rule>
+    <Rule>
+      <Key>S2340</Key>
+    </Rule>
+    <Rule>
+      <Key>S2342</Key>
+      <Parameters>
         <Parameter>
           <Key>format</Key>
           <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
         </Parameter>
+        <Parameter>
+          <Key>flagsAttributeFormat</Key>
+          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
+        </Parameter>
       </Parameters>
     </Rule>
     <Rule>
@@ -80,12 +98,6 @@
     <Rule>
       <Key>S108</Key>
     </Rule>
-    <Rule>
-      <Key>S1110</Key>
-    </Rule>
-    <Rule>
-      <Key>S112</Key>
-    </Rule>
     <Rule>
       <Key>S114</Key>
       <Parameters>
@@ -113,36 +125,15 @@
         </Parameter>
       </Parameters>
     </Rule>
-    <Rule>
-      <Key>S1656</Key>
-    </Rule>
-    <Rule>
-      <Key>S1751</Key>
-    </Rule>
-    <Rule>
-      <Key>S1871</Key>
-    </Rule>
     <Rule>
       <Key>S1940</Key>
     </Rule>
-    <Rule>
-      <Key>S2068</Key>
-      <Parameters>
-        <Parameter>
-          <Key>credentialWords</Key>
-          <Value>password, passwd, pwd, passphrase</Value>
-        </Parameter>
-      </Parameters>
-    </Rule>
     <Rule>
       <Key>S2077</Key>
     </Rule>
     <Rule>
       <Key>S2234</Key>
     </Rule>
-    <Rule>
-      <Key>S2340</Key>
-    </Rule>
     <Rule>
       <Key>S2349</Key>
     </Rule>
@@ -170,14 +161,14 @@
     <Rule>
       <Key>S3776</Key>
       <Parameters>
-        <Parameter>
-          <Key>threshold</Key>
-          <Value>15</Value>
-        </Parameter>
         <Parameter>
           <Key>propertyThreshold</Key>
           <Value>3</Value>
         </Parameter>
+        <Parameter>
+          <Key>threshold</Key>
+          <Value>15</Value>
+        </Parameter>
       </Parameters>
     </Rule>
     <Rule>
@@ -211,10 +202,10 @@
       <Key>S1075</Key>
     </Rule>
     <Rule>
-      <Key>S1125</Key>
+      <Key>S1110</Key>
     </Rule>
     <Rule>
-      <Key>S1172</Key>
+      <Key>S1125</Key>
     </Rule>
     <Rule>
       <Key>S1197</Key>
@@ -238,22 +229,16 @@
       <Key>S1645</Key>
     </Rule>
     <Rule>
-      <Key>S1764</Key>
+      <Key>S1751</Key>
     </Rule>
     <Rule>
-      <Key>S1862</Key>
+      <Key>S1764</Key>
     </Rule>
     <Rule>
-      <Key>S2178</Key>
+      <Key>S1871</Key>
     </Rule>
     <Rule>
-      <Key>S2304</Key>
-      <Parameters>
-        <Parameter>
-          <Key>format</Key>
-          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?(\.([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)*$</Value>
-        </Parameter>
-      </Parameters>
+      <Key>S2178</Key>
     </Rule>
     <Rule>
       <Key>S2387</Key>
@@ -267,9 +252,6 @@
     <Rule>
       <Key>S2737</Key>
     </Rule>
-    <Rule>
-      <Key>S2951</Key>
-    </Rule>
     <Rule>
       <Key>S3011</Key>
     </Rule>
@@ -282,12 +264,6 @@
     <Rule>
       <Key>S3598</Key>
     </Rule>
-    <Rule>
-      <Key>S3884</Key>
-    </Rule>
-    <Rule>
-      <Key>S3998</Key>
-    </Rule>
     <Rule>
       <Key>S4201</Key>
     </Rule>
@@ -309,20 +285,11 @@
     <Rule>
       <Key>S5445</Key>
     </Rule>
-    <Rule>
-      <Key>S5547</Key>
-    </Rule>
-    <Rule>
-      <Key>S5659</Key>
-    </Rule>
-    <Rule>
-      <Key>S5944</Key>
-    </Rule>
     <Rule>
       <Key>S1066</Key>
     </Rule>
     <Rule>
-      <Key>S1155</Key>
+      <Key>S1172</Key>
     </Rule>
     <Rule>
       <Key>S1186</Key>
@@ -331,7 +298,16 @@
       <Key>S1313</Key>
     </Rule>
     <Rule>
-      <Key>S2365</Key>
+      <Key>S1862</Key>
+    </Rule>
+    <Rule>
+      <Key>S2304</Key>
+      <Parameters>
+        <Parameter>
+          <Key>format</Key>
+          <Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?(\.([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)*$</Value>
+        </Parameter>
+      </Parameters>
     </Rule>
     <Rule>
       <Key>S2368</Key>
@@ -343,10 +319,10 @@
       <Key>S2551</Key>
     </Rule>
     <Rule>
-      <Key>S2761</Key>
+      <Key>S2951</Key>
     </Rule>
     <Rule>
-      <Key>S3453</Key>
+      <Key>S3884</Key>
     </Rule>
     <Rule>
       <Key>S3889</Key>
@@ -361,10 +337,7 @@
       <Key>S3927</Key>
     </Rule>
     <Rule>
-      <Key>S4143</Key>
-    </Rule>
-    <Rule>
-      <Key>S4144</Key>
+      <Key>S3998</Key>
     </Rule>
     <Rule>
       <Key>S4210</Key>
@@ -373,28 +346,28 @@
       <Key>S4423</Key>
     </Rule>
     <Rule>
-      <Key>S4428</Key>
+      <Key>S5542</Key>
     </Rule>
     <Rule>
-      <Key>S5542</Key>
+      <Key>S5547</Key>
     </Rule>
     <Rule>
-      <Key>S5753</Key>
+      <Key>S5659</Key>
     </Rule>
     <Rule>
-      <Key>S927</Key>
+      <Key>S5944</Key>
     </Rule>
     <Rule>
       <Key>S1048</Key>
     </Rule>
     <Rule>
-      <Key>S1163</Key>
+      <Key>S1155</Key>
     </Rule>
     <Rule>
       <Key>S2257</Key>
     </Rule>
     <Rule>
-      <Key>S2372</Key>
+      <Key>S2365</Key>
     </Rule>
     <Rule>
       <Key>S2375</Key>
@@ -406,34 +379,64 @@
       </Parameters>
     </Rule>
     <Rule>
-      <Key>S2376</Key>
+      <Key>S2761</Key>
     </Rule>
     <Rule>
-      <Key>S3464</Key>
+      <Key>S3453</Key>
     </Rule>
     <Rule>
       <Key>S3466</Key>
     </Rule>
     <Rule>
-      <Key>S3869</Key>
+      <Key>S4036</Key>
     </Rule>
     <Rule>
-      <Key>S3903</Key>
+      <Key>S4143</Key>
     </Rule>
     <Rule>
-      <Key>S3904</Key>
+      <Key>S4144</Key>
     </Rule>
     <Rule>
-      <Key>S3981</Key>
+      <Key>S4159</Key>
     </Rule>
     <Rule>
-      <Key>S4036</Key>
+      <Key>S4260</Key>
     </Rule>
     <Rule>
-      <Key>S4159</Key>
+      <Key>S4428</Key>
     </Rule>
     <Rule>
-      <Key>S4260</Key>
+      <Key>S4830</Key>
+    </Rule>
+    <Rule>
+      <Key>S5753</Key>
+    </Rule>
+    <Rule>
+      <Key>S927</Key>
+    </Rule>
+    <Rule>
+      <Key>S1163</Key>
+    </Rule>
+    <Rule>
+      <Key>S2372</Key>
+    </Rule>
+    <Rule>
+      <Key>S2376</Key>
+    </Rule>
+    <Rule>
+      <Key>S3464</Key>
+    </Rule>
+    <Rule>
+      <Key>S3869</Key>
+    </Rule>
+    <Rule>
+      <Key>S3903</Key>
+    </Rule>
+    <Rule>
+      <Key>S3904</Key>
+    </Rule>
+    <Rule>
+      <Key>S3981</Key>
     </Rule>
     <Rule>
       <Key>S4275</Key>
@@ -447,9 +450,6 @@
     <Rule>
       <Key>S4792</Key>
     </Rule>
-    <Rule>
-      <Key>S4830</Key>
-    </Rule>
   </Rules>
   <Files>
   </Files>

+ 0 - 0
.sonarqube/out/.sonar/.sonar_lock


+ 6 - 0
.sonarqube/out/.sonar/report-task.txt

@@ -0,0 +1,6 @@
+projectKey=RPG-FIGHT
+serverUrl=http://nordh.xyz:9088
+serverVersion=9.4.0.54424
+dashboardUrl=http://nordh.xyz:9088/dashboard?id=RPG-FIGHT
+ceTaskId=AYB-tLlFMQhf_f0rkHms
+ceTaskUrl=http://nordh.xyz:9088/api/ce/task?id=AYB-tLlFMQhf_f0rkHms

+ 2076 - 0
.sonarqube/out/0/Issues.json

@@ -0,0 +1,2076 @@
+{
+  "$schema": "http://json.schemastore.org/sarif-1.0.0",
+  "version": "1.0.0",
+  "runs": [
+    {
+      "tool": {
+        "name": "Microsoft (R) Visual C# Compiler",
+        "version": "3.7.0.0",
+        "fileVersion": "3.7.0-6.20570.4 (dc3f4eef)",
+        "semanticVersion": "3.7.0",
+        "language": "en-US"
+      },
+      "results": [
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GameManagerScript.initiativeCreaturePanel' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 19,
+                  "startColumn": 33,
+                  "endLine": 19,
+                  "endColumn": 56
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'InitCreaturePanelScript.healthBar' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Panels/InitPanel/InitCreaturePanelScript.cs",
+                "region": {
+                  "startLine": 8,
+                  "startColumn": 28,
+                  "endLine": 8,
+                  "endColumn": 37
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'Creature.creatureImage' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 10,
+                  "startColumn": 29,
+                  "endLine": 10,
+                  "endColumn": 42
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'Creature.humanControlled' is never assigned to, and will always have its default value false",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 11,
+                  "startColumn": 27,
+                  "endLine": 11,
+                  "endColumn": 42
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GameManagerScript.roundActionsPanel' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 20,
+                  "startColumn": 33,
+                  "endLine": 20,
+                  "endColumn": 50
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GameManagerScript.humans' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 17,
+                  "startColumn": 39,
+                  "endLine": 17,
+                  "endColumn": 45
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GenerateSkeletonScript.skeletonPrefab' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/GenerateSkeletonScript.cs",
+                "region": {
+                  "startLine": 9,
+                  "startColumn": 33,
+                  "endLine": 9,
+                  "endColumn": 47
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GameManagerScript.enemies' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 16,
+                  "startColumn": 39,
+                  "endLine": 16,
+                  "endColumn": 46
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'StartFightScript.startFightButton' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Panels/StartFightPanel/StartFightScript.cs",
+                "region": {
+                  "startLine": 8,
+                  "startColumn": 29,
+                  "endLine": 8,
+                  "endColumn": 45
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'RoundManager.executeRoundButton' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/RoundManager.cs",
+                "region": {
+                  "startLine": 11,
+                  "startColumn": 29,
+                  "endLine": 11,
+                  "endColumn": 47
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0649",
+          "level": "warning",
+          "message": "Field 'GameManagerScript.initiativePanel' is never assigned to, and will always have its default value null",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 18,
+                  "startColumn": 33,
+                  "endLine": 18,
+                  "endColumn": 48
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 4
+          }
+        },
+        {
+          "ruleId": "CS0414",
+          "level": "warning",
+          "message": "The field 'MoveAction.shouldMove' is assigned but its value is never used",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 12,
+                  "startColumn": 18,
+                  "endLine": 12,
+                  "endColumn": 28
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 3
+          }
+        },
+        {
+          "ruleId": "S125",
+          "level": "warning",
+          "message": "Remove this commented out code.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/AttackAction.cs",
+                "region": {
+                  "startLine": 14,
+                  "startColumn": 9,
+                  "endLine": 14,
+                  "endColumn": 54
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S125",
+          "level": "warning",
+          "message": "Remove this commented out code.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 13,
+                  "startColumn": 5,
+                  "endLine": 13,
+                  "endColumn": 33
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1135",
+          "level": "warning",
+          "message": "Complete the task associated to this 'TODO' comment.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/RoundManager.cs",
+                "region": {
+                  "startLine": 54,
+                  "startColumn": 20,
+                  "endLine": 54,
+                  "endColumn": 24
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1135",
+          "level": "warning",
+          "message": "Complete the task associated to this 'TODO' comment.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/RoundManager.cs",
+                "region": {
+                  "startLine": 64,
+                  "startColumn": 79,
+                  "endLine": 64,
+                  "endColumn": 83
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1134",
+          "level": "warning",
+          "message": "Take the required action to fix the issue indicated by this 'FIXME' comment.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/RoundManager.cs",
+                "region": {
+                  "startLine": 67,
+                  "startColumn": 68,
+                  "endLine": 67,
+                  "endColumn": 73
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1144",
+          "level": "warning",
+          "message": "Remove the unused private field 'target'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 5,
+                  "endLine": 7,
+                  "endColumn": 31
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1144",
+          "level": "warning",
+          "message": "Remove the unused private method 'Start'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 16,
+                  "startColumn": 5,
+                  "endLine": 18,
+                  "endColumn": 6
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1144",
+          "level": "warning",
+          "message": "Remove the unused private method 'Update'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 21,
+                  "startColumn": 5,
+                  "endLine": 23,
+                  "endColumn": 6
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S4487",
+          "level": "warning",
+          "message": "Remove this unread private field 'target' or refactor the code to use its value.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/AttackAction.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 14,
+                  "endLine": 6,
+                  "endColumn": 20
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'target' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/AttackAction.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 14,
+                  "endLine": 6,
+                  "endColumn": 20
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'GenerateSkeletonScript' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/GenerateSkeletonScript.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 14,
+                  "endLine": 7,
+                  "endColumn": 36
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'AttackAction' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/AttackAction.cs",
+                "region": {
+                  "startLine": 5,
+                  "startColumn": 14,
+                  "endLine": 5,
+                  "endColumn": 26
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'NewSkeletonSpriteScript' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/NewSkeletonSpriteScript.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 14,
+                  "endLine": 6,
+                  "endColumn": 37
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'SpellAction' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 5,
+                  "startColumn": 14,
+                  "endLine": 5,
+                  "endColumn": 25
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'InitCreaturePanelScript' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Panels/InitPanel/InitCreaturePanelScript.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 14,
+                  "endLine": 6,
+                  "endColumn": 37
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'CameraManager' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/CameraManager.cs",
+                "region": {
+                  "startLine": 4,
+                  "startColumn": 14,
+                  "endLine": 4,
+                  "endColumn": 27
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1144",
+          "level": "warning",
+          "message": "Remove the unused private constructor 'Die'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 5,
+                  "endLine": 9,
+                  "endColumn": 6
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2245",
+          "level": "warning",
+          "message": "Make sure that using this pseudorandom number generator is safe here.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 18,
+                  "endLine": 6,
+                  "endColumn": 30
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'combatants' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 28,
+                  "startColumn": 20,
+                  "endLine": 28,
+                  "endColumn": 30
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'sides' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 5,
+                  "startColumn": 9,
+                  "endLine": 5,
+                  "endColumn": 14
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'GameManagerScript' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 11,
+                  "startColumn": 14,
+                  "endLine": 11,
+                  "endColumn": 31
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'rnd' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 6,
+                  "startColumn": 12,
+                  "endLine": 6,
+                  "endColumn": 15
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3453",
+          "level": "warning",
+          "message": "This class can't be instantiated; make its constructor 'public'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 3,
+                  "startColumn": 16,
+                  "endLine": 3,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'IAction' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/IAction.cs",
+                "region": {
+                  "startLine": 5,
+                  "startColumn": 18,
+                  "endLine": 5,
+                  "endColumn": 25
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'Human' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Human.cs",
+                "region": {
+                  "startLine": 5,
+                  "startColumn": 14,
+                  "endLine": 5,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'StartFightScript' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Panels/StartFightPanel/StartFightScript.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 14,
+                  "endLine": 7,
+                  "endColumn": 30
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'Die' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Die.cs",
+                "region": {
+                  "startLine": 3,
+                  "startColumn": 16,
+                  "endLine": 3,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'RoundManager' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/RoundManager.cs",
+                "region": {
+                  "startLine": 9,
+                  "startColumn": 14,
+                  "endLine": 9,
+                  "endColumn": 26
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S4487",
+          "level": "warning",
+          "message": "Remove this unread private field 'damageType' or refactor the code to use its value.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 24,
+                  "startColumn": 17,
+                  "endLine": 24,
+                  "endColumn": 27
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S4487",
+          "level": "warning",
+          "message": "Remove this unread private field 'weaponType' or refactor the code to use its value.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 25,
+                  "startColumn": 17,
+                  "endLine": 25,
+                  "endColumn": 27
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'attackDie' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 23,
+                  "startColumn": 9,
+                  "endLine": 23,
+                  "endColumn": 18
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'damageType' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 24,
+                  "startColumn": 17,
+                  "endLine": 24,
+                  "endColumn": 27
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'weaponType' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 25,
+                  "startColumn": 17,
+                  "endLine": 25,
+                  "endColumn": 27
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'Weapon' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 1,
+                  "startColumn": 16,
+                  "endLine": 1,
+                  "endColumn": 22
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1144",
+          "level": "warning",
+          "message": "Remove the unused private field 'shouldMove'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 12,
+                  "startColumn": 5,
+                  "endLine": 12,
+                  "endColumn": 37
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2292",
+          "level": "warning",
+          "message": "Make this an auto-implemented property and remove its backing field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 38,
+                  "startColumn": 16,
+                  "endLine": 38,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2292",
+          "level": "warning",
+          "message": "Make this an auto-implemented property and remove its backing field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 40,
+                  "startColumn": 16,
+                  "endLine": 40,
+                  "endColumn": 20
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2292",
+          "level": "warning",
+          "message": "Make this an auto-implemented property and remove its backing field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 42,
+                  "startColumn": 16,
+                  "endLine": 42,
+                  "endColumn": 30
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2292",
+          "level": "warning",
+          "message": "Make this an auto-implemented property and remove its backing field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 44,
+                  "startColumn": 23,
+                  "endLine": 44,
+                  "endColumn": 33
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'shouldMove' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 12,
+                  "startColumn": 18,
+                  "endLine": 12,
+                  "endColumn": 28
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'MoveAction' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 14,
+                  "endLine": 7,
+                  "endColumn": 24
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2933",
+          "level": "warning",
+          "message": "Make 'actions' 'readonly'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 16,
+                  "startColumn": 27,
+                  "endLine": 16,
+                  "endColumn": 34
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3903",
+          "level": "warning",
+          "message": "Move 'Creature' into a named namespace.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 8,
+                  "startColumn": 14,
+                  "endLine": 8,
+                  "endColumn": 22
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2342",
+          "level": "warning",
+          "message": "Rename this enumeration to match the regular expression: '^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 3,
+                  "startColumn": 17,
+                  "endLine": 3,
+                  "endColumn": 28
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2342",
+          "level": "warning",
+          "message": "Rename this enumeration to match the regular expression: '^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Weapon.cs",
+                "region": {
+                  "startLine": 11,
+                  "startColumn": 17,
+                  "endLine": 11,
+                  "endColumn": 28
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1186",
+          "level": "warning",
+          "message": "Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 16,
+                  "startColumn": 10,
+                  "endLine": 16,
+                  "endColumn": 15
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1186",
+          "level": "warning",
+          "message": "Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/SpellAction.cs",
+                "region": {
+                  "startLine": 21,
+                  "startColumn": 10,
+                  "endLine": 21,
+                  "endColumn": 16
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2696",
+          "level": "warning",
+          "message": "Make the enclosing instance method 'static' or remove this set on the 'static' field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/CameraManager.cs",
+                "region": {
+                  "startLine": 14,
+                  "startColumn": 9,
+                  "endLine": 14,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "relatedLocations": [
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/CameraManager.cs",
+                "region": {
+                  "startLine": 7,
+                  "startColumn": 34,
+                  "endLine": 7,
+                  "endColumn": 42
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1186",
+          "level": "warning",
+          "message": "Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Skeleton.cs",
+                "region": {
+                  "startLine": 60,
+                  "startColumn": 21,
+                  "endLine": 60,
+                  "endColumn": 29
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1186",
+          "level": "warning",
+          "message": "Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Human.cs",
+                "region": {
+                  "startLine": 18,
+                  "startColumn": 10,
+                  "endLine": 18,
+                  "endColumn": 16
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2259",
+          "level": "warning",
+          "message": "'closestEnemy' is null on at least one execution path.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 110,
+                  "startColumn": 41,
+                  "endLine": 110,
+                  "endColumn": 53
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S1186",
+          "level": "warning",
+          "message": "Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 123,
+                  "startColumn": 18,
+                  "endLine": 123,
+                  "endColumn": 34
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2184",
+          "level": "warning",
+          "message": "Cast one of the operands of this division to 'float'.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Creature.cs",
+                "region": {
+                  "startLine": 125,
+                  "startColumn": 85,
+                  "endLine": 125,
+                  "endColumn": 110
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S2696",
+          "level": "warning",
+          "message": "Make the enclosing instance method 'static' or remove this set on the 'static' field.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 37,
+                  "startColumn": 9,
+                  "endLine": 37,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "relatedLocations": [
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/GameManagerScript.cs",
+                "region": {
+                  "startLine": 30,
+                  "startColumn": 30,
+                  "endLine": 30,
+                  "endColumn": 38
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S112",
+          "level": "warning",
+          "message": "'System.Exception' should not be thrown by user code.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 78,
+                  "startColumn": 27,
+                  "endLine": 78,
+                  "endColumn": 67
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S112",
+          "level": "warning",
+          "message": "'System.Exception' should not be thrown by user code.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 115,
+                  "startColumn": 27,
+                  "endLine": 115,
+                  "endColumn": 68
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1
+          }
+        },
+        {
+          "ruleId": "S3776",
+          "level": "warning",
+          "message": "Refactor this method to reduce its Cognitive Complexity from 48 to the 15 allowed.",
+          "locations": [
+            {
+              "resultFile": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 42,
+                  "startColumn": 24,
+                  "endLine": 42,
+                  "endColumn": 37
+                }
+              }
+            }
+          ],
+          "relatedLocations": [
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 44,
+                  "startColumn": 9,
+                  "endLine": 44,
+                  "endColumn": 11
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 47,
+                  "startColumn": 13,
+                  "endLine": 47,
+                  "endColumn": 18
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 49,
+                  "startColumn": 17,
+                  "endLine": 49,
+                  "endColumn": 19
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 49,
+                  "startColumn": 37,
+                  "endLine": 49,
+                  "endColumn": 39
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 51,
+                  "startColumn": 21,
+                  "endLine": 51,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 54,
+                  "startColumn": 23,
+                  "endLine": 54,
+                  "endColumn": 27
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 59,
+                  "startColumn": 21,
+                  "endLine": 59,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 62,
+                  "startColumn": 23,
+                  "endLine": 62,
+                  "endColumn": 27
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 71,
+                  "startColumn": 21,
+                  "endLine": 71,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 77,
+                  "startColumn": 17,
+                  "endLine": 77,
+                  "endColumn": 19
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 81,
+                  "startColumn": 11,
+                  "endLine": 81,
+                  "endColumn": 15
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 84,
+                  "startColumn": 13,
+                  "endLine": 84,
+                  "endColumn": 18
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 86,
+                  "startColumn": 17,
+                  "endLine": 86,
+                  "endColumn": 19
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 86,
+                  "startColumn": 37,
+                  "endLine": 86,
+                  "endColumn": 39
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 88,
+                  "startColumn": 21,
+                  "endLine": 88,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 91,
+                  "startColumn": 23,
+                  "endLine": 91,
+                  "endColumn": 27
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 96,
+                  "startColumn": 21,
+                  "endLine": 96,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 99,
+                  "startColumn": 23,
+                  "endLine": 99,
+                  "endColumn": 27
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 105,
+                  "startColumn": 21,
+                  "endLine": 105,
+                  "endColumn": 23
+                }
+              }
+            },
+            {
+              "physicalLocation": {
+                "uri": "file:///F:/Unity/Projects/RPG-Fight-Test/Assets/Scripts/Creatures/Actions/MoveAction.cs",
+                "region": {
+                  "startLine": 114,
+                  "startColumn": 17,
+                  "endLine": 114,
+                  "endColumn": 19
+                }
+              }
+            }
+          ],
+          "properties": {
+            "warningLevel": 1,
+            "customProperties": {
+              "0": "+1",
+              "1": "+2 (incl 1 for nesting)",
+              "10": "+1",
+              "11": "+2 (incl 1 for nesting)",
+              "12": "+3 (incl 2 for nesting)",
+              "13": "+1",
+              "14": "+4 (incl 3 for nesting)",
+              "15": "+1",
+              "16": "+4 (incl 3 for nesting)",
+              "17": "+1",
+              "18": "+4 (incl 3 for nesting)",
+              "19": "+3 (incl 2 for nesting)",
+              "2": "+3 (incl 2 for nesting)",
+              "3": "+1",
+              "4": "+4 (incl 3 for nesting)",
+              "5": "+1",
+              "6": "+4 (incl 3 for nesting)",
+              "7": "+1",
+              "8": "+4 (incl 3 for nesting)",
+              "9": "+3 (incl 2 for nesting)"
+            }
+          }
+        },
+        {
+          "ruleId": "S3904",
+          "level": "warning",
+          "message": "Provide an 'AssemblyVersion' attribute for assembly 'Assembly-CSharp'.",
+          "properties": {
+            "warningLevel": 1
+          }
+        }
+      ],
+      "rules": {
+        "CS0414": {
+          "id": "CS0414",
+          "shortDescription": "Field is assigned but its value is never used",
+          "defaultLevel": "warning",
+          "properties": {
+            "category": "Compiler",
+            "isEnabledByDefault": true,
+            "tags": [
+              "Compiler",
+              "Telemetry"
+            ]
+          }
+        },
+        "CS0649": {
+          "id": "CS0649",
+          "shortDescription": "Field is never assigned to, and will always have its default value",
+          "defaultLevel": "warning",
+          "properties": {
+            "category": "Compiler",
+            "isEnabledByDefault": true,
+            "tags": [
+              "Compiler",
+              "Telemetry"
+            ]
+          }
+        },
+        "S112": {
+          "id": "S112",
+          "shortDescription": "General exceptions should never be thrown",
+          "fullDescription": "Throwing such general exceptions as Exception, SystemException, ApplicationException, IndexOutOfRangeException, NullReferenceException, OutOfMemoryException and ExecutionEngineException prevents calling methods from handling true, system-generated exceptions differently than application-generated errors.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-112",
+          "properties": {
+            "category": "Major Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope"
+            ]
+          }
+        },
+        "S1134": {
+          "id": "S1134",
+          "shortDescription": "Track uses of \"FIXME\" tags",
+          "fullDescription": "FIXME tags are commonly used to mark places where a bug is suspected, but which the developer wants to deal with later.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-1134",
+          "properties": {
+            "category": "Major Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S1135": {
+          "id": "S1135",
+          "shortDescription": "Track uses of \"TODO\" tags",
+          "fullDescription": "TODO tags are commonly used to mark places where some more code is required, but which the developer wants to implement later.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-1135",
+          "properties": {
+            "category": "Info Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S1144": {
+          "id": "S1144",
+          "shortDescription": "Unused private types or members should be removed",
+          "fullDescription": "private or internal types or private members that are never executed or referenced are dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.",
+          "defaultLevel": "note",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-1144",
+          "properties": {
+            "category": "Major Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope",
+              "Unnecessary"
+            ]
+          }
+        },
+        "S1186": {
+          "id": "S1186",
+          "shortDescription": "Methods should not be empty",
+          "fullDescription": "There are several reasons for a method not to have a method body:",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-1186",
+          "properties": {
+            "category": "Critical Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S125": {
+          "id": "S125",
+          "shortDescription": "Sections of code should not be commented out",
+          "fullDescription": "Programmers should not comment out code as it bloats programs and reduces readability.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-125",
+          "properties": {
+            "category": "Major Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S2184": {
+          "id": "S2184",
+          "shortDescription": "Results of integer division should not be assigned to floating point variables",
+          "fullDescription": "When division is performed on ints, the result will always be an int. You can assign that result to a double, float or decimal with automatic type conversion, but having started as an int, the result will likely not be what you expect. If the result of int division is assigned to a floating-point variable, precision will have been lost before the assignment. Instead, at least one operand should be cast or promoted to the final type before the operation takes place.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2184",
+          "properties": {
+            "category": "Minor Bug",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S2245": {
+          "id": "S2245",
+          "shortDescription": "Using pseudorandom number generators (PRNGs) is security-sensitive",
+          "fullDescription": "Using pseudorandom number generators (PRNGs) is security-sensitive. For example, it has led in the past to the following vulnerabilities:",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2245",
+          "properties": {
+            "category": "Critical Security Hotspot",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "NotConfigurable"
+            ]
+          }
+        },
+        "S2259": {
+          "id": "S2259",
+          "shortDescription": "Null pointers should not be dereferenced",
+          "fullDescription": "A reference to null should never be dereferenced/accessed. Doing so will cause a NullReferenceException to be thrown. At best, such an exception will cause abrupt program termination. At worst, it could expose debugging information that would be useful to an attacker, or it could allow an attacker to bypass security measures.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2259",
+          "properties": {
+            "category": "Major Bug",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope"
+            ]
+          }
+        },
+        "S2292": {
+          "id": "S2292",
+          "shortDescription": "Trivial properties should be auto-implemented",
+          "fullDescription": "Trivial properties, which include no logic but setting and getting a backing field should be converted to auto-implemented properties, yielding cleaner and more readable code.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2292",
+          "properties": {
+            "category": "Minor Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S2342": {
+          "id": "S2342",
+          "shortDescription": "Enumeration types should comply with a naming convention",
+          "fullDescription": "Shared naming conventions allow teams to collaborate efficiently. This rule checks that all enum names match a provided regular expression.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2342",
+          "properties": {
+            "category": "Minor Code Smell",
+            "isEnabledByDefault": false,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S2696": {
+          "id": "S2696",
+          "shortDescription": "Instance members should not write to \"static\" fields",
+          "fullDescription": "Correctly updating a static field from a non-static method is tricky to get right and could easily lead to bugs if there are multiple class instances and/or multiple threads in play.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2696",
+          "properties": {
+            "category": "Critical Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope"
+            ]
+          }
+        },
+        "S2933": {
+          "id": "S2933",
+          "shortDescription": "Fields that are only assigned in the constructor should be \"readonly\"",
+          "fullDescription": "readonly fields can only be assigned in a class constructor. If a class has a field that’s not marked readonly but is only set in the constructor, it could cause confusion about the field’s intended use. To avoid confusion, such fields should be marked readonly to make their intended use explicit, and to prevent future maintainers from inadvertently changing their use.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2933",
+          "properties": {
+            "category": "Major Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S3453": {
+          "id": "S3453",
+          "shortDescription": "Classes should not have only \"private\" constructors",
+          "fullDescription": "A class with only private constructors can’t be instantiated, thus, it seems to be pointless code.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-3453",
+          "properties": {
+            "category": "Major Bug",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S3776": {
+          "id": "S3776",
+          "shortDescription": "Cognitive Complexity of methods should not be too high",
+          "fullDescription": "Cognitive Complexity is a measure of how hard the control flow of a method is to understand. Methods with high Cognitive Complexity will be difficult to maintain.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-3776",
+          "properties": {
+            "category": "Critical Code Smell",
+            "isEnabledByDefault": false,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S3903": {
+          "id": "S3903",
+          "shortDescription": "Types should be defined in named namespaces",
+          "fullDescription": "Types are declared in namespaces in order to prevent name collisions and as a way to organize them into the object hierarchy. Types that are defined outside any named namespace are in a global namespace that cannot be referenced in code.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-3903",
+          "properties": {
+            "category": "Major Bug",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope"
+            ]
+          }
+        },
+        "S3904": {
+          "id": "S3904",
+          "shortDescription": "Assemblies should have version information",
+          "fullDescription": "If no AssemblyVersionAttribute is provided, the same default version will be used for every build. Since the version number is used by The .NET Framework to uniquely identify an assembly this can lead to broken dependencies.",
+          "defaultLevel": "warning",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-3904",
+          "properties": {
+            "category": "Critical Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope"
+            ]
+          }
+        },
+        "S4487": {
+          "id": "S4487",
+          "shortDescription": "Unread \"private\" fields should be removed",
+          "fullDescription": "Private fields only used to store values without reading them later is a case of dead store. So changing the value of such field is useless and most probably indicates a serious error in the code.",
+          "defaultLevel": "note",
+          "helpUri": "https://rules.sonarsource.com/csharp/RSPEC-4487",
+          "properties": {
+            "category": "Critical Code Smell",
+            "isEnabledByDefault": true,
+            "tags": [
+              "C#",
+              "SonarWay",
+              "MainSourceScope",
+              "TestSourceScope",
+              "Unnecessary"
+            ]
+          }
+        }
+      }
+    }
+  ]
+}

+ 18 - 0
.sonarqube/out/0/ProjectInfo.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ProjectInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">
+  <ProjectName>Assembly-CSharp</ProjectName>
+  <ProjectLanguage>C#</ProjectLanguage>
+  <ProjectType>Product</ProjectType>
+  <ProjectGuid>d79eaa4a-97db-b041-b157-750d1d1e3aa6</ProjectGuid>
+  <FullPath>F:\Unity\Projects\RPG-Fight-Test\Assembly-CSharp.csproj</FullPath>
+  <IsExcluded>false</IsExcluded>
+  <AnalysisResults>
+    <AnalysisResult Id="FilesToAnalyze" Location="F:\Unity\Projects\RPG-Fight-Test\.sonarqube\conf\0\FilesToAnalyze.txt" />
+  </AnalysisResults>
+  <AnalysisSettings>
+    <Property Name="sonar.cs.roslyn.reportFilePaths">F:\Unity\Projects\RPG-Fight-Test\.sonarqube\out\0\Issues.json</Property>
+    <Property Name="sonar.cs.analyzer.projectOutPaths">F:\Unity\Projects\RPG-Fight-Test\.sonarqube\out\0</Property>
+  </AnalysisSettings>
+  <Configuration>Debug</Configuration>
+  <Platform>AnyCPU</Platform>
+</ProjectInfo>

+ 18 - 0
.sonarqube/out/0/output-cs/file-metadata.pb

@@ -0,0 +1,18 @@
+M
+DF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.csutf-8c
+ZF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.csutf-8S
+JF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.csutf-8N
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.csutf-8Z
+QF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.csutf-8X
+OF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.csutf-8Y
+PF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.csutf-8B
+9F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.csutf-8I
+@F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.csutf-8H
+?F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.csutf-8N
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.csutf-8?
+6F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.csutf-8\
+SF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.csutf-8U
+LF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.csutf-8d
+[F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.csutf-8K
+BF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.csutf-8h
+]F:\Unity\Projects\RPG-Fight-Test\obj\Debug\.NETFramework,Version=v4.7.1.AssemblyAttributes.csutf-8

+ 1 - 0
.sonarqube/out/0/output-cs/log.pb

@@ -0,0 +1 @@
+Roslyn version: 3.7.0.0Language version: CSharp8"Concurrent execution: disabled…€File 'F:\Unity\Projects\RPG-Fight-Test\obj\Debug\.NETFramework,Version=v4.7.1.AssemblyAttributes.cs' was recognized as generated

+ 31 - 0
.sonarqube/out/0/output-cs/metrics.pb

@@ -0,0 +1,31 @@
+Ç
+DF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.cs  8rQ !"$%&'(*+,-/0124578:;<=?@ABCDFGHJKLMNOQRSUVWXYZ[]^`abdfghix‚!!%&'+,/057;<?@ABCGKLMRVWXYZ[]^`ag{
+ZF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.cs 8r
+‚p
+JF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.cs 8j	r
+
x‚Ø
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.cs! 8(rc
+
 !"$&(*+,./01345789;<=?@ACDEGHIKLMOPQRSTUVWXZ[\^_`bcdeghijklmnoprstwxyz{}~€x‚/048<@DHLQRSTW[_deghijknosxyz}q
+QF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.cs 8jr	
+
‚	
‘
+OF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.cs@ 8j	$%&'(GQVirh	
+
 !*+,-./0123456789;<=>?@ACEFGHIJKLMNOPQRSTUVWXYZ[\]^`abcdefghijklmopqrstuvxy{}~x0‚> +,-/012345678;<=>?@CEFGHIKMNRTUVWXYZ[\]`abcdeghijkmoprsxr
+PF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.cs 8j
r
	
+‚
+e
+9F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.cs 8r	
‚…
+@F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.cs 8	r'	
+
 !"#$%'()+,-.x‚
+!(,´
+?F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.cs 8j6@ACDrA	
 !"#$&'()*,-./1234789:;<=>?@BCEFHIJKMNOPx‚ !'()-.23479:;<>@CHIN©
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.cs 8j")r3	
+
 #$&'(*+,-./012346789<>?@x‚
+
$&'*,-./34678R
+6F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.cs 8r	
‚|
+SF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.cs 8r	
‚
X
+LF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.csr~
+[F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.cs 8r
+‚j
+BF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.cs 8jr	
+
‚	
+


+ 351 - 0
.sonarqube/out/0/output-cs/symrefs.pb

@@ -0,0 +1,351 @@
+ð
+DF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.cs
+
     #(
+ ++ ,, 55' /(
+ // 00 CC 
+& -&& #
+& ,'' "<
+  /KK &MM .RR VV ZZ. =
+  7XX> U
+  1GG 
+  "+ /
+ $$ +4 ;
+
+ 
+- 0> C
+ ^^ aa  $
+$ '2 7P
+ && '' ;; ?? CC% /WW gg 
+ %!! %% 
+
+  $ /
+
+$$ 
+&&+ ,&&0 1
+''* +''/ 0
+
+** 
+
+44$ 3
+55! $77 
+
+::  
+;; #<< 
+?? ??" #
+?? ??8 9
+JJ @@ 
+UU  AA 
+FF &BB 
+FF, 0GG$ (
+KK LL (
+LL LL# $LL+ ,MMB C
+
+QQ 
+QQ& *RR" &Z
+WW [[K L]] ]]+ ,]]\ ]^^, -`` 
aa 
aa1 22
+XX $YY ZZ [[ ``$ 1
+
+ff ' 
+ZF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.cs
+
+
 
+ , 
+
+
+
+	 
+ !- =¦
+JF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.cs
+
+
 $
+	   
+
+
+
+	 
+
+ 
+! & ¬
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.cs‚
+
 OO OO: BOOR ZPP
 PP/ 7QQ bb
 bb' /bb? Gcc ee
 gg 
+
+
+ )@@ 
+ )DD 
+

 (( !((* .(
+ && &&( +<<% (
+ **' 5**> L
+
+ !(
+ xx yy }}` m
+ }}T ]
+
+ 
+
+ 
+ #// 
+ '00 
+ !,,* 4,,= G
+
+ #(
+    HH __ 
+!!  88 LL 
+"" )}} 
+
+$$ 
+
+&& 
+&&! $&&. 3
+(( 44 << 
+((# &((1 6
+
+** 
+**7 :**O T
+++ ss <
+,,  RR! +RR7 A[[ hh, 6hhA K
+,,6 9,,J O
+
+.. 
+
+33 
+
+77 !
+
+;; 
+
+?? 
+CC !ee; Lee[ l
+
+GG 
+GG' -HH 
+
+KK 
+KK( .LL 
+
+OO 9
+OOC KRR. 6SS "
+OO\ fQQ )
+PP #TT WW (
+QQ RR  SS TT! "2
+RR SS+ 3SS> FSSR ZSSe m
+
+ZZ #
+ZZ/ 9[[ 
+
+^^ 
+
+bb &
+bb0 8eeR Zhh8 @
+bbI See! +(
+cc jj nn( 4oo 
+dd ii kk 
+ee gg &
+ee4 5ee9 :
+gg hh* +jj  
+hh ii kk 
+rr zz 
+
+ww 
+ww %xx £
+QF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.cs
+
+
 
+
 		
 
+
+ 
+! '		 
+
+ $½	
+OF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.cs
+
+
 @
+  --D QRRW d
+ppƒ �
+pp­ º2
+		  --3 App: Hppe sŒ
+
+
+   
 22' -EE GG HH" (HHI OWW' -gg ii jj" (jjI OooW ]pp $(
+ # RR3 Aoo3 A
+
+ (
+

   ,, 2
+ FF  GG/ ;hh  ii/ ;
+
+  
+) 1  
+
+ !
+* 3 "
+
+ !
++ 1 
+
+ !
++ 1   
+
+** $>
+++ -- &RR &oo &ppQ X
+pp™  x
+-- // 11 11' /33  55  66 '88  ;;  ==  >> '@@  
+.. 00 MM F
+22 $44  77  <<  ??  CC% -EE0 8
+{{ !CC $Ž
+RR TT VV VV' /XX  ZZ  [[ ']]  ``  bb  cc 'ee  oo 
+ppÎ Ö
+SS UU rr <
+WW $YY  \\  aa  dd  gg0 8
+
+{{* 2Ž
+PF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.cs
+
+
 
+
+ 
+
+		 $
+
+	 
+
+	 ¡
+9F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.cs
+  + 1
+  $ 
+
+ 

+
+ 

+
+ 
+
+ 
+
+ 
+ 2 = 
+
+ 
+
+

 

+
+ 
+
+ 
+% ) 
+> H $
+N W "
+ 
  
+ 
 
+ 
 
+
+ Ü
+@F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.cs
+
   		 (
+% . (( ,, 
+! )
+
+  
+
+		  +
+
+

 
+
+ (
+% 2  "!! 2
+ & $ $ $""( 8
+
+'' 
+
+++ !
+++- 7,, %¿
+?F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.cs
+
+		
 (
+ .  II n
+ % )  # -''
 --
 -- $22& 0>>= G@@: DCC3 =NN 
+

 
 
(( 

+   
+
+ 
+ / ;
+  
+
+ 
+   !! !!5 6
+
+&& !
+&&1 ;'' $
+11 )) .. 
+
+,,  
+--- .--2 3d
+22 "33 44> F77 ::( 0;;) 1<< >> @@ CC #2
+88 !99 :: ;; <<, .
+MM 5HH 0
+NN NN# $NN9 :ë
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.cs
+
+ <
+ )N X? I$$N X**? I33 
+
+		 
+ &66 
+ ' 0 <
+ %) 52
+ !    %
+## '77 
+$$ '&& ''1 =
+** %--) 52
+++ !,, -- .. //  &
+
+22 !
+221 ;33 (44N X
+44 '883 ?
+
+<< ¨
+6F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.cs
+
+ 
+ 

   
+  
+
+ 
+  
+
+ ï
+SF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.cs
+
+
 #
+		  .? M
+
+	 
+ 

 
+ 

# 0
+ %  
+  0 8f
+LF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.cs
+
+ 
+
+ $ï
+[F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.cs
+
+
 $
+   
+ $ 
+
+
+
+ 
+
+ 
+  & %
+
+ 
+& / (h
+BF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.cs
+
+
 
+
+	 
+
+	 

+ 3475 - 0
.sonarqube/out/0/output-cs/token-cpd.pb

@@ -0,0 +1,3475 @@
+öQ
+DF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.cs
+public 
+class 
+GameManagerScript
 
+:  
+
MonoBehaviour! .
+{/ 0
+CinemachineBrain 
+camBrain 
+; 
+RoundManager 
+roundManager 
+; 
+[ 
+SerializeField 
+] 
+List 
+< 
+
+GameObject $
+>$ %
+enemies& -
+;- .
+[ 
+SerializeField 
+] 
+List 
+< 
+
+GameObject $
+>$ %
+humans& ,
+;, -
+[ 
+SerializeField 
+] 
+
+GameObject 
+initiativePanel  /
+;/ 0
+[ 
+SerializeField 
+] 
+
+GameObject #
+initiativeCreaturePanel  7
+;7 8
+[ 
+SerializeField 
+] 
+
+GameObject 
+roundActionsPanel  1
+;1 2
+[ 
+SerializeField 
+] 
+Grid 
+grid 
+; 
+[ 
+SerializeField 
+] 
+Tilemap 
+tileMap $
+;$ %
+public 
+
+Tilemap 
+TileMap 
+{ 
+get  
+=>! #
+tileMap$ +
+;+ ,
+set- 0
+=>1 3
+tileMap4 ;
+=< =
+value> C
+;C D
+}E F
+public 
+
+Grid 
+Grid 
+{ 
+get 
+=> 
+grid "
+;" #
+set$ '
+=>( *
+grid+ /
+=0 1
+value2 7
+;7 8
+}9 :
+List 
+< 	
+Creature	 
+> 
+
+combatants 
+= 
+new  #
+List$ (
+<( )
+Creature) 1
+>1 2
+(2 3
+)3 4
+;4 5
+static 
+
+GameManagerScript 
+instance %
+;% &
+public   
+
+static   
+GameManagerScript   #
+GetInstance  $ /
+(  / 0
+)  0 1
+{  2 3
+return!! 
+instance!! 
+;!! 
+}"" 
+private$$ 
+void$$ 
+Start$$ 
+($$ 
+)$$ 
+{$$ 
+instance%% 
+=%% 
+this%% 
+;%% 
+
+combatants&& 
+.&& 
+AddRange&& 
+(&& 
+enemies&& #
+.&&# $
+Select&&$ *
+(&&* +
+e&&+ ,
+=>&&- /
+e&&0 1
+.&&1 2
+GetComponent&&2 >
+<&&> ?
+Creature&&? G
+>&&G H
+(&&H I
+)&&I J
+)&&J K
+)&&K L
+;&&L M
+
+combatants'' 
+.'' 
+AddRange'' 
+('' 
+humans'' "
+.''" #
+Select''# )
+('') *
+h''* +
+=>'', .
+h''/ 0
+.''0 1
+GetComponent''1 =
+<''= >
+Creature''> F
+>''F G
+(''G H
+)''H I
+)''I J
+)''J K
+;''K L
+}(( 
+private** 
+void** 
+Awake** 
+(** 
+)** 
+{** 
+if++ 
+
+(++ 
+camBrain++ 
+==++ 
+null++ 
+)++ 
+{++ 
+camBrain,, 
+=,, 
+Camera,, 
+.,, 
+main,, "
+.,," #
+GetComponent,,# /
+<,,/ 0
+CinemachineBrain,,0 @
+>,,@ A
+(,,A B
+),,B C
+;,,C D
+}-- 	
+if// 
+
+(// 
+roundManager// 
+==// 
+null//  
+)//  !
+{//" #
+roundManager00 
+=00 
+
+GameObject00 %
+.00% &
+Find00& *
+(00* +
+$str00+ 9
+)009 :
+.00: ;
+GetComponent00; G
+<00G H
+RoundManager00H T
+>00T U
+(00U V
+)00V W
+;00W X
+}11 	
+}22 
+public44 
+$
+CinemachineVirtualCamera44 #
+GetActiveCamera44$ 3
+(443 4
+)444 5
+{446 7$
+CinemachineVirtualCamera55  
+cam55! $
+=55% &
+camBrain55' /
+.55/ 0
+ActiveVirtualCamera550 C
+as55D F$
+CinemachineVirtualCamera55G _
+;55_ `
+return77 
+cam77 
+;77 
+}88 
+internal:: 
+void::
 
+RollInitiative::  
+(::  !
+)::! "
+{::# $
+
+combatants;; 
+.;; 
+ForEach;; 
+(;; 
+creature;; #
+=>;;$ &
+{;;' (
+creature<< 
+.<< 
+RollInit<< 
+(<< 
+)<< 
+;<<  
+}== 	
+)==	 
+
+;==
+ 
+
+combatants?? 
+.?? 
+Sort?? 
+(?? 
+(?? 
+x?? 
+,?? 
+y?? 
+)?? 
+=>?? !
+x??" #
+.??# $
+GetInit??$ +
+(??+ ,
+)??, -
+.??- .
+	CompareTo??. 7
+(??7 8
+y??8 9
+.??9 :
+GetInit??: A
+(??A B
+)??B C
+)??C D
+)??D E
+;??E F
+ClearInitPanel@@ 
+(@@ 
+)@@ 
+;@@ 
+BuildInitPanelAA 
+(AA 
+)AA 
+;AA !
+ShowRoundActionsPanelBB 
+(BB 
+trueBB "
+)BB" #
+;BB# $
+roundManagerCC 
+.CC 
+StartFirstRoundCC $
+(CC$ %
+
+combatantsCC% /
+)CC/ 0
+;CC0 1
+}DD 
+privateFF 
+voidFF !
+ShowRoundActionsPanelFF &
+(FF& '
+boolFF' +
+showFF, 0
+)FF0 1
+{FF2 3
+roundActionsPanelGG 
+.GG 
+	SetActiveGG #
+(GG# $
+showGG$ (
+)GG( )
+;GG) *
+}HH 
+privateJJ 
+voidJJ 
+ClearInitPanelJJ 
+(JJ  
+)JJ  !
+{JJ" #
+intKK 
+childrenKK 
+=KK 
+initiativePanelKK &
+.KK& '
+	transformKK' 0
+.KK0 1
+
+childCountKK1 ;
+;KK; <
+forLL 
+(LL 

+intLL
 
+iLL 
+=LL 
+childrenLL 
+-LL 
+$numLL  !
+;LL! "
+iLL# $
+>=LL% '
+$numLL( )
+;LL) *
+iLL+ ,
+--LL, .
+)LL. /
+{LL0 1
+
+GameObjectMM 
+.MM 
+DestroyMM 
+(MM 
+initiativePanelMM .
+.MM. /
+	transformMM/ 8
+.MM8 9
+GetChildMM9 A
+(MMA B
+iMMB C
+)MMC D
+.MMD E
+
+gameObjectMME O
+)MMO P
+;MMP Q
+}NN 	
+}OO 
+publicQQ 
+
+voidQQ 
+
ShowInitPanelQQ 
+(QQ 
+BooleanQQ %
+showQQ& *
+)QQ* +
+{QQ, -
+initiativePanelRR 
+.RR 
+	SetActiveRR !
+(RR! "
+showRR" &
+)RR& '
+;RR' (
+}SS 
+internalUU 
+voidUU
 
+BuildInitPanelUU  
+(UU  !
+)UU! "
+{UU# $
+initiativePanelVV 
+.VV 
+	SetActiveVV !
+(VV! "
+trueVV" &
+)VV& '
+;VV' (
+
+combatantsWW 
+.WW 
+ForEachWW 
+(WW 
+cWW 
+=>WW 
+{WW  !
+
+GameObjectXX 
+
creaturePanelXX $
+=XX% &
+
+GameObjectXX' 1
+.XX1 2
+InstantiateXX2 =
+(XX= >#
+initiativeCreaturePanelXX> U
+,XXU V
+Vector3XXW ^
+.XX^ _
+zeroXX_ c
+,XXc d
+
+QuaternionXXe o
+.XXo p
+identityXXp x
+)XXx y
+;XXy z
+
creaturePanelYY 
+.YY 
+	transformYY #
+.YY# $
+
+localScaleYY$ .
+=YY/ 0
+newYY1 4
+Vector3YY5 <
+(YY< =
+$numYY= >
+,YY> ?
+$numYY@ A
+,YYA B
+$numYYC D
+)YYD E
+;YYE F
+
creaturePanelZZ 
+.ZZ 
+	transformZZ #
+.ZZ# $
+	SetParentZZ$ -
+(ZZ- .
+initiativePanelZZ. =
+.ZZ= >
+	transformZZ> G
+)ZZG H
+;ZZH I
+
creaturePanel[[ 
+.[[ 
+GetComponent[[ &
+<[[& '#
+InitCreaturePanelScript[[' >
+>[[> ?
+([[? @
+)[[@ A
+.[[A B
+SetImage[[B J
+([[J K
+c[[K L
+.[[L M
+GetComponent[[M Y
+<[[Y Z
+Creature[[Z b
+>[[b c
+([[c d
+)[[d e
+.[[e f
+	GetSprite[[f o
+([[o p
+)[[p q
+)[[q r
+;[[r s
+Debug]] 
+.]] 
+Log]] 
+(]] 
+c]] 
+.]] 
+name]] 
++]] 
+$str]] (
++]]) *
+c]]+ ,
+.]], -
+GetComponent]]- 9
+<]]9 :
+Creature]]: B
+>]]B C
+(]]C D
+)]]D E
+.]]E F
+GetInit]]F M
+(]]M N
+)]]N O
++]]P Q
+$str]]R Y
++]]Z [
+c]]\ ]
+.]]] ^
+GetComponent]]^ j
+<]]j k
+Creature]]k s
+>]]s t
+(]]t u
+)]]u v
+.]]v w
+Dex]]w z
++]]{ |
+$str^^ 
++^^ 
+Grid^^ 
+.^^  
+WorldToCell^^  +
+(^^+ ,
+c^^, -
+.^^- .
+	transform^^. 7
+.^^7 8
+
localPosition^^8 E
+)^^E F
+)^^F G
+;^^G H
+c`` 

+.``
 
+InitPanelGameObject`` !
+=``" #
+
creaturePanel``$ 1
+;``1 2
+caa 

+.aa
 
+SetPositionInGridaa 
+(aa  
+Gridaa  $
+.aa$ %
+WorldToCellaa% 0
+(aa0 1
+caa1 2
+.aa2 3
+	transformaa3 <
+.aa< =
+
localPositionaa= J
+)aaJ K
+)aaK L
+;aaL M
+}bb 	
+)bb	 
+
+;bb
+ 
+}dd 
+publicff 
+
+Listff 
+<ff 
+Creatureff 
+>ff 
+
GetCombatantsff '
+(ff' (
+)ff( )
+{ff* +
+returngg 
+
+combatantsgg 
+;gg 
+}hh 
+}ii ²
+ZF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.cs
+public 
+class 
+StartFightScript
 
+: 
+
MonoBehaviour  -
+{. /
+[ 
+SerializeField 
+] 
+Button 
+startFightButton ,
+;, -
+void
+
+ 
+Start
+
+	 
+(
+
+ 
+)
+
+ 
+{
+
+ 
+startFightButton 
+. 
+onClick  
+.  !
+AddListener! ,
+(, -
+StartFightAction- =
+)= >
+;> ?
+} 
+private 
+void 
+StartFightAction !
+(! "
+)" #
+{$ %
+GameManagerScript 
+. 
+GetInstance %
+(% &
+)& '
+.' (
+RollInitiative( 6
+(6 7
+)7 8
+;8 9
+
+gameObject 
+. 
+	SetActive 
+( 
+false "
+)" #
+;# $
+} 
+} ô
+JF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.cs
+public 
+class #
+NewSkeletonSpriteScript
 $
+:% &
+
MonoBehaviour' 4
+{5 6
+bool 
+dragged	 
+= 
+false 
+; 
+void
+
+ 
+Update
+
+	 
+(
+
+ 
+)
+
+ 
+{
+
+ 
+if 
+
+( 
+dragged 
+) 
+{ 
+	transform 
+. 
+position 
+=  
+Input! &
+.& '
+
mousePosition' 4
+;4 5
+}

 	
+} 
+internal 
+void
 
+	IsDragged 
+( 
+bool  
+value! &
+)& '
+{( )
+dragged 
+= 
+value 
+; 
+} 
+} ÿR
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.cs
+public 
+class 
+Creature
 
+: 
+
MonoBehaviour %
+{& '
+[
+
+ 
+SerializeField
+
+ 
+]
+
+ 
+Sprite
+
+ 
+
creatureImage
+
+ )
+;
+
+) *
+[ 
+SerializeField 
+] 
+bool 
+humanControlled )
+;) *
+private

 
+int

 
+init

 
+;

 
+private 
+int 
+dex 
+= 
+$num 
+; 
+private 
+int 
+creatureHealth 
+; 
+private 
+List 
+< 
+IAction 
+> 
+actions !
+=" #
+new$ '
+List( ,
+<, -
+IAction- 4
+>4 5
+(5 6
+)6 7
+;7 8
+internal 
+int
 
+
CurrentHealth 
+{  
+get! $
+;$ %
+set& )
+;) *
+}+ ,
+internal 
+int
 
+	MaxHealth 
+{ 
+get  
+;  !
+set" %
+;% &
+}' (
+Weapon 
+
+weapon 
+; 
+int 
+health 
+; 
+private 
+CanvasGroup 
+canvasGroup #
+;# $
+private 
+
RectTransform 
+
rectTransform '
+;' (
+private 
+
+Vector3Int 
+
+currentPos !
+;! "
+internal 
+IAction
 
+GetFirstAction #
+(# $
+)$ %
+{& '
+return 
+firstAction 
+; 
+} 
+private   
+IAction   
+firstAction   
+;    
+private!! 
+IAction!! 
+secondAction!!  
+;!!  !
+public"" 
+
+
+GameObject"" 
+InitPanelGameObject"" )
+{""* +
+set"", /
+;""/ 0
+get""1 4
+;""4 5
+}""6 7
+internal$$ 
+int$$
 
+movementRate$$ 
+;$$ 
+public&& 
+
+int&& 
+Dex&& 
+{&& 
+get&& 
+=>&& 
+dex&& 
+;&&  
+set&&! $
+=>&&% '
+dex&&( +
+=&&, -
+value&&. 3
+;&&3 4
+}&&5 6
+public(( 
+
+int(( 
+Init(( 
+{(( 
+get(( 
+=>(( 
+init(( !
+;((! "
+set((# &
+=>((' )
+init((* .
+=((/ 0
+value((1 6
+;((6 7
+}((8 9
+public** 
+
+int** 
+CreatureHealth** 
+{** 
+get**  #
+=>**$ &
+creatureHealth**' 5
+;**5 6
+set**7 :
+=>**; =
+creatureHealth**> L
+=**M N
+value**O T
+;**T U
+}**V W
+public++ 
+
+bool++ 
+IsCreatureAlive++ 
+{++  !
+get++" %
+;++% &
+set++' *
+;++* +
+}++, -
+public,, 
+
+
+Vector3Int,, 
+
+CurrentPos,,  
+{,,! "
+get,,# &
+=>,,' )
+
+currentPos,,* 4
+;,,4 5
+set,,6 9
+=>,,: <
+
+currentPos,,= G
+=,,H I
+value,,J O
+;,,O P
+},,Q R
+private.. 
+void.. 
+Start.. 
+(.. 
+).. 
+{.. 
+canvasGroup// 
+=// 
+GetComponent// "
+<//" #
+CanvasGroup//# .
+>//. /
+(/// 0
+)//0 1
+;//1 2
+
rectTransform00 
+=00 
+GetComponent00 $
+<00$ %
+
RectTransform00% 2
+>002 3
+(003 4
+)004 5
+;005 6
+}11 
+public33 
+
+int33 
+GetInit33 
+(33 
+)33 
+{33 
+return44 
+Init44 
+;44 
+}55 
+internal77 
+bool77
 
+HasSecondAction77 !
+(77! "
+)77" #
+{77$ %
+return88 
+secondAction88 
+!=88 
+null88 #
+;88# $
+}99 
+public;; 
+
+void;; 
+RollInit;; 
+(;; 
+);; 
+{;; 
+Init<< 
+=<<
 
+Random<< 
+.<< 
+Range<< 
+(<< 
+$num<< 
+,<< 
+$num<< "
+-<<# $
+dex<<% (
+)<<( )
+;<<) *
+}== 
+public?? 
+
+Sprite?? 
+	GetSprite?? 
+(?? 
+)?? 
+{?? 
+return@@ 
+
creatureImage@@ 
+;@@ 
+}AA 
+publicCC 
+
+boolCC 
+IsHumanControlledCC !
+(CC! "
+)CC" #
+{CC$ %
+returnDD 
+humanControlledDD 
+;DD 
+}EE 
+publicGG 
+
+voidGG 
+SetFirstActionGG 
+(GG 
+IActionGG &
+actionGG' -
+)GG- .
+{GG/ 0
+firstActionHH 
+=HH 
+actionHH 
+;HH 
+}II 
+publicKK 
+
+voidKK 
+SetSecondActionKK 
+(KK  
+IActionKK  '
+actionKK( .
+)KK. /
+{KK0 1
+secondActionLL 
+=LL 
+actionLL 
+;LL 
+}MM 
+internalOO 
+ListOO
 
+<OO 
+CreatureOO 
+>OO )
+EnemiesInSquareNextToCreatureOO 9
+(OO9 :
+CreatureOO: B
+creatureOOC K
+,OOK L
+ListOOM Q
+<OOQ R
+CreatureOOR Z
+>OOZ [
+
+combatantsOO\ f
+)OOf g
+{OOh i
+ListPP 
+<PP 

+CreaturePP
 
+>PP 
+enemiesClosePP #
+=PP$ %
+newPP& )
+ListPP* .
+<PP. /
+CreaturePP/ 7
+>PP7 8
+(PP8 9
+)PP9 :
+;PP: ;
+foreachQQ 
+(QQ 
+CreatureQQ 
+cQQ 
+inQQ 
+
+combatantsQQ )
+)QQ) *
+{QQ+ ,
+Vector3RR 
+distanceRR 
+=RR 
+cRR  
+.RR  !
+
+CurrentPosRR! +
+-RR, -
+creatureRR. 6
+.RR6 7
+
+CurrentPosRR7 A
+;RRA B
+ifSS 
+(SS 
+cSS 
+.SS 
+nameSS 
+!=SS 
+creatureSS "
+.SS" #
+nameSS# '
+&&SS( *
+distanceSS+ 3
+.SS3 4
+xSS4 5
+<=SS6 8
+$numSS9 :
+&&SS; =
+distanceSS> F
+.SSF G
+xSSG H
+>=SSI K
+-SSL M
+$numSSM N
+&&SSO Q
+distanceSSR Z
+.SSZ [
+ySS[ \
+<=SS] _
+$numSS` a
+&&SSb d
+distanceSSe m
+.SSm n
+ySSn o
+>=SSp r
+-SSs t
+$numSSt u
+)SSu v
+{SSw x
+enemiesCloseTT 
+.TT 
+AddTT  
+(TT  !
+cTT! "
+)TT" #
+;TT# $
+}UU 

+}VV 	
+returnWW 
+enemiesCloseWW 
+;WW 
+}XX 
+internalZZ 
+voidZZ
 
+SetPositionInGridZZ #
+(ZZ# $
+
+Vector3IntZZ$ .
+
+vector3IntZZ/ 9
+)ZZ9 :
+{ZZ; <
+
+CurrentPos[[ 
+=[[ 
+
+vector3Int[[ 
+;[[  
+}\\ 
+public^^ 
+
+bool^^ 
+HasFirstAction^^ 
+(^^ 
+)^^  
+{^^! "
+return__ 
+firstAction__ 
+!=__ 
+null__ "
+;__" #
+}`` 
+internalbb 
+Creaturebb
 
+FindClosestEnemybb &
+(bb& '
+Creaturebb' /
+creaturebb0 8
+,bb8 9
+Listbb: >
+<bb> ?
+Creaturebb? G
+>bbG H
+
+combatantsbbI S
+)bbS T
+{bbU V
+Creaturecc 
+closestEnemycc 
+=cc 
+nullcc  $
+;cc$ %
+floatdd 

+minDistdd 
+=dd 
+Mathfdd 
+.dd 
+Infinitydd &
+;dd& '
+Listee 
+<ee 

+Creatureee
 
+>ee 
+enemiesee 
+=ee  
+
+combatantsee! +
+.ee+ ,
+FindAllee, 3
+(ee3 4
+pee4 5
+=>ee6 8
+pee9 :
+.ee: ;
+IsHumanControlledee; L
+(eeL M
+)eeM N
+!=eeO Q
+creatureeeR Z
+.eeZ [
+IsHumanControlledee[ l
+(eel m
+)eem n
+)een o
+;eeo p
+foreachgg 
+(gg 
+Creaturegg 
+egg 
+ingg 
+enemiesgg &
+)gg& '
+{gg( )
+floathh 
+disthh 
+=hh 
+Vector3hh  
+.hh  !
+Distancehh! )
+(hh) *
+ehh* +
+.hh+ ,
+
+CurrentPoshh, 6
+,hh6 7
+creaturehh8 @
+.hh@ A
+
+CurrentPoshhA K
+)hhK L
+;hhL M
+ifii 
+(ii 
+distii 
+<ii 
+minDistii 
+)ii 
+{ii  !
+closestEnemyjj 
+=jj 
+ejj  
+;jj  !
+minDistkk 
+=kk 
+distkk 
+;kk 
+}ll 

+}mm 	
+Debugnn 

+.nn
 
+Lognn 
+(nn 
+$strnn %
++nn& '
+closestEnemynn( 4
+.nn4 5
+namenn5 9
+)nn9 :
+;nn: ;
+returnoo 
+closestEnemyoo 
+;oo 
+}pp 
+publicrr 
+
+voidrr 
+Deathrr 
+(rr 
+)rr 
+{rr 
+IsCreatureAlivess 
+=ss 
+falsess 
+;ss  
+}tt 
+publicww 
+
+voidww 
+
+TakeDamageww 
+(ww 
+intww 
+damageww %
+)ww% &
+{ww' (
+
CurrentHealthxx 
+-=xx 
+damagexx 
+;xx  
+ifyy 
+
+(yy 
+
CurrentHealthyy 
+<=yy 
+$numyy 
+)yy 
+{yy  !
+Deathzz 
+(zz 
+)zz 
+;zz 
+}{{ 	
+InitPanelGameObject}} 
+.}} 
+GetComponent}} (
+<}}( )#
+InitCreaturePanelScript}}) @
+>}}@ A
+(}}A B
+)}}B C
+.}}C D
+UpdateHealthBar}}D S
+(}}S T
+	MaxHealth}}T ]
+/}}^ _
+
CurrentHealth}}` m
+)}}m n
+;}}n o
+}~~ 
+}€€ Ò
+QF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.cs
+public 
+class 
+AttackAction
 
+: 
+IAction #
+{$ %
+Creature 
+target
 
+; 
+public 
+
+AttackAction 
+( 
+Creature  
+target! '
+)' (
+{) *
+this		 
+.		 

+target		
 
+=		 
+target		 
+;		 
+}
+
+ 
+public 
+
+IEnumerator 
+
PerformAction $
+($ %
+)% &
+{' (
+yield

 

+return

 
+null

 
+;

 
+} 
+} šY
+OF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.cs
+public 
+class 
+
+MoveAction
 
+: 
+IAction !
+{" #
+Vector3 
+
startPosition 
+; 
+Vector3		 
+targetPosition		 
+;		 
+private
+
+ 
+Creature
+
+ 
+toMove
+
+ 
+;
+
+ 
+private 
+Creature 
+targetCreature #
+;# $
+private 
+bool 
+
+shouldMove 
+= 
+false #
+;# $
+private

 
+bool

 
+moveToPosition

 
+=

  !
+false

" '
+;

' (
+private 
+int 
+movedSquares 
+= 
+$num  
+;  !
+public 
+
+void 
+SetStartPosition  
+(  !
+Vector3! (
+startPos) 1
+)1 2
+{3 4
+
startPosition 
+= 
+startPos  
+;  !
+} 
+public 
+
+void 
+SetTargetPosition !
+(! "
+Vector3" )
+	targetPos* 3
+)3 4
+{5 6
+targetPosition 
+= 
+	targetPos "
+;" #
+moveToPosition 
+= 
+true 
+; 
+} 
+public 
+
+void 
+SetTargetCreature !
+(! "
+Creature" *
+target+ 1
+)1 2
+{3 4
+targetCreature 
+= 
+target 
+;  
+moveToPosition 
+= 
+false 
+; 
+} 
+public 
+
+void 
+SetCreatureToMove !
+(! "
+Creature" *
+toMove+ 1
+)1 2
+{3 4
+this   
+.   

+toMove  
 
+=   
+toMove   
+;   
+}!! 
+public** 
+
+IEnumerator** 
+
PerformAction** $
+(**$ %
+)**% &
+{**' (
+Tilemap++ 
+tileMap++ 
+=++ 
+GameManagerScript++ +
+.+++ ,
+GetInstance++, 7
+(++7 8
+)++8 9
+.++9 :
+TileMap++: A
+;++A B
+if,, 
+
+(,, 
+moveToPosition,, 
+),, 
+{,, 
+Vector3-- 
+distance-- 
+=-- 
+tileMap-- &
+.--& '
+WorldToCell--' 2
+(--2 3
+targetPosition--3 A
+---B C
+
startPosition--D Q
+)--Q R
+;--R S
+int.. 
+safety.. 
+=.. 
+$num.. 
+;.. 
+while// 
+(// 
+!// 
+distance// 
+.// 
+Equals// #
+(//# $
+Vector3//$ +
+.//+ ,
+zero//, 0
+)//0 1
+)//1 2
+{//3 4
+safety00 
+++00 
+;00 
+if11 
+(11 
+distance11 
+.11 
+x11 
+!=11 !
+$num11" #
+||11$ &
+distance11' /
+.11/ 0
+y110 1
+!=112 4
+$num115 6
+)116 7
+{118 9
+Vector322 
+movement22 $
+=22% &
+toMove22' -
+.22- .
+	transform22. 7
+.227 8
+position228 @
+;22@ A
+if33 
+(33 
+distance33  
+.33  !
+x33! "
+>33# $
+$num33% &
+)33& '
+{33( )
+movement44  
+.44  !
+x44! "
++=44# %
+$num44& '
+;44' (
+distance55  
+.55  !
+x55! "
+-=55# %
+$num55& '
+;55' (
+}66 
+else66 
+if66 
+(66 
+distance66 '
+.66' (
+x66( )
+<66* +
+$num66, -
+)66- .
+{66/ 0
+movement77  
+.77  !
+x77! "
+-=77# %
+$num77& '
+;77' (
+distance88  
+.88  !
+x88! "
++=88# %
+$num88& '
+;88' (
+}99 
+if;; 
+(;; 
+distance;;  
+.;;  !
+y;;! "
+>;;# $
+$num;;% &
+);;& '
+{;;( )
+movement<<  
+.<<  !
+y<<! "
++=<<# %
+$num<<& '
+;<<' (
+distance==  
+.==  !
+y==! "
+-===# %
+$num==& '
+;==' (
+}>> 
+else>> 
+if>> 
+(>> 
+distance>> '
+.>>' (
+y>>( )
+<>>* +
+$num>>, -
+)>>- .
+{>>/ 0
+movement??  
+.??  !
+y??! "
+-=??# %
+$num??& '
+;??' (
+distance@@  
+.@@  !
+y@@! "
++=@@# %
+$num@@& '
+;@@' (
+}AA 
+checkIfOccupoiedCC $
+(CC$ %
+movementCC% -
+)CC- .
+;CC. /
+toMoveEE 
+.EE 
+	transformEE $
+.EE$ %
+positionEE% -
+=EE. /
+movementEE0 8
+;EE8 9
+movedSquaresFF  
+++FF  "
+;FF" #
+ifGG 
+(GG 
+toMoveGG 
+.GG 
+movementRateGG +
+<=GG, .
+movedSquaresGG/ ;
+*GG< =
+$numGG> ?
+)GG? @
+{GGA B
+DebugHH 
+.HH 
+LogHH !
+(HH! "
+toMoveHH" (
+.HH( )
+nameHH) -
++HH. /
+$strHH0 F
++HHG H
+toMoveHHI O
+.HHO P
+movementRateHHP \
++HH] ^
+$strHH_ t
+)HHt u
+;HHu v
+breakII 
+;II 
+}JJ 
+yieldKK 
+returnKK  
+newKK! $
+WaitForSecondsKK% 3
+(KK3 4
+$numKK4 5
+)KK5 6
+;KK6 7
+}LL 
+ifMM 
+(MM 
+safetyMM 
+>MM 
+$numMM  
+)MM  !
+{MM" #
+throwNN 
+newNN 
+SystemNN $
+.NN$ %
+	ExceptionNN% .
+(NN. /
+$strNN/ A
+)NNA B
+;NNB C
+}OO 
+}PP 

+}QQ 	
+elseQQ
+ 
+{QQ 
+Vector3RR 
+distanceRR 
+=RR 
+tileMapRR &
+.RR& '
+WorldToCellRR' 2
+(RR2 3
+targetCreatureRR3 A
+.RRA B
+	transformRRB K
+.RRK L
+positionRRL T
+-RRU V
+
startPositionRRW d
+)RRd e
+;RRe f
+intSS 
+safetySS 
+=SS 
+$numSS 
+;SS 
+whileTT 
+(TT 
+!TT 
+distanceTT 
+.TT 
+EqualsTT #
+(TT# $
+Vector3TT$ +
+.TT+ ,
+zeroTT, 0
+)TT0 1
+)TT1 2
+{TT3 4
+safetyUU 
+++UU 
+;UU 
+ifVV 
+(VV 
+distanceVV 
+.VV 
+xVV 
+!=VV !
+$numVV" #
+||VV$ &
+distanceVV' /
+.VV/ 0
+yVV0 1
+!=VV2 4
+$numVV5 6
+)VV6 7
+{VV8 9
+Vector3WW 
+movementWW $
+=WW% &
+toMoveWW' -
+.WW- .
+	transformWW. 7
+.WW7 8
+positionWW8 @
+;WW@ A
+ifXX 
+(XX 
+distanceXX  
+.XX  !
+xXX! "
+>XX# $
+$numXX% &
+)XX& '
+{XX( )
+movementYY  
+.YY  !
+xYY! "
++=YY# %
+$numYY& '
+;YY' (
+distanceZZ  
+.ZZ  !
+xZZ! "
+-=ZZ# %
+$numZZ& '
+;ZZ' (
+}[[ 
+else[[ 
+if[[ 
+([[ 
+distance[[ '
+.[[' (
+x[[( )
+<[[* +
+$num[[, -
+)[[- .
+{[[/ 0
+movement\\  
+.\\  !
+x\\! "
+-=\\# %
+$num\\& '
+;\\' (
+distance]]  
+.]]  !
+x]]! "
++=]]# %
+$num]]& '
+;]]' (
+}^^ 
+if`` 
+(`` 
+distance``  
+.``  !
+y``! "
+>``# $
+$num``% &
+)``& '
+{``( )
+movementaa  
+.aa  !
+yaa! "
++=aa# %
+$numaa& '
+;aa' (
+distancebb  
+.bb  !
+ybb! "
+-=bb# %
+$numbb& '
+;bb' (
+}cc 
+elsecc 
+ifcc 
+(cc 
+distancecc '
+.cc' (
+ycc( )
+<cc* +
+$numcc, -
+)cc- .
+{cc/ 0
+movementdd  
+.dd  !
+ydd! "
+-=dd# %
+$numdd& '
+;dd' (
+distanceee  
+.ee  !
+yee! "
++=ee# %
+$numee& '
+;ee' (
+}ff 
+toMovegg 
+.gg 
+	transformgg $
+.gg$ %
+positiongg% -
+=gg. /
+movementgg0 8
+;gg8 9
+movedSquareshh  
+++hh  "
+;hh" #
+ifii 
+(ii 
+toMoveii 
+.ii 
+movementRateii +
+<=ii, .
+movedSquaresii/ ;
+*ii< =
+$numii> ?
+)ii? @
+{iiA B
+Debugjj 
+.jj 
+Logjj !
+(jj! "
+toMovejj" (
+.jj( )
+namejj) -
++jj. /
+$strjj0 F
++jjG H
+toMovejjI O
+.jjO P
+movementRatejjP \
++jj] ^
+$strjj_ t
+)jjt u
+;jju v
+breakkk 
+;kk 
+}ll 
+yieldmm 
+returnmm  
+newmm! $
+WaitForSecondsmm% 3
+(mm3 4
+$nummm4 5
+)mm5 6
+;mm6 7
+distanceoo 
+=oo 
+tileMapoo &
+.oo& '
+WorldToCelloo' 2
+(oo2 3
+targetCreatureoo3 A
+.ooA B
+	transformooB K
+.ooK L
+positionooL T
+-ooU V
+toMoveooW ]
+.oo] ^
+	transformoo^ g
+.oog h
+positionooh p
+)oop q
+;ooq r
+Debugpp 
+.pp 
+Logpp 
+(pp 
+toMovepp $
+.pp$ %
+namepp% )
++pp* +
+$strpp, 7
++pp8 9
+targetPositionpp: H
++ppI J
+$strppK N
++ppO P
+tileMapppQ X
+.ppX Y
+WorldToCellppY d
+(ppd e
+targetPositionppe s
+)pps t
++ppu v
+$str	ppw €
++
+pp� ‚
+
startPosition
+ppƒ �
++
+pp‘ ’
+$str
+pp“ –
++
+pp— ˜
+tileMap
+pp™  
+.
+pp  ¡
+WorldToCell
+pp¡ ¬
+(
+pp¬ ­
+
startPosition
+pp­ º
+)
+ppº »
++
+pp¼ ½
+$str
+pp¾ Ë
++
+ppÌ Í
+distance
+ppÎ Ö
+)
+ppÖ ×
+;
+pp× Ø
+}qq 
+ifrr 
+(rr 
+safetyrr 
+>rr 
+$numrr !
+)rr! "
+{rr# $
+throwss 
+newss 
+Systemss $
+.ss$ %
+	Exceptionss% .
+(ss. /
+$strss/ B
+)ssB C
+;ssC D
+}tt 
+}uu 

+}vv 	
+yieldxx 

+returnxx 
+nullxx 
+;xx 
+}yy 
+private{{ 
+void{{ 
+checkIfOccupoied{{ !
+({{! "
+Vector3{{" )
+movement{{* 2
+){{2 3
+{{{4 5
+}}} 
+}~~ €
+PF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.cs
+public 
+class 
+SpellAction
 
+: 
+IAction "
+{# $
+private 
+
+GameObject 
+target 
+; 
+public		 
+
+IEnumerator		 
+
PerformAction		 $
+(		$ %
+)		% &
+{		' (
+throw
+
+ 

+new
+
+ 
+System
+
+ 
+.
+
+ #
+NotImplementedException
+
+ 0
+(
+
+0 1
+)
+
+1 2
+;
+
+2 3
+} 
+void 
+Start	 
+( 
+) 
+{ 
+} 
+void 
+Update	 
+( 
+) 
+{ 
+} 
+} À
+9F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.cs
+internal 
+class	 
+Weapon 
+{ 
+public 
+
+enum 
+WEAPON_TYPE 
+{ 
+SWORD 

+,
 
+SPEAR 

+,
 
+BOW 
+, 
+CROSSBOW 
+, 
+AXE 
+}		 
+public 
+
+enum 
+DAMAGE_TYPE 
+{ 
+PIERCING 
+, 
+BLUNT

 

+,


 
+SLASHING 
+} 
+public 
+
+Weapon 
+( 
+Weapon 
+. 
+WEAPON_TYPE $
+type% )
+,) *
+Weapon+ 1
+.1 2
+DAMAGE_TYPE2 =
+
+damageType> H
+,H I
+DieJ M
+	attackDieN W
+)W X
+{Y Z
+this 
+. 

+	attackDie
 
+= 
+	attackDie "
+;" #
+this 
+. 

+
+damageType
 
+= 
+
+damageType $
+;$ %
+this 
+. 

+
+weaponType
 
+= 
+type 
+; 
+} 
+Die 
+	attackDie 
+; 
+DAMAGE_TYPE 
+
+damageType 
+; 
+WEAPON_TYPE 
+
+weaponType 
+; 
+public 
+
+Die 
+GetAttackDie 
+( 
+) 
+{ 
+return 
+	attackDie 
+; 
+} 
+} Þ
+@F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.cs
+public 
+class 
+
CameraManager
 
+: 
+
MonoBehaviour *
+{+ ,
+private $
+CinemachineVirtualCamera $
+	activeCam% .
+;. /
+private 
+static 
+
CameraManager  
+instance! )
+;) *
+public		 
+
+static		 
+
CameraManager		 
+GetInstance		  +
+(		+ ,
+)		, -
+{		. /
+return
+
+ 
+instance
+
+ 
+;
+
+ 
+} 
+private

 
+void

 
+Start

 
+(

 
+)

 
+{

 
+instance 
+= 
+this 
+; 
+} 
+private 
+void 
+Update 
+( 
+) 
+{ 
+if 
+
+( 
+Input 
+. 
+GetAxis 
+( 
+$str -
+)- .
+!=/ 1
+$num2 4
+)4 5
+{6 7$
+CinemachineComponentBase $
+
componentBase% 2
+=3 4
+	activeCam 
+. #
+GetCinemachineComponent 1
+(1 2
+CinemachineCore2 A
+.A B
+StageB G
+.G H
+BodyH L
+)L M
+;M N
+if 
+( 
+
componentBase 
+is  (
+CinemachineFramingTransposer! =
+)= >
+{? @
+float 
+m_CameraDistance &
+=' (
+( 
+
componentBase "
+as# %(
+CinemachineFramingTransposer& B
+)B C
+. 
+m_CameraDistance )
+;) *
+if 
+( 
+m_CameraDistance $
+<=% '
+$num( )
+&&* ,
+Input 
+. 
+GetAxis !
+(! "
+$str" 5
+)5 6
+>7 8
+$num9 :
+) 
+{ 
+m_CameraDistance $
+=% &
+$num' )
+;) *
+} 
+else 
+{ 
+m_CameraDistance $
+-=% '
+Input( -
+.- .
+GetAxis. 5
+(5 6
+$str6 I
+)I J
+*K L
+$numM O
+;O P
+}   
+(!! 
+
componentBase!! 
+as!! !(
+CinemachineFramingTransposer!!" >
+)!!> ?
+."" 
+m_CameraDistance"" %
+=""& '
+m_CameraDistance""( 8
+;""8 9
+}## 

+}$$ 	
+}%% 
+private'' 
+void'' 
+Awake'' 
+('' 
+)'' 
+{'' 
+	activeCam(( 
+=(( "
+GetComponentInChildren(( *
+<((* +$
+CinemachineVirtualCamera((+ C
+>((C D
+(((D E
+)((E F
+;((F G
+})) 
+public++ 
+
+void++ 
+FocusOnGameObject++ !
+(++! "
+
+GameObject++" ,
+
+gameObject++- 7
+)++7 8
+{++9 :
+	activeCam,, 
+.,, 
+Follow,, 
+=,, 
+
+gameObject,, %
+.,,% &
+	transform,,& /
+;,,/ 0
+}-- 
+}.. €4
+?F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.cs
+public		 
+class		 
+RoundManager		
 
+:		 
+
MonoBehaviour		 )
+{		* +
+[ 
+SerializeField 
+] 
+Button 
+executeRoundButton .
+;. /
+private 
+List 
+< 
+Creature 
+> 
+
+combatants %
+;% &
+int

 
+round

 

+;


 
+private 
+bool 
+	executing 
+= 
+false "
+;" #
+private 
+void 
+Start 
+( 
+) 
+{ 
+executeRoundButton 
+. 
+onClick "
+." #
+AddListener# .
+(. /
+ExecuteRound/ ;
+); <
+;< =
+} 
+private 
+void 
+ExecuteRound 
+( 
+) 
+{  !
+	executing 
+= 
+true 
+; 
+executeRoundButton 
+. 
+interactable '
+=( )
+false* /
+;/ 0
+foreach 
+( 
+Creature 
+c 
+in 
+
+combatants )
+)) *
+{+ ,
+StartCoroutine 
+( 
+c 
+. 
+GetFirstAction +
+(+ ,
+), -
+.- .
+
PerformAction. ;
+(; <
+)< =
+)= >
+;> ?
+} 	
+round 

+++
 
+; 
+} 
+private 
+void 
+FixedUpdate 
+( 
+) 
+{  
+if 
+
+( 
+	executing 
+) 
+{ 
+foreach   
+(   
+Creature   
+c   
+in    "
+
+combatants  # -
+)  - .
+{  / 0
+c!! 
+.!! 
+
+CurrentPos!! 
+=!! 
+
+Vector3Int!! )
+.!!) *
+
+RoundToInt!!* 4
+(!!4 5
+c!!5 6
+.!!6 7
+
+gameObject!!7 A
+.!!A B
+	transform!!B K
+.!!K L
+position!!L T
+)!!T U
+;!!U V
+}"" 

+}## 	
+}$$ 
+internal&& 
+void&&
 
+StartFirstRound&& !
+(&&! "
+List&&" &
+<&&& '
+Creature&&' /
+>&&/ 0
+
+combatants&&1 ;
+)&&; <
+{&&= >
+this'' 
+.'' 

+
+combatants''
 
+='' 
+
+combatants'' $
+;''$ %
+round(( 

+=(( 
+$num(( 
+;(( 
+
MakeDecisions)) 
+()) 
+))) 
+;)) 
+}** 
+internal,, 
+void,,
 
+SetupNextRound,,  
+(,,  !
+),,! "
+{,,# $
+this-- 
+.-- 

+
+combatants--
 
+=-- 
+
+combatants-- $
+.--$ %
+FindAll--% ,
+(--, -
+c--- .
+=>--/ 1
+c--2 3
+.--3 4
+IsCreatureAlive--4 C
+)--C D
+;--D E
+
MakeDecisions.. 
+(.. 
+).. 
+;.. 
+}// 
+private11 
+void11 
+
MakeDecisions11 
+(11 
+)11  
+{11! "
+foreach22 
+(22 
+Creature22 
+creature22 "
+in22# %
+
+combatants22& 0
+)220 1
+{222 3
+if33 
+(33 
+creature33 
+.33 
+IsHumanControlled33 *
+(33* +
+)33+ ,
+)33, -
+{33. /
+
CameraManager44 
+.44 
+GetInstance44 )
+(44) *
+)44* +
+.44+ ,
+FocusOnGameObject44, =
+(44= >
+creature44> F
+.44F G
+
+gameObject44G Q
+)44Q R
+;44R S
+if77 
+(77 
+creature77 
+.77 
+name77 !
+.77! "
+Equals77" (
+(77( )
+$str77) 1
+)771 2
+)772 3
+{774 5
+
+MoveAction88 
+ma88 !
+=88" #
+new88$ '
+
+MoveAction88( 2
+(882 3
+)883 4
+;884 5
+ma99 
+.99 
+SetTargetPosition99 (
+(99( )
+new99) ,
+Vector399- 4
+(994 5
+$num995 9
+,999 :
+-99; <
+$num99< A
+,99A B
+$num99C E
+)99E F
+)99F G
+;99G H
+ma:: 
+.:: 
+SetStartPosition:: '
+(::' (
+creature::( 0
+.::0 1
+
+CurrentPos::1 ;
+)::; <
+;::< =
+ma;; 
+.;; 
+SetCreatureToMove;; (
+(;;( )
+creature;;) 1
+);;1 2
+;;;2 3
+creature<< 
+.<< 
+SetFirstAction<< +
+(<<+ ,
+ma<<, .
+)<<. /
+;<</ 0
+}== 
+else== 
+{== 
+creature>> 
+.>> 
+SetFirstAction>> +
+(>>+ ,
+new>>, /
+AttackAction>>0 <
+(>>< =
+
+combatants>>= G
+[>>G H
+$num>>H I
+]>>I J
+)>>J K
+)>>K L
+;>>L M
+}?? 
+creature@@ 
+.@@ 
+SetSecondAction@@ (
+(@@( )
+new@@) ,
+AttackAction@@- 9
+(@@9 :
+
+combatants@@: D
+[@@D E
+$num@@E F
+]@@F G
+)@@G H
+)@@H I
+;@@I J
+}BB 

+elseBB 
+{BB 
+(CC 
+(CC 
+SkeletonCC 
+)CC 
+creatureCC #
+)CC# $
+.CC$ %
+
DecideActionsCC% 2
+(CC2 3
+
+combatantsCC3 =
+)CC= >
+;CC> ?
+}EE 

+}FF 	
+ifHH 
+
+(HH 0
+$CheckIfAllCombatantsHaveTheirActionsHH 0
+(HH0 1
+)HH1 2
+)HH2 3
+{HH4 5
+executeRoundButtonII 
+.II 
+interactableII +
+=II, -
+trueII. 2
+;II2 3
+}JJ 	
+}KK 
+privateMM 
+boolMM 0
+$CheckIfAllCombatantsHaveTheirActionsMM 5
+(MM5 6
+)MM6 7
+{MM8 9
+returnNN 
+
+combatantsNN 
+.NN 
+AllNN 
+(NN 
+cNN 
+=>NN  "
+cNN# $
+.NN$ %
+HasFirstActionNN% 3
+(NN3 4
+)NN4 5
+&&NN6 8
+cNN9 :
+.NN: ;
+HasSecondActionNN; J
+(NNJ K
+)NNK L
+)NNL M
+;NNM N
+}OO 
+}PP ¸,
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.cs
+	namespace 	
+RPG_Fight_Test
+ 
+. 
+Assets 
+.  
+Scripts  '
+.' (
+	Creatures( 1
+{2 3
+public 
+
+class 
+Skeleton 
+: 
+Creature $
+{% &
+private 
+List 
+< 
+Creature 
+> 
+
+combatants )
+;) *
+private		 
+void		 
+Start		 
+(		 
+)		 
+{		 
+Dex
+
+ 
+=
+
+ 
+Random
+
+ 
+.
+
+ 
+Range
+
+ 
+(
+
+ 
+$num
+
+  
+,
+
+  !
+$num
+
+" $
+)
+
+$ %
+;
+
+% &
+movementRate 
+= 
+$num 
+; 
+CreatureHealth 
+= 
+Random #
+.# $
+Range$ )
+() *
+$num* ,
+,, -
+$num. 0
+)0 1
+;1 2
+
CurrentHealth

 
+=

 
+CreatureHealth

 *
+;

* +
+	MaxHealth 
+= 
+CreatureHealth &
+;& '
+IsCreatureAlive 
+= 
+true "
+;" #
+} 	
+private 
+void 
+DecideFirstAction &
+(& '
+)' (
+{) *
+List 
+< 
+Creature 
+> 
+closeEnemies '
+=( ))
+EnemiesInSquareNextToCreature* G
+(G H
+thisH L
+,L M
+
+combatantsN X
+)X Y
+;Y Z
+if 
+( 
+closeEnemies 
+. 
+Count "
+># $
+$num% &
+)& '
+{( )
+SetFirstAction 
+( 
+new "
+AttackAction# /
+(/ 0
+closeEnemies0 <
+[< =
+$num= >
+]> ?
+)? @
+)@ A
+;A B
+} 

+else 
+{ 
+Creature 
+closestEnemy %
+=& '
+FindClosestEnemy( 8
+(8 9
+this9 =
+,= >
+
+combatants? I
+)I J
+;J K
+
+MoveAction 
+action !
+=" #
+new$ '
+
+MoveAction( 2
+(2 3
+)3 4
+;4 5
+action 
+. 
+SetStartPosition '
+(' (
+
+CurrentPos( 2
+)2 3
+;3 4
+action 
+. 
+SetTargetCreature (
+(( )
+closestEnemy) 5
+)5 6
+;6 7
+action 
+. 
+SetCreatureToMove (
+(( )
+this) -
+)- .
+;. /
+SetFirstAction 
+( 
+action %
+)% &
+;& '
+} 

+}   	
+private## 
+void## 
+DecideSecondAction## '
+(##' (
+)##( )
+{##* +
+List$$ 
+<$$ 
+Creature$$ 
+>$$ 
+closeEnemies$$ '
+=$$( ))
+EnemiesInSquareNextToCreature$$* G
+($$G H
+this$$H L
+,$$L M
+
+combatants$$N X
+)$$X Y
+;$$Y Z
+if&& 
+(&& 
+closeEnemies&& 
+.&& 
+Count&& "
+>&&# $
+$num&&% &
+)&&& '
+{&&( )
+SetSecondAction'' 
+(''  
+new''  #
+AttackAction''$ 0
+(''0 1
+closeEnemies''1 =
+[''= >
+$num''> ?
+]''? @
+)''@ A
+)''A B
+;''B C
+}(( 

+else(( 
+{(( 
+Creature** 
+closestEnemy** %
+=**& '
+FindClosestEnemy**( 8
+(**8 9
+this**9 =
+,**= >
+
+combatants**? I
+)**I J
+;**J K
+
+MoveAction++ 
+action++ !
+=++" #
+new++$ '
+
+MoveAction++( 2
+(++2 3
+)++3 4
+;++4 5
+action,, 
+.,, 
+SetStartPosition,, '
+(,,' (
+
+CurrentPos,,( 2
+),,2 3
+;,,3 4
+action-- 
+.-- 
+SetTargetCreature-- (
+(--( )
+closestEnemy--) 5
+)--5 6
+;--6 7
+action.. 
+... 
+SetCreatureToMove.. (
+(..( )
+this..) -
+)..- .
+;... /
+SetSecondAction// 
+(//  
+action//  &
+)//& '
+;//' (
+}00 

+}11 	
+public22 
+void22 
+
DecideActions22 !
+(22! "
+List22" &
+<22& '
+Creature22' /
+>22/ 0
+
+combatants221 ;
+)22; <
+{22= >
+this33 
+.33 
+
+combatants33 
+=33 
+
+combatants33 (
+;33( )
+List44 
+<44 
+Creature44 
+>44 
+closeEnemies44 '
+=44( ))
+EnemiesInSquareNextToCreature44* G
+(44G H
+this44H L
+,44L M
+
+combatants44N X
+)44X Y
+;44Y Z
+DecideFirstAction66 
+(66 
+)66 
+;66  
+DecideSecondAction77 
+(77 
+)77  
+;77  !
+Debug88 
+.88 
+Log88 
+(88 
+$str88 0
++881 2
+closeEnemies883 ?
+.88? @
+Count88@ E
+)88E F
+;88F G
+}99 	
+public<< 
+void<< 
+ShowInfo<< 
+(<< 
+)<< 
+{<<  
+}>> 	
+}?? 
+}@@ ¸
+6F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.cs
+internal 
+class	 
+Die 
+{ 
+int 
+sides 

+;
 
+Random 
+
+rnd 
+= 
+new 
+Random 
+( 
+) 
+; 
+Die 
+( 
+int 
+sides 
+) 
+{ 
+this 
+. 

+sides
 
+= 
+sides 
+; 
+}		 
+public 
+
+int 
+RollDie 
+( 
+) 
+{ 
+return 
+rnd 
+. 
+Next 
+( 
+$num 
+, 
+sides  
+)  !
+;! "
+}

 
+} ¨
+SF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.cs
+public 
+class "
+GenerateSkeletonScript
 #
+:$ %
+
MonoBehaviour& 3
+{4 5
+[		 
+SerializeField		 
+]		 
+
+GameObject		 
+skeletonPrefab		  .
+;		. /
+void 
+Start	 
+( 
+) 
+{ 
+Button 
+button 
+= "
+GetComponentInChildren .
+<. /
+Button/ 5
+>5 6
+(6 7
+)7 8
+;8 9
+button

 
+.

 
+onClick

 
+.

 
+AddListener

 "
+(

" #
+
SpawnSkeleton

# 0
+)

0 1
+;

1 2
+} 
+private 
+void 
+
SpawnSkeleton 
+( 
+)  
+{! "
+
+GameObject 
+generatedSkelleton %
+=& '
+
+GameObject( 2
+.2 3
+Instantiate3 >
+(> ?
+skeletonPrefab? M
+,M N
+newO R
+Vector3S Z
+(Z [
+)[ \
+,\ ]
+
+Quaternion^ h
+.h i
+identityi q
+)q r
+;r s
+Vector3 
+mousePos 
+= 
+Camera !
+.! "
+main" &
+.& '!
+ScreenToViewportPoint' <
+(< =
+Input= B
+.B C
+
mousePositionC P
+)P Q
+;Q R
+mousePos 
+. 
+z 
+= 
+Camera 
+. 
+main  
+.  !
+	transform! *
+.* +
+position+ 3
+.3 4
+z4 5
++6 7
+Camera8 >
+.> ?
+main? C
+.C D
+
nearClipPlaneD Q
+;Q R
+generatedSkelleton 
+. 
+	transform $
+.$ %
+position% -
+=. /
+mousePos0 8
+;8 9
+generatedSkelleton 
+. 
+GetComponent '
+<' (#
+NewSkeletonSpriteScript( ?
+>? @
+(@ A
+)A B
+.B C
+	IsDraggedC L
+(L M
+trueM Q
+)Q R
+;R S
+} 
+} �
+LF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.cs
+public 
+	interface 
+IAction 
+{ 
+public 
+
+IEnumerator 
+
PerformAction $
+($ %
+)% &
+;& '
+} ö	
+[F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.cs
+public 
+class #
+InitCreaturePanelScript
 $
+:% &
+
MonoBehaviour' 4
+{5 6
+private 
+Image 
+
creatureImage 
+;  
+[ 
+SerializeField 
+] 
+Image 
+	healthBar $
+;$ %
+private
+
+ 
+void
+
+ 
+Awake
+
+ 
+(
+
+ 
+)
+
+ 
+{
+
+ 
+
creatureImage 
+= 
+GetComponent $
+<$ %
+Image% *
+>* +
+(+ ,
+), -
+;- .
+} 
+public 
+
+void 
+SetImage 
+( 
+Sprite 
+sprite  &
+)& '
+{( )
+
creatureImage 
+. 
+sprite 
+= 
+sprite %
+;% &
+} 
+public 
+
+void 
+UpdateHealthBar 
+(  
+float  %
+	fillValue& /
+)/ 0
+{1 2
+	healthBar 
+. 
+
+fillAmount 
+= 
+	fillValue (
+;( )
+} 
+} ´
+BF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.cs
+public 
+class 
+Human
 
+: 
+Creature 
+{ 
+void 
+Start	 
+( 
+) 
+{ 
+Dex		 
+=		 

+Random		 
+.		 
+Range		 
+(		 
+$num		 
+,		 
+$num		 !
+)		! "
+;		" #
+movementRate
+
+ 
+=
+
+ 
+$num
+
+ 
+;
+
+ 
+CreatureHealth 
+= 
+Random 
+.  
+Range  %
+(% &
+$num& (
+,( )
+$num* ,
+), -
+;- .
+
CurrentHealth 
+= 
+CreatureHealth &
+;& '
+	MaxHealth

 
+=

 
+CreatureHealth

 "
+;

" #
+IsCreatureAlive 
+= 
+true 
+; 
+} 
+void 
+Update	 
+( 
+) 
+{ 
+} 
+} 

+ 181 - 0
.sonarqube/out/0/output-cs/token-type.pb

@@ -0,0 +1,181 @@
+DF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\GameManagerScript.cs
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+  
 ! .     $   $           
+   - 0> C 
+  $ '2 7 	   #$ () 1 
+    
+      #!! $$ $$ %% &&? G''> F** ** ++ 
+++ ,, ,,0 @// 
+//  00 %00+ 900H T44 
+44 #55  55D F55G _77 :: ::
 BB "FF FF FF' +JJ JJ KK LL LL
 LL  !LL( )MM QQ 
+QQ QQ %UU UU
 VV" &XX XX' 1XXW ^XXe oYY1 4YY5 <YY= >YY@ AYYC D[[' >[[Z b]] ]] (]]: B]]R Y]]k s^^ ff 
+ff ff gg °
+ZF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\StartFightPanel\StartFightScript.cs
+ 
+ 
+ 
+ 
+ 
+  
   -  
+
+     "°
+JF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\NewSkeletonSpriteScript.cs
+ 
+ 
+ 
+ 
+  
 $' 4  		 &
+
+  
+! & 
   ¿
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Creature.cs
+ 
+ 
+ 
+ 
+ 
+ 
+  
  %
+
+ 
+
+   

 

         $ '( ,- 4 
 ! $& ) 
   " % 
+        
        !! !! "" 
+"" "", /""1 4$$ $$
 && 
+&& && &&! $&&. 3(( 
+(( (( ((# &((1 6** 
+** **  #**7 :**O T++ 
+++ ++" %++' *,, 
+,, ,,# &,,6 9,,J O.. .. //# .00% 233 
+33 44 77 77
 88 88 #;; 
+;; << << << "?? 
+?? @@ CC 
+CC DD GG 
+GG GG &KK 
+KK KK  'OO OO
 OO OO: BOOM QOOR ZPP PP
 PP& )PP* .PP/ 7QQ QQ QQ RR SS SS9 :SSM NSS` aSSt uWW ZZ ZZ
 ZZ$ .^^ 
+^^ __ __ "bb bb
 bb' /bb: >bb? Gcc cc  $dd 
dd ee ee
 gg gg gg hh hh  ii nn 
nn %oo rr 
+rr ss ww 
+ww ww yy 
+yy }}) @Ç
+QF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\AttackAction.cs
+ 
+ 
+ 
+  
  #  
+   		  
+ 

 


 

  5þ
+OF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\MoveAction.cs
+ 
+ 
+ 
+ 
+ 
+  
  ! 		 
+
+ 
+
+      #

 

 

" '     
+ ! ( 
+ " )  
+ " *  
+ " *   #) ** 
+** ++ ++ +,, 
+-- .. .. // //$ +11 11" #115 622 33 33% &44& '55& '66 66 66, -77& '88& ';; ;;% &<<& '==& '>> >> >>, -??& '@@& 'GG GG> ?GGC zHH HH0 FHH_ tII KK KK  KK! $KK% 3KK4 5MM MM  NN NN NN% .NN/ AQQ
+ QQ $RR SS SS TT TT$ +VV VV" #VV5 6VV: LWW XX XX% &YY& 'ZZ& '[[ [[ [[, -\\& ']]& '`` ``% &aa& 'bb& 'cc cc cc, -dd& 'ee& 'ii ii> ?iiC zjj jj0 Fjj_ tkk mm mm  mm! $mm% 3mm4 5pp pp, 7ppK N
	ppw €
+pp“ –
+pp¾ Ërr rr !ss ss ss% .ss/ Bxx 
xx xx {{ {{ {{" )Ô
+PF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\SpellAction.cs
+ 
+ 
+ 
+  
  "  		 
+		 
+
+ 

+
+ 
+
+ 0

   4  & —
+9F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Weapon.cs
+ 	   
+   
+   
+   $+ 12 =J M       
+  †
+@F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\CameraManager.cs
+ 
+ 
+  
  *  $    		 
+		 		 
+
+ 

 

     
+  -2 4 $2 AB G   ! = # %& B ( ) " 59 :' ) ( -6 IM O!! !!!" >'' '' ((+ C++ 
+++ ++" ,Ÿ	
+?F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\RoundManager.cs
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+		 		 		
 		 )     

    "     * /      
+          "!! )&& &&
 &&" &&&' /'' (( ,, ,,
 -- 11 11 22 22 22# %33 44 66 &77 77) 188 88$ '88( 299) ,99- 4995 999< A99C E== >>, />>0 <>>H I@@) ,@@- 9@@E F@@K aAA *BB CC CC@ vDD #HH 
+II. 2MM MM NN “
+EF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Skeleton.cs
+ 
+ 
+ 
+ 	 
+   $   		 		 
+
+ 
+
+  
+
+" $  #* ,. 0 "    H L % & "# /= >  - 9 = $ '( 2) -"" I## ## $$ $$ $$H L&& &&% &''  #''$ 0''> ?(( )) -** **9 =++ ++$ '++( 2..) -22 22 22" &22' /33 44 44 44H L88 88 0<< << †
+6F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Die.cs
+ 
+ 	    
+      
+   Ñ
+SF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\GenerateSkeletonScript.cs
+ 
+ 
+ 
+ 
+ 
+  
 #& 3		 		   / 5   ( 2O RS Z^ h  != B 8 >( ?M Q¶
+LF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Actions\IAction.cs
+ 
+ 
+ 
+    
+ ù
+[F:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Panels\InitPanel\InitCreaturePanelScript.cs
+ 
+ 
+ 
+ 
+  
 $' 4    
+
+ 
+
+ % * 
+   
+   %Æ
+BF:\Unity\Projects\RPG-Fight-Test\Assets\Scripts\Creatures\Human.cs
+ 
+ 
+ 
+  
   4 		 		 		 !
+
+  & (* ,  & 

+ 24 - 0
.sonarqube/out/ProjectInfo.log

@@ -0,0 +1,24 @@
+Product projects
+---------------------------------------
+F:\Unity\Projects\RPG-Fight-Test\Assembly-CSharp.csproj
+
+
+Test projects
+---------------------------------------
+
+
+Invalid projects
+---------------------------------------
+{none}
+
+
+Skipped projects
+---------------------------------------
+{none}
+
+
+Excluded projects
+---------------------------------------
+{none}
+
+

+ 58 - 0
.sonarqube/out/sonar-project.properties

@@ -0,0 +1,58 @@
+sonar.projectKey=RPG-FIGHT
+sonar.working.directory=F:\\Unity\\Projects\\RPG-Fight-Test\\.sonarqube\\out\\.sonar
+sonar.projectBaseDir=F:\\Unity\\Projects\\RPG-Fight-Test
+
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.projectKey=RPG-FIGHT:D79EAA4A-97DB-B041-B157-750D1D1E3AA6
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.projectName=Assembly-CSharp
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.projectBaseDir=F:\\Unity\\Projects\\RPG-Fight-Test
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.sourceEncoding=utf-8
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.sources=\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\GameManagerScript.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Panels\\StartFightPanel\\StartFightScript.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\NewSkeletonSpriteScript.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Creature.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Actions\\AttackAction.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Actions\\MoveAction.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Actions\\SpellAction.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Weapon.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\CameraManager.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\RoundManager.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Skeleton.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Die.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\GenerateSkeletonScript.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Actions\\IAction.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Panels\\InitPanel\\InitCreaturePanelScript.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\Scripts\\Creatures\\Human.cs",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMPro.cginc",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Mobile Overlay.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_Bitmap.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMPro_Mobile.cginc",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF SSD.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Surface-Mobile.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Surface.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Sprites\\EmojiOne Attribution.txt",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_Bitmap-Custom-Atlas.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Mobile SSD.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Resources\\LineBreaking Leading Characters.txt",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMPro_Properties.cginc",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMPro_Surface.cginc",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Resources\\LineBreaking Following Characters.txt",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Mobile Masking.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF Overlay.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_Bitmap-Mobile.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Fonts\\LiberationSans - OFL.txt",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_SDF-Mobile.shader",\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\Assets\\TextMesh Pro\\Shaders\\TMP_Sprite.shader"
+
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.cs.analyzer.projectOutPaths=\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\.sonarqube\\out\\0"
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.cs.roslyn.reportFilePaths=\
+"F:\\Unity\\Projects\\RPG-Fight-Test\\.sonarqube\\out\\0\\Issues.json"
+
+D79EAA4A-97DB-B041-B157-750D1D1E3AA6.sonar.working.directory=F:\\Unity\\Projects\\RPG-Fight-Test\\.sonarqube\\out\\.sonar\\mod0
+sonar.host.url=http://nordh.xyz:9088
+sonar.visualstudio.enable=false
+
+sonar.modules=D79EAA4A-97DB-B041-B157-750D1D1E3AA6
+

+ 2 - 2
.vscode/settings.json

@@ -58,8 +58,8 @@
 
     "sonarlint.ls.javaHome": "C:\\Program Files\\Java\\jdk-14.0.2",
     "sonarqube-rules-synchroniser.Sonarqube-projectkey": "RPG-FIGHT",
-    "sonarqube-rules-synchroniser.Sonarqube-token": "e9d671ab4c1eccfe367249f2975425ca924ffcfd",
-    "sonarqube-rules-synchroniser.Sonarqube-url": "nordh.xyz:12366",
+    "sonarqube-rules-synchroniser.Sonarqube-token": "6405a12b7b10d34721220a1a14dc397c6e2bc12e",
+    "sonarqube-rules-synchroniser.Sonarqube-url": "nordh.xyz:9088",
     "omnisharp.analyzeOpenDocumentsOnly": false,
     "omnisharp.enableRoslynAnalyzers": false,
 

+ 0 - 0
sonar-project.properties → REMOVEDsonar-project.properties